:root{--bg:#f6f1e7;--card:#fffdf8;--ink:#2a241d;--muted:#7a6f62;--line:#e4dccd;--accent:#d9783f;--good:#3f8f5a;--bad:#c0443a;--wood:#9a6a3a;--teal:#2fa59a;--glass:#fffdf8eb;--dlg:#fffcf5ed;--shadow:0 6px 20px #5032142e;--paper:#fffaf0;--rule:#e9dfc9;--sea:#58c4c6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1d1a16;--card:#27231e;--ink:#f1ebe1;--muted:#a99d8d;--line:#3a342c;--accent:#e8915c;--good:#6cbf86;--bad:#e0756b;--wood:#d6a46e;--teal:#4fc2b6;--glass:#27231eeb;--dlg:#24201bed;--shadow:0 6px 20px #0006;--paper:#2c2721;--rule:#3d362d;--sea:#2f8e93;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1d1a16;--card:#27231e;--ink:#f1ebe1;--muted:#a99d8d;--line:#3a342c;--accent:#e8915c;--good:#6cbf86;--bad:#e0756b;--wood:#d6a46e;--teal:#4fc2b6;--glass:#27231eeb;--dlg:#24201bed;--shadow:0 6px 20px #0006;--paper:#2c2721;--rule:#3d362d;--sea:#2f8e93;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:var(--sea);color:var(--ink);-webkit-tap-highlight-color:transparent;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}#stage{position:fixed;inset:0}#game{touch-action:none;width:100%;height:100%;display:block}#ui{pointer-events:none;z-index:2;position:fixed;inset:0}:where(#ui)>*{pointer-events:auto}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:14px;transition:border-color .15s,transform .1s,opacity .2s;display:inline-flex}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.hud{z-index:2;top:max(10px, env(safe-area-inset-top));left:calc(var(--rail) + 10px);pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;right:10px}.hud>*{pointer-events:auto}.hud .left{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:calc(100% - 96px);display:flex}.pill{text-overflow:ellipsis;background:var(--glass);box-shadow:var(--shadow);white-space:nowrap;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:9px;max-width:100%;padding:5px 14px 5px 12px;display:flex;overflow:hidden}.pill small{color:var(--muted);font-size:11.5px;font-weight:600}.pill b{font-size:17px}.pill .sep{background:var(--line);align-self:stretch;width:1px}.pill [hidden]{display:none}.pill .owe b{color:var(--bad);font-size:14px}.pill .rate b{font-size:14px}.flash{animation:.9s ease-out pillflash}@keyframes pillflash{30%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 55%, transparent), var(--shadow);transform:scale(1.04)}}.pop{animation:.5s cubic-bezier(.3,1.6,.5,1) popin}@keyframes popin{0%{opacity:0;transform:scale(.3)}}.dots{align-items:center;gap:4px;display:inline-flex}.dots i{background:color-mix(in srgb, var(--muted) 35%, transparent);border-radius:50%;width:8px;height:8px;display:inline-block}.dots i.done{background:color-mix(in srgb, var(--accent) 55%, var(--line))}.dots i.now{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.icons{flex:none;gap:6px;display:flex}.icon{background:var(--glass);width:40px;height:40px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-color:#0000;border-radius:50%;padding:0;font-size:18px}.icon[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent), var(--shadow)}.icon[hidden]{display:none}:root{--rail:72px}@media (width<=699px){:root{--rail:0px}}.sidebar{z-index:3;width:var(--rail);padding:max(10px, env(safe-area-inset-top)) 6px max(10px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-right:1px solid color-mix(in srgb, var(--ink) 10%, transparent);flex-direction:column;align-items:stretch;gap:4px;display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:2px 0 14px #2819051a}.sidebar .grow{flex:1}.side-item{color:var(--ink);text-align:center;cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;font-size:11px;font-weight:700;line-height:1.15;text-decoration:none;display:flex}.side-item .ico{color:var(--ink);font-size:20px;line-height:1;position:relative}.side-item .ico svg{width:24px;height:24px;display:block}.side-item .logo svg{width:34px;height:34px;display:block}.side-item:hover,.side-item[aria-expanded=true]{background:color-mix(in srgb, var(--accent) 14%, transparent)}.side-item.signed-in .ico:after{content:"";background:var(--good);width:9px;height:9px;box-shadow:0 0 0 2px var(--card);border-radius:50%;position:absolute;bottom:-2px;right:-4px}.side-item[hidden],.side-toggle{display:none}@media (width<=699px){.side-toggle{z-index:4;top:max(10px, env(safe-area-inset-top));place-items:center;display:grid;position:absolute;left:10px}.hud{left:58px}.sidebar{background:var(--card);width:220px;padding-top:calc(max(10px, env(safe-area-inset-top)) + 54px);transition:transform .2s ease-out;transform:translate(-105%);box-shadow:4px 0 24px #28190540}.sidebar.open{transform:none}.side-item{flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:15px}.side-item .logo svg{width:28px;height:28px}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.panel{z-index:3;top:calc(max(10px, env(safe-area-inset-top)) + 50px);background:var(--card);border-radius:14px;width:min(380px,100% - 20px);max-height:calc(100% - 90px);padding:10px 14px 14px;animation:.18s ease-out panelin;position:absolute;right:10px;overflow:auto;box-shadow:0 10px 34px #2819054d}.panel[hidden]{display:none}.panel.side{z-index:5;width:min(420px,100% - 24px);max-height:calc(100% - 40px);animation:.18s ease-out modalin;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}@keyframes modalin{0%{opacity:0;transform:translate(-50%,-47%)scale(.98)}}.backdrop{z-index:4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1e160c61;animation:.18s ease-out fadein;position:absolute;inset:0}.backdrop[hidden]{display:none}.panel a{color:var(--accent);font-weight:700}@keyframes panelin{0%{opacity:0;transform:translateY(-6px)scale(.98)}}.panel header{background:inherit;justify-content:space-between;align-items:center;margin-bottom:4px;padding-top:2px;display:flex;position:sticky;top:-10px}.panel .x{width:32px;height:32px;color:var(--muted);background:0 0;border-color:#0000;border-radius:50%;padding:0;font-size:14px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 2px;font-size:12px}.panel .note{color:var(--muted);margin:8px 0 0;font-size:12.5px}.panel .legend{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:8px;margin-top:10px;padding:5px 8px;font-size:13px}.panel .credit{color:var(--muted);margin:12px 0 0;font-size:11px}.notebook{background-color:var(--paper);background-image:linear-gradient(90deg, transparent 22px, color-mix(in srgb, var(--bad) 30%, transparent) 22px, color-mix(in srgb, var(--bad) 30%, transparent) 23.5px, transparent 23.5px), repeating-linear-gradient(180deg, transparent 0 25px, var(--rule) 25px 26px);padding-left:32px}.sticks{margin:2px 0 0;padding:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:14.5px;list-style:none}.sticks li{align-items:baseline;gap:7px;padding:2px 0;line-height:1.35;display:flex}.sticks .mk{background:var(--wood);border-top:5px solid var(--mk);border-radius:2px;flex:none;width:9px;height:15px;transform:translateY(2px)}.sticks .tx{flex:1}.sticks .wh{color:var(--muted);font-size:13px}.sticks li.dead .tx{color:var(--muted);text-decoration:line-through}.sticks .mk.personal{background:linear-gradient(to bottom, var(--mk2) 0 4px, var(--wood) 4px)}.sticks li.dead .mk{filter:grayscale();opacity:.6}.sticks li.owe .tx{color:var(--bad)}.sticks .empty{color:var(--muted);font-style:italic}.log p{color:var(--accent);margin:0 0 8px;font-size:14px;font-style:italic}.log .empty{color:var(--muted);font-style:normal}.confirm p{margin:4px 0 12px}.confirm .row{justify-content:flex-end;gap:8px;display:flex}.dialog{z-index:2;left:calc(50% + var(--rail) / 2);bottom:max(10px, env(safe-area-inset-bottom));width:min(720px, calc(100% - 16px - var(--rail)));cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-end;gap:22px;animation:.18s ease-out dlgin;display:flex;position:absolute;transform:translate(-50%)}.dialog[hidden]{display:none}.dialog.mine{flex-direction:row-reverse}.dialog.choosing{cursor:default}@keyframes dlgin{0%{opacity:0;transform:translate(-50%,6px)}}.figure{width:112px;filter:drop-shadow(0 3px 0 color-mix(in srgb, var(--ink) 25%, transparent));flex:none;align-self:flex-end;animation:2.4s ease-in-out infinite speak}.figure img{width:100%;height:auto;display:block}.dialog.mine .figure img{transform:scaleX(-1)}.figure.icon-only{border:3px solid var(--ink);background:color-mix(in srgb, var(--mk) 38%, var(--card));filter:none;border-radius:50%;place-items:center;width:72px;height:72px;margin-bottom:8px;display:grid}.figure .icon{font-size:34px}@keyframes speak{50%{transform:translateY(-3px)}}.bubble{background:var(--card);min-width:0;color:var(--ink);border:3px solid var(--ink);box-shadow:5px 5px 0 color-mix(in srgb, var(--ink) 20%, transparent);border-radius:7px;flex:1;margin-bottom:6px;padding:10px 14px 9px;position:relative}.dialog.thinking .bubble{border-radius:22px}.bubble .who{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.bubble .name{letter-spacing:.05em;text-transform:uppercase;font-size:14.5px;font-weight:900}.bubble .role{color:var(--muted);font-size:12px;font-weight:600}.bubble .hold{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px;font-size:12px}.bubble p{margin:4px 0 0;font-size:16px;line-height:1.42}.bubble p.thought{color:var(--accent);font-style:italic;font-weight:600}.bubble .cont{text-align:right;color:var(--accent);margin-top:2px;font-size:12.5px;font-weight:700;animation:1.2s ease-in-out infinite nudge}@keyframes nudge{50%{opacity:.55;transform:translate(3px)}}.bubble .btns{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.bubble .btns button{border:2px solid var(--ink);border-radius:5px;flex:auto;padding:9px 14px;font-size:15px;font-weight:700}.bubble .btns button.primary{background:var(--accent);color:#fff;border-color:var(--ink);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink) 28%, transparent)}.bubble .tail{width:22px;height:30px;position:absolute;top:12px;left:-21px;overflow:visible}.bubble .tail .tail-edge{fill:var(--card);stroke:var(--ink);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.bubble .tail .tail-join{fill:var(--card)}.bubble .dots-tail{width:30px;height:30px;position:absolute;top:4px;left:-32px;overflow:visible}.bubble .dots-tail circle{fill:var(--card);stroke:var(--ink);stroke-width:2.5px}.dialog.mine .bubble .tail{left:auto;right:-21px;transform:scaleX(-1)}.dialog.mine .bubble .dots-tail{left:auto;right:-32px;transform:scaleX(-1)}.bubble .tail-down,.bubble .dots-down{display:none}.dialog.floating{width:max-content;max-width:min(400px,100% - 24px);animation:.15s ease-out floatin;display:block;top:0;bottom:auto;left:0;transform:none}.dialog.floating .figure{display:none}.dialog.floating .bubble{margin:0}.dialog.floating .bubble .tail,.dialog.floating .bubble .dots-tail{display:none}.dialog.floating .bubble .tail-down{left:calc(var(--tail-x,50%) - 15px);width:30px;height:22px;display:block;position:absolute;bottom:-21px;overflow:visible}.dialog.floating .bubble .tail-down .tail-edge{fill:var(--card);stroke:var(--ink);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.dialog.floating .bubble .tail-down .tail-join{fill:var(--card)}.dialog.floating .bubble .dots-down{left:calc(var(--tail-x,50%) - 15px);width:30px;height:30px;display:block;position:absolute;bottom:-33px;overflow:visible}.dialog.floating .bubble .dots-down circle{fill:var(--card);stroke:var(--ink);stroke-width:2.5px}@keyframes floatin{0%{opacity:0;transform:translateY(6px)}}.work-progress{z-index:2;left:calc(50% + var(--rail) / 2);bottom:calc(max(10px, env(safe-area-inset-bottom)) + 24px);background:var(--card);min-width:190px;max-width:calc(100% - 20px);color:var(--ink);border:2.5px solid var(--ink);box-shadow:var(--shadow);pointer-events:none;border-radius:12px;padding:8px 12px 10px;animation:.25s ease-out fadein;position:absolute;transform:translate(-50%)}.work-progress.floating{top:0;bottom:auto;left:0;transform:none}.work-progress .label{white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:14px;font-weight:750;display:block;overflow:hidden}.work-progress .bar{background:color-mix(in srgb, var(--line) 80%, transparent);border:1.5px solid color-mix(in srgb, var(--ink) 35%, transparent);border-radius:999px;height:10px;overflow:hidden}.work-progress .bar i{border-radius:inherit;background:linear-gradient(90deg, var(--teal), color-mix(in srgb, var(--teal) 70%, #fff));width:0;height:100%;display:block}.work-progress.done .bar i{background:var(--good)}.hint-toast{z-index:2;left:calc(50% + var(--rail) / 2);top:calc(max(10px, env(safe-area-inset-top)) + 54px);background:var(--glass);color:var(--ink);box-shadow:var(--shadow);text-align:center;pointer-events:none;border-radius:999px;max-width:calc(100% - 24px);padding:8px 16px;font-size:14px;font-weight:600;transition:opacity .6s;animation:.5s ease-out popin;position:absolute;transform:translate(-50%)}.hint-toast[hidden]{display:none}.hint-toast.out{opacity:0}.edges{z-index:2;pointer-events:none;position:absolute;inset:0}.edge{pointer-events:auto;cursor:pointer;background:var(--card);width:46px;height:46px;color:var(--ink);border:3px solid var(--ink);box-shadow:0 3px 0 color-mix(in srgb, var(--ink) 35%, transparent);border-radius:50%;place-items:center;margin:-23px 0 0 -23px;padding:0;animation:1.4s ease-in-out infinite edge-bob;display:grid;position:absolute;top:0;left:0}.edge[hidden]{display:none}.edge .ico{font-size:22px;line-height:1}.edge .bang{color:#fff;border:2.5px solid var(--ink);background:#f08a3c;border-radius:50%;place-items:center;width:22px;height:22px;font-size:14px;font-weight:900;display:grid;position:absolute;top:-9px;right:-9px}.edge .arrow{border:8px solid #0000;border-left:12px solid var(--ink);transform-origin:6px 8px;width:0;height:0;margin:-8px 0 0 -6px;position:absolute;top:50%;left:50%}@keyframes edge-bob{0%,to{scale:1}50%{scale:1.08}}@media (prefers-reduced-motion:reduce){.edge{animation:none}}:root[data-motion=reduced] .edge{animation:none}.curtain{z-index:6;pointer-events:auto;background:color-mix(in srgb, var(--sea) 70%, var(--bg));opacity:0;place-items:center;padding:16px;transition:opacity .6s;display:grid;position:absolute;inset:0}.curtain.on{opacity:1}.curtain[hidden]{display:none}.curtain p{color:var(--ink);text-align:center;letter-spacing:.01em;margin:0;font-size:clamp(22px,5vw,34px);font-weight:800}@media (prefers-reduced-motion:reduce){.curtain{transition:none}}:root[data-motion=reduced] .curtain{transition:none}.endcard{z-index:5;background:color-mix(in srgb, var(--sea) 55%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:16px;animation:.4s ease-out fadein;display:grid;position:absolute;inset:0}.endcard[hidden]{display:none}@keyframes fadein{0%{opacity:0}}.endcard .card{background:var(--card);width:min(460px,100%);max-height:100%;box-shadow:0 16px 40px #28190559, inset 0 0 0 2px var(--accent);border-radius:18px;padding:20px 20px 16px;animation:.5s cubic-bezier(.3,1.4,.5,1) popin;overflow:auto}.endcard .kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.endcard h2{margin:2px 0 10px;font-size:22px;line-height:1.2}.endcard .lesson{background:color-mix(in srgb, var(--accent) 12%, transparent);border-left:4px solid var(--accent);border-radius:12px;margin:0 0 12px;padding:10px 12px;font-size:17px;font-weight:650;line-height:1.45}.endcard ul{color:var(--muted);margin:0 0 14px;padding-left:18px}.endcard li{margin:3px 0}.endcard .row{flex-wrap:wrap;gap:8px;display:flex}.endcard .row button{border-radius:12px;flex:auto;padding:11px 16px;font-size:16px}.loading{z-index:6;color:#fff;text-shadow:0 1px 3px #0000004d;background:var(--sea);place-items:center;font-weight:700;transition:opacity .5s;display:grid;position:absolute;inset:0}.loading.done{opacity:0;pointer-events:none}@media (width<=700px){.pill{gap:7px;padding:4px 11px 4px 10px}.pill b{font-size:15.5px}.pill small{font-size:10.5px}.hud .dots{display:none}.icon{width:38px;height:38px;font-size:17px}.dialog{width:calc(100% - 12px);bottom:max(6px, env(safe-area-inset-bottom));gap:16px}.figure{width:76px}.figure.icon-only{width:54px;height:54px}.figure .icon{font-size:26px}.bubble{padding:8px 11px 7px}.bubble p{font-size:14.5px}.dialog .btns button{padding:10px 12px;font-size:14.5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.icon.signed-in{box-shadow:0 0 0 2px var(--teal), var(--shadow)}.account p{margin:6px 0}.signin{flex-wrap:wrap;gap:8px;margin:8px 0 4px;display:flex}.signin input{min-width:0;font:inherit;border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;flex:180px;padding:8px 10px;font-size:15px}.signin input:focus-visible{border-color:var(--accent);outline:none}.account .note.ok{color:var(--good)}.account .note.err,.account .note.save-offline{color:var(--bad)}.account .row{justify-content:flex-end;margin-top:8px;display:flex}.chooser .note{color:var(--muted);margin:0 0 12px}.chooser .col{flex-direction:column;gap:8px;display:flex}.chooser .col button{text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;font-size:16px}.chooser .col button small{opacity:.85;font-size:13px;font-weight:500}.endcard .all-games{text-align:center;color:var(--muted);margin-top:12px;font-size:13.5px;font-weight:700;display:block}.setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.setting .lbl{font-weight:650}.seg{background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--ink);background:0 0;border:0;border-radius:8px;padding:6px 11px;font-size:13.5px}.seg button[aria-checked=true]{background:var(--card);color:var(--accent);font-weight:700;box-shadow:0 1px 4px #00000026}.setting input[type=range]{width:min(180px,50%);accent-color:var(--accent)}.setting[hidden]{display:none}:root[data-motion=reduced] *,:root[data-motion=reduced] :before,:root[data-motion=reduced] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
