:root{color-scheme:dark;--ink:#10292c;--panel:#173438;--cream:#edf1e7;--muted:#a9bcb5;--gold:#eac16f;--green:#b9ddbc;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#0c2023;color:var(--cream)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{touch-action:manipulation} .game-shell{max-width:1440px;margin:auto;padding:0 36px}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{font-size:38px;font-weight:750;letter-spacing:-2px;text-decoration:none;color:var(--cream)}.wordmark span{color:var(--gold)}.edition,.eyebrow{font-size:12px;letter-spacing:2.4px;font-weight:700}.edition{color:var(--muted)}.top-actions{display:flex;gap:9px}.icon-button{border:1px solid #496061;background:transparent;color:var(--cream);border-radius:100px;padding:10px 16px;font-size:14px}.icon-button:disabled{opacity:.35}.icon-button:hover:not(:disabled){background:#264247}.drive{height:clamp(360px,62vh,680px);position:relative;isolation:isolate;overflow:hidden;border-radius:18px;border:1px solid #526c69;background:#acbfba}canvas{display:block;width:100%;height:100%}.scene-grain{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 110px #142e3045}.drive-top{position:absolute;inset:25px 28px auto;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;color:#193738;text-shadow:0 1px 14px #d3dfd5}.drive-top h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(24px,2.8vw,39px);margin:8px 0}.progress{display:flex;gap:7px;padding-top:5px}.pip{width:11px;height:11px;border-radius:50%;border:1.5px solid #355554;background:#d0dbd380}.pip.hit{background:#214c40;border-color:#214c40}.pip.miss{background:#a46b4b;border-color:#865537}.pip.current{box-shadow:0 0 0 4px #35555420}.dashboard{position:absolute;bottom:0;left:0;right:0;min-height:76px;background:linear-gradient(180deg,#173235eb,#102629);border-top:2px solid #71918a;display:flex;align-items:center;justify-content:space-between;padding:13px 30px;border-radius:50% 50% 0 0 / 13px 13px 0 0;gap:20px}.speed,.hit-count{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.speed strong{font-size:30px;font-weight:400;font-variant-numeric:tabular-nums}.speed span,.hit-count span{font-size:12px;color:var(--muted)}.hit-count{flex-direction:column;gap:3px;align-items:flex-end}.hit-count strong{font-size:18px;font-weight:400}.dash-center{display:flex;gap:15px;align-items:center;font-size:12px;color:#c1cec5;text-align:center}.dash-line{width:30px;height:1px;background:#617a73}.controls{display:grid;grid-template-columns:1fr minmax(230px,330px) 1fr;align-items:center;gap:28px;padding:26px 2px}.control-copy .eyebrow{color:var(--gold);font-size:11px}.control-copy p{font-family:Georgia,serif;font-size:22px;margin:8px 0;color:#e0e7dc}.middle-button{border:1px solid #ffe3a3;background:var(--gold);color:#28332d;box-shadow:0 6px 0 #a48143;border-radius:12px;min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;transition:transform .12s,box-shadow .12s,background .12s;user-select:none}.middle-button>span:first-child{font-size:24px;letter-spacing:5px;font-weight:700;padding-left:5px}.button-hint{font-size:10px;letter-spacing:2px}.middle-button:active:not(:disabled),.middle-button.pressed{transform:translateY(4px);box-shadow:0 2px 0 #a48143}.middle-button:disabled{background:#54645a;border-color:#718176;box-shadow:0 5px 0 #34483f;color:#bcc7b9}.control-aside{text-align:right;display:flex;flex-direction:column;gap:9px;font-size:14px;color:#c2cfc7}.keyboard-hint{font-size:12px;color:#819a94}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #304b4c;padding:17px 0 24px;font-size:12px;color:#91aaa3}.text-button{padding:4px 0;color:#c4d3c8;background:none;border:0;font-size:14px}.text-button:hover{color:var(--gold)}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#15343748;backdrop-filter:blur(5px);padding:24px;overflow:auto}.overlay[hidden]{display:none}.intro-card{text-align:center;width:min(100%,480px);padding:28px 36px;background:#102b2eee;border:1px solid #71908880;border-radius:16px;box-shadow:0 16px 65px #11292740}.intro-card .eyebrow{color:var(--gold);font-size:11px}.intro-card h2{font-family:Georgia,serif;font-size:clamp(34px,4vw,53px);font-weight:400;line-height:1.02;letter-spacing:-1.6px;margin:17px 0}.intro-card p{font-size:15px;line-height:1.65;color:#c4d3c9;margin:17px 0}.primary{width:100%;background:var(--gold);color:#23372e;border:0;border-radius:7px;padding:16px 20px;font-size:16px;font-weight:700;display:flex;justify-content:space-between;gap:20px;align-items:center}.primary:hover{background:#ffdb91}.intro-card .small{font-size:12px;color:#93aca3;margin:12px 0}.feedback{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;background:#102b2ef2;border:1px solid #728e82;border-radius:12px;min-width:200px;padding:16px 24px;box-shadow:0 6px 28px #12333035}.feedback.visible{opacity:1}.feedback strong{display:block;font-family:Georgia,serif;font-size:30px;color:var(--gold);font-weight:400}.feedback span{display:block;font-size:13px;margin-top:6px;color:#d7e3d6}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.result-stats strong{display:block;font-size:27px;color:var(--gold);font-weight:400}.result-stats span{font-size:11px;color:var(--muted)}.result-dots{display:flex;justify-content:center;gap:7px}.result-dots span{font-size:11px;padding:6px;border-radius:4px;background:#395044}.result-dots .miss{background:#664c38}.level-list{display:grid;gap:8px;margin:18px 0}.level-option{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:12px;border:1px solid #526d63;border-radius:7px;background:#29453f;color:var(--cream)}.level-option:disabled{opacity:.45}.level-option b{font-size:21px;font-family:Georgia,serif;color:var(--gold)}.level-option span{display:flex;flex-direction:column;gap:4px;font-size:14px}.level-option small{font-size:12px;color:#b4c5b9}.storage-note{font-size:12px;color:var(--gold)}
@media(min-width:1500px){.game-shell{padding-top:15px}}@media(max-width:700px){.game-shell{padding:0 14px}.topbar{height:70px;gap:8px}.wordmark{font-size:32px}.edition{display:none}.icon-button{padding:9px 13px;font-size:12px}.drive{height:clamp(280px,calc(100svh - 280px),620px);border-radius:13px}.drive-top{inset:20px 16px auto}.drive-top h1{font-size:25px}.eyebrow{font-size:10px;letter-spacing:1.6px}.progress{gap:4px}.pip{width:8px;height:8px}.dashboard{padding:13px 18px;min-height:70px;gap:10px}.dash-center{font-size:11px;max-width:145px}.dash-line{display:none}.speed strong{font-size:25px}.controls{grid-template-columns:1fr;gap:13px;padding:18px 2px 22px}.control-copy{text-align:center}.control-copy p{font-size:18px;margin:5px 0}.control-copy .eyebrow{font-size:10px}.middle-button{min-height:76px;width:100%;max-width:460px;justify-self:center}.control-aside{display:none}footer{font-size:11px;padding:14px 0 22px;align-items:flex-start}footer>span{max-width:200px;line-height:1.5}footer .text-button{font-size:12px;text-align:right}.intro-card{padding:23px 22px}.intro-card h2{font-size:40px}.intro-card p{font-size:14px}.overlay{padding:15px}.feedback{top:45%}}@media(max-height:600px) and (min-width:701px){.topbar{height:58px}.drive{height:360px}.controls{padding:18px 0}.intro-card{padding:16px 26px}.intro-card h2{font-size:32px;margin:10px 0}.intro-card p{margin:10px 0}}

.overlay{place-items:start center}.intro-card{margin-block:auto}
.menu-links{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.text-button:disabled{opacity:.4;cursor:default}.primary:disabled{opacity:.55;cursor:wait}.name-label{display:block;text-align:left;font-size:14px;margin-bottom:8px}#player-name{width:100%;padding:12px;border:1px solid #92aaa1;border-radius:6px;background:#213e3e;color:var(--cream);font:inherit;font-size:16px}#submit-error{color:#f4ba9f;font-size:14px}.board-scroll{max-height:240px;overflow:auto;margin-top:12px}.board{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.board th{font-size:12px;color:var(--muted);padding:8px 6px;border-bottom:1px solid #638075}.board td{padding:10px 6px;border-bottom:1px solid #36574b}.board th:last-child,.board td:last-child{text-align:right;white-space:nowrap}.board td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.personal-best{color:var(--gold)!important}
.control-copy{min-height:52px}.drive .feedback{top:auto;bottom:92px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);min-width:0;padding:9px 16px;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:opacity .12s ease;box-shadow:0 3px 12px #12333025}.drive .feedback strong{font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:700;line-height:1.2}.drive .feedback span{font-size:15px;margin:0;line-height:1.2}@media(max-width:700px){.drive .feedback{bottom:84px;padding:8px 13px}.drive .feedback strong{font-size:18px}.drive .feedback span{font-size:14px}}
.limit-badge{display:flex;flex-direction:column;align-items:center;gap:3px;margin-left:7px;align-self:center}.limit-badge b{display:grid;place-items:center;width:30px;height:30px;border:2px solid #b86d58;border-radius:50%;background:#eee9db;color:#263e37;font-size:13px}.limit-badge small{font-size:10px;color:var(--muted)}
@media(max-width:700px){.dash-center{flex:1;min-width:0}.speed{gap:5px}.limit-badge{margin-left:3px}.dashboard{gap:8px}}

#challenge-start,#new-challenge,#board-play{position:relative;justify-content:center;padding-inline:48px;text-align:center}#challenge-start>span,#new-challenge>span,#board-play>span{position:absolute;right:20px;top:50%;transform:translateY(-50%)}

.wordmark .wordmark-stem,.wordmark .wordmark-dot{color:var(--cream)}.wordmark-stem{position:relative;display:inline-block}.wordmark-stem::after{content:"d";position:absolute;inset:0;color:var(--gold);clip-path:inset(0 0 0 72%)}
