:root{--font-display: "Black Han Sans", "Arial Black", system-ui, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--text-hero: clamp(3.4rem, 17vw, 6.6rem);--text-count: clamp(5rem, 30vw, 11rem);--text-headline: clamp(2rem, 9vw, 3.4rem);--space-edge: clamp(1.1rem, 5vw, 2rem);--plate: 5px;--line: 3px;--duration-fast: .12s;--duration-pop: .52s;--ease-out: cubic-bezier(.16, 1, .3, 1);--wall: color-mix(in oklab, var(--ink) 86%, var(--spot1));--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E")}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--wall);color:var(--ink);font-family:var(--font-body);-webkit-text-size-adjust:100%;overscroll-behavior:none}.sheet{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;height:100dvh;max-width:34rem;margin:0 auto;background:var(--paper);box-shadow:0 0 0 var(--line) var(--ink),1.2rem 1.2rem color-mix(in oklab,var(--ink) 70%,transparent);overflow:hidden}.field{position:relative;min-height:0;outline:none;touch-action:manipulation;user-select:none;-webkit-user-select:none}.field:after{content:"";position:absolute;inset:0;background:var(--grain);mix-blend-mode:multiply;pointer-events:none}.stage{position:absolute;inset:0;width:100%;height:100%;display:block}[data-screen=play] .field{cursor:pointer}.hud{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-edge);padding-top:max(var(--space-edge),env(safe-area-inset-top));pointer-events:none}.count{margin:0;font-family:var(--font-display);font-size:var(--text-count);line-height:.82;letter-spacing:-.02em;text-shadow:var(--plate) var(--plate) 0 var(--spot2);font-variant-numeric:tabular-nums}.count-num{display:inline-block;transform-origin:0 100%}.count-unit{font-size:.26em;margin-left:.15em;text-shadow:none;letter-spacing:0}.bump{animation:bump var(--duration-pop) var(--ease-out)}.tally{display:grid;gap:.5rem;margin:.35rem 0 0;text-align:right}.tally dt{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.72}.tally dd{margin:0;font-family:var(--font-display);font-size:1.7rem;line-height:1;font-variant-numeric:tabular-nums}.grade{position:absolute;left:var(--space-edge);top:calc(var(--space-edge) + var(--text-count) * .92);margin:0;padding:.15em .5em .1em;background:var(--spot2);color:var(--paper);font-family:var(--font-display);font-size:1.5rem;transform:rotate(-4deg);opacity:0;pointer-events:none}.grade:empty{display:none}.pop{animation:pop .9s var(--ease-out)}.start{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-edge);padding-top:max(calc(var(--space-edge) * 1.4),env(safe-area-inset-top));pointer-events:none}.start h1{margin:0;max-width:6em;font-family:var(--font-display);font-weight:400;font-size:var(--text-hero);line-height:.98;letter-spacing:-.01em;text-shadow:var(--plate) var(--plate) 0 var(--spot2);word-break:keep-all}.rule{margin:1.1rem 0 0;max-width:11em;padding-left:.7em;border-left:var(--line) solid var(--spot1);font-size:1.05rem;font-weight:600;line-height:1.45;word-break:keep-all}.start .stamp{margin-top:auto;margin-bottom:calc(var(--space-edge) * .6);pointer-events:auto}.pages{display:flex;flex-wrap:wrap;gap:.2rem 1rem;max-width:60%;pointer-events:auto;font-size:.85rem;font-weight:700}.pages a{padding-block:.4rem;color:inherit;text-decoration-color:var(--spot2);text-decoration-thickness:2px;text-underline-offset:3px}.pages a:hover,.pages a:focus-visible{background:var(--spot2);color:var(--paper);text-decoration:none;outline:none}.stamp{appearance:none;border:var(--line) solid var(--ink);border-radius:2px;padding:.85em 1.5em .75em;background:var(--ink);color:var(--paper);font-family:var(--font-display);font-size:1.45rem;line-height:1;letter-spacing:.02em;box-shadow:var(--plate) var(--plate) 0 var(--spot2);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.stamp-small{font-size:1.05rem;padding:.75em 1.1em .65em}.stamp-light{background:var(--paper);color:var(--ink);box-shadow:var(--plate) var(--plate) 0 var(--spot1)}.stamp:hover{transform:translate(-1px,-1px);box-shadow:calc(var(--plate) + 1px) calc(var(--plate) + 1px) 0 var(--spot2)}.stamp-light:hover{box-shadow:calc(var(--plate) + 1px) calc(var(--plate) + 1px) 0 var(--spot1)}.stamp:active{transform:translate(var(--plate),var(--plate));box-shadow:0 0 0 var(--spot2)}.stamp:focus-visible{outline:4px solid var(--spot1);outline-offset:4px}.stamp:disabled{opacity:.55;cursor:default}.stamp[hidden]{display:none}.finish{position:absolute;right:var(--space-edge);bottom:max(var(--space-edge),env(safe-area-inset-bottom))}.result{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:1rem;padding:var(--space-edge);padding-top:max(calc(var(--space-edge) * 3.2),env(safe-area-inset-top));justify-items:start}.poster{height:100%;width:auto;max-width:100%;aspect-ratio:9 / 16;justify-self:center;border:var(--line) solid var(--ink);box-shadow:calc(var(--plate) * 1.6) calc(var(--plate) * 1.6) 0 var(--spot1);transform:rotate(-1.6deg);animation:pin .62s var(--ease-out)}.result-side{width:100%}.result h2{margin:0;font-family:var(--font-display);font-weight:400;font-size:var(--text-headline);line-height:1.05;text-shadow:3px 3px 0 var(--spot2);word-break:keep-all}.result-score{margin:.35rem 0 .9rem;font-weight:700;letter-spacing:.04em}.actions{display:flex;flex-wrap:wrap;gap:.9rem .8rem;align-items:center;padding-bottom:.4rem}[data-screen=start] .hud{inset:auto 0 0;justify-content:flex-end;align-items:flex-end;padding-bottom:max(calc(var(--space-edge) * 1.4),env(safe-area-inset-bottom))}[data-screen=start] :is(.count,.tally-score,.grade,.finish,.result),[data-screen=play] :is(.start,.result),[data-screen=result] :is(.start,.count,.tally-score,.grade,.finish,.stage){display:none}.ad-host{display:none}.has-ads .ad-host{display:block;height:90px;overflow:hidden;border-top:var(--line) solid var(--ink);background:var(--paper)}.ad-host.guard{pointer-events:none}[data-ad][hidden]{display:none}@keyframes bump{0%{transform:scale(1.22,.86)}45%{transform:scale(.96,1.06)}to{transform:scale(1)}}@keyframes pop{0%{opacity:0;transform:rotate(-4deg) scale(.6)}18%{opacity:1;transform:rotate(-4deg) scale(1.08)}70%{opacity:1;transform:rotate(-4deg) scale(1)}to{opacity:0;transform:rotate(-4deg) translateY(-.4em)}}@keyframes pin{0%{opacity:0;transform:rotate(3deg) translateY(1.2rem)}to{opacity:1;transform:rotate(-1.6deg)}}@media(min-height:46rem)and (min-width:40rem){.sheet{height:min(100dvh - 3rem,58rem);margin-top:1.5rem}}@media(prefers-reduced-motion:reduce){.bump,.pop,.poster{animation:none}.grade:not(:empty){opacity:1}.stamp{transition:none}}
