@font-face{font-family:"Young Serif";src:url(/_next/static/media/young-serif-latin-400-normal.65297b85.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/_next/static/media/atkinson-hyperlegible-next-latin-400-normal.b8f43676.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/_next/static/media/atkinson-hyperlegible-next-latin-600-normal.601fad7e.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(/_next/static/media/atkinson-hyperlegible-next-latin-700-normal.a699a5df.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Mono;src:url(/_next/static/media/atkinson-hyperlegible-mono-latin-400-normal.7ed633a9.woff2) format("woff2");font-weight:400;font-display:swap}:root{--surface:#FBF8F1;--muted:#5E554D;--primary-fg:#FBF7EF;--accent-fg:#241F1C;--hole:#E4D8C2;--destructive-fg:#FBF7EF;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r-s:4px;--r-m:10px;--r-l:18px;--t1:14px;--t2:17px;--t3:21px;--t4:26px;--t5:33px;--t6:41px;--t7:52px;--display:"Young Serif",Georgia,serif;--body:"Atkinson Hyperlegible Next",system-ui,sans-serif;--mono:"Atkinson Hyperlegible Mono",ui-monospace,monospace;--font-display:var(--display);--font-body:var(--body);--font-ui:var(--body);--ease-out:cubic-bezier(0.16,1,0.3,1);--pad:16px;color-scheme:light;accent-color:var(--primary);scrollbar-color:var(--border) var(--background)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--foreground);font:400 var(--t2)/1.45 var(--body);background:var(--background) url(/_next/static/media/grain.f0793bfe.svg);overflow-wrap:normal;word-break:normal;hyphens:none;font-variant-numeric:tabular-nums}::selection{background:var(--primary);color:var(--primary-fg)}input{caret-color:var(--primary)}a{text-underline-offset:3px;text-decoration-thickness:1.5px}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;line-height:1.15;text-wrap:balance}p{margin:0;text-wrap:pretty}.btn{min-height:48px;min-width:48px;padding:0 var(--s5);border-radius:var(--r-m);border:1.5px solid var(--primary);background:transparent;color:var(--primary);font-weight:700;font-size:var(--t2);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);text-decoration:none;transition:background-color .12s var(--ease-out),color .12s var(--ease-out),border-color .12s var(--ease-out),transform .12s var(--ease-out)}.btn:hover{background:var(--surface)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--primary);color:var(--primary-fg)}.btn.primary:hover{background:var(--foreground);border-color:var(--foreground)}.btn.quiet{border-color:transparent;color:var(--muted);font-weight:600;padding:0 var(--s3)}.btn.quiet:hover{color:var(--foreground);background:transparent;text-decoration:underline}.btn.full{width:100%}.btn.icon{padding:0;width:48px;font-size:var(--t4);line-height:1;border-color:transparent;color:var(--muted)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;background:var(--hole);border-color:var(--border);color:var(--muted);transform:none}.btn[aria-busy=true]{cursor:progress}.strip{display:flex;align-items:center;gap:6px;min-height:18px}.strip,.strip .h{position:relative}.strip .h{width:14px;height:14px;border-radius:50%;background:var(--hole);border:1.5px solid var(--muted);flex:none}.strip .h.p{background:transparent;border-color:var(--primary)}.strip .h.ring{box-shadow:0 0 0 3px var(--accent),0 0 0 4.5px var(--foreground);margin:0 4px}.strip .none{width:74px;height:18px;border:1.5px dashed var(--muted);border-radius:var(--r-m)}.strip.refused .none{border:1.5px solid var(--destructive)}.strip .h .chad{position:absolute;inset:-1.5px;border-radius:50%;background:var(--hole);border:1.5px solid var(--muted)}.fall .chad{animation:fall .22s ease-in both}@keyframes fall{0%{transform:translateY(0);opacity:1}to{transform:translateY(24px);opacity:0}}.springback .chad{animation:spring .2s ease-out both}@keyframes spring{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.strip .h.pop{animation:pop .12s ease-out both;animation-delay:var(--d,0s)}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}.strip .h.ring.pulse{animation:pulse .6s ease-out 1 both}@keyframes pulse{0%{box-shadow:0 0 0 3px var(--accent),0 0 0 4.5px var(--foreground),0 0 0 4.5px rgba(227,167,47,.6)}to{box-shadow:0 0 0 3px var(--accent),0 0 0 4.5px var(--foreground),0 0 0 14px rgba(227,167,47,0)}}.door{display:grid;grid-template-columns:1fr;grid-template-areas:"head" "strip" "find" "orient" "list";align-content:start;gap:var(--s3);padding:var(--s4) var(--pad) 120px;max-width:560px;margin:0 auto}.door.sheet-open{padding-bottom:420px}.door>header{grid-area:head;display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.door>header h1{font-size:var(--t4)}.door aside{display:contents}.lowstrip{grid-area:strip;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);padding:2px 0 4px}.lowstrip .label{font-weight:700;font-size:var(--t1);color:var(--muted);white-space:nowrap}.lowstrip .sep{display:none}.chip{min-height:48px;min-width:48px;padding:0 var(--s3);border-radius:24px;border:1.5px solid var(--border);background:var(--surface);font-weight:600;font-size:var(--t2);display:inline-flex;align-items:center;gap:var(--s2);white-space:nowrap;flex:none;transition:border-color .12s var(--ease-out),background-color .12s var(--ease-out)}.chip:hover{border-color:var(--muted)}.chip .dot{width:14px;height:14px;border-radius:50%;background:var(--hole);border:1.5px solid var(--muted);box-shadow:0 0 0 3px var(--accent),0 0 0 4.5px var(--foreground);margin:0 4px}.chip .zero{width:22px;height:14px;border-radius:var(--r-s);border:1.5px solid var(--destructive)}.chip.pick[aria-pressed=true]{background:var(--primary);color:var(--primary-fg);border-color:var(--primary)}.lowstrip .calm{color:var(--muted);white-space:nowrap;font-size:var(--t2)}.find{grid-area:find;position:relative}.find input{width:100%;height:48px;border:1.5px solid var(--border);border-radius:var(--r-m);background:var(--surface);padding:0 var(--s4);font-weight:600;font-size:var(--t2)}.find input::placeholder{color:var(--muted);font-weight:400}.field input:hover,.find input:hover{border-color:var(--muted)}.find input:disabled{background:var(--background)}.orient{grid-area:orient;color:var(--muted)}.listarea{grid-area:list;display:grid;gap:var(--s3);min-width:0}.list{list-style:none;margin:0;padding:0;gap:var(--s2)}.list,.row{display:grid}.row{position:relative;grid-template-columns:1fr auto auto;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);min-height:64px}.row.teacher{grid-template-columns:1fr auto;padding-right:var(--s3)}.row .main{display:grid;gap:6px;align-content:center;text-align:left;background:none;border:0;min-height:64px;padding:var(--s2) var(--s2) var(--s2) var(--s3);border-radius:var(--r-m)}.row .main[aria-disabled=true]{cursor:default}.row .name{font-weight:600;font-size:20px;line-height:1.2}.w{white-space:nowrap}.row .count{font-family:var(--display);font-size:28px;line-height:1;text-align:right;padding:0 var(--s1);min-width:40px;display:grid;justify-items:end}.row .count small{font-family:var(--body);font-size:var(--t1);color:var(--muted);font-weight:600;line-height:1.2}.row .count.zero{color:var(--destructive)}.row .count.roll .n{display:inline-block;animation:roll .18s ease-out both}@keyframes roll{0%{transform:translateY(-40%);opacity:0}to{transform:translateY(0);opacity:1}}.row .plus{width:48px;height:48px;margin-right:var(--s2);border-radius:50%;border:1.5px solid var(--border);background:transparent;color:var(--primary);font-size:var(--t3);font-weight:700;line-height:1}.row .stamp{position:absolute;top:2px;right:100px;width:52px;height:48px;border:0;background:none;padding:0;display:grid;place-items:center}.row.teacher .stamp{right:56px}.row .stamp img{width:44px;height:28px;display:block}.row .stamp.press img{animation:press .16s ease-out both}@keyframes press{0%{transform:scale(1.15);opacity:.4}to{transform:scale(1);opacity:1}}.row .stamp.lift img{animation:lift .2s ease-out both}@keyframes lift{0%{transform:scale(1);opacity:1}to{transform:scale(1.1);opacity:.55}}.row.flash{box-shadow:0 0 0 3px var(--ring)}.row.shake{animation:shake .24s ease-in-out 1}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}.row.loading .main,.row.loading .plus{pointer-events:none}.row.loading .strip{background:linear-gradient(90deg,transparent 0,rgba(251,248,241,.9) 50%,transparent 100%) var(--surface);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-s)}.row.loading .strip .h{opacity:.5}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.row .note{grid-column:1/-1;padding:0 var(--s3) var(--s3);display:grid;gap:var(--s2)}.row .note p{font-weight:600}.row .note.refusal p{color:var(--destructive)}.row .note .chips{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.row .note .chips .label{font-weight:700;font-size:var(--t1);color:var(--muted)}.row .note .field .inline{display:flex;gap:var(--s2)}.row .note .field .inline input{flex:1;min-width:0}.row .note .field .inline .btn{flex:none}.row .note .note-err{color:var(--foreground);font-weight:600}.row.busy .main{opacity:.6}.row{scroll-margin:var(--s4) 0 calc(var(--s8) + var(--s4))}.row.refused{border-color:var(--destructive)}.row .plus:hover{border-color:var(--primary)}.row .plus[aria-expanded=true]{border-color:var(--primary);background:var(--background)}.tray{grid-column:1/-1;padding:0 var(--s3) var(--s3);display:grid;gap:var(--s3)}.tray .chips{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}.tray-form{display:grid;gap:var(--s3)}.tray button[aria-busy=true]{cursor:progress}.sheet .confirm{display:grid;gap:var(--s3);border:1.5px solid var(--primary);border-radius:var(--r-m);padding:var(--s3)}.sheet .confirm p{font-weight:400;font-size:var(--t3);font-family:var(--display)}.sheet .confirm .actions{display:flex;gap:var(--s2);flex-wrap:wrap}.field{display:grid;gap:var(--s1)}.field label{font-weight:600;font-size:var(--t1);color:var(--muted)}.field input{height:48px;border:1.5px solid var(--border);border-radius:var(--r-m);background:var(--surface);padding:0 var(--s4);font-size:var(--t2);font-weight:600;width:100%}.field.bad input{border-color:var(--destructive)}.field .msg{color:var(--destructive);font-weight:600}.signout{justify-self:start}.listarea .leave{display:flex;flex-wrap:wrap;gap:var(--s2)}.door-page{min-height:100vh;display:flex;flex-direction:column}.door-page>.door{flex:1 0 auto;width:100%;padding-bottom:var(--s5)}.bar{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:var(--s2) var(--pad);min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);z-index:5}.bar .msg{font-weight:700;font-size:var(--t2);display:flex;align-items:baseline;gap:var(--s2)}.bar .msg.calm{font-weight:600;color:var(--muted)}.bar .mark{font-family:var(--mono);color:var(--primary);font-size:var(--t2)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-top:1px solid var(--border);border-radius:var(--r-l) var(--r-l) 0 0;box-shadow:0 -8px 24px rgba(36,31,28,.12);padding:var(--s3) var(--pad) var(--s5);display:grid;gap:var(--s3);animation:rise .3s var(--ease-out) both}@keyframes rise{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.sheet form{display:contents}.sheet .top{display:flex;align-items:center;justify-content:space-between}.sheet h2{font-size:var(--t3)}.sheet .group{display:grid;gap:var(--s2)}.sheet .group .label{font-weight:600;font-size:var(--t1);color:var(--muted)}.sheet .chips{display:flex;gap:var(--s2);flex-wrap:wrap}.sheet .preview{min-height:24px;display:flex;align-items:center;gap:var(--s3)}.sheet .preview .left{font-family:var(--display);font-size:var(--t3);white-space:nowrap}.sheet .err{color:var(--destructive);font-weight:600}.sheet .note-err{color:var(--foreground);font-weight:600;display:flex;align-items:baseline;gap:var(--s2)}.sheet .note-err:before{content:"";flex:none;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--destructive);transform:translateY(2px)}.sheet button[aria-busy=true]{cursor:progress}.empty{display:grid;justify-items:center;gap:var(--s3);text-align:center;padding:var(--s2) 0}.empty img{width:144px;height:auto}.empty.drawn{grid-template-columns:112px 1fr;text-align:left;align-items:center;justify-items:start}.empty.drawn img{width:112px}.empty p{max-width:30ch}.gate{min-height:100vh;display:grid;place-items:center;padding:var(--s5) var(--pad)}.gate .card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);padding:var(--s5);display:grid;gap:var(--s4)}.gate .card.wide{max-width:560px}.gate .brand{font-family:var(--display);font-size:var(--t3);color:var(--primary);display:flex;align-items:center;gap:var(--s2)}.gate h1{font-size:var(--t5)}.gate h2{font-size:var(--t3)}.gate .notice{color:var(--muted);font-size:var(--t1)}.gate .refusal{color:var(--destructive);font-weight:600}.gate .strip{justify-content:flex-start}.gate form{display:grid;gap:var(--s4)}.gate .chips{display:flex;gap:var(--s2);flex-wrap:wrap}.team-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}.team-list li{display:flex;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--r-m);padding:var(--s3);background:var(--background)}.team-list .who{font-weight:600;overflow-wrap:anywhere}.team-list .role{color:var(--muted)}.pub{max-width:1216px;margin:0 auto;padding:0 var(--pad)}.pub>header{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:var(--s3)}.wordmark{font-family:var(--display);font-size:var(--t3);color:var(--primary);text-decoration:none;display:inline-flex;align-items:center;gap:var(--s2);min-height:44px}.wordmark .h{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--primary);display:inline-block}.hero{display:grid;gap:var(--s5);padding:var(--s4) 0 var(--s6)}.hero h1{font-size:var(--t5)}.hero .lead{font-size:var(--t2);max-width:40ch}.hero .act{display:grid;gap:var(--s4);justify-items:start}.hero .notice{color:var(--muted);font-size:var(--t1);max-width:44ch}.hero .art{display:grid;gap:var(--s4)}.hero .art img.drawing{width:100%;height:auto;border-radius:var(--r-l);display:block}.example{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);padding:var(--s4);display:grid;gap:var(--s2);box-shadow:0 8px 24px rgba(36,31,28,.08)}.example .big{display:flex;align-items:baseline;gap:var(--s2)}.example .big .n{font-family:var(--display);font-size:56px;line-height:1;color:var(--primary)}.example .big .t{font-weight:700;font-size:var(--t3)}.erow{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid var(--border);border-radius:var(--r-m);min-height:64px;padding:var(--s2) var(--s3);background:var(--background)}.erow .name{font-weight:600;font-size:20px;line-height:1.2}.erow .l{display:grid;gap:6px}.erow .count{font-family:var(--display);font-size:28px;line-height:1;text-align:right}.erow .count small{display:block;font-family:var(--body);font-size:var(--t1);color:var(--muted);font-weight:600}.erow .stampimg{position:absolute;right:64px;top:10px;width:44px;height:28px;opacity:0}.erow .stampimg.on{opacity:1;animation:press .16s ease-out both}.sections{display:grid;gap:var(--s5);padding:var(--s5) 0 var(--s6);border-top:1px solid var(--border)}.sections h2{font-size:var(--t4);margin-bottom:var(--s2)}.sections p{max-width:52ch}.pub footer{border-top:1px solid var(--border);padding:var(--s4) 0 var(--s6);display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;color:var(--muted);font-size:var(--t1)}.pub footer a{color:var(--primary);font-weight:700;font-size:var(--t2);min-height:44px;display:inline-flex;align-items:center}.cardart{display:grid;gap:var(--s2);justify-items:start}.cardart img{width:100%;max-width:320px;height:auto}.cardart .cap{font-family:var(--display);font-size:var(--t4)}.cardart .cap b{color:var(--primary);font-weight:400;font-size:var(--t6)}@media (min-width:900px){:root{--pad:32px}.door{max-width:1016px;grid-template-columns:560px 360px;column-gap:var(--s6);grid-template-areas:"head head" "find side" "orient side" "list side";align-items:start;padding-bottom:120px}.door-page>.door.sheet-open{padding-bottom:var(--s5)}.door aside{display:grid;grid-area:side;gap:var(--s4);position:sticky;top:var(--s4);align-self:start;grid-row:2/span 3}.door aside>*{grid-area:auto;min-width:0}.lowstrip{flex-direction:column;align-items:stretch;overflow:visible;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);padding:var(--s4);gap:var(--s2)}.lowstrip .chip{justify-content:flex-start}.sheet{position:static;border:1px solid var(--border);border-radius:var(--r-l);box-shadow:none}.bar{margin-left:calc(50% - 508px + var(--pad));width:560px;border:1px solid var(--border);border-bottom:0;border-radius:var(--r-m) var(--r-m) 0 0}.hero{grid-template-columns:5fr 7fr;align-items:center;gap:var(--s7);padding:var(--s7) 0 var(--s8)}.hero h1{font-size:var(--t7)}.hero .lead{font-size:var(--t3)}.hero .art{grid-template-columns:1fr 1fr;align-items:center}.sections{grid-template-columns:repeat(3,1fr);gap:var(--s6)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.fall .chad{display:none}}:root{--background:#F5EFE3;--foreground:#241F1C;--muted-foreground:#5E554D;--primary:#2E3A87;--primary-foreground:#FBF7EF;--accent:#E3A72F;--border:#D6C9B3;--ring:#2E3A87;--destructive:#A3292B;--input:#D6C9B3;--radius-small:4px;--radius-medium:10px;--radius-large:18px;color:#241F1C;background:#F5EFE3}