:root{color-scheme:light;--paper:#f7f5ef;--ink:#292622;--muted:#79736b;--accent:#b43b2b;--line:#d9d2c8}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif}
button,input{font:inherit}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;text-align:center;padding:31px 20px 20px}
.eyebrow,.unit,.today,.game-progress,.selection,.word-form,.found-slot,.game-feedback,.portal-egg,.back-link,.lock-screen small{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.eyebrow{color:var(--muted);font-size:10px}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(35px,5.6vw,67px);line-height:1.05;letter-spacing:-.055em;font-weight:400;margin:16px 0 0}
.fun-word{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:var(--accent);background:none;border:0;border-bottom:2px dotted currentColor;padding:0 0 2px;cursor:pointer}
.countdown{display:flex;flex-direction:column;align-items:center;margin:19px 0 0}
.number{font-family:Georgia,'Times New Roman',serif;font-size:clamp(210px,35vw,470px);font-weight:700;line-height:.82;letter-spacing:-.11em;padding-right:.11em;color:var(--accent);font-variant-numeric:lining-nums tabular-nums}
.unit{font-size:18px;letter-spacing:.3em;margin-top:21px;color:var(--accent)}
.reset-countdown{margin-top:10px;padding:3px 4px;border:0;background:none;color:var(--muted);font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.reset-countdown:hover{color:var(--accent)}
.countdown-note{min-height:1em;margin-top:5px;color:var(--muted);font-size:11px}
.deadline{font-size:15px;line-height:1.5;color:var(--muted);margin:20px 0 0}.deadline strong{font-weight:600;color:var(--ink)}
.quip{font-family:Georgia,'Times New Roman',serif;font-size:clamp(21px,2.2vw,29px);font-style:italic;line-height:1.26;max-width:560px;margin:33px 0 0}
.today{font-size:9px;color:var(--muted);margin:16px 0 0}
.game-link{margin-top:auto;padding-top:30px;color:var(--accent);font-size:13px;text-decoration:underline;text-underline-offset:5px}.game-link:hover{color:#85291e}
.egg-response{min-height:1.3em;margin:15px 0 0;color:var(--muted);font-family:Georgia,serif;font-size:14px;font-style:italic}
.game-section{border-top:1px solid var(--line);background:#fffefa;padding:65px 20px 70px}
.game-container{max-width:580px;margin:0 auto;text-align:center}
.game-container h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,6vw,66px);font-weight:400;letter-spacing:-.065em;line-height:1;margin:12px 0 10px}
.game-intro{font-size:14px;line-height:1.55;color:var(--muted);max-width:390px;margin:0 auto 28px}
.game-progress{display:flex;justify-content:space-between;gap:15px;text-align:left;border-bottom:1px solid var(--line);padding-bottom:12px;font-size:9px;color:var(--muted)}
.game-progress span:first-child{color:var(--accent)}
.game-stage{position:relative;width:min(100%,340px);margin:20px auto 0}
.letter-board{width:100%;aspect-ratio:1;position:relative;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);touch-action:none;user-select:none}
.bridge-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.bridge-layer line{stroke:#c8bcb0;stroke-width:9;stroke-linecap:round;transition:opacity .25s,stroke .15s}
.bridge-layer line.path-selected{stroke:var(--accent)}
.bridge-layer line.gone{opacity:0}
.letter-board button{position:relative;z-index:1;align-self:center;justify-self:center;width:67%;height:67%;border:2px solid #b6a99c;border-radius:50%;background:#fffefa;color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-size:clamp(26px,3.3vw,36px);font-weight:700;cursor:pointer;transition:opacity .25s,transform .25s,background .15s,color .15s}
.letter-board button:hover:not(:disabled),.letter-board button:focus-visible{border-color:var(--accent)}
.letter-board button.selected{background:var(--accent);border-color:var(--accent);color:white;transform:scale(1.06)}
.letter-board button.cleared{opacity:0;transform:translateY(20px) scale(.45);pointer-events:none}
.selection{min-height:19px;margin-top:13px;font-size:12px;color:var(--accent)}
.word-form{display:flex;gap:7px;margin:16px auto 0;max-width:430px}
.word-form input{min-width:0;flex:1;border:1px solid var(--line);border-radius:3px;background:white;color:var(--ink);padding:12px;font-size:11px;letter-spacing:.08em}
.word-form button{border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:white;padding:11px 13px;font-size:10px;font-weight:700;letter-spacing:.12em;cursor:pointer}
.word-form button:hover{background:var(--accent);border-color:var(--accent)}
.word-form #clear-word{background:transparent;color:var(--ink)}
.found-list{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px auto 0}
.found-slot{border:1px solid var(--line);border-radius:30px;padding:8px 11px;font-size:9px;color:var(--muted)}
.found-slot.filled{border-color:var(--accent);background:var(--accent);color:white}
.game-feedback{min-height:15px;color:var(--accent);font-size:10px;margin:13px 0 0}
.lock-screen{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center;border:2px solid var(--accent);background:rgba(255,254,250,.97);padding:25px}
.lock-screen small{color:var(--muted);font-size:10px}
.lock-screen strong{font-family:Georgia,'Times New Roman',serif;color:var(--accent);font-size:clamp(52px,10vw,78px);font-weight:700;letter-spacing:-.08em;line-height:1.1;margin-top:12px}
.lock-screen p{font-family:Georgia,serif;font-size:19px;line-height:1.25;max-width:260px}
.lock-screen a,.back-link{color:var(--accent);font-size:11px;text-decoration:underline;text-underline-offset:4px}
.game-closed{font-family:Georgia,serif;font-size:24px;font-style:italic;line-height:1.3;margin:50px auto;color:var(--accent)}
.back-link{display:inline-block;margin-top:34px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
@media(max-width:600px){.hero{padding:26px 18px 17px}.hero h1{font-size:clamp(34px,9vw,50px);margin-top:18px}.countdown{margin-top:22px}.number{font-size:clamp(185px,55vw,275px)}.unit{font-size:14px;margin-top:17px}.deadline{font-size:13px;margin-top:18px}.quip{font-size:22px;margin-top:28px}.today{font-size:8px}.game-section{padding:48px 18px 55px}.game-progress{font-size:8px}.word-form{flex-wrap:wrap}.word-form input{flex-basis:100%}.word-form button{flex:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.letter-board button,.bridge-layer line{transition:none}}
