@font-face{font-family:Aileron;src:url('/assets/aileron-0.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Aileron;src:url('/assets/aileron-1.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--purple:#44188f;--ink:#30203f;--lavender:#ab91ce;--paper:#f5f1fa;--line:#49345d38}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;overflow-x:clip}
body{font:16px Aileron,Arial,sans-serif;background:#453355;color:var(--ink)}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit;text-decoration:none}
button{color:inherit;border:0;background:none;cursor:pointer}
a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:5px}
a:hover,button:hover{color:var(--purple)}
.journey{height:100svh;position:relative}
.train-motion .journey{height:300svh}
.page{position:sticky;top:0;height:100svh;display:grid;grid-template-rows:96px minmax(0,1fr);isolation:isolate;overflow:hidden;background:var(--lavender)}
.artwork{position:absolute;inset:0;z-index:-4;background:url('/assets/violet-landscape.png') center/cover no-repeat}
.artwork:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#30204408,#30204424 40%,transparent 75%)}
.site-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;gap:24px;font-size:14px}
.brand{display:flex;align-items:center;gap:12px;font-size:26px;letter-spacing:-.8px}
.logo-mark{display:block;width:60px;aspect-ratio:100/37;background:currentColor;mask:url('/assets/logo.svg') center/contain no-repeat;-webkit-mask:url('/assets/logo.svg') center/contain no-repeat}
.brand .logo-mark{color:var(--purple)}
nav{display:flex;gap:36px;align-items:center;margin-left:auto;margin-right:36px}
nav button{padding:12px 0}
.header-key{display:flex;gap:28px;align-items:center;border:1px solid currentColor;padding:12px 17px;border-radius:2px}
main{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 6vw 18svh}
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;color:#fffbff}
.hero-logo{width:clamp(220px,25vw,365px);margin-bottom:32px;filter:drop-shadow(0 2px 24px #44315e18)}
h1{font-size:clamp(34px,3.6vw,58px);line-height:1.05;letter-spacing:-.045em;font-weight:400;margin:0 0 30px;text-shadow:0 2px 25px #32204550}
h2{font-size:clamp(26px,2.4vw,38px);line-height:1.08;letter-spacing:-.045em;font-weight:400;margin:0}
.primary{background:var(--paper);color:var(--purple);display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:15px 19px;border:1px solid #ffffff80;border-radius:2px;font-size:14px;white-space:nowrap;transition:background .2s,transform .2s}
.primary:hover{background:white;transform:translateY(-2px)}
.connect{font-size:14px;display:flex;align-items:center;gap:32px;padding:15px 21px;border:1px solid #ffffffa6;border-radius:2px;white-space:nowrap;color:var(--purple);background:#f8f3faed;box-shadow:0 3px 24px #2c173718;transition:background .2s,transform .2s}
.connect:hover{color:var(--purple);background:white;transform:translateY(-2px)}
.train-scene{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
#train-canvas{display:block;width:100%;height:100%}
.site-footer{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:65px;padding:48px 5.5vw 28px;color:#34465d;background:#e3eaf0;min-height:255px}
#footer-carriage{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.85}
.footer-body{display:flex;justify-content:space-between;align-items:center;gap:30px;position:relative}
.footer-body h2{font-size:clamp(22px,2.25vw,34px);line-height:1.15;letter-spacing:-.035em}
.hello-link{font-size:clamp(18px,1.65vw,24px);display:flex;align-items:center;gap:24px;letter-spacing:-.02em}
.hello-link span{font-size:17px}
.site-footer a:hover{color:#142c4a;text-decoration:underline;text-underline-offset:5px}
.footer-meta{border-top:1px solid #3a526426;padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}
.footer-meta>div{display:flex;gap:24px}
.footer-meta>span{color:#53657b}
.intro-screen{display:none;position:fixed;inset:0;z-index:100;background:#665673 url('/assets/maglev-linen.png') left top/auto 400%;overflow:hidden}
.intro-screen img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(140px,29vw,350px);height:auto;filter:invert(1);object-fit:contain}
.intro-screen button{position:absolute;right:4.5vw;bottom:30px;color:white;font-size:13px;display:flex;gap:25px}
.loading .intro-screen{display:block;animation:loader-exit .7s cubic-bezier(.76,0,.24,1) 1.25s forwards}
.loading .page{animation:page-enter .85s ease 1.3s both;pointer-events:none}
@keyframes loader-exit{to{opacity:0;transform:translateY(-4%);visibility:hidden}}
@keyframes page-enter{from{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
dialog{width:min(650px,calc(100vw - 32px));max-height:calc(100dvh - 40px);border:1px solid #bbaec8;border-radius:3px;background:#f6f2fa;color:var(--ink);padding:42px;box-shadow:0 22px 100px #2e17473d;overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:#35244659;backdrop-filter:blur(10px)}
html:has(dialog[open]){overflow-y:hidden}
.close{position:absolute;right:14px;top:9px;font-size:30px;width:38px;height:38px}
.dialog-label{font-size:12px;color:#776384;margin:0 0 16px}
dialog h2{font-size:38px;margin-bottom:20px}
dialog p{font-size:15px;line-height:1.55}
dialog .fine-print{font-size:12px;color:#796a85;margin-top:20px}
.how-list{list-style:none;margin:28px 0;padding:0}
.how-list li{display:flex;gap:20px;padding:17px 0;border-top:1px solid var(--line)}
.how-list li>span{font-size:12px;color:#8f74ad;padding-top:4px}
.how-list h3{font-size:17px;font-weight:400;margin:0 0 5px}
.how-list p{font-size:14px;margin:0;color:#716078}
.purple{background:var(--purple);color:white;border-color:var(--purple)}
.purple:hover{background:#582a9e;color:white}
.agent-instruction{background:#eae1f2;padding:18px;margin:24px 0;border:1px solid #d8c9e7}
.agent-instruction p{overflow-wrap:anywhere;font-size:14px;margin:0 0 18px}
.agent-instruction button{font-size:13px;color:var(--purple);padding:0}
.dialog-link{font-size:13px;margin-left:20px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){nav{gap:22px;margin-right:14px}.primary{gap:22px}}
@media(max-width:760px){.page{grid-template-rows:82px minmax(0,1fr)}.site-header{padding:0 6vw;gap:12px}.brand{font-size:23px;gap:10px}.brand .logo-mark{width:48px}.site-header nav{display:none}.header-key{font-size:12px;padding:10px 12px;gap:15px}main{padding:0 7vw 17svh}.hero-logo{width:clamp(210px,65vw,290px);margin-bottom:28px}h1{font-size:clamp(30px,7.5vw,42px);margin-bottom:26px}.connect{font-size:13px;padding:14px 20px;gap:28px}.artwork{background-position:46% center}.site-footer{min-height:280px;gap:48px;padding:34px 7vw 24px}.footer-body{align-items:flex-start;flex-direction:column;gap:18px}.footer-body h2{font-size:25px}.hello-link{font-size:19px}.footer-meta{font-size:10px;gap:12px;padding-top:18px}.footer-meta>div{gap:17px}.intro-screen button{right:7vw}dialog{padding:35px 25px}dialog h2{font-size:32px}.dialog-link{display:block;margin:20px 0 0}}
@media(max-width:360px){.brand{font-size:22px}.brand .logo-mark{width:42px}.header-key{padding:9px 10px;gap:10px}.hero-logo{width:200px}.footer-body h2{font-size:22px}.footer-meta{font-size:9px}.footer-meta>div{gap:12px}}
@media(max-height:700px){.page{grid-template-rows:72px minmax(0,1fr)}main{padding-bottom:12svh}.hero-logo{width:clamp(170px,23vw,270px);margin-bottom:24px}h1{font-size:clamp(30px,3.8vw,46px);margin-bottom:24px}}
@media(max-height:460px){.page{grid-template-rows:60px minmax(0,1fr)}main{padding-bottom:7svh}.hero-logo{width:175px;margin-bottom:15px}h1{font-size:30px;margin-bottom:18px}.site-header{font-size:12px}.site-header .brand{font-size:23px}.site-header .logo-mark{width:47px}.header-key{padding:10px 12px;gap:18px}.connect{font-size:12px;padding:11px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.intro-screen{display:none!important}.loading .page{pointer-events:auto}}

/* Agent handoff. Keep the approved landscape and train composition intact. */
[hidden]{display:none!important}
.agent-picker{position:relative;width:236px;color:#33223f;text-align:left}
.connect-split{display:flex;width:236px;height:48px;border-radius:8px;background:#fdfbff;box-shadow:0 2px 5px #27153912,0 8px 22px #27153912}
.connect-split .connect{height:48px;flex:1;min-width:0;justify-content:center;padding:0 19px;border:0;border-radius:8px 0 0 8px;background:transparent;box-shadow:none;color:#33223f;font-size:14px;transform:none}
.connect-split .connect:hover,.agent-toggle:hover{background:#49275809}
.agent-toggle{width:48px;height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:center;position:relative;border-left:1px solid #4d315f18;border-radius:0 8px 8px 0;padding:0}
.agent-toggle img{width:24px;height:24px;object-fit:contain}
.agent-caret{position:absolute;right:3px;bottom:4px;width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:1.5;opacity:.65}
.agent-menu{position:fixed;z-index:20;width:236px;padding:6px;border:1px solid #eae5ee;border-radius:11px;background:#fffefe;color:#251c30;box-shadow:0 4px 10px #20133110,0 16px 34px #20133126;overflow-y:auto;overscroll-behavior:contain;text-align:left}
.agent-option{display:flex;align-items:center;width:100%;gap:11px;min-height:41px;padding:9px 10px;border-radius:6px;font-size:14px;text-align:left;line-height:1.4}
.agent-option:hover,.agent-option:focus-visible{background:#f3eff7;color:#251c30;outline:none}
.agent-option:focus-visible{box-shadow:inset 0 0 0 2px #a68cbd}
.agent-option img{width:22px;height:22px;object-fit:contain;flex:0 0 22px}
.agent-option>span:not(.agent-check){flex:1}
.agent-check{font-size:14px;color:#756d7e;visibility:hidden}
.agent-option[aria-checked=true] .agent-check{visibility:visible}
.agent-divider{margin:5px 6px;border-top:1px solid #eae5ee}
.terminal-option{font-size:13px;color:#756d7e}
.terminal-option svg{width:17px;height:17px;margin:0 3px;fill:none;stroke:currentColor;stroke-width:1.5}
.terminal-option>span:last-child{flex:0;font-size:18px}
.agent-back{min-height:32px;font-size:13px;color:#756d7e}
.agent-back>span:first-child{flex:0;font-size:18px}
.agent-option small{font-size:11px;letter-spacing:.5px;color:#756d7e}
/* Handoff status stays below the button; it is never an extra launch step. */
.connection-handoff{position:fixed;max-height:calc(100dvh - 24px);overflow:auto;width:min(330px,calc(100vw - 32px));padding:16px 18px;border:1px solid #ffffff80;border-radius:10px;background:#fffdf9ef;box-shadow:0 8px 24px #27153912;text-align:left;z-index:3;color:#33223f}
.connection-handoff p{margin:0;font-size:14px;line-height:1.5}
.connection-handoff .handoff-detail{margin-top:5px;font-size:12px;color:#75677c}
.handoff-links{display:flex;align-items:center;gap:16px;margin-top:12px;color:#66516f;font-size:11px}
.handoff-links a{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.handoff-links button{margin-left:auto;padding:0 4px;font-size:17px;color:#75677c}
@media(max-width:760px){.agent-option{min-height:44px}}
