@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url("/presentation/assets/fraunces-italic.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/presentation/assets/fraunces.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/presentation/assets/manrope.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{--ink:#1e1a17;--ink-soft:#6b5f56;--cream:#f7f2ec;--cream-deep:#efe3d3;--surface:#ffffff;--sunken:#f3ece2;--border:rgba(30,24,18,.10);--border-strong:rgba(30,24,18,.18);--terra:#a8583a;--terra-deep:#814630;--terra-tint:#f1e1d5;--sage:#56705a;--sage-tint:#e4ebe2;--danger:#9c3d2e;--danger-tint:#f3e0da;--gold:#9c7f3f;--shadow:0 8px 24px -10px rgba(30,24,18,.16);--shadow-lg:0 28px 60px -20px rgba(30,24,18,.30);--display:"Fraunces","Iowan Old Style",Georgia,serif;--body:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f7f2ec;color:#1e1a17;font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
button{font-family:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.display{font-family:"Fraunces","Iowan Old Style",Georgia,serif;font-weight:500;letter-spacing:-.025em;line-height:1.04}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#814630}
.eyebrow::before{content:"";width:28px;height:2px;background:#a8583a;border-radius:2px}
.ic{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:700;font-size:16px;border:1.5px solid transparent;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn svg{transition:transform .25s ease}
.btn:hover svg{transform:translateX(4px)}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible,.seg:focus-visible,summary:focus-visible,input:focus-visible,.navlink:focus-visible{outline:3px solid rgba(168,88,58,.45);outline-offset:3px}
.btn-primary{background:#a8583a;color:#fff;box-shadow:0 10px 24px -10px rgba(168,88,58,.8)}
.btn-primary:hover{background:#814630;box-shadow:0 14px 28px -10px rgba(129,70,48,.85)}
.btn-ghost{background:transparent;color:#1e1a17;border-color:rgba(30,24,18,.18)}
.btn-ghost:hover{background:#ffffff}
.btn-light{background:#f7f2ec;color:#1e1a17}
.btn-light:hover{background:#fff}
.navlink{font-size:15px;font-weight:600;color:#6b5f56;transition:color .2s}
.navlink:hover{color:#1e1a17}
.card{background:#ffffff;border:1px solid rgba(30,24,18,.10);border-radius:20px;box-shadow:0 8px 24px -10px rgba(30,24,18,.16)}
.lift{transition:transform .3s ease,box-shadow .3s ease}
.lift:hover{transform:translateY(-6px);box-shadow:0 28px 60px -20px rgba(30,24,18,.30)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:700}

/* hero entrance */
.line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.line-in{display:block;animation:lineUp 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes lineUp{from{transform:translateY(108%)}to{transform:none}}
.fadeUp{animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.draw{stroke-dasharray:330;stroke-dashoffset:330;animation:draw 1.1s .95s cubic-bezier(.6,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* scroll reveal (progressive: fully visible where unsupported) */
@supports (animation-timeline: view()){
.rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
}
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}

/* hero phone: one 20s loop */
.phone-float{animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.bub{max-width:84%;padding:10px 14px;border-radius:18px;font-size:13.5px;line-height:1.42;opacity:0}
.bub.ai{align-self:flex-start;background:#fff;border:1px solid rgba(30,24,18,.10);border-bottom-left-radius:5px}
.bub.cl{align-self:flex-end;background:#1e1a17;color:#f7f2ec;border-bottom-right-radius:5px}
.bub.b1{animation:b1 20s infinite both}
.bub.b2{animation:b2 20s infinite both}
.bub.b3{animation:b3 20s infinite both}
.bub.b4{animation:b4 20s infinite both}
.bub.b5{animation:b5 20s infinite both}
@keyframes b1{0%,10%{opacity:0;transform:translateY(12px) scale(.96)}13.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
@keyframes b2{0%,22%{opacity:0;transform:translateY(12px) scale(.96)}25.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
@keyframes b3{0%,35%{opacity:0;transform:translateY(12px) scale(.96)}38.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
@keyframes b4{0%,51%{opacity:0;transform:translateY(12px) scale(.96)}54.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
@keyframes b5{0%,61%{opacity:0;transform:translateY(12px) scale(.96)}64.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
.bookcard{opacity:0;animation:bookIn 20s infinite both}
@keyframes bookIn{0%,69%{opacity:0;transform:translateY(26px) scale(.94)}73.5%,93%{opacity:1;transform:none}97%,100%{opacity:0}}
.ringscreen{animation:ringScreen 20s infinite both}
@keyframes ringScreen{0%{opacity:0}2%,9%{opacity:1}11.5%,100%{opacity:0;visibility:hidden}}
.pulse{position:absolute;inset:0;border-radius:50%;border:2px solid #a8583a;animation:pulse 1.8s ease-out infinite}
.pulse.p2{animation-delay:.6s}
.pulse.p3{animation-delay:1.2s}
@keyframes pulse{from{transform:scale(1);opacity:.55}to{transform:scale(2.1);opacity:0}}
.ringphone{animation:shake 1.1s ease-in-out infinite}
@keyframes shake{0%,100%{transform:rotate(0)}10%,30%,50%{transform:rotate(-14deg)}20%,40%,60%{transform:rotate(14deg)}70%{transform:rotate(0)}}
.wave i{display:block;width:3px;border-radius:3px;background:#56705a;height:18px;transform-origin:center;animation:wave 1.1s ease-in-out infinite}
.wave i:nth-child(2){animation-delay:.15s}.wave i:nth-child(3){animation-delay:.3s}.wave i:nth-child(4){animation-delay:.45s}.wave i:nth-child(5){animation-delay:.6s}
@keyframes wave{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
.dot-live{width:8px;height:8px;border-radius:50%;background:#56705a;animation:live 1.6s ease-in-out infinite}
@keyframes live{0%,100%{box-shadow:0 0 0 0 rgba(86,112,90,.5)}50%{box-shadow:0 0 0 6px rgba(86,112,90,0)}}

/* marquee */
.marquee{display:flex;width:max-content;animation:marquee 46s linear infinite}
.marquee:hover{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* toggle */
.seg{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;border:0;background:transparent;color:#6b5f56;font-weight:700;font-size:15px;cursor:pointer;transition:background .25s,color .25s}
.seg.on{background:#1e1a17;color:#f7f2ec}
.popIn{animation:popIn .55s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes popIn{from{opacity:0;transform:translateY(18px) scale(.95)}to{opacity:1;transform:none}}

/* steps connector */
.travel{position:absolute;top:-5px;left:0;width:11px;height:11px;border-radius:50%;background:#a8583a;box-shadow:0 0 0 6px rgba(168,88,58,.18);animation:travel 6s ease-in-out infinite}
@keyframes travel{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:calc(100% - 11px);opacity:0}}

/* calculator */
.bar{height:14px;border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
input[type=range]{width:100%;accent-color:#a8583a;height:28px;cursor:pointer}

/* faq */
details{border-bottom:1px solid rgba(30,24,18,.18)}
summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 4px;font-family:"Fraunces","Iowan Old Style",Georgia,serif;font-size:22px;font-weight:500;letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary .plus{flex:none;transition:transform .35s cubic-bezier(.2,.8,.2,1);color:#a8583a}
details[open] summary .plus{transform:rotate(135deg)}
details .ans{padding:0 4px 28px;max-width:680px;color:#6b5f56;font-size:17px;line-height:1.65}
details[open] .ans{animation:fadeUp .45s both}

/* scissors snip */
.snipA{transform-origin:24px 24px;animation:snipA 3s ease-in-out infinite}
.snipB{transform-origin:24px 24px;animation:snipB 3s ease-in-out infinite}
@keyframes snipA{0%,100%{transform:rotate(0)}30%{transform:rotate(-13deg)}45%{transform:rotate(2deg)}60%{transform:rotate(-13deg)}75%{transform:rotate(0)}}
@keyframes snipB{0%,100%{transform:rotate(0)}30%{transform:rotate(13deg)}45%{transform:rotate(-2deg)}60%{transform:rotate(13deg)}75%{transform:rotate(0)}}

@media (max-width:760px){
.nav-links{display:none!important}
.wrap{padding:0 20px}
summary{font-size:19px}
.hide-sm{display:none!important}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.bub,.bookcard{opacity:1!important}
.ringscreen{display:none}
.draw{stroke-dashoffset:0}
}
/* Production enhancements: responsive layout, motion controls, progressive reveal. */
[hidden]{display:none!important}html{scroll-padding-top:100px}body{overflow-x:clip}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #a8583a;outline-offset:5px}.skip-link{position:fixed;top:12px;left:12px;z-index:200;background:#fff;padding:12px;transform:translateY(-180%)}.skip-link:focus{transform:none}.nav-login{font-size:14px;font-weight:700;white-space:nowrap}.menu-toggle{display:none}.hero{position:relative;background:radial-gradient(ellipse at 78% 50%,#ead7c355,transparent 52%)}.call-preview::before{content:'';position:absolute;inset:55px -20px 80px -20px;border:1px solid #a8583a24;border-radius:50%;transform:rotate(-20deg)}.demo-caption{position:absolute;bottom:12px;left:0;font-size:12px;color:var(--ink-soft)}.motion-toggle{position:fixed;bottom:16px;right:16px;z-index:60;border:1px solid var(--border-strong);background:#f7f2eced;backdrop-filter:blur(12px);border-radius:24px;padding:10px 16px;cursor:pointer;font-size:12px;color:var(--ink);box-shadow:var(--shadow)}.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}.motion-paused .rv{opacity:1!important;transform:none!important}.rv{animation:none}.js-reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.js-reveal.pending{opacity:0;transform:translateY(24px)}footer{padding-bottom:85px!important}
@media(min-width:1100px){.hero>.wrap{flex-wrap:nowrap!important}.hero>.wrap>div:first-child{flex:1 1 55%!important}.hero>.wrap>div:last-child{flex:1 1 45%!important}}
@media(max-width:1000px){.nav-links{gap:18px!important}.navlink{font-size:13px}.hero{padding-top:48px!important}}
@media(max-width:760px){.menu-toggle{display:block;border:1px solid var(--border-strong);background:transparent;border-radius:30px;padding:10px 14px;font:inherit;font-size:13px}.nav-login{margin-left:auto;font-size:12px}header>.wrap{gap:12px!important}header .nav-links.is-open{display:flex!important;position:absolute;top:72px;left:0;right:0;padding:24px;background:var(--cream);box-shadow:var(--shadow);flex-direction:column;align-items:stretch!important}.navlink{font-size:16px;padding:8px}.hero .eyebrow{font-size:10px;letter-spacing:.07em}.hero p{font-size:17px!important}.hero>.wrap{gap:40px!important}.hero .btn{width:100%;font-size:14px}.call-preview{max-width:390px}.demo-caption{font-size:11px}section:not(.hero):not([aria-label]){padding-top:72px!important;padding-bottom:72px!important}.motion-toggle{font-size:10px;padding:8px 12px;bottom:10px;right:10px}#tarifs .chip{position:static!important;align-self:flex-start;margin-bottom:18px}#tarifs .btn-ghost{margin-top:30px!important}}
@media(max-width:380px){.phone-float{width:270px!important}.bookcard{max-width:225px;margin-left:auto}.seg{padding:0 15px;font-size:13px}.wrap{padding:0 16px}.demo-caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.js-reveal.pending{opacity:1;transform:none}.motion-toggle{display:none}}
@media(prefers-reduced-motion:reduce){.ringscreen{display:none!important}}

/* Cinematic motion direction: opening, orbital hero, scroll-driven call story. */
:root{--ease-out:cubic-bezier(.16,1,.3,1)}
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:var(--terra);z-index:150;width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none}
.opening{position:fixed;inset:0;z-index:180;pointer-events:none;overflow:hidden;animation:openingDismiss 2s forwards}
.opening-shutter{position:absolute;left:0;width:100%;height:51%;background:#1e1a17;animation:shutterOpen 1.1s .9s var(--ease-out) forwards}.shutter-top{top:0;--shutter:-100%}.shutter-bottom{bottom:0;--shutter:100%}
.opening-word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--cream);font:500 clamp(60px,12vw,180px)/1 var(--display);letter-spacing:-.055em;animation:openingWordOut .6s .85s forwards}.opening-word>span{display:inline-block;animation:openingLetter .8s var(--ease-out) both}.opening-word>span:nth-child(2){animation-delay:.04s}.opening-word>span:nth-child(3){animation-delay:.08s}.opening-word>span:nth-child(4){animation-delay:.12s}.opening-word>span:nth-child(5){animation-delay:.16s}.opening-word>span:nth-child(6){animation-delay:.2s}.opening-word i{position:absolute;top:65%;font:500 13px/1.5 var(--body);letter-spacing:.06em;font-style:normal;text-align:center;padding:0 20px}
@keyframes openingLetter{from{transform:translateY(90px) rotate(12deg);opacity:0;filter:blur(12px)}to{transform:none;opacity:1;filter:blur(0)}}@keyframes openingWordOut{to{opacity:0;transform:scale(1.12);filter:blur(12px)}}@keyframes shutterOpen{to{transform:translateY(var(--shutter))}}@keyframes openingDismiss{99%{visibility:visible}100%{visibility:hidden}}
.hero{min-height:calc(100svh - 72px);background:radial-gradient(ellipse at 80% 40%,#debfa377,transparent 48%),var(--cream);isolation:isolate}
.hero .line-in{animation:heroTypeIn 1.45s var(--ease-out) both;animation-delay:1s!important}.hero .line:nth-child(2) .line-in{animation-delay:1.13s!important}.hero .line:nth-child(3) .line-in{animation-delay:1.26s!important}.hero .fadeUp{animation-delay:1.3s!important}
@keyframes heroTypeIn{from{transform:translateY(115%) rotate(6deg);filter:blur(9px)}to{transform:none;filter:blur(0)}}
.call-preview{perspective:1100px;isolation:isolate}.call-preview::before{display:none}.phone-float{z-index:3;transform-style:preserve-3d;animation:phoneArrival 2s .45s var(--ease-out) both;transform:translate3d(var(--phone-x,0px),var(--phone-y,0px),0) rotateX(var(--phone-rx,0deg)) rotateY(var(--phone-ry,0deg)) rotate(-5deg);transition:transform .5s var(--ease-out);will-change:transform}.phone-float>div{box-shadow:22px 40px 60px -25px #24120f80,4px 0 0 #746457!important}.phone-float>div::after{content:'';position:absolute;inset:0;border-radius:46px;background:linear-gradient(115deg,#fff3,transparent 30%,transparent 65%,#fff1);pointer-events:none}.hero-orbits{position:absolute;inset:0;pointer-events:none;z-index:0;transform:translateY(var(--orbit-y,0px));transition:transform .2s linear}.orbit{position:absolute;left:50%;top:45%;border:1px solid #a8583a45;border-radius:50%;width:570px;height:570px;margin:-285px;transform-style:preserve-3d}.orbit-one{animation:orbitTurn 20s linear infinite}.orbit-two{width:480px;height:480px;margin:-240px;animation:orbitTurn 24s linear infinite reverse}.orbit-three{width:650px;height:650px;margin:-325px;border-style:dashed;border-color:#a8583a25;animation:orbitTurn 42s linear infinite}.orbit::after{content:'';position:absolute;top:14%;left:14%;width:12px;height:12px;background:var(--terra);border-radius:50%;box-shadow:0 0 22px #a8583a70}.orbit-two::after{background:var(--sage);width:8px;height:8px}.orbit-three::after{width:5px;height:5px}.orbit-spark{position:absolute;color:var(--terra);font-size:45px;animation:sparkSpin 12s linear infinite}.spark-one{right:-6px;top:80px}.spark-two{left:-50px;bottom:95px;font-size:30px;animation-direction:reverse}.orbit-tag{position:absolute;padding:12px 18px;border:1px solid #a8583a20;border-radius:40px;background:#fff9;backdrop-filter:blur(6px);font:italic 19px var(--display);box-shadow:var(--shadow);animation:tagFloat 6s ease-in-out infinite}.tag-one{right:-10px;top:40px;transform:rotate(8deg)}.tag-two{right:-30px;top:245px;animation-delay:-2s}.tag-three{left:-60px;bottom:85px;animation-delay:-4s;font-size:16px}.bookcard{z-index:6;animation:bookingLoop 12s 1.8s infinite both}.call-preview>.phone-float~div[style*="bottom:70px"]{z-index:5;transform:rotate(6deg);animation:tagFloat 6s infinite}.bub.b1{animation:messageOne 12s 1.8s infinite both}.bub.b2{animation:messageTwo 12s 1.8s infinite both}.bub.b3{animation:messageThree 12s 1.8s infinite both}.bub.b4{animation:messageFour 12s 1.8s infinite both}.bub.b5{animation:messageFive 12s 1.8s infinite both}.ringscreen{animation:incomingLoop 12s 1.8s infinite both}.replay-call{position:absolute;bottom:11px;right:0;border:0;background:transparent;color:var(--terra-deep);font:700 12px var(--body);cursor:pointer;z-index:10;padding:6px}.demo-caption{max-width:76%;bottom:16px}
@keyframes phoneArrival{from{opacity:0;transform:translate3d(100px,120px,-450px) rotateY(-45deg) rotateZ(20deg)}to{opacity:1}}
@keyframes orbitTurn{from{transform:rotate(0) scaleY(.75)}to{transform:rotate(360deg) scaleY(.75)}}@keyframes sparkSpin{to{transform:rotate(360deg)}}@keyframes tagFloat{0%,100%{translate:0 0}50%{translate:0 -18px}}
@keyframes incomingLoop{0%,8%{opacity:1;visibility:visible;transform:scale(1)}14%,100%{opacity:0;visibility:hidden;transform:scale(1.12)}}
@keyframes messageOne{0%,12%{opacity:0;transform:translateY(20px) scale(.9)}18%,91%{opacity:1;transform:none}98%,100%{opacity:0}}
@keyframes messageTwo{0%,24%{opacity:0;transform:translateY(20px) scale(.9)}30%,91%{opacity:1;transform:none}98%,100%{opacity:0}}
@keyframes messageThree{0%,36%{opacity:0;transform:translateY(20px) scale(.9)}42%,91%{opacity:1;transform:none}98%,100%{opacity:0}}
@keyframes messageFour{0%,48%{opacity:0;transform:translateY(20px) scale(.9)}54%,91%{opacity:1;transform:none}98%,100%{opacity:0}}
@keyframes messageFive{0%,60%{opacity:0;transform:translateY(20px) scale(.9)}66%,91%{opacity:1;transform:none}98%,100%{opacity:0}}
@keyframes bookingLoop{0%,67%{opacity:0;transform:translate3d(60px,40px,0) rotate(-15deg) scale(.65)}75%,91%{opacity:1;transform:none}98%,100%{opacity:0;transform:translateY(-25px)}}
.motion-story{height:320svh;position:relative;background:#1e1a17;padding:0!important;color:var(--cream);--story-p:0}.story-sticky{position:sticky;top:72px;height:calc(100svh - 72px);min-height:620px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 75% 50%,#a8583a22,transparent 60%)}.story-grain{position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.story-top,.story-bottom{position:absolute;left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;z-index:5;gap:24px}.story-top{top:38px}.story-bottom{bottom:35px}.story-label,.story-chapter{font-size:11px;font-weight:700;letter-spacing:.15em;color:#d8b7a4}.story-chapter{font-variant-numeric:tabular-nums}.story-copy{position:absolute;left:8%;top:29%;width:40%;z-index:4}.story-kicker{font-size:14px;color:#d8b7a4;margin-bottom:25px}.story-title{font:500 clamp(42px,5.4vw,82px)/1.03 var(--display);letter-spacing:-.045em}.story-title em{font-weight:400;color:#d99373}.story-description{max-width:370px;font-size:17px;line-height:1.7;color:#c0afa2;margin-top:28px}.story-stage{position:absolute;right:3%;top:14%;width:49%;height:73%;perspective:1000px}.story-halo{position:absolute;left:50%;top:50%;width:430px;height:430px;margin:-215px;border:1px solid #d9937325;border-radius:50%;transform:scale(var(--halo-scale,1))}.halo-b{width:580px;height:580px;margin:-290px;border-style:dashed;animation:sparkSpin 45s linear infinite}.story-path{position:absolute;inset:0;width:100%;height:100%;color:#d9937380;opacity:var(--path-opacity,.2)}.story-orb{position:absolute;left:50%;top:50%;width:170px;height:170px;margin:-85px;transform:translate3d(var(--orb-x,0px),var(--orb-y,0px),0) scale(var(--orb-scale,1));will-change:transform;z-index:3}.orb-core{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 32% 28%,#f5c8a5,#bf704b 35%,#87402b 72%);box-shadow:inset -10px -20px 30px #4d201560,0 0 70px #a8583a40;color:var(--cream);animation:orbBreathe 3s ease-in-out infinite}.orb-ripple{position:absolute;inset:-25%;border:1px solid #d9937350;border-radius:50%;animation:orbRipple 3s infinite}.ripple-two{animation-delay:1.5s}.story-notification{position:absolute;display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:18px;backdrop-filter:blur(14px);box-shadow:0 25px 60px #0004;border:1px solid #fff2;width:330px;z-index:4;will-change:transform,opacity}.notification-a{top:12%;left:2%;background:#fff;color:var(--ink);transform:translate3d(var(--call-x,0px),var(--call-y,0px),0) rotate(var(--call-r,-9deg));opacity:var(--call-opacity,1)}.notification-b{top:55%;right:0;background:#f7f2ec;color:var(--ink);transform:translate3d(var(--reply-x,60px),var(--reply-y,50px),0) rotate(7deg) scale(var(--reply-scale,.8));opacity:var(--reply-opacity,0)}.notification-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--terra-tint);color:var(--terra);font-size:24px;flex:none}.story-notification small{display:block;font-size:9px;letter-spacing:.1em;font-weight:800;color:var(--terra)}.story-notification strong{display:block;margin:6px 0;font-size:15px}.story-notification div>span{font-size:12px;color:var(--ink-soft)}.story-wave{position:absolute;left:0;right:0;top:49%;height:150px;display:flex;align-items:center;justify-content:center;gap:5px;z-index:1;opacity:var(--wave-opacity,0);transform:scaleX(var(--wave-scale,.3))}.story-wave i{display:block;flex:0 0 4px;height:var(--wave-height);background:linear-gradient(#e0aa86,#a8583a);border-radius:8px;animation:voiceDance var(--wave-speed) ease-in-out infinite;animation-delay:var(--wave-delay)}.story-calendar{position:absolute;left:12%;top:12%;width:360px;height:390px;border-radius:24px;background:#f7f2ec;color:var(--ink);padding:26px;box-shadow:0 35px 80px #0006;transform:translate3d(var(--calendar-x,130px),var(--calendar-y,140px),0) rotateY(var(--calendar-ry,-25deg)) rotate(var(--calendar-r,14deg)) scale(var(--calendar-scale,.65));opacity:var(--calendar-opacity,0);z-index:5;will-change:transform,opacity}.calendar-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:20px;font-weight:700;font-size:14px}.calendar-head span:last-child{color:var(--terra);font-size:12px}.calendar-hours{display:flex;flex-direction:column;gap:70px;font-size:11px;color:var(--ink-soft);padding-top:25px}.calendar-hours span::after{content:'';position:absolute;left:75px;right:24px;border-top:1px solid var(--border);margin-top:8px}.calendar-slot{position:absolute;left:75px;right:24px;top:156px;min-height:115px;border-radius:12px;border-left:4px solid var(--terra);background:var(--terra-tint);padding:15px;transform:scale(var(--slot-scale,.4));opacity:var(--slot-opacity,0);transform-origin:top left}.calendar-slot small{font-size:8px;font-weight:800;letter-spacing:.08em;color:var(--terra)}.calendar-slot strong{display:block;font:500 21px var(--display);margin:7px 0}.calendar-slot>span:not(.slot-check){display:block;font-size:11px;color:var(--ink-soft)}.calendar-slot i{display:inline-block;margin-top:10px;font-size:10px;font-style:normal;color:var(--terra);font-weight:700}.slot-check{position:absolute;top:-13px;right:-10px;width:30px;height:30px;background:var(--sage);color:white;border-radius:50%;display:grid;place-items:center;border:3px solid var(--cream)}.story-confetti{position:absolute;inset:0;pointer-events:none;z-index:6}.story-confetti i{position:absolute;left:50%;top:45%;width:7px;height:13px;background:var(--confetti-color);opacity:var(--confetti-opacity,0);transform:translate(var(--confetti-x),var(--confetti-y)) rotate(var(--confetti-r));border-radius:2px;will-change:transform}
.story-track{display:flex;gap:6px}.story-track i{display:block;width:48px;height:3px;border-radius:4px;background:#fff2}.story-track i.active{background:#d99373}.scroll-invitation{font-size:11px;color:#c0afa2}.scroll-invitation>span{display:inline-block;margin-left:8px;animation:scrollNudge 1.5s infinite}.story-result{font:italic 15px var(--display);color:#d8b7a4}
@keyframes orbBreathe{50%{scale:1.05;filter:brightness(1.12)}}@keyframes orbRipple{from{scale:.7;opacity:.7}to{scale:1.55;opacity:0}}@keyframes voiceDance{0%,100%{scale:1 .25}50%{scale:1 1}}@keyframes scrollNudge{50%{translate:0 5px}}
.day-switching .popIn{animation:dayCascade .9s var(--ease-out) both;animation-delay:calc(var(--card-index,0)*.09s)!important}.day-switching .popIn:nth-child(2){--card-index:1}.day-switching .popIn:nth-child(3){--card-index:2}.day-switching .popIn:nth-child(4){--card-index:3}.day-switching .popIn:nth-child(5){--card-index:4}@keyframes dayCascade{from{opacity:0;transform:perspective(900px) translateY(100px) rotateX(-40deg) rotateZ(-5deg);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
#journee{transition:background .8s,color .8s}#journee.ai-day{background:#efe3d3}#journee h2,#fonctionnement h2,#simulateur h2,#tarifs h2{perspective:900px}.word-reveal{display:inline-block;transform-origin:left bottom;transition:transform .9s var(--ease-out),opacity .9s,filter .9s;transition-delay:calc(var(--word-index)*.025s)}.pending .word-reveal{transform:translateY(60px) rotateX(-70deg) rotateZ(4deg);opacity:0;filter:blur(7px)}.js-reveal{transition-duration:1.1s;transition-timing-function:var(--ease-out)}.js-reveal.pending{transform:translateY(65px)}.card.lift{transition:transform .6s var(--ease-out),box-shadow .6s}.card.lift:hover{transform:perspective(1000px) translateY(-12px) rotateX(4deg) rotateY(-3deg)}.btn{position:relative;overflow:hidden;isolation:isolate}.btn::before{content:'';position:absolute;inset:0;background:#ffffff25;transform:translateX(-105%) skewX(-20deg);transition:transform .65s var(--ease-out);z-index:-1}.btn:hover::before{transform:translateX(105%) skewX(-20deg)}.marquee{animation-duration:30s}.motion-paused .story-wave i,.motion-paused .orb-core{animation-play-state:paused!important}.motion-paused .opening{display:none}.motion-paused .line-in{transform:none!important;filter:none!important}.motion-paused .fadeUp{opacity:1!important}.motion-paused .phone-float{opacity:1!important}.motion-paused .word-reveal{opacity:1;transform:none;filter:none}
@media(min-width:1100px){.hero h1{font-size:clamp(4.2rem,5.8vw,5.6rem)!important}.call-preview{height:660px!important}.hero{padding-top:64px!important;padding-bottom:68px!important}}
@media(max-width:1000px){.orbit-tag.tag-two{right:0}.story-copy{left:6%;width:42%}.story-stage{right:1%;width:50%}.story-calendar{width:300px;left:5%}.story-notification{width:285px;padding:17px}.story-title{font-size:54px}.story-result{display:none}}
@media(max-width:760px){.opening-word i{font-size:11px;top:60%}.hero .line-in{animation-duration:1.1s}.hero h1{font-size:clamp(2.7rem,10vw,4rem)!important}.phone-float{left:20px!important;width:270px!important;height:570px!important}.call-preview{height:640px!important}.hero-orbits{inset:20px 0 0}.orbit{width:400px;height:400px;margin:-200px}.orbit-two{width:350px;height:350px;margin:-175px}.orbit-three{width:470px;height:470px;margin:-235px}.spark-one{right:5px}.spark-two{left:5px}.tag-one{right:0;top:0;font-size:14px}.tag-two{right:0;top:250px;font-size:14px}.tag-three{left:0;bottom:70px;font-size:12px;z-index:5}.call-preview>div[style*="bottom:70px"]{width:225px!important;bottom:50px!important}.bookcard{padding:16px!important}.demo-caption{font-size:9px;max-width:75%;bottom:4px}.replay-call{bottom:0;font-size:10px}.motion-story{height:290svh}.story-sticky{min-height:0;height:calc(100svh - 72px)}.story-top{top:20px;left:6%;right:6%}.story-copy{left:7%;top:11%;width:86%}.story-kicker{font-size:11px;margin-bottom:12px}.story-title{font-size:clamp(32px,8vw,48px);line-height:1}.story-description{font-size:12px;line-height:1.5;margin-top:12px;max-width:300px}.story-stage{top:39%;right:0;width:100%;height:51%;transform:scale(.86)}.story-orb{width:130px;height:130px;margin:-65px}.story-halo{width:300px;height:300px;margin:-150px}.halo-b{width:390px;height:390px;margin:-195px}.story-notification{width:260px;padding:14px}.notification-a{top:0;left:0}.notification-b{top:65%;right:0}.story-calendar{height:310px;width:280px;left:calc(50% - 140px);top:0;padding:20px}.calendar-slot{left:65px;right:20px;top:135px;padding:12px}.calendar-slot strong{font-size:18px}.calendar-hours{gap:53px}.story-bottom{bottom:18px;left:6%;right:6%;gap:10px}.scroll-invitation{font-size:9px;max-width:155px}.story-track i{width:26px}.story-wave{gap:3px}.story-wave i{flex-basis:3px}.story-label,.story-chapter{font-size:9px}}
@media(max-height:700px) and (min-width:761px){.story-sticky{min-height:0}.story-stage{transform:scale(.8);transform-origin:center}.story-title{font-size:54px}.story-copy{top:23%}}
@media(prefers-reduced-motion:reduce){.opening{display:none}.phone-float{opacity:1!important;transform:rotate(-3deg)!important}.hero .line-in{filter:none!important;transform:none!important}.hero .fadeUp{opacity:1!important}.hero-orbits{display:none}.motion-story{height:auto}.story-sticky{position:relative;top:0;height:750px;min-height:0}.story-title{font-size:50px}.story-description{font-size:16px}.story-orb,.story-notification,.story-wave{display:none}.story-calendar{opacity:1;transform:none}.calendar-slot{opacity:1;transform:none}.story-confetti{display:none}.word-reveal{transform:none!important;opacity:1!important;filter:none!important}.scroll-invitation{display:none}.bub,.bookcard{opacity:1!important;transform:none!important}.story-path .path-dot{display:none}}
.tag-three{left:auto;right:-25px;bottom:165px}
@media(max-width:760px){.tag-three{left:0;right:auto;bottom:70px}}
@media(prefers-reduced-motion:reduce){.hero .phone-float,.hero .bub,.hero .bookcard,.hero .ringscreen,.hero .fadeUp,.hero .line-in{animation:none!important}.hero .ringscreen{display:none!important}.hero .phone-float{transform:rotate(-3deg)!important}}

/* Rendering budget: compositor-only movement, cached grain and visible regions. */
.story-grain{background-image:url('/presentation/assets/grain.png');background-size:150px 150px;contain:strict;transform:translateZ(0)}
.story-notification{backdrop-filter:none;-webkit-backdrop-filter:none}
.story-stage{contain:layout style}
.story-path{contain:strict;transform:translateZ(0)}
.story-path-traveller{position:absolute;left:50%;top:50%;width:600px;height:500px;pointer-events:none;transform-origin:center;opacity:.2;will-change:opacity}
.story-path-traveller>i{position:absolute;left:0;top:0;width:12px;height:12px;border-radius:50%;background:#d9937380;offset-path:path('M100 280C100 80 500 70 500 260S170 470 180 320');offset-rotate:0deg;animation:pathTravel 5s linear infinite;will-change:offset-distance}
@keyframes pathTravel{to{offset-distance:100%}}
@keyframes travel{0%{transform:translate3d(0,0,0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translate3d(var(--travel-distance,0px),0,0);opacity:0}}
.motion-idle *,.motion-idle *::before,.motion-idle *::after,.wave-idle i{animation-play-state:paused!important}
.motion-idle .phone-float,.motion-idle .story-orb,.motion-idle .story-notification,.motion-idle .story-calendar,.motion-idle .story-confetti i{will-change:auto}
.hero .phone-float.phone-arrived{animation:none!important;opacity:1}
.orb-core,.orb-ripple,.story-halo,.story-wave,.calendar-slot{will-change:transform,opacity}
.story-wave i{contain:strict;transform:translateZ(0)}
.orbit,.orbit-spark,.orbit-tag,.marquee{backface-visibility:hidden}
.travel{left:0!important;will-change:transform,opacity}
.opening-shutter{will-change:transform}
@media(prefers-reduced-motion:reduce){.story-path-traveller{display:none}.story-calendar,.calendar-slot{transform:none!important;opacity:1!important}}
/* Avoid repainting the entire clipped phone for a tiny animated status glow. */
.dot-live{position:relative;animation:none;box-shadow:none}
.dot-live::after{content:'';position:absolute;inset:-6px;border-radius:50%;background:rgba(86,112,90,.5);animation:liveGlow 1.6s ease-in-out infinite;will-change:transform,opacity;z-index:-1}
@keyframes liveGlow{0%,100%{transform:scale(.4);opacity:1}50%{transform:scale(1);opacity:0}}
.phone-float>div>div{transform:translateZ(0);backface-visibility:hidden}
/* Equivalent motion using transform instead of individual scale/translate. */
.tag-one{--tag-angle:8deg}
.call-preview>.phone-float~div[style*="bottom:70px"]{--tag-angle:6deg}
@keyframes tagFloat{0%,100%{transform:translate3d(0,0,0) rotate(var(--tag-angle,0deg))}50%{transform:translate3d(0,-18px,0) rotate(var(--tag-angle,0deg))}}
@keyframes orbBreathe{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.12)}}
@keyframes orbRipple{from{transform:scale(.7);opacity:.7}to{transform:scale(1.55);opacity:0}}
@keyframes voiceDance{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes scrollNudge{50%{transform:translateY(5px)}}
.orb-core{will-change:transform,filter}
.story-wave i{will-change:transform}
.orbit,.orbit-tag,.halo-b{will-change:transform}
#site-header{transform:translateZ(0)}
.motion-idle .orb-core,.motion-idle .story-wave i,.motion-idle .orbit,.motion-idle .orbit-tag,.motion-idle .halo-b,.motion-idle .orb-ripple{will-change:auto}
.dot-live{isolation:isolate}
.wave-idle i{will-change:auto;transform:none!important}
.opening-word,.opening-word>span,.hero .line-in{will-change:transform,opacity,filter}
.hero .line-in.type-arrived{will-change:auto}
.motion-idle .line-in{will-change:auto}
/* Keep the scaled mobile scene in its own compositor surface. */
.story-sticky{transform:translateZ(0)}
.story-stage{will-change:transform}
.motion-idle .story-stage{will-change:auto}
@media(max-width:760px){.story-stage{transform:translateZ(0) scale(.86)}}

/* Tifenn in action: two drawing surfaces instead of 79 animation layers. */
.story-wave canvas{display:block;width:100%;height:100%;flex:none}
.story-confetti canvas{position:absolute;inset:0;width:100%;height:100%}
.story-sticky{background-image:url('/presentation/assets/grain-faint.png'),radial-gradient(ellipse at 75% 50%,#a8583a22,transparent 60%);background-size:150px 150px,100% 100%;background-repeat:repeat,no-repeat}
.story-grain{display:none}
.story-kicker,.story-title,.story-description{will-change:transform,opacity}
.story-confetti{contain:strict}
.motion-idle .story-kicker,.motion-idle .story-title,.motion-idle .story-description{will-change:auto}
.story-panel{position:absolute;left:0;top:0;width:100%;opacity:0;transform:translate3d(0,35px,0);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);will-change:transform,opacity;pointer-events:none}
.story-panel.active{opacity:1;transform:translate3d(0,0,0);pointer-events:auto}
.story-panel .story-kicker,.story-panel .story-title,.story-panel .story-description{will-change:auto}
body.story-in-view #site-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgb(221,216,210)!important}
@keyframes orbBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.orb-core{will-change:transform;filter:none}
.orb-core::after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffff36,#ffffff10 40%,transparent 75%);opacity:0;animation:orbLight 3s ease-in-out infinite;pointer-events:none;will-change:opacity}
@keyframes orbLight{50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.story-panel{transition:none;transform:none}.story-panel.active{transform:none}}
/* Avoid a viewport-sized intermediate texture on software compositors. */
.story-sticky{transform:none}
.story-stage{will-change:auto}
.story-confetti canvas{transform:translateZ(0)}
@media(max-width:760px){.story-stage{will-change:transform}}
/* Keep the sticky scene isolated: removing this surface repaints the viewport. */
.story-sticky{transform:translateZ(0)}
.story-stage{will-change:transform}
.motion-idle .story-stage{will-change:auto}

/* Setup steps share one active state, cycling 1 → 2 → 3. */
.setup-badge{position:relative;isolation:isolate;transition:color .35s ease,transform .45s var(--ease-out)}
.setup-badge::before{content:'';position:absolute;inset:0;border-radius:50%;background:var(--terra);opacity:0;transform:scale(.8);transition:opacity .35s ease,transform .45s var(--ease-out);z-index:-1}
.setup-step.is-active .setup-badge{color:#fff!important;transform:scale(1.06)}
.setup-step.is-active .setup-badge::before{opacity:1;transform:scale(1)}
.setup-step h3{transition:color .35s ease}
.setup-step.is-active h3{color:var(--terra-deep)}
.setup-connector .travel{animation:none!important;opacity:1;transition:transform .7s var(--ease-out)}
@media(prefers-reduced-motion:reduce){.setup-badge,.setup-badge::before,.setup-step h3,.setup-connector .travel{transition:none!important}.setup-step.is-active .setup-badge{transform:none}}
.setup-step{position:relative}

/* Continuous thread, including wrapped layouts, with one composited travelling dot. */
.setup-connector{border:0!important;pointer-events:none;color:rgba(30,24,18,.18);overflow:visible}
.setup-connector svg{display:block;width:100%;height:100%;overflow:visible}
.setup-connector .travel{top:0;left:0!important;transform:none!important;offset-rotate:0deg;transition:none;will-change:offset-distance,opacity;box-shadow:0 0 0 6px rgba(168,88,58,.18)}
@media(prefers-reduced-motion:reduce){.setup-connector .travel{opacity:0!important}}
