@font-face{font-family:Tsanger YuYang;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/tsanger-yuyang/tsanger-yuyang-W02-400.woff2)format("woff2")}@font-face{font-family:Tsanger YuYang;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/tsanger-yuyang/tsanger-yuyang-W03-500.woff2)format("woff2")}:root{--c-bg:#f2f1ee;--c-surface:#fff;--c-surface-2:#ebe8e2;--c-surface-3:#e1ddd5;--c-ink:#161514;--c-ink-2:#5f5b54;--c-line:#e2ded6;--c-line-strong:#c9c3b8;--c-primary:#161514;--c-on-primary:#fff;--c-accent:#9a5b3f;--c-danger:#a23a26;--c-stage:#2a2826;--c-on-media:#fff;--c-media-ctl:#16151459;--c-frame:#d9d7d2;--font:"Tsanger YuYang","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;--t-display:500 32px/1.28 var(--font);--t-title:500 24px/1.35 var(--font);--t-heading:500 18px/1.45 var(--font);--t-body:400 15px/1.7 var(--font);--t-label:500 15px/1.4 var(--font);--t-small:400 13px/1.55 var(--font);--track-display:-.02em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--gutter:20px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--e-1:0 1px 2px #16151414;--e-2:0 1px 2px #1615140f,0 8px 24px #1615141f;--e-3:0 -8px 28px #1615141c;--h-control:52px;--h-control-sm:40px;--h-appbar:56px;--h-tabbar:64px;--tap:44px;--frame-max:430px;--ease:cubic-bezier(.16,1,.3,1);--d-fast:.16s;--d-base:.28s;--d-slow:.45s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg:#0f0f10;--c-surface:#1b1b1d;--c-surface-2:#252528;--c-surface-3:#303034;--c-ink:#f3f2ee;--c-ink-2:#a19e96;--c-line:#2d2d30;--c-line-strong:#45454a;--c-primary:#f3f2ee;--c-on-primary:#0f0f10;--c-accent:#e0a184;--c-danger:#f0937e;--c-stage:#141413;--c-frame:#000;--e-1:none;--e-2:0 10px 30px #00000080;--e-3:0 -10px 36px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--c-bg:#0f0f10;--c-surface:#1b1b1d;--c-surface-2:#252528;--c-surface-3:#303034;--c-ink:#f3f2ee;--c-ink-2:#a19e96;--c-line:#2d2d30;--c-line-strong:#45454a;--c-primary:#f3f2ee;--c-on-primary:#0f0f10;--c-accent:#e0a184;--c-danger:#f0937e;--c-stage:#141413;--c-frame:#000;--e-1:none;--e-2:0 10px 30px #00000080;--e-3:0 -10px 36px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--c-frame)}body{font:var(--t-body);color:var(--c-ink);font-synthesis:none;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}button,input,textarea{font:inherit;color:inherit;background:0 0;border:0;margin:0;padding:0}button{cursor:pointer;touch-action:manipulation}button:disabled,.is-disabled{opacity:.42;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p,ol,ul,dl,dd,figure,blockquote,fieldset{margin:0}ol,ul{padding:0;list-style:none}fieldset{border:0;min-width:0;padding:0}legend{padding:0}img{max-width:100%;display:block}svg{flex-shrink:0}table{border-collapse:collapse}[hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}::selection{background:var(--c-primary);color:var(--c-on-primary)}input,textarea{caret-color:var(--c-ink)}::placeholder{color:var(--c-ink-2);opacity:.8}:focus-visible{outline:2px solid var(--c-ink);outline-offset:3px;border-radius:4px}.num{font-variant-numeric:tabular-nums}.client-app{max-width:var(--frame-max);background:var(--c-bg);min-height:100dvh;margin:0 auto;position:relative;overflow-x:clip}.screen{flex-direction:column;min-height:100dvh;display:flex;position:relative}.screen__body{padding:var(--s-2) var(--gutter) var(--s-10);flex:1}.screen--tabs .screen__body{padding-bottom:calc(var(--h-tabbar) + 56px + env(safe-area-inset-bottom))}.screen--dock .screen__body{padding-bottom:calc(var(--h-control) + 48px + env(safe-area-inset-bottom))}.appbar{z-index:10;grid-template-columns:var(--tap) 1fr var(--tap);align-items:center;gap:var(--s-2);height:calc(var(--h-appbar) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--s-3) 0;display:grid;position:relative}.appbar__title{font:var(--t-label);text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.appbar__end{justify-content:flex-end;display:flex}.appbar--overlay{color:var(--c-on-media);background:linear-gradient(#0f0e0d66,#0f0e0d00);position:absolute;inset:0 0 auto}.appbar--overlay .appbar__title{text-shadow:0 1px 8px #0006}.brand-mark{border-radius:var(--r-sm);opacity:.6;width:36px;height:36px;font:var(--t-small);border:1px dashed;place-items:center;margin-left:4px;font-size:12px;display:grid}.icon-btn{width:var(--tap);height:var(--tap);transition:background var(--d-fast);border-radius:50%;place-items:center;display:grid}.icon-btn:active{background:var(--c-surface-2)}.icon-btn--media{background:var(--c-media-ctl);width:40px;height:40px;color:var(--c-on-media);-webkit-backdrop-filter:blur(12px);margin:2px}.icon-btn--outline{width:var(--h-control);height:var(--h-control);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line-strong);flex-shrink:0}.tabbar{z-index:20;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));width:min(calc(var(--frame-max) - 24px),calc(100% - 24px));height:var(--h-tabbar);padding:0 var(--s-2);border-radius:var(--r-xl);background:var(--c-surface);box-shadow:var(--e-2);grid-template-columns:repeat(3,1fr) 84px;align-items:center;display:grid;position:fixed;transform:translate(-50%)}.tabbar__item{border-radius:var(--r-lg);height:52px;color:var(--c-ink-2);font:var(--t-small);align-content:center;justify-items:center;gap:2px;display:grid}.tabbar__item[aria-current=page]{color:var(--c-ink);font-weight:500}.tabbar__action{place-items:center;height:100%;display:grid;position:relative}.tabbar__action i{background:var(--c-primary);width:60px;height:60px;color:var(--c-on-primary);box-shadow:0 0 0 5px var(--c-bg),var(--e-2);transition:transform var(--d-fast) var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;top:-10px}.tabbar__action:active i{transform:scale(.94)}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--h-control);padding:0 var(--s-5);border-radius:var(--r-pill);font:var(--t-label);white-space:nowrap;transition:transform var(--d-fast) var(--ease),opacity var(--d-fast);cursor:pointer;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn--primary{background:var(--c-primary);color:var(--c-on-primary)}.btn--secondary{background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line-strong)}.btn--block{width:100%}.btn--grow{flex:1;min-width:0}.btn--sm{min-height:var(--h-control-sm);padding:0 var(--s-4);font:var(--t-small);font-weight:500}.btn-stack{gap:var(--s-3);margin-top:var(--s-8);display:grid}.text-link{align-items:center;gap:var(--s-1);min-height:var(--tap);font:var(--t-label);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.page-title{font:var(--t-display);letter-spacing:var(--track-display);text-wrap:balance;margin-top:var(--s-3)}.lede{font:var(--t-body);color:var(--c-ink-2);margin-top:var(--s-2);max-width:34em}.meta{font:var(--t-small);color:var(--c-ink-2)}.section{margin-top:var(--s-8)}.section__head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.section__title{font:var(--t-heading)}.section__aside{font:var(--t-small);color:var(--c-ink-2)}.fine-print{font:var(--t-small);color:var(--c-ink-2);text-align:center;margin-top:var(--s-8)}.page-loading{padding:var(--s-10) var(--gutter);font:var(--t-small);color:var(--c-ink-2);text-align:center}.group{margin-top:var(--s-3);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);padding:0 var(--s-4)}.row{align-items:center;gap:var(--s-3);width:100%;min-height:52px;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line);text-align:left;font:var(--t-small);display:flex}.row:last-child{border-bottom:0}.row__label{color:var(--c-ink-2);flex-shrink:0}.row__value{text-align:right;flex:1;min-width:0;font-weight:500}.row--stack{display:block}.row--stack .row__value{text-align:left;margin-top:2px;display:block}.row__icon{border-radius:var(--r-sm);background:var(--c-surface-2);flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.row__main{flex:1;min-width:0}.row__main b{font:var(--t-label);display:block}.row__main small{font:var(--t-small);color:var(--c-ink-2);margin-top:2px;display:block}.row__chev{color:var(--c-ink-2)}.row__level{font:var(--t-small);color:var(--c-ink-2);padding-top:var(--s-3);display:block}.field{padding:var(--s-3) 0;border-bottom:1px solid var(--c-line);display:block}.field:last-child{border-bottom:0}.field__label{font:var(--t-small);color:var(--c-ink-2);margin-bottom:var(--s-1);display:block}.field__control{align-items:center;gap:var(--s-3);min-height:40px;display:flex}.field__prefix{color:var(--c-ink-2);padding-right:var(--s-3);border-right:1px solid var(--c-line)}.field input{min-width:0;height:40px;font:var(--t-heading);font-variant-numeric:tabular-nums;outline:0;flex:1;font-weight:400}.field textarea{width:100%;font:var(--t-body);resize:none;outline:0;display:block}.field__action{height:36px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--c-surface-2);font:var(--t-small);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}.field--code input{font:var(--t-title);letter-spacing:.32em;text-transform:uppercase}.field--code input:placeholder-shown{font:var(--t-heading);letter-spacing:0;text-transform:none;font-weight:400}.field__error{margin-top:var(--s-2);font:var(--t-small);color:var(--c-danger)}.alert{gap:var(--s-2);margin-top:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-surface-2);font:var(--t-small);color:var(--c-ink);align-items:flex-start;display:flex}.alert svg{color:var(--c-ink-2);margin-top:2px}.alert b{font-weight:500;display:block}.alert--hint svg{color:var(--c-accent)}.alert--danger svg{color:var(--c-danger)}.badge{border-radius:var(--r-pill);height:24px;font:var(--t-small);white-space:nowrap;background:var(--c-surface-2);color:var(--c-ink-2);align-items:center;gap:6px;padding:0 10px;font-weight:500;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge--ok{color:var(--c-ink)}.badge--act{color:var(--c-accent)}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{height:var(--h-control-sm);padding:0 var(--s-4);border-radius:var(--r-pill);font:var(--t-small);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-line-strong);white-space:nowrap;transition:background var(--d-fast),color var(--d-fast);align-items:center;gap:6px;display:inline-flex}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--c-primary);color:var(--c-on-primary);box-shadow:none;font-weight:500}.chip small{opacity:.7}.segmented{border-radius:var(--r-pill);background:var(--c-surface-2);gap:2px;padding:3px;display:flex}.segmented button{min-width:0;height:38px;padding:0 var(--s-3);border-radius:var(--r-pill);font:var(--t-small);color:var(--c-ink-2);white-space:nowrap;transition:background var(--d-base) var(--ease),color var(--d-fast);flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.segmented button[aria-pressed=true],.segmented button[aria-selected=true]{background:var(--c-surface);color:var(--c-ink);box-shadow:var(--e-1);font-weight:500}.segmented--media{background:var(--c-media-ctl);-webkit-backdrop-filter:blur(12px)}.segmented--media button{color:#ffffffd0;height:34px}.segmented--media button[aria-pressed=true]{color:#161514;background:#fff}.segmented+.segmented{margin-top:var(--s-2)}.switch{background:var(--c-surface-3);width:51px;height:31px;transition:background var(--d-base);border-radius:16px;flex-shrink:0;position:relative}.switch:after{content:"";width:27px;height:27px;transition:transform var(--d-base) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.switch[aria-checked=true]{background:var(--c-primary)}.switch[aria-checked=true]:after{background:var(--c-on-primary);transform:translate(20px)}.stepper{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.stepper li{font:var(--t-small);color:var(--c-ink-2);gap:6px;display:grid}.stepper li:before{content:"";background:var(--c-surface-3);border-radius:2px;height:3px}.stepper li[data-state=done]:before,.stepper li[data-state=now]:before{background:var(--c-ink)}.stepper li[data-state=now]{color:var(--c-ink);font-weight:500}.option{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);text-align:left;transition:box-shadow var(--d-fast);display:flex}.option+.upload{margin-top:var(--s-3)}.option[aria-checked=true]{box-shadow:inset 0 0 0 2px var(--c-ink)}.option__media{border-radius:var(--r-md);background:var(--c-surface-2);width:80px;height:64px;color:var(--c-ink-2);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.option__media .plan-svg{width:70px;height:56px}.option__body{flex:1;min-width:0}.option__body b{font:var(--t-label);display:block}.option__body small{font:var(--t-small);color:var(--c-ink-2);margin-top:2px;display:block}.radio{width:24px;height:24px;box-shadow:inset 0 0 0 1.5px var(--c-line-strong);color:#0000;border-radius:50%;flex-shrink:0;place-items:center;display:grid}[aria-checked=true] .radio{background:var(--c-ink);color:var(--c-bg);box-shadow:none}.upload{border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);padding-bottom:var(--s-1)}.upload[data-on]{box-shadow:inset 0 0 0 2px var(--c-ink)}.upload .option{box-shadow:none;cursor:pointer;background:0 0}.upload__file{align-items:center;gap:var(--s-2);margin:0 var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:var(--c-surface-2);font:var(--t-small);display:flex}.upload__file b{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.upload>.meta{padding:var(--s-2) var(--s-4) var(--s-2)}.check{align-items:center;gap:var(--s-3);width:100%;min-height:60px;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line);text-align:left;display:flex}.check:last-child{border-bottom:0}.check__box{width:24px;height:24px;box-shadow:inset 0 0 0 1.5px var(--c-line-strong);color:#0000;transition:background var(--d-fast);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.check[aria-pressed=true] .check__box{background:var(--c-ink);color:var(--c-bg);box-shadow:none}.swatches{gap:var(--s-4) var(--s-3);grid-template-columns:repeat(3,1fr);display:grid}.swatches--rail{margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.swatches--rail::-webkit-scrollbar{display:none}.swatches--rail .swatch{flex:0 0 84px}.swatch{text-align:left;font:var(--t-small);color:var(--c-ink);display:block;position:relative}.swatch__img{aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);width:100%;transition:box-shadow var(--d-fast);margin-bottom:6px;display:block}.swatch[aria-pressed=true] .swatch__img{box-shadow:0 0 0 2px var(--c-bg),0 0 0 4px var(--c-ink)}.swatch[aria-pressed=true]{font-weight:500}.swatch__order{background:var(--c-ink);width:22px;height:22px;color:var(--c-bg);border-radius:50%;place-items:center;font-style:normal;font-weight:500;display:grid;position:absolute;top:6px;left:6px}.swatch small{color:var(--c-ink-2);font-weight:400;display:block}.sw{vertical-align:-5px;background-size:cover;border-radius:6px;width:20px;height:20px;margin-right:6px;display:inline-block}.palette{border-radius:var(--r-sm);flex-shrink:0;grid-template-columns:1fr 1fr;width:44px;height:44px;display:grid;overflow:hidden}.palette i{display:block}.palette--dot{border-radius:50%;width:18px;height:18px}.palette--tile{aspect-ratio:4/3;border-radius:var(--r-md);width:100%;height:auto}.styles{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.style-opt{padding:6px 6px var(--s-2);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);text-align:left;transition:box-shadow var(--d-fast);display:block}.style-opt[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--c-ink)}.style-opt b{font:var(--t-label);margin:var(--s-2) 4px 0;display:block}.style-opt small{font:var(--t-small);color:var(--c-ink-2);margin:2px 4px 0;display:block}.timeline{margin-top:var(--s-8)}.timeline li{gap:var(--s-3);padding-bottom:var(--s-5);grid-template-columns:24px 1fr;display:grid;position:relative}.timeline li:not(:last-child):after{content:"";background:var(--c-line-strong);width:1.5px;position:absolute;top:28px;bottom:4px;left:11px}.timeline i{width:24px;height:24px;box-shadow:inset 0 0 0 1.5px var(--c-line-strong);background:var(--c-bg);color:var(--c-bg);border-radius:50%;place-items:center;display:grid}.timeline [data-state=done] i{background:var(--c-ink);box-shadow:none}.timeline [data-state=now] i{box-shadow:inset 0 0 0 7px var(--c-ink)}.timeline b{font:var(--t-label);display:block}.timeline [data-state=todo] b{color:var(--c-ink-2);font-weight:400}.timeline small{font:var(--t-small);color:var(--c-ink-2);margin-top:2px;display:block}.seal{background:var(--c-ink);width:56px;height:56px;color:var(--c-bg);margin-top:var(--s-6);border-radius:50%;place-items:center;display:grid}.seal--quiet{background:var(--c-surface-2);color:var(--c-ink)}.dock{z-index:15;width:min(var(--frame-max),100%);gap:var(--s-2);padding:var(--s-4) var(--gutter) calc(var(--s-4) + env(safe-area-inset-bottom));background:linear-gradient(#0000,var(--c-bg) 28%);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.empty{text-align:center;padding:var(--s-10) var(--s-4);justify-items:center;display:grid}.empty .seal{margin-top:0}.empty h2{font:var(--t-title);margin-top:var(--s-4)}.empty p{font:var(--t-small);color:var(--c-ink-2);margin-top:var(--s-2);max-width:22em}.media-tag{height:32px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--c-media-ctl);color:var(--c-on-media);-webkit-backdrop-filter:blur(12px);font:var(--t-small);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}button.media-tag[aria-pressed=true]{color:#161514;background:#fff}.stage{background:var(--c-stage);touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.stage__img{object-fit:cover;object-position:42% 72%;width:100%;height:100%;transition:filter var(--d-slow) var(--ease),transform var(--d-slow) var(--ease);position:absolute;inset:0}.stage__msg{place-content:center;justify-items:center;gap:var(--s-3);padding:0 var(--s-8);text-align:center;color:#ffffffd0;font:var(--t-small);display:grid;position:absolute;inset:0}.stage__viewer{touch-action:none;position:absolute;inset:0}.stage__viewer canvas{display:block;width:100%!important;height:100%!important}.stage__presets{z-index:3;left:0;right:0;bottom:calc(var(--r-xl) + var(--s-3) + 52px);gap:var(--s-2);padding:0 var(--s-4);scrollbar-width:none;display:flex;position:absolute;overflow-x:auto}.stage__presets::-webkit-scrollbar{display:none}.stage__presets .media-tag{flex-shrink:0}.stage__top{z-index:3;top:calc(var(--h-appbar) + env(safe-area-inset-top));justify-content:center;gap:var(--s-2);padding:0 var(--s-4);pointer-events:none;flex-wrap:nowrap;display:flex;position:absolute;left:0;right:0}.stage__top>*{flex-shrink:0}.stage__top button{pointer-events:auto}.stage__nav{z-index:3;position:absolute;top:50%;transform:translateY(-50%)}.stage__nav--prev{left:var(--s-2)}.stage__nav--next{right:var(--s-2)}.stage__bottom{z-index:3;left:var(--s-4);right:var(--s-4);bottom:calc(var(--r-xl) + var(--s-3));justify-content:space-between;align-items:center;gap:var(--s-2);display:flex;position:absolute}.stage__veil{z-index:2;place-content:center;justify-items:center;gap:var(--s-3);color:#fff;text-align:center;font:var(--t-small);background:#0f0e0d66;display:grid;position:absolute;inset:0}.stage__veil b{font:var(--t-heading)}.stage--busy .stage__img{filter:blur(8px)saturate(.7);transform:scale(1.05)}.progress{background:#ffffff40;border-radius:2px;width:160px;height:3px;overflow:hidden}.progress i{width:30%;height:100%;animation:indeterminate 1.6s var(--ease) infinite;background:currentColor;display:block}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(340%)}}.panel{z-index:5;margin-top:calc(-1 * var(--r-xl));border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--c-bg);box-shadow:var(--e-3);flex-direction:column;min-height:0;display:flex;position:relative}.panel__grip{flex-shrink:0;place-items:center;width:100%;height:24px;display:grid}.panel__grip:before{content:"";background:var(--c-line-strong);border-radius:3px;width:36px;height:5px}.panel__scroll{overscroll-behavior:contain;padding:0 var(--gutter) var(--s-4);scrollbar-width:none;overflow-y:auto}.panel__scroll::-webkit-scrollbar{display:none}.panel__notice{padding:0 var(--gutter)}.panel__notice .alert{margin-top:0;margin-bottom:var(--s-3)}.panel__actions{gap:var(--s-2);padding:var(--s-3) var(--gutter) calc(var(--s-4) + env(safe-area-inset-bottom));border-top:1px solid var(--c-line);display:flex}.panel__head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-top:var(--s-4);display:flex}.panel__title{font:var(--t-title);letter-spacing:var(--track-display)}.panel__note{margin-top:var(--s-2);font:var(--t-small);align-items:center;gap:6px;display:flex}.style-tag{height:30px;padding:0 var(--s-3) 0 6px;border-radius:var(--r-pill);background:var(--c-surface-2);font:var(--t-small);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-weight:500;display:inline-flex}.summary{align-items:center;gap:var(--s-3);margin-top:var(--s-4);padding:var(--s-2);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);display:flex}.summary__img{border-radius:var(--r-md);object-fit:cover;flex-shrink:0;width:52px;height:52px}.compare{border-radius:var(--r-lg);background:var(--c-surface);width:100%;box-shadow:var(--e-1);font:var(--t-small);table-layout:fixed;overflow:hidden}.compare th,.compare td{padding:10px var(--s-2);text-align:left;vertical-align:top;border-bottom:1px solid var(--c-line)}.compare tr:last-child>*{border-bottom:0}.compare thead th{color:var(--c-ink-2);padding-top:var(--s-3)}.compare tbody th{width:64px;padding-left:var(--s-4);color:var(--c-ink-2);font-weight:400}.compare tbody th small{display:block}.compare td{color:var(--c-ink-2);overflow-wrap:anywhere}.compare .is-current{background:var(--c-surface-2);color:var(--c-ink);font-weight:500}.sheet{width:100%;max-width:var(--frame-max);border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--c-bg);max-height:88dvh;color:var(--c-ink);border:0;margin:auto auto 0;padding:0;overflow:auto}.sheet[open]{animation:sheet-in var(--d-slow) var(--ease)}.sheet::backdrop{background:#0f0e0d80}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.sheet__body{padding:0 var(--gutter) calc(var(--s-6) + env(safe-area-inset-bottom))}.sheet__body:focus{outline:0}.sheet__title{font:var(--t-title)}.toast{z-index:60;left:50%;bottom:calc(110px + env(safe-area-inset-bottom));opacity:0;max-width:calc(100% - 40px);padding:10px var(--s-4);border-radius:var(--r-pill);background:var(--c-primary);color:var(--c-on-primary);font:var(--t-small);pointer-events:none;transition:opacity var(--d-base),transform var(--d-slow) var(--ease);position:fixed;transform:translate(-50%,12px)}.toast.is-on{opacity:1;transform:translate(-50%)}.plan-svg{width:100%;height:auto;display:block}.plan-svg .pl-room{fill:var(--c-surface);stroke:var(--c-line-strong);stroke-width:.5px}.plan-svg .on .pl-room{fill:var(--c-surface-3)}.plan-svg .pl-area{fill:var(--c-ink);fill-opacity:.16;stroke:var(--c-ink);stroke-width:.6px}.plan-svg .pl-stair{fill:none;stroke:var(--c-line-strong);stroke-width:.5px;stroke-dasharray:1.5 1}.plan-svg .pl-stair.on{stroke:var(--c-ink);stroke-dasharray:none;stroke-width:.8px}.plan-svg .pl-wall{stroke:var(--c-ink);stroke-width:1.6px;stroke-linecap:round}.plan-svg text{font:4px var(--font);fill:var(--c-ink-2);text-anchor:middle}.plan{margin-top:var(--s-3);padding:var(--s-4);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1)}.plan figcaption{margin-top:var(--s-2);font:var(--t-small);color:var(--c-ink-2)}.home-hero{color:#fff;background:var(--c-stage);height:62dvh;min-height:420px;max-height:600px;position:relative}.home-hero img{object-fit:cover;object-position:40% 75%;width:100%;height:100%;position:absolute;inset:0}.home-hero:after{content:"";background:linear-gradient(#0f0e0d00 40%,#0f0e0dc0);position:absolute;inset:0}.home-hero__copy{z-index:2;left:var(--gutter);right:var(--gutter);bottom:calc(var(--r-xl) + var(--s-6));position:absolute}.home-hero h1{font:var(--t-display);letter-spacing:var(--track-display);text-wrap:balance}.home-hero__caption{margin-top:var(--s-3);font:var(--t-small);opacity:.8}.home-body{z-index:3;margin-top:calc(-1 * var(--r-xl));border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--c-bg);padding-top:var(--s-6);position:relative}.flow{margin-top:var(--s-6);border-top:1px solid var(--c-line-strong);grid-template-columns:repeat(3,1fr);display:grid}.flow li{padding:var(--s-3) var(--s-2) 0 0;font:var(--t-small);font-weight:500;position:relative}.flow li:before{content:"";background:var(--c-ink);border-radius:50%;width:9px;height:9px;position:absolute;top:-5px;left:0}.flow small{color:var(--c-ink-2);margin-top:2px;font-weight:400;display:block}.stone-rail{gap:var(--s-3);margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.stone-rail::-webkit-scrollbar{display:none}.stone-rail figure{font:var(--t-small);flex:0 0 88px}.stone-rail .swatch__img{margin-bottom:6px}.demo-code{justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--c-surface-2);display:flex}.demo-code span{font:var(--t-small);color:var(--c-ink-2);display:block}.demo-code strong{font:var(--t-title);letter-spacing:.16em;font-variant-numeric:tabular-nums;display:block}.renders{gap:var(--s-2);margin-top:var(--s-6);grid-template-columns:repeat(3,1fr);display:grid}.render-slot{aspect-ratio:3/4;border-radius:var(--r-md);background:var(--c-surface-2);position:relative;overflow:hidden}.render-slot img{object-fit:cover;object-position:42% 72%;width:100%;height:100%;animation:slot-in .9s var(--ease);position:absolute;inset:0}@keyframes slot-in{0%{opacity:0;transform:scale(1.06)}}.render-slot[data-state=now]:before{content:"";background:linear-gradient(100deg,#0000 30%,#fff5 50%,#0000 70%) 0 0/250% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.render-slot[data-state=todo]{opacity:.55}.render-slot[data-state=failed]{background:var(--c-surface-3)}.render-slot[data-state=failed] span{color:var(--c-danger)}.render-slot span{left:var(--s-2);bottom:var(--s-2);z-index:2;font:var(--t-small);border-radius:var(--r-pill);background:var(--c-surface);padding:2px 8px;font-weight:500;position:absolute}.bar{height:4px;margin-top:var(--s-5);background:var(--c-surface-3);border-radius:2px;overflow:hidden}.bar i{background:var(--c-ink);height:100%;transition:width var(--d-slow) var(--ease);border-radius:2px;display:block}.immersive{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.immersive .stage{flex:auto;min-height:30dvh}.immersive .panel{max-height:36dvh;transition:max-height var(--d-slow) var(--ease);flex:0 auto}.immersive.is-expanded .panel{max-height:80dvh}.immersive.is-expanded .stage{min-height:20dvh}.adjust .panel{max-height:62dvh}.finish-tabs{gap:var(--s-2);margin:var(--s-4) calc(-1 * var(--gutter)) 0;padding:0 var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.finish-tabs::-webkit-scrollbar{display:none}.finish-tabs .chip{flex-shrink:0}.changes li{gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--c-line);font:var(--t-small);align-items:baseline;display:flex}.changes li:last-child{border-bottom:0}.changes li:before{content:"";background:var(--c-ink);border-radius:50%;flex-shrink:0;width:6px;height:6px;transform:translateY(-2px)}.confirm-hero{gap:var(--s-4);margin-top:var(--s-4);align-items:center;display:flex}.confirm-hero__img{border-radius:var(--r-md);background:var(--c-surface-2);flex-shrink:0;width:112px;height:84px;overflow:hidden}.confirm-hero__img img{object-fit:cover;object-position:42% 72%;width:100%;height:100%}.quote{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--c-surface);box-shadow:var(--e-1)}.project{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--e-1);display:flex}.project+.project{margin-top:var(--s-3)}.project__thumb{border-radius:var(--r-md);background:var(--c-surface-2);width:72px;height:72px;color:var(--c-ink-2);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.project__thumb img{object-fit:cover;width:100%;height:100%}.project__main{flex:1;justify-items:start;gap:6px;min-width:0;display:grid}.project__main b{font:var(--t-label);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-rail]{-webkit-mask-image:var(--rail-mask);-webkit-mask-image:var(--rail-mask);mask-image:var(--rail-mask);cursor:grab}[data-rail][data-more-end]{--rail-mask:linear-gradient(to right,#000 calc(100% - 40px),transparent)}[data-rail][data-more-start]{--rail-mask:linear-gradient(to right,transparent,#000 40px)}[data-rail][data-more-start][data-more-end]{--rail-mask:linear-gradient(to right,transparent,#000 40px,#000 calc(100% - 40px),transparent)}@media (pointer:coarse){[data-rail]{cursor:auto}}.stage__labels{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.room-label{pointer-events:auto;border-radius:var(--r-sm);color:#2b2925;height:26px;font:var(--t-small);white-space:nowrap;transition:background var(--d-fast) var(--ease),color var(--d-fast) var(--ease);background:#fffdf8;padding:0 10px;font-size:12px;line-height:26px;position:absolute;top:0;left:0;box-shadow:0 1px 2px #1615141a,0 4px 12px #16151414}.room-label[aria-pressed=true]{color:#fff;background:#161514}.stage__room{z-index:3;left:var(--s-4);right:var(--s-4);bottom:calc(var(--r-xl) + var(--s-3) + 96px);align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);border-radius:var(--r-md);color:#161514;box-shadow:var(--e-2);-webkit-backdrop-filter:blur(12px);background:#fffdf8f2;display:flex;position:absolute}.stage__room-text{flex:1;gap:2px;min-width:0;display:grid}.stage__room-text b{font:var(--t-label)}.stage__room-text small{font:var(--t-small);color:#5f5b54;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage__room-enter{height:36px;padding:0 var(--s-4);border-radius:var(--r-pill);color:#fff;font:var(--t-label);background:#161514;flex-shrink:0;font-size:14px}.panel__grip{touch-action:none;cursor:grab;height:28px}.panel__grip:active{cursor:grabbing}.immersive.is-min .panel__scroll{display:none}.panel__actions{flex-shrink:0}.room-label.room-label--dot{background:#5f5b54;border:2px solid #fffdf8;border-radius:50%;width:12px;height:12px;padding:0}.room-label.room-label--dot span{display:none}.room-label.room-label--dot[aria-pressed=true]{background:#161514}.room-label.room-label--dot:after{content:"";position:absolute;inset:-12px}.scheme-info{pointer-events:auto;position:relative}.scheme-info__card{z-index:6;width:min(320px,100vw - 32px);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);color:#161514;box-shadow:var(--e-2);-webkit-backdrop-filter:blur(12px);text-align:left;background:#fffdf8f5;gap:6px;display:grid;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.scheme-info__card b{font:var(--t-label)}.scheme-info__card p{font:var(--t-small);color:#5f5b54}.scheme-info__card small{font:var(--t-small);color:#5f5b54;font-size:12px}.stage__loading{place-content:center;justify-items:center;gap:var(--s-3);z-index:2;display:grid}.stage__spinner{border:2.5px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:28px;height:28px;animation:.9s linear infinite stage-spin}.stage__progress{background:#fff3;border-radius:2px;width:160px;height:3px;overflow:hidden}.stage__progress i{transform-origin:0;height:100%;transition:transform var(--d-base) var(--ease);background:#fff;display:block}@keyframes stage-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.stage__spinner{animation-duration:2.4s}}
