:root{--accent:#6f4bb8;--ink:#1f1f26;--muted:#6f6679;--paper:#f7f5fa;--gutter:24px;--title:clamp(37px,10.2vw,48px);--radius:14px;--offer-opacity:1;--progress:0;--built:0;--open:0;--stage-height:100svh}*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:clip}body{font-family:Arial,sans-serif;background:var(--paper);color:var(--ink);touch-action:pan-y pinch-zoom}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a97fe0;outline-offset:5px}button:disabled{cursor:default}.story{position:relative}.stage{position:relative;min-height:100svh;isolation:isolate;overflow:clip;padding:110px var(--gutter) 36px}.atmosphere{position:absolute;z-index:-2;inset:0;background:radial-gradient(ellipse at 2% 62%,#b89ed338 0%,transparent 38%),radial-gradient(ellipse at 92% 22%,#bda4df50,transparent 43%),radial-gradient(ellipse at 37% 0%,#fff 12%,transparent 47%),radial-gradient(ellipse at 65% 100%,#d1bfde44,transparent 38%),#f7f5fa}.atmosphere:after{content:"";position:absolute;inset:-20%;background:linear-gradient(127deg,transparent 22%,#ffffff75 28%,transparent 41%);transform:rotate(-7deg)}.header{position:absolute;z-index:5;top:max(22px,env(safe-area-inset-top));left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between}.brand img{width:112px;height:auto;display:block}.terms-link{border:0;background:transparent;color:#5e4a75;font-size:13px;min-height:44px;padding:0 0 0 12px}.terms-link span{font-size:18px;margin-left:5px}.visual{position:relative;height:300px;width:100%;margin-bottom:20px;pointer-events:none}.poster{position:absolute;inset:0;display:block}.poster img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.visual canvas{display:none;width:100%;height:100%}.offer{position:relative;z-index:3;max-width:510px;margin:auto;text-align:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.13em;color:#80668d;margin:0 0 18px;line-height:1.4}h1{font-size:var(--title);font-weight:700;line-height:1.02;letter-spacing:-.05em;margin:0}h1 span{color:var(--accent)}.intro{font-size:17px;line-height:1.4;letter-spacing:-.02em;max-width:340px;margin:22px auto 0}.economy{display:grid;grid-template-columns:1fr 1fr 1fr;gap:17px;list-style:none;padding:0;margin:27px 0 24px}.economy li{position:relative;text-align:center;min-width:0}.economy li+li:before{content:'→';position:absolute;left:-14px;top:2px;font-size:13px;color:#9c81b5}.economy strong{display:block;white-space:nowrap;color:#5f3f91;font-size:17px;line-height:1.2;letter-spacing:-.03em}.economy span{display:block;font-size:10px;color:var(--muted);margin-top:7px;line-height:1.3}.cta{border:0;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:57px;background:var(--accent);color:white;padding:8px 12px 8px 20px;font-size:17px;box-shadow:0 12px 24px #7750a51e}.cta span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#ffffff21;font-size:26px}.cta:hover{background:#5e399f}.disclaimer{font-size:11px;line-height:1.5;color:#716777;margin:15px auto 0}.scroll-cue,.assembly-caption,.progress{display:none}.no-js-terms{max-width:560px;padding:20px;margin:auto}.no-js-terms p{font-size:15px;line-height:1.5}
/* Motion is an enhancement: text and a static assembly are the default. */
html[data-mode="loading"] .story,html[data-mode="webgl"] .story{height:calc(var(--stage-height)*1.55)}html[data-mode="loading"] .stage,html[data-mode="webgl"] .stage{height:var(--stage-height);min-height:0;position:sticky;top:0;padding:0}html[data-mode="loading"] .visual,html[data-mode="webgl"] .visual{position:absolute;inset:0;height:100%;margin:0}html[data-mode="loading"] .poster,html[data-mode="webgl"] .poster{inset:72px 10px 88px}html[data-mode="loading"] .offer,html[data-mode="webgl"] .offer{position:absolute;top:50%;left:var(--gutter);right:var(--gutter);transform:translateY(-46%);opacity:var(--offer-opacity);pointer-events:none}html[data-mode="webgl"] .offer[data-visible="true"]{pointer-events:auto}html[data-mode="webgl"] .visual canvas{display:block}html[data-mode="webgl"] .poster{display:none}html[data-mode="loading"] .scroll-cue,html[data-mode="webgl"] .scroll-cue{display:flex;position:absolute;z-index:4;bottom:max(23px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);align-items:center;gap:13px;background:transparent;border:0;padding:10px;color:#715489;font-size:12px;white-space:nowrap;opacity:calc(1 - var(--open));pointer-events:auto}.cue-arrow{font-size:21px}html[data-mode="loading"] .assembly-caption,html[data-mode="webgl"] .assembly-caption{display:grid;position:absolute;z-index:3;top:87px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.02em;color:#806c91;opacity:calc(1 - var(--open))}.assembly-caption span{grid-area:1/1}.caption-start{opacity:calc(1 - var(--built))}.caption-built{opacity:var(--built)}html[data-mode="webgl"] .progress{display:block;position:absolute;z-index:4;bottom:0;left:0;right:0;height:2px;background:#d9cce933}.progress i{display:block;height:100%;width:100%;transform:scaleX(var(--progress));transform-origin:left;background:#9c79c9}
dialog{width:min(490px,calc(100% - 28px));max-height:calc(100svh - 30px);border:1px solid #e8e0ef;border-radius:22px;padding:32px 28px 25px;color:var(--ink);background:#fff;box-shadow:0 25px 90px #24153b44;overflow:auto}dialog::backdrop{background:#27193c91;backdrop-filter:blur(6px)}.close{position:absolute;right:12px;top:12px;width:37px;height:37px;border:0;border-radius:50%;background:#f1eaf8;color:var(--accent);font-size:26px}dialog .eyebrow{text-align:left;font-size:10px;padding-right:35px;margin-bottom:23px}h2{font-size:27px;line-height:1.08;letter-spacing:-.04em;margin:0 0 24px}h2 span{color:var(--accent)}.term{padding:15px 0;border-top:1px solid #eee8f3}h3{font-size:18px;color:#654492;margin:0 0 7px}.term p{font-size:15px;line-height:1.4;margin:0}.total{font-size:17px;margin:16px 0 0;padding-left:11px;border-left:2px solid #ceb157}
@media(max-width:360px){:root{--gutter:20px;--title:36px}.brand img{width:100px}.intro{font-size:16px;margin-top:18px}.eyebrow{margin-bottom:14px;font-size:9px}.economy{gap:14px;margin:22px 0}.economy strong{font-size:16px}.economy span{font-size:9px}.cta{font-size:16px}.disclaimer{font-size:10px}}
@media(max-height:720px) and (max-width:599px){:root{--title:34px}.intro{font-size:15px;margin-top:15px}.eyebrow{margin-bottom:13px}.economy{margin:20px 0}.cta{min-height:52px}.disclaimer{margin-top:11px}.assembly-caption{top:76px!important}}
@media(min-width:600px){:root{--gutter:40px;--title:56px}.brand img{width:124px}.offer{max-width:560px}.intro{font-size:21px;max-width:430px;margin-top:25px}.economy{margin:32px auto 27px;max-width:455px;gap:28px}.economy strong{font-size:22px}.economy span{font-size:12px}.economy li+li:before{left:-22px;top:4px;font-size:17px}.cta{max-width:380px;margin:auto;min-height:60px;font-size:19px}.disclaimer{font-size:12px}.eyebrow{font-size:11px}.visual{height:400px}.terms-link{font-size:14px}}
@media(min-width:1000px){:root{--gutter:48px;--title:66px}.header{max-width:1300px;margin:auto}.offer{max-width:650px}.intro{font-size:22px;max-width:475px}.eyebrow{margin-bottom:21px}.visual{height:420px}html[data-mode="static"] .stage{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1600px;margin:auto}html[data-mode="static"] .visual{height:70svh}html[data-mode="static"] .offer{max-width:600px}html[data-mode="webgl"] .offer{transform:translateY(-45%)}html[data-mode="webgl"] .assembly-caption{top:98px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* The scroll cue carries the state label without crossing the upper 3D plaque. */
html[data-mode="loading"] .assembly-caption,html[data-mode="webgl"] .assembly-caption{display:none}

/* Broad light pools retain the white/lavender studio without texture noise. */
.atmosphere{background:radial-gradient(ellipse at 45% 35%,#fff 0%,#ffffffbf 16%,transparent 43%),radial-gradient(ellipse at 95% 50%,#b9a2d56b,transparent 54%),radial-gradient(ellipse at 8% 77%,#cab8df70,transparent 41%),radial-gradient(ellipse at 15% 4%,#ded3eb77,transparent 37%),#f5f1f8}
/* Three short chapters share the same pinned world. */
:root{--hero-opacity:1;--quality-opacity:0;--hero-shift:0px;--quality-shift:18px;--terms-shift:18px}
.chapter{max-width:540px;margin:0 auto;text-align:center}.chapter h2{font-size:var(--title);line-height:1.04;letter-spacing:-.05em;margin:0}.quality-copy h3{font-size:18px;line-height:1.25;margin:0 0 9px;color:#62418f}.quality-copy p{font-size:16px;line-height:1.45;margin:0;color:#5b5165}.quality-beats{position:relative;margin:24px auto 0;max-width:360px}.quality-beat{padding:20px 0}.beat-dots{display:none}
html[data-mode="loading"] .story,html[data-mode="webgl"] .story{height:calc(var(--stage-height)*3.62)}
html[data-mode="loading"] .chapter,html[data-mode="webgl"] .chapter{position:absolute;z-index:3;left:var(--gutter);right:var(--gutter);margin:auto;pointer-events:none}
html[data-mode="loading"] .hero-copy,html[data-mode="webgl"] .hero-copy{top:54%;opacity:var(--hero-opacity);transform:translateY(var(--hero-shift))}
html[data-mode="loading"] .quality-copy,html[data-mode="webgl"] .quality-copy{top:57%;opacity:var(--quality-opacity);transform:translateY(var(--quality-shift))}
html[data-mode="loading"] .quality-beats,html[data-mode="webgl"] .quality-beats{height:94px;margin-top:22px}
html[data-mode="loading"] .quality-beat,html[data-mode="webgl"] .quality-beat{position:absolute;inset:0;padding:0;opacity:var(--beat-opacity,0);transform:translateY(var(--beat-shift,0px))}
html[data-mode="webgl"] .beat-dots{display:flex;justify-content:center;gap:7px;margin-top:12px}.beat-dots i{width:5px;height:5px;border-radius:100%;background:#b9a9ca}.beat-dots i.active{background:var(--accent);width:17px;border-radius:4px}
html[data-mode="loading"] .offer,html[data-mode="webgl"] .offer{top:50%;transform:translateY(calc(-46% + var(--terms-shift)));opacity:var(--offer-opacity)}
html[data-mode="webgl"] .chapter[data-visible="true"]{pointer-events:auto}
html[data-mode="loading"] .poster{inset:88px 16px 50%}
html[data-mode="static"] .stage{display:block;padding-top:100px;max-width:none}html[data-mode="static"] .visual{height:260px;margin:0 auto 24px}html[data-mode="static"] .chapter{opacity:1;transform:none;position:relative;padding:24px 0 42px}html[data-mode="static"] .quality-copy{margin-top:35px;border-top:1px solid #d8cde7}html[data-mode="static"] .offer{margin-top:15px;border-top:1px solid #d8cde7;padding-bottom:0}html[data-mode="static"] .quality-beat{opacity:1;transform:none}html[data-mode="static"] .quality-copy h2,html[data-mode="static"] .offer h2{font-size:var(--title)}
@media(max-height:720px) and (max-width:599px){html[data-mode="webgl"] .hero-copy{top:51%}.chapter h2{font-size:31px}html[data-mode="webgl"] .quality-copy{top:54%}.quality-copy h3{font-size:16px}.quality-copy p{font-size:14px}.quality-beats{margin-top:15px!important}html[data-mode="webgl"] .quality-beats{height:90px}.beat-dots{margin-top:3px!important}}
@media(min-width:600px){.chapter{max-width:650px}.quality-copy h3{font-size:23px}.quality-copy p{font-size:19px}.quality-beats{max-width:455px}html[data-mode="webgl"] .quality-beats{height:102px}.chapter h2{font-size:52px}}
@media(min-width:1000px){html[data-mode="loading"] .hero-copy,html[data-mode="webgl"] .hero-copy,html[data-mode="loading"] .quality-copy,html[data-mode="webgl"] .quality-copy{left:auto;right:7%;top:50%;width:46%;max-width:640px;transform:translateY(calc(-45% + var(--hero-shift)));text-align:left}html[data-mode="webgl"] .quality-copy{transform:translateY(calc(-45% + var(--quality-shift)))}.hero-copy .intro{margin-left:0}.quality-beats{margin-left:0}.beat-dots{justify-content:flex-start!important}.chapter h2{font-size:58px}.offer .intro{margin-left:auto}.hero-copy h1{font-size:62px}html[data-mode="static"] .chapter{max-width:700px;text-align:center}html[data-mode="static"] .hero-copy .intro{margin-left:auto}html[data-mode="static"] .quality-beats{margin-left:auto}}
@media(max-width:599px){.offer h2,html[data-mode="static"] .offer h2{font-size:clamp(27px,8.35vw,36px)}}
.static-keyframe{display:none}html[data-mode="static"] .static-keyframe{display:block;width:100%;height:240px;object-fit:contain;margin:0 auto 30px}
/* Headings lead; supporting copy follows on the next part of the scroll. */
.chapter-body{display:flow-root}
html[data-mode="loading"] .chapter-body,html[data-mode="webgl"] .chapter-body{opacity:var(--body-opacity,0);transform:translateY(var(--body-shift,12px))}
html[data-mode="static"] .chapter-body{opacity:1;transform:none}

.brand{text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:5px}.brand-caption{font-size:9px;line-height:1.2;letter-spacing:-.02em;color:#715b8c;white-space:nowrap}@media(min-width:600px){.brand-caption{font-size:10px}}

.economy li+li::before{content:none}

.cta{justify-content:center;text-align:center;padding:14px 20px;background:#d93645;box-shadow:0 12px 28px #d9364526}.cta:hover{background:#c12736}.cta:active{background:#ad202e}

.brand{gap:1px}.brand-caption{line-height:1;transform:translateY(-2px)}

.cta-prompt{font-size:15px;line-height:1.35;margin:0 auto 12px;max-width:340px;color:var(--ink)}
.cta{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(110deg,#c12736,#d93645 52%,#ce2947);font-weight:700}
.cta::before{content:"";position:absolute;pointer-events:none;inset:-50% auto -50% -55%;width:45%;background:linear-gradient(90deg,transparent,#ffffff38,transparent);transform:skewX(-20deg)}
@media(prefers-reduced-motion:no-preference){.cta::before{animation:cta-shimmer 4.8s ease-in-out infinite}}
@keyframes cta-shimmer{0%,28%{transform:translateX(0) skewX(-20deg)}70%,100%{transform:translateX(440%) skewX(-20deg)}}
@media(min-width:600px){.cta-prompt{font-size:17px;max-width:430px}}
/* The messenger is the next chapter inside the existing pinned world. */
html[data-mode="loading"] .story,html[data-mode="webgl"] .story{height:calc(var(--stage-height)*4.62)}
.chat-chapter{position:relative;z-index:6;margin:40px auto 0;max-width:540px;text-align:left}.consultant-static{display:block;width:100%;max-height:280px;object-fit:contain;margin-bottom:16px;border-radius:22px}.chat-window{display:flex;flex-direction:column;overflow:hidden;border:1px solid #d7cbe8;border-radius:22px;background:#faf7fd;box-shadow:0 16px 48px #4d2c7621;height:550px;max-height:70svh}.chat-header{display:flex;gap:11px;align-items:center;padding:15px 17px;background:#fff;border-bottom:1px solid #e9e1f0;flex:none}.chat-avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:12px;background:#6f4bb8;color:white;font-weight:bold}.chat-header h2{font-size:15px;line-height:1.2;letter-spacing:-.02em;margin:0 0 4px}.chat-header p{font-size:11px;color:#7a6b86;margin:0}.chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:15px;scrollbar-width:thin;scrollbar-color:#c6b4da transparent;touch-action:pan-y}.chat-bubble{max-width:95%;padding:12px 14px;border-radius:15px 15px 15px 4px;background:white;border:1px solid #eee6f5;color:#3d3448;font-size:14px;line-height:1.45;margin:0 0 12px;overflow-wrap:anywhere}.chat-bubble.visitor{margin-left:auto;background:#7752b4;color:white;border:0;border-radius:15px 15px 4px 15px;width:fit-content;font-size:13px}.chat-choices{display:grid;gap:8px}.chat-choice{display:block;width:100%;min-height:44px;padding:10px 12px;border:1px solid #d9cbea;background:#f2eafa;color:#593581;border-radius:11px;font-size:13px;line-height:1.3;text-align:left}.chat-choice:hover{background:#e8dbf4}.chat-materials{display:flex;flex-wrap:wrap;justify-content:center;gap:0 16px;padding:7px 12px;background:#fff;border-top:1px solid #e9e1f0;flex:none}.chat-materials button{background:none;border:0;color:#765095;font-size:11px;min-height:35px;padding:5px 0;text-decoration:underline;text-underline-offset:3px}.chat-form{display:grid;gap:10px;margin:14px 0}.chat-field{font-size:12px;line-height:1.4;color:#655272;display:grid;gap:5px}.chat-field input,.chat-field textarea{width:100%;min-height:44px;border:1px solid #d8c9e5;border-radius:10px;background:white;color:#2c2336;padding:10px 12px;font:16px Arial,sans-serif;resize:vertical}.chat-consent{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;padding:5px 0}.chat-consent input{width:18px;height:18px;margin:0;flex:none;accent-color:#6f4bb8}.chat-delivery-note{font-size:11px;line-height:1.4;color:#7c687d;margin:0}.chat-form-status{font-size:12px;color:#b52b3c;line-height:1.4;margin:0}.chat-form-status:empty{display:none}.chat-send{border:0;background:#6f4bb8;color:white;border-radius:11px;min-height:45px;font-size:14px}.chat-trap{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.chat-nojs{font-size:14px;line-height:1.5}
html[data-mode="loading"] .chat-chapter,html[data-mode="webgl"] .chat-chapter{position:absolute;top:35%;bottom:20px;left:var(--gutter);right:var(--gutter);max-width:540px;margin:auto;opacity:var(--chat-opacity,0);transform:translateY(var(--chat-shift,20px));pointer-events:none}html[data-mode="webgl"] .chat-chapter[data-visible="true"]{pointer-events:auto}html[data-mode="loading"] .consultant-static,html[data-mode="webgl"] .consultant-static{display:none}html[data-mode="loading"] .chat-window,html[data-mode="webgl"] .chat-window{height:100%;max-height:none}
@media(min-width:1000px){html[data-mode="webgl"] .chat-chapter,html[data-mode="loading"] .chat-chapter{top:18%;bottom:10%;left:auto;right:8%;width:44%;max-width:560px}.chat-header h2{font-size:18px}.chat-header p{font-size:12px}.chat-bubble{font-size:16px}.chat-choice{font-size:15px;min-height:46px}.chat-materials button{font-size:12px}.chat-log{padding:20px}}
@media(max-height:700px) and (max-width:599px){html[data-mode="webgl"] .chat-chapter{top:32%;bottom:12px}.chat-header{padding:10px 13px}.chat-log{padding:12px}.chat-bubble{font-size:13px}.chat-choices{gap:6px}.chat-materials{gap:0 9px;padding:4px 8px}.chat-materials button{font-size:10px}}
html[data-mode="static"] .chat-chapter{opacity:1;transform:none;pointer-events:auto;margin-top:55px}html[data-mode="static"] .chat-window{min-height:480px}

.chat-avatar{position:relative;overflow:hidden;flex:none;background:#f4eff9}.chat-avatar img{position:absolute;width:105px;height:70px;max-width:none;left:-35px;top:-3px;object-fit:cover}

@media(max-width:999px){html[data-mode="webgl"] .chat-chapter,html[data-mode="loading"] .chat-chapter{top:38%}}

/* Coral study: light fields, with a clean reading surface. */
:root{--paper:#fffaf7;--warm-edge:#ff805f}
.atmosphere{background:radial-gradient(ellipse at 47% 40%,#fff 0%,#fffffff0 21%,#ffffff00 64%),radial-gradient(ellipse at 103% 22%,#ffb39370,transparent 49%),radial-gradient(ellipse at -8% 82%,#ffc3a968,transparent 48%),radial-gradient(ellipse at 92% 98%,#d3c5e74d,transparent 48%),#fffaf7}
.cta{background:linear-gradient(110deg,#6240a6,#6f4bb8 52%,#7752bd);color:#fff;font-size:20px;box-shadow:0 12px 28px #6f4bb826}
.cta:hover{background:#6240a6}.cta:active{background:#54358e}
@media(min-width:600px){.cta{font-size:22px}}
.chat-window{background:#fffcfa;box-shadow:0 16px 48px #63487318}.chat-header,.chat-materials{background:#fff}

/* Laundryzone conversation pattern, in DALIDAM colours. */
.chat-window{background:#fff}.chat-header{background:#6f4bb8;color:#fff;border-bottom:0}.chat-header p{color:#ffffffd9}.chat-header>div{min-width:0}.chat-header .chat-avatar{border-radius:50%;border:2px solid #ffffff9e}
.chat-sound{flex:none;margin-left:auto;width:36px;height:36px;border:1px solid #ffffff66;border-radius:50%;background:#ffffff16;color:white;font-size:19px;display:grid;place-items:center}
.chat-log{padding:18px 14px}.message-row{display:flex;align-items:flex-end;gap:8px;width:100%;margin:0 0 14px}.message-row.visitor{justify-content:flex-end}
.message-avatar{position:relative;overflow:hidden;flex:0 0 29px;width:29px;height:29px;border-radius:50%;background:#f5f0fa;border:2px solid white;box-shadow:0 3px 10px #62418f19}.message-avatar img{position:absolute;width:87px;height:58px;max-width:none;left:-29px;top:-3px}
.message-row .chat-bubble{margin:0;max-width:calc(100% - 37px);padding:12px 14px;border:0;border-radius:18px 18px 18px 5px;background:#f0f2f3;color:#29262e;font-size:14px;line-height:1.5;white-space:pre-wrap}.message-row .chat-bubble.visitor{max-width:85%;background:#6f4bb8;color:white;border-radius:18px 18px 5px 18px}
.chat-typing{display:flex;gap:4px;align-items:center;min-height:42px;padding:11px 12px;border-radius:17px 17px 17px 5px;background:#f0f2f3;color:#6f6679;font-size:12px}.chat-typing span{margin-right:4px;font-style:italic}.chat-typing i{width:5px;height:5px;border-radius:50%;background:#6f4bb8}
.chat-choices{margin-left:37px;gap:8px;padding:2px 0 8px}.chat-choice{background:#fff;border:1px solid #ddd5e9;color:#41324f;border-radius:14px;min-height:46px;padding:11px 13px}.chat-choice:hover{background:#f5effa;border-color:#a98acc}.chat-form{padding:14px;border:1px solid #e8e0ef;border-radius:16px;background:#fcfafd}.chat-form+.chat-choice{margin-bottom:10px}
@media(min-width:1000px){.chat-log{padding:24px}.message-row{gap:10px}.message-avatar{flex-basis:34px;width:34px;height:34px}.message-avatar img{width:102px;height:68px;left:-34px}.message-row .chat-bubble{max-width:calc(100% - 44px);font-size:16px;padding:14px 17px}.chat-choices{margin-left:44px;grid-template-columns:1fr 1fr}.chat-choice{font-size:14px}.chat-header{padding:18px 20px}}
@media(prefers-reduced-motion:no-preference){.message-row,.chat-choices{animation:message-in .3s ease-out both}.chat-typing i{animation:typing-dot 1s infinite ease-in-out}.chat-typing i:nth-of-type(2){animation-delay:.15s}.chat-typing i:nth-of-type(3){animation-delay:.3s}}
@keyframes message-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes typing-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}

.chat-sound{padding:0}.chat-sound svg{display:block;width:21px;height:21px;pointer-events:none}.chat-sound .sound-slash{display:none}.chat-sound[aria-pressed="true"] .sound-waves{display:none}.chat-sound[aria-pressed="true"] .sound-slash{display:block}.chat-sound:hover{background:#ffffff26}.chat-sound:focus{outline:none}.chat-sound:focus-visible{outline:2px solid white;outline-offset:3px}

.legal-footer{position:relative;display:flex;justify-content:space-between;gap:24px;padding:28px max(24px,calc((100vw - 1200px)/2));background:#fffaf7;border-top:1px solid #e8deed;color:#665a70;font-size:12px;line-height:1.6}.legal-footer strong{color:#5f408b}.legal-footer p{margin:5px 0}.legal-footer nav{display:flex;flex-direction:column;gap:7px;max-width:330px}.legal-footer a,.chat-consent a,.legal-page a{color:#63439b;text-underline-offset:3px}.legal-dialog{width:min(720px,calc(100% - 28px));padding:40px 28px 28px;overscroll-behavior:contain}.legal-dialog h2,.legal-page h2{font-size:26px;line-height:1.2;letter-spacing:-.025em;margin:0 28px 24px 0}.legal-dialog h3,.legal-page h3{font-size:18px;line-height:1.3;margin:24px 0 10px}.legal-dialog .modal-text,.legal-dialog p,.legal-page .modal-text,.legal-page p{margin:10px 0}.legal-dialog,.legal-page{font-size:15px;line-height:1.6;overflow-wrap:anywhere}.legal-close{position:absolute;right:12px;top:10px;width:36px;height:36px;border:0;border-radius:50%;background:#f2eafa;color:#62418f;font-size:26px}.legal-page{max-width:780px;margin:auto;padding:32px 24px 60px}.legal-page>a{display:inline-block;margin-bottom:28px}@media(max-width:599px){.legal-footer{flex-direction:column;gap:18px;padding:24px}.legal-dialog{padding:45px 20px 24px}.legal-dialog h2{font-size:23px}}

.final-screen{background:radial-gradient(ellipse at 100% 0%,#ffd7c785,transparent 52%),#fffaf7;padding:72px var(--gutter);border-top:1px solid #ede3ed}.final-inner{max-width:1160px;margin:auto}.final-proof{color:#755d80;font-size:14px;margin:0 0 24px;letter-spacing:.01em}.final-proof span{margin:0 9px;color:#d97c61}.final-screen h2{font-size:clamp(32px,4.1vw,58px);line-height:1.06;letter-spacing:-.045em;max-width:990px;margin:0 0 38px}.final-screen h2 span{color:#6f4bb8}.final-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:start}.final-copy{color:#5b5165;font-size:18px;line-height:1.55}.final-copy p{margin:0 0 18px}.final-action{padding-left:28px;border-left:2px solid #ffc0a8}.final-action p{font-size:17px;line-height:1.5;margin:0 0 10px}.final-action p:first-child{font-weight:700;font-size:21px}.project-cta{border:0;border-radius:14px;background:#6f4bb8;color:white;width:100%;min-height:56px;font-size:18px;font-weight:700;padding:14px 18px;margin-top:12px}.project-cta:hover{background:#6240a6}.chat-request-context{font-size:13px;color:#62418f;margin:0 0 8px}.blog-page{max-width:960px;margin:auto;padding:40px 24px 80px}.blog-page h1{font-size:clamp(32px,6vw,54px);margin:32px 0 20px}.blog-page p{font-size:18px;line-height:1.6}.blog-page a{color:#62418f}@media(max-width:699px){.final-screen{padding:44px 24px}.final-proof{font-size:12px;margin-bottom:20px}.final-screen h2{font-size:34px;margin-bottom:27px}.final-bottom{display:block}.final-copy{font-size:16px}.final-action{margin-top:28px;padding-left:18px}.final-action p{font-size:16px}.final-action p:first-child{font-size:20px}}

.final-bottom{grid-template-columns:1.35fr 1fr;gap:48px}.final-action{border:0;padding:0}.final-copy p{padding-left:0;border-left:0}.final-action .final-note{font-size:13px;line-height:1.5;color:#756780;margin:14px 0 0;font-weight:400}.project-cta{font-size:22px;min-height:60px;margin-top:0}@media(max-width:699px){.project-cta{font-size:20px;min-height:57px}.final-action{padding:0}.final-action .final-note{font-size:12px}}

.final-screen{position:relative;z-index:1;background:transparent;min-height:75svh}.legal-footer{z-index:1}.final-world{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.final-world[hidden]{display:none}.final-world .visual{position:absolute!important;inset:0!important;width:100%;height:100%!important;margin:0!important}.final-world .atmosphere{z-index:0}.final-world .visual{z-index:1}.final-inner{position:relative}.final-proof,.final-screen h2,.final-copy,.final-action{transition:opacity .5s ease,transform .5s ease}.final-screen[data-reveal="waiting"] .final-proof,.final-screen[data-reveal="waiting"] h2,.final-screen[data-reveal="waiting"] .final-copy,.final-screen[data-reveal="waiting"] .final-action{opacity:0;transform:translateY(14px)}.final-screen h2{transition-delay:.1s}.final-copy{transition-delay:.2s}.final-action{transition-delay:.3s}html[data-mode="static"] .final-screen{background:radial-gradient(ellipse at right top,#ffd7c785,transparent 60%),#fffaf7;min-height:0}@media(max-width:699px){.final-screen{padding:55px 32px;min-height:85svh}}

/* Sequence: the complete chat episode scrolls away, then the new screen, then copy. */
html[data-mode="webgl"] .stage{opacity:var(--episode-opacity,1)}
.final-screen{padding:0!important;min-height:0!important;background:radial-gradient(ellipse at 98% 16%,#ffd5c487,transparent 56%),radial-gradient(ellipse at 0% 95%,#e6dcef66,transparent 52%),#fffaf7}
.final-inner{padding:55px 32px;max-width:1224px;margin:auto}
html[data-mode="webgl"] .final-screen{padding:0!important;min-height:calc(var(--stage-height)*1.5)!important}
html[data-mode="webgl"] .final-inner{position:sticky;top:0;min-height:var(--stage-height);display:flex;flex-direction:column;justify-content:center}
.final-proof,.final-screen h2,.final-copy,.final-action{transition:none}
html[data-mode="webgl"] .final-proof{opacity:var(--final-facts,0);transform:translateY(var(--final-facts-shift,16px))}
html[data-mode="webgl"] .final-screen h2{opacity:var(--final-heading,0);transform:translateY(var(--final-heading-shift,16px))}
html[data-mode="webgl"] .final-copy{opacity:var(--final-copy,0);transform:translateY(var(--final-copy-shift,16px))}
html[data-mode="webgl"] .final-action{opacity:var(--final-action,0);transform:translateY(var(--final-action-shift,16px))}
@media(min-width:1000px){.final-inner{padding:64px 48px}}
@media(max-height:720px) and (max-width:699px){.final-inner{padding:30px 26px}.final-screen h2{font-size:30px;margin-bottom:22px}.final-copy{font-size:15px}.final-copy p{margin-bottom:13px}.final-action{margin-top:20px}.final-proof{margin-bottom:16px}}

/* Keep Dinara's 3D screen; only the HTML conversation leaves. */
html[data-mode="webgl"] .stage{opacity:1}
html[data-mode="webgl"] .chat-chapter{opacity:calc(var(--chat-opacity,0)*var(--episode-opacity,1))}
html[data-mode="webgl"] .final-screen{background:transparent}
@media(min-width:1000px){html[data-mode="webgl"] .final-inner{width:44%;margin-left:auto;margin-right:8%;padding:50px 0}html[data-mode="webgl"] .final-screen h2{font-size:42px}html[data-mode="webgl"] .final-bottom{display:block}html[data-mode="webgl"] .final-copy{font-size:16px}html[data-mode="webgl"] .final-action{margin-top:24px}}
@media(max-width:999px){html[data-mode="webgl"] .final-inner{padding:38svh 32px 24px;justify-content:flex-start}html[data-mode="webgl"] .final-proof{font-size:11px;margin:0 0 14px}html[data-mode="webgl"] .final-screen h2{font-size:28px;margin-bottom:18px}html[data-mode="webgl"] .final-copy{font-size:14px;line-height:1.4}html[data-mode="webgl"] .final-copy p{margin-bottom:12px;padding-left:12px}html[data-mode="webgl"] .final-action{margin-top:16px}html[data-mode="webgl"] .final-action .final-note{font-size:11px;margin-top:10px}}

/* The final composition follows the departing chat without an empty scene. */
html[data-mode="webgl"] .final-screen{margin-top:calc(var(--stage-height)*-.28);min-height:calc(var(--stage-height)*1.15)!important;border-top:0}

html[data-mode="webgl"] .stage{z-index:1}
/* The chat flies outside the viewport; its depth must not be clipped. */

html[data-mode="webgl"] .progress{opacity:calc(1 - var(--chat-opacity,0))}

/* Let the footer follow the content, keeping the brand above Dinara. */
html[data-mode="webgl"] .final-screen{min-height:0!important}
html[data-mode="webgl"] .final-inner{position:relative;min-height:0}
.final-world .header{position:fixed;z-index:3;pointer-events:auto}
@media(min-width:1000px){html[data-mode="webgl"] .final-inner{padding:clamp(100px,15svh,150px) 0 32px}}
@media(max-width:999px){html[data-mode="webgl"] .final-inner{padding-bottom:28px}}

@media(max-width:599px){html[data-mode="webgl"] .final-copy{font-size:13px}html[data-mode="webgl"] .final-copy p{margin-bottom:10px}html[data-mode="webgl"] .final-inner{padding-bottom:24px}.legal-footer{padding:18px 24px;gap:10px;font-size:11px}.legal-footer nav{gap:4px}}

/* Slightly tighter spacing around the footer. */
html[data-mode="webgl"] .final-inner{padding-bottom:20px}
@media(max-width:599px){.legal-footer{padding-top:14px;padding-bottom:14px;gap:8px}.legal-footer p{margin:3px 0}}

/* Finale: the conversation becomes a finished site. */
html[data-mode="webgl"] .final-screen{margin-top:0;min-height:0!important;border:0;background:transparent}
html[data-mode="webgl"] .final-inner{position:relative;min-height:0}
.final-static-model{display:none}
html[data-mode="static"] .final-static-model{display:block;width:auto;height:26svh;max-width:100%;object-fit:contain;margin:0 auto 24px}
html[data-mode="webgl"] .chat-chapter.chat-in-flight{position:fixed;z-index:4;clip-path:none;pointer-events:none;transform-origin:50% 25%;opacity:var(--flight-opacity,1);transform:perspective(1000px) translate3d(var(--flight-x,0px),var(--flight-y,0px),0) rotateX(var(--flight-rx,0deg)) rotateY(var(--flight-ry,0deg)) rotateZ(var(--flight-rz,0deg)) scale(var(--flight-scale,1));transition:transform 550ms cubic-bezier(.22,.7,.25,1),opacity 250ms ease;will-change:transform,opacity}
.chat-in-flight .chat-window{box-shadow:8px 10px 0 #a287cf,12px 18px 30px #49326533;overflow:hidden}
.chat-in-flight .chat-log,.chat-in-flight .chat-header p,.chat-in-flight .chat-sound{opacity:var(--chat-clean,1);transition:opacity 200ms ease}
@media(min-width:1000px){html[data-mode="webgl"] .final-inner{width:44%;margin-left:8%;margin-right:auto;padding:clamp(110px,16svh,150px) 0 24px}html[data-mode="webgl"] .final-screen h2{font-size:42px}}
@media(max-width:999px){html[data-mode="webgl"] .final-inner{padding:36svh 32px 20px}html[data-mode="webgl"] .final-screen h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.chat-in-flight{transition:none!important;transform:none!important}}

html[data-mode="webgl"] .final-screen{min-height:calc(var(--stage-height) - var(--footer-height,130px))!important}
@media(min-width:1000px){html[data-mode="webgl"] .final-inner{padding-top:24svh}}

html[data-mode="webgl"] .final-inner{transform:translateY(var(--final-lift,0px));pointer-events:var(--final-pointer,none)}

/* Stable viewport layers: no DOM moves or scroll compensation during the finale. */
html[data-mode="webgl"] .chat-chapter.chat-mounted{position:fixed}
html[data-mode="webgl"] .final-inner{transform:none}
html[data-mode="webgl"] .final-screen{min-height:max(calc(var(--stage-height) - var(--footer-height,130px)),var(--final-content-height,0px))!important;overflow-anchor:none}
html[data-mode="webgl"] .final-screen.final-pinned .final-inner{position:fixed;top:0;left:0;right:0}
html[data-mode="webgl"] .chat-chapter.chat-in-flight{transition:opacity 200ms ease}
.story,.final-world,.chat-mounted{overflow-anchor:none}

html[data-mode="webgl"] .header-mounted{position:fixed;z-index:10}

/* The chat has its dimensional lilac edge from its first appearance. */
.chat-window{box-shadow:8px 10px 0 #a287cf,12px 18px 30px #49326533}

/* The chat flies in from the right, keeping the same solid card as on exit. */
html[data-mode="webgl"] .chat-chapter.chat-mounted:not(.chat-in-flight){opacity:1;transform-origin:50% 25%;transform:perspective(1000px) translate3d(var(--arrival-x,110vw),var(--arrival-y,10svh),0) rotateY(var(--arrival-ry,-24deg)) rotateZ(var(--arrival-rz,6deg)) scale(var(--arrival-scale,.72));will-change:transform;transition:none}

/* One headline scale across the four story screens. */
:root{--headline-size:var(--title)}
#hero-title,#quality-title,#offer-title,#final-title{font-size:var(--headline-size);line-height:1.04;letter-spacing:-.05em;font-weight:700}
@media(min-width:1000px){:root{--headline-size:62px}}
@media(max-width:999px){.final-inner{text-align:center}.final-copy p{padding-left:0;border-left:0}.final-proof,.final-copy,.final-action{margin-left:auto;margin-right:auto}.final-copy,.final-action{width:100%}}

@media(max-width:999px){#final-title span{display:block}}

html[data-mode="webgl"] .chat-chapter.chat-mounted{clip-path:none;overflow:visible}

.final-screen .final-copy p{padding-left:0;border-left:0}

/* Keep the final CTA below the copy on tablet screens as well as phones. */
@media (min-width:700px) and (max-width:1199px){.final-bottom{display:block}.final-action{margin-top:24px}}

/* Shared dimensions for the two primary calls to action. */
:root{--primary-cta-width:min(380px,calc(100vw - 2 * var(--gutter)));--primary-cta-height:57px}
.cta,.final-screen .project-cta{width:var(--primary-cta-width);min-height:var(--primary-cta-height);max-width:none;font-size:20px;padding:14px 20px;line-height:1.2}
.final-screen .project-cta{display:block}
@media(min-width:600px){:root{--primary-cta-height:60px}.cta,.final-screen .project-cta{font-size:22px}}
@media(max-height:720px) and (max-width:599px){:root{--primary-cta-height:52px}}
@media(max-width:999px){.final-screen .project-cta{position:relative;left:50%;transform:translateX(-50%)}}
