/* Olympia Sanctuary — independent, accessible immersive experience */
html{scroll-behavior:smooth}
body.olympia-portal{margin:0;min-width:320px;background:#090d14;color:#f4eee5;overflow-x:clip}
.olympia-portal .wrap{width:min(1240px,calc(100% - 56px));margin-inline:auto}
.op-skip{position:absolute;z-index:110;left:15px;top:-90px;padding:12px;background:#f0d4a0;color:#111;text-decoration:none}
.op-skip:focus{top:12px}
.op-nav{position:relative;z-index:41;background:rgba(8,12,19,.9);border-bottom:1px solid rgba(228,197,144,.12);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.op-nav .nav{min-height:86px;padding-block:13px;display:flex;gap:20px;align-items:center;justify-content:space-between}
.op-nav .brand{color:#fff6e8;text-decoration:none;letter-spacing:.12em;font-weight:800}
.op-nav .brand .logo{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(232,199,145,.5);color:#e2bd7b}
.op-nav .links{display:flex;gap:clamp(12px,2vw,28px);align-items:center}
.op-nav .links a{color:#d7d4ce;text-decoration:none;font:700 12px/1.4 Inter,system-ui,sans-serif}
.op-nav .links a:hover,.op-nav .links a:focus-visible{color:#efca87}
.op-nav .links .op-nav-join{padding:12px 17px;border:1px solid rgba(226,188,121,.45);border-radius:99px;color:#efcc91}
.op-nav .nav-toggle{display:none}
.olympia-portal .op-hero{display:grid!important;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)!important;align-items:center!important;gap:clamp(24px,5vw,76px)!important;min-height:665px!important;padding:70px 0 62px!important;isolation:isolate}
.op-hero::before{content:"";position:absolute;z-index:-2;inset:0 -6vw;background:radial-gradient(ellipse at 68% 39%,rgba(193,151,86,.13),transparent 38%),radial-gradient(ellipse at 34% 77%,rgba(42,66,110,.10),transparent 47%)}
.op-hero-copy{position:relative;z-index:11;min-width:0}
.op-eyebrow,.op-small-label{font:800 10px/1.5 Inter,system-ui,sans-serif;letter-spacing:.20em;text-transform:uppercase;color:#e7c28a}
.op-star{display:inline-grid;place-items:center;color:#e7c28a;margin-right:12px}
.op-hero h1{margin:28px 0 25px;font:400 clamp(54px,5.7vw,88px)/.99 Georgia,'Times New Roman',serif;letter-spacing:-.055em;color:#fcf7ef}
.op-hero h1 em,.op-atlas h2 em,.op-next h2 em{font-weight:400;font-style:italic;color:#e9c88f}
.op-lead{font:400 clamp(18px,1.75vw,22px)/1.5 Georgia,serif;color:#e7e4df;max-width:600px;margin:0 0 13px}
.op-sublead{font:400 14px/1.7 Inter,system-ui,sans-serif;color:#abb5c0;max-width:540px;margin:0}
.op-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:31px 0 23px}
.op-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:50px;padding:12px 20px;text-decoration:none;border-radius:10px;font:750 13px/1.35 Inter,system-ui,sans-serif;cursor:pointer;transition:background .18s ease,transform .18s ease}
.op-button:hover{transform:translateY(-2px)}
.op-primary{background:#e9c991;border:1px solid #e9c991;color:#15191e}
.op-primary:hover{background:#f4d7a5;color:#15191e}
.op-secondary{background:rgba(255,255,255,.035);border:1px solid rgba(230,206,160,.27);color:#f3e2c7}
.op-secondary:hover{background:rgba(229,192,124,.12);color:#f7e8d1}
.op-promise{font:600 11px/1.6 Inter,system-ui,sans-serif;color:#93a0ac;letter-spacing:.04em}
.op-promise span{color:#d6b985;font-size:16px;vertical-align:middle;margin-right:7px}
.olympia-portal .op-hero>.op-presence{position:relative!important;inset:auto!important;right:auto!important;left:auto!important;top:auto!important;bottom:auto!important;width:100%!important;height:635px!important;min-height:635px!important;justify-self:end!important;align-self:center!important;max-width:550px!important;border-radius:26px!important;border:1px solid rgba(220,186,129,.19)!important;background:radial-gradient(ellipse at 50% 27%,rgba(170,134,80,.14),transparent 61%),linear-gradient(170deg,#151820,#070b11 80%)!important;overflow:hidden!important;box-shadow:0 34px 80px rgba(0,0,0,.26)!important;isolation:isolate}
.olympia-portal .op-presence::before{content:"";z-index:1!important;position:absolute;inset:7% 7% 9%;border-radius:50%;border:1px solid rgba(226,191,133,.06);box-shadow:0 0 0 55px rgba(190,143,82,.024),0 0 0 130px rgba(190,143,82,.018);pointer-events:none}
.olympia-portal .op-presence::after{content:"";position:absolute;inset:69% 0 0;z-index:4;background:linear-gradient(180deg,transparent,rgba(8,13,20,.75));pointer-events:none}
.olympia-portal .op-presence.olympia-portrait-ready .olympia-supreme-portrait{width:103%!important;height:103%!important;top:0!important;object-fit:contain;object-position:50% 50%!important}
.olympia-portal .op-presence .olympia-figure{display:none!important}
.op-presence-label{z-index:9;position:absolute;left:27px;top:24px;margin:0;font:800 10px/1.5 Inter,system-ui,sans-serif;letter-spacing:.17em;color:#f0d3a2;pointer-events:none}
.op-presence-label span{color:#88909e;margin:0 5px}
.op-voice-halo{position:absolute;z-index:6;bottom:72px;left:50%;transform:translateX(-50%);height:20px;display:flex;gap:5px;align-items:center;justify-content:center;pointer-events:none}
.op-voice-halo span{display:block;width:2px;height:5px;border-radius:50px;background:rgba(223,184,110,.53);transition:height .18s}
.op-presence[data-state="speaking"] .op-voice-halo span{animation:op-equalize .7s ease-in-out infinite alternate}
.op-presence[data-state="speaking"] .op-voice-halo span:nth-child(2){animation-delay:.17s}
.op-presence[data-state="speaking"] .op-voice-halo span:nth-child(3){animation-delay:.34s}
.op-presence[data-state="speaking"] .op-voice-halo span:nth-child(4){animation-delay:.12s}
.op-presence[data-state="speaking"] .op-voice-halo span:nth-child(5){animation-delay:.26s}
@keyframes op-equalize{from{height:4px}to{height:22px}}
.olympia-portal .op-presence .olympia-call-offer{bottom:21px!important}
.olympia-portal .op-presence .olympia-status-chip{bottom:3px!important}
.olympia-portal .olympia-supreme-studio{width:min(1160px,calc(100% - 56px));margin:20px auto 82px;scroll-margin-top:20px;box-shadow:0 30px 80px rgba(0,0,0,.20)}
.op-principle{border-block:1px solid rgba(234,208,157,.11);background:linear-gradient(90deg,#111924,#151a22 65%,#10151c)}
.op-principle-inner{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:24px 0}
.op-principle-inner p{font:italic 21px/1.5 Georgia,serif;color:#f7e9d0;margin:8px 0 0}
.op-principle-inner a{color:#dfbf85;white-space:nowrap;font:700 12px/1.5 Inter,system-ui,sans-serif;text-underline-offset:4px}
.op-atlas{padding-top:54px;padding-bottom:94px}
.op-atlas-heading{display:grid;grid-template-columns:1fr minmax(260px,.7fr);align-items:end;gap:25px;margin:0 0 25px}
.op-atlas-heading h2{margin:10px 0 0;font:400 clamp(38px,4.4vw,64px)/1.05 Georgia,serif;letter-spacing:-.05em;color:#fcf7f0}
.op-atlas-heading>p{margin:0 0 3px;color:#aeb8c2;line-height:1.75;font-size:13px;max-width:430px}
.op-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:21px}
.op-filter-row button{min-height:39px;padding:7px 14px;border:1px solid rgba(227,199,145,.19);border-radius:99px;background:rgba(255,255,255,.03);color:#d6d3ce;font:700 12px/1.25 Inter,system-ui,sans-serif;cursor:pointer}
.op-filter-row button[aria-pressed="true"]{background:#e2c18a;color:#141820;border-color:#e2c18a}
.op-filter-row button:focus-visible,.op-wisdom-card button:focus-visible,.op-button:focus-visible{outline:2px solid #f4daab;outline-offset:3px}
.op-atlas-status{color:#aeb8c2;font-size:12px;margin:0 0 12px;line-height:1.6}
.op-wisdom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.op-wisdom-card{min-width:0;display:flex;flex-direction:column;padding:24px;border:1px solid rgba(229,202,157,.13);border-radius:15px;background:radial-gradient(circle at 100% 0%,rgba(177,133,68,.075),transparent 45%),linear-gradient(140deg,#161b24,#10151c);transition:border-color .18s ease,transform .18s ease}
.op-wisdom-card:hover{border-color:rgba(221,182,123,.35);transform:translateY(-2px)}
.op-card-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:#d4af75;font:750 10px/1.4 Inter,system-ui,sans-serif;letter-spacing:.075em;text-transform:uppercase}
.op-card-meta time{color:#9facb7;font-weight:550;letter-spacing:.02em;text-transform:none}
.op-wisdom-card h3{font:400 27px/1.16 Georgia,serif;color:#fff4e7;margin:15px 0 15px;letter-spacing:-.02em}
.op-wisdom-card p{font:15px/1.68 Georgia,serif;color:#d2d1cf;margin:0 0 17px}
.op-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:auto}
.op-card-actions button{cursor:pointer;padding:8px 12px;min-height:38px;border-radius:9px;border:1px solid rgba(223,188,138,.27);background:transparent;color:#efcea0;font-size:11px;font-weight:750}
.op-card-actions button:hover{background:rgba(235,195,130,.1)}
.op-card-actions button:first-child{background:rgba(215,182,121,.12)}
.op-atlas-more{text-align:center;margin-top:26px}
.op-atlas-more button[hidden]{display:none!important}
.op-next{padding:85px 0;border-block:1px solid rgba(229,202,157,.13);background:radial-gradient(ellipse at 15% 20%,rgba(183,139,81,.10),transparent 42%),#121921}
.op-next-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px}
.op-next h2{font:400 clamp(36px,4vw,60px)/1.08 Georgia,serif;color:#f9f2e7;letter-spacing:-.04em;margin:15px 0 0}
.op-next-links{display:grid;gap:10px}
.op-next-links a{display:flex;justify-content:space-between;gap:10px;align-items:center;text-decoration:none;border:1px solid rgba(229,202,157,.17);padding:17px;border-radius:11px;color:#f5dfb2}
.op-next-links a:hover{background:rgba(229,202,157,.07)}
.op-next-links strong{font-size:14px;white-space:nowrap}
.op-next-links span{max-width:250px;text-align:right;color:#aeb9c3;font-size:11px;line-height:1.45}
.op-footer .wrap{display:flex;align-items:center;gap:22px;justify-content:space-between;padding:26px 0;color:#8e9aaa;font:11px/1.5 Inter,system-ui,sans-serif}
.op-footer .wrap>span{color:#d7b881;font-weight:800;letter-spacing:.12em}
.op-footer p{margin:0}
.op-footer a{color:#d8b880}
@media(max-width:950px){
 .op-nav .links{gap:12px}.op-nav .links a{font-size:11px}
 .olympia-portal .op-hero{grid-template-columns:1fr!important;gap:20px!important;padding:40px 0 35px!important}
 .op-hero-copy{max-width:760px}
 .olympia-portal .op-hero>.op-presence{max-width:540px!important;justify-self:center!important;height:540px!important;min-height:540px!important}
 .op-wisdom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
 .olympia-portal .wrap{width:calc(100% - 32px)}
 .op-nav .nav{min-height:70px;padding-block:12px}
 .op-nav .nav-toggle{display:flex}
 .op-nav .links{display:none}
 .op-nav .links.open,.op-nav .links.is-open{display:flex;position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;align-items:stretch;padding:20px;background:#0d141e;border-bottom:1px solid rgba(229,202,157,.2)}
 .op-nav .links a{display:block;padding:12px;font-size:13px}
 .olympia-portal .op-hero{padding:42px 0 27px!important;min-height:0!important}
 .op-hero h1{font-size:clamp(45px,12vw,64px);margin:22px 0}
 .op-lead{font-size:18px}
 .op-hero-actions{margin:24px 0 18px;gap:9px}
 .op-hero-actions .op-button{flex:1 1 100%;min-height:49px}
 .olympia-portal .op-hero>.op-presence{height:420px!important;min-height:420px!important;border-radius:19px!important;width:100%!important;margin:11px 0 0!important}
 .olympia-portal .op-presence.olympia-portrait-ready .olympia-supreme-portrait{width:92%!important;height:100%!important;top:0!important}
 .op-presence-label{font-size:9px;left:16px;top:15px}
 .olympia-portal .olympia-supreme-studio{width:calc(100% - 32px);margin:0 auto 58px}
 .op-principle-inner{flex-direction:column;align-items:flex-start;gap:13px;padding:24px 0}
 .op-principle-inner p{font-size:18px}
 .op-atlas{padding:38px 0 68px}
 .op-atlas-heading{grid-template-columns:1fr;gap:17px}
 .op-atlas-heading h2{font-size:clamp(36px,9.4vw,52px)}
 .op-wisdom-grid{grid-template-columns:1fr}
 .op-wisdom-card{padding:21px}
 .op-next{padding:55px 0}
 .op-next-grid{grid-template-columns:1fr;gap:30px}
 .op-next-links a{flex-direction:column;align-items:flex-start}
 .op-next-links span{text-align:left}
 .op-footer .wrap{flex-direction:column;align-items:flex-start;gap:11px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .op-presence[data-state="speaking"] .op-voice-halo span{animation:none!important}
 .op-button:hover,.op-wisdom-card:hover{transform:none}
}
/* Keep character details unobstructed; prioritize Olympia herself on phones. */
.olympia-portal .op-presence-label{display:none!important}
@media(max-width:680px){
 .olympia-portal .op-hero{display:flex!important;flex-direction:column-reverse!important;align-items:stretch!important;gap:19px!important}
 .olympia-portal .op-hero>.op-presence{height:370px!important;min-height:370px!important;margin:0!important}
 .op-hero h1{font-size:clamp(40px,10.8vw,53px);line-height:1.01}
 .op-lead{font-size:17px}
}
@media(max-width:680px){
 .op-nav .nav.nav-open .links{display:flex!important;position:absolute;top:100%;left:0;right:0;z-index:70;flex-direction:column;align-items:stretch;padding:20px;background:#0d141e;border-bottom:1px solid rgba(229,202,157,.2)}
}

.op-rss-promo{text-align:center;margin:26px 0 4px;color:#a5b0bd;font:13px/1.6 Inter,system-ui,sans-serif}
.op-rss-promo a{color:#e9c991;font-weight:750;text-underline-offset:4px}


/* PCM-amplitude driven stage and sound bars */
.olympia-portal .op-presence.os-audio-reactive .op-halo{
 position:absolute;inset:4%;z-index:1;pointer-events:none;
 border-radius:50%;filter:blur(24px);
 background:radial-gradient(ellipse at 50% 46%,rgba(231,190,117,.23),transparent 58%);
 opacity:var(--os-voice-alpha,0);transition:opacity .08s
}
.olympia-portal .op-presence.os-audio-reactive .op-voice-halo span{
 animation:none!important;transition:height .05s linear!important
}
@media(prefers-reduced-motion:reduce){
 .olympia-portal .op-presence.os-audio-reactive .op-halo,
 .olympia-portal .op-presence.os-audio-reactive .op-voice-halo span{transition:none!important}
}


/* Enter a reflection as a source-grounded conversation, with visitor review. */
.op-wisdom-card .op-card-actions button[aria-label^="Discuss"]{border-color:rgba(226,190,125,.5);background:rgba(226,190,125,.10)}


/* V25: mouth expressions maintain precisely the same full-image geometry. */
.olympia-portal .op-presence.olympia-portrait-ready .olympia-viseme{
  width:103%!important;height:103%!important;top:0!important;
  object-fit:contain;object-position:50% 50%!important;
}
@media(max-width:680px){
  .olympia-portal .op-presence.olympia-portrait-ready .olympia-viseme{
    width:92%!important;height:100%!important;top:0!important;
  }
}


/* Olympia v35: spoken conversation entry clearly visible above the fold. */
.op-hero-actions .op-tertiary{
  border:1px solid rgba(229,193,139,.13);background:transparent;
  color:#bdc2c4;min-height:48px;white-space:nowrap
}
.op-hero-actions .op-tertiary:hover{background:rgba(222,189,131,.09);color:#f5e6cf}
.op-hero-actions [data-op-talk] {box-shadow:0 9px 33px rgba(218,177,105,.16)}
.op-hero-actions [data-op-talk][aria-pressed="true"]{
  background:#b05d4c;border-color:#c57965;color:#fff8f1
}
.op-hero-actions [data-op-talk]:disabled{opacity:.75;cursor:progress}
.olympia-portal .op-presence .olympia-call-offer{
  z-index:24!important;
  background:linear-gradient(135deg,#eac98f,#bd955c)!important;
  color:#111923!important;border-color:#f3d6a0!important;
  bottom:20px!important;min-height:48px;padding:12px 22px!important;
  font-weight:850!important;box-shadow:0 13px 38px rgba(0,0,0,.55)!important
}
.olympia-portal .op-presence[data-state="listening"] .olympia-call-offer{
  background:linear-gradient(135deg,#b96051,#8f392d)!important;
  border-color:#da927d!important;color:#fff5e8!important
}
.olympia-portal .op-voice-instruction{
 position:absolute;z-index:25;left:12px;right:12px;bottom:80px;
 margin:0;min-height:18px;text-align:center;pointer-events:none;
 font:750 11px/1.45 Inter,system-ui,sans-serif;color:#f5dfb6;
 letter-spacing:.01em;text-shadow:0 2px 8px rgba(0,0,0,.92);
}
@media(max-width:680px){
 .olympia-portal .op-voice-instruction{bottom:77px;font-size:12px}
 .op-hero-actions [data-op-talk]{min-height:54px;font-size:14px}
 .op-hero-actions .op-tertiary{min-height:43px}
}
@media(prefers-reduced-motion:reduce){
 .olympia-portal .op-presence .olympia-call-offer{transition:none!important}
}
/* A continuously drifting container makes the primary mobile button difficult to tap.
   Keep the stage steady; Olympia's portrait still has its own subtle animation. */
.olympia-portal .op-hero > .op-presence{
 animation:none!important;transform:none!important;will-change:auto!important;
}
