*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.locked{overflow:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.serif{font-family:var(--serif);font-weight:var(--serif-w,400)}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;opacity:.7}
.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
@media (max-width:700px){.wrap{width:calc(100% - 32px)}}
.hdr{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;color:#fff;transition:color .4s,background .4s,transform .5s}
.hdr.solid{color:var(--ink);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hdr.hide{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:10px;font-size:15px;letter-spacing:.04em}
.brand .mono{width:34px;height:34px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:15px;letter-spacing:0}
.hdr nav{display:flex;gap:26px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.hdr nav a{opacity:.85}
.hdr nav a:hover{opacity:1}
.pill{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;font-size:14px;letter-spacing:.02em;border:1px solid currentColor;transition:background .3s,color .3s,transform .3s}
.pill.fill{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pill:hover{transform:translateY(-1px)}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 0 var(--live);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--live) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (max-width:860px){.hdr nav{display:none}.hdr{padding:14px 16px}.hdr .pill{padding:10px 14px;font-size:13px}}
.intro{position:fixed;inset:0;z-index:100;background:var(--intro-bg);color:var(--ink);display:grid;place-items:center;transition:opacity .9s ease}
.intro.out{opacity:0;pointer-events:none}
.intro .card{position:absolute;inset:0;margin:auto;width:min(260px,52vw);aspect-ratio:3/4;overflow:hidden;border-radius:6px;clip-path:inset(0 0 0 0 round 6px);transition:width 1.4s cubic-bezier(.7,0,.2,1),aspect-ratio 1.4s cubic-bezier(.7,0,.2,1),border-radius 1.4s;animation:float 6s ease-in-out infinite}
.intro.open .card{width:100vw;aspect-ratio:auto;height:100vh;height:100svh;border-radius:0;animation:none}
.intro .card video,.intro .card img{width:100%;height:100%;object-fit:cover}
@keyframes float{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-6px)}}
.intro .word{position:absolute;top:28px;left:0;right:0;text-align:center;font-size:13px;letter-spacing:.3em;text-transform:uppercase}
.intro .load{position:absolute;bottom:28px;left:28px;font-size:13px;letter-spacing:.2em;text-transform:uppercase}
.intro .enter{position:absolute;bottom:22px;right:28px;opacity:0;transition:opacity .5s}
.intro.ready .enter{opacity:1}
.intro.open .word,.intro.open .load,.intro.open .enter{opacity:0;transition:opacity .4s}
.hero{position:relative;height:200svh}
.hero .stage{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center}
.hero .vid{position:absolute;inset:0;clip-path:inset(0 0 0 0 round 0 0 0 0);will-change:clip-path}
.hero .vid video,.hero .vid img{width:100%;height:100%;object-fit:cover}
.hero .vid::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.05) 40%,rgba(0,0,0,.45))}
.hero .name{position:relative;z-index:2;color:#fff;font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(64px,15vw,240px);line-height:.9;letter-spacing:var(--display-ls,-.02em);display:flex;gap:calc(var(--spread,0) * 1vw);white-space:nowrap}
.hero .name span{display:inline-block;overflow:hidden;padding-top:.16em;margin-top:-.16em}
.hero .name span i{display:inline-block;font-style:normal;transform:translateY(140%);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.hero.in .name span i{transform:none}
.hero .sub{position:absolute;z-index:2;left:0;right:0;bottom:9svh;display:flex;flex-direction:column;align-items:center;gap:20px;color:#fff;text-align:center;padding:0 20px}
.hero .sub p{font-size:clamp(16px,1.6vw,20px);max-width:620px;opacity:.92}
.hero .sub .ctas{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.hero .tag{position:absolute;z-index:2;top:96px;left:28px;color:#fff}
.hero .tag2{position:absolute;z-index:2;top:96px;right:28px;color:#fff;text-align:right}
@media (max-width:700px){.hero .name{font-size:clamp(52px,17vw,110px)}.hero .tag,.hero .tag2{top:76px;left:16px}.hero .tag2{display:none}.hero .sub{bottom:7svh}}
.manifesto{padding:22vh 0 18vh}
.manifesto .big{font-family:var(--serif);font-weight:var(--serif-w,400);font-size:clamp(30px,4.6vw,68px);line-height:1.08;letter-spacing:-.01em;max-width:1100px}
.manifesto .big .w{color:var(--mute);transition:color .25s}
.manifesto .big .w.on{color:var(--ink)}
.manifesto .meta{display:flex;justify-content:space-between;gap:30px;margin-top:60px;flex-wrap:wrap}
.chap-index{display:flex;gap:28px;flex-wrap:wrap}
.chap-index a{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.chap-index a:hover{opacity:1}
.chap-index .fig{width:18px;height:18px;background:var(--ink)}
.chapter{position:relative;height:330svh}
.chapter .stage{position:sticky;top:0;height:100svh;overflow:hidden}
.chapter .corner{position:absolute;z-index:6;font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:color .4s}
.chapter .c1{top:96px;left:28px}.chapter .c2{top:96px;right:28px;text-align:right}.chapter .c3{bottom:26px;left:28px}.chapter .c4{bottom:26px;right:28px}
.chapter .mask{position:absolute;inset:0;z-index:1;will-change:clip-path}
.chapter .mask video,.chapter .mask img{width:100%;height:100%;object-fit:cover;transform:scale(var(--sc,1.3));will-change:transform}
.chapter .mask::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,var(--shade,.18))}
.chapter .title{position:absolute;z-index:5;left:0;right:0;top:50%;text-align:center;transform:translateY(calc(-50% + var(--ty,0px))) scale(var(--ts,1));transform-origin:50% 50%;font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(54px,11vw,190px);line-height:.92;letter-spacing:var(--display-ls,-.02em);color:var(--ink);transition:color .35s}
.chapter.is-over .title,.chapter.is-over .corner{color:#fff}
.chapter .title span{display:inline-block;overflow:hidden;padding-top:.16em;margin-top:-.16em}
.chapter .title span i{display:inline-block;font-style:normal;transform:translateY(calc(var(--ly,1) * 140%))}
.chapter .card{position:absolute;z-index:7;right:28px;bottom:64px;width:min(460px,calc(100% - 32px));background:var(--card);color:var(--ink);border-radius:14px;padding:28px;opacity:0;transform:translateY(40px);transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1);box-shadow:0 30px 80px -30px rgba(0,0,0,.45)}
.chapter.card-in .card{opacity:1;transform:none}
.chapter .card .lead{font-family:var(--serif);font-weight:var(--serif-w,400);font-size:26px;line-height:1.15;margin:10px 0 12px}
.chapter .card p{font-size:15px;opacity:.85}
.chapter .card .sig{display:flex;align-items:center;gap:12px;margin-top:18px;font-size:13px;opacity:.75}
.chapter .card .sig img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.chapter .card .steps{list-style:none;margin-top:14px;display:grid;gap:8px;counter-reset:s}
.chapter .card .steps li{display:flex;gap:12px;font-size:14px;align-items:baseline}
.chapter .card .steps li::before{counter-increment:s;content:"0" counter(s);font-size:11px;letter-spacing:.1em;opacity:.55;min-width:20px}
.chapter .bar{position:absolute;z-index:6;left:28px;right:28px;bottom:14px;height:1px;background:color-mix(in srgb,currentColor 25%,transparent)}
.chapter .bar i{display:block;height:100%;width:calc(var(--p,0)*100%);background:currentColor}
@media (max-width:700px){.chapter{height:270svh}.chapter .c1,.chapter .c2{top:74px}.chapter .c1{left:16px}.chapter .c2{right:16px}.chapter .c3{left:16px}.chapter .c4{right:16px}.chapter .card{left:16px;right:16px;width:auto;bottom:40px;padding:22px}.chapter .card .lead{font-size:21px}.chapter .bar{left:16px;right:16px}}
.rows{padding:12vh 0}
.rows h3{font-family:var(--serif);font-weight:var(--serif-w,400);font-size:clamp(28px,3.4vw,46px);margin:10px 0 40px;max-width:760px;line-height:1.1}
.row{position:relative;display:grid;grid-template-columns:70px 1fr 1.1fr;gap:24px;align-items:baseline;padding:28px 0;border-top:1px solid var(--line);transition:opacity .35s}
.row:last-child{border-bottom:1px solid var(--line)}
.row .n{font-size:12px;letter-spacing:.15em;opacity:.55}
.row .t{font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(26px,3vw,44px);line-height:1.05;letter-spacing:var(--display-ls,-.01em)}
.row .d{font-size:15px;opacity:.8;max-width:520px}
.row .ph{display:none}
.rows.dim .row{opacity:.28}.rows.dim .row.act{opacity:1}
.cursor-img{position:fixed;z-index:30;left:0;top:0;width:280px;aspect-ratio:4/5;border-radius:10px;overflow:hidden;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .3s,scale .3s}
.cursor-img.on{opacity:1}
.cursor-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .25s}
.cursor-img img.on{opacity:1}
@media (hover:none),(max-width:860px){.row{grid-template-columns:44px 1fr;gap:8px 14px}.row .d{grid-column:2}.row .ph{display:block;grid-column:1/-1;margin-top:14px;aspect-ratio:16/10;border-radius:10px;overflow:hidden;clip-path:inset(0 0 100% 0 round 10px);transition:clip-path .9s cubic-bezier(.2,.8,.2,1)}.row.act .ph{clip-path:inset(0 0 0 0 round 10px)}.row .ph img{width:100%;height:100%;object-fit:cover}.cursor-img{display:none}}
.band{padding:10vh 0;overflow:hidden}
.band .head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.band h3{font-family:var(--serif);font-weight:var(--serif-w,400);font-size:clamp(28px,3.4vw,46px);line-height:1.1;max-width:700px}
.band .track{display:flex;gap:16px;width:max-content;animation:slide 60s linear infinite}
.band:hover .track{animation-play-state:paused}
.band figure{width:clamp(220px,24vw,340px);aspect-ratio:3/4;border-radius:12px;overflow:hidden;position:relative;flex:none}
.band figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.band figcaption{position:absolute;left:12px;bottom:12px;right:12px;color:#fff;font-size:12px;letter-spacing:.08em;text-shadow:0 1px 8px rgba(0,0,0,.5)}
@keyframes slide{to{transform:translateX(-50%)}}
.proof{padding:12vh 0;border-top:1px solid var(--line)}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.num .v{font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(48px,6vw,96px);line-height:1;letter-spacing:-.02em}
.num .l{font-size:13px;opacity:.7;margin-top:10px;max-width:220px}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:9vh}
.quote{background:var(--card);border-radius:14px;padding:26px;border:1px solid var(--line)}
.quote p{font-family:var(--serif);font-weight:var(--serif-w,400);font-size:20px;line-height:1.3}
.quote .who{margin-top:16px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.6}
@media (max-width:860px){.nums{grid-template-columns:repeat(2,1fr);row-gap:40px}.quotes{grid-template-columns:1fr}}
.sofia{background:var(--dark);color:var(--on-dark);padding:14vh 0;position:relative;overflow:hidden}
.sofia .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.sofia h2{font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(44px,6vw,96px);line-height:.95;letter-spacing:var(--display-ls,-.02em);margin:16px 0 24px}
.sofia .lede{font-size:18px;opacity:.85;max-width:520px}
.sofia ul.can{list-style:none;margin:30px 0;display:grid;gap:12px}
.sofia ul.can li{display:flex;gap:12px;font-size:15px;opacity:.9}
.sofia ul.can li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--live)}
.callbox{display:flex;align-items:center;gap:18px;margin-top:10px;flex-wrap:wrap}
.orb{width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--orb2),var(--orb1) 70%);box-shadow:0 0 0 0 color-mix(in srgb,var(--orb2) 50%,transparent);transition:transform .2s;flex:none;position:relative}
.orb.live{animation:orb 1.6s ease-in-out infinite}
.orb.talk{transform:scale(1.12)}
@keyframes orb{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--orb2) 55%,transparent)}50%{box-shadow:0 0 0 18px transparent}}
.callbtn{background:var(--on-dark);color:var(--dark);padding:16px 26px;border-radius:999px;font-size:15px;font-weight:500}
.callbtn.end{background:#e5484d;color:#fff}
.callstatus{font-size:13px;opacity:.75;min-height:20px;margin-top:8px}
.langs{display:flex;gap:8px;margin-top:16px}
.langs button{border:1px solid color-mix(in srgb,var(--on-dark) 35%,transparent);border-radius:999px;padding:6px 12px;font-size:12px;letter-spacing:.08em;opacity:.7}
.langs button.on{opacity:1;background:var(--on-dark);color:var(--dark)}
.transcript{margin-top:18px;font-size:14px;opacity:.8;max-width:520px;min-height:22px}
.note{margin-top:26px;font-size:12px;opacity:.55;max-width:520px}
.phone{width:min(380px,100%);margin-inline:auto;aspect-ratio:9/18.5;background:#0b0b0b;border-radius:44px;padding:12px;box-shadow:0 50px 120px -40px rgba(0,0,0,.7),inset 0 0 0 2px #2a2a2a;position:relative}
.phone .scr{width:100%;height:100%;border-radius:34px;overflow:hidden;background:#efeae2;display:flex;flex-direction:column;color:#111}
.wa-top{background:#075e54;color:#fff;padding:38px 14px 12px;display:flex;align-items:center;gap:10px}
.wa-top .av{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--orb2),var(--orb1) 70%);flex:none}
.wa-top b{display:block;font-size:15px;font-weight:600}
.wa-top small{font-size:12px;opacity:.85}
.wa-body{flex:1;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:6px;background:#efeae2;background-image:radial-gradient(rgba(0,0,0,.035) 1px,transparent 1px);background-size:14px 14px;scroll-behavior:smooth}
.msg{max-width:82%;padding:6px 9px 6px 10px;border-radius:9px;font-size:14px;line-height:1.38;position:relative;box-shadow:0 1px .5px rgba(0,0,0,.13);white-space:pre-wrap;overflow-wrap:anywhere;animation:pop .25s ease}
.msg::after{content:"";display:block;clear:both}
.msg time{float:right;position:relative;top:6px;margin:0 0 0 12px;font-size:10.5px;line-height:15px;opacity:.5;white-space:nowrap}
.msg.in{align-self:flex-start;background:#fff;border-top-left-radius:2px}
.msg.out{align-self:flex-end;background:#d9fdd3;border-top-right-radius:2px}
.msg.sys{align-self:center;background:#fff6c5;font-size:12px;padding:6px 10px;color:#54656f;box-shadow:none}
.typing{align-self:flex-start;background:#fff;border-radius:9px;padding:10px 12px;display:none;gap:4px}
.typing.on{display:flex}
.typing i{width:6px;height:6px;border-radius:50%;background:#999;animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.3}40%{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chips{display:flex;gap:6px;flex-wrap:wrap;padding:8px 10px 0;background:#efeae2}
.chips button{background:#fff;border:1px solid #d1d7db;border-radius:999px;padding:6px 10px;font-size:12.5px;color:#075e54}
.wa-in{display:flex;gap:8px;padding:8px 10px 14px;background:#efeae2}
.wa-in input{flex:1;border:0;border-radius:999px;padding:11px 14px;font:inherit;font-size:16px;background:#fff;color:#111;outline:none}
.wa-in button{width:42px;height:42px;border-radius:50%;background:#00a884;color:#fff;display:grid;place-items:center;flex:none}
@media (max-width:900px){.sofia .grid{grid-template-columns:1fr;gap:50px}.phone{aspect-ratio:auto;height:640px}}
.contact{padding:16vh 0 8vh;text-align:center}
.contact h2{font-family:var(--display);font-weight:var(--display-w,400);font-size:clamp(46px,8vw,130px);line-height:.95;letter-spacing:var(--display-ls,-.02em)}
.contact .ctas{display:flex;justify-content:center;gap:12px;margin-top:40px;flex-wrap:wrap}
.contact .info{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:12vh;text-align:left;border-top:1px solid var(--line);padding-top:30px;font-size:14px}
.contact .info b{display:block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:10px;font-weight:500}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:40px 0 30px;font-size:12px;opacity:.6}
@media (max-width:700px){.contact .info{grid-template-columns:1fr}}
.magnet{position:relative;overflow:hidden;isolation:isolate}
.magnet::before{content:"";position:absolute;left:var(--mx,50%);top:var(--my,50%);width:0;height:0;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%);transition:width .5s,height .5s;z-index:-1}
.magnet:hover::before{width:420px;height:420px}
.magnet:hover{color:var(--bg)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
