/* Lumi belongs to the marketing visit. Working surfaces remain quiet. */
.luvi-sprite{position:relative;display:block;width:108px;aspect-ratio:1.5;isolation:isolate;perspective:350px;transform:rotate(var(--flight-bank,0deg));transition:rotate 180ms ease-out}
.luvi-sprite .luvi-body,.luvi-sprite .luvi-wing,.luvi-sprite .luvi-tail-light{position:absolute;inset:0;background:url('/assets/firefly-approved.png') center/contain no-repeat;transform-origin:51% 58%;pointer-events:none}
.luvi-figure{position:absolute;inset:0;transform-origin:50% 50%;transform:rotateY(var(--flight-yaw,0deg));pointer-events:none}
.luvi-sprite .luvi-body{clip-path:polygon(57% 0,86% 0,86% 80%,47% 99%,29% 96%,32% 77%,48% 62%,50% 54%,46% 50%,48% 34%,56% 31%);z-index:3}
.luvi-sprite .luvi-wing-far{clip-path:polygon(25% 17%,43% 16%,54% 54%,51% 63%,41% 56%,24% 37%);z-index:1;animation:luvi-far-wing 220ms ease-in-out infinite alternate paused}
.luvi-sprite .luvi-wing-near{clip-path:polygon(15% 39%,33% 35%,49% 53%,52% 63%,40% 68%,20% 64%);z-index:2;animation:luvi-near-wing 190ms ease-in-out infinite alternate paused}
.luvi-sprite .luvi-tail-light{inset:auto;left:31%;top:75%;width:17%;height:19%;border-radius:50%;background:#ffc95a;filter:blur(9px);opacity:.6;z-index:0}
.is-flying .luvi-wing,.luvi-stage-sprite .luvi-wing{animation-play-state:running}
.luvi-companion{position:fixed;left:0;top:0;z-index:40;pointer-events:none;opacity:0;transition:opacity 200ms ease-out;will-change:transform;filter:drop-shadow(0 8px 9px #5842241a)}
.luvi-companion.is-visible{opacity:1}
.luvi-companion .luvi-sprite{width:54px;transform-origin:50% 50%;transform:rotate(var(--flight-heading,0deg));transition:none}
.luvi-companion .luvi-tail-light{left:calc(31% + var(--flight-tail-x,0%));filter:blur(4px)}
.luvi-companion .luvi-sprite.luvi-3d{transform:none;perspective:none}
.luvi-3d canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.luvi-companion-toggle{position:fixed;bottom:18px;right:22px;z-index:39;display:flex;align-items:center;gap:8px;padding:7px 12px;min-height:34px;border:1px solid #e6dfd3;border-radius:12px;background:#fbfaf8ed;color:#88755a;font-size:11px;box-shadow:0 3px 12px #5e432908}
.luvi-companion-toggle::before{content:'';width:5px;height:5px;border-radius:50%;background:#edb448;box-shadow:0 0 8px #efbe5466}
.luvi-companion-toggle[aria-pressed=false]::before{background:#b3aa9b;box-shadow:none}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.luvi-companion-toggle{display:none}}
@keyframes luvi-far-wing{from{transform:rotateX(-18deg) rotateZ(-5deg)}to{transform:rotateX(42deg) rotateZ(5deg)}}
@keyframes luvi-near-wing{from{transform:rotateY(-12deg) rotateZ(4deg)}to{transform:rotateY(40deg) rotateZ(-7deg)}}
.faq-list details{overflow:clip;position:relative}
.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:28px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'';width:8px;height:8px;border:1.5px solid currentColor;border-top:0;border-left:0;transform:rotate(45deg);transition:transform 260ms cubic-bezier(.22,1,.36,1);flex:none;margin-right:4px;opacity:.6}
.faq-list details[data-expanded=true] summary::after{transform:rotate(225deg)}
.faq-answer{padding-top:1px}.faq-answer p{margin-bottom:2px}
.site-option,.social-tile,.text-link,.preview-days span,.site-header nav a{transition:background-color 180ms ease,border-color 180ms ease,transform 220ms cubic-bezier(.22,1,.36,1),box-shadow 220ms ease,color 180ms ease}
.site-option img,.social-tile img{transition:transform 240ms cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.site-option:hover{border-color:#d7c49e;background:#fffaf0}.site-option:hover img,.social-tile:hover img{transform:translateY(-2px) rotate(-4deg)}.social-tile:hover{box-shadow:0 5px 12px #5842240d;transform:translateY(-2px)}.text-link:hover{color:#8b621b;transform:translateX(2px)}.preview-days label:hover span{border-color:#cdb587;transform:translateY(-1px)}}
.primary:active,.secondary:active{transform:scale(.98)}
.motion-reveal{transition:opacity 600ms cubic-bezier(.22,1,.36,1),translate 600ms cubic-bezier(.22,1,.36,1)}
.motion-reveal.is-waiting{opacity:0;translate:0 14px}
.hero-copy{animation:luvi-hero-entry 700ms cubic-bezier(.22,1,.36,1) both}.hero-scene{animation:luvi-hero-entry 850ms cubic-bezier(.22,1,.36,1) both}
@keyframes luvi-hero-entry{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
.luvi-preview-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:550;margin-top:20px;text-decoration:none;color:#776349}
.luvi-preview-link svg{width:18px;height:18px;transition:transform 200ms ease-out}.luvi-preview-link:hover svg{transform:translateX(3px)}
.luvi-curtain{border:0;padding:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:radial-gradient(ellipse at 34% 47%,#3c2e1920,transparent 40%),#10110ff7;color:#faf7ee;overflow:auto;color-scheme:dark}
.luvi-curtain::backdrop{background:#080908ed;backdrop-filter:blur(8px)}
.luvi-curtain[open]{animation:luvi-darken 380ms ease-out both}
@keyframes luvi-darken{from{opacity:0}to{opacity:1}}
.luvi-curtain .scene-top{display:flex;justify-content:space-between;align-items:center;max-width:1120px;margin:auto;padding:30px 32px;color:#a6a294;font-size:12px}
.scene-top .network-name{font-size:12px}.scene-top button{background:transparent;border:1px solid #45443a;color:#c2bfb3;border-radius:12px;padding:7px 12px;min-height:36px;font-size:12px}
.luvi-night-scene{display:grid;grid-template-columns:260px minmax(0,470px);align-items:center;gap:50px;max-width:900px;min-height:calc(100dvh - 180px);padding:40px 35px;margin:auto}
.luvi-lantern{position:relative;display:grid;place-items:center;min-height:320px;isolation:isolate}
.luvi-lantern::before{content:'';position:absolute;inset:-120px;background:radial-gradient(ellipse at 39% 57%,#ffd17424 0,#edb9530b 28%,transparent 64%);pointer-events:none}
.luvi-lantern .luvi-sprite{width:290px;filter:drop-shadow(0 0 20px #f9bd4b20);animation:luvi-land 850ms cubic-bezier(.22,1,.36,1) both}
.luvi-lantern .luvi-tail-light{filter:blur(18px);opacity:.95;box-shadow:0 0 80px 25px #ffca563b}
@keyframes luvi-land{from{opacity:0;translate:-35px 14px;rotate:-10deg}to{opacity:1;translate:0 0;rotate:0deg}}
.night-copy{position:relative}.night-copy .eyebrow{color:#f1c36c;font-size:10px;letter-spacing:1.5px;margin-bottom:20px}.night-copy h1{color:#fff9e9;font-size:clamp(32px,4vw,48px);font-weight:550;letter-spacing:-1.6px;line-height:1.1;margin:0 0 22px;text-shadow:0 0 55px #ffcc6118}
.night-copy>p{font-size:15px;line-height:1.8;color:#b9b5a8;max-width:390px}.night-copy strong{color:#ece6d6;font-weight:500}
.return-paths{margin-top:32px;display:grid;gap:10px}.return-paths button{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;background:#ffffff04;border:1px solid #474334;border-radius:12px;color:#ece5d7;text-align:left;font-size:13px;transition:background 180ms ease,border-color 180ms ease,translate 220ms ease}.return-paths button:hover{background:#f6c76b0c;border-color:#ac8a48;translate:2px 0}.return-paths button>svg{width:20px;height:20px;flex:none}.return-paths .return-arrow{margin-left:auto;color:#e9c579}
.night-copy .scene-caption{font-size:10px;color:#9b978a;margin-top:16px;line-height:1.8}.scene-footer{max-width:1120px;padding:20px 32px;margin:auto;display:flex;justify-content:space-between;color:#918c7e;font-size:11px}
@media(max-width:650px){.luvi-night-scene{grid-template-columns:1fr;gap:0;padding:0 26px 32px;min-height:auto;max-width:480px}.luvi-lantern{min-height:210px}.luvi-lantern .luvi-sprite{width:215px}.night-copy h1{font-size:34px}.scene-top{padding:22px!important}.scene-footer{padding:20px 26px}.return-paths{margin-top:22px}}
@media(prefers-reduced-motion:reduce){.luvi-companion{display:none}.luvi-sprite .luvi-wing{animation:none!important}.motion-reveal.is-waiting{opacity:1;translate:none}.hero-copy,.hero-scene,.luvi-curtain,.luvi-lantern .luvi-sprite{animation:none!important}*,*::before,*::after{transition:none!important}}
@media(forced-colors:active){.luvi-companion{display:none}.luvi-curtain{background:Canvas;color:CanvasText}.night-copy h1,.night-copy p,.night-copy strong,.scene-caption{color:CanvasText}.return-paths button{color:ButtonText;border-color:ButtonText}}
