:root{--bg:#f4e7cf;--panel:#fffaf0;--ink:#3b2414;--muted:#6f5038;--line:#c9a77a;--accent:#8a3c14;--accent-soft:#f3dcc0;--on-accent:#fffaf0;--on-accent-soft:#3b2414;--wait:#954500;--wait-soft:#fbe6cc;--ok:#2d6e3e;--ok-soft:#e2f0dc;--danger:#b42318;--danger-soft:#f8dcd2;--code-bg:#f1e3c9;--tool-bg:#f7ecd8;--beam:#f0dcb8;--beam-line:#a87a4c;--wall-tint:#faf3e68c;--term-bg:#0d1117;--term-ink:#d6dde8;--scene-wall:url(/sprites/scenery/day/wall_tile.png);--scene-shelf:url(/sprites/scenery/day/back_shelf.png);--scene-floor:url(/sprites/scenery/day/floor_tile.png);--scene-end-l:url(/sprites/scenery/day/counter_end_l.png);--scene-mid:url(/sprites/scenery/day/counter_mid.png);--scene-end-r:url(/sprites/scenery/day/counter_end_r.png);--show-day:inline;--show-night:none;--show-day-block:block;--show-night-block:none;--sans:system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", "SF Mono", Menlo, monospace;--text-xs:12px;--text-sm:12.5px;--text-base:14px;--text-lg:15px;--text-xl:16px;--text-3xl:18px;--text-5xl:22px;--text-hero:28px;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.3;--leading-normal:1.5;--tracking-wide:.04em;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--space-8:16px;--space-11:22px;--space-16:32px;--radius-xs:4px;--radius-sm:6px;--radius-control:7px;--radius-md:8px;--radius-xl:12px;--radius-pill:99px;--control-sm:36px;--control-lg:44px;--shadow-card:0 6px 24px #00000014;--column:768px;--wide:1040px;--px:3px;--duration-base:.15s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=day]){--bg:#140d0b;--panel:#2a1b13;--ink:#f3e6cc;--muted:#cbb490;--line:#6a462c;--accent:#f0b44c;--accent-soft:#3d2816;--on-accent:#1a0f08;--on-accent-soft:#f3e6cc;--wait:#ff9468;--wait-soft:#3d2015;--ok:#9fd89c;--ok-soft:#1f2e1a;--danger:#ff7b72;--danger-soft:#3d1a15;--code-bg:#1e130d;--tool-bg:#22160f;--beam:#4a2e1c;--beam-line:#1f130b;--wall-tint:#140d0b73;--scene-wall:url(/sprites/scenery/night/wall_tile.png);--scene-shelf:url(/sprites/scenery/night/back_shelf.png);--scene-floor:url(/sprites/scenery/night/floor_tile.png);--scene-end-l:url(/sprites/scenery/night/counter_end_l.png);--scene-mid:url(/sprites/scenery/night/counter_mid.png);--scene-end-r:url(/sprites/scenery/night/counter_end_r.png);--show-day:none;--show-night:inline;--show-day-block:none;--show-night-block:block;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=night]{--bg:#140d0b;--panel:#2a1b13;--ink:#f3e6cc;--muted:#cbb490;--line:#6a462c;--accent:#f0b44c;--accent-soft:#3d2816;--on-accent:#1a0f08;--on-accent-soft:#f3e6cc;--wait:#ff9468;--wait-soft:#3d2015;--ok:#9fd89c;--ok-soft:#1f2e1a;--danger:#ff7b72;--danger-soft:#3d1a15;--code-bg:#1e130d;--tool-bg:#22160f;--beam:#4a2e1c;--beam-line:#1f130b;--wall-tint:#140d0b73;--scene-wall:url(/sprites/scenery/night/wall_tile.png);--scene-shelf:url(/sprites/scenery/night/back_shelf.png);--scene-floor:url(/sprites/scenery/night/floor_tile.png);--scene-end-l:url(/sprites/scenery/night/counter_end_l.png);--scene-mid:url(/sprites/scenery/night/counter_mid.png);--scene-end-r:url(/sprites/scenery/night/counter_end_r.png);--show-day:none;--show-night:inline;--show-day-block:none;--show-night-block:block;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:linear-gradient(var(--wall-tint), var(--wall-tint)), var(--scene-wall);background-size:auto, calc(16 * var(--px)) calc(16 * var(--px));min-height:100vh;image-rendering:pixelated;color:var(--ink);font-family:var(--sans);font-size:var(--text-lg);line-height:var(--leading-normal);flex-direction:column;margin:0;display:flex;overflow-x:hidden}img,svg,.px{image-rendering:pixelated}body>main{flex:1}a{color:var(--accent);text-underline-offset:2px}h1,h2,h3{line-height:var(--leading-tight);margin:0 0 var(--space-6)}h1{font-size:var(--text-hero)}h2{font-size:var(--text-5xl)}h3{font-size:var(--text-3xl)}p{margin:0 0 var(--space-8)}code,pre{font-family:var(--mono);font-size:var(--text-sm)}code{overflow-wrap:anywhere;background:var(--code-bg);padding:1px var(--space-2);border-radius:var(--radius-xs)}pre{background:var(--term-bg);color:var(--term-ink);padding:var(--space-6) var(--space-8);border-radius:var(--radius-md);margin:0 0 var(--space-8);overflow-x:auto}pre code{overflow-wrap:normal;background:0 0;padding:0}button,input,textarea{font:inherit;color:inherit}button,.button{align-items:center;gap:var(--space-3);min-height:var(--control-sm);cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius-control);padding:var(--space-3) var(--space-6);font-size:var(--text-base);text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--accent)}.button.primary,button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:var(--weight-semibold)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.skip{position:absolute;left:-999px}.skip:focus{left:var(--space-8);top:var(--space-4);z-index:10;background:var(--panel);padding:var(--space-4) var(--space-6)}.bar{z-index:5;background:var(--beam);border-bottom:var(--px) solid var(--beam-line);position:sticky;top:0}.bar-in{max-width:var(--wide);padding:var(--space-4) var(--space-8);align-items:center;gap:var(--space-8);margin:0 auto;display:flex}.brand{flex:none;display:flex}.wm{width:116px;height:44px}.wm-day{display:var(--show-day-block)}.wm-night{display:var(--show-night-block)}.when-day{display:var(--show-day)}.when-night{display:var(--show-night)}.nav-wide,.menu nav{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.nav-wide{flex:1;min-width:0}.nav-wide a,.menu nav a{color:var(--ink);font-size:var(--text-base);font-weight:var(--weight-medium);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);text-decoration:none}.nav-wide a:hover,.menu nav a:hover{background:var(--accent-soft)}.nav-wide a[aria-current=page],.menu nav a[aria-current=page]{background:var(--accent);color:var(--on-accent)}.menu{display:none}.bar-tools{align-items:center;gap:var(--space-4);flex:none;display:flex}.theme-toggle{display:none}.js .theme-toggle{display:inline-flex}.mode-pill{font-size:var(--text-xs);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);white-space:nowrap;text-decoration:none}.lang-switch{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);display:inline-flex;overflow:hidden}.lang-switch a{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--muted);line-height:1.4;text-decoration:none}.lang-switch a+a{border-left:1px solid var(--line)}.lang-switch a:hover{color:var(--ink)}.lang-switch a[aria-current=true]{background:var(--accent);color:var(--on-accent)}.mode-pill:hover{border-color:var(--accent);color:var(--ink)}.mode-pill[aria-current=page]{border-style:solid;border-color:var(--accent);color:var(--ink)}@media (width<=900px){.bar-in{gap:var(--space-6)}.nav-wide{display:none}.menu{flex:1;display:block}.menu summary{min-height:var(--control-sm);padding:0 var(--space-6);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--panel);cursor:pointer;font-size:var(--text-base);align-items:center;list-style:none;display:inline-flex}.menu summary::-webkit-details-marker{display:none}.menu summary:before{content:"☰";margin-right:var(--space-4)}.menu nav{gap:var(--space-2);padding:var(--space-4) var(--space-8) var(--space-8);background:var(--beam);border-bottom:var(--px) solid var(--beam-line);box-shadow:var(--shadow-card);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:absolute;top:100%;left:0;right:0}.menu nav a{border-radius:var(--radius-control);min-height:var(--control-lg);align-items:center;display:flex}.bar-tools{margin-left:auto}}@media (width<=420px){.mode-pill{display:none}}@media (width<=480px){.bar-in{gap:var(--space-4);padding-inline:var(--space-6)}.bar-tools{gap:var(--space-3)}.menu summary{white-space:nowrap;padding:0 var(--space-6)}.menu summary:before{margin-right:0}.menu summary .label,.theme-toggle .label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.theme-toggle{padding:0 var(--space-5)}}.wrap{max-width:var(--column);padding:var(--space-11) var(--space-8);margin:0 auto}.wrap.wide{max-width:var(--wide)}.page-head{margin-bottom:var(--space-11)}.page-head p{color:var(--muted);font-size:var(--text-xl);margin:0}.kicker{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3);display:inline-block}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);padding:var(--space-11);margin-bottom:var(--space-8);box-shadow:var(--shadow-card)}.card>:last-child{margin-bottom:0}.grid{gap:var(--space-8);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));display:grid}.grid .card{margin:0}.tag{font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);padding:1px var(--space-5);background:var(--accent-soft);color:var(--on-accent-soft);display:inline-block}.tag.feature{background:var(--ok-soft);color:var(--ok)}.tag.fix{background:var(--danger-soft);color:var(--danger)}.tag.planned{background:var(--wait-soft);color:var(--wait)}.scene{height:calc(96 * var(--px));border-bottom:var(--px) solid var(--beam-line);position:relative;overflow:hidden}.scene>*{position:absolute}.scene .shelf{left:0;right:0;top:calc(6 * var(--px));height:calc(48 * var(--px));background:var(--scene-shelf) repeat-x;background-size:calc(128 * var(--px)) calc(48 * var(--px))}.scene .counter{left:0;right:0;bottom:calc(16 * var(--px));height:calc(16 * var(--px));z-index:2;display:flex}.scene .counter span{background-size:auto 100%;height:100%}.scene .counter .l{width:calc(16 * var(--px));background-image:var(--scene-end-l);flex:none}.scene .counter .m{background:var(--scene-mid) repeat-x;background-size:calc(32 * var(--px)) 100%;flex:1}.scene .counter .r{width:calc(16 * var(--px));background-image:var(--scene-end-r);flex:none}.scene .floor{height:calc(16 * var(--px));background:var(--scene-floor);background-size:calc(16 * var(--px)) calc(16 * var(--px));bottom:0;left:0;right:0}.scene .bartender{left:50%;bottom:calc(20 * var(--px));width:calc(32 * var(--px));height:calc(32 * var(--px));z-index:1;transform:translate(-50%)}.scene .prop{bottom:calc(32 * var(--px));z-index:3}.scene .prop.left{left:calc(10 * var(--px))}.scene .prop.right{right:calc(10 * var(--px))}.scene .candle{width:calc(8 * var(--px));height:calc(12 * var(--px));background:url(/sprites/scenery/night/candle_sheet.png);background-size:calc(32 * var(--px)) calc(12 * var(--px));display:var(--show-night-block);animation:.667s steps(4,end) infinite flicker}.scene .cup{width:calc(8 * var(--px));height:calc(8 * var(--px));display:var(--show-day-block);background:url(/sprites/scenery/day/cup.png) 0 0/100% 100%}@keyframes flicker{to{background-position-x:calc(-32 * var(--px))}}@media (prefers-reduced-motion:reduce){.scene .candle{animation:none}}.hero{text-align:center;padding-top:var(--space-16)}.hero .wm-big{object-fit:contain;width:290px;max-width:100%;height:110px;margin-bottom:var(--space-8)}.hero .wm-big.wm-day{display:var(--show-day-block);margin-inline:auto}.hero .wm-big.wm-night{display:var(--show-night-block);margin-inline:auto}.hero .lead{font-size:var(--text-xl);color:var(--muted);max-width:560px;margin-inline:auto}.coming-soon{min-height:265px;padding:var(--space-16) var(--space-8) calc(var(--space-16) * 2)}.coming-soon .wm-big{margin-bottom:var(--space-8)}.coming-soon-art{animation:1.5s cubic-bezier(.2,.8,.3,1) both welcome-bounce}.loading-label{margin:0 0 var(--space-4);color:var(--muted);font-family:var(--mono);font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase}.loading-dots{animation:1.2s steps(4,end) both dots-in}.typed-message{max-width:740px;min-height:2.6em;color:var(--ink);font-family:var(--mono);letter-spacing:-.06em;margin-inline:auto;font-size:clamp(22px,5vw,38px)}.typing-cursor{vertical-align:-.12em;background:var(--accent);width:.55em;height:1em;margin-left:.12em;animation:.8s steps(2,start) 3 forwards cursor-blink;display:inline-block}@keyframes welcome-bounce{0%{opacity:0;transform:translate(-50%,36px)}70%{opacity:1;transform:translate(-50%,-5px)}to{opacity:1;transform:translate(-50%)}}@keyframes dots-in{0%{opacity:0}to{opacity:1}}@keyframes cursor-blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.coming-soon-art,.loading-dots,.typing-cursor{animation:none}.typing-cursor{visibility:hidden}}.actions{gap:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.person{gap:var(--space-8);align-items:flex-start;display:flex}.person img.portrait{width:128px;height:128px;image-rendering:pixelated}.card.wip .tag{margin-bottom:var(--space-4)}.person img{border-radius:var(--radius-md);background:var(--accent-soft);flex:none;width:64px;height:64px}.toc{gap:var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.toc a{padding:var(--space-2) var(--space-6);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--panel);font-size:var(--text-base);text-decoration:none;display:inline-block}.spec{border-collapse:collapse;width:100%;font-size:var(--text-base)}.spec th,.spec td{overflow-wrap:break-word;text-align:left;padding:var(--space-4) var(--space-4);border-bottom:1px solid var(--line);vertical-align:top}.keys{gap:var(--space-4) var(--space-8);grid-template-columns:auto 1fr;margin:0;display:grid}.keys dt{font-weight:var(--weight-semibold)}.keys dd{color:var(--muted);margin:0}.timeline{border-left:var(--px) solid var(--line);margin:0;padding:0;list-style:none}.timeline li{padding:0 0 var(--space-11) var(--space-11);position:relative}.timeline li:before{content:"";left:calc(-1 * var(--px) - 5px);background:var(--accent);outline:2px solid var(--bg);width:8px;height:8px;position:absolute;top:6px}.timeline time{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);margin-right:var(--space-4)}.timeline h3{margin:var(--space-3) 0 var(--space-3);font-size:var(--text-xl)}.timeline p{color:var(--muted);margin:0}.post time{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted)}.post h3{margin:var(--space-3) 0 var(--space-4)}.post h3 a{color:var(--ink);text-decoration:none}.post h3 a:hover{color:var(--accent)}.form{gap:var(--space-8);display:grid}.form label{gap:var(--space-3);font-weight:var(--weight-medium);font-size:var(--text-base);display:grid}.form input,.form textarea{border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-control);width:100%;padding:var(--space-4) var(--space-5);font-size:var(--text-xl)}.form textarea{resize:vertical;min-height:160px}.form .hp{position:absolute;left:-9999px}.notice{background:var(--wait-soft);color:var(--ink);border-left:var(--px) solid var(--wait);padding:var(--space-6) var(--space-8);border-radius:var(--radius-sm);font-size:var(--text-base)}.form-status:empty{display:none}.sim-frame{border:var(--px) solid var(--beam-line);border-radius:var(--radius-xl);height:min(680px,100dvh - 120px);min-height:520px;box-shadow:var(--shadow-card);background:var(--bg);scroll-margin-top:96px;overflow:hidden}.sim-root{height:100%;overflow:auto}.sim-root:not(.sim){padding:var(--space-11) var(--space-8)}.preview{gap:var(--space-11);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));justify-items:center;display:grid}.phone{border:var(--px) solid var(--beam-line);background:var(--bg);background-image:linear-gradient(var(--wall-tint), var(--wall-tint)), var(--scene-wall);background-size:auto, calc(16 * var(--px)) calc(16 * var(--px));width:min(100%,340px);box-shadow:var(--shadow-card);border-radius:28px;overflow:hidden}.phone-bar{align-items:center;gap:var(--space-4);background:var(--beam);border-bottom:2px solid var(--beam-line);padding:var(--space-5) var(--space-6);font-size:var(--text-base);font-weight:var(--weight-semibold);display:flex}.phone-bar img{width:58px;height:22px}.phone-body{padding:var(--space-6);align-items:stretch;gap:var(--space-4);flex-direction:column;min-height:420px;display:flex}.session{align-items:center;gap:var(--space-5);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-base);display:flex}.session img{flex:none;width:32px;height:32px}.session .name{font-weight:var(--weight-semibold)}.session .sub{color:var(--muted);font-size:var(--text-xs);display:block}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;margin-left:auto}.dot.working{background:var(--ok)}.dot.wait{background:var(--wait)}.msg{max-width:85%;padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--panel);border:1px solid var(--line);align-self:flex-start}.msg.me{background:var(--accent);border-color:var(--accent);color:var(--on-accent);align-self:flex-end}.msg.tool{font-family:var(--mono);font-size:var(--text-xs);background:var(--tool-bg)}.pv-composer{gap:var(--space-3);padding:var(--space-5);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);color:var(--muted);font-size:var(--text-base);margin-top:auto;display:flex}.pv-composer .pill{border:1px solid var(--line);border-radius:var(--radius-pill);padding:0 var(--space-5);font-size:var(--text-xs);margin-left:auto}.foot{background:var(--beam);border-top:var(--px) solid var(--beam-line);margin-top:var(--space-16)}.foot-in{max-width:var(--wide);padding:var(--space-11) var(--space-8);font-size:var(--text-base);margin:0 auto}.foot-in p{margin:0 0 var(--space-3)}
