@import url('/fonts.css');
:root{color-scheme:dark;--bg:#070e19;--panel:#101b2a;--line:#243248;--text:#f0f5ff;--muted:#a0b1c8;--cyan:#65e9f4;--pink:#ef91be;--font:Inter,Segoe UI,system-ui,sans-serif;--mono:Consolas,ui-monospace,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 75% 0%,#112d402f,transparent 50%),var(--bg);color:var(--text);font-family:var(--font);font-size:16px}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{color:inherit;border:0}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--cyan);color:var(--bg);padding:12px}.skip:focus{top:12px}.topbar{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto;padding:0 56px}.brand{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:14px;letter-spacing:.12em}.brand b{display:block;font-size:19px;color:var(--cyan);letter-spacing:.32em;margin-top:4px}.brand-mark{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:var(--cyan);color:var(--bg);font-size:30px;font-weight:900;letter-spacing:-.25em;padding-right:7px;box-shadow:4px 4px 0 #23434e}.brand-mark span{color:#296777}.top-actions{display:flex;gap:28px;align-items:center;font-size:14px}.top-actions a{color:var(--muted)}.quiet{border:1px solid var(--line);border-radius:7px;background:transparent;padding:11px 15px;font-size:14px;font-weight:600}.quiet:hover{background:#ffffff09;border-color:#53677e}main{max-width:1440px;margin:auto;padding:0 56px}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:48px 0 36px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--cyan);font-weight:600;margin:0 0 12px;line-height:1.6}h1{font-size:clamp(38px,4.8vw,68px);letter-spacing:-.06em;line-height:1.1;margin:0;font-weight:850}h1 em{font-style:normal;color:var(--cyan)}.intro-copy{color:var(--muted);font-size:16px;margin:16px 0 0;line-height:1.6}.ticket{border:1px solid #345968;border-radius:12px;background:linear-gradient(145deg,#102c3b,#0b1624);display:flex;flex-direction:column;align-items:center;padding:17px 32px;transform:rotate(4deg);box-shadow:7px 7px 0 #02071055;min-width:180px}.ticket span{font-family:var(--mono);font-size:12px;letter-spacing:.1em}.ticket span:first-child{color:var(--cyan)}.ticket strong{font-family:var(--mono);font-size:48px;line-height:1.3;font-weight:700}.filters{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px;padding-bottom:17px}#categories{display:flex;gap:6px;flex-wrap:wrap}#categories button{padding:10px 14px;border-radius:7px;background:transparent;color:var(--muted);font-size:14px}#categories button.selected{color:var(--bg);background:var(--cyan);font-weight:700}#categories button:hover:not(.selected){color:white;background:#ffffff09}.games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{background:linear-gradient(160deg,#111f30,#0e1826);border:1px solid var(--line);border-radius:13px;padding:0;overflow:hidden;text-align:left;position:relative;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;flex-direction:column;min-width:0}.game-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 10px 40px #0004}.card-screen{height:166px;width:100%;display:block;background:#080f1b;border-bottom:1px solid var(--line)}.card-content{padding:18px 21px 21px;flex:1;display:flex;flex-direction:column}.card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.card-number{font-family:var(--mono);font-size:12px;color:#8193aa}.badge{color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.09em;font-family:var(--mono)}.card-content h2{font-size:23px;font-weight:750;letter-spacing:-.035em;margin:10px 0 7px}.card-content p{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:21px;gap:12px}.card-record{color:#96aac1;font-family:var(--mono);font-size:12px}.play-label{color:var(--accent);font-size:14px;font-weight:700}.privacy-note{text-align:center;color:var(--muted);font-size:13px;line-height:1.7;margin:30px 0 35px}footer{max-width:1440px;margin:20px auto 0;padding:25px 56px 30px;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}footer>span:first-child{font-family:var(--mono);letter-spacing:.12em}footer b{color:var(--cyan)}footer a{font-size:13px}dialog{color:var(--text);border:1px solid #385069;border-radius:16px;background:#0b1522;padding:0;width:min(920px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 30px 120px #000a;overflow:auto}dialog::backdrop{background:#020710dc;backdrop-filter:blur(8px)}.game-top{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 16px;gap:15px}.game-top .eyebrow{font-size:11px;margin-bottom:3px}.game-top h2{margin:0;font-size:27px;letter-spacing:-.03em}.game-actions{display:flex;gap:8px;align-items:center}.close{width:42px;height:42px;border:1px solid var(--line);background:#142235;border-radius:8px;font-size:20px;flex-shrink:0}.close:hover{background:#273851}.scoreboard{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#101f2f;padding:13px 26px;display:flex;align-items:center;gap:35px;font-family:var(--mono);font-size:11px;letter-spacing:.07em;color:var(--muted)}.scoreboard strong{font-size:19px;color:var(--text);margin-left:9px;letter-spacing:0}#game-status{margin-left:auto;color:var(--cyan);text-align:right}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;padding:24px}.play-column{min-width:0}.play-area{position:relative;aspect-ratio:1;background:#060d18;border:1px solid #243b50;border-radius:9px;overflow:hidden;isolation:isolate}#canvas{width:100%;height:100%;display:block;touch-action:none}#board{width:100%;height:100%;padding:18px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;overflow:auto}.overlay{position:absolute;inset:0;background:#07111ced;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:5;backdrop-filter:blur(5px)}.overlay h3{font-size:clamp(28px,4vw,44px);letter-spacing:-.05em;margin:0 0 12px}.overlay>p:not(.eyebrow){color:var(--muted);line-height:1.65;max-width:320px;margin:0 0 23px}.primary{background:var(--cyan);color:#06232d;font-weight:800;padding:15px 24px;border-radius:8px;min-height:48px;box-shadow:0 4px 0 #347580;font-size:16px}.primary:hover{background:#99f4fc}.primary span{margin-left:24px}.instructions{padding:9px 0}.instructions>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 24px}.hint{background:#112236;border:1px solid #244158;border-radius:9px;padding:16px;display:flex;gap:12px;color:var(--cyan);margin:22px 0}.hint p{font-size:13px;line-height:1.7;color:#bbcee2;margin:0}.full{width:100%}.instructions .local-label{font-size:12px;text-align:center;line-height:1.5;margin-top:17px}.touch-controls{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}.touch-controls button{min-width:58px;min-height:44px;background:#14263b;border:1px solid #304c67;border-radius:8px;font-size:22px;touch-action:none}.touch-controls button:active{background:#31526d}.touch-controls .action-control{width:100%;font-size:15px;color:var(--cyan);font-weight:700}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;border-radius:9px;background:var(--cyan);color:var(--bg);font-size:14px;z-index:50;pointer-events:none;opacity:0;transition:opacity .2s}#toast.show{opacity:1}#records-dialog{max-width:680px;padding-bottom:10px}#record-list{padding:0 26px}.record-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:17px 0;font-size:15px}.record-row strong{color:var(--cyan);font-family:var(--mono)}.record-row span small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.record-row button{background:none;text-align:left;padding:0}.tile-grid{display:grid;width:100%;height:100%;gap:10px}.tile-grid.four{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr)}.tile-grid.three{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.tile{border:1px solid #2f475e;border-radius:9px;background:#14253a;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,4vw,37px);font-family:var(--mono);font-weight:800;min-width:0;min-height:0}.tile[data-value]{color:#07202b;background:#a0e4ec}.tile[data-value="0"]{background:#101e30;color:transparent;border-color:#1a2c40}.tile[data-value="2"]{background:#214b61;color:#c5f7ff}.tile[data-value="4"]{background:#28687b;color:#d4fcff}.tile[data-value="8"]{background:#61d6df}.tile[data-value="16"]{background:#9ae9f0}.tile[data-value="32"]{background:#c6b3f5}.tile[data-value="64"]{background:#ea9bd0}.tile[data-value="128"]{background:#fbad8b}.tile[data-value="256"],.tile[data-value="512"]{background:#f6d37b}.tile[data-value="1024"],.tile[data-value="2048"]{background:#9eefb7}.memory-tile{font-size:27px;color:var(--cyan);cursor:pointer}.memory-tile.matched{background:#123c36;border-color:#356b58;color:#97e9b1}.memory-tile.flipped{background:#243e5a;border-color:var(--cyan)}.reaction-target{width:100%;height:100%;min-height:170px;border-radius:8px;background:#29334b;border:1px solid #445573;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;text-align:center;padding:25px;font-size:21px;font-weight:750;touch-action:manipulation}.reaction-target.ready{background:#65e9b4;color:#09261d}.reaction-target.wait{background:#44243a;color:#ffd0e7}.reaction-target small{font-size:14px;font-weight:400;line-height:1.6}.simon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;aspect-ratio:1;width:85%}.simon-pad{border-radius:18px;background:var(--pad);opacity:.42;border:3px solid transparent;touch-action:manipulation;font-size:24px;font-weight:800;color:#050e16}.simon-pad.lit{opacity:1;border-color:white;box-shadow:0 0 25px var(--pad)}.board-message{font-size:16px;text-align:center;color:var(--muted);margin:0;line-height:1.5}.quiz-progress{color:var(--cyan);font-family:var(--mono);font-size:13px;margin:0}.quiz-question{font-size:clamp(18px,2vw,24px);line-height:1.45;text-align:center;margin:2px 0 10px}.quiz-answers{width:100%;display:grid;gap:9px}.answer{font-size:15px;text-align:left;background:#16273c;border:1px solid #354b67;padding:13px 16px;border-radius:8px}.answer:hover:not(:disabled){border-color:var(--cyan)}.answer.correct{background:#1d4a3a;border-color:#75e9ac;color:#b6f8d0}.answer.wrong{background:#502834;border-color:#f5a0ac;color:#ffe0e4}.answer:disabled{opacity:1}.quiz-feedback{font-size:14px;min-height:20px;margin:4px 0;color:var(--muted)}.tile.x{color:var(--cyan);font-size:55px}.tile.o{color:var(--pink);font-size:55px}.mode-buttons{display:flex;gap:6px}.mode-buttons button{font-size:12px;flex:1;padding:10px 6px}.mode-buttons .active{border-color:var(--cyan);color:var(--cyan)}
@media(min-width:1250px){.games{grid-template-columns:repeat(4,minmax(0,1fr))}.game-card:first-child{grid-column:span 2;display:grid;grid-template-columns:1.1fr 1fr}.game-card:first-child .card-screen{height:100%;min-height:300px;border-right:1px solid var(--line);border-bottom:0}.game-card:first-child .card-content{justify-content:center}.game-card:first-child h2{font-size:32px}.game-card:nth-child(8){grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.game-card:nth-child(8) .card-screen{height:100%;border-bottom:0;border-right:1px solid var(--line)}}
@media(max-width:900px){.topbar{padding:0 28px;height:80px}main{padding:0 28px}footer{padding:24px 28px}.games{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding-top:35px}.game-layout{grid-template-columns:minmax(0,1fr) 170px;padding:18px;gap:18px}.instructions .hint{padding:12px}.ticket{min-width:150px;padding:14px 22px}.filters{align-items:flex-end}}
@media(max-width:600px){.topbar{padding:0 18px;height:76px}.brand{font-size:10px;gap:11px}.brand b{font-size:15px}.brand-mark{width:36px;height:36px;font-size:25px}.top-actions{gap:10px}.top-actions a{display:none}.top-actions .quiet{font-size:12px;padding:10px}main{padding:0 18px}.intro{padding:32px 0 27px;gap:10px}.intro .eyebrow{font-size:10px}.intro h1{font-size:40px}.intro-copy{font-size:14px;max-width:220px;margin-top:12px}.ticket{min-width:85px;padding:10px 9px;align-self:center}.ticket strong{font-size:35px}.ticket span{font-size:9px}.ticket span:last-child{max-width:64px;text-align:center;line-height:1.6}.filters{display:block;margin-bottom:18px;padding-bottom:13px}#categories{gap:4px;flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 10px}#categories button{white-space:nowrap;font-size:12px;padding:10px 11px}#records-button{border:0;padding:8px 2px;font-size:13px}.games{gap:12px}.card-screen{height:115px}.card-content{padding:13px 12px 16px}.card-content h2{font-size:19px;margin:8px 0}.card-content p{font-size:12px}.badge{font-size:10px;letter-spacing:.04em}.card-number{font-size:10px}.card-bottom{margin-top:15px;align-items:flex-start;flex-direction:column;gap:9px}.card-record{font-size:11px}.play-label{font-size:13px}.privacy-note{font-size:12px;text-align:left;line-height:1.8}footer{padding:23px 18px;flex-wrap:wrap;gap:17px;font-size:10px}footer>span:nth-child(2){display:none}footer a{font-size:12px}dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:12px}.game-top{padding:16px 14px 13px;gap:5px}.game-top h2{font-size:22px}.game-top .eyebrow{font-size:9px}.game-actions{gap:5px}.game-actions .quiet{padding:10px;font-size:12px}.close{width:36px;height:36px;font-size:17px}.game-layout{grid-template-columns:1fr;padding:12px;gap:15px}.scoreboard{padding:11px 14px;gap:15px;font-size:9px}.scoreboard strong{font-size:17px;margin-left:5px}.instructions{display:grid;grid-template-columns:1fr auto;gap:0 15px;padding:0 3px}.instructions>.eyebrow{grid-column:1/-1;margin-bottom:5px}.instructions>p:not(.eyebrow){font-size:13px;line-height:1.7;margin-bottom:6px}.instructions>.hint{display:none}.instructions>.full{grid-column:2;grid-row:2;align-self:start;width:auto}.instructions .local-label{font-size:11px;grid-column:1/-1;margin:7px 0 4px;text-align:left}.instructions #extra-settings{grid-column:1/-1}#board{padding:12px;gap:10px}.tile-grid{gap:7px}.tile{border-radius:6px}.quiz-question{font-size:18px;margin:0}.answer{padding:10px 12px;font-size:14px}.quiz-feedback{font-size:12px}.overlay{padding:20px}.overlay>p:not(.eyebrow){font-size:14px}.game-dialog:fullscreen{max-height:100dvh}.play-area{max-height:65dvh;aspect-ratio:1;margin:auto;width:100%}.touch-controls{margin-top:10px}.touch-controls button{min-height:42px}}
@media(max-width:350px){.intro h1{font-size:32px}.ticket{display:none}.games{grid-template-columns:1fr}.card-screen{height:150px}.card-content p{font-size:14px}.game-actions #fullscreen{display:none}}
.play-area{width:min(100%,60dvh);max-width:540px;max-height:none;margin-inline:auto}.touch-controls{max-width:540px;margin-inline:auto;margin-top:14px}#board{min-height:0}.quiz-question{flex-shrink:0}.quiz-answers{flex-shrink:0}.simon-grid{min-height:0;max-height:85%;flex-shrink:1}.quiz-feedback{flex-shrink:0}#board>.primary{flex-shrink:0}
@media(max-width:600px){.play-area{width:100%;max-height:none}.card-content p{font-size:14px}.card-content h2{font-size:20px}.card-record{font-size:12px}.badge{font-size:11px}.intro .eyebrow{font-size:11px}.game-top .eyebrow{font-size:11px}#categories button{font-size:14px}.touch-controls{margin-top:10px}.tile-grid.four{min-height:0}.quiz-question{font-size:17px}.quiz-answers{gap:6px}.answer{padding:9px 10px}.quiz-progress{font-size:12px}.quiz-feedback{min-height:17px}.quiz-feedback:empty{display:none}#board{gap:8px}#board>.primary{padding:10px 18px;min-height:42px;font-size:14px}.game-top h2{font-size:21px}}
#board{justify-content:safe center}.skip:not(:focus){clip-path:inset(50%)}
.quiz-select{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;font-size:14px;color:var(--muted)}.quiz-select select{font:inherit;background:#16273c;color:var(--text);border:1px solid #3a536e;border-radius:7px;padding:10px;max-width:70%;min-width:55%}.quiz-history-note{font-size:12px;color:var(--muted);line-height:1.65;margin:2px 0}.quiz-setup .board-message{font-size:13px}.game-toolbar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.game-toolbar .quiet{padding:8px 12px;font-size:13px}.mine-grid{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:3px}.mine-cell{min-width:0;min-height:0;background:#20344c;border:1px solid #35516c;border-radius:4px;font:700 18px var(--mono);color:var(--cyan);padding:0;touch-action:manipulation}.mine-cell.revealed{background:#0b1726;border-color:#152d43}.mine-cell[data-count="2"]{color:#83e6b3}.mine-cell[data-count="3"]{color:#ef91be}.mine-cell[data-count="4"]{color:#bcabff}.mole-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:15px;padding:10px}.mole-hole{min-width:0;min-height:0;background:#142236;border:2px solid #213951;border-radius:50%;font-size:clamp(16px,3vw,30px);font-weight:800;color:#091521;touch-action:manipulation}.mole-hole.target{background:#f6c67b;border-color:#ffe7b1;box-shadow:0 6px 0 #89602d}.mole-hole.trap{background:#ef91be;border-color:#ffc7e2}.word-list{display:flex;justify-content:center;flex-wrap:wrap;gap:7px 12px;flex-shrink:0}.word-list span{font:700 12px var(--mono);letter-spacing:.07em;color:#bcd0e2}.word-list .found{text-decoration:line-through;color:#83e6b3}.word-grid{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);width:100%;aspect-ratio:1;gap:2px}.letter-cell{min-width:0;min-height:0;padding:0;background:#15283c;border:1px solid transparent;border-radius:3px;color:#dae9f6;font:700 17px var(--mono);touch-action:manipulation}.letter-cell.selected-letter{background:#627086;border-color:#fff}.letter-cell.found-letter{background:#245b4f;color:#c5ffe1}.sudoku-grid{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);width:100%;aspect-ratio:1;border:2px solid #7794ad;flex-shrink:0}.sudoku-cell{min-width:0;min-height:0;padding:0;border:1px solid #35516b;border-radius:0;background:#13263c;color:#65e9f4;font:600 clamp(15px,2vw,25px) var(--mono)}.sudoku-cell.given{color:#e1ebf6;background:#0c1725}.sudoku-cell.current{background:#2f5468;outline:2px solid var(--cyan);outline-offset:-3px}.sudoku-cell.invalid{color:#ffb1c2;background:#502334}.number-pad{display:grid;grid-template-columns:repeat(9,1fr);width:100%;gap:4px;flex-shrink:0}.number-pad .quiet{min-width:0;padding:10px 0;color:var(--cyan);font-weight:700;font-size:16px}#board.long-board{height:auto;overflow:visible}.play-area:has(#board.long-board:not([hidden])){aspect-ratio:auto;min-height:300px}.long-board .word-grid{flex-shrink:0}
@media(max-width:600px){.quiz-select{font-size:13px;gap:8px}.quiz-select select{padding:9px;font-size:13px}.quiz-history-note{font-size:11px}.quiz-setup .board-message{font-size:12px}.mine-cell{font-size:16px}.mole-grid{gap:10px}.letter-cell{font-size:15px}.word-list span{font-size:12px}.number-pad .quiet{padding:10px 0;font-size:16px}.sudoku-cell{font-size:19px}.quiz-setup .quiz-question{font-size:19px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.game-card:hover{transform:none}}
.analytics-consent{display:flex;align-items:center;gap:25px;padding:20px 24px;margin:0 0 25px;border:1px solid #2b4b60;border-radius:12px;background:#102333;font-size:13px}.analytics-consent[hidden]{display:none}.analytics-consent strong{color:#c9f4fa;font-size:14px}.analytics-consent p{color:#9eb3c7;line-height:1.65;margin:7px 0 0}.analytics-buttons{display:flex;gap:9px;flex-shrink:0}.analytics-buttons button{min-height:44px;white-space:nowrap}#analytics-state{font-size:11px}footer #analytics-options{font-size:11px;padding:7px 10px}@media(max-width:850px){.analytics-consent{display:block;padding:17px}.analytics-buttons{margin-top:15px;flex-wrap:wrap}.analytics-buttons button{flex:1}footer{flex-wrap:wrap}}
