:root{--ink:#0E1B1E;--ink-2:#132527;--kelp:#1B3531;--kelp-2:#24443E;--shell:#F3EEE3;--shell-2:#E8E0D0;--shell-ink:#1E2321;--shell-mute:#6E6A62;--broth:#E0A84A;--broth-2:#F1C777;--blood:#B8443A;--indigo:#22384F;--fog:#8A9A96;--fog-2:#5E6E6A;--text:#E9E4D8;--mute:#93A29D;--line:rgba(233,228,216,.12);--f-display:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;--f-body:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--ls-display:.04em;--ls-body:.02em;--ls-eyebrow:.24em;--ls-code:.32em}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--ink);color:var(--text);font:15px/1.8 var(--f-body);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;background-image:radial-gradient(1200px 600px at 70% -10%,rgba(224,168,74,.1),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(36,68,62,.6),transparent 60%)}a{color:inherit}button{font:inherit;letter-spacing:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--broth);outline-offset:3px}h1,h2,h3,.mincho{font-family:var(--f-display);font-weight:600;letter-spacing:var(--ls-display);font-feature-settings:"palt" 1;text-wrap:balance}.mono{font-family:var(--f-mono);letter-spacing:.08em;font-feature-settings:"tnum" 1}.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:var(--ls-eyebrow);color:var(--mute);text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:1px solid var(--broth);background:var(--broth);color:#1a1408;border-radius:6px;padding:0 22px;height:48px;font-weight:700;letter-spacing:.08em;transition:transform .08s,background .15s,border-color .15s}.btn:hover{background:var(--broth-2);border-color:var(--broth-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border-color:#e9e4d838}.btn.ghost:hover{background:#e9e4d80f;border-color:#e9e4d866}.btn.sm{height:38px;padding:0 16px;font-size:13px}.btn.lg{height:56px;padding:0 32px;font-size:16px}.link{background:none;border:0;color:var(--mute);padding:6px 2px;font-size:13px;letter-spacing:.1em;border-bottom:1px solid transparent}.link:hover{color:var(--text);border-bottom-color:#e9e4d84d}.field{width:100%;background:#f3eee30d;border:1px solid rgba(233,228,216,.18);color:var(--text);border-radius:8px;padding:0 16px;height:52px;font:inherit;font-size:16px;letter-spacing:var(--ls-body)}.field::placeholder{color:#93a29db3}.field:focus{border-color:var(--broth);background:#f3eee314;outline:none}.cells{display:flex;gap:10px}.cells input{width:56px;height:64px;text-align:center;font-family:var(--f-mono);font-size:28px;letter-spacing:0;text-transform:uppercase;background:#f3eee30d;border:1px solid rgba(233,228,216,.18);border-radius:8px;color:var(--text);caret-color:var(--broth)}.cells input:focus{border-color:var(--broth);outline:none;background:#f3eee314}.cells input.filled{border-color:#e0a84a80}.card{position:relative;background:var(--shell);color:var(--shell-ink);border-radius:4px;padding:16px 112px 16px 20px;box-shadow:0 1px #00000059,0 12px 30px -18px #000c;animation:card-in .35s cubic-bezier(.2,.8,.2,1) both}.card .who{font-size:11px;color:var(--shell-mute);letter-spacing:.1em;margin-bottom:3px}.card .q{font-family:var(--f-display);font-size:17px;line-height:1.6;font-weight:600;letter-spacing:.02em;text-wrap:wrap}.card.pending{background:var(--shell-2)}.card.mine{box-shadow:inset 3px 0 0 var(--broth),0 1px #00000059}@keyframes card-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.stamp{position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(-7deg);width:80px;height:80px;border-radius:50% 47% 52% 49%/49% 52% 48% 51%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:var(--f-display);font-weight:700;line-height:1.05;letter-spacing:.02em;border:3px double currentColor;mix-blend-mode:multiply;opacity:.92;animation:stamp .42s cubic-bezier(.3,1.6,.4,1) both}.stamp:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:inherit;border:1px solid currentColor;opacity:.5}.stamp.yes{color:var(--blood);font-size:24px}.stamp.no{color:var(--indigo);font-size:19px}.stamp.irrelevant{color:var(--fog-2);font-size:13px;letter-spacing:0}.stamp.maybe_yes,.stamp.maybe_no{color:#7a5a16;font-size:13px;border-style:dashed}.stamp small{display:block;font-size:8px;font-weight:500;letter-spacing:.06em;margin-top:3px;white-space:nowrap}@keyframes stamp{0%{opacity:0;transform:translateY(-50%) rotate(-7deg) scale(1.9)}60%{opacity:.95;transform:translateY(-50%) rotate(-7deg) scale(.96)}to{opacity:.92;transform:translateY(-50%) rotate(-7deg) scale(1)}}.card.stamped{animation:card-in .35s both,thud .3s .05s ease-out}@keyframes thud{0%{transform:none}30%{transform:translateY(2px) scale(.995)}to{transform:none}}.dots{position:absolute;right:40px;top:50%;transform:translateY(-50%);display:flex;gap:5px}.dots i{width:6px;height:6px;border-radius:50%;background:var(--shell-mute);opacity:.35;animation:blink 1.1s infinite}.dots i:nth-child(2){animation-delay:.18s}.dots i:nth-child(3){animation-delay:.36s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:.9}}.grade{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:10px}.grade span{height:5px;border-radius:3px;background:#e9e4d81f}.grade.wrong span:nth-child(-n+1),.grade.partial span:nth-child(-n+2),.grade.close span:nth-child(-n+3),.grade.correct span{background:var(--broth)}.grade.correct span{background:var(--blood)}.grade-label{font-size:12px;color:var(--broth-2);margin-top:6px;letter-spacing:.08em}.help-btn{position:fixed;right:16px;top:calc(14px + env(safe-area-inset-top));z-index:20;width:36px;height:36px;border-radius:50%;border:1px solid rgba(233,228,216,.22);background:#0e1b1eb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--mute);font-family:var(--f-display);font-size:16px;display:grid;place-items:center}.help-btn:hover{color:var(--text);border-color:#e9e4d873}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a0c99;opacity:0;pointer-events:none;transition:opacity .25s;z-index:30}.scrim.on{opacity:1;pointer-events:auto}.help{position:fixed;left:0;right:0;bottom:0;z-index:31;max-width:560px;margin:0 auto;background:var(--shell);color:var(--shell-ink);border-radius:14px 14px 0 0;padding:26px 26px calc(26px + env(safe-area-inset-bottom));transform:translateY(102%);transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s;visibility:hidden;pointer-events:none}.help.on{transform:none;visibility:visible;pointer-events:auto;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.help h2{font-size:22px;margin:0 0 14px;color:var(--shell-ink)}.help p{margin:0 0 12px;font-size:14.5px;line-height:1.85;color:#3a403d;text-wrap:pretty}.help p b{color:var(--shell-ink);font-weight:700}.help .ex{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:2px 0 14px 6px;font-family:var(--f-display);font-size:15px;color:var(--shell-ink)}.help .ex .ok{color:var(--blood);font-weight:700}.help .ex .ng{color:var(--indigo);font-weight:700}.help .close{margin-top:10px;width:100%;background:var(--shell-ink);border-color:var(--shell-ink);color:var(--shell)}.help .close:hover{background:#2e3532;border-color:#2e3532}@media(min-width:640px){.help{bottom:auto;top:50%;transform:translateY(-50%) scale(.98);opacity:0;border-radius:14px;transition:opacity .25s,transform .25s,visibility 0s .25s}.help.on{transform:translateY(-50%) scale(1);opacity:1;transition:opacity .25s,transform .25s}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
