.ds-shell{--ds-bg:#f5f2eb;--ds-surface:#fffefa;--ds-text:#242822;--ds-muted:#70746c;--ds-accent:#306752;--ds-border:#dcded5;--ds-top-inset:0px;--ds-bottom-inset:0px;--ds-viewport-height:100vh;width:100%;min-width:0;height:var(--ds-viewport-height);isolation:isolate;min-height:0;color:var(--ds-text);background:var(--ds-bg);--ds-font-sans:"Noto Sans TC Variable", "Noto Sans TC", ui-sans-serif, system-ui, -apple-system, "PingFang TC", "Microsoft JhengHei", sans-serif;--ds-font-serif:"Noto Serif TC Variable", "Noto Serif TC", "Songti TC", "PMingLiU", serif;font:400 16px/1.55 var(--ds-font-sans);-webkit-font-smoothing:antialiased;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative;overflow:hidden}.ds-shell *,.ds-shell :before,.ds-shell :after{box-sizing:border-box}.ds-shell [hidden]{display:none!important}.ds-theme-background{z-index:-1;pointer-events:none;position:absolute;inset:0}.ds-shell :where(button){font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.ds-shell button:disabled{cursor:default}.ds-shell button:focus-visible,.ds-shell a:focus-visible,.ds-shell [tabindex]:focus-visible{outline:3px solid var(--ds-accent);outline-offset:4px}.ds-header{z-index:3;width:100%;padding:max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) 0 max(24px, env(safe-area-inset-left));grid-row:1;position:relative}.ds-brand-row{justify-content:space-between;align-items:center;gap:20px;max-width:1200px;margin-inline:auto;display:flex}.ds-brand{flex-wrap:wrap;align-items:baseline;gap:8px 18px;min-width:0;display:flex}.ds-wordmark{letter-spacing:-.055em;font-size:24px;font-weight:750}.ds-logo{object-fit:contain;max-width:min(220px,54vw);max-height:60px;display:block}.ds-tagline{color:var(--ds-muted);letter-spacing:.08em;font-size:12px}.ds-nav{border-bottom:1px solid var(--ds-border);flex-wrap:wrap;gap:8px;max-width:1200px;margin:12px auto 0;padding:0 0 12px;display:flex}.ds-nav-button{background:0 0;border:0;border-radius:999px;min-height:44px;padding:10px 18px;font-size:13px!important}.ds-nav-button:hover{background:color-mix(in srgb, var(--ds-accent) 8%, transparent)}.ds-nav-button[aria-current=page]{color:var(--ds-bg);background:var(--ds-text)}.ds-header[data-size=minimal] .ds-tagline{display:none}.ds-header[data-size=minimal]{padding-top:max(12px, env(safe-area-inset-top))}.ds-sound{border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:50%;flex:0 0 44px;width:44px;height:44px;padding:0;position:relative}.ds-sound-note{font-family:Georgia,serif;font-size:29px;line-height:1;display:inline-block}.ds-sound[data-state=off]:after{content:"";background:currentColor;width:26px;height:1px;position:absolute;top:21px;left:8px;transform:rotate(-45deg)}.ds-sound[data-state=armed]{border-style:dashed}.ds-sound[data-state=unavailable]{opacity:.45}.ds-sound.ds-is-playing .ds-sound-note{animation:2.6s ease-in-out infinite ds-note-float}.ds-stage{overscroll-behavior:contain;grid-row:2;min-width:0;min-height:0;position:relative;overflow:auto}.ds-dock{z-index:4;width:min(1100px,100%);padding:16px max(24px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));grid-row:3;align-items:flex-end;gap:clamp(12px,2vw,28px);margin:0 auto;display:flex;position:relative}.ds-avatar{width:clamp(88px,15vw,160px);aspect-ratio:var(--ds-character-ratio,2 / 3);transform-origin:50% 86%;flex:0 0 clamp(88px,15vw,160px);position:relative}.ds-avatar-image{object-fit:contain;object-position:center bottom;transform-origin:50% 86%;width:100%;height:100%;display:block}.ds-avatar-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.ds-avatar[data-renderer=mesh]>.ds-avatar-image,.ds-avatar[data-renderer=mesh]>.ds-avatar-fallback{display:none!important}.ds-avatar[data-active=true][data-motion=full][data-float=on]{animation:3.6s ease-in-out .9s infinite ds-character-float}.ds-avatar[data-active=true][data-motion=full][data-breathe=on]>.ds-avatar-image{animation:4.8s ease-in-out infinite ds-character-breathe}@keyframes ds-character-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.008)}}@keyframes ds-character-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.ds-avatar-fallback{border:1px dashed var(--ds-border);width:100%;height:100%;color:var(--ds-muted);background:var(--ds-surface);border-radius:48% 48% 18px 18px;place-items:center;font-size:26px;display:grid}.ds-dialogue{border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:18px;flex:1;min-width:0;margin-bottom:8px;padding:clamp(16px,2vw,24px);box-shadow:0 8px 28px #00000008}.ds-dialogue-text{overflow-wrap:anywhere;margin:0;font-size:clamp(14px,1.4vw,16px);line-height:1.75}.ds-dialogue-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ds-dialogue-actions:empty{display:none}.ds-dialogue-action{border:1px solid var(--ds-border);background:0 0;border-radius:9px;min-height:44px;padding:9px 16px;font-size:13px!important}.ds-dialogue-action:hover{border-color:var(--ds-accent);color:var(--ds-accent)}.ds-dock[data-ds-avatar-side=right]{flex-direction:row-reverse}.ds-dock[data-ds-avatar-side=top]{flex-direction:column;align-items:flex-start}.ds-dock[data-ds-avatar-side=bottom]{flex-direction:column-reverse;align-items:flex-start}.ds-dock[data-ds-avatar-side=top]>.ds-dialogue,.ds-dock[data-ds-avatar-side=bottom]>.ds-dialogue{flex:none;width:100%;margin-bottom:0}:where([data-ds-speech]){position:relative}[data-ds-speech]:before{content:"";z-index:1;box-sizing:border-box;width:var(--ds-speech-tail-size,14px);height:var(--ds-speech-tail-size,14px);background:inherit;border:inherit;clip-path:polygon(0 0,0 100%,100% 100%);pointer-events:none;border-top-width:0;border-right-width:0;border-radius:0;position:absolute}[data-ds-speech=left]:before{left:calc(var(--ds-speech-tail-size,14px)/-2);top:var(--ds-speech-tail-offset,24px);transform:rotate(45deg)}[data-ds-speech=right]:before{right:calc(var(--ds-speech-tail-size,14px)/-2);top:var(--ds-speech-tail-offset,24px);transform:rotate(-135deg)}[data-ds-speech=top]:before{top:calc(var(--ds-speech-tail-size,14px)/-2);left:var(--ds-speech-tail-offset,24px);transform:rotate(135deg)}[data-ds-speech=bottom]:before{bottom:calc(var(--ds-speech-tail-size,14px)/-2);left:var(--ds-speech-tail-offset,24px);transform:rotate(-45deg)}.ds-avatar.ds-is-speaking:after{content:"";background:var(--ds-accent);width:6px;height:6px;box-shadow:0 0 0 4px color-mix(in srgb, var(--ds-accent) 12%, transparent);border-radius:50%;position:absolute;top:12%;right:8%}.ds-shell[data-layout=overlay]{grid-template-rows:minmax(0,1fr)}.ds-shell[data-layout=overlay]>.ds-stage{min-height:0;margin-block:var(--ds-top-inset) var(--ds-bottom-inset);grid-area:1/1}.ds-shell[data-layout=overlay]>.ds-header{pointer-events:none;grid-area:1/1;align-self:start}.ds-shell[data-layout=overlay]>.ds-header>*{pointer-events:auto}.ds-shell[data-layout=overlay]>.ds-dock{pointer-events:none;grid-area:1/1;align-self:end}.ds-shell[data-layout=overlay]>.ds-dock>*{pointer-events:auto}.ds-dock[data-presentation=floating]{width:min(880px,100%)}.ds-dock[data-presentation=collapsed] .ds-avatar{flex-basis:64px;width:64px}.ds-dock[data-presentation=collapsed] .ds-dialogue{padding:12px 16px}.ds-modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111a1dcc;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.ds-modal{border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:22px;width:min(520px,100%);max-height:min(80svh,720px);padding:clamp(24px,5vw,42px);overflow:auto;box-shadow:0 30px 100px #0004}.ds-modal-title{margin:0 0 16px;font-size:24px;line-height:1.4}.ds-modal-text{color:var(--ds-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px}.ds-modal-close{border:1px solid var(--ds-border);background:0 0;border-radius:9px;min-height:44px;padding:10px 24px}.ds-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes ds-note-float{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-2px)rotate(3deg)}}@supports (height:100dvh){.ds-shell{--ds-viewport-height:100dvh}}@media (max-width:600px){.ds-header{padding:max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left))}.ds-wordmark{font-size:23px}.ds-brand{gap:1px 10px}.ds-tagline{font-size:10px}.ds-nav{gap:4px;margin-top:8px;padding-bottom:8px}.ds-nav-button{padding:10px 14px}.ds-dock{padding:12px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));gap:10px}.ds-avatar{flex-basis:82px;width:82px}.ds-dialogue{border-radius:14px;margin-bottom:0;padding:14px}.ds-dialogue-text{font-size:13px;line-height:1.7}.ds-dialogue-actions{gap:6px}.ds-dialogue-action{padding-inline:11px;font-size:12px!important}}@media (max-height:480px) and (orientation:landscape){.ds-header{padding-top:8px}.ds-brand-row{min-height:44px}.ds-tagline{display:none}.ds-nav{margin-top:0;padding-bottom:4px}.ds-avatar{flex-basis:68px;width:68px}.ds-dock{padding-top:8px;padding-bottom:max(10px, env(safe-area-inset-bottom))}.ds-dialogue{padding:10px 16px}.ds-dialogue-text{font-size:13px}.ds-dialogue-actions{margin-top:6px}}@media (prefers-reduced-motion:reduce){.ds-shell *,.ds-shell :before,.ds-shell :after{scroll-behavior:auto!important;animation:none!important}}.ds-host-bar{top:calc(max(10px,env(safe-area-inset-top)) + 64px);z-index:50;gap:8px;display:flex;position:fixed;right:10px}.ds-host-button{background:var(--ds-surface,#fff);min-height:40px;color:var(--ds-text,#222);cursor:pointer;border:0;border-radius:999px;padding:0 14px;font:14px/1 Noto Sans TC Variable,sans-serif;box-shadow:0 2px 10px #0000002e}.ds-host-button:focus-visible{outline:2px solid var(--ds-accent,#4a7);outline-offset:2px}.ds-host-notice{left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:60;color:#fff;background:#141414e0;border-radius:10px;max-width:min(92vw,420px);margin:0;padding:10px 16px;font:14px/1.5 Noto Sans TC Variable,sans-serif;position:fixed;transform:translate(-50%)}.ds-host-notice[hidden]{display:none}.ds-host-error{text-align:center;max-width:32em;margin:20vh auto;padding:0 16px;font:16px/1.7 sans-serif}
