:root{--cream:#f8f5ef;--parchment:#efebe4;--ink:#2d2824;--ink-muted:#6d6864;--hairline:#dad7d2;--low-time:#c92f33;--sheet-ambient:0 2px 24px rgba(45,40,36,0.1);--ease-out-quint:cubic-bezier(0.22,1,0.36,1);--mono:ui-monospace,"SF Mono",Menlo,monospace}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.4;background:var(--cream);color:var(--ink);touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}main{max-width:480px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:16px}main.match{min-height:100dvh;padding:16px;justify-content:space-between}.display{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.01em}.title{font-size:20px;line-height:1.2}.label,.title{font-weight:600}.label{font-size:12px;line-height:1;letter-spacing:.08em;text-transform:uppercase}.muted{color:var(--ink-muted)}button{font:inherit;font-weight:600;min-height:44px;padding:10px 24px;border:1px solid var(--hairline);border-radius:10px;background:var(--cream);color:var(--ink);cursor:pointer;transition:background .15s var(--ease-out-quint),opacity .15s var(--ease-out-quint)}button.primary{background:var(--ink);border-color:var(--ink);color:var(--cream)}button:active{opacity:.7}button:disabled{opacity:.4;cursor:default}input{font:inherit;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--cream);color:var(--ink);width:100%}input::placeholder{color:var(--ink-muted)}input:focus{outline:none;border-color:var(--ink)}.segmented{display:flex;background:var(--parchment);border-radius:10px;padding:3px}.segmented button{flex:1 1;min-height:38px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--ink-muted)}.segmented button.on{background:var(--ink);color:var(--cream)}.row{display:flex;gap:8px;align-items:center}.status{font-size:14px;color:var(--ink-muted);min-height:1.2em}.error{color:var(--low-time)}.clock{font-family:var(--mono);font-size:22px;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:5ch;text-align:center;padding:6px 12px;border-radius:6px;background:var(--parchment);color:var(--ink-muted)}.clock.active{background:var(--ink);color:var(--cream)}.clock.low{color:var(--low-time)}.bar{align-items:center;justify-content:space-between;gap:16px}.bar,.stack{display:flex}.stack{flex-direction:column;gap:4px}.stack.end{align-items:flex-end}.board{display:grid;grid-template-columns:repeat(8,1fr);width:min(100vw - 32px,62vh);max-width:100%;margin:0 auto;border:1px solid var(--hairline);-moz-user-select:none;user-select:none;-webkit-user-select:none}.board,.cell{position:relative;aspect-ratio:1}.cell{box-shadow:inset 0 0 0 .5px var(--hairline)}.cell-glyph{position:absolute;inset:30%;width:40%;height:40%;opacity:.35}.legal-ring{inset:32%;border:1.5px solid var(--ink);border-radius:50%}.legal-ring,.towers{position:absolute;pointer-events:none}.towers{inset:0}.slot{top:0;left:0;width:12.5%;height:12.5%;transition:transform .22s var(--ease-out-quint)}.slot,.tower{position:absolute}.tower{inset:15%;border-radius:50%}.tower.gold{box-shadow:0 0 0 2.5px var(--cream)}.tower.black{box-shadow:0 0 0 2.5px var(--ink)}.tower.gold.selected{box-shadow:0 0 0 2.5px var(--cream),0 0 0 4.5px var(--ink)}.tower.black.selected{box-shadow:0 0 0 4.5px var(--ink)}.tower-glyph{position:absolute;inset:20%;width:60%;height:60%}.sumo{position:absolute;top:-4.3%;left:0;right:0;display:flex;justify-content:center;gap:10%}.sumo i{width:8.6%;aspect-ratio:1;border-radius:50%;animation:sumo-in .22s var(--ease-out-quint)}@keyframes sumo-in{0%{transform:scale(0)}}.tower.gold .sumo i{background:var(--cream);box-shadow:inset 0 0 0 .5px rgba(45,40,36,.35)}.push-target{position:absolute;inset:8%;border:2px solid var(--ink);pointer-events:none}.tower.black .sumo i{background:var(--ink)}.scrim{position:fixed;inset:0;background:rgba(45,40,36,.2);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;background:var(--parchment);border-radius:10px 10px 0 0;padding:40px 24px calc(24px + env(safe-area-inset-bottom));box-shadow:var(--sheet-ambient);display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;animation:sheet-in .22s var(--ease-out-quint)}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.sheet .score{font-size:22px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-muted)}.code,.sheet .score{font-family:var(--mono);font-weight:600}.code{font-size:32px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:6px;text-align:center;padding:16px;border-radius:10px;background:var(--parchment)}.listrow{gap:8px;padding:10px 0;box-shadow:inset 0 -.5px 0 var(--hairline)}.listrow .title{font-size:17px}.listrow.challenge{padding:10px 12px;border-radius:10px;box-shadow:none}.dot,.listrow.challenge{background:var(--parchment)}.dot{width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 .5px var(--hairline);flex:none}.dot.on{background:var(--ink);box-shadow:none}.hero{width:min(280px,60vw);align-self:center;margin-bottom:-16px}.rule{border:none;height:.5px;background:var(--hairline);margin:8px 0;align-self:stretch;width:100%}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation:none!important}}