:root{font-family:ui-rounded,"PingFang TC","Noto Sans TC",system-ui,sans-serif;color:#19392d;background:#f3f7f2;font-synthesis:none;--accent:#215d3e;--line:#dce6d9;--radius:16px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #44853b;outline-offset:4px}header{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 36px}.brand{display:flex;align-items:baseline;gap:15px;font-size:31px;font-weight:850;letter-spacing:-1px;color:#19392d;text-decoration:none}.brand span{font-size:15px;letter-spacing:.05em;font-weight:650}.access{color:#52705b;font-size:14px}main{max-width:1280px;margin:8px auto 0;padding:0 36px;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(370px,1fr);gap:48px;align-items:start}.world{position:relative;min-height:620px;overflow:hidden;border-radius:var(--radius);background:#b8dbae}.landscape{position:absolute;height:100%;width:100%;object-fit:cover;object-position:44% center}.world:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,37,27,.28),transparent 48%,rgba(13,37,27,.66))}.world-copy{position:relative;z-index:1;padding:37px 32px;color:white;text-shadow:0 1px 6px #17352950}.world-copy h1{font-size:clamp(32px,3.3vw,46px);line-height:1.25;letter-spacing:-.05em;margin:0 0 12px}.world-copy p{font-size:17px;margin:0;line-height:1.6}.book-link{position:absolute;z-index:1;bottom:28px;left:28px;display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 16px;background:#fffdf0;color:#254d35;border:0;border-radius:12px;font-size:15px;font-weight:650}.phone{padding:16px 0}.companion{display:flex;align-items:center;gap:16px;margin:0 0 34px}.avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#dbead2;color:var(--accent);font-weight:800;font-size:34px;box-shadow:inset 0 -5px 0 #235c3c15}.companion h2{font-size:24px;letter-spacing:-.025em;margin:0 0 7px}.companion p{font-size:14px;color:#5c7360;margin:0;line-height:1.6}.connection{display:flex;align-items:center;gap:9px;min-height:32px;margin-bottom:16px}.connection p{margin:0;font-size:15px}.status-dot{width:8px;height:8px;border-radius:50%;background:#93a491}.status-dot[data-state="active"]{background:#3b873b}.status-dot[data-state="connecting"]{background:#c39939}.status-dot[data-state="error"]{background:#b44a3f}time{margin-left:auto;font-size:14px;font-variant-numeric:tabular-nums;color:#607460}.controls{display:flex;gap:10px;flex-wrap:wrap}.controls button,.secondary{min-height:56px;border-radius:12px;padding:14px 20px;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;gap:10px}.primary{background:var(--accent);color:#fff;border:1px solid var(--accent);flex:1}.primary img{filter:invert(1)}.secondary{background:transparent;color:var(--accent);border:1px solid #bccfb6;flex:1}.hangup{background:#f8e8e1;color:#873f31;border:1px solid #eccfc2}.hangup img{filter:none}.controls button:active,.book-link:active{transform:translateY(1px)}.permission-hint{font-size:13px;color:#667c68;line-height:1.7;margin:14px 0 27px}.notice{background:#fbebdb;color:#79441e;padding:13px 15px;font-size:14px;line-height:1.6;border-radius:12px;margin:0 0 16px}.play{margin-top:12px;width:100%}details{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;min-height:56px;display:flex;align-items:center;justify-content:space-between;font-weight:650;font-size:15px;gap:8px}summary::-webkit-details-marker{display:none}summary>img{transition:transform .16s}details[open]>summary>img{transform:rotate(180deg)}.plan ol{padding:0 0 14px 24px;margin:0}.plan li{padding:4px 0 14px 5px;color:#49684d;font-size:14px;line-height:1.7}.plan strong{display:block;font-weight:650;color:#254c34}.plan li span{display:block;color:#627961;font-size:13px}.transcript summary span{display:flex;align-items:center;gap:8px}#messages{max-height:270px;overflow:auto;overscroll-behavior:contain;padding:4px 0 10px;scroll-behavior:smooth}.message{padding:12px 14px;background:white;border-radius:12px;font-size:15px;line-height:1.8;margin:0 0 10px;white-space:pre-wrap;overflow-wrap:anywhere}.message[data-role="user"]{background:#e2eddc}.message strong{display:block;font-size:12px;font-weight:700;color:#5a7657;margin-bottom:3px}.empty{font-size:14px;color:#748570;line-height:1.7}form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:15px}input{min-width:0;min-height:46px;border:1px solid #c5d4bf;border-radius:10px;padding:10px 12px;background:white;font-size:16px;color:#254c34}form button{border:0;border-radius:10px;background:var(--accent);color:white;padding:10px 15px}.text-button{border:0;background:none;color:var(--accent);font-size:13px;text-decoration:underline;padding:0 0 16px}footer{max-width:1280px;margin:28px auto;padding:0 36px 16px;font-size:12px;line-height:1.8;color:#7b8c78}footer span{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{width:min(680px,calc(100% - 32px));max-height:86dvh;border:0;border-radius:var(--radius);background:#fbfdf8;color:#19392d;padding:28px;box-shadow:0 20px 80px #0e3f3444}dialog::backdrop{background:#173629aa}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:20px;position:sticky;top:-28px;background:#fbfdf8;padding:6px 0 16px}.dialog-head h2{font-size:24px;margin:0;line-height:1.4}.dialog-head button{flex-shrink:0;background:#e3eddd;border:0;border-radius:10px;color:var(--accent);min-height:42px;padding:8px 15px}.book-intro{color:#5a745b;font-size:15px;line-height:1.8;margin:0 0 24px}.page{margin:0 0 30px}.page h3{font-size:18px;margin:0 0 9px}.page p{font-size:17px;line-height:1.95;margin:0}.provenance{font-size:12px;color:#738570;line-height:1.8;border-top:1px solid var(--line);padding-top:18px}[hidden]{display:none!important}@media(max-width:1000px){main{gap:28px;grid-template-columns:minmax(0,1fr) minmax(340px,1fr)}.world{min-height:570px}.world-copy{padding:30px 24px}.world-copy h1{font-size:34px}}@media(max-width:740px){header{padding:19px 20px}.brand{font-size:28px;gap:11px}.brand span{font-size:13px}.access{font-size:12px}main{padding:0 20px;display:flex;flex-direction:column;gap:0;margin:0}.world{width:100%;min-height:0;height:246px;border-radius:16px}.landscape{object-position:center 58%}.world-copy{padding:23px}.world-copy h1{font-size:31px;margin-bottom:7px}.world-copy p{font-size:14px}.book-link{bottom:17px;left:18px;font-size:13px;min-height:41px;padding:8px 12px;gap:8px}.phone{width:100%;padding:24px 0 0}.companion{margin-bottom:21px;gap:13px}.avatar{width:52px;height:52px;border-radius:16px;font-size:29px}.companion h2{font-size:22px;margin-bottom:4px}.companion p{font-size:13px}.connection{margin-bottom:13px}.controls button{min-height:54px;font-size:16px;padding:13px 16px}.permission-hint{margin:12px 0 20px}footer{padding:0 20px 12px;margin-top:24px}dialog{padding:22px}.dialog-head{top:-22px}.dialog-head h2{font-size:21px}.page p{font-size:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
