/* Existing lavender studio, tightened into one usable companion surface. */
:root{--page:#f8f4ed;--surface:#fffdf7;--lavender:#eee9f4;--ink:#3e334d;--muted:#68586f;--line:#d7cbdc;--accent:#735781;--accent-hover:#61456f;--focus:#754b13;--confirmed:#365b42;--warning:#76501d;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:28px;--text-display:40px}
html{scroll-behavior:smooth}body{font-family:Arial,"Noto Sans TC",sans-serif;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;font-size:var(--text-base)}
button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{min-height:44px;transition:background-color 150ms,color 150ms,transform 150ms}button:active{transform:scale(.96)}button:disabled{opacity:.65;cursor:not-allowed}a{text-underline-offset:.18em}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
[hidden]{display:none!important}p{line-height:1.6;text-wrap:pretty}main{max-width:1200px;margin:auto;padding:24px}h1,h2,h3{text-wrap:balance}h1{font-size:var(--text-display);letter-spacing:-.035em;line-height:1.1;font-weight:600}h2{font-size:var(--text-lg);letter-spacing:-.02em}h3{font-size:var(--text-base)}small{font-size:var(--text-xs);line-height:1.6}input,textarea,select{font-size:var(--text-base)}
.topbar{padding:12px 28px;min-height:72px;height:auto;border-bottom:1px solid var(--line)}.topbar .logo{font-size:28px}.logo span,.logo b{font:600 var(--text-sm)/1.5 Arial,sans-serif;letter-spacing:0}.topbar nav{gap:16px}.topbar select{font-size:var(--text-sm);min-height:44px}.topbar .local{display:none}.topbar nav a{font-size:var(--text-sm)}.intro{padding:4px 0 20px}.intro h1{font-size:var(--text-display);max-width:680px;margin:0 0 10px}.intro p{font-size:var(--text-base);margin:0;max-width:70ch}.eyebrow{font:600 var(--text-sm)/1.5 Arial,sans-serif;letter-spacing:0;text-transform:none}.intro .eyebrow,.panel>.eyebrow{display:none}
.studio-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.stage-panel{padding:20px;background:var(--lavender);border:0;grid-row:span 4}.panel{padding:24px;background:var(--surface);border:1px solid var(--line);box-shadow:none}.stage-panel,.panel{border-radius:20px}.section-head{gap:12px}.status{font-size:var(--text-xs);letter-spacing:0;line-height:1.5;white-space:normal}.speech{font-size:var(--text-sm)!important;color:var(--ink);box-shadow:none;line-height:1.5}.stage-panel>.companion{padding:8px 0 0;position:relative;background:transparent;box-shadow:none;min-height:0}.stage-panel .pet-scene{width:min(100%,370px)}.stage-panel .model-mount{height:250px}.pet-name{font-size:var(--text-sm)}.presence-controls .mode-hint,.presence-status{font-size:var(--text-xs);color:var(--muted)}.presence-controls button{font-size:var(--text-sm)}.presence-controls{margin-bottom:0}.stage-foot{font-size:var(--text-xs);color:var(--muted);gap:4px;line-height:1.5}.touch-hint{font-size:var(--text-xs);color:var(--muted);margin:8px 0}.pet-care{display:flex;flex-direction:column;background:transparent;padding:16px 0;border:0;border-radius:0;margin:0}.food-tray{order:-1;margin:0 0 12px;gap:10px}.food-tray button{min-height:64px;border:1px solid var(--line);border-radius:12px;touch-action:none}.food-tray span,.food-tray small{font-size:var(--text-xs);color:var(--ink)}.food-tray button{font-size:var(--text-lg)}.care-heading h2{font-size:var(--text-base);max-width:330px}.care-heading strong{font-size:var(--text-xs);color:var(--ink);background:transparent;padding:0}.care-meters label,.next-growth,.pet-mood,.care-feedback,.pet-note,.growth-pace,.wardrobe,.wardrobe select,.care-actions button,.life-care small,.life-care p,.life-care label,.life-care button,.life-title .bond-name{font-size:var(--text-xs);color:var(--muted)}.care-actions button{font-size:var(--text-sm);color:var(--ink)}.pet-care p{margin:6px 0 10px}.pet-note{line-height:1.6}.pet-care .next-growth{font-size:var(--text-xs)}.life-care{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:20px 0;margin:4px 0}.life-care h2{font-size:var(--text-base)}.life-actions{gap:10px}.life-care button{color:var(--ink);font-size:var(--text-sm)}.pet-tabs a{font-size:var(--text-sm)}.reaction-bar{gap:8px}.reaction-bar button{font-size:var(--text-sm)}.cheer-stat small,.subtle{font-size:var(--text-xs);color:var(--muted)}
.chain-panel{grid-column:2;grid-row:1;background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:20px;min-width:0}.chain-panel h2{margin:0;font-size:var(--text-lg)}.read-only{font-size:var(--text-xs);color:var(--muted)}.chain-intro{font-size:var(--text-sm);color:var(--muted)}.chain-connections{display:grid;gap:16px;margin:20px 0}.chain-connection{display:flex;flex-direction:column;gap:3px}.chain-connection b{font-size:var(--text-sm);font-weight:600}.chain-connection span,.chain-connection small{font-size:var(--text-xs);color:var(--muted)}.chain-connection .connection-error{color:var(--warning)}.chain-preferences{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;font-size:var(--text-sm)}.chain-preferences label:has(input){grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:40px}.chain-preferences input{width:20px;height:20px;accent-color:var(--accent);margin:0}.chain-preferences select{width:auto;max-width:150px;font-size:var(--text-sm)}.chain-panel details{margin-top:20px;border-top:1px solid var(--line);padding-top:12px}.chain-panel summary{font-size:var(--text-sm);font-weight:600;cursor:pointer;min-height:40px;padding:8px 0}.chain-history ol{padding:0;list-style:none;margin:8px 0}.chain-history li{margin:0 0 8px;font-size:var(--text-sm);line-height:1.6}.history-open{font-size:var(--text-xs);text-align:start;width:100%;overflow-wrap:anywhere;background:transparent}.gallery-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gallery-buttons button{font-size:var(--text-xs);text-align:start;padding:10px;line-height:1.5}.rehearsal-gallery p{font-size:var(--text-xs)}.end-rehearsal{margin-top:12px}.chain-card-slot{width:100%;position:relative;pointer-events:none}.chain-card-slot.occupied{min-height:190px;margin:12px 0}.chain-card{pointer-events:auto;width:100%;text-align:start;padding:14px 16px;border-radius:14px;background:var(--surface);box-shadow:0 6px 20px #49315120;font-size:var(--text-xs);position:relative;box-sizing:border-box;animation:card-reveal 150ms ease-out}.chain-card-head{display:flex;gap:10px;align-items:center;justify-content:space-between}.chain-badge{font-size:var(--text-xs);font-weight:600;line-height:1.5}.chain-close{padding:0;width:44px;min-width:44px;height:44px;background:transparent;border:0;color:var(--ink);font-size:var(--text-lg);margin:-8px -8px -4px 0}.chain-card h3{font-size:var(--text-base);margin:8px 0 4px;line-height:1.4}.chain-card p{margin:4px 0;font-size:var(--text-xs);line-height:1.6}.chain-status{font-size:var(--text-xs);font-weight:400;color:var(--confirmed)}.chain-card[data-source=simulated] .chain-status,.chain-card[data-source=removed] .chain-status{color:var(--warning)}.chain-meta{overflow-wrap:anywhere;max-height:100px;overflow:auto}.chain-tx-links{display:flex;flex-direction:column;gap:8px;max-height:120px;overflow:auto}.chain-tx-links a{display:inline-block;min-height:24px;line-height:24px;color:var(--accent);font-size:var(--text-xs)}.event-count{font-size:var(--text-xs)}.simulated-stage{align-self:center;background:#fff0cf;color:#654618;padding:6px 12px;border-radius:8px;font-size:var(--text-xs);font-weight:600;margin-bottom:8px}.chain-invitation{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:var(--text-xs);margin-top:8px}.chain-invitation button{font-size:var(--text-sm);background:var(--surface)}
@keyframes card-reveal{from{opacity:0}to{opacity:1}}
@media(min-width:1120px){.stage-panel .pet-scene{width:100%}.stage-panel .chain-card-slot.occupied{min-height:210px}.chain-card{max-width:100%;}.stage-panel:has(.chain-card:not([hidden])) .model-mount{height:250px}}
@media(max-width:740px){.topbar{padding:8px 16px;min-height:64px;gap:12px}.topbar .logo{font-size:var(--text-xl);gap:8px}.logo span,.logo b{font-size:var(--text-xs)}.topbar nav{gap:8px}.topbar nav a{display:none}.topbar select{max-width:116px;font-size:var(--text-xs)}main{padding:16px}.intro{padding:0 0 16px}.intro h1{font-size:var(--text-xl);margin-bottom:8px}.intro p{font-size:var(--text-sm);max-width:42ch}.studio-grid{display:flex;flex-direction:column;gap:16px}.studio-grid>*{width:100%;box-sizing:border-box}.stage-panel{padding:16px}.stage-panel .model-mount{height:200px}.stage-panel .pet-scene{width:100%}.stage-panel>.companion{min-height:0}.stage-foot{flex-direction:column;align-items:flex-start}.speech{padding:8px 12px!important;margin-bottom:2px!important}.presence-status:empty{display:none}.presence-controls{gap:6px}.mode-hint{line-height:1.5;padding:0 6px}.touch-hint{display:none}.food-tray{margin:0 0 12px}.care-meters{gap:12px}.chain-panel{padding:20px}.chain-card-slot.occupied{min-height:200px}.stage-panel .chain-card{margin-bottom:0}.sound-dock{top:auto!important;bottom:12px!important;right:12px!important}.sound-dock .sound-popup{top:auto;bottom:56px}.chat-panel{order:initial!important}.bottom-grid{gap:24px}.gallery-buttons{grid-template-columns:1fr 1fr}}
@media(max-width:360px){.logo b{display:none}.intro h1{font-size:var(--text-xl)}.topbar select{max-width:100px}.gallery-buttons{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}button:active{transform:none}}
/* Keep global sound in the header without offsetting it over the language menu. */
.sound-dock{top:auto!important;bottom:auto!important;right:auto!important;margin-left:0;gap:0}.sound-dock>.sound-master{font-size:0;min-width:44px;width:44px;min-height:44px;padding:8px}.sound-dock>.sound-master::before{content:'♪';font-size:20px}.sound-menu-button{min-height:44px;min-width:32px;padding:6px;font-size:14px}.sound-dock .sound-panel{top:calc(100% + 10px);bottom:auto}.sound-dock .sound-panel{border:0}.sound-dock .sound-panel *{letter-spacing:0}.sound-dock .sound-title{font-size:14px}.sound-dock .sound-track,.sound-status,.sound-foot{font-size:12px;color:var(--muted)}
@media(max-width:740px){.topbar nav{gap:8px}.topbar select{width:96px}.sound-dock .sound-panel{position:absolute;right:0;top:calc(100% + 10px);bottom:auto}}
@media(max-width:360px){.logo{font-size:0!important}.logo span{font-size:12px}.logo b{display:none}.topbar select{width:90px}}
/* Shared review fixes: contrast, natural casing and one six-step type scale. */
.stage-panel .eyebrow,.life-wishes span,.bottom-grid,footer,.pet-note,.growth-pace,.pet-mood,.next-growth,.care-feedback,.touch-hint{color:var(--muted)}.cheer-stat small{letter-spacing:0}.cheer-stat strong{font-size:var(--text-lg);font-weight:600}.cheer-stat{padding-top:10px}.chat-notice{background:transparent;border:0;padding:0;color:var(--muted)}.chat-messages{border:0;background:transparent}.chat-bubble{border:0;box-shadow:none;background:transparent;padding:10px 0}.chat-bubble.assistant{background:transparent}.chat-panel h2{font-size:var(--text-lg);font-weight:600}.chat-sub{font-size:var(--text-sm)}.chat-status,.chat-privacy,.chat-hint,.chat-note,.chat-badge,.chat-chips button,.chat-log,.public-panel ol,.public-panel a{font-size:var(--text-xs);color:var(--muted)}.chat-badge{font-weight:400}.chat-form button{font-size:var(--text-sm)}.chat-bubble,.chat-bubble b,.chat-bubble p{font-size:var(--text-sm)}.chat-form label{font-size:var(--text-sm)}.chat-form textarea{font-size:var(--text-base)}.public-panel summary{font-size:var(--text-sm)}.public-panel h3{font-size:var(--text-base)}.life-wishes h3,.life-album summary,.life-album span,.wardrobe,.pet-care .paw-game small,.paw-game p,.pet-care .quiet{font-size:var(--text-xs)}.life-wishes span{font-size:var(--text-xs)}.life-album small{font-size:var(--text-xs)}.panel,.stage-panel{font-weight:400}.panel h2,.panel strong,.stage-panel h2,.stage-panel strong{font-weight:600}.life-title .bond-name,.care-heading strong{font-weight:400}.pet-tabs a,.pet-care button,.life-care button{font-weight:600}.pet-scene .pet-name{font-size:var(--text-sm);font-weight:600}.game-display{font-size:var(--text-sm)}.goal-display strong{font-size:var(--text-xl);font-weight:600}.goal-display span,.score,.score b,.moments li,.moments time,.output a,.output input,.bottom-grid,.bottom-grid p,.bottom-grid a,footer,footer p,.bottom-grid h3{font-size:var(--text-xs);font-family:Arial,"Noto Sans TC",sans-serif}.inline-controls button{font-size:var(--text-sm)}.panel small{font-size:var(--text-xs)}
.cheer-stat strong{font-size:var(--text-base);font-weight:400}.chat-header,.chat-author,.chat-bubble strong,.chat-bubble b,.chat-chips button,.chat-form button,.chat-clear,.chat-send{font-weight:600}.life-wishes h3,.life-album summary,.life-hunt h3,.paw-game p{font-weight:600}
@media(min-width:1120px){.companion:has(.chain-card:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:12px;align-items:center}.companion:has(.chain-card:not([hidden]))>.speech{grid-column:1/-1}.companion:has(.chain-card:not([hidden]))>.pet-scene{grid-column:1;grid-row:2}.companion:has(.chain-card:not([hidden]))>.chain-card-slot{grid-column:2;grid-row:2;min-height:0}.companion:has(.chain-card:not([hidden]))>.chain-card-slot .chain-card{padding:12px}.companion:has(.chain-card:not([hidden])) .chain-card h3{font-size:14px}}
.chain-card{transition:opacity 180ms ease-out}.chain-card.fading{opacity:0}
.intro h1{font-weight:600}
button,.life-meters label,.life-tools button b,.director label{font-weight:600}
.bottom-grid a,.public-panel a:not(.pet-tabs a){text-decoration:underline}
.stage-panel .stage-heading{margin:0;font-size:var(--text-base);line-height:1.5;font-weight:600;letter-spacing:0;color:var(--muted)}
