/* One white canvas, a character and a single invitation. No studio-wall panels. */
body[data-route="ensemble"] { --paper:#fff; --paper-strong:#fff; background:#fff; }
body[data-route="ensemble"] .aurora { display:none; }
body[data-route="ensemble"] .masthead { background:#ffffffed; border:0; backdrop-filter:none; padding-inline:clamp(20px,4vw,64px); }
body[data-route="ensemble"] .production-footer { background:#fff; border:0; }
.journey { display:flex; flex-direction:column; min-height:calc(100svh - 126px); background:#fff; padding:20px 0 48px; overflow:clip; }
.journey .cyc { position:relative; display:flex; flex-direction:column; top:auto; min-height:0; width:100%; background:#fff; overflow:visible; border:0; box-shadow:none; }
.journey .cyc::before,.journey .cyc::after { display:none; }
.journey .stage-number { position:relative; inset:auto; display:block; text-align:center; margin:10px 0 8px; color:#757977; font:10px/1.4 var(--mono); letter-spacing:.19em; }
.journey .stage-body { flex:1; width:100%; height:auto; min-height:0; }
.journey .stage-slate { display:none; }
.journey .tray { width:min(100%,680px); margin:0 auto; padding:8px 28px 24px; border:0; background:transparent; box-shadow:none; backdrop-filter:none; text-align:center; }
.journey .eyebrow { margin:0 0 12px; color:#7c817e; font:10px/1.5 var(--mono); letter-spacing:.17em; }
.journey .tray h1,.imagining-copy h2 { font:400 clamp(40px,4.8vw,68px)/1.02 var(--serif); letter-spacing:-.052em; margin:0 0 20px; }
.journey h1 em,.imagining-copy h2 em { font-weight:400; color:#687d80; }
.journey .lede { max-width:40ch; margin:0 auto 28px; color:#727773; font-size:14px; line-height:1.65; }
.journey .field { margin:20px 0; text-align:left; }
.journey .field > span { font-size:12px; font-weight:400; color:#737b77; }
.journey .field input,.journey .field textarea { width:100%; background:transparent; border:0; border-bottom:1px solid #d7dfdc; border-radius:0; box-shadow:none; padding:14px 0; color:#25322f; outline-offset:5px; transition:border-color .25s; }
.journey .field input:focus,.journey .field textarea:focus { border-color:#46675f; outline:1px solid transparent; box-shadow:0 1px 0 #46675f; }
.journey .field input::placeholder,.journey .field textarea::placeholder { color:#9a9f9a; }
.journey .tray-actions { position:relative; inset:auto; display:flex; justify-content:center; gap:24px; margin:24px 0 0; padding:0; background:none; border:0; box-shadow:none; backdrop-filter:none; }
.journey .tray-actions > * { flex:0 1 auto; min-width:0; }
.journey .ink-button { display:inline-flex; justify-content:center; align-items:center; gap:25px; min-height:48px; border-radius:30px; padding:14px 27px; border:1px solid #142e29; background:#142e29; color:#fff; font-size:13px; font-weight:500; transition:background .2s,transform .25s; box-shadow:none; }
.journey .ink-button:not(:disabled):hover { background:#294c42; transform:translateY(-2px); }
.journey .quiet-button { min-height:44px; border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; padding:8px 0; color:#737a76; font-size:12px; }
.journey .quiet-button:hover { color:#183b31; border-bottom-color:#90aaa0; }
.journey .ink-button:focus-visible,.journey .quiet-button:focus-visible { outline:2px solid #86aa9d; outline-offset:4px; }
.portrait-scene { position:relative; display:flex; flex-direction:column; align-items:center; width:100%; }
.portrait-scene .egg-stage { flex:none; width:clamp(220px,26vw,340px); height:clamp(260px,30vw,380px); min-height:0; display:block; margin:0 auto; overflow:visible; }
.portrait-scene #egg-canvas { position:relative; display:block; width:100%; height:100%; inset:auto; }
.portrait-scene .portrait-hero { position:relative; width:100%; height:clamp(280px,48svh,520px); margin:0; background:#fff; display:grid; place-items:center; }
.portrait-scene .egg-portrait { position:absolute; inset:0; display:block; width:100%; min-width:0; max-width:none; height:100%; min-height:0; max-height:100%; object-fit:contain; object-position:center; border:0; border-radius:0; box-shadow:none; filter:none; clip-path:none; background:#fff; opacity:0; transition:opacity 800ms ease,transform 1.1s cubic-bezier(.22,1,.36,1); transform:translateY(12px); }
.portrait-scene .egg-portrait.is-ready { opacity:1; transform:translateY(0); }
.portrait-scene.has-portrait .egg-stage { width:64px; height:80px; margin:4px auto 8px; }
.portrait-scene .egg-portrait-status { position:absolute; top:50%; left:0; right:0; max-width:none; text-align:center; font:italic 15px/1.5 var(--serif); color:#798881; }
.portrait-scene .egg-portrait-retry { position:absolute; top:60%; left:50%; transform:translateX(-50%); }
.journey-name .tray { padding-top:0; max-width:460px; }
.journey-name .tray h1 { font-size:clamp(32px,3.7vw,45px); margin-bottom:8px; }
.journey-name .eyebrow { display:none; }
.journey-name .name-field { margin:0 auto; }
.journey-name #character-name { font:400 clamp(21px,2.3vw,28px)/1.4 var(--serif); text-align:center; }
.journey-name .tray-actions { margin-top:18px; }
.journey-describe { justify-content:center; padding-top:0; }
.journey-describe .stage-number { display:none; }
.journey-describe .tray { max-width:690px; }
.journey-describe .describe-field { width:min(100%,500px); margin:24px auto; }
.journey-describe #description { text-align:center; font:400 20px/1.5 var(--serif); resize:none; min-height:88px; max-height:180px; padding:12px; }
.journey-describe .tray h1 { font-size:clamp(43px,5.8vw,76px); }
.imagining-copy { display:none; }
.journey-describe.is-imagining #describe-form { display:none; }
.journey-describe.is-imagining .imagining-copy { display:block; animation:journey-arrive .8s both; }
.imagining-copy > p:last-child { color:#77817a; font:italic 16px/1.6 var(--serif); }
.journey-body { justify-content:center; }
.journey-body .stage-number { display:none; }
.journey-body .tray { max-width:650px; }
.journey-body .tray h1 { font-size:clamp(36px,4.4vw,60px); }
.journey-body .hatch-line { margin:20px 0 0; font-size:16px; color:#6d7f78; }
.journey-body .hatch-aside { max-width:40ch; margin:22px auto 0; min-height:3em; font-size:14px; color:#8b908b; }
.journey-body .cyc:has(.model-stage) { height:min(55svh,620px); }
.journey .model-stage { height:100%; min-height:0; background:#fff; }
.journey #three-stage { min-height:0; }
.journey .model-fallback { width:100%; height:100%; max-width:100%; object-fit:contain; filter:none; box-shadow:none; background:#fff; }
/* Once alive, the character holds the frame while the invitation changes beside them. */
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr); align-items:start; max-width:1440px; margin:0 auto; padding:40px 5vw 70px; gap:7vw; }
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .cyc { position:sticky; top:110px; height:calc(100svh - 220px); min-height:450px; }
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .tray { padding:clamp(24px,7vh,90px) 0 0; text-align:left; }
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .tray h1 { font-size:clamp(40px,4.3vw,60px); }
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .lede { margin-left:0; }
.journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .tray-actions { justify-content:flex-start; }
.journey .choice-row { display:flex; flex-wrap:wrap; gap:8px 18px; margin:26px 0; }
.journey .choice { border:0; border-radius:0; border-bottom:1px solid transparent; background:none; min-height:42px; padding:8px 0; color:#7c857e; font:15px/1.4 var(--serif); }
.journey .choice[aria-pressed="true"] { color:#173a30; border-bottom-color:#173a30; background:none; }
.journey .choice:hover { color:#173a30; background:none; }
.journey-details { margin:26px 0; border-top:1px solid #e3e7e3; border-bottom:1px solid #e3e7e3; }
.journey-details summary { cursor:pointer; list-style:none; padding:18px 0; color:#78847c; font:italic 15px/1.5 var(--serif); }
.journey-details summary::after { content:'+'; float:right; font:18px/1.3 var(--sans); }
.journey-details[open] summary::after { content:'−'; }
.journey-details-content { padding:0 0 18px; animation:journey-arrive .4s both; }
.journey .talk-cta { color:#173a30; background:transparent; box-shadow:none; border:0; border-top:1px solid #dce4de; border-radius:0; padding:22px 0; justify-content:flex-start; font:italic 20px/1.4 var(--serif); }
.journey .talk-cta-dot { width:9px; height:9px; background:#507e6c; box-shadow:0 0 0 4px #e7eee9; }
.journey .voice-paths { border:0; border-bottom:1px solid #dce4de; padding:0 0 12px; gap:15px; }
.journey .truth-note { color:#939b94; font-size:11px; line-height:1.6; }
.journey .screen-title { display:none; }
.journey .hatch-ceremony { background:transparent; }
.journey .ceremony-egg { width:min(420px,70vw); height:min(520px,60svh); inset:auto; }
.journey .hatch-caption { font-family:var(--serif); color:#627e72; }
.journey .tray > :not(.imagining-copy) { animation:journey-arrive .65s cubic-bezier(.22,1,.36,1) both; }
@keyframes journey-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:760px) {
  .journey { padding:8px 0 34px; }
  .journey .tray { padding-inline:24px; }
  .journey .stage-number { margin:8px 0; font-size:9px; }
  .journey-describe .portrait-scene .egg-stage,.journey-body .portrait-scene .egg-stage { width:210px; height:250px; }
  .journey-describe .eyebrow { font-size:9px; }
  .journey-describe .lede { font-size:12px; max-width:29ch; margin-bottom:14px; }
  .journey-describe .describe-field { margin:14px auto; }
  .journey-describe #description { font-size:18px; min-height:82px; }
  .journey .portrait-hero { height:clamp(250px,43svh,470px); }
  .portrait-scene.has-portrait .egg-stage { width:53px; height:64px; margin:2px auto 5px; }
  .journey-name .tray-actions { margin-top:16px; gap:24px; }
  .journey-name .tray h1 { font-size:32px; }
  .journey-body .tray h1 { font-size:36px; }
  .journey-body .hatch-aside { max-width:32ch; font-size:13px; }
  .journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) { display:flex; padding:8px 0 44px; gap:0; }
  .journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .cyc { position:relative; top:auto; height:43svh; min-height:290px; }
  .journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .tray { padding:24px; }
  .journey:is(.journey-performance,.journey-personality,.journey-voice,.journey-screen-test) .tray h1 { font-size:39px; }
  .journey .choice-row { gap:6px 22px; }
  .journey .ink-button { min-height:48px; padding:12px 24px; }
  .journey .tray-actions { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .journey *, .journey *::before,.journey *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.journey .arrival-egg { position:absolute; inset:0; z-index:12; display:grid; place-items:center; background:#fff; }
.journey .arrival-egg .egg-stage,.journey .hatch-ceremony .egg-stage { width:clamp(220px,26vw,340px); height:clamp(260px,30vw,380px); min-height:0; }
.journey .arrival-egg #egg-canvas,.journey .hatch-ceremony #egg-canvas { position:relative; width:100%; height:100%; }
.journey .arrival-egg.hatch-ceremony { background:transparent; }
.journey .model-stage[data-render-state="error"] .model-arrival { z-index:14; background:#fffffff2; }
.journey .egg-stage:not(.egg-rendered)::before { content:''; display:block; position:absolute; width:56%; height:74%; left:22%; top:13%; border-radius:50% 50% 45% 45% / 65% 65% 35% 35%; background:radial-gradient(ellipse at 30% 25%,#e9f2ef,#94b9c5 65%,#6f8b9b); }
.journey-body .model-stage[data-render-state="ready"] #three-stage { animation:living-arrival 1.2s .5s both; }
@keyframes living-arrival { from { opacity:0; } to { opacity:1; } }

/* A quiet secondary control keeps model selection beside the entrance cue. */
.advanced-gear { display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font-size:22px;cursor:pointer;opacity:.65;transition:opacity .2s,transform .3s }
.advanced-gear:hover,.advanced-gear[aria-expanded="true"] { opacity:1;transform:rotate(35deg) }
.image-advanced { max-width:420px;margin-top:18px;padding:18px 0;border-top:1px solid #c5bba7 }
.image-advanced[hidden] { display:none }
.image-advanced label { display:block;margin-bottom:9px;font-size:12px;letter-spacing:.12em;text-transform:uppercase }
.image-advanced select { width:100%;min-height:44px;padding:10px 12px;border:1px solid #b7aa91;border-radius:8px;background:#fffdf7;color:#26241e;font:inherit }
.image-advanced p { margin:10px 0 0;font-size:13px;line-height:1.5;opacity:.65 }
@media(prefers-reduced-motion:reduce) { .advanced-gear { transition:none;transform:none!important } }
.builder-entry { min-height:75svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5vw;padding:3vh 6vw 8vh }
.entry-egg { min-height:360px;height:60vh }
.entry-egg canvas { width:100%;height:100%;display:block }
.entry-copy { max-width:520px }
.entry-copy h1 { font-family:Georgia,serif;font-size:clamp(38px,4.8vw,72px);font-weight:400;line-height:1.06;letter-spacing:-.045em }
.entry-copy h1 em { font-weight:400 }
.entry-copy>p { line-height:1.6 }
.entry-gift { padding:20px 0;margin:20px 0;border-top:1px solid #c5bba7;border-bottom:1px solid #c5bba7 }
.wallet-packs { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 }
.wallet-pack { min-height:64px;padding:12px;border:1px solid #c5bba7;border-radius:10px;background:#fffaf0;display:flex;flex-direction:column;gap:5px;color:#25241e;font:inherit;cursor:pointer }
@media(max-width:700px) { .builder-entry { grid-template-columns:1fr;gap:0;padding:0 24px 40px }.entry-egg {height:30svh;min-height:180px}.entry-copy h1 {margin-top:12px}.entry-copy {text-align:center} }

.entry-egg { position:relative }
.entry-egg:not(.egg-rendered)::before {content:'';position:absolute;width:44%;height:72%;left:28%;top:14%;border-radius:50% 50% 45% 45% / 62% 62% 38% 38%;background:radial-gradient(ellipse at 32% 24%,#fff 0%,#eeeae0 54%,#b8b5ab 100%);box-shadow:inset -14px -16px 24px #7772,0 28px 40px -24px #3324;}
.studio-menu-content .wallet-button {display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;min-height:64px;width:100%;font-size:12px}
.studio-menu-content .wallet-button b {display:inline}
.studio-menu-content .wallet-button span::before {content:none}

/* One living stage, quiet controls, and questions that arrive like a conversation. */
.topnav .wallet-whisper{display:grid!important;place-items:center;width:38px;min-width:38px;height:44px;padding:9px;border:0!important;background:transparent!important;opacity:.58;box-shadow:none!important}
.wallet-whisper svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linejoin:round}
.wallet-whisper:hover,.wallet-whisper:focus-visible{opacity:1}
.story-beat{animation:story-arrive .8s cubic-bezier(.22,1,.36,1) both}
.story-answer textarea{min-height:150px;font-size:clamp(18px,2vw,25px);line-height:1.5}
.story-field-hint{display:block;font-size:13px;line-height:1.6;opacity:.6;margin:5px 0 12px}
.story-review .field{margin-bottom:30px}.story-review textarea{min-height:86px}
.talk-cta{position:relative;display:flex!important;align-items:center;justify-content:center;gap:20px;min-height:106px!important;width:100%;padding:22px 34px!important;border:1px solid #17171735!important;border-radius:70px!important;background:transparent!important;color:inherit!important;font-family:inherit;font-size:clamp(21px,2.5vw,32px)!important;box-shadow:0 10px 40px #17171708;overflow:visible;transition:transform .4s,border-color .4s}
.talk-cta:hover{transform:translateY(-3px);border-color:#17171799!important}.talk-cta:before,.talk-cta:after{content:'';position:absolute;inset:-7px;border:1px solid #17171715;border-radius:70px;pointer-events:none}.talk-cta:after{inset:-14px;border-color:#17171708}.talk-cta-dot{width:28px!important;height:28px!important;background:transparent!important;border:1px solid currentColor;border-radius:50%;position:relative;animation:invitation-breathe 3s ease-in-out infinite}.talk-cta-dot:after{content:'';position:absolute;inset:9px;border-radius:50%;background:currentColor}
.talk-save-gallery{font:inherit;font-size:13px;letter-spacing:.03em;padding:10px 22px;background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;cursor:pointer}.talk-save-gallery:disabled{opacity:.25;cursor:default}.talk-save-gallery:not(:disabled){animation:story-arrive .6s both}.talk-hint:empty{display:none}.talk-latency{display:none!important}
@keyframes story-arrive{from{opacity:0;transform:translateY(22px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes thought-arrive{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes thought-pulse{to{opacity:.2;transform:translateY(-3px)}}
@keyframes invitation-breathe{50%{transform:scale(1.13);opacity:.5}}
@media(max-width:650px){.story-thought{bottom:4%;max-width:290px;padding:15px 23px}.journey-personality .cyc{min-height:43svh}.story-answer textarea{min-height:110px}.talk-cta{min-height:90px!important}.story-review .field{margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){.story-beat,.story-thought,.talk-cta-dot,.thought-dots i,.talk-save-gallery:not(:disabled){animation:none!important}.talk-cta:hover{transform:none}}

/* Three independent full-screen scenes. The review is a separate fourth scene. */
.journey.journey-personality { display:flex;max-width:100%;min-height:0;padding:20px 24px 48px;gap:0; }
.journey-personality .stage-number{display:none}
.journey-personality.story-only .story-beat{display:flex;flex-direction:column;align-items:center;width:min(100%,760px);margin:auto;min-height:calc(100dvh - 150px);}
.story-heading{text-align:center;width:100%;flex:none}
.story-heading h1{font:400 clamp(32px,3.8vw,50px)/1.12 var(--serif);letter-spacing:-.04em;margin:0}
.story-heading .eyebrow{margin:0 0 10px}.story-heading .lede{margin:12px auto 0!important;max-width:48ch;font-size:13px}
.journey.journey-personality .cyc{position:relative;top:auto;width:100%;height:clamp(320px,43dvh,440px);min-height:0;flex:1 0 320px;}
.story-question-controls{width:min(100%,520px);text-align:center;flex:none}
.journey-personality .story-answer{margin:0}.journey-personality .story-answer textarea{text-align:center;min-height:84px;max-height:130px;padding:12px 20px;font:400 19px/1.55 var(--serif);resize:vertical}
.journey-personality .tray-actions{justify-content:center!important;margin-top:20px}
.journey.journey-personality:not(.story-only) .cyc{height:300px;flex:none;max-width:720px;margin:auto}
.journey.journey-personality .tray{padding:0;width:min(100%,760px);text-align:center}
.journey-personality .story-review>.lede{margin:12px auto 30px}.journey-personality .story-review>.field{max-width:580px;margin:26px auto}
.journey-personality .story-review .journey-details-content{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.journey-personality.story-only #three-stage{left:0;right:auto;width:68%}
.journey-personality .story-thought{position:absolute;z-index:8;top:22%;right:2%;width:27%;max-width:230px;margin:0;padding:18px 20px;border:1px solid rgba(41,70,62,.38);border-radius:52% 48% 50% 46%/47% 53% 45% 55%;background:rgba(248,255,249,.72);backdrop-filter:blur(9px);color:#29463e;font:italic clamp(14px,1.8vw,19px)/1.42 var(--serif);text-align:center;pointer-events:none;animation:thought-arrive .55s cubic-bezier(.22,1,.36,1) both}
.journey-personality .story-thought::before{content:'';position:absolute;inset:-5px -4px;border:1px solid rgba(41,70,62,.16);border-radius:48% 52% 46% 54%/54% 46% 55% 45%;transform:rotate(-1deg)}
.journey-personality .story-thought::after{content:'';position:absolute;left:18%;bottom:-17px;width:25px;height:18px;border-bottom:1px solid rgba(41,70,62,.42);border-left:1px solid rgba(41,70,62,.42);border-radius:0 0 0 100%;transform:rotate(-18deg)}
.journey-personality .story-thought[data-pending="true"]{font-style:normal;letter-spacing:.28em}
.journey-personality .story-thought[hidden]{display:none}
@media(max-width:650px){.journey.journey-personality{padding:14px 22px 35px}.journey-personality.story-only .story-beat{min-height:calc(100dvh - 135px)}.journey-personality .story-review .journey-details-content{grid-template-columns:1fr}.journey-personality .story-answer textarea{font-size:18px}.journey.journey-personality .cyc{height:38dvh;min-height:280px;flex-basis:280px}.story-heading .lede{font-size:12px}.journey-personality.story-only #three-stage{width:64%}.journey-personality .story-thought{top:19%;right:0;width:33%;padding:14px 11px;font-size:13px}}
/* A gallery of people, with portrait space instead of dashboard tiles. */
.cast-page{max-width:1400px;margin:auto;padding:45px clamp(22px,5vw,80px) 90px;background:radial-gradient(circle at 12% 8%,#e8f1eb 0,transparent 28%),radial-gradient(circle at 88% 30%,#f4e7ed 0,transparent 31%)}.cast-head{align-items:center!important}.gallery-tabs{justify-content:center;gap:28px}.gallery-explore{display:flex;justify-content:center;align-items:center;gap:24px;margin:30px auto 45px}.gallery-explore input{border:0;border-bottom:1px solid #cdd8d1;background:none;padding:12px 6px;width:min(55vw,300px);text-align:center;font:italic 18px var(--serif)}.gallery-explore select{border:0;background:transparent;color:#61746b;padding:10px}.cast-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:50px 30px}.cast-card{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;text-align:center;animation:story-arrive .7s both}.cast-card[hidden]{display:none}.cast-card .cast-open{background:none;border:0;width:100%;text-align:center}.cast-card figure{position:relative;background:#fff!important;overflow:hidden;border-radius:48% 48% 10% 10%;height:310px}.cast-card figure img,.cast-card figure canvas{position:absolute;inset:0;object-fit:contain!important;width:100%;height:100%;transition:opacity .5s,transform .8s cubic-bezier(.2,.8,.2,1)}.cast-card figure canvas{z-index:2}.cast-card figure.has-living-preview img{opacity:0}.cast-card:hover figure img{transform:scale(1.04)}.cage-bars{position:absolute;z-index:3;inset:0;display:flex;justify-content:space-around;padding:0 13px;pointer-events:none}.cage-bars i{width:1px;background:linear-gradient(#70543a,#b99a72 35%,#6b4f39);opacity:.48;box-shadow:0 0 0 .3px #fff8}.cage-door{position:absolute;z-index:4;left:27%;right:27%;bottom:-12%;height:46%;border:1px solid #876b4e;border-bottom:0;border-radius:50% 50% 0 0;opacity:.64;pointer-events:none}.birdcage:after{content:'';position:absolute;z-index:4;left:9%;right:9%;top:7%;height:1px;background:#876b4e;box-shadow:0 252px 0 #876b4e;opacity:.62}.cast-card h2{font:400 30px/1.2 var(--serif);margin:20px 0 8px}.cast-card figcaption p{font-size:12px;line-height:1.6;opacity:.6;max-width:30ch;margin:10px auto}.cast-origin{font:9px var(--mono);letter-spacing:.15em;text-transform:uppercase;color:#698577}.cast-actions{justify-content:center!important;border:0!important;padding-top:15px}.cast-actions button{border:0;border-bottom:1px solid #cbd8d0;border-radius:0;background:transparent;color:#315346;padding:10px 0;font-size:12px}.cast-actions button:disabled{opacity:.3}.cast-live{font:italic 14px var(--serif);color:#789487}
@media(max-width:650px){.cast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 15px}.cast-card figure{height:205px}.cast-card h2{font-size:24px}.gallery-tabs{gap:18px;flex-wrap:wrap}.gallery-explore{gap:12px}.cast-page{padding-inline:20px}.cast-head{text-align:center;display:block!important}}

/* Gallery is a live 3D cast wall. Keep legacy journey cards from repainting it white. */
.cast-page.gallery-cast{max-width:none;background:radial-gradient(ellipse at 8% 7%,rgba(123,47,105,.18),transparent 31%),radial-gradient(ellipse at 88% 31%,rgba(91,63,157,.17),transparent 38%),linear-gradient(180deg,#0b0813 0%,#0a0812 45%,#08070f 100%)}
.gallery-cast .cast-card figure{height:430px!important;overflow:visible;background:transparent!important;border-radius:0}
.gallery-cast .character-window canvas{inset:auto;left:-15%;top:-10%;width:130%;height:120%;object-fit:initial!important}
.gallery-cast .cast-card figcaption{grid-template-rows:42px 20px 20px;padding:8px 10px 0}
.gallery-cast .cast-card h2{display:flex;align-items:center;justify-content:center;height:42px;margin:0;overflow:hidden;font-family:var(--sans);font-size:clamp(22px,2.25vw,30px);font-weight:750;line-height:1;letter-spacing:.045em;white-space:nowrap;text-overflow:ellipsis}
.gallery-cast .cast-card figcaption p{max-width:none;margin:2px 0 0;color:rgba(239,225,249,.56);font:11px/1.45 var(--sans);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:899px){.gallery-cast .cast-card figure{height:360px!important}}
@media(max-width:560px){.gallery-cast .cast-grid{grid-template-columns:1fr}.gallery-cast .cast-card figure{height:min(110vw,430px)!important}}

/* The review needs the same headroom as the question scenes, including the cloud tail. */
.journey.journey-personality:not(.story-only) .cyc{height:440px;min-height:400px;flex:0 0 440px}
