*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4;font-variant-numeric:tabular-nums}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 80% 45% at 50% 38%,color-mix(in srgb,var(--cell-lit) 14%,transparent),transparent 70%)}button,a{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.page{width:100%;max-width:512px;margin:0 auto;padding:0 16px max(20px,env(safe-area-inset-bottom))}.top{display:flex;align-items:center;justify-content:space-between;gap:8px;height:60px}.title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:.01em}.top-actions{display:flex;gap:2px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;cursor:pointer}.icon-btn:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.icon{display:block;flex:none}.meta{display:flex;align-items:baseline;justify-content:space-between;min-height:34px}.timer{font-size:1.7rem;font-weight:650;letter-spacing:.02em}.banner{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--cell-lit) 22%,var(--surface));border:1px solid color-mix(in srgb,var(--cell-lit) 55%,transparent);font-weight:550}.board{--conflict-clue: color-mix(in srgb, var(--conflict), #fff 45%);display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));gap:2px;width:100%;max-width:480px;margin:0 auto;padding:2px;aspect-ratio:1;container-type:inline-size;background:var(--board-bg);border-radius:14px;box-shadow:0 10px 30px -12px color-mix(in srgb,var(--cell-black) 60%,transparent);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board.board-skeleton{--size: 7;opacity:.5}.cell{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:0;border:0;border-radius:5px;background:var(--cell-white);color:var(--text);font-size:clamp(14px,calc(100cqw / var(--size) * .52),28px);font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .16s ease,box-shadow .16s ease,border-radius .16s ease}.cell.lit{background:var(--cell-lit);box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 30%,transparent),inset 0 0 12px color-mix(in srgb,#fff 35%,transparent)}.cell.lamp{z-index:1;color:var(--lamp);box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 30%,transparent),0 0 16px 3px color-mix(in srgb,var(--cell-lit) 75%,transparent)}.cell.lamp .icon{width:64%;height:64%;animation:pop .18s ease-out}.cell.black{background:var(--cell-black);color:var(--clue-text);cursor:default}.cell.clue-bad{color:var(--conflict-clue);border-radius:50%;box-shadow:inset 0 0 0 2.5px var(--conflict-clue)}.cell.lamp.conflict{border-radius:50%;box-shadow:inset 0 0 0 3px var(--conflict),0 0 0 1px var(--conflict)}.dot-mark{width:24%;aspect-ratio:1;border-radius:50%;background:var(--dot)}.cell.hl{z-index:2;outline:3px solid var(--focus);outline-offset:-2px;animation:pulse .7s ease-in-out 3}.cell.hl-reason{z-index:2;outline:3px dashed var(--focus);outline-offset:-3px}.board.solved{animation:glow .9s ease-out 1}.status{min-height:3.1em;margin:12px 2px 4px;color:var(--text-muted);font-size:.95rem}.toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:12px;background:var(--surface);font-weight:600;text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){background:color-mix(in srgb,var(--text) 6%,var(--surface))}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--cell-lit);border-color:transparent;color:var(--cell-black)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--cell-lit),#fff 14%)}.btn.wide{width:100%}.solved-bar{margin-top:4px}.backdrop{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--cell-black) 62%,transparent);animation:fade .16s ease-out}.sheet{width:100%;max-width:520px;max-height:92vh;max-height:92dvh;overflow-y:auto;padding:8px 16px max(20px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--surface);box-shadow:0 -12px 40px -10px color-mix(in srgb,var(--cell-black) 55%,transparent);animation:rise .22s cubic-bezier(.2,.8,.2,1);outline:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;min-height:52px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sheet-head-end{justify-content:flex-end}.sheet-title{margin:0;font-size:1.25rem;font-weight:700}.sheet-body{display:grid;gap:12px;padding-bottom:4px}.sheet-body p,.sheet-body ul{margin:0}.rules-list{display:grid;gap:10px;padding:0;list-style:none;font-size:1.05rem}.rules-list li{padding-left:14px;border-left:3px solid var(--cell-lit)}.actions{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.actions-result{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.result-time{font-size:2.2rem;font-weight:700;line-height:1.1}.result-line{display:flex;align-items:center;gap:8px}.par-verdict{font-weight:650}.muted{color:var(--text-muted)}.h2h{display:grid;gap:4px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--cell-lit) 18%,var(--bg))}.h2h h3{margin:0 0 2px;font-size:1rem}.h2h .verdict{font-weight:700}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.segmented .btn[aria-checked=true]{background:var(--cell-lit);border-color:transparent;color:var(--cell-black)}.link-row{display:grid;gap:4px}.link-row a{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}.archive-list{display:grid;gap:6px;padding:0;margin:0;list-style:none}.archive-list a{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border-radius:12px;background:var(--bg);text-decoration:none}.archive-list a:hover{background:color-mix(in srgb,var(--cell-lit) 20%,var(--bg))}.archive-n{min-width:3.2ch;font-size:1.25rem;font-weight:700}.archive-meta{flex:1;color:var(--text-muted)}.field{display:grid;gap:6px}.field label{font-weight:600}.field input{min-height:48px;padding:0 12px;border:1px solid color-mix(in srgb,var(--text) 30%,transparent);border-radius:12px;background:var(--bg);color:var(--text);font:inherit}.field .note{margin:0;color:var(--text-muted);font-size:.9rem}.gate{display:grid;gap:18px;justify-items:center;padding-top:18vh;text-align:center}.gate-message{margin:0;max-width:24ch;font-size:1.4rem;font-weight:650;line-height:1.25}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:20;padding:10px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-weight:600;transform:translate(-50%);animation:rise .2s ease-out}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.toast{animation-name:toast-in}@keyframes toast-in{0%{transform:translate(-50%,16px);opacity:0}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.55)}}@keyframes pulse{50%{outline-offset:1px}}@keyframes glow{40%{box-shadow:0 0 40px 8px color-mix(in srgb,var(--cell-lit) 70%,transparent)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.cell.clue-ok{color:var(--cell-lit);border-radius:50%;box-shadow:inset 0 0 0 2.5px var(--cell-lit),0 0 12px -2px color-mix(in srgb,var(--cell-lit) 70%,transparent)}.tutorial{position:fixed;inset:0;z-index:10;overflow-y:auto;background:var(--bg);outline:none;animation:fade .16s ease-out}.tut-inner{display:flex;flex-direction:column;width:100%;max-width:480px;min-height:100%;margin:0 auto;padding:max(8px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.tut-top{display:flex;align-items:center;justify-content:space-between;min-height:52px}.tut-step{color:var(--text-muted);font-weight:600}.btn-text{min-width:44px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.btn-text:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.tut-progress{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;margin-bottom:18px}.tut-progress span{height:5px;border-radius:3px;background:color-mix(in srgb,var(--text) 14%,transparent);transition:background-color .2s ease}.tut-progress span.now{background:color-mix(in srgb,var(--cell-lit) 45%,transparent)}.tut-progress span.on{background:var(--cell-lit)}.tut-copy{min-height:4.2em;margin:0 0 16px;font-size:1.08rem;line-height:1.45}.tut-board .board{max-width:calc(var(--tut-size) * 64px)}.tut-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.tut-done{display:grid;justify-items:center;gap:12px;margin:auto 0;text-align:center;color:var(--text)}.tut-done .icon{color:var(--cell-lit)}.tut-done h2{margin:0;font-size:1.5rem}.tut-done p{margin:0 0 12px;color:var(--text-muted)}.tutorial .cell.hl-reason{animation:pulse 1.4s ease-in-out infinite}.board.solved .cell.lit{animation:sweep .52s ease-out calc(var(--i, 0) * 55ms) both}@keyframes sweep{0%{filter:brightness(1);transform:scale(1)}45%{filter:brightness(1.35);transform:scale(1.07)}to{filter:brightness(1);transform:scale(1)}}.result-burst{display:grid;place-items:center;width:76px;height:76px;margin:0 auto -4px;border-radius:50%;color:var(--cell-lit);background:radial-gradient(circle,color-mix(in srgb,var(--cell-lit) 32%,transparent),transparent 70%);animation:burst .7s cubic-bezier(.2,.9,.3,1.4) both}@keyframes burst{0%{transform:scale(.3) rotate(-20deg);opacity:0}}.milestone{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--cell-lit) 22%,var(--surface));border:1px solid color-mix(in srgb,var(--cell-lit) 60%,transparent);animation:rise .42s .2s cubic-bezier(.2,.8,.2,1) both}.milestone .icon{color:var(--focus)}.milestone strong{font-size:1.1rem}.milestone-soft{margin:0;text-align:center;color:var(--text-muted)}.badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--cell-lit) 30%,transparent);font-size:.85rem;font-weight:650}.par-good{color:var(--focus)}.toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:0 14px;border:0;border-radius:12px;background:var(--bg);color:var(--text);font:inherit;font-weight:550;cursor:pointer}.toggle-track{position:relative;width:46px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--text) 22%,transparent);transition:background-color .16s ease}.toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #0000004d;transition:transform .16s ease}.toggle[aria-checked=true] .toggle-track{background:var(--cell-lit)}.toggle[aria-checked=true] .toggle-knob{transform:translate(18px)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat{padding:10px 6px;border-radius:12px;background:var(--bg);text-align:center}.stat-value{font-size:1.5rem;font-weight:750}.stat-label{color:var(--text-muted);font-size:.8rem}.best-times{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.92rem}.cal-top{display:flex;align-items:center;justify-content:space-between}.cal-title{display:grid;text-align:center;font-size:.95rem}.icon-btn:disabled{opacity:.3;cursor:default}.flip{display:inline-grid;transform:scaleX(-1)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:6px}.cal-head{color:var(--text-muted);font-size:.75rem;font-weight:650;text-align:center}.cal-day{display:grid;place-items:center;aspect-ratio:1;min-height:36px;border-radius:10px;font-size:.9rem;font-weight:600;color:var(--text);text-decoration:none}.cal-pad,.cal-none{color:color-mix(in srgb,var(--text) 25%,transparent)}.cal-missed{background:color-mix(in srgb,var(--text) 5%,transparent);color:var(--text-muted)}.cal-open,.cal-today{background:var(--bg)}.cal-solved{background:var(--cell-lit);color:var(--cell-black);box-shadow:0 0 10px -2px color-mix(in srgb,var(--cell-lit) 80%,transparent)}.cal-is-today{outline:2px solid var(--focus);outline-offset:1px}a.cal-day:hover{filter:brightness(1.08)}@media(prefers-reduced-motion:reduce){.board.solved .cell.lit,.result-burst,.milestone{animation:none!important}}.page.landing{display:flex;flex-direction:column;max-width:1120px;min-height:100vh;min-height:100dvh;padding-inline:20px}.land-top{display:flex;align-items:center;height:68px}.wordmark{display:inline-flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:750;letter-spacing:-.01em}.wordmark-lamp{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--cell-lit);color:var(--lamp);box-shadow:0 0 22px -2px color-mix(in srgb,var(--cell-lit) 70%,transparent)}.land-hero{display:grid;grid-template-areas:"copy" "board" "launch";gap:32px;padding:16px 0 8px;text-align:center}.land-copy{grid-area:copy;display:grid;justify-items:center;gap:18px}.kicker{margin:0;padding:6px 12px;border:1px solid color-mix(in srgb,var(--focus) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--cell-lit) 12%,transparent);color:var(--focus);font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.land-title{margin:0;font-size:clamp(2.8rem,1.6rem + 5.4vw,5.2rem);font-weight:800;line-height:.95;letter-spacing:-.045em}.land-title .accent{color:var(--focus);text-shadow:0 0 36px color-mix(in srgb,var(--cell-lit) 55%,transparent)}.land-sub{max-width:34ch;margin:0;color:var(--text-muted);font-size:1.1rem;line-height:1.5}.hero-board{grid-area:board;position:relative;justify-self:center;width:min(100%,460px);animation:float 7s ease-in-out infinite}.hero-board:before{content:"";position:absolute;inset:-22%;z-index:-1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--cell-lit) 30%,transparent),transparent 62%);pointer-events:none}.hero-board .board{max-width:none;gap:3px;padding:3px;border-radius:20px;box-shadow:0 2px color-mix(in srgb,#fff 8%,transparent) inset,0 40px 80px -30px color-mix(in srgb,var(--cell-black) 75%,transparent)}.hero-board .cell{cursor:default;border-radius:7px}.land-launch{grid-area:launch;display:grid;justify-items:center;gap:14px}.count-label{margin:0;color:var(--text-muted);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:min(100%,420px)}.count-tile{display:grid;gap:4px;text-align:center;padding:14px 0 11px;border:1px solid color-mix(in srgb,var(--text) 10%,transparent);border-radius:16px;background:color-mix(in srgb,var(--surface) 85%,transparent);box-shadow:0 12px 30px -20px color-mix(in srgb,var(--cell-black) 60%,transparent)}.count-num{font-size:clamp(1.8rem,1.2rem + 2.2vw,2.6rem);font-weight:750;line-height:1;letter-spacing:-.02em}.count-unit{color:var(--text-muted);font-size:.68rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.btn.land-cta{width:min(100%,420px);min-height:56px;margin-top:6px;border-radius:16px;font-size:1.05rem;box-shadow:0 14px 34px -14px color-mix(in srgb,var(--cell-lit) 90%,transparent)}.land-opens{margin:0;color:var(--text-muted);font-size:.9rem}.land-features{display:grid;gap:12px;margin-top:56px}.feature{padding:20px;border:1px solid color-mix(in srgb,var(--text) 9%,transparent);border-radius:18px;background:color-mix(in srgb,var(--surface) 80%,transparent)}.feature-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--cell-lit) 20%,transparent);color:var(--focus)}.feature h2{margin:14px 0 4px;font-size:1.02rem;font-weight:700}.feature p{margin:0;color:var(--text-muted);font-size:.93rem}.land-foot{display:flex;justify-content:center;gap:24px;margin-top:auto;padding:44px 0 max(24px,env(safe-area-inset-bottom));font-size:.88rem}.land-foot a{color:var(--text-muted);text-decoration:none}.land-foot a:hover{color:var(--text);text-decoration:underline}@keyframes float{50%{transform:translateY(-8px)}}@media(min-width:720px){.land-features{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:940px){.land-hero{grid-template-columns:minmax(0,1fr) minmax(0,460px);grid-template-areas:"copy board" "launch board";align-items:center;column-gap:80px;row-gap:36px;padding-top:6vh;text-align:left}.land-copy,.land-launch{justify-items:start}.land-copy{align-self:end}.land-launch{align-self:start}.land-sub{font-size:1.2rem}}@media(prefers-reduced-motion:reduce){.hero-board{animation:none}}
