:root{color-scheme:dark;font-family:Inter,Arial,sans-serif;background:#07131c;color:#eef4f8;--cyan:#60e4ed;--gold:#f8c976;--muted:#94aab9}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(ellipse at 90% 10%,#16536645,transparent 50%),#07131c}main{max-width:1050px;margin:auto;padding:0 24px}nav{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:84px;border-bottom:1px solid #ffffff18}nav a{font-size:12px}.brand{font-weight:900;letter-spacing:1px}.brand span{color:var(--gold)}a{color:var(--cyan);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;min-height:44px}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:var(--gold)}h1{font-size:clamp(48px,8vw,86px);line-height:.98;letter-spacing:-3px;margin:30px 0}h1 em{font-style:normal;color:var(--cyan)}.intro{font-size:19px;line-height:1.5;color:var(--muted)}#lobby{padding-top:34px}.filters{display:flex;gap:9px;margin:30px 0 20px;flex-wrap:wrap}.filters button{padding:12px 18px;border-radius:30px;background:#142631;border:1px solid #ffffff18}.filters .active{background:var(--cyan);color:#07131c}.catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.game-card{position:relative;text-align:left;border:1px solid #ffffff18;background:linear-gradient(145deg,#163644,#0c1e2b);border-radius:18px;padding:20px;min-height:165px;overflow:hidden}.game-card:before{content:'';position:absolute;right:-20px;top:-30px;width:140px;height:140px;background:radial-gradient(circle,#60e4ed18,transparent 65%)}.game-card.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.game-card .glyph{display:block;font-size:42px;line-height:1.1;color:var(--cyan);margin-bottom:18px}.game-card strong{display:block;font-size:15px}.game-card small{display:block;margin-top:8px;color:var(--muted);font-size:11px}.setup,.inbox{padding:26px;margin:26px 0;border:1px solid #ffffff20;background:#102430;border-radius:20px}.setup h2{font-size:30px;margin:12px 0}.setup p{line-height:1.65}.setup-options{display:flex;gap:18px;margin:20px 0}.setup-options label{flex:1;color:var(--muted);font-size:12px}select,input:not([type=range]){display:block;width:100%;padding:14px;margin-top:8px;background:#071923;border:1px solid #ffffff28;border-radius:10px;color:#eef4f8}.primary,.secondary{display:block;width:100%;border-radius:12px;padding:17px 22px;margin:12px 0;font-weight:800}.primary{background:linear-gradient(115deg,#f9d9a0,#e9af57);color:#291d0d;min-height:60px}.secondary{background:#173440;border:1px solid #ffffff28}.text-button{background:none;color:var(--muted);padding:10px 0}.fine{font-size:12px;color:var(--muted);line-height:1.65}.invite{background:#274237;border:1px solid #f8c97666;padding:18px;border-radius:12px;line-height:1.5}#play,#result{max-width:640px;margin:28px auto}.play-top,.score{display:flex;justify-content:space-between;align-items:center;gap:16px}.score{padding:20px 0;border-bottom:1px solid #ffffff18}.score span{font-size:11px;display:block;color:var(--muted)}.score strong{display:block;font-size:40px;color:var(--gold);margin-top:8px}.score small{font-size:10px;color:var(--muted)}.instruction{font-size:17px;line-height:1.5;min-height:46px}.board{min-height:320px;background:#0c2632;border:1px solid #ffffff20;border-radius:22px;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}.board canvas{width:100%;height:auto;display:block;touch-action:none}.board.sport{padding:0;aspect-ratio:1;min-height:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.grid.cubes-four{grid-template-columns:repeat(2,1fr)}.tile{min-height:82px;background:linear-gradient(135deg,#24515f,#12313d);border:1px solid #ffffff30;border-radius:10px;font-size:32px;font-weight:800;box-shadow:inset 0 2px 0 #ffffff20,0 6px 0 #05171e}.tile.empty{visibility:hidden}.target-pattern{color:var(--gold);font-size:21px;letter-spacing:8px;line-height:1.6;text-align:center;margin-bottom:16px}.cube-wrapper{width:100%}.math-question{font-size:clamp(36px,8vw,58px);font-weight:900;text-align:center;color:var(--gold)}.phrase{font-size:clamp(20px,4vw,27px);font-weight:700;line-height:1.8;text-align:center}.sticks{display:flex;align-items:center;gap:8px;justify-content:center;width:100%}.sticks .sign{font-size:34px;color:var(--muted)}.digit{position:relative;width:80px;height:148px;flex-shrink:1}.match{position:absolute;width:50px;height:9px;background:#ffffff16;border-radius:5px;min-height:0;padding:0;transform-origin:center}.match.lit{background:var(--gold);box-shadow:0 0 10px #f8c97633}.match.selected{background:var(--cyan);outline:3px solid var(--cyan);outline-offset:3px}.match:after{content:'';position:absolute;inset:-12px -6px}.match.s0{left:12px;top:8px}.match.s1{left:46px;top:42px;transform:rotate(90deg)}.match.s2{left:46px;top:106px;transform:rotate(90deg)}.match.s3{left:12px;top:140px}.match.s4{left:-22px;top:106px;transform:rotate(90deg)}.match.s5{left:-22px;top:42px;transform:rotate(90deg)}.match.s6{left:12px;top:74px}.controls label{display:block;color:var(--muted);font-size:13px;margin:15px 0}.controls input[type=range]{display:block;width:100%;accent-color:var(--cyan);margin:14px 0}.controls input[type=number],.controls input[type=text]{font-size:20px}.controls canvas.proof-preview{display:block;width:100%;max-height:500px;object-fit:contain;background:#07131c}.notice{color:var(--cyan);font-size:13px;line-height:1.6;min-height:20px}#feedback{color:var(--cyan);min-height:24px;text-align:center}#result{text-align:center}#result h2{font-size:32px}.result-score{font-size:72px;color:var(--gold);display:block;margin:24px 0}#share-box{text-align:left;font-size:12px;color:var(--muted)}.reply-card{border-top:1px solid #ffffff20;padding:20px 0}.reply-card h3{margin:8px 0}.reply-card p{font-size:13px;line-height:1.6;color:var(--muted)}.reply-card img{display:block;max-width:100%;max-height:500px;margin:10px auto}.reply-card .secondary{font-size:12px}footer{padding:30px 0;text-align:center;font-size:10px;line-height:1.7;color:#647e90}summary{cursor:pointer;padding:14px 0}.history-row{padding:10px 0;font-size:12px;color:var(--muted)}
@media(max-width:700px){main{padding:0 18px}.catalog{grid-template-columns:repeat(2,1fr);gap:10px}.game-card{padding:17px;min-height:145px}.game-card .glyph{font-size:35px}.setup,.inbox{padding:20px}.board{min-height:290px}.tile{min-height:75px}.digit{width:70px;height:140px}.match{width:40px}.match.s1,.match.s2{left:40px}.match.s4,.match.s5{left:-12px}.match.s3{top:130px}.match.s2,.match.s4{top:98px}.match.s6{top:69px}nav a{font-size:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

@media(max-width:380px){.digit{width:50px;flex-shrink:0}.match{width:30px}.match.s0,.match.s3,.match.s6{left:10px}.match.s1,.match.s2{left:30px}.match.s4,.match.s5{left:-10px}.sticks{gap:6px}.sticks .sign{font-size:24px}}

.board.sport{position:relative;isolation:isolate}.sport .arena-3d{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;border-radius:inherit;z-index:1}.sport .arena-input{position:relative;z-index:2;opacity:0;touch-action:none}.quality-label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}.quality-label select{max-width:230px}.tile{box-shadow:inset 0 2px 1px #ffffff25,0 6px 0 #04101c,0 10px 18px #0005;transform:perspective(500px) rotateX(8deg);transition:transform .16s,box-shadow .16s}.tile:active{transform:translateY(4px);box-shadow:inset 0 2px 1px #ffffff25,0 2px 0 #04101c}.match.lit{filter:drop-shadow(0 0 5px #f8c97677)}@media(prefers-reduced-motion:reduce){.tile{transition:none}}

.grid.has-tiles-3d{position:relative;isolation:isolate;gap:0}.tiles-3d{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.has-tiles-3d .tile{background:transparent;border-color:transparent;box-shadow:none;transform:none}.has-tiles-3d .empty{visibility:hidden}

.has-tiles-3d{aspect-ratio:1}.has-tiles-3d .tile{min-height:0;aspect-ratio:1}.has-tiles-3d .tiles-3d{height:100%;object-fit:fill}.has-tiles-3d .tile:focus-visible{outline-offset:-6px}


.invite-steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;gap:12px;margin:26px 0;color:var(--muted);font-size:13px;line-height:1.6}.invite-steps b{display:block;color:var(--cyan);font-size:22px}.entry-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.entry-actions .secondary{flex:1;text-align:center;text-decoration:none;min-width:140px}.invite-panel,.recovery-panel{padding:22px;border:1px solid #60e4ed55;border-radius:18px;margin:18px 0;background:#102b36}.invite-panel .invite{margin-top:0}.pending-row{border-top:1px solid #ffffff22;padding-top:10px}#catalog{scroll-margin-top:30px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}@media(max-width:540px){.invite-steps{grid-template-columns:1fr;gap:8px}.invite-steps b{display:inline;margin-right:10px}.entry-actions{flex-direction:column}}

.number-grid{grid-template-columns:repeat(var(--grid-size),minmax(0,1fr));gap:8px;width:100%;max-width:520px}.number-grid .tile{min-width:0;min-height:44px;aspect-ratio:1;font-size:clamp(17px,5vw,30px)}.tile.found{background:#133e36;color:#83efb5;opacity:.65;box-shadow:none;transform:none}.pair-grid{grid-template-columns:repeat(4,1fr);width:100%;max-width:520px}.memory-card{font-family:Arial,sans-serif}.color-word{font-size:clamp(36px,10vw,66px);font-weight:800;text-align:center}.color-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%}.color-options button{min-height:56px}.timer-target{font-size:24px;text-align:center}.timer-display{display:block;min-height:100px;padding:24px 0;font-size:clamp(22px,6vw,42px);text-align:center}.history-row input{max-width:100%;width:100%}

.board.timer-board{flex-direction:column}@media(max-width:380px){.number-grid{gap:4px}.board:has(.number-grid){padding:12px}.number-grid .tile{font-size:18px}}
