:root{color-scheme:light;--paper:#f2ede4;--ink:#183b30;--muted:#687068;--line:#183b3024;--gold:#ad8551;font-family:var(--sans);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;background:#8eaaa4;color:var(--ink);height:100vh;height:100dvh;min-height:380px;overflow:hidden}
.scene-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;background:#d8c8ae}
.studio{z-index:1}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.masthead{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;height:76px;margin:0 42px;border-bottom:1px solid var(--line);gap:24px}
.brand{display:flex;align-items:center;gap:13px;font-size:16px;font-weight:650;letter-spacing:.12em;line-height:1.1}.brand-mark{display:grid;place-items:center;width:42px;height:48px;border:1px solid var(--gold);font-family:var(--serif);font-size:33px;font-weight:400;letter-spacing:-.07em;padding-right:3px;border-radius:2px}.brand-caption{display:block;font-size:8px;letter-spacing:.34em;margin-top:6px}
.studio{position:relative;height:calc(100% - 76px);isolation:isolate}.viewport{position:absolute;inset:0;z-index:0}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.loading{position:absolute;z-index:4;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;max-width:min(420px,80vw);font-size:12px;color:var(--muted);padding:25px;background:#f2ede4ed;border-radius:12px}.loading-line{display:block;width:64px;height:2px;background:#dcd6c8;position:relative;overflow:hidden;margin:0 auto 15px}.loading-line:after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:load 1.3s ease-in-out infinite}.loading p{line-height:1.6;margin:0}.loading.error{top:auto;bottom:120px;transform:translateX(-50%);padding:15px 22px}.loading.error .loading-line{display:none}.retry{border:1px solid var(--line);background:transparent;min-height:40px;padding:8px 16px;border-radius:var(--radius-control);margin-top:12px;font-size:13px}.fallback{position:absolute;inset:0 0 70px;margin:0;z-index:1;pointer-events:none}.fallback img{width:100%;height:100%;object-fit:contain}.fallback figcaption{position:absolute;bottom:14px;right:42px;font-size:12px;color:var(--muted)}.no-script{position:fixed;z-index:10;bottom:30px;left:30px;right:30px;padding:20px;background:var(--paper);border:1px solid var(--line)}.no-script a{text-decoration:underline}[hidden]{display:none!important}
@keyframes load{to{transform:translateX(100%)}}
@media(min-width:1600px){.masthead{margin:0 5vw}}
@media(max-width:1050px){.masthead{height:76px;margin:0 25px}.studio{height:calc(100% - 76px)}}
@media(max-height:700px) and (min-width:700px){.masthead{height:68px}.studio{height:calc(100% - 68px)}}
@media(max-width:650px){.masthead{height:74px;margin:0 20px;gap:12px}.brand{font-size:13px;gap:10px}.brand-mark{width:32px;height:38px;font-size:26px}.brand-caption{font-size:6px}.studio{height:calc(100% - 74px)}.fallback{inset:90px 0 100px}.fallback figcaption{right:20px;bottom:2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}.loading-line:after{transform:none}}
/* Keep legal links separate from the interactive scene. */
body{display:flex;flex-direction:column}
.masthead{flex-shrink:0}
.studio{height:auto;flex:1;min-height:0}
.site-footer{flex-shrink:0;min-height:46px;margin:0 42px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.site-footer nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.site-footer a{display:inline-block;padding:12px 0;text-underline-offset:4px}
.site-footer a:hover{text-decoration:underline;color:var(--ink)}
@media(min-width:1600px){.site-footer{margin:0 5vw}}
@media(max-width:1050px){.site-footer{margin:0 25px}}
@media(max-width:650px){.site-footer{margin:0 20px;padding:7px 0 4px;gap:0;flex-direction:column;justify-content:center;font-size:12px}.site-footer nav{gap:15px;justify-content:center}.site-footer a{padding:9px 0}.legal-entity{font-size:12px}}
@media(max-height:380px){body{height:auto;min-height:100dvh;overflow-y:auto}.studio{flex:none;min-height:320px}}

/* Aida is rendered in the same canvas, within the bounds of this responsive dock. */
.aida-dock{position:absolute;z-index:2;right:calc(37.5% - 90px);bottom:2%;width:180px;height:clamp(200px,26vh,300px);display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:width .85s cubic-bezier(.22,.61,.36,1),height .85s cubic-bezier(.22,.61,.36,1),right .85s cubic-bezier(.22,.61,.36,1),bottom .85s cubic-bezier(.22,.61,.36,1)}
.aida-character{width:100%;flex:1;min-height:0;position:relative}.aida-poster{width:100%;height:100%;object-fit:contain;display:block}.aida-character[data-state=ready] .aida-poster{visibility:hidden}
.aida-launch{position:relative;pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:0;flex-shrink:0;width:46px;height:46px;min-height:46px;padding:0;border:1px solid var(--gold);border-radius:var(--radius-control);background:#faf7f0ee;box-shadow:0 5px 20px #183b3010;font-size:12px;white-space:nowrap;transition:background .2s,box-shadow .2s,opacity .2s}
.aida-launch:hover{background:#fffdf7;box-shadow:0 5px 25px #183b3022}.aida-launch svg{width:19px;height:19px;fill:var(--gold);transform-origin:50% 55%}
.aida-launch::before{content:"";position:absolute;inset:-5px;border:1px solid var(--gold);border-radius:inherit;opacity:0;pointer-events:none}
/* One quiet invitation, followed by a long rest; the hit target stays still. */
@media(prefers-reduced-motion:no-preference){
  .aida-launch::before{animation:aida-invitation-ring 7.2s ease-out 1.4s infinite}
  .aida-launch svg{animation:aida-invitation-phone 7.2s ease-in-out 1.4s infinite}
  .aida-launch:is(:hover,:focus-visible,:disabled,[aria-expanded=true])::before,
  .aida-launch:is(:hover,:focus-visible,:disabled,[aria-expanded=true]) svg,
  .studio:is([data-aida-focus=true],[data-service-focus=true]) .aida-launch::before,
  .studio:is([data-aida-focus=true],[data-service-focus=true]) .aida-launch svg{animation:none}
  html[data-page-hidden=true] .aida-launch::before,
  html[data-page-hidden=true] .aida-launch svg{animation-play-state:paused}
}
@keyframes aida-invitation-ring{0%{opacity:0;transform:scale(.96)}6%{opacity:.45}24%,100%{opacity:0;transform:scale(1.35)}}
@keyframes aida-invitation-phone{0%,2%,20%,100%{transform:rotate(0)}5%{transform:rotate(-7deg)}8%{transform:rotate(6deg)}11%{transform:rotate(-4deg)}14%{transform:rotate(2deg)}17%{transform:rotate(0)}}
.aida-feedback{position:absolute;right:32px;bottom:50px;max-width:350px;font-size:13px;line-height:1.5;color:var(--ink);z-index:5;margin:0;background:var(--paper);border-radius:10px}.aida-feedback:not(:empty){padding:12px 16px;border:1px solid var(--line)}.aida-feedback a{text-decoration:underline;text-underline-offset:3px}
.aida-call-dialog{position:fixed;inset:0 34px 0 auto;margin:auto 0;width:294px;max-width:calc(100% - 32px);max-height:calc(100dvh - 100px);overflow:auto;padding:28px 23px 22px;background:#faf7f0f2;color:var(--ink);border:1px solid #aa875349;border-radius:22px;box-shadow:0 18px 65px #163b3012;font:inherit}
.aida-call-dialog::backdrop{background:#f2ede408}
.aida-close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:transparent;font-size:25px;border-radius:50%}.aida-close:hover{background:#183b3008}
.aida-kicker{font-size:12px;letter-spacing:.12em;margin:15px 0 15px;display:flex;align-items:center;gap:6px}.aida-kicker span[aria-hidden=true]{width:5px;height:5px;border-radius:50%;background:var(--gold)}
.aida-call-dialog h2{font-family:var(--serif);font-size:33px;letter-spacing:-.035em;line-height:1.15;font-weight:400;margin:0 0 12px}.aida-call-dialog h2 em{color:var(--gold);font-weight:400}.aida-call-dialog p{line-height:1.55}.aida-call-dialog #aida-dialog-description{font-size:14px;color:var(--muted);margin:0 0 21px}
.aida-language{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin:16px 0}.aida-language select{font:inherit;background:transparent;border:1px solid var(--line);border-radius:var(--radius-control);min-height:44px;padding:7px 14px;color:var(--ink)}
.aida-call-status{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;line-height:1.5;margin:19px 0 15px;min-height:40px;border-top:1px solid var(--line);padding-top:15px}.aida-call-status time{font-variant-numeric:tabular-nums;color:var(--gold)}
.aida-call-controls{display:flex;gap:8px;flex-wrap:wrap}.aida-call-controls button{border:1px solid var(--line);background:transparent;border-radius:var(--radius-control);padding:12px 17px;min-height:46px;font-size:13px;flex:1}.aida-call-controls [data-call-start]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.aida-call-controls [data-call-end]{background:#8b4339;color:white;border-color:#8b4339}.aida-call-controls [data-call-mute][aria-pressed=true]{background:#e8decd}
.aida-privacy,.aida-note{font-size:12px;color:var(--muted);margin:15px 0 0}.aida-note:empty{display:none}.aida-alternatives{display:flex;gap:13px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:15px;margin-top:17px;font-size:12px}.aida-alternatives a{text-decoration:underline;text-underline-offset:3px}
.studio[data-aida-focus=true] .aida-dock{right:315px;bottom:12%;width:clamp(225px,22vw,360px);height:75%}
.studio[data-aida-focus=true] .aida-launch{opacity:0;pointer-events:none}
@media(min-width:1600px){.aida-call-dialog{right:5vw}.studio[data-aida-focus=true] .aida-dock{right:calc(5vw + 280px)}}
@media(max-width:1050px){.aida-dock{right:calc(37.5% - 75px);width:150px;height:26vh;min-height:200px}.aida-call-dialog{right:20px;width:265px;padding:24px 19px 20px}.studio[data-aida-focus=true] .aida-dock{right:260px;width:210px;height:72%}}
@media(max-height:700px) and (min-width:700px){.aida-dock{bottom:2%;min-height:180px;height:38vh}.aida-call-dialog{max-height:calc(100dvh - 32px);padding-top:17px;padding-bottom:17px}.aida-call-dialog h2{font-size:28px}.aida-call-dialog #aida-dialog-description{margin-bottom:12px}.aida-kicker{margin:14px 0 12px}.aida-language{margin:10px 0}.studio[data-aida-focus=true] .aida-dock{height:82%;bottom:4%}}
@media(max-width:699px){.aida-dock{right:calc((100% / 3 - 110px) / 2);bottom:35px;width:110px;height:175px;min-height:0}.aida-launch{width:44px;height:44px;min-height:44px;padding:0}.aida-launch svg{width:15px}.aida-call-dialog{inset:auto 16px 16px;margin:0;width:auto;max-width:none;max-height:48dvh;padding:20px 22px}.aida-call-dialog h2{font-size:28px}.aida-kicker{margin:5px 0 9px}.aida-call-dialog #aida-dialog-description{margin:0 0 10px}.aida-language{margin:8px 0}.aida-call-status{margin:10px 0;padding-top:9px;min-height:30px}.aida-privacy,.aida-note{margin-top:9px}.aida-alternatives{margin-top:11px;padding-top:11px}.studio[data-aida-focus=true] .aida-dock{right:5%;bottom:51%;width:43%;height:47%;min-height:0}.aida-feedback{right:16px;bottom:86px;max-width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){.aida-dock,.aida-launch{transition:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.site-language-control select{font:inherit;font-size:12px;color:var(--ink);background:#faf7f0ed;border:1px solid #aa87535c;border-radius:var(--radius-control);min-height:44px;max-width:145px;padding:8px 15px;cursor:pointer;box-shadow:0 3px 18px #183b3018}
.site-language-control select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:650px){.site-language-control select{font-size:12px;max-width:117px;padding-inline:10px}}

/* The shared 3D landscape fills the screen beneath the interface. */
.studio .viewport{position:fixed;inset:0}
.masthead{border-bottom-color:#fff8ed55}
.brand{text-shadow:0 1px 7px #fff8edb3;background:#faf7f0ed;padding:8px 12px;border-radius:8px;box-shadow:0 3px 18px #183b3018}
.site-footer{position:relative;z-index:3;margin:0;padding:0 42px;border-top-color:#fff8ed55;color:#fff8ed;background:linear-gradient(0deg,#15291dd9,#15291d85);text-shadow:0 1px 3px #10201780}
.site-footer a:hover{color:white}
.fallback figcaption{padding:5px 9px;border-radius:5px;background:#faf7f0ed;color:var(--ink)}
.aida-call-dialog{background:#faf7f0fa;box-shadow:0 18px 65px #163b3030}
.aida-call-dialog::backdrop{background:#14291d20}
@media(min-width:1600px){.site-footer{margin:0;padding-inline:5vw}}
@media(max-width:1050px){.site-footer{margin:0;padding-inline:25px}}
@media(max-width:650px){.site-footer{margin:0;padding:7px 20px 4px}.scene-backdrop{background-position:51% center}}

/* While the models load, a light still of the same plaza holds the composition; the live scene fades in over it. */
.plaza-poster{position:fixed;inset:0;z-index:0;pointer-events:none;background:#2b2a22 url('./assets/plaza-poster-wide-v2.jpg') 50% 50%/cover no-repeat;filter:blur(6px) saturate(1.04);transform:scale(1.03);transition:opacity 1.2s ease .15s,visibility 0s 1.4s}
@media(max-aspect-ratio:4/5){.plaza-poster{background-image:url('./assets/plaza-poster-tall-v2.jpg')}}
.studio .viewport canvas{opacity:0;transition:opacity 1.1s ease}
.studio[data-scene=ready] .viewport canvas{opacity:1}
.studio[data-scene=ready] .plaza-poster{opacity:0;visibility:hidden}
.loading{top:auto;bottom:clamp(28px,7vh,64px);left:38%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100% - 32px));padding:11px 19px 11px 16px;border:1px solid #e4c17d40;border-radius:999px;background:#121a16bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f3ecdf;font-size:13px;letter-spacing:.02em;box-shadow:0 10px 30px #0b120e40}
.loading .loading-line{flex-shrink:0;width:42px;margin:0;background:#ffffff26}
.loading p{white-space:nowrap}
.loading.error{display:block;border-radius:16px;text-align:center}
.loading.error p{white-space:normal}
.loading .retry{border-color:#e4c17d66;color:#f3ecdf}
@media(max-width:699px){.loading{bottom:auto;top:46%;transform:translate(-50%,-50%)}}
