@font-face{font-family:Barlow;src:url('assets/fonts/Barlow-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Barlow;src:url('assets/fonts/Barlow-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Dancing Script';src:url('assets/fonts/DancingScript.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
body{font-family:Barlow,'Avenir Next',sans-serif;font-weight:500}
h1,h2,h3,.hero h1,.section-intro h2{font-family:Barlow,sans-serif;font-weight:900;letter-spacing:-.035em}
.brand .brand-name{font-family:'Dancing Script',cursive;font-size:34px;font-weight:700;letter-spacing:0;color:#ff91c2;text-shadow:0 0 13px #ff298d40;line-height:1.25}
.brand .brand-mark{width:25px;height:25px}.brand{gap:10px}.brand-sub{font-weight:500}
.intro-loading body{opacity:0;overflow:hidden}
#badge-flight video{display:none!important}
.model-hit{position:absolute;inset:12%;border:0;border-radius:50%;background:transparent;pointer-events:auto;touch-action:pan-y;cursor:grab}
.model-hit:active{cursor:grabbing}.model-hit:focus-visible{outline:2px solid var(--pink);outline-offset:6px}
.model-wake{position:absolute;inset:39%;border:1px solid #ff76b53d;border-radius:50%;background:transparent;pointer-events:auto;touch-action:none;cursor:pointer;animation:center-breathe 3s ease-in-out infinite}
#badge-flight .model-wake[hidden]{display:none!important}
.three-ready .badge-stage .badge,.three-ready badge-demo .demo-master{visibility:hidden}
.three-ready .hero-art .star{display:none}
.three-ready .hero-art{animation:none;max-width:420px;justify-self:center;width:100%;order:-1}
.three-ready .hero{grid-template-columns:1fr 1.05fr;gap:70px}
.three-ready .badge-stage{width:100%;aspect-ratio:1;padding:0}
.three-ready .hero-art .orbit-label{position:static;display:block;margin-bottom:8px;transform:none}
.three-ready .hero-copy{animation:none}
.model-description{display:none}.three-ready .model-description{display:block;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Entrance: the model arrives first. Type is a separate, delayed second layer. */
.badge-asleep body{overflow:hidden}
.badge-asleep .top{position:absolute;top:0;left:0;right:0;border:0;z-index:15;padding-top:20px;animation:type-reveal 1.2s 1.6s both}
.badge-asleep .top .top-link,.badge-asleep .brand-sub,.badge-asleep .skip{display:none}
.badge-asleep .top .brand-name{font-size:34px}
.badge-asleep .hero{display:flex;align-items:center;justify-content:center;min-height:100svh;padding:76px 24px 32px}
.badge-asleep .hero-copy,.badge-asleep main>:not(.hero),.badge-asleep footer,.badge-asleep .preview-controls,.badge-asleep #preview-status,.badge-asleep .orbit-label{display:none!important}
.badge-asleep .hero-art{width:min(84vw,450px);max-width:none;padding:0;margin:0}
.badge-asleep .wake-copy,.badge-asleep .wake-actions{display:block;position:relative;z-index:14;pointer-events:none;animation:type-reveal 1.3s 1.6s cubic-bezier(.16,1,.3,1) both}
.wake-copy .eyebrow{font-size:13px;margin-bottom:12px}.wake-copy h2{font-size:clamp(42px,4.4vw,60px);line-height:1.05;color:#f8e8f0}
.badge-asleep .badge-stage{margin:24px 0 16px}
.wake-prompt{font-size:15px;color:#ffc0df;margin:0 0 7px}.rotation-hint{font-size:12px;color:#a48f9c;margin:0}
.badge-asleep .model-hit{touch-action:none}
.badge-asleep .hero:before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 50% 48%,#71274524,transparent 55%);pointer-events:none}
@keyframes model-reveal{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}
@keyframes type-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes guide-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes center-breathe{0%,100%{border-color:#ff76b51a}50%{border-color:#ff76b56b}}
@media(max-width:760px){
 .brand .brand-name,.badge-asleep .top .brand-name{font-size:29px}.brand-sub{display:none}.top{padding:9px 20px}
 .three-ready .hero{display:flex;flex-direction:column;gap:18px;padding-top:20px}
 .three-ready .hero-art{max-width:230px;margin:0 auto;padding:0}
 .three-ready .hero-copy{width:100%}
 .three-ready .hero-art .orbit-label{font-size:8px;margin:0}
 .three-ready .preview-controls{margin-top:2px;margin-bottom:4px}
 .badge-asleep .hero{min-height:100svh;padding:78px 24px 24px;gap:0}
 .badge-asleep .hero-art{max-width:none;width:min(84vw,360px);order:0}
 .badge-asleep .badge-stage{margin:20px 0 15px}
 .wake-copy h2{font-size:42px}.wake-prompt{font-size:17px}.rotation-hint{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.badge-asleep #badge-flight,.badge-asleep .wake-copy,.badge-asleep .wake-actions,.badge-asleep .top,.three-ready .hero-copy,.model-wake{animation:none!important;opacity:1;filter:none;transform:none}}
/* The presentation windows are local to the document; there is no flight layer. */
.wake-copy,.wake-actions{display:none}
.embedded-badge{position:absolute;inset:0;pointer-events:none}
.embedded-badge .badge-window{display:block;width:100%;height:100%}
.embedded-badge canvas[hidden],.embedded-badge video{display:none!important}
.three-ready .badge-stage, .three-ready badge-demo{position:relative}
.three-ready badge-demo{display:block;width:100%;max-width:300px;aspect-ratio:1;margin:auto}
.three-ready .explorer.has-demo{grid-template-columns:.85fr 1.15fr;gap:45px;background:transparent;border:0;padding:24px 0}
.three-ready .demo-caption{font-size:14px;margin-top:14px}
.wake-copy h2 em{font-style:normal;color:var(--pink)}
body{font-size:18px}
p,.section-intro>p:not(.eyebrow),.explorer-slide>p,.personalize p,.product-content p{font-size:18px;line-height:1.6}
.hero .intro{font-size:21px}.hero-note{font-size:16px}
.eyebrow,.hero .eyebrow{font-size:13px}
.button,.preview-choice,.explorer-tab,.store strong{font-size:17px}
.explorer-slide h3{font-size:30px}
.details-body,.details-body p,.details-body li,.explorer-slide .details-body,.faq .details-body{font-size:17px}
summary,.faq summary,.explorer-slide summary{font-size:17px}
.micro,.format-note,.hero-art .micro,.download-note,.bonus-note,.swipe-hint,.slide-count,.motion-control{font-size:14px}
.top-link,.guide-nav a,.footer-links,footer p,.demo-caption{font-size:14px}
.footer-links span,.brand-sub,.orbit-label,.hero-art .orbit-label,.scene figcaption{font-size:12px}
.brand .brand-name,.badge-asleep .top .brand-name{font-size:38px}
@media(max-width:760px){
 .three-ready .hero h1{font-size:52px;line-height:1.04;max-width:none}
 .section-intro h2,.personalize h2{font-size:42px;line-height:1.08}
 .three-ready .explorer.has-demo{display:block;padding:18px 0}
 .three-ready badge-demo{max-width:270px}
 .three-ready .hero-art{max-width:260px}
 .brand .brand-name,.badge-asleep .top .brand-name{font-size:33px}
 .brand{gap:7px}.brand .brand-mark{width:22px;height:22px}
 .top-link{font-size:12px;max-width:58px}.top{gap:8px}
 .hero .intro{font-size:19px}.hero-note{font-size:16px}
 .explorer-tab{font-size:16px;padding:9px}.explorer-tab .ui-icon{width:22px;height:22px}
 .swipe-hint{font-size:13px}.explorer-slide h3{font-size:28px}
 .preview-choice{font-size:14px;min-height:42px}.hero-art .micro{font-size:13px}
 .wake-copy .eyebrow{font-size:12px}.wake-prompt{font-size:17px}.rotation-hint{font-size:15px}
}
@media(max-width:360px){.brand .brand-name,.badge-asleep .top .brand-name{font-size:30px}.top{padding-left:16px;padding-right:16px}.three-ready .hero h1{font-size:46px}.section-intro h2,.personalize h2{font-size:38px}.explorer-tab{font-size:15px;padding:8px}.swipe-hint{font-size:12px}}
@media(max-height:650px){.badge-asleep .hero-art{width:min(44vh,290px)}.wake-copy h2{font-size:34px}.badge-asleep .badge-stage{margin:10px 0}.wake-prompt{font-size:15px}.rotation-hint{font-size:13px}.badge-asleep .hero{padding-top:68px;padding-bottom:16px}}
.badge-asleep #badge-flight{animation:model-reveal 2.3s cubic-bezier(.22,1,.36,1) both}
@media(max-width:760px){.wake-copy h2{font-size:clamp(34px,10.6vw,46px)}}
@media(max-height:650px){.wake-copy h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){.badge-asleep #badge-flight{animation:none!important}}
.badge-asleep .hero-art{max-width:none}
@media(max-height:650px){.badge-asleep .hero-art{width:min(86vw,360px)}.badge-asleep .badge-stage{width:min(38svh,100%);margin:10px auto}.wake-copy h2{font-size:34px}}
.section-intro .eyebrow{font-size:13px}
.text-link,.app-heading p{font-size:16px}
.text-explorer .explorer-tab{font-size:16px}
.compact-steps li,.explorer-slide .details-body p,.explorer-slide .details-body li{font-size:17px}
.product-content .explorer-slide>p,.steps p{font-size:18px}
.personalize .micro,.keep-note p{font-size:14px}
.store small{font-size:12px}
.ticker .ticker-copy{font-size:12px}
@media(max-width:760px){.top-link span{display:none}.top-link{white-space:normal;flex:0 0 52px}}
/* Crown-led centered wordmark; the entrance wordmark lives on the badge screen. */
.top{display:grid;grid-template-columns:1fr auto 1fr;padding:12px 32px;gap:12px}
.brand{grid-column:2;gap:8px;justify-self:center;letter-spacing:0}
.brand .brand-mark{width:64px;height:64px}
.brand .brand-name{font-size:28px}
.top-link{grid-column:3;justify-self:end}
.badge-asleep .top{display:none}
.three-ready .hero-art{max-width:520px;padding-top:0}
.three-ready .hero{gap:48px}
.badge-asleep .hero{padding:40px 24px;gap:0}
.badge-asleep .hero-art{width:min(90vw,500px,50svh);max-width:none}
.badge-asleep .badge-stage{width:100%;margin:22px auto 14px}
.badge-asleep .wake-copy{width:max-content;max-width:92vw;left:50%;transform:translateX(-50%);animation:welcome-type 1.3s 1.6s both}
.wake-copy h2{font-size:clamp(40px,4.4vw,62px)}
.wake-actions{transition:opacity .22s ease}
.badge-opening .wake-copy,.badge-opening .wake-actions{opacity:0!important;animation:none!important}
.badge-opening body{overflow:hidden}
.badge-opening .hero{overflow:visible}
.badge-opening .embedded-badge{z-index:20}
.badge-opening .model-hit,.badge-opening .model-wake{pointer-events:none}
#badge-flight{transform-origin:0 0}
.badge-opening:not(.badge-asleep) .top,
.badge-opening:not(.badge-asleep) .hero-copy,
.badge-opening:not(.badge-asleep) .orbit-label,
.badge-opening:not(.badge-asleep) main>:not(.hero),
.badge-opening:not(.badge-asleep) footer{animation:guide-arrive .7s .3s cubic-bezier(.22,1,.36,1) both}
.demo-caption{justify-content:center}
@keyframes welcome-type{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:760px){
 .top{padding:8px 16px;gap:6px;grid-template-columns:1fr auto 1fr}
 .brand{gap:5px}.brand .brand-mark{width:56px;height:56px}.brand .brand-name{font-size:25px}
 .top-link{font-size:11px;max-width:50px}
 .three-ready .hero{gap:20px;padding-top:14px}
 .three-ready .hero-art{max-width:380px;margin:0 auto}
 .badge-asleep .hero{padding:26px 16px;gap:0}
 .badge-asleep .hero-art{max-width:none;width:min(90vw,420px,50svh)}
 .wake-copy h2{font-size:clamp(38px,10.6vw,48px)}
}
@media(max-height:650px){
 .badge-asleep .hero{padding:20px 16px}
 .badge-asleep .badge-stage{margin:12px auto}
 .wake-copy h2{font-size:34px}
 .badge-asleep .hero-art{width:min(86vw,43svh)}
}
@media(prefers-reduced-motion:reduce){
 .badge-asleep .wake-copy{animation:none!important;transform:translateX(-50%)}
 .badge-opening .top,.badge-opening .hero-copy,.badge-opening .orbit-label,.badge-opening main>:not(.hero),.badge-opening footer{animation:none!important}
 .wake-actions{transition:none}
}
.hero-copy h1[tabindex="-1"]:focus{outline:none}
.model-wake{border:0;animation:none}
.tilt-control{display:block;margin:9px auto 0;padding:7px 12px;min-height:36px;border:1px solid #ff76b533;border-radius:999px;background:transparent;color:#ffb8da;font:500 14px Barlow,sans-serif;pointer-events:auto;cursor:pointer}
.tilt-control[hidden]{display:none}
.tilt-control:disabled{border-color:transparent;color:#ad8d9e;cursor:default}
.tilt-control:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.badge-opening .tilt-control{pointer-events:none}
@media(max-height:650px){.tilt-control{margin-top:5px;min-height:32px;padding-top:5px;padding-bottom:5px}.badge-asleep .hero-art{width:min(86vw,39svh)}}
