:root{color-scheme:dark;--bg:#101a2c;--panel:#18263a;--gold:#ead4ad;--muted:#a2b0c1;--line:rgba(209,220,234,.13);--text:#f4f1e9;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-width:280px}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{border:0}a{color:var(--gold);text-underline-offset:4px}.sky{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 76% 12%,#23435b55,transparent 50%),radial-gradient(ellipse at 14% 85%,#2b324f66,transparent 50%);z-index:-1}.sky:before{content:"";position:absolute;inset:0;opacity:.3;background-image:radial-gradient(circle,#e8d7b7 1px,transparent 1px),radial-gradient(circle,#91aabd 1px,transparent 1px);background-size:113px 131px,179px 197px;background-position:28px 19px,62px 73px}.shell{max-width:1160px;margin:auto;padding:calc(26px + env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));min-height:100svh;display:flex;flex-direction:column}.topbar,.brand,.tools,.row,.between{display:flex;align-items:center}.topbar,.between{justify-content:space-between}.brand{gap:12px;background:transparent;padding:0;text-align:left}.brand-mark{font-size:31px;color:var(--gold)}.brand strong{font-size:17px;letter-spacing:2px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:3px;margin-top:4px}.tools{gap:10px}.icon-button{width:42px;height:42px;border-radius:50%;background:#ffffff06;border:1px solid var(--line);display:grid;place-items:center;font-size:17px}.icon-button svg{width:19px;height:19px}.home{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:65px 0 55px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:3px;color:var(--gold);display:flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:26px;height:1px;background:var(--gold)}h1{font-size:clamp(38px,4.5vw,60px);line-height:1.3;letter-spacing:2px;font-weight:500;margin:24px 0 20px}h1 em{font-style:normal;color:var(--gold)}.intro{line-height:1.9;color:var(--muted);font-size:15px;max-width:350px}.hero-art{height:180px;position:relative;margin-top:36px;width:310px;max-width:100%}.orbit{position:absolute;width:235px;height:150px;border:1px solid #d8c09830;border-radius:50%;transform:rotate(-25deg);top:15px;left:25px}.art-card{position:absolute;width:94px;height:125px;border-radius:16px;display:grid;place-items:center;border:1px solid #a8bfd044;font-size:45px;box-shadow:0 14px 40px #0003}.art-card.one{left:40px;top:25px;transform:rotate(-17deg);background:#20334b;color:var(--gold)}.art-card.two{left:133px;top:8px;transform:rotate(13deg);background:var(--gold);color:var(--bg)}.spark{position:absolute;color:var(--gold);font-size:23px;left:258px;top:12px}.spark.bottom{left:8px;top:139px;font-size:13px}.play-panel{padding:30px;background:linear-gradient(140deg,#233249aa,#152235dd);border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 80px #0002}.section-heading{font-size:20px;font-weight:500;margin:0}.kicker{font-size:11px;color:var(--muted);letter-spacing:1px}.level-list{display:grid;gap:11px;margin:24px 0}.level{background:#101b2b66;border:1px solid var(--line);border-radius:14px;text-align:left;padding:18px;display:flex;align-items:center;gap:16px;transition:background .2s,border-color .2s}.level.active{border-color:#dac092b3;background:#d3b4800e}.level-icon{width:34px;color:var(--gold);font-size:24px;text-align:center}.level strong{font-size:15px;font-weight:500}.level small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.radio{margin-left:auto;border:1px solid #718294;border-radius:50%;width:17px;height:17px;flex-shrink:0}.active .radio{border:5px solid var(--gold)}.primary{width:100%;padding:18px 22px;border-radius:13px;background:var(--gold);color:#142238;font-weight:650;font-size:15px;display:flex;justify-content:center;gap:18px;align-items:center;transition:filter .2s,transform .2s}.primary:hover{filter:brightness(1.07)}.primary:active{transform:scale(.985)}.subtle{background:transparent;color:var(--muted);padding:12px;font-size:13px}.panel-bottom{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:10px}.tiny{font-size:11px;color:var(--muted);text-align:center;line-height:1.8}.footer{border-top:1px solid var(--line);padding-top:19px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);gap:14px}.footer-links{display:flex;gap:16px;align-items:center}.footer button{background:none;color:var(--muted);padding:5px 0;font-size:11px}.game-wrap{max-width:650px;width:100%;margin:35px auto 25px;flex:1}.game-heading{margin:22px 0 20px}.game-heading h1{font-size:27px;margin:0 0 8px;letter-spacing:1px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:16px;background:#1a283c99;margin:22px 0 25px;padding:16px 0}.stat{text-align:center;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat strong{display:block;font-size:23px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:1px}.stat small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);margin-top:5px}.progress{height:3px;background:#ffffff0b;border-radius:2px;margin:0 0 22px}.progress span{height:100%;display:block;background:var(--gold);transition:width .3s}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;perspective:1000px}.card{padding:0;background:none;border-radius:13px;position:relative;aspect-ratio:1/1.03;min-height:44px}.card-inner{display:block;position:absolute;inset:0;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.2,.7,.2,1)}.card.flipped .card-inner{transform:rotateY(180deg)}.face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:13px}.back{background:linear-gradient(145deg,#253a52,#1a2b42);border:1px solid #6d87a04d;color:#b9c7ce}.back:before{content:"";position:absolute;inset:8px;border:1px solid #7994ab26;border-radius:8px}.back .glyph{font-size:26px;opacity:.65}.front{background:#ebd8b8;color:#24344a;transform:rotateY(180deg);border:1px solid #fff2}.front .glyph{font-size:clamp(23px,4vw,38px);line-height:1}.front small{font-size:9px;opacity:.75;margin-top:7px}.matched .front{background:#274343;color:#c0dbca;border-color:#a0c9b544}.matched .front:after{content:"✓";position:absolute;right:7px;top:5px;font-size:10px}.board.paused{visibility:hidden}.game-bottom{display:flex;justify-content:center;gap:16px;margin-top:18px}.muted{color:var(--muted)}.pill{font-size:10px;padding:7px 11px;border:1px solid var(--line);border-radius:20px;color:var(--gold);letter-spacing:1px}.game-top{display:flex;align-items:center;justify-content:space-between}.game-top button{background:none;padding:9px 0;color:var(--muted);font-size:13px}.screen-title{margin:35px 0 10px;font-size:30px;font-weight:500}.records{max-width:720px;width:100%;margin:0 auto;flex:1;padding-bottom:35px}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0}.score-tile{padding:22px 16px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.score-tile h3{font-size:14px;font-weight:500;color:var(--gold);margin:0 0 19px}.score-tile strong{font-size:24px;font-weight:500}.score-tile p{font-size:12px;color:var(--muted);margin:8px 0 0}.history-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);gap:14px;font-size:14px}.history-row small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.empty{padding:34px 20px;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted);line-height:1.8;font-size:14px}.notice{color:var(--gold);font-size:12px;line-height:1.6}dialog{border:1px solid #66758a55;border-radius:24px;background:#19283c;color:var(--text);padding:30px;width:min(430px,calc(100% - 36px));max-height:calc(100dvh - 60px);overflow:auto;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#080f1dcc;backdrop-filter:blur(9px)}dialog h2{font-weight:500;font-size:25px;margin:12px 0 14px}dialog p{color:var(--muted);font-size:14px;line-height:1.9}.dialog-symbol{font-size:40px;color:var(--gold)}.dialog-actions{display:grid;gap:9px;margin-top:24px}.secondary{background:#ffffff09;border:1px solid var(--line);border-radius:12px;padding:15px;font-size:14px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px}.settings-row select{background:#101a2c;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit}.switch{appearance:none;width:42px;height:25px;border-radius:20px;background:#475465;position:relative;flex-shrink:0;cursor:pointer}.switch:after{content:"";position:absolute;width:19px;height:19px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s}.switch:checked{background:#b49a72}.switch:checked:after{transform:translateX(17px)}.instruction{display:flex;gap:15px;margin:20px 0}.instruction b{color:var(--gold);font-size:12px;padding-top:4px}.instruction p{margin:0}.win-stars{font-size:36px;letter-spacing:12px;color:var(--gold);text-align:center;margin:14px 0}.center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.install-note{font-size:12px;color:var(--muted);line-height:1.8;margin-top:16px}.text-page{max-width:700px;margin:auto;padding:calc(35px + env(safe-area-inset-top)) 25px 60px;line-height:1.9}.text-page h1{font-size:30px}.text-page h2{font-size:20px;margin-top:32px}.text-page p,.text-page li{color:var(--muted);font-size:14px}@media(min-width:900px){.game-wrap{max-width:570px}.card{aspect-ratio:1.18}.game-wrap.hard{max-width:520px}.hard .card{aspect-ratio:1.3}.shell:has(.game-wrap){padding-top:20px}}@media(max-width:760px){.shell{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right));padding-top:calc(18px + env(safe-area-inset-top))}.home{grid-template-columns:1fr;gap:24px;padding:38px 0 30px}.hero{position:relative}.hero h1{font-size:37px;margin:17px 0 13px}.hero .intro{font-size:13px;max-width:245px;margin-bottom:0}.hero-art{position:absolute;right:-8px;top:25px;transform:scale(.55);transform-origin:right top;width:220px;margin:0;opacity:.85}.hero-art .spark{left:230px}.eyebrow{font-size:9px;letter-spacing:2px}.play-panel{padding:22px;border-radius:21px}.level-list{margin:19px 0;gap:9px}.level{padding:14px}.level small{font-size:11px}.section-heading{font-size:18px}.footer{font-size:10px;flex-wrap:wrap;justify-content:center}.footer-links{gap:18px}.brand strong{font-size:15px}.brand small{font-size:8px}.brand-mark{font-size:26px}.tools{gap:7px}.icon-button{width:36px;height:36px}.game-wrap{margin:24px auto 15px}.game-heading h1{font-size:25px}.game-heading .tiny{text-align:left}.board{gap:9px}.stats{margin:18px 0;padding:13px 0}.stat strong{font-size:21px}.card{aspect-ratio:.92}.hard .card{aspect-ratio:1.1}.front small{font-size:8px}.score-grid{gap:8px}.score-tile{padding:17px 10px}.score-tile strong{font-size:20px}.screen-title{font-size:27px}.history-row{font-size:13px}}@media(max-width:370px){.shell{padding-left:16px;padding-right:16px}.hero h1{font-size:32px}.hero-art{opacity:.4;right:-22px}.hero .intro{max-width:215px}.play-panel{padding:17px}.brand small{letter-spacing:2px}.board{gap:7px}.front small{display:none}}@media(max-height:680px) and (max-width:760px){.home{padding-top:24px;gap:20px}.hero-art{display:none}.hero h1{font-size:30px}.level{padding:11px}.game-wrap{margin-top:14px}.game-heading{margin:12px 0}.stats{margin:12px 0;padding:10px 0}.progress{margin-bottom:14px}.hard .card{aspect-ratio:1.3}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.card-inner{transform:none!important}.front{transform:none}.card:not(.flipped) .front{visibility:hidden}.card.flipped .back{visibility:hidden}}
@media(max-width:760px){.hero-art{width:310px;right:0;overflow:hidden;height:190px}.hero h1,.hero .intro{position:relative;z-index:1}}
#dialog-title:focus{outline:none}
