*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#3C2C15;background:#FAF8EF}button,select{font:inherit;color:inherit}button{cursor:pointer;border:0}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #777E42;outline-offset:3px}header{height:70px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dadfd5;background:#FAF8EF}.brand{font-family:Georgia,serif;font-size:27px;letter-spacing:-1px}.brand span{font-family:system-ui,sans-serif;letter-spacing:.09em;font-size:10px;margin-left:20px;text-transform:uppercase;color:#768078}.stage-tag{font-size:12px;letter-spacing:.04em;color:#63736a}main{display:grid;grid-template-columns:minmax(0,1fr) 292px;height:calc(100dvh - 70px)}.viewport{position:relative;overflow:hidden;min-width:0;min-height:0;background:#ecefe7}canvas{width:100%;height:100%;display:block;touch-action:none}#labels{position:absolute;inset:0;pointer-events:none}.map-label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:auto;border-radius:5px;background:#fafaf1ed;box-shadow:0 2px 9px #253f3510;padding:7px 10px;font-size:11px;line-height:1.2;border:1px solid #647d6226;min-height:34px}.map-label.active{background:#777E42;color:white;border-color:#777E42}.map-label.actor{border-radius:100px;background:#445948;color:white;padding:6px 12px}.map-label[hidden]{display:none}.view-tools{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;gap:1px;border:1px solid #d6d9cf;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #3447380c}.view-tools button{height:43px;width:43px;background:#fafaf5f2;font-size:24px;font-weight:300}.view-tools button:hover{background:#e5ecdf}.map-foot{position:absolute;bottom:14px;left:20px;right:18px;display:flex;align-items:end;justify-content:space-between;gap:10px;font-size:10px;color:#717a70;pointer-events:none}#scale{display:flex;flex-direction:column;align-items:center;gap:4px}#scale i{width:60px;height:6px;border:1px solid #76836f;border-top:0}#scale b{font-size:10px;font-weight:500}#loading{position:absolute;top:16px;left:18px;font-size:12px;background:#FAF8EFe8;border-radius:6px;padding:9px 12px;color:#687064;max-width:calc(100% - 90px)}#loading[hidden]{display:none}aside{border-left:1px solid #d9ded3;padding:24px 22px;background:#FAF8EF;overflow:auto}.scope-tabs{display:flex;background:#ebece4;border-radius:8px;padding:4px;gap:3px}.scope-tabs button{flex:1;background:transparent;border-radius:5px;min-height:38px;font-size:12px;padding:5px 3px;white-space:nowrap}.scope-tabs button[aria-pressed="true"]{background:#fffefa;box-shadow:0 2px 5px #3243310c;color:#2c4e3d}.zone-heading{margin:31px 0 23px}#zone-kicker{font-size:9px;letter-spacing:.17em;color:#829080}h1{font-family:Georgia,"Songti SC",serif;font-size:25px;line-height:1.25;margin:9px 0 13px;font-weight:500}#zone-description{font-size:12px;line-height:1.85;color:#717b71;margin:0;min-height:67px}.zone-select{display:flex;flex-direction:column;gap:8px;font-size:10px;color:#788477}select{width:100%;min-height:43px;padding:0 12px;background:#fffef9;border:1px solid #d7ddcf;border-radius:7px;font-size:12px}.tour-actions{display:flex;gap:7px;margin-top:9px}.tour-actions button{min-height:43px;border-radius:6px;background:#e9ede3;padding:9px 14px;font-size:12px}.tour-actions #next{flex:1;background:#777E42;color:#fffefa}.may-button{margin-top:24px;padding:13px 0;background:none;width:100%;text-align:left;font-size:12px;border-top:1px solid #dde1d5;border-bottom:1px solid #dde1d5;min-height:48px}.may-button span{float:right}.may-button:disabled{opacity:.5;cursor:wait}.options{display:flex;align-items:center;gap:13px;font-size:11px;margin:19px 0}.options label{display:flex;align-items:center;gap:4px;min-height:36px}input{accent-color:#777E42;width:15px;height:15px}.options button{padding:7px 10px;border:1px solid #dce1d3;background:none;border-radius:5px;margin-left:auto}.options button[aria-pressed="true"]{background:#e2e8da}.review-note{display:flex;gap:8px;font-size:11px;line-height:1.8;padding-top:17px;border-top:1px solid #e0e4d8;color:#75806f}.review-note i{width:6px;height:6px;border-radius:50%;background:#aca16f;flex-shrink:0;margin-top:6px}.model-status{font-size:10px;color:#8a9084;line-height:1.6;margin-top:14px}@media(max-width:700px){header{height:55px;padding:0 17px}.brand{font-size:23px}.brand span{display:none}.stage-tag{font-size:10px}main{height:calc(100dvh - 55px);grid-template-columns:1fr;grid-template-rows:minmax(220px,1fr) auto}.viewport{min-height:220px}aside{border-left:0;border-top:1px solid #d9ded3;padding:12px 16px max(12px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:8px;overflow:visible}.scope-tabs{grid-column:1/3}.scope-tabs button{min-height:36px}.zone-heading{grid-column:1/3;margin:3px 0 1px}#zone-kicker{display:none}h1{font-size:18px;margin:0 0 3px}#zone-description{font-size:11px;line-height:1.5;min-height:0}.zone-select{grid-column:1;gap:0;font-size:0}.zone-select select{font-size:12px;min-height:42px}.tour-actions{grid-column:2;margin:0;gap:4px}.tour-actions button{min-height:42px;padding:8px 11px}#next{font-size:11px}.may-button{grid-column:1/3;margin:0;min-height:38px;padding:9px 0;font-size:11px}.options{grid-column:1/3;margin:0;gap:17px;font-size:10px;height:30px}.options label{min-height:30px}.options button{padding:6px 11px}.review-note{grid-column:1/3;border:0;padding:0;font-size:10px;line-height:1.5}.model-status{grid-column:1/3;margin:0;font-size:9px}.map-foot{font-size:9px;bottom:8px;left:14px}.map-label{font-size:10px;padding:6px 8px;min-height:31px}.view-tools{right:11px;top:11px}.view-tools button{width:38px;height:38px;font-size:22px}#loading{font-size:10px;left:12px;top:12px}}@media(max-height:690px) and (max-width:700px){aside{row-gap:5px;padding-top:8px;padding-bottom:8px}.review-note,.model-status{display:none}.zone-heading p{display:none}.may-button{min-height:33px}.scope-tabs button{min-height:32px}}
.map-label.investor{background:#65777c}.tour-actions button:disabled{opacity:.35;cursor:default}
.map-label.station{min-height:44px;border:1px solid #607b6a;background:#FAF8EF;font-weight:600;box-shadow:0 3px 12px #253f3520}.map-label.station.active{background:#777E42;color:#fff}.map-label.station:disabled{opacity:.55;cursor:default}
#courtyard-panel{margin:0 0 18px}#station-hint{font-size:12px;line-height:1.6;margin:0 0 9px;color:#526557}.station-actions{display:grid;grid-template-columns:1fr;gap:6px}.station-actions button{min-height:46px;border:1px solid #d4ddcf;border-radius:6px;background:#f4f5ee;text-align:left;padding:9px 12px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:5px}.station-actions span{font-size:10px;color:#75816f}.station-actions button[aria-pressed="true"]{border-color:#526e5b;background:#e3ebdd}.station-actions button:disabled{opacity:.5;cursor:default}#courtyard-overview{min-height:44px;background:transparent;font-size:11px;text-decoration:underline;text-underline-offset:4px;margin-top:5px}#courtyard-overview:disabled{opacity:.5}
@media(max-width:700px){#courtyard-panel{grid-column:1/3;margin:0}.station-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.station-actions button{flex-direction:column;justify-content:center;min-height:48px;padding:6px 3px;font-size:11px;gap:2px}.station-actions span{font-size:9px}#station-hint{font-size:10px;margin-bottom:5px}#courtyard-overview{margin:0;min-height:36px}.map-label.station{font-size:10px;padding:6px;min-height:44px}body[data-courtyard="true"] .may-button,body[data-courtyard="true"] .options,body[data-courtyard="true"] .model-status,body[data-courtyard="true"] .review-note,body[data-courtyard="true"] .zone-select{display:none}body[data-courtyard="true"] .tour-actions{grid-column:1/3}body[data-courtyard="true"] #journey-panel{border:0;padding:0}body[data-courtyard="true"] #zone-description{display:none}}
@media(max-width:700px){.scope-tabs button,.tour-actions button,.zone-select select,.may-button,.options label,.options button,.view-tools button{min-height:44px}.view-tools button{width:44px}.options{height:44px}.map-label{min-height:36px}aside{row-gap:5px}.model-status{font-size:10px}}

[hidden]{display:none!important}#scene-fade{position:absolute;inset:0;z-index:20;background:#FAF8EF;opacity:0;pointer-events:auto}.viewport[aria-busy="true"] canvas{pointer-events:none}

#journey-panel{margin:0 0 17px;border-left:2px solid #a4b6a5;padding:2px 0 2px 11px}#journey-status{margin:0 0 8px;font-size:12px;line-height:1.7;color:#465f50}#journey-panel>div{display:flex;gap:7px;flex-wrap:wrap}#journey-panel button{min-height:38px;padding:7px 10px;background:#e8ede3;border-radius:5px;font-size:11px}#pause-walk{background:#777E42!important;color:white}@media(max-width:700px){#journey-panel{grid-column:1/3;margin:0;padding:2px 0 2px 9px;display:flex;align-items:center;gap:9px}#journey-status{flex:1;font-size:10px;margin:0;line-height:1.45}#journey-panel button{min-height:40px;font-size:10px;padding:5px 9px}#journey-panel>div{gap:4px;flex-direction:column}#replay-greeting{display:none}.zone-heading{margin-top:0}aside{max-height:49dvh;overflow:auto}.viewport{min-height:230px}}

body[data-welcome="true"] .options,body[data-welcome="true"] #may-focus{display:none}body[data-welcome="true"] canvas{cursor:default}

body[data-voice-trial="true"] aside>:not(#voice-panel),body[data-voice-trial="true"] #labels,body[data-voice-trial="true"] .map-foot,body[data-voice-trial="true"] .view-tools{display:none}
body[data-voice-trial="true"] canvas{pointer-events:auto}
body[data-voice-trial="true"] aside{padding:25px 20px}
#voice-panel{min-width:0;grid-column:1 / 3}
.voice-eyebrow{font-size:10px;letter-spacing:.14em;color:#71806f;margin:0 0 18px}
#voice-title{font-size:26px;margin:0 0 14px}
#voice-description{font-size:12px;line-height:1.8;color:#647565;margin:0 0 15px}
#voice-panel button{min-height:44px;border-radius:6px;padding:8px 10px;font-size:12px;background:#e9ede3}
#voice-panel button:disabled{opacity:.45;cursor:default}
#voice-panel .voice-primary{width:100%;background:#777E42;color:#fffefa;font-weight:600;line-height:1.5}
#voice-choices{border:0;padding:0;margin:0 0 12px;min-width:0}
#voice-choices legend{font-family:Georgia,serif;font-size:18px;line-height:1.3}
#voice-choices>p{font-size:11px;color:#6c796c;margin:8px 0}
.voice-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
#voice-panel [data-need]{text-align:left;border:1px solid #d6ddcf;background:#fafbf5}
#voice-panel [data-need][aria-pressed="true"]{background:#e0ead9;border-color:#536e53;color:#29472f}
#voice-feedback{font-size:11px;line-height:1.5;min-height:0;color:#536a53;margin:8px 0}
#voice-feedback:empty{display:none}
.voice-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
#voice-panel .voice-controls button{flex:1 1 auto;font-size:11px;padding:7px 8px}
.voice-progress{display:flex;gap:8px;align-items:center;margin-top:13px}
.voice-progress progress{width:100%;height:5px;accent-color:#777E42;border:0;border-radius:3px}
.voice-progress span{font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#738170}
.voice-review-tools{margin-top:24px;border-top:1px solid #dce2d5;padding-top:10px}
.voice-review-tools summary{font-size:11px;color:#6c7967;cursor:pointer;min-height:34px;display:list-item}
.voice-review-tools>div{display:flex;flex-wrap:wrap;gap:6px}
.voice-review-tools p{font-size:10px;line-height:1.7;color:#7b8474}
#voice-subtitles{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);width:max-content;max-width:min(760px,60vw);padding:8px 20px 9px;border-radius:999px;background:rgba(250,248,239,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 6px 20px rgba(44,50,24,.1),inset 0 0 0 1px rgba(119,126,66,.18);color:#262b14;font:400 17px/1.4 'Jost',sans-serif;letter-spacing:.005em;text-align:center;pointer-events:none;z-index:10;text-wrap:pretty}
@media(max-width:700px){
  body[data-voice-trial="true"] aside{display:block;padding:13px 16px max(13px,env(safe-area-inset-bottom));max-height:49dvh;overflow:auto}
  .voice-eyebrow{font-size:9px;margin:0 0 5px}
  #voice-title{font-size:20px;margin-bottom:6px}
  #voice-description{font-size:11px;line-height:1.6;margin-bottom:9px}
  #voice-choices legend{font-size:16px}
  .voice-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .voice-controls{margin-top:6px}
  .voice-progress{margin-top:8px}
  .voice-review-tools{margin-top:10px;padding-top:8px}
  #voice-subtitles{bottom:12px;max-width:calc(100% - 24px);font-size:14px;line-height:1.5;padding:10px 12px}
}

#opening-loading{display:none}
html[data-voice-intro="true"] main{visibility:hidden}
html[data-voice-intro="true"] #opening-loading{display:grid;place-items:center;position:fixed;inset:0;z-index:31;background:#173638;color:#f1ecdb;font:38px Georgia,serif}
#cinematic-opening{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;background:#193739;color:#f6efdf;overflow:auto}
#cinematic-opening .opening-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.opening-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#071b1e30,transparent 25%,#081c1d45 100%)}
.opening-brand{position:relative;padding:30px 38px 10px;font:28px Georgia,serif;letter-spacing:-.8px;flex-shrink:0}
.opening-brand span{display:block;font:9px system-ui,sans-serif;letter-spacing:.2em;margin-top:9px;color:#e5e9d49e}
.opening-content{position:relative;width:100%;max-width:1020px;margin:auto;padding:24px 32px 35px;display:flex;flex-direction:column;align-items:center;gap:22px}
.opening-chapter{font-size:10px;letter-spacing:.34em;color:#e3d9b7b5;margin:0}
.opening-copy{width:100%;min-height:205px;display:flex;align-items:center;justify-content:center}
.opening-copy h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(32px,4.8vw,62px);line-height:1.13;letter-spacing:-.025em;text-align:center;text-wrap:balance;margin:0;color:#f7f0df;max-width:940px}
.opening-interaction{width:min(100%,480px)}
#cinematic-opening #voice-panel>.voice-eyebrow,#cinematic-opening #voice-title,#cinematic-opening #voice-description,#cinematic-opening .voice-progress,#cinematic-opening .voice-review-tools,#cinematic-opening #voice-choices legend{display:none}
#cinematic-opening #voice-choices>p{color:#dedcc7;font-size:11px;text-align:center;margin:0 0 12px}
#cinematic-opening #voice-panel [data-need]{background:#f4f5df08;border:1px solid #dce7d73d;color:#f8f1e2;text-align:center;border-radius:3px;min-height:46px;backdrop-filter:blur(8px)}
#cinematic-opening #voice-panel [data-need][aria-pressed="true"]{background:#efe8d8;color:#193638;border-color:#efe8d8}
#cinematic-opening .voice-choice-grid{gap:8px}
#cinematic-opening .voice-choice-grid button:last-child{grid-column:1 / 3}
#cinematic-opening #voice-panel .voice-primary{background:#f1ecdb;color:#193638;border-radius:3px;min-height:48px;letter-spacing:.025em}
#cinematic-opening #voice-panel .voice-controls{justify-content:center;margin-top:14px;gap:15px}
#cinematic-opening #voice-panel .voice-controls button{flex:0 1 auto;background:none;color:#e9eadcc7;font-size:11px;padding:8px 4px;min-height:44px;border-radius:0;border-bottom:1px solid #c3d0b92e}
#cinematic-opening #voice-panel button:focus-visible{outline:2px solid #f2d39a;outline-offset:4px}
#cinematic-opening #voice-panel button:disabled{opacity:.35}
#cinematic-opening[data-question="true"] .opening-copy{min-height:135px}
#cinematic-opening[data-question="true"] .opening-copy h1{font-size:clamp(27px,3.8vw,44px);max-width:780px}
.opening-review{position:relative;text-align:center;font-size:10px;letter-spacing:.06em;color:#dce3c873;margin:0;padding:0 16px 18px;flex-shrink:0}
@media(max-width:700px){
  .opening-brand{padding:24px 24px 10px;font-size:24px}
  .opening-brand span{font-size:8px;letter-spacing:.15em}
  .opening-content{padding:22px 24px 28px;gap:20px}
  .opening-copy{min-height:185px}
  .opening-copy h1{font-size:35px;line-height:1.14}
  #cinematic-opening[data-question="true"] .opening-content{gap:13px;padding-top:12px;padding-bottom:18px}
  #cinematic-opening[data-question="true"] .opening-copy{min-height:130px}
  #cinematic-opening[data-question="true"] .opening-copy h1{font-size:28px;line-height:1.15}
  #cinematic-opening #voice-panel .voice-controls{gap:17px;margin-top:8px}
  .opening-review{padding-bottom:max(14px,env(safe-area-inset-bottom));font-size:9px}
}
@media(prefers-reduced-motion:reduce){.opening-copy h1{transform:none!important}}

#cinematic-opening #voice-feedback{color:#e3e6d1;text-align:center;font-size:11px}

/* Review controls for the courtyard visual candidate. */
#visual-table-detail{width:100%;min-height:44px;border:1px solid #546d63;background:#f4f4e9;color:#304d41;padding:10px 14px;margin:12px 0 0;border-radius:6px;font-size:12px}
#visual-table-detail[hidden]{display:none}

body[data-courtyard-visual="true"] #courtyard-overview{min-height:44px}

#visual-herbal-detail{width:100%;min-height:44px;border:1px solid #b7b3a1;background:#faf8ef;color:#514d3b;padding:10px 14px;margin:8px 0 0;border-radius:6px;font-size:12px}
#visual-herbal-detail[hidden]{display:none}

/* Product actions share the current scene and keep their state between tables. */
#product-panel{grid-column:1/3;margin:14px 0;padding-top:12px;border-top:1px solid #d8d3c6;min-width:0}
.product-intro{font-size:11px;line-height:1.6;color:#625e51;margin:0 0 9px}
.product-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#product-panel button{min-height:44px;border:1px solid #d4cfbf;border-radius:5px;background:#FAF8EF;color:#4e4b40;font-size:12px;padding:8px 5px;line-height:1.4}
#product-panel button[aria-pressed="true"]{background:#e9e3d5;border-color:#84795f;color:#342f26}
#product-panel button:focus-visible{outline:2px solid #766648;outline-offset:3px}
#product-panel button:disabled{opacity:.45;cursor:default}
.product-detail{margin-top:12px}
.product-heading{display:flex;align-items:center;justify-content:space-between;gap:7px}
#product-title{font-size:14px;line-height:1.4;margin:0;font-weight:600;color:#3c392f}
#product-panel #product-back{flex-shrink:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-size:11px;padding:5px}
#product-status{font-size:12px;line-height:1.6;margin:7px 0 11px;color:#645e4e}
#product-panel #product-action{width:100%;background:#665d49;border-color:#665d49;color:#FAF8EF;font-weight:600}
@media(max-width:700px){#product-panel{margin:5px 0;padding-top:9px}.product-intro{font-size:11px}.product-picks{grid-template-columns:repeat(3,minmax(0,1fr))}.product-detail{margin-top:5px}#product-status{margin:3px 0 8px}}

#product-navigation{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:6;width: min(360px,calc(100% - 24px));display:grid;grid-template-columns:44px minmax(60px,1fr) 44px 86px;gap:5px;align-items:center;padding:6px;background:#fffcf4f5;border:1px solid #cfc7b8;border-radius:9px;box-shadow:0 4px 16px #332c2414;color:#494335}
#product-navigation button{min-height:44px;padding:7px 4px;font-size:12px;border:1px solid #d5cfbf;border-radius:5px;background:#f5f1e7;color:inherit}
#product-navigation button:disabled{opacity:.35;cursor:default}
#product-navigation button:focus-visible{outline:2px solid #766648;outline-offset:2px}
#product-current{text-align:center;font-size:12px;line-height:1.4}
body[data-product-focus="true"] .map-foot{display:none}

/* Shared screen controls follow the current HerbloomZ digital palette. */
header{background:#FAF8EF;border-color:#777e4226}.brand{color:#777E42}.brand span{color:#3C2C15}
aside{background:#FAF8EF;color:#3C2C15;border-color:#777e4226}
#zone-description,#journey-status,.zone-select,.stage-tag{color:#3C2C15}
#zone-kicker{color:#777E42}.map-label.active,.map-label.actor{background:#777E42;border-color:#777E42;color:#FAF8EF}
.scope-tabs,.tour-actions button,.options button[aria-pressed="true"],#voice-panel button{background:#f3f4bb66}
.tour-actions #next,#voice-panel .voice-primary{background:#777E42;color:#FAF8EF}
.view-tools{display:none}.options,#may-focus,.review-note,.model-status{display:none!important}
#journey-panel{border-color:#777e4266}
#voice-subtitles{background:rgba(250,248,239,.86);color:#262b14}
