/* finesse · register=brand · A=coral+lilac+moonlit-plum · B=Fredoka+Caveat · C=route-orbit+sanctuary-expansion
 * D=native-scroll+source-image-WebGL · E=crayon-on-velvet-moss · SOUL=9 SPECTACLE=9 DENSITY=3 */
.reveal-word{display:inline-block;white-space:nowrap}.reveal-character{display:inline-block;opacity:calc(.18 + var(--char-p,1)*.82);transform:translateY(calc((1 - var(--char-p,1))*.35em));filter:blur(calc((1 - var(--char-p,1))*2px))}
.hero-copy .reveal-character{animation:letter-arrival .7s var(--entrance) both;animation-delay:calc(.15s + var(--char-order,0)*.012s)}
@keyframes letter-arrival{from{opacity:.18;transform:translateY(.35em);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
/* Hidden horizontal overflow creates a second scroll container in Safari. Clip keeps native sticky scenes attached to the page. */
@supports(overflow:clip){html,body{overflow-x:clip}body{overflow-y:visible}}
.route-orbit-scroll{margin:14px calc(-1*var(--page-pad)) 45px;padding-inline:var(--page-pad)}
.route-orbit-view{max-width:1400px;margin:auto}

.route-swipe-hint{display:none}
.route-orbit-swipe .route-swipe-hint{display:block;text-align:center;margin:2px 0 0;font-size:22px;color:#743348}
/* A native touch lane also serves short viewports and Reduced Motion. */
.route-orbit-swipe .route-choices{--swipe-card:clamp(210px,62vw,260px);position:relative;display:flex;flex-direction:row;align-items:center;gap:16px;max-width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:max(12px,calc((100% - var(--swipe-card))/2));padding:14px max(12px,calc((100% - var(--swipe-card))/2)) 28px;margin:0;border:0;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#bd718b #eee2e9}
.route-orbit-swipe .route-choices button{position:relative;display:block;flex:0 0 var(--swipe-card);width:var(--swipe-card);height:313px;min-height:313px;padding:210px 18px 18px;border:1px solid #cbaab8;border-radius:26px;background:#fbf4ea;scroll-snap-align:center;text-align:left;transform-origin:50% 50%;transition:background .2s}
.route-orbit-swipe .route-choices button:not(:last-child){margin-inline-end:calc(var(--swipe-card)*-.22)}
.route-orbit-swipe .route-choices button>span{display:block;font:600 24px/1.1 Fredoka,sans-serif}
.route-orbit-swipe .route-choices button>span small{display:block;font:400 14px/1.3 ui-sans-serif,system-ui,sans-serif;margin-top:6px}
.route-orbit-swipe .route-choices button>strong{position:absolute;right:18px;bottom:20px;font-size:15px}
.route-orbit-swipe .route-choices button[aria-pressed=true]{background:#f7e6ef;border-color:#be6082}
.route-orbit-swipe .mini-route{position:absolute;left:20px;top:22px;right:20px;width:calc(100% - 40px);height:174px;border-radius:18px}
.route-orbit-swipe .mini-route path{stroke-width:2.6}
.route-orbit-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin:24px auto 0;font-size:14px}
.route-orbit-controls button{min-height:44px;padding:10px 16px;border:1px solid #c9a7bb;border-radius:24px;color:var(--ink);background:#f9eff4}
.route-orbit-controls button:hover{background:#f1dce6}.route-orbit-controls button:disabled{opacity:.4;cursor:default}.route-orbit-status{min-width:240px;text-align:center;font-size:14px}
.route-orbit-active{height:245svh;margin-bottom:0}
.route-orbit-active .route-orbit-view{position:sticky;top:82px;perspective:1100px;padding-top:22px;overflow:clip}
.route-orbit-active .route-choices{position:relative;display:block;height:390px;border:none;transform-style:preserve-3d;overflow:visible}
.route-orbit-active .route-choices button{position:absolute;left:50%;top:50%;width:278px;height:336px;display:block;border:1px solid #cbaab8;border-radius:30px;background:#fbf4ea;box-shadow:0 22px 45px #38233722;padding:238px 22px 20px;text-align:left;will-change:transform;transition:background .2s}
.route-orbit-active .route-choices button>span{display:block;font:600 26px/1.1 Fredoka,sans-serif}.route-orbit-active .route-choices button>span small{font:400 14px/1.2 ui-sans-serif,system-ui,sans-serif;margin-top:6px}
.route-orbit-active .route-choices button>strong{position:absolute;right:22px;bottom:27px;font-size:16px}.route-orbit-active .route-choices button>strong small{font-size:13px}
.route-orbit-active .route-choices button[aria-pressed=true]{background:#f7e6ef;border-color:#be6082}
.route-orbit-active .mini-route{position:absolute;top:32px;left:28px;right:28px;width:calc(100% - 56px);height:190px}.route-orbit-active .mini-route path{stroke-width:2.6}



@media(max-width:767px){.route-orbit-active{height:230svh}.route-orbit-active .route-orbit-view{padding-top:14px}.route-orbit-active .route-choices{height:310px}.route-orbit-active .route-choices button{width:218px;height:275px;padding:195px 16px 17px;border-radius:26px}.route-orbit-active .mini-route{top:22px;left:22px;right:22px;width:calc(100% - 44px);height:161px}.route-orbit-active .route-choices button>span{font-size:22px}.route-orbit-active .route-choices button>strong{right:16px;bottom:22px;font-size:14px}.route-orbit-controls{gap:8px;margin-top:12px}.route-orbit-controls button{padding:8px 12px;font-size:13px}.route-orbit-status{min-width:0;max-width:145px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.reveal-character{opacity:1;transform:none;filter:none}.sanctuary-stage{clip-path:none!important}}
body[data-motion=off] .reveal-character{opacity:1;transform:none;filter:none;animation:none}








/* The painting stays at its final size. Two solid wooden rolls hide the
   closed canvas, then native scroll draws its edges apart horizontally. */
.sanctuary-reveal-runway{--painting-margin:24px;--painting-rail:20px;position:relative;isolation:isolate;background:var(--plum)}
.sanctuary-painting{position:relative;width:calc(100% - var(--painting-margin)*2);max-width:1600px;height:max(420px,var(--painting-meadow-min,0px),calc(100svh - var(--scene-header,88px) - var(--painting-margin)*2));margin-inline:auto}
.sanctuary-reveal-active{height:max(calc(200svh - var(--scene-header,88px)),calc(var(--painting-meadow-min,0px) + 90svh))}
.sanctuary-reveal-active .sanctuary-painting{position:sticky;top:calc(var(--scene-header,88px) + var(--painting-margin))}
.painting-aperture,.painting-frame{position:absolute;inset:0}
.painting-aperture{clip-path:none}
.painting-frame{border:1px solid #211b20;border-radius:4px;background:repeating-linear-gradient(3deg,#74657222 0 1px,transparent 1px 5px),linear-gradient(180deg,#78644f 0%,#443543 3%,#615043 50%,#443543 97%,#78644f 100%);box-shadow:inset 0 0 0 2px #b8a18766,0 8px 24px #17102466}
.painting-frame::after{content:'';position:absolute;inset:var(--painting-rail);border:2px solid #c6b292;border-radius:2px;box-shadow:inset 0 0 0 1px #211b20,0 0 0 2px #211b2077;pointer-events:none;z-index:18}
.sanctuary-painting .sanctuary-stage{position:absolute;inset:calc(var(--painting-rail) + 2px);width:auto;height:auto;max-width:none;min-height:0;max-height:none;aspect-ratio:auto;margin:0;border-radius:0;transform:none;clip-path:none;overflow:hidden}
.painting-roll{position:absolute;top:0;bottom:0;width:var(--painting-rail);border:1px solid #211b20;border-radius:4px;z-index:20;pointer-events:none;background:repeating-linear-gradient(87deg,#b8a18716 0 1px,transparent 1px 6px),linear-gradient(90deg,#302238 0%,#78644f 24%,#b8a187 37%,#615043 64%,#443543 87%,#211b20 100%);box-shadow:0 3px 12px #17102499}
.painting-roll-left{left:0}.painting-roll-right{right:0}
body[data-motion=off] .painting-aperture{clip-path:none!important}
body[data-motion=off] .painting-roll{transform:none!important}
@media(max-width:767px){.sanctuary-reveal-runway{--painting-margin:12px;--painting-rail:12px;--scene-header:73px}}
@media(prefers-reduced-motion:reduce){.painting-aperture{clip-path:none!important}.painting-roll{transform:none!important}}
