:root {
  --ink: #1b2430;
  --slate: #3a465a;
  --blue: #243a5e;
  --mist: #94a3b8;
  --paper: #ffffff;
  --cloud: #f6f8fb;
  --line: rgba(36, 58, 94, .14);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-soft: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, system-ui, sans-serif; font-size: 1rem; line-height: 1.6; overflow-x: hidden; }
body.intro-active { overflow: hidden; }
body.cursor-on, body.cursor-on a, body.cursor-on button, body.cursor-on input, body.cursor-on textarea { cursor: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
.skip-link { position: fixed; z-index: 10001; top: .6rem; left: .6rem; padding: .7rem 1rem; background: white; border: 1px solid var(--line); transform: translateY(-160%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }

.grid-surface { background-color: var(--paper); background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 72px 72px; }
.kicker { margin: 0 0 1.4rem; color: var(--blue); font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.kicker.light { color: rgba(255,255,255,.55); }

/* Original SOREN cursor */
.cursor-dot, .cursor-ring { position: fixed; z-index: 9999; left: 0; top: 0; pointer-events: none; border-radius: 50%; opacity: 0; transform: translate(-50%, -50%); }
.cursor-dot { width: 6px; height: 6px; background: var(--blue); transition: opacity .2s var(--ease), background .25s; }
.cursor-ring { width: 36px; height: 36px; border: 1px solid rgba(36,58,94,.4); transition: width .3s var(--ease), height .3s var(--ease), background-color .3s var(--ease), border-color .3s var(--ease), backdrop-filter .3s var(--ease), opacity .2s var(--ease); }
body.cursor-on .cursor-dot, body.cursor-on .cursor-ring { opacity: 1; }
body.cursor-hover .cursor-ring { width: 56px; height: 56px; border-color: rgba(36,58,94,.2); background: rgba(36,58,94,.08); backdrop-filter: blur(2px); }
body.cursor-light .cursor-dot { background: white; }
body.cursor-light .cursor-ring { border-color: rgba(255,255,255,.52); }
body.cursor-light.cursor-hover .cursor-ring { border-color: rgba(255,255,255,.26); background: rgba(255,255,255,.09); }
.page-progress { position: fixed; z-index: 80; top: 0; left: 0; width: 100%; height: 2px; }
.page-progress i { display: block; width: 100%; height: 100%; background: var(--blue); transform: scaleX(0); transform-origin: left; }

/* Five-second opening */
.intro { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; overflow: hidden; background: white; animation: intro-away .75s var(--ease-soft) 4.25s forwards; }
.intro.is-skipped { animation: intro-skip .5s var(--ease) forwards; }
.intro-grid { position: absolute; inset: -1px; background-image: linear-gradient(rgba(36,58,94,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(36,58,94,.08) 1px, transparent 1px); background-size: 64px 64px; opacity: 0; animation: grid-on 1.1s ease .05s forwards, grid-drift 8s linear infinite; }
.intro::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at center, rgba(36,58,94,.08), transparent 42%); transform: scale(.2); opacity: 0; animation: aura-open 1.55s var(--ease-soft) .45s forwards, aura-breathe 2.6s ease-in-out 1.8s infinite alternate; }
.intro-frame { position:absolute; inset:clamp(1.4rem,4vw,3.5rem); opacity:0; animation:frame-on 1s var(--ease-soft) .35s forwards; }
.intro-frame i { position:absolute; width:clamp(2.5rem,7vw,6rem); height:clamp(2.5rem,7vw,6rem); border-color:rgba(36,58,94,.2); }
.intro-frame i:nth-child(1){left:0;top:0;border-left:1px solid;border-top:1px solid}.intro-frame i:nth-child(2){right:0;top:0;border-right:1px solid;border-top:1px solid}.intro-frame i:nth-child(3){right:0;bottom:0;border-right:1px solid;border-bottom:1px solid}.intro-frame i:nth-child(4){left:0;bottom:0;border-left:1px solid;border-bottom:1px solid}
.intro-core { position: absolute; z-index: 2; left: 50%; top: 50%; display: grid; place-items: center; width: min(44rem, 92vw); transform: translate(-50%, -50%); }
.intro-mark { position: relative; display: grid; place-items: center; width: 7.5rem; height: 7.5rem; border: 1px solid rgba(36,58,94,.12); border-radius: 1.8rem; transform: scale(.55) rotate(-8deg); opacity: 0; animation: mark-in 1s var(--ease-soft) .3s forwards; }
.intro-mark::before, .intro-mark::after { content: ""; position: absolute; inset: -.8rem; border: 1px solid rgba(36,58,94,.1); border-radius: 2.3rem; animation: blueprint 2.3s var(--ease-soft) .5s both; }
.intro-mark::after { inset: -1.6rem; border-radius: 2.8rem; animation-delay: .58s; }
.intro-mark img { width: 4.9rem; }
.intro-wordmark { width: 11rem; margin-top: 1.6rem; opacity: 0; transform: translateY(.7rem); animation: wordmark-in .8s var(--ease-soft) .85s forwards; }
.intro-words { position: relative; width: 100%; height: 3.2rem; margin-top: 1.2rem; overflow: hidden; color: var(--blue); text-align: center; font:700 clamp(1.25rem,2.8vw,2.25rem)/1.2 "Plus Jakarta Sans",sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.intro-words span { position: absolute; left: 0; width: 100%; opacity: 0; transform: translateY(105%); animation: word-cycle 1.05s var(--ease-soft) forwards; }
.intro-words span:nth-child(1) { animation-delay: 1.35s; }
.intro-words span:nth-child(2) { animation-delay: 2.4s; }
.intro-words span:nth-child(3) { animation-delay: 3.45s; }
.intro-rings { position: absolute; width: 24rem; height: 24rem; }
.intro-rings i { position: absolute; inset: 50%; border: 1px solid rgba(36,58,94,.14); border-radius: 50%; transform: translate(-50%,-50%) scale(0); animation: ring-wave 2.2s var(--ease-soft) forwards; }
.intro-rings i:nth-child(1) { animation-delay: .45s; }.intro-rings i:nth-child(2) { animation-delay: 1.15s; }.intro-rings i:nth-child(3) { animation-delay: 1.85s; }
.intro-particles { position:absolute; inset:0; pointer-events:none; }
.intro-particles i { position:absolute; width:.38rem; height:.38rem; border-radius:50%; background:var(--blue); opacity:0; animation:particle-float 2.5s var(--ease-soft) forwards; }
.intro-particles i:nth-child(1){left:15%;top:22%;animation-delay:.6s}.intro-particles i:nth-child(2){left:29%;top:73%;animation-delay:1.05s}.intro-particles i:nth-child(3){left:72%;top:19%;animation-delay:1.35s}.intro-particles i:nth-child(4){left:84%;top:66%;animation-delay:1.7s}.intro-particles i:nth-child(5){left:9%;top:58%;animation-delay:2.05s}.intro-particles i:nth-child(6){left:63%;top:81%;animation-delay:2.35s}.intro-particles i:nth-child(7){left:91%;top:36%;animation-delay:2.7s}.intro-particles i:nth-child(8){left:39%;top:14%;animation-delay:3s}
.intro-scan { position: absolute; z-index: 1; background: var(--blue); opacity: .24; }
.intro-scan-x { top: 50%; left: 0; width: 100%; height: 1px; transform: scaleX(0); animation: scan-x 1s var(--ease) .2s forwards; }
.intro-scan-y { top: 0; left: 50%; width: 1px; height: 100%; transform: scaleY(0); animation: scan-y 1s var(--ease) .2s forwards; }
.intro-meter { position: absolute; left: 50%; bottom: 3rem; width: min(13rem, 56vw); height: 1px; background: rgba(36,58,94,.14); transform: translateX(-50%); }
.intro-meter i { display: block; width: 100%; height: 100%; background: var(--blue); transform-origin: left; animation: meter 4.5s cubic-bezier(.4,0,.2,1) .1s forwards; }
.intro-skip { position: absolute; z-index: 4; top: 1.5rem; right: 1.5rem; padding: .45rem .6rem; border: 0; color: var(--mist); background: transparent; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; }
@keyframes grid-on { to { opacity: 1; } }
@keyframes grid-drift { to { background-position:64px 64px; } }
@keyframes aura-open { to { opacity: 1; transform: scale(1); } }
@keyframes aura-breathe { to { transform:scale(1.16); opacity:.72; } }
@keyframes frame-on { from{opacity:0;transform:scale(.94)} to{opacity:1;transform:none} }
@keyframes mark-in { to { opacity: 1; transform: none; } }
@keyframes wordmark-in { to { opacity: 1; transform: none; } }
@keyframes blueprint { from { opacity: 0; transform: scale(.72); } to { opacity: 1; transform: scale(1); } }
@keyframes ring-wave { 0% { opacity:0; transform:translate(-50%,-50%) scale(0); } 60% {opacity:1} 100% {opacity:0;transform:translate(-50%,-50%) scale(2.3);} }
@keyframes particle-float { 0%{opacity:0;transform:translateY(1.2rem) scale(.5)} 35%,70%{opacity:.32} 100%{opacity:0;transform:translateY(-2.2rem) scale(1.35)} }
@keyframes scan-x { to { transform: scaleX(1); } } @keyframes scan-y { to { transform: scaleY(1); } }
@keyframes word-cycle { 0% {opacity:0;transform:translateY(100%)} 24%,72%{opacity:1;transform:none} 100%{opacity:0;transform:translateY(-100%)} }
@keyframes meter { to { transform: scaleX(0); transform-origin: right; } }
@keyframes intro-away { to { opacity: 0; visibility: hidden; transform: translateY(-100%); } }
@keyframes intro-skip { to { opacity: 0; visibility: hidden; transform: translateY(-100%); } }

/* Header */
.site-header { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 1.1rem clamp(1.2rem,4vw,4.5rem); background: rgba(255,255,255,.78); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transform: translateY(-100%); animation: header-in .9s var(--ease-soft) 5.05s forwards; transition: padding .55s var(--ease-soft), border-color .55s var(--ease-soft); }
.site-header.scrolled { padding-top: .75rem; padding-bottom: .75rem; border-color: var(--line); }
.brand { width: 7.8rem; }
.site-header nav { display: flex; gap: 2.2rem; color: var(--slate); font-size: .84rem; font-weight: 600; }
.site-header nav a { position: relative; }
.site-header nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-.45rem; height:1px; background:var(--blue); transition:right .35s var(--ease); }
.site-header nav a:hover::after { right:0; }
.header-cta { justify-self: end; display: flex; align-items: center; gap: .7rem; padding: .65rem 1rem; color: white; background: var(--blue); border-radius: 999px; font-size: .8rem; font-weight: 700; }
.header-cta span, .primary-link span, .phone-link span, .form-submit span { transition: transform .3s var(--ease); }
.header-cta:hover span, .primary-link:hover span, .phone-link:hover span, .form-submit:hover span { transform: translate(.2rem,-.2rem); }
@keyframes header-in { to { transform: none; } }
.intro-skipped .site-header { animation-delay: 0s; }
.intro-skipped .title-line > span, .intro-skipped .hero-enter { animation-delay: 0s !important; }

/* Hero */
.hero { position: relative; min-height: 100svh; display: grid; align-items: center; padding: 9rem clamp(1.2rem,7vw,8rem) 5rem; overflow: hidden; }
.hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.3),transparent 25%,rgba(255,255,255,.68)); }
.hero-aura { position:absolute; width:48rem; height:48rem; right:-12rem; top:8%; border-radius:50%; background:radial-gradient(circle,rgba(36,58,94,.1),rgba(255,255,255,0) 68%); filter:blur(10px); animation:breathe 5s ease-in-out infinite alternate; }
@keyframes breathe { to { transform:scale(1.12);opacity:.7; } }
.hero-symbol { position:absolute; z-index:1; right:clamp(-10rem,3vw,2rem); top:50%; width:min(43vw,40rem); aspect-ratio:1; transform:translateY(-50%); }
.hero-symbol > img { position:absolute; left:50%; top:50%; width:7.5rem; transform:translate(-50%,-50%); filter:drop-shadow(0 16px 30px rgba(36,58,94,.13)); animation:mark-float 5s ease-in-out infinite alternate; }
.symbol-ring { position:absolute; inset:8%; border:1px solid rgba(36,58,94,.14); border-radius:50%; animation:rotate 22s linear infinite; }
.symbol-ring::before { content:""; position:absolute; left:50%; top:-.35rem; width:.7rem; height:.7rem; border-radius:50%; background:var(--blue); }
.ring-two { inset:25%; animation-duration:15s; animation-direction:reverse; }
.ring-two::before { top:50%; left:auto; right:-.28rem; width:.5rem; height:.5rem; background:var(--mist); }
.symbol-axis { position:absolute; background:rgba(36,58,94,.1); }
.axis-x { left:0; top:50%; width:100%; height:1px; }.axis-y { left:50%; top:0; width:1px; height:100%; }
@keyframes rotate { to{transform:rotate(360deg);} } @keyframes mark-float { to{transform:translate(-50%,-54%) scale(1.04);} }
.hero-copy { position:relative; z-index:3; width:min(68rem,78vw); }
.hero h1 { margin:0; font:700 clamp(3.7rem,8vw,8rem)/.96 "Plus Jakarta Sans",sans-serif; letter-spacing:-.065em; color:var(--blue); }
.title-line { display:block; padding-bottom:.06em; overflow:hidden; }
.title-line > span { display:block; transform:translateY(112%); animation:title-rise 1.15s var(--ease-soft) 5.08s forwards; }
.title-line:nth-child(2)>span { animation-delay:5.24s; }
.hero-summary { width:min(37rem,75vw); margin:2rem 0 0; color:var(--slate); font-size:clamp(1.05rem,1.5vw,1.28rem); }
.hero-enter { opacity:0; transform:translateY(1.3rem); animation:hero-enter .8s var(--ease) forwards; }
.delay-a{animation-delay:5.18s}.delay-b{animation-delay:5.42s}.delay-c{animation-delay:5.6s}.delay-d{animation-delay:5.78s}
@keyframes title-rise { to{transform:none;} } @keyframes hero-enter { to{opacity:1;transform:none;} }
.hero-actions { display:flex; align-items:center; gap:1.8rem; margin-top:2.2rem; }
.primary-link { display:inline-flex; align-items:center; gap:.8rem; padding:.95rem 1.35rem; color:white; background:var(--blue); border-radius:999px; font-size:.9rem; font-weight:700; box-shadow:0 14px 30px rgba(36,58,94,.18); transition:transform .3s var(--ease),box-shadow .3s; }
.primary-link:hover { transform:translateY(-3px); box-shadow:0 20px 40px rgba(36,58,94,.24); }
.quiet-link { display:inline-flex; align-items:center; gap:.7rem; color:var(--slate); font-size:.9rem; font-weight:600; }
.hero-index { position:absolute; z-index:3; right:clamp(1.2rem,5vw,5rem); bottom:4rem; display:grid; grid-template-columns:auto auto; gap:.2rem .85rem; padding-left:1.1rem; border-left:1px solid var(--blue); color:var(--slate); font-size:.76rem; }
.hero-index span { color:var(--mist); font-variant-numeric:tabular-nums; }.hero-index p{margin:0;}
.scroll-mark { position:absolute; z-index:3; left:clamp(1.2rem,7vw,8rem); bottom:2rem; display:flex; align-items:center; gap:.8rem; color:var(--mist); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; }
.scroll-mark i { position:relative; width:4rem; height:1px; overflow:hidden; background:var(--line); }.scroll-mark i::after{content:"";position:absolute;inset:0;background:var(--blue);animation:scroll-line 2s ease-in-out infinite;}
@keyframes scroll-line{0%{transform:translateX(-105%)}100%{transform:translateX(105%)}}

/* Symptoms — cinematic sticky scene */
.symptoms { position:relative; height:260vh; color:white; background:var(--blue); }
.symptoms-sticky { position:sticky; top:0; height:100svh; display:flex; flex-direction:column; justify-content:center; align-items:center; overflow:hidden; padding:6rem 1.2rem; text-align:center; }
.symptoms-sticky::before { content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle,black,transparent 78%); }
.symptoms-copy { position:relative; width:min(70rem,90vw); height:clamp(5rem,10vw,9rem); margin-bottom:1rem; }
.symptoms-copy p { position:absolute; inset:0; margin:0; opacity:0; transform:translateY(34%) scale(.97); font:600 clamp(3rem,8vw,8rem)/1 "Plus Jakarta Sans",sans-serif; letter-spacing:-.06em; transition:opacity .42s ease,transform .7s var(--ease-soft); will-change:opacity,transform; }
.symptoms-copy p.is-active { opacity:1; transform:none; }
.symptoms h2 { position:relative; z-index:2; margin:0; color:rgba(255,255,255,.35); font:600 clamp(2rem,4.5vw,4.8rem)/1.06 "Plus Jakarta Sans",sans-serif; letter-spacing:-.045em; }
.symptoms h2 em { color:white;font-style:normal; }
.symptoms-note { position:relative;z-index:2;margin:1.5rem 0 0;color:rgba(255,255,255,.58);font-size:1rem; }
.symptom-orbit { position:absolute;width:min(58vw,45rem);aspect-ratio:1;border:1px solid rgba(255,255,255,.1);border-radius:50%;animation:rotate 28s linear infinite; }
.symptom-orbit::before,.symptom-orbit::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.07);border-radius:50%;inset:16%;}.symptom-orbit::after{inset:34%;}
.symptom-orbit i { position:absolute;width:.45rem;height:.45rem;border-radius:50%;background:white;opacity:.3; }.symptom-orbit i:nth-child(1){top:5%;left:32%}.symptom-orbit i:nth-child(2){top:50%;right:-.2rem}.symptom-orbit i:nth-child(3){bottom:7%;left:25%}.symptom-orbit i:nth-child(4){top:36%;left:-.2rem}
.symptom-orbit span{position:absolute;inset:50%;width:.55rem;height:.55rem;border-radius:50%;background:white;box-shadow:0 0 0 1.2rem rgba(255,255,255,.04);}

/* Clarity map */
.clarity-section { position:relative; padding:clamp(7rem,12vw,12rem) clamp(1.2rem,7vw,8rem); background-color:var(--cloud); overflow:hidden; }
.clarity-intro { width:min(66rem,90vw); }
.clarity-intro h2,.services-heading h2,.method-heading h2,.deliverables-copy h2,.contact-copy h2 { margin:0; color:var(--blue); font:650 clamp(2.8rem,6vw,6.4rem)/1.02 "Plus Jakarta Sans",sans-serif; letter-spacing:-.06em; }
.clarity-map { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2rem,6vw,7rem); margin-top:8rem; }
.map-line { position:absolute;top:1.05rem;left:1.1rem;right:calc(33.33% - 1.1rem);height:1px;background:rgba(36,58,94,.16);overflow:hidden; }.map-line i{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform 1.8s var(--ease-soft);}.clarity-map.visible .map-line i{transform:scaleX(1);}
.map-point { position:relative; padding-top:3rem; opacity:0; transform:translateY(2rem); transition:opacity .85s ease,transform 1s var(--ease-soft); }
.clarity-map.visible .map-point{opacity:1;transform:none}.clarity-map.visible .map-point:nth-of-type(1){transition-delay:.12s}.clarity-map.visible .map-point:nth-of-type(2){transition-delay:.38s}.clarity-map.visible .map-point:nth-of-type(3){transition-delay:.64s}
.map-point::before{content:"";position:absolute;top:.7rem;left:.7rem;width:.7rem;height:.7rem;border:2px solid var(--cloud);border-radius:50%;background:var(--blue);box-shadow:0 0 0 1px var(--blue),0 0 0 .65rem rgba(36,58,94,.06);}
.map-point span{color:var(--mist);font-size:.72rem;font-weight:700;letter-spacing:.15em}.map-point h3{margin:.65rem 0 .4rem;color:var(--blue);font:650 clamp(1.5rem,2vw,2rem) "Plus Jakarta Sans",sans-serif}.map-point p{margin:0;color:var(--slate);}

/* Image reveal */
.photo-story { position:relative; height:190vh; background:var(--ink); }
.photo-sticky { position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden; }
.photo-mask { position:absolute; inset:0; clip-path:inset(12% 12% 12% 12% round 2.4rem); will-change:clip-path,transform; }
.photo-mask img{width:100%;height:100%;object-fit:cover;object-position:68% center;transform:scale(1.09);will-change:transform;}
.photo-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,27,40,.82),rgba(18,27,40,.2) 60%),linear-gradient(0deg,rgba(18,27,40,.45),transparent);}
.photo-caption{position:relative;z-index:2;justify-self:start;width:min(52rem,78vw);margin-left:clamp(1.2rem,8vw,9rem);color:white;}
.photo-caption h2{margin:0;font:650 clamp(3rem,7vw,7rem)/.98 "Plus Jakarta Sans",sans-serif;letter-spacing:-.06em;}.photo-caption>p:last-child{max-width:35rem;color:rgba(255,255,255,.7);font-size:1.15rem;}
.photo-corner{position:absolute;z-index:2;right:clamp(1.2rem,5vw,5rem);bottom:2rem;display:flex;gap:1rem;color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;}
.photo-corner span+span::before{content:"/";margin-right:1rem;}

/* Services */
.services { padding:clamp(7rem,12vw,12rem) clamp(1.2rem,7vw,8rem); }
.services-heading { max-width:68rem; }
.service-stack { margin-top:7rem; border-top:1px solid var(--line); }
.service-card { position:relative;display:grid;grid-template-columns:5rem 1fr auto;gap:2rem;align-items:center;padding:2.5rem 0;border-bottom:1px solid var(--line);overflow:hidden;transition:padding .45s var(--ease),color .4s;}
.service-card::before{content:"";position:absolute;inset:0;background:var(--blue);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease);z-index:0;}
.service-card>*{position:relative;z-index:1}.service-card:hover{padding-left:2rem;padding-right:2rem;color:white}.service-card:hover::before{transform:scaleY(1)}
.service-number{align-self:start;color:var(--mist);font-size:.72rem;font-weight:700;letter-spacing:.15em}.service-card h3{margin:0 0 .45rem;color:var(--blue);font:650 clamp(1.7rem,3vw,3rem) "Plus Jakarta Sans",sans-serif;letter-spacing:-.045em;transition:color .4s}.service-card p{max-width:42rem;margin:0;color:var(--slate);transition:color .4s}.service-arrow{font-size:1.6rem;color:var(--blue);transition:transform .4s var(--ease),color .4s}.service-card:hover h3,.service-card:hover p,.service-card:hover .service-arrow{color:white}.service-card:hover .service-number{color:rgba(255,255,255,.55)}.service-card:hover .service-arrow{transform:translate(.35rem,-.35rem)}

/* Method */
.method { padding:clamp(7rem,11vw,11rem) clamp(1.2rem,7vw,8rem); color:white; background:var(--blue); }
.method-heading h2{color:white}.method-stage{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,8vw,10rem);align-items:start;margin-top:7rem}.method-number{position:sticky;top:24vh;height:28rem;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;}.method-number::before,.method-number::after{content:"";position:absolute;background:rgba(255,255,255,.1)}.method-number::before{width:120%;height:1px}.method-number::after{width:1px;height:120%}.method-number span{font:500 clamp(8rem,18vw,17rem)/1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.08em;color:rgba(255,255,255,.15);transition:opacity .34s ease,transform .55s var(--ease-soft)}.method-number span.is-changing{opacity:0;transform:translateY(1rem) scale(.98)}
.method-list{margin:0;padding:0;list-style:none}.method-step{min-height:42vh;display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;align-content:center;border-top:1px solid rgba(255,255,255,.14);opacity:.25;transform:translateX(1.5rem);transition:opacity .72s ease,transform .85s var(--ease-soft)}.method-step:last-child{border-bottom:1px solid rgba(255,255,255,.14)}.method-step.is-active{opacity:1;transform:none}.method-step>span{color:rgba(255,255,255,.55);font-size:.72rem;font-weight:700}.method-step h3{margin:0 0 .5rem;font:650 clamp(1.8rem,3.5vw,3.5rem) "Plus Jakarta Sans",sans-serif;letter-spacing:-.045em}.method-step p{margin:0;color:rgba(255,255,255,.58);}

/* Deliverables */
.deliverables { min-height:92vh;display:grid;grid-template-columns:1fr .85fr;gap:clamp(3rem,8vw,9rem);align-items:center;padding:clamp(7rem,11vw,11rem) clamp(1.2rem,7vw,8rem);background-color:var(--cloud);overflow:hidden;}.deliverables-copy>p:last-child{max-width:38rem;color:var(--slate);font-size:1.08rem}.document-visual{position:relative;height:32rem;perspective:1100px}.document-sheet{position:absolute;left:50%;top:50%;width:min(25rem,70vw);aspect-ratio:.72;border:1px solid var(--line);background:white;box-shadow:0 35px 70px rgba(36,58,94,.11);transform-origin:center}.sheet-back{transform:translate(-38%,-52%) rotate(10deg)}.sheet-mid{transform:translate(-45%,-50%) rotate(4deg)}.sheet-front{padding:2rem;transform:translate(-55%,-48%) rotate(-4deg);transition:transform 1s var(--ease)}.document-visual.visible .sheet-front{transform:translate(-55%,-50%) rotate(-7deg)}.doc-head{display:flex;align-items:center;gap:.7rem;margin-bottom:2.5rem;color:var(--blue);font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.doc-head img{width:1.8rem}.sheet-front>i{display:block;width:100%;height:1px;margin:1.1rem 0;background:var(--line)}.sheet-front>i:nth-of-type(2){width:78%}.sheet-front>i:nth-of-type(3){width:88%}.sheet-front>i:nth-of-type(4){width:64%}.doc-bars{position:absolute;left:2rem;right:2rem;bottom:2rem;height:8rem;display:flex;align-items:flex-end;gap:.7rem}.doc-bars b{flex:1;height:32%;background:rgba(36,58,94,.16)}.doc-bars b:nth-child(2){height:67%}.doc-bars b:nth-child(3){height:48%}.doc-bars b:nth-child(4){height:88%;background:var(--blue)}

/* Contact */
.contact{display:grid;grid-template-columns:1fr .86fr;gap:clamp(3rem,8vw,9rem);padding:clamp(7rem,11vw,11rem) clamp(1.2rem,7vw,8rem);}.contact-copy>p:nth-of-type(2){color:var(--slate);font-size:1.08rem}.phone-link{display:inline-flex;align-items:center;gap:1rem;margin-top:1.8rem;color:var(--blue);font:650 clamp(1.5rem,3vw,2.6rem) "Plus Jakarta Sans",sans-serif;letter-spacing:-.035em}.contact-form{padding:2rem;border:1px solid var(--line);background:rgba(255,255,255,.78);backdrop-filter:blur(16px);box-shadow:0 30px 80px rgba(36,58,94,.08)}.contact-form label{display:block;margin-bottom:1rem;color:var(--slate);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;margin-top:.35rem;padding:.85rem 0;border:0;border-bottom:1px solid var(--line);border-radius:0;outline:0;color:var(--ink);background:transparent;resize:vertical;text-transform:none;letter-spacing:normal}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--blue)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--mist)}.form-submit{width:100%;display:flex;justify-content:center;align-items:center;gap:.8rem;margin-top:.7rem;padding:.95rem;border:0;color:white;background:var(--blue);font-size:.88rem;font-weight:700}.contact-form small{display:block;margin-top:.8rem;color:var(--mist);text-align:center;}

footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:2rem clamp(1.2rem,7vw,8rem);border-top:1px solid var(--line);color:var(--mist);font-size:.72rem}.footer-brand{width:6.8rem}footer p{text-align:center}.whatsapp{position:fixed;z-index:90;right:1.2rem;bottom:1.2rem;display:flex;align-items:center;gap:.65rem;padding:.65rem .9rem;border:1px solid var(--line);border-radius:999px;color:var(--blue);background:rgba(255,255,255,.9);box-shadow:0 10px 35px rgba(36,58,94,.12);backdrop-filter:blur(14px);font-size:.78rem;font-weight:700}.whatsapp i{width:.5rem;height:.5rem;border-radius:50%;background:var(--blue);animation:soft-pulse 2s infinite}@keyframes soft-pulse{70%{box-shadow:0 0 0 .55rem rgba(36,58,94,0)}}

.reveal{opacity:0;transform:translateY(2.1rem);transition:opacity 1s ease,transform 1.15s var(--ease-soft)}.reveal.visible{opacity:1;transform:none}

@media (max-width: 900px){
  .site-header{grid-template-columns:1fr auto}.site-header nav{display:none}.hero-symbol{width:70vw;right:-28vw;opacity:.55}.hero-copy{width:92vw}.hero-index{display:none}.clarity-map{grid-template-columns:1fr;gap:3rem}.map-line{top:1rem;bottom:1rem;left:1rem;right:auto;width:1px;height:auto}.map-line i{width:100%;height:100%;transform:scaleY(0);transform-origin:top}.clarity-map.visible .map-line i{transform:scaleY(1)}.map-point{padding:0 0 0 3.5rem}.map-point::before{top:.3rem}.method-stage{grid-template-columns:1fr}.method-number{display:none}.method-step{min-height:32vh}.deliverables,.contact{grid-template-columns:1fr}.document-visual{height:28rem}.photo-mask{clip-path:inset(8% 6% round 1.5rem)}
}
@media (max-width: 620px){
  .grid-surface{background-size:48px 48px}.site-header{padding:1rem}.brand{width:6.4rem}.header-cta{padding:.62rem .8rem}.header-cta{font-size:0}.header-cta span{font-size:.9rem}.hero{padding:8rem 1.1rem 5rem}.hero h1{font-size:clamp(3.25rem,15vw,5.2rem)}.hero-summary{width:92vw}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.1rem}.hero-symbol{width:95vw;right:-50vw}.scroll-mark{left:1.1rem}.symptoms-copy{height:6rem}.symptoms-sticky{padding-left:1rem;padding-right:1rem}.symptoms-note{max-width:19rem}.symptom-orbit{width:92vw}.clarity-section,.services,.method,.deliverables,.contact{padding-left:1.1rem;padding-right:1.1rem}.clarity-map,.service-stack,.method-stage{margin-top:4.5rem}.service-card{grid-template-columns:2.2rem 1fr;gap:.7rem;padding:2rem 0}.service-arrow{display:none}.service-card:hover{padding-left:.7rem;padding-right:.7rem}.method-step{grid-template-columns:2.3rem 1fr;min-height:30vh}.photo-caption{width:88vw;margin-left:1.1rem}.photo-caption h2{font-size:clamp(3rem,14vw,4.7rem)}.photo-corner{right:1rem}.photo-corner span:nth-child(2){display:none}.document-visual{height:23rem}.document-sheet{width:min(19rem,72vw)}.contact-form{padding:1.25rem}footer{grid-template-columns:1fr;text-align:center}.footer-brand{margin:auto}footer p{margin:0}.whatsapp span{display:none}.whatsapp{width:3rem;height:3rem;justify-content:center;padding:0}.intro-mark{width:6.5rem;height:6.5rem}.intro-mark img{width:4.2rem}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro{display:none}body.intro-active{overflow:auto}.site-header{transform:none}.title-line>span,.hero-enter,.reveal,.map-point{opacity:1;transform:none}.cursor-dot,.cursor-ring{display:none}body.cursor-on,body.cursor-on a,body.cursor-on button,body.cursor-on input,body.cursor-on textarea{cursor:auto}.symptoms{height:auto}.symptoms-sticky{position:relative}.symptoms-copy p{display:none}.symptoms-copy p:first-child{display:block;opacity:1;transform:none}.photo-story{height:100svh}.photo-mask{clip-path:inset(0)}
}
