.bean,.bean-av{flex:none;display:block}.bean-av{width:32px;height:32px}.bean-av-bg{fill:var(--surface)}.anim .char{transform-box:fill-box;transform-origin:50% 100%;animation:2.6s cubic-bezier(.45,0,.15,1) infinite bean-breathe}.anim .sway{transform-box:fill-box;transform-origin:30% 100%;animation:2.6s cubic-bezier(.45,0,.15,1) infinite bean-sway}.anim .blinky{transform-box:fill-box;transform-origin:50%;animation:3.8s linear infinite bean-blink}.waving.anim .arm-r{transform-box:fill-box;transform-origin:0 100%;animation:.62s ease-in-out 3 bean-wave}@keyframes bean-breathe{0%,to{transform:scale(1)}45%{transform:scale(1.025,.975)}75%{transform:scale(.992,1.01)}}@keyframes bean-sway{0%,to{transform:rotate(0)}30%{transform:rotate(-7deg)}70%{transform:rotate(6deg)}}@keyframes bean-blink{0%,90%,96%,to{transform:scaleY(1)}93%{transform:scaleY(.08)}}@keyframes bean-wave{0%,to{transform:rotate(0)}40%{transform:rotate(24deg)}75%{transform:rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.anim .char,.anim .sway,.anim .blinky,.waving.anim .arm-r{animation:none!important}}.tour{z-index:100;view-transition-name:tour;--tour-dim:#0c0e12bd;position:fixed;inset:0}.tour-shield{touch-action:none;position:absolute;inset:0}.tour-hole{left:var(--x,50%);top:var(--y,50%);width:var(--w,0px);height:var(--h,0px);border-radius:var(--r,18px);pointer-events:none;opacity:0;box-shadow:0 0 0 3px var(--focus-ring), 0 0 0 9999px var(--tour-dim);transition:opacity .2s;position:absolute}.tour:not(.on) .tour-hole{box-shadow:0 0 0 9999px var(--tour-dim);opacity:1;width:0;height:0}.tour.on .tour-hole{opacity:1;animation:.28s cubic-bezier(.2,.8,.2,1) both tour-hole-in}@keyframes tour-hole-in{0%{box-shadow:0 0 0 3px transparent, 0 0 0 9999px var(--tour-dim);scale:1.2}}.tour-hand{pointer-events:none;opacity:0;width:44px;height:44px;transform:translate(calc(var(--hx,-99px) - 19px), calc(var(--hy,-99px) - 3px));transition:opacity .25s;position:absolute;top:0;left:0}.tour.on .tour-hand.set{opacity:1}.tour.probe,.tour.probe *{pointer-events:none!important}.tour-mv{width:100%;height:100%;position:relative}.tour-finger{transform-origin:43.4% 7%;filter:drop-shadow(0 3px 4px #00000073)drop-shadow(0 0 1px #0009);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tour-finger path{fill:var(--card);stroke:var(--ink);stroke-width:15px;stroke-linejoin:round;paint-order:stroke}.tour-rip{border:3px solid var(--focus-ring);opacity:0;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute;top:3px;left:19px}.tour-hand[data-act=tap] .tour-finger{animation:1.6s .9s infinite backwards tour-tap}.tour-hand[data-act=tap] .tour-rip,.tour-hand.ring .tour-rip{animation:1.6s .9s infinite backwards tour-rip}.tour-hand.ring .tour-finger{display:none}.tour-hand[data-act=point] .tour-finger{animation:1.8s ease-in-out .9s infinite tour-bob}.tour-hand[data-act=hold] .tour-finger{animation:2.6s .9s infinite backwards tour-press}.tour-hand.down .tour-finger{rotate:180deg}.tour-hand.down[data-act=point] .tour-finger{animation-name:tour-bob-s}@keyframes tour-bob-s{50%{translate:0 3px}}@keyframes tour-tap{0%,30%,to{scale:1}12%{translate:0 3px;scale:.82}}@keyframes tour-rip{0%,10%{opacity:0;scale:.3}14%{opacity:.9}55%,to{opacity:0;scale:1.5}}@keyframes tour-bob{50%{translate:0 6px}}@keyframes tour-press{0%,to{scale:1}8%,62%{translate:0 3px;scale:.84}70%{translate:0;scale:1}}.tour-card{border:var(--line);border-radius:var(--r-card);background:var(--card);max-width:420px;color:var(--ink);visibility:hidden;box-shadow:0 0 0 8px color-mix(in srgb, var(--tour-dim) 75%, transparent);margin-inline:auto;padding:16px 16px 12px;position:absolute;left:16px;right:16px;overflow:visible}.tour.on .tour-card{visibility:visible;animation:.3s ease-out .1s backwards tour-card-in}@keyframes tour-card-in{0%{opacity:0;translate:0 8px}}.tour-card.up{animation-name:tour-card-in-up}@keyframes tour-card-in-up{0%{opacity:0;translate:0 -8px}}.tour-card:before{content:"";top:-8px;left:calc(var(--ax,50%) - 7px);background:inherit;border-left:var(--line);border-top:var(--line);border-radius:2px 0 0;width:12px;height:12px;position:absolute;rotate:45deg}.tour-card.up:before{border:0;border-right:var(--line);border-bottom:var(--line);border-radius:0 0 2px;top:auto;bottom:-8px}.tour-track{background:var(--surface);border-radius:2px;height:4px;position:absolute;top:8px;left:14px;right:14px;overflow:hidden}.tour-prog{background:var(--accent-a);transform-origin:0;height:100%;animation:linear both tour-prog;display:block}@keyframes tour-prog{0%{scale:0 1}}.tour-t{font-size:var(--fs-lg);margin:6px 0 4px;font-weight:700}.tour-say{color:var(--sub);font-size:var(--fs-md);margin:0}.tour-say b{color:var(--ink);font-weight:600}.tour-foot{align-items:center;gap:12px;margin-top:12px;display:flex}.tour-n{color:var(--sub);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.tour-dots{gap:6px;margin-right:auto;display:flex}.tour-n+.tour-dots i{width:5px;height:5px}.tour-n+.tour-dots i.on{width:14px}.tour-dots i{background:var(--hairline);border-radius:50%;width:7px;height:7px}.tour-dots i.on{background:var(--ink);border-radius:4px;width:18px}.tour-skip{color:var(--sub);min-height:44px;padding:0 8px;text-decoration:none}.tour-next{background:var(--ink);min-height:44px;color:var(--on-ink);font:inherit;cursor:pointer;border:0;border-radius:22px;align-items:center;gap:4px;padding:0 14px 0 18px;font-weight:600;display:inline-flex}.tour-next svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.tour-next:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){.tour-hole,.tour-hand{transition:none}.tour *,.tour.on .tour-hole,.tour.on .tour-card{animation:none!important}.tour-track{display:none}}.li.tour-replay{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.li.tour-replay>.grow{grid-column:1/-1}.li.tour-replay .chips{display:contents}.li.tour-replay .chip{min-height:44px;font-size:var(--fs-md);justify-content:center}:root{--bg:#fbf7f1;--ink:#2c2c33;--sub:#666568;--surface:#efebe6;--accent-a:#f4a57a;--accent-b:#8c7fd0;--on-ink:#fff;--hairline:#dedbd6;--warn-bg:#fff4e5;--warn-line:#f0b35a;--line:1px solid transparent;--r-chip:8px;--r-input:24px;--r-photo:24px;--r-card:30px;--font:"Nunito", "Nunito Sans", "Noto Sans TC", "PingFang TC", sans-serif;--card:#fbf7f1;--pos:#12a150;--neg:#d6453d;--pos-soft:#daebda;--neg-soft:#f6ded8;--pos-ink:#1c7244;--neg-ink:#ac3f3b;--focus-ring:#3f7f86;--fs-xs:13px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:30px;--fs-display:48px;--pad-x:20px;--gap:14px;--tab-h:68px;--maxw:520px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--pri:#3f7f86;--on-pri:#fff;--line-ctl:1px solid #dcd9d5;--tabline:1px solid #d2cecb;--shadow:0 12px 32px #2c2c3314;--fs:16px;--hw:800;--dur:.4s;--ease:cubic-bezier(.25, .1, .25, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--apricot:#f7e6da;--lavender:#ece8f7;--frost:#ffffff9e}:root[data-theme=dark]{--bg:#15171d;--ink:#ececee;--sub:#96979a;--surface:#2b2c32;--accent-a:#f4a57a;--accent-b:#8c7fd0;--on-ink:#161616;--hairline:#33353a;--warn-bg:#3a2e14;--warn-line:#f0b35a;--line:1px solid transparent;--r-chip:8px;--r-input:24px;--r-photo:24px;--r-card:30px;--font:"Nunito", "Nunito Sans", "Noto Sans TC", "PingFang TC", sans-serif;--card:#23252b;--pos:#3ddc97;--neg:#ff6b6b;--pos-soft:#1e4238;--neg-soft:#48292e;--pos-ink:#60dfa8;--neg-ink:#fb8585;--focus-ring:#3f7f86;--fs-xs:13px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:30px;--fs-display:48px;--pad-x:20px;--gap:14px;--tab-h:68px;--maxw:520px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--pri:#3f7f86;--on-pri:#fff;--line-ctl:1px solid #35373c;--tabline:1px solid #404247;--shadow:0 12px 32px #00000073;--fs:16px;--hw:800;--dur:.4s;--ease:cubic-bezier(.25, .1, .25, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--apricot:#3a2c2a;--lavender:#2c2940;--frost:#ffffff0f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{display:block}svg.i{stroke-width:2px;flex:none;width:22px;height:22px}#root{max-width:var(--maxw);min-height:100%;margin:0 auto;position:relative}.page{padding:calc(14px + var(--safe-t)) var(--pad-x) calc(var(--tab-h) + 24px + var(--safe-b));min-height:100dvh}.page.notab{padding-bottom:calc(28px + var(--safe-b))}.h1{font-size:var(--fs-2xl);font-weight:var(--hw);letter-spacing:.04em;line-height:1.25}.h2{font-size:var(--fs-xl);font-weight:var(--hw);letter-spacing:.02em}.t{font-size:var(--fs-md);font-weight:700}.meta{font-size:var(--fs-sm);color:var(--sub)}.center{text-align:center}.row{align-items:center;gap:var(--gap);display:flex}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top{justify-content:space-between;align-items:center;gap:var(--gap);min-height:44px;margin:4px 0 14px;display:flex}.iconbtn{border-radius:var(--r-input);border:var(--line-ctl);background:var(--card);width:40px;height:40px;box-shadow:var(--shadow);flex:none;justify-content:center;align-items:center;display:inline-flex}.iconbtn svg{width:20px;height:20px}.av{width:34px;height:34px;color:var(--on-ink);font-weight:700;font-size:var(--fs-sm);border:2px solid var(--bg);background:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.av+.av{margin-left:-8px}.av.a{background:color-mix(in srgb, var(--accent-a) 28%, var(--bg));color:color-mix(in srgb, var(--accent-a) 40%, var(--ink))}.av.b{background:color-mix(in srgb, var(--accent-b) 28%, var(--bg));color:color-mix(in srgb, var(--accent-b) 40%, var(--ink))}.cta{border-radius:var(--r-input);background:var(--pri);width:100%;height:50px;color:var(--on-pri);font-weight:var(--hw);font-size:var(--fs-lg);letter-spacing:.04em;box-shadow:var(--shadow);justify-content:center;align-items:center;display:flex}.cta:disabled{opacity:.45}.btn2{border-radius:var(--r-input);border:var(--line-ctl);background:var(--card);height:44px;box-shadow:var(--shadow);flex:1;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.btn2.dark{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.link{color:var(--sub);text-decoration:underline}.danger{color:var(--neg)}button,.chip,.li,.tabbar a{transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease)}.chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{font-size:var(--fs-sm);border-radius:var(--r-chip);border:var(--line-ctl);background:var(--card);white-space:nowrap;flex:none;padding:6px 12px;font-weight:600}.chip.on{background:var(--pri);color:var(--on-pri);border-color:var(--pri)}.fld{background:var(--surface);border-radius:var(--r-input);margin-bottom:10px;padding:9px 13px;display:block}.fld>.lbl,.lbl{font-size:var(--fs-xs);color:var(--sub);margin-bottom:2px;display:block}.fld input,.fld textarea,.fld select{width:100%;font-size:var(--fs-md);background:0 0;border:0;outline:none;padding:2px 0;font-weight:600}.search{border-radius:var(--r-input);border:var(--line-ctl);background:var(--card);align-items:center;gap:8px;height:46px;padding:0 14px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.card{border:var(--line);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow);padding:12px 14px}.card.soft{background:var(--surface);box-shadow:none;border:0}.photo{background:var(--surface) center / cover no-repeat;border-radius:var(--r-photo);flex:none;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo.ph{background:linear-gradient(140deg, var(--surface), var(--hairline))}.sec{font-size:var(--fs-xs);color:var(--sub);margin:16px 0 6px;font-weight:600}.li{border-bottom:1px solid var(--hairline);text-align:left;align-items:center;gap:10px;width:100%;padding:11px 2px;display:flex}.li:last-child{border-bottom:0}.tabbar{width:100%;max-width:var(--maxw);height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--card);border-top:var(--tabline);z-index:20;justify-content:space-around;align-items:flex-start;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{font-size:var(--fs-xs);color:var(--sub);flex-direction:column;align-items:center;gap:2px;width:64px;padding-top:8px;display:flex}.tabbar a svg{width:22px;height:22px}.tabbar a.on{color:var(--ink);font-weight:700}.tabbar a.on svg{color:var(--pri)}.tabbar a.plus{color:var(--sub);padding-top:0}.tabbar a.plus span{border-radius:var(--r-input);background:var(--pri);width:50px;height:50px;color:var(--on-pri);box-shadow:var(--shadow);justify-content:center;align-items:center;margin-top:-20px;display:flex}.tabbar a.plus span svg{width:26px;height:26px}.dim{z-index:40;background:#00000059;position:fixed;inset:0}.sheet{width:100%;max-width:var(--maxw);background:var(--card);border:var(--line);border-radius:var(--r-card) var(--r-card) 0 0;z-index:41;padding:8px 16px calc(18px + var(--safe-b));max-height:88dvh;box-shadow:var(--shadow);border-bottom:0;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.grab{background:var(--hairline);border-radius:3px;width:44px;height:5px;margin:4px auto 12px;display:block}.seg{border:var(--line-ctl);border-radius:var(--r-input);background:var(--card);margin:10px 0;display:flex;overflow:hidden}.seg button{flex:1;padding:8px 0;font-weight:700}.seg button.on{background:var(--pri);color:var(--on-pri)}.toast{left:50%;bottom:calc(var(--tab-h) + 24px + var(--safe-b));background:var(--ink);color:var(--on-ink);border-radius:var(--r-input);z-index:60;max-width:90%;padding:10px 16px;position:fixed;transform:translate(-50%)}.banner{background:var(--warn-bg);border:2px solid var(--warn-line);border-radius:var(--r-input);margin-bottom:12px;padding:8px 12px}.offline{z-index:70;background:var(--ink);color:var(--on-ink);font-size:var(--fs-xs);text-align:center;padding:calc(2px + var(--safe-t)) 0 2px;position:fixed;top:0;left:0;right:0}.empty{text-align:center;color:var(--sub);padding:40px 10px}.spin{border:3px solid var(--hairline);border-top-color:var(--pri);border-radius:50%;width:22px;height:22px;margin:30px auto;animation:.8s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:radial-gradient(circle at 12% -5%, var(--apricot), transparent 42%), radial-gradient(circle at 105% 28%, var(--lavender), transparent 40%), var(--bg);background-attachment:fixed}.card{border:0}.fld{background:var(--frost);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cta{box-shadow:var(--shadow);border-radius:999px}.btn2{background:var(--frost);border:0;border-radius:999px}.btn2.dark{background:var(--ink)}.chip{background:var(--lavender);border:0;border-radius:999px;padding:8px 16px}.chip.on{background:var(--pri);color:var(--on-pri)}.iconbtn{background:var(--frost);border:0;border-radius:999px}.li{border-bottom:0;padding:12px 2px}.tabbar{border-top:0;border-radius:28px 28px 0 0;box-shadow:0 -8px 24px #2c2c330f}.tabbar a.plus span{border-radius:999px}button:active,.tabbar a:active{transform:scale(.97)}.with-side{--side-w:15rem;--main-min:55%;gap:var(--gap);flex-wrap:wrap;display:flex}.with-side>.side{flex:1 1 var(--side-w);min-width:0}.with-side>:not(.side){min-width:min(100%, var(--main-min));flex:999 1 0}.auto-cols{--col-min:14rem;gap:var(--gap);grid-template-columns:repeat(auto-fill, minmax(min(var(--col-min), 100%), 1fr));display:grid}.switch-cols{--switch-at:30rem;gap:var(--gap);flex-wrap:wrap;display:flex}.switch-cols>*{flex-grow:1;flex-basis:calc((var(--switch-at) - 100%) * 999);min-width:0}.half-lead,.half-lead *{line-height:calc(1em + var(--hl,.3125rem) * 2)}:where(:root){--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem}.row.base{align-items:baseline}.photo-scrim{padding:var(--sp-6) var(--sp-4) var(--sp-3);color:#fff;text-shadow:0 1px 2px #0006;background:linear-gradient(#0000,#00000080 45%,#000000c7);position:absolute;inset:auto 0 0}.photo-scrim .meta{color:#ffffffd9}.empty-t{color:var(--ink);font-size:var(--fs-lg);margin:0;font-weight:700}.empty-d{margin:var(--sp-2,.5rem) auto 0;max-width:28em;color:var(--sub);font-size:var(--fs-sm)}.empty-act{margin-top:var(--sp-5,1.5rem);justify-content:center;gap:var(--sp-2,.5rem);flex-wrap:wrap;display:flex}.empty-act>*{min-width:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page.chat{flex-direction:column;min-height:100dvh;padding-bottom:0;display:flex}.chat-top{z-index:10;margin:calc(-14px - var(--safe-t)) calc(-1 * var(--pad-x)) 0;padding:calc(6px + var(--safe-t)) var(--pad-x) var(--sp-3);background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}@media (width>=521px){.chat-top{border-radius:0 0 var(--r-card) var(--r-card)}}.chat-top .top{gap:var(--sp-2);margin:0}.chat-title{font-size:var(--fs-lg);font-weight:var(--hw);letter-spacing:.02em}.canvas-btn{font-variant-numeric:tabular-nums}.stages{gap:var(--sp-1);margin-top:var(--sp-2);grid-template-columns:repeat(6,minmax(0,1fr));list-style:none;display:grid}.stages li{font-size:var(--fs-xs);text-align:center;color:var(--sub);padding-top:var(--sp-1);border-top:4px solid var(--hairline);border-radius:2px}.stages li.done{border-top-color:color-mix(in srgb, var(--pri) 45%, var(--bg));color:var(--ink)}.stages li.done:before{content:"✓";color:var(--pri);margin-right:2px}.stages li.now{border-top:6px solid var(--pri);color:var(--ink);padding-top:2px;font-weight:700}.chat-rest{margin-top:var(--sp-2);font-size:var(--fs-sm);background:var(--warn-bg);border-radius:var(--r-input);padding:var(--sp-2) var(--sp-3)}.log{gap:var(--sp-5);padding:var(--sp-4) 0 var(--sp-5);flex-direction:column;flex:1;display:flex}.log>.brow+.brow,.log>.brow+.ask{margin-top:calc(var(--sp-1) - var(--sp-5))}.log>.brow+.brow .bean-av,.log>.brow+.ask>.brow .bean-av{visibility:hidden}.brow{gap:var(--sp-2);align-items:flex-start;max-width:92%;display:flex}.bot{background:var(--frost);padding:var(--sp-2) var(--sp-4);border-radius:6px 22px 22px;min-width:0}.me{background:color-mix(in srgb, var(--pri) 16%, var(--bg));max-width:86%;color:var(--ink);padding:var(--sp-2) var(--sp-4);white-space:pre-wrap;border-radius:22px 6px 22px 22px;align-self:flex-end}.why{font-size:var(--fs-xs);color:var(--sub);margin:var(--sp-1) 0 0 calc(32px + var(--sp-2) + var(--sp-2))}.opts{gap:var(--sp-2);margin:var(--sp-2) 0 0 calc(32px + var(--sp-2));flex-direction:column;display:flex}.opt{text-align:left;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-input);background:var(--card);box-shadow:var(--shadow);min-height:44px;font-weight:500}@media (hover:hover) and (pointer:fine){.opt:hover{background:var(--lavender)}}.opts .other{font-size:var(--fs-sm);padding:var(--sp-1) var(--sp-2);align-self:flex-start;min-height:32px}.hello{gap:var(--sp-3);align-items:center;display:flex}.hello-bean{width:76px;height:88px}.hello b{font-size:var(--fs-lg);display:block}.facts{position:relative}.facts-bean{float:right;width:58px;height:66px;margin:-6px -4px 0 var(--sp-2)}.facts h3{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.facts h3 .meta{font-weight:400;font-size:var(--fs-xs)}.facts>.meta{margin-top:var(--sp-1)}.facts ul{margin:var(--sp-3) 0;clear:both;list-style:none}.facts li{gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--hairline);align-items:flex-start;display:flex}.facts li .k{font-size:var(--fs-xs);color:var(--sub);flex:none;display:block}.facts li .grow .k{flex:initial}.facts li.off .grow{color:var(--sub);text-decoration:line-through}.facts li .chip{padding:var(--sp-1) var(--sp-3)}.facts .acts{gap:var(--sp-2);display:flex}.btn2.pri{background:var(--pri);color:var(--on-pri)}.facts.closed{padding:var(--sp-2) var(--sp-4)}.facts.closed summary{cursor:pointer;font-size:var(--fs-sm);color:var(--sub);list-style:none}.facts.closed summary:before{content:"▸ "}.done-line{font-size:var(--fs-sm);color:var(--sub)}.stages li.done:before{margin-left:-.6em}.facts.closed[open] summary:before{content:"▾ "}.facts.closed ul{margin:var(--sp-2) 0 0}.facts.closed li{font-size:var(--fs-sm)}.facts.gap ul li{font-size:var(--fs-sm);list-style:inside;display:list-item}.thinking .bot{align-items:center;gap:var(--sp-2);color:var(--sub);display:flex}.dots{gap:4px;display:inline-flex}.dots i{background:var(--sub);width:6px;height:6px;animation:dot 1.2s var(--ease) infinite;border-radius:50%}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes dot{0%,60%,to{opacity:.25}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.dots{display:none}}.composer{z-index:10;margin:0 calc(-1 * var(--pad-x));padding:var(--sp-2) var(--pad-x) calc(var(--sp-3) + var(--safe-b));gap:var(--sp-2);background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:flex-end;display:flex;position:sticky;bottom:0}.composer textarea{resize:none;background:var(--card);min-width:0;box-shadow:var(--shadow);border-radius:var(--r-input);padding:var(--sp-3) var(--sp-4);border:0;outline:none;flex:1;min-block-size:0;max-block-size:30svh}.composer textarea:focus-visible{outline:2px solid var(--focus-ring)}.composer .send.idle{background:var(--surface);color:var(--sub);box-shadow:none}.composer .send{height:46px;padding:0 var(--sp-4);background:var(--pri);color:var(--on-pri);white-space:nowrap;border-radius:999px;flex:none;font-weight:700}.composer.done-bar{text-align:center;flex-direction:column;align-items:stretch}.canvas-sheet .meta{margin:var(--sp-1) 0 var(--sp-3)}.vpc{gap:var(--sp-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.vpc-side{padding:var(--sp-3) var(--sp-2);background:var(--surface);min-width:0}.vpc-side.square{border-radius:var(--r-chip);padding-top:var(--sp-5)}.vpc-side.round{padding:var(--sp-5) var(--sp-4) var(--sp-6);background:var(--lavender);border-radius:50%/18%}.vpc-h{text-align:center;font-size:var(--fs-xs);color:var(--sub);margin-bottom:var(--sp-1);font-weight:700}.vpc-h span{font-weight:400;display:block}.vpc-cell{border-top:1px solid var(--hairline);padding:var(--sp-2) 0}.vpc-cell h4{font-size:var(--fs-sm);gap:var(--sp-1)}.vpc-tag{font-size:var(--fs-xs);color:var(--sub);background:var(--warn-bg);padding:0 var(--sp-2);border-radius:999px;flex:none;font-weight:400}.vpc-ok{color:var(--pos-ink);flex:none}.vpc-cell ul{list-style:none}.vpc-li{gap:var(--sp-1);text-align:left;width:100%;font-size:var(--fs-sm);padding:var(--sp-1) 0;align-items:baseline;display:flex}button.vpc-li{min-height:44px;padding-block:var(--sp-2);align-items:flex-start}.vpc-li .vpc-code{line-height:inherit}.vpc-code{color:var(--sub);font-size:var(--fs-xs);flex:none}.vpc-claim{margin-left:var(--sp-1);font-size:var(--fs-xs);color:var(--sub);background:var(--warn-bg);border-radius:999px;padding:0 6px}.vpc-li svg.vpc-fix{width:16px;height:16px;color:var(--sub);margin-top:calc(.5lh - 8px)}.vpc-cell .meta{font-size:var(--fs-xs)}.res-sec{margin-top:var(--sp-5)}.res-sec>.t{margin-bottom:var(--sp-2)}.res-list{gap:var(--sp-2);flex-direction:column;list-style:none;display:flex}.res-list li{gap:var(--sp-2);align-items:baseline;display:flex}.res-list .k{font-size:var(--fs-xs);color:var(--sub);flex:none;min-width:2.5em}.moscow{gap:var(--sp-2);display:grid}.ev{font-size:var(--fs-sm)}.ev summary{cursor:pointer;font-weight:700}.ev li{padding:var(--sp-1) 0;border-top:1px solid var(--hairline)}.adm-form{gap:var(--sp-2);flex-direction:column;display:flex}.adm-form .fld{margin:0}.stage-pill{font-size:var(--fs-xs);background:var(--surface);border-radius:999px;flex:none;padding:2px 10px}.stage-pill.done{background:var(--pos-soft);color:var(--pos-ink)}.res-sum{column-gap:var(--sp-4);row-gap:var(--sp-2);grid-template-columns:auto minmax(0,1fr);display:grid}.res-sum dt{font-weight:700}.li .iconbtn{box-shadow:none;color:var(--sub);background:0 0}.toast{max-width:min(340px, calc(100% - 2 * var(--pad-x)));text-wrap:pretty}.vpc-board-wrap{margin:0 0 var(--sp-3)}.vpc-scroll{overscroll-behavior-x:contain;border-radius:var(--r-chip);-webkit-overflow-scrolling:touch;overflow-x:auto}.vpc-scroll:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.vpc-board{aspect-ratio:2000/1414;width:960px;position:relative;container-type:inline-size}.vpc-board svg{width:100%;height:100%;display:block}.vb-bg{fill:#ececec}.vb-title{fill:#111;font-size:64px;font-weight:700}.vb-title-en{fill:#555;font-size:38px;font-weight:400}.vb-field{fill:#fff}.vb-field-k{fill:#555;font-size:22px}.vb-field-v{fill:#111;font-size:26px;font-weight:700}.vb-shape{fill:#fff;stroke:#111;stroke-width:6px}.vb-line{fill:none;stroke:#111;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.vb-face{fill:#fff;stroke:#111;stroke-width:6px;stroke-linejoin:round}.vb-eye{fill:#111}.vb-icon{color:#111}.vb-label{fill:#111;text-anchor:middle;font-size:36px;font-weight:700}.vb-en{fill:#555;text-anchor:middle;font-size:24px}.vb-ok{fill:var(--pos-ink)}.vb-todo{fill:#767676;font-size:22px;font-weight:400}.vb-credit{fill:#666;font-size:22px}.vb-notes{flex-direction:column;gap:.35cqw;margin:0;padding:0;list-style:none;display:flex;position:absolute;overflow:hidden}.vb-note{color:#222;white-space:nowrap;text-overflow:ellipsis;background:#fff4b8;border:1px solid #e3d27a;border-radius:3px;flex:none;padding:.25cqw .5cqw;font-size:1.35cqw;line-height:1.35;overflow:hidden}.vb-note b{color:#555;margin-right:.4cqw;font-weight:700}.vb-note.claim{background:#fff;border-style:dashed}.vb-note.more{color:#555;background:0 0;border:0;padding-left:0}.vpc-hint{text-align:center;margin-top:var(--sp-1)}.vpc-list-h{font-size:var(--fs-sm);margin:var(--sp-2) 0 var(--sp-1);font-weight:700}.vpc-en{color:var(--sub);font-weight:400;font-size:var(--fs-xs)}html,body,#root,button,a,input,textarea,select,label{touch-action:manipulation}@media (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range]),textarea,select{font-size:max(16px,1em)!important}}html,body{height:auto;overflow-x:clip}body{min-height:100dvh}html[data-kb=open] .tabbar,html[data-kb=open] [data-bottom-bar]{visibility:hidden}.page{overflow-wrap:anywhere}.top>*,.row>*,.li>*{min-width:0}.btn2,.cta{white-space:nowrap;justify-content:safe center;min-width:0;max-width:100%;overflow:hidden}:root{--font-title:"Noto Sans TC", "PingFang TC", "Nunito", "Nunito Sans", sans-serif;--pt-row:44px;--pt-lh:calc(var(--fs-2xl,28px) * 1.5)}.top.pagetop{align-items:flex-start}.pagetop .pt-txt{flex:1;min-width:0}.pagetop .pt-t{font-family:var(--font-title);font-size:var(--fs-2xl,28px);line-height:var(--pt-lh);padding-top:max(0px, calc((var(--pt-row) - var(--pt-lh)) / 2));margin:0}.pagetop .pt-sub{margin:2px 0 0}.pagetop .pt-right{height:var(--pt-row);flex:none;align-items:center;gap:8px;display:flex}@layer base{textarea{field-sizing:content;min-block-size:3lh;max-block-size:60svh}}:root{--m-fast:.16s;--m-base:.28s;--m-slow:.48s;--m-stag:28ms;--m-move:cubic-bezier(.45, 0, .15, 1);--m-out:cubic-bezier(.4, 0, 1, 1);--m-spring:linear(0, .0181, .0653, .1325, .2121, .2982, .3862, .4726, .5547, .6308, .7, .7615, .8153, .8616, .9006, .9329, .9592, .98, .9962, 1.0083, 1.0169, 1.0228, 1.0263, 1.028, 1.0283, 1.0276, 1.0261, 1.0241, 1.0218, 1.0193, 1.0168, 1.0144, 1.0121, 1.01, 1.0081, 1.0064, 1.0049, 1.0036, 1.0026, 1.0017, 1.001, 1)}.kb{isolation:isolate;transition:color var(--m-fast);place-items:center;display:inline-grid;position:relative;overflow:hidden}.kb>.kb-f{white-space:nowrap;opacity:0;max-width:100%;transition:opacity 90ms linear, transform var(--m-base) var(--m-move);grid-area:1/1;justify-content:center;align-items:center;gap:8px;display:flex;transform:translateY(6px)}.kb>.kb-f.on{opacity:1;transition:opacity var(--m-fast) linear, transform var(--m-base) var(--m-move);transform:none}.kb>.kb-t{z-index:-1;opacity:0;transition:opacity var(--m-fast);position:absolute;inset:0}.kb>.kb-t.ok{background:var(--pos-soft)}.kb>.kb-t.bad{background:var(--neg-soft)}.kb[data-s=done]{color:var(--pos-ink)}.kb[data-s=error]{color:var(--neg-ink)}.kb[data-s=done]>.kb-t.ok,.kb[data-s=error]>.kb-t.bad{opacity:1}.kb[data-s=pending],.kb[data-s=done]{cursor:default}.kb .kb-spin{border:2.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite kb-spin}@keyframes kb-spin{to{transform:rotate(360deg)}}.kb .kb-ck{flex:none;width:20px;height:20px}.kb .kb-ck path{stroke-dasharray:24;stroke-dashoffset:24px;transition:stroke-dashoffset var(--m-base) var(--m-move) 60ms}.kb[data-s=done] .kb-ck path{stroke-dashoffset:0}.kb:active:not(:disabled):not([data-s=pending]){transition:transform 80ms;transform:translateY(1px)scale(.985)}.kb:not(:active){transition:color var(--m-fast), transform var(--m-fast) var(--m-spring)}:is(.cta,.btn2,.kb-quiet):disabled,.kb-off{cursor:not-allowed;outline:2px dashed color-mix(in srgb, var(--sub) 45%, transparent);outline-offset:-2px;background:var(--surface)!important;color:var(--sub)!important;box-shadow:none!important;opacity:1!important;border-color:#0000!important}:is(.cta,.btn2,.kb-quiet):disabled>.kb-t{opacity:0}.tab-i{place-items:center;width:24px;height:24px;display:grid;position:relative}.tab-i>svg{grid-area:1/1}.tab-i>.f{opacity:0;transition:opacity var(--m-fast), transform var(--m-fast) var(--m-out);transform:scale(.8)}.tab-i[data-on]>.f{opacity:1;transition:transform .42s var(--m-spring), opacity 90ms;transform:none}.tab-i[data-on]>.r{opacity:0;transition:opacity 90ms}.sheet{translate:0 var(--sy,0px)}@media (prefers-reduced-motion:no-preference){.sheet{animation:m-sheet-in var(--m-base) var(--m-move) backwards}.dim{animation:m-fade var(--m-base) linear backwards}.sheet.settle{transition:translate var(--m-base) var(--m-move)}.dim.settle{transition:opacity var(--m-base) linear}.sheet.out{transition:translate .22s var(--m-out);translate:0 calc(100% + 96px)}.dim.out{transition:opacity .22s linear;opacity:0!important}}.sheet.out,.dim.out{pointer-events:none}@keyframes m-sheet-in{0%{translate:0 calc(100% + 96px)}}@keyframes m-fade{0%{opacity:0}}.empty-art{margin-bottom:var(--sp-2,8px);justify-content:center;display:flex}@media (prefers-reduced-motion:reduce){.kb>.kb-f,.kb>.kb-f.on{transition:opacity var(--m-fast) linear;transform:none}.kb .kb-spin{opacity:.6;border-right-color:currentColor;animation:none}.kb .kb-ck path{stroke-dashoffset:0;transition:none}.kb:active:not(:disabled),.kb:not(:active){transition:none;transform:none}.tab-i>svg{transition:none!important;transform:none!important}}
