/* OLYMPIA / UNBOUND — a character, not a card or a control panel.
   Dedicated-page overrides only. Other ImOlympian pages retain their UI. */
:root { color-scheme:dark }
html {scroll-behavior:smooth}
body.olympia-unbound {
 margin:0; min-width:320px; overflow-x:clip;
 min-height:100svh; color:#f7f0e6; background:#080b11;
 font-family:Inter,system-ui,-apple-system,sans-serif;
}
.olympia-unbound .ou-skip {
 position:fixed;top:-70px;left:18px;z-index:100;padding:11px 16px;
 background:#e8c990;color:#111923;text-decoration:none;border-radius:5px
}
.olympia-unbound .ou-skip:focus {top:16px}
.olympia-unbound .ou-brand {
 position:absolute;top:clamp(18px,2.8vh,31px);left:clamp(18px,4vw,55px);
 z-index:55;color:#eadccc;text-decoration:none;
 display:inline-flex;gap:12px;align-items:center;font:750 11px/1.4 Inter,system-ui,sans-serif;
 letter-spacing:.23em;opacity:.77;transition:opacity .2s ease
}
.olympia-unbound .ou-brand:hover,.olympia-unbound .ou-brand:focus-visible{opacity:1}
.olympia-unbound .ou-brand span:first-child {
 font:400 30px/1 Georgia,serif;color:#ddbb7f
}
.olympia-unbound .ou-main {
 position:relative; min-height:100svh; display:flex;flex-direction:column;
 justify-content:space-between;align-items:center;overflow-x:clip;
 isolation:isolate;
}
.olympia-unbound .hero-popup.ou-hero {
 position:relative!important;z-index:1;box-sizing:border-box;
 display:flex!important;flex-direction:column!important;align-items:center!important;
 width:100%!important;max-width:none!important;min-height:calc(100svh - 30px)!important;
 gap:0!important;padding:clamp(60px,8svh,95px) 20px 30px!important;
 margin:0!important;background:none!important;box-shadow:none!important;
 isolation:isolate;overflow:visible!important;
}
.olympia-unbound .ou-atmosphere{
 position:absolute;inset:0;z-index:-3;pointer-events:none;
 background:
  radial-gradient(ellipse 40% 49% at 50% 36%,rgba(202,158,94,.14) 0%,rgba(146,111,63,.04) 58%,transparent 87%),
  radial-gradient(ellipse 65% 28% at 50% 84%,rgba(49,64,85,.24),transparent 74%),
  linear-gradient(180deg,#0b0e15 0%,#090c14 59%,#0b1018 100%);
}
.olympia-unbound .ou-radiance{
 position:absolute;z-index:-2;pointer-events:none;
 top:10%;left:50%;width:min(96vw,1000px);height:min(65vh,660px);
 transform:translateX(-50%);border-radius:50%;
 background:radial-gradient(ellipse at center,rgba(223,182,116,.15),rgba(98,70,44,.045) 55%,transparent 78%);
 filter:blur(38px);opacity:.8;
 animation:ou-aura-breathe 9s ease-in-out infinite;
}
@keyframes ou-aura-breathe {0%,100%{opacity:.64;transform:translateX(-50%) scale(.97)}50%{opacity:.91;transform:translateX(-50%) scale(1.04)}}
/* Remove stage frame, clipped corners, glass panel, borders and artificial base. */
body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence {
 position:relative!important;inset:auto!important;left:auto!important;right:auto!important;
 top:auto!important;bottom:auto!important;display:block!important;isolation:isolate;
 width:min(68vw,780px)!important;max-width:780px!important;
 min-height:0!important;height:clamp(420px,59svh,715px)!important;
 flex:0 0 auto;align-self:center!important;
 padding:0!important;margin:0 auto!important;
 border:0!important;outline:0!important;border-radius:0!important;
 background:transparent!important;box-shadow:none!important;
 overflow:visible!important;filter:none!important;transform:none!important;
 animation:none!important;cursor:default!important;pointer-events:none!important;
}
body.olympia-unbound .ou-presence::before,
body.olympia-unbound .ou-presence::after,
body.olympia-unbound .ou-presence .olympia-aura,
body.olympia-unbound .ou-presence .olympia-ground,
body.olympia-unbound .ou-presence .olympia-call-offer,
body.olympia-unbound .ou-presence .olympia-status-chip,
body.olympia-unbound .ou-presence .olympia-permission-recovery,
body.olympia-unbound .ou-presence .os-voice-halo {
 display:none!important;content:none!important
}
body.olympia-unbound .ou-presence.olympia-portrait-ready .olympia-three,
body.olympia-unbound .ou-presence.olympia-portrait-ready .olympia-figure {display:none!important}
body.olympia-unbound .ou-presence .olympia-supreme-portrait,
body.olympia-unbound .ou-presence .olympia-viseme {
 display:block!important;position:absolute!important;left:50%!important;
 top:0!important;bottom:auto!important;right:auto!important;
 width:100%!important;height:100%!important;object-fit:contain!important;
 object-position:50% 50%!important;
 transform:translateX(-50%)!important;filter:none!important;
 animation:none!important;pointer-events:none!important;
}
body.olympia-unbound .ou-presence .olympia-supreme-portrait{
 z-index:3!important;opacity:1;transition:transform .85s ease,filter .7s ease!important;
 filter:drop-shadow(0 24px 32px rgba(0,0,0,.3))!important;
}
body.olympia-unbound .ou-presence .olympia-viseme {
 z-index:4!important;opacity:0;transition:opacity .1s linear!important
}
body.olympia-unbound .ou-presence.is-listening .olympia-supreme-portrait{
 filter:drop-shadow(0 18px 36px rgba(190,154,89,.18))!important;
}
body.olympia-unbound .ou-presence .olympia-figure{
 display:grid;place-items:center;left:50%;top:10%;width:70%;height:80%;
 animation:none;filter:none
}
body.olympia-unbound .ou-presence .olympia-figure span{
 color:#dbc18f;font:400 260px/1 Georgia,serif;opacity:.3
}
body.olympia-unbound .ou-presence .olympia-sr{
 position:absolute!important;height:1px!important;width:1px!important;
 overflow:hidden!important;clip:rect(0,0,0,0)!important
}
/* The old multi-panel experience still runs its conversation/event logic but
   it is not a second visible set of buttons on this dedicated page. */
body.olympia-unbound .olympia-supreme-studio {display:none!important}
body.olympia-unbound .os-drawer-opener {display:none!important}
/* Clean text and the single invitation are the only stage controls. */
.olympia-unbound .ou-connection {
 width:min(680px,100%);display:flex;flex-direction:column;align-items:center;
 margin:-18px auto 0;z-index:25;position:relative;
 text-align:center;gap:0;padding:0 6px;
}
.olympia-unbound .ou-kicker{
 font:760 10px/1.4 Inter,system-ui,sans-serif;letter-spacing:.28em;
 text-transform:uppercase;color:#d9ba89;opacity:.95;margin-bottom:6px
}
.olympia-unbound .ou-connection h1{
 font:400 clamp(43px,5vw,69px)/1.08 Georgia,'Times New Roman',serif;
 letter-spacing:-.045em;color:#fff1df;margin:0 0 9px!important
}
.olympia-unbound .ou-words{
 color:#e6e1d7;min-height:1.8em;max-width:590px;
 margin:0 0 10px!important;font:400 clamp(16px,1.6vw,21px)/1.53 Georgia,serif;
 text-wrap:balance;overflow-wrap:anywhere
}
.olympia-unbound .ou-audio-bars{
 display:flex;align-items:center;justify-content:center;gap:5px;
 height:25px;margin:2px 0 7px;opacity:.35;transition:opacity .2s
}
.olympia-unbound .ou-audio-bars span{
 display:block;width:2px;height:4px;background:#e4be85;
 border-radius:80px;transition:height .10s,opacity .2s
}
.olympia-unbound.ou-in-session .ou-audio-bars{opacity:.95}
body.olympia-unbound .ou-invitation {
 appearance:none;display:inline-flex;align-items:center;justify-content:center;
 gap:14px;min-height:54px;max-width:100%;
 padding:10px 12px 12px;margin:0;
 border:0;border-bottom:1px solid rgba(224,189,133,.65);border-radius:0;
 background:transparent;box-shadow:none!important;color:#f1d39e;
 font:700 clamp(17px,1.8vw,22px)/1.3 Inter,system-ui,sans-serif;
 letter-spacing:.014em;cursor:pointer;touch-action:manipulation;
 -webkit-tap-highlight-color:transparent;transition:color .2s,border-color .2s
}
body.olympia-unbound .ou-invitation:hover{
 color:#ffedc6;border-color:#f7deb4;transform:none
}
body.olympia-unbound .ou-invitation:focus-visible{
 outline:2px solid #f1ce8f;outline-offset:5px;border-radius:2px
}
body.olympia-unbound .ou-invitation:disabled{opacity:.55;cursor:progress}
.olympia-unbound .ou-invitation-mark{font:400 26px/1 Georgia,serif;transform:rotate(-4deg)}
.olympia-unbound.ou-in-session .ou-invitation{
 font-size:13px;letter-spacing:.07em;text-transform:uppercase;
 color:#aebbc2;border-color:rgba(160,172,184,.3);min-height:39px;
}
.olympia-unbound .ou-guidance{
 max-width:580px;font:500 11px/1.65 Inter,system-ui,sans-serif;
 letter-spacing:.02em;color:#9fa9ae;
 margin:11px 0 0!important;
}
.olympia-unbound .ou-dialogue{
 display:flex;flex-direction:column;gap:11px;align-items:center;
 max-height:min(24svh,220px);overflow:auto;overscroll-behavior:contain;
 width:100%;margin:17px 0 0;padding:0 6px;color:#f8ebd9;
 scrollbar-width:thin;scrollbar-color:#675741 transparent
}
.olympia-unbound .ou-dialogue[hidden],
.olympia-unbound .ou-typing[hidden],
.olympia-unbound .ou-source[hidden]{display:none!important}
.olympia-unbound .ou-turn{max-width:100%;font:400 clamp(14px,1.5vw,18px)/1.55 Georgia,serif}
.olympia-unbound .ou-turn.is-user{font:600 12px/1.6 Inter,system-ui,sans-serif;color:#aebcc4}
.olympia-unbound .ou-turn.is-olympia{color:#f1e9db;text-wrap:balance}
.olympia-unbound .ou-turn b{font-family:Inter,system-ui,sans-serif;color:#cdb78d;font-weight:650;margin-right:9px;font-size:11px}
.olympia-unbound .ou-typing{
 width:min(520px,100%);margin:18px auto 0;padding:0
}
.olympia-unbound .ou-typing label{display:block;color:#cdbd9f;font:650 11px/1.6 Inter,system-ui,sans-serif;margin-bottom:6px}
.olympia-unbound .ou-typing input{
 display:block;width:100%;min-height:48px;border:0;border-bottom:1px solid rgba(228,195,137,.45);
 background:transparent;border-radius:0;outline:none;box-shadow:none;
 color:#fff0d5;padding:10px 5px;font:15px/1.4 Inter,system-ui,sans-serif;text-align:center
}
.olympia-unbound .ou-typing input::placeholder{color:#9ea9b2}
.olympia-unbound .ou-typing input:focus{border-color:#e8c28c}
.olympia-unbound .ou-source{
 max-width:540px;margin:12px 0 0!important;color:#94a7b4;font:600 10px/1.5 Inter,system-ui,sans-serif
}
.olympia-unbound .ou-source a{color:#eccb91;text-underline-offset:3px;font-weight:750}
.olympia-unbound .ou-footnote{
 position:relative;z-index:2;
 margin:0 auto 18px;max-width:calc(100% - 36px);
 color:#6f7987;font:400 10px/1.5 Inter,system-ui,sans-serif;text-align:center
}
.olympia-unbound .ou-footnote a{color:#8f9ea9;text-underline-offset:2px}
@media(max-width:800px){
 .olympia-unbound .hero-popup.ou-hero{
  padding:68px 16px 18px!important;
  min-height:calc(100svh - 28px)!important;
 }
 body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence{
  width:min(94vw,670px)!important;max-width:none!important;
  height:clamp(340px,55svh,630px)!important;
 }
 .olympia-unbound .ou-connection{margin:-13px auto 0}
 .olympia-unbound .ou-footnote{font-size:9px;margin-bottom:12px}
}
@media(max-width:500px){
 .olympia-unbound .ou-brand{top:19px;left:20px;font-size:10px}
 .olympia-unbound .ou-brand span:first-child{font-size:24px}
 .olympia-unbound .hero-popup.ou-hero{
  min-height:calc(100svh - 22px)!important;padding:54px 12px 13px!important
 }
 body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence{
  width:100%!important;height:clamp(290px,52svh,490px)!important
 }
 .olympia-unbound .ou-connection{margin:-10px auto 0}
 .olympia-unbound .ou-connection h1{font-size:46px;margin-bottom:7px!important}
 .olympia-unbound .ou-words{font-size:16px;margin-bottom:5px!important;min-height:1.4em}
 body.olympia-unbound .ou-invitation{font-size:19px;min-height:49px;padding:8px 12px}
 .olympia-unbound .ou-guidance{font-size:10px;line-height:1.52}
 .olympia-unbound .ou-dialogue{max-height:18svh;gap:9px}
 .olympia-unbound .ou-footnote{font-size:9px;line-height:1.4}
}
@media(max-height:700px){
 .olympia-unbound .hero-popup.ou-hero{padding-top:50px!important}
 body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence{
  height:clamp(260px,48svh,440px)!important
 }
 .olympia-unbound .ou-guidance{margin-top:5px!important}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important}
 .olympia-unbound .ou-radiance,
 .olympia-unbound .ou-audio-bars span,
 .olympia-unbound .ou-presence .olympia-supreme-portrait{animation:none!important;transition:none!important}
}
/* Fade the photographic lower crop into the ambient page — no hard rectangular edge. */
body.olympia-unbound .ou-presence .olympia-supreme-portrait,
body.olympia-unbound .ou-presence .olympia-viseme{
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 77%,transparent 100%)!important;
 mask-image:linear-gradient(to bottom,#000 0%,#000 77%,transparent 100%)!important;
}
/* Higher specificity than inherited compact-portrait sizing, so the actual
   image never letterboxes above a hard lower edge on a phone. */
body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence.olympia-portrait-ready .olympia-supreme-portrait,
body.olympia-unbound .hero-popup.ou-hero > .olympia-stage.ou-presence.olympia-portrait-ready .olympia-viseme {
  width:100%!important;height:100%!important;max-width:none!important;
  left:50%!important;top:0!important;object-fit:contain!important;
  object-position:center center!important;
  animation:none!important;transform:translateX(-50%)!important;
}
