:root {
  --color-bg-primary: #0B0B0F;
  --color-bg-secondary: #14141A;
  --color-bg-tertiary: #1B1723;
  --color-surface: #201A28;
  --color-purple-deep: #2A1B4D;
  --color-purple-primary: #5B3A78;
  --color-purple-accent: #8A62B0;
  --color-purple-hover: #9A70C3;
  --color-ivory: #F3EFE8;
  --color-cream: #E5DDD4;
  --color-text-muted: #B9AFA7;
  --color-text-subtle: #918780;
  --color-burgundy: #6E303A;
  --color-line-dark: rgba(243,239,232,.12);
  --color-line-purple: rgba(138,98,176,.30);
  --max-width: 1220px;
  --header-height: 76px;
  --section-space: clamp(5rem,8vw,7.5rem);
  --font-display: Georgia,"Times New Roman",serif;
  --font-body: "Segoe UI",Arial,sans-serif;
  --ease: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}
body{margin:0;overflow-x:clip;background:var(--color-bg-primary);color:var(--color-ivory);font-family:var(--font-body);font-size:16px;line-height:1.65;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
button,input,textarea,select{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
h1,h2,h3,p{overflow-wrap:break-word}
h1,h2{margin:0;font-family:var(--font-display);font-weight:500;line-height:1.04;letter-spacing:-.03em;text-wrap:balance}
h1{max-width:820px;font-size:clamp(3rem,5vw,5rem)}
h2{max-width:760px;font-size:clamp(2.25rem,3.7vw,3.65rem)}
h3,p{margin:0}
h3{line-height:1.25}
ul,ol{margin:0}
[id]{scroll-margin-top:calc(var(--header-height) + 16px)}
.container{width:min(calc(100% - clamp(48px,6vw,80px)),var(--max-width));margin-inline:auto}
.section{position:relative;padding-block:var(--section-space)}
.section-heading{max-width:820px;margin-bottom:clamp(2.5rem,5vw,4.25rem)}
.section-heading>p:not(.eyebrow){max-width:64ch;margin-top:1.2rem;color:var(--color-text-muted)}
.compact-heading{margin-bottom:0}
.eyebrow{margin-bottom:.9rem;color:var(--color-cream);font-size:.74rem;font-weight:750;letter-spacing:.17em;line-height:1.4;text-transform:uppercase}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:.7rem 1rem;background:var(--color-ivory);color:var(--color-bg-primary);transform:translateY(-150%);transition:transform 160ms ease}
.skip-link:focus{transform:none}
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1.2rem;border:1px solid transparent;border-radius:4px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 180ms var(--ease),box-shadow 180ms ease}
.button.primary{background:var(--color-purple-primary);color:var(--color-ivory);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.button.primary:hover{background:var(--color-purple-hover);color:#0B0B0F;box-shadow:0 8px 28px rgba(91,58,120,.2)}
.button.secondary{border-color:var(--color-line-dark);background:transparent;color:var(--color-cream)}
.button.secondary:hover{border-color:var(--color-purple-accent);background:rgba(138,98,176,.08)}
.button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-purple-hover);outline-offset:3px}
.section-actions{display:flex;margin-top:2rem}.align-left{justify-content:flex-start}

/* Intro */
body.intro-active{overflow:hidden}
.brand-intro{--intro-mark-height:clamp(32px,7.8vw,60px);--intro-name-height:clamp(29px,7.15vw,55px);--intro-mark-width:calc(var(--intro-mark-height)*.70423);--intro-name-width:calc(var(--intro-name-height)*7.23077);--intro-logo-gap:clamp(11px,1.45vw,18px);position:fixed;z-index:999;inset:0;display:grid;place-items:center;overflow:hidden;background:transparent;opacity:0;visibility:hidden;pointer-events:none;isolation:isolate}
.js .brand-intro{opacity:1;visibility:visible;pointer-events:auto;animation:intro-overlay-safety 4700ms step-end both}
.intro-field{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.intro-plane{position:absolute;right:0;left:0;height:50%;overflow:hidden;background-color:#09090D;background-image:radial-gradient(ellipse 48% 64% at 50% 50%,rgba(91,58,120,.19),transparent 70%),radial-gradient(ellipse 26% 34% at 59% 48%,rgba(243,239,232,.038),transparent 76%),linear-gradient(122deg,#08080C 0%,#0D0B13 48%,#09090D 100%);background-repeat:no-repeat;background-size:100vw 100svh;will-change:transform;transition:transform 560ms cubic-bezier(.76,0,.24,1)}
.intro-plane::before,.intro-plane::after{content:"";position:absolute;pointer-events:none}
.intro-plane::before{inset:0;background:linear-gradient(90deg,rgba(0,0,0,.31),transparent 19% 81%,rgba(0,0,0,.34))}
.intro-plane::after{left:50%;width:min(68vw,720px);height:1px;background:linear-gradient(90deg,transparent,rgba(169,132,200,.15),transparent);opacity:0;transform:translateX(-50%) scaleX(.2);animation:intro-plane-register 720ms 420ms var(--ease) both}
.intro-plane-top{top:0;background-position:center top;transform-origin:top}
.intro-plane-top::after{bottom:clamp(32px,8vh,86px)}
.intro-plane-bottom{bottom:0;background-position:center bottom;transform-origin:bottom}
.intro-plane-bottom::after{top:clamp(32px,8vh,86px)}
.intro-illumination{position:absolute;z-index:3;top:18%;bottom:18%;left:-24%;width:32%;background:linear-gradient(90deg,transparent,rgba(138,98,176,.03) 18%,rgba(199,168,224,.105) 48%,rgba(243,239,232,.045) 61%,transparent);opacity:0;transform:translate3d(-120%,0,0) skewX(-9deg);will-change:transform,opacity;animation:intro-identity-light 720ms 2380ms cubic-bezier(.4,0,.2,1) both}
.intro-skip{position:absolute;z-index:9;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));min-width:46px;min-height:46px;padding:.65rem .82rem;border:1px solid rgba(243,239,232,.16);border-radius:3px;background:rgba(9,9,13,.42);color:rgba(229,221,212,.84);font-size:.78rem;line-height:1;letter-spacing:.045em;cursor:pointer;transition:color 160ms ease,border-color 160ms ease,background-color 160ms ease,opacity 120ms ease}
.intro-skip:hover,.intro-skip:focus-visible{border-color:rgba(169,132,200,.66);background:rgba(42,27,77,.4);color:var(--color-ivory)}
.intro-architecture{position:absolute;z-index:2;inset:0;opacity:1;transform:scale(.985);pointer-events:none;animation:intro-architecture-order 660ms 2320ms var(--ease) both;transition:opacity 300ms ease,transform 560ms var(--ease)}
.intro-line{position:absolute;display:block;opacity:0;will-change:transform,opacity}
.intro-line-primary-v{top:50%;left:50%;width:1px;height:min(52vmin,500px);background:linear-gradient(to bottom,transparent,rgba(169,132,200,.22) 16%,rgba(243,239,232,.46) 50%,rgba(169,132,200,.22) 84%,transparent);transform:translate3d(-50%,-50%,0) scaleY(.04);animation:intro-axis-v 900ms 430ms var(--ease) both}
.intro-line-primary-h{top:50%;left:50%;width:min(78vw,760px);height:1px;background:linear-gradient(to right,transparent,rgba(169,132,200,.2) 18%,rgba(243,239,232,.52) 50%,rgba(169,132,200,.2) 82%,transparent);transform:translate3d(-50%,-50%,0) scaleX(.035);animation:intro-axis-h 840ms 560ms var(--ease) both}
.intro-line-upper,.intro-line-lower{left:50%;width:min(62vw,600px);height:1px;background:linear-gradient(90deg,transparent,rgba(138,98,176,.33) 24%,rgba(229,221,212,.18) 50%,rgba(138,98,176,.33) 76%,transparent);transform:translate3d(-50%,var(--rail-y),0) scaleX(.12);animation:intro-rail-set 760ms var(--ease) both}
.intro-line-upper{top:calc(50% - clamp(72px,11vmin,118px));--rail-y:-12px;animation-delay:650ms}
.intro-line-lower{top:calc(50% + clamp(72px,11vmin,118px));--rail-y:12px;animation-delay:750ms}
.intro-line-diagonal-a,.intro-line-diagonal-b{top:50%;left:50%;width:min(24vmin,170px);height:1px;background:linear-gradient(90deg,transparent,rgba(199,168,224,.36),transparent);transform-origin:center;animation:intro-diagonal-set 700ms var(--ease) both}
.intro-line-diagonal-a{--diagonal-angle:27deg;--diagonal-x:-152%;animation-delay:770ms}
.intro-line-diagonal-b{--diagonal-angle:-27deg;--diagonal-x:52%;animation-delay:850ms}
.intro-node{position:absolute;width:3px;height:3px;border-radius:50%;background:#C7A8E0;opacity:0;transform:translate3d(var(--node-x),var(--node-y),0) scale(.5);will-change:transform,opacity;animation:intro-node-lock 500ms var(--ease) both}
.intro-node::after{content:"";position:absolute;inset:-3px;border:1px solid rgba(169,132,200,.2);border-radius:50%}
.intro-node-1{top:calc(50% - clamp(72px,11vmin,118px));left:calc(50% - min(31vw,300px));--node-x:-14px;--node-y:-7px;animation-delay:260ms}
.intro-node-2{top:calc(50% - clamp(72px,11vmin,118px));right:calc(50% - min(31vw,300px));--node-x:14px;--node-y:-7px;animation-delay:340ms}
.intro-node-3{top:calc(50% + clamp(72px,11vmin,118px));left:calc(50% - min(31vw,300px));--node-x:-14px;--node-y:7px;animation-delay:420ms}
.intro-node-4{top:calc(50% + clamp(72px,11vmin,118px));right:calc(50% - min(31vw,300px));--node-x:14px;--node-y:7px;animation-delay:500ms}
.intro-node-5{top:calc(50% - 38px);left:calc(50% - min(20vw,192px));--node-x:-9px;--node-y:-3px;animation-delay:610ms}
.intro-node-6{top:calc(50% - 38px);right:calc(50% - min(20vw,192px));--node-x:9px;--node-y:-3px;animation-delay:690ms}
.intro-node-7{top:calc(50% + 38px);left:calc(50% - min(20vw,192px));--node-x:-9px;--node-y:3px;animation-delay:770ms}
.intro-node-8{top:calc(50% + 38px);right:calc(50% - min(20vw,192px));--node-x:9px;--node-y:3px;animation-delay:850ms}
.intro-focus-frame{position:absolute;top:50%;left:50%;width:clamp(188px,37vw,430px);height:clamp(104px,18vw,192px);border-inline:1px solid rgba(169,132,200,.23);opacity:0;clip-path:inset(50% 0);transform:translate3d(-50%,-50%,0) scale(.96);animation:intro-frame-build 820ms 700ms var(--ease) both}
.intro-focus-frame::before,.intro-focus-frame::after{content:"";position:absolute;right:12%;left:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(229,221,212,.3),transparent);transform:scaleX(.26)}
.intro-focus-frame::before{top:0}.intro-focus-frame::after{bottom:0}
.intro-lockup{position:relative;z-index:4;width:min(94vw,820px);display:grid;justify-items:center;transition:opacity 260ms ease,transform 300ms var(--ease)}
.intro-logo{position:relative;width:min(92vw,calc(var(--intro-mark-width) + var(--intro-logo-gap) + var(--intro-name-width)));height:var(--intro-mark-height)}
.intro-monogram-stage{position:absolute;top:50%;left:50%;width:var(--intro-mark-width);height:var(--intro-mark-height);transform:translate3d(-50%,-50%,0);animation:intro-mark-dock 720ms 1680ms var(--ease) both}
.intro-monogram{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.intro-monogram-accent{opacity:.12;animation:intro-mark-accent-architectural 1080ms 760ms var(--ease) both}
.intro-monogram-final{opacity:1;animation:intro-mark-final-architectural 980ms 1040ms var(--ease) both}
.intro-name-stage{position:absolute;top:50%;left:50%;width:var(--intro-name-width);height:var(--intro-name-height);overflow:hidden;transform:translate3d(calc((var(--intro-mark-width) + var(--intro-logo-gap) - var(--intro-name-width))/2),-50%,0)}
.intro-name-rule{position:absolute;z-index:2;top:50%;right:0;left:0;height:1px;background:linear-gradient(90deg,rgba(243,239,232,.58),rgba(169,132,200,.42),transparent);opacity:0;transform:translateY(-50%) scaleX(0);transform-origin:left;animation:intro-name-rule 620ms 1690ms var(--ease) both}
.intro-name{position:relative;z-index:1;width:auto;max-width:none;height:100%;opacity:1;animation:intro-name-arrive 760ms 1810ms var(--ease) both}
.intro-descriptor-rule{display:block;width:min(28vw,170px);height:1px;margin-top:clamp(18px,2.4vw,26px);background:linear-gradient(90deg,transparent,rgba(169,132,200,.55),rgba(243,239,232,.36),transparent);opacity:0;transform:scaleX(.12);animation:intro-descriptor-rule 480ms 2520ms var(--ease) both;transition:opacity 120ms ease,transform 160ms ease}
.intro-description{max-width:min(86vw,560px);margin-top:clamp(12px,1.8vw,18px);color:rgba(229,221,212,.76);font-size:clamp(.74rem,1.2vw,.9rem);line-height:1.5;letter-spacing:clamp(.055em,.2vw,.11em);text-align:center;animation:intro-description-arrive 560ms 2650ms var(--ease) both;transition:opacity 150ms ease,transform 150ms var(--ease)}
.brand-intro.is-opening .intro-description{animation:none;opacity:0;transform:translate3d(0,-4px,0)}
.brand-intro.is-opening .intro-descriptor-rule{animation:none;opacity:0;transform:scaleX(0)}
.brand-intro.is-opening .intro-lockup{opacity:0;transform:scale(.994)}
.brand-intro.is-opening .intro-architecture{animation:none;opacity:0;transform:scaleX(1.16)}
.brand-intro.is-opening .intro-illumination{opacity:0}
.brand-intro.is-opening .intro-skip{opacity:0;pointer-events:none}
.brand-intro.is-opening .intro-plane-top{transform:translate3d(0,-101%,0) scaleX(1.012)}
.brand-intro.is-opening .intro-plane-bottom{transform:translate3d(0,101%,0) scaleX(1.012)}
.brand-intro.is-skipping .intro-lockup,.brand-intro.is-skipping .intro-architecture,.brand-intro.is-skipping .intro-illumination{opacity:0;transition-duration:110ms}
.brand-intro.is-skipping .intro-illumination{animation:none}
.brand-intro.is-skipping .intro-skip{opacity:0;pointer-events:none}
.brand-intro.is-skipping .intro-plane{transition-duration:220ms}
.brand-intro.is-skipping .intro-plane-top{transform:translate3d(0,-101%,0)}
.brand-intro.is-skipping .intro-plane-bottom{transform:translate3d(0,101%,0)}
.brand-intro.is-fallback .intro-illumination,.brand-intro.is-fallback .intro-line-diagonal-a,.brand-intro.is-fallback .intro-line-diagonal-b{display:none}
.brand-intro.is-fallback .intro-architecture,.brand-intro.is-fallback .intro-line,.brand-intro.is-fallback .intro-node,.brand-intro.is-fallback .intro-focus-frame,.brand-intro.is-fallback .intro-monogram-stage,.brand-intro.is-fallback .intro-monogram-accent,.brand-intro.is-fallback .intro-monogram-final,.brand-intro.is-fallback .intro-name-rule,.brand-intro.is-fallback .intro-name,.brand-intro.is-fallback .intro-descriptor-rule,.brand-intro.is-fallback .intro-description{animation:none;clip-path:none}
.brand-intro.is-fallback .intro-architecture{opacity:.3;transform:none}
.brand-intro.is-fallback .intro-line,.brand-intro.is-fallback .intro-node,.brand-intro.is-fallback .intro-focus-frame{opacity:.24}
.brand-intro.is-fallback .intro-monogram-stage{transform:translate3d(calc(-50% - (var(--intro-logo-gap) + var(--intro-name-width))/2),-50%,0)}
.brand-intro.is-fallback .intro-monogram-final,.brand-intro.is-fallback .intro-name,.brand-intro.is-fallback .intro-description{opacity:1;transform:none}
.brand-intro.is-fallback .intro-monogram-accent{opacity:.1;transform:none}
.brand-intro.is-fallback .intro-name-rule{opacity:0}
.brand-intro.is-fallback .intro-descriptor-rule{opacity:.42;transform:none}
.js .home-page .hero-copy{transition:opacity 520ms ease,transform 560ms var(--ease)}
.js .home-page .hero-orbit{transition:opacity 560ms ease}
.js .home-page.intro-active:not(.intro-revealing) .hero-copy{opacity:0;transform:translate3d(0,8px,0)}
.js .home-page.intro-active:not(.intro-revealing) .hero-orbit{opacity:0}
.js .home-page.intro-revealing .hero-copy,.js .home-page.intro-revealing .hero-orbit{opacity:1}
.js .home-page.intro-revealing .hero-copy{transform:translate3d(0,0,0)}
@media(max-height:500px){
  .intro-descriptor-rule{margin-top:14px}
  .intro-description{margin-top:10px;font-size:.72rem}
  .intro-focus-frame{height:96px}
  .intro-line-upper{top:calc(50% - 68px)}
  .intro-line-lower{top:calc(50% + 68px)}
}
/* Header */
.scroll-progress{position:fixed;z-index:190;top:0;right:0;left:0;height:2px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;background:var(--color-purple-accent);transform:scaleX(0);transform-origin:left}
.site-header{position:sticky;z-index:180;top:0;height:var(--header-height);border-bottom:1px solid transparent;background:rgba(11,11,15,.96);transition:border-color 180ms ease,background-color 180ms ease}
.site-header.is-scrolled{border-color:var(--color-line-dark);background:rgba(11,11,15,.985)}
.nav-bar{height:100%;display:flex;align-items:center;gap:clamp(1rem,2.5vw,2rem)}
.brand{flex:0 0 auto;display:inline-flex;align-items:center;gap:9px;width:auto;text-decoration:none}.brand .brand-mark{width:auto;height:22px}.brand .brand-name{width:auto;height:20px}
.site-nav{position:relative;display:flex;align-items:center;gap:clamp(.7rem,1.8vw,1.35rem);margin-left:auto}
.site-nav>a:not(.button){min-height:44px;display:flex;align-items:center;color:var(--color-text-muted);font-size:.84rem;font-weight:650;text-decoration:none;transition:color 160ms ease}
.site-nav>a:hover,.site-nav>a.is-active{color:var(--color-ivory)}
.nav-indicator{position:absolute;bottom:-16px;left:0;width:0;height:2px;background:var(--color-purple-accent);opacity:0;transition:transform 240ms var(--ease),width 240ms var(--ease),opacity 160ms ease;pointer-events:none}
.nav-toggle{display:none;width:48px;height:48px;padding:12px;border:1px solid var(--color-line-dark);border-radius:4px;background:transparent;color:var(--color-ivory);cursor:pointer}
.nav-toggle span{display:block;width:22px;height:1px;margin:5px auto;background:currentColor;transition:transform 180ms ease,opacity 180ms ease}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.header-cta{min-height:44px;padding:.62rem 1rem;font-size:.82rem}.mobile-menu-cta{display:none}

/* Hero */
.hero{position:relative;isolation:isolate;min-height:clamp(620px,calc(100svh - var(--header-height)),760px);display:grid;align-items:center;overflow:hidden;padding:clamp(4rem,7vh,5.5rem) 0;background:var(--color-bg-primary)}
.hero-cursor-halo{position:absolute;z-index:0;top:0;left:0;width:clamp(230px,25vw,390px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(138,98,176,.22) 0,rgba(91,58,120,.12) 32%,rgba(42,27,77,.05) 57%,transparent 74%);opacity:var(--hero-halo-opacity,0);transform:translate3d(calc(var(--hero-halo-x,50vw) - 50%),calc(var(--hero-halo-y,50%) - 50%),0);filter:blur(8px);transition:opacity 280ms ease;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.27fr) minmax(300px,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero-copy{position:relative;z-index:2}.hero-copy .eyebrow{margin-bottom:1.3rem}.hero-copy h1{max-width:680px;margin-bottom:clamp(26px,2.2vw,30px);font-size:clamp(3rem,4.4vw,4rem);line-height:1.07}.hero-lead{max-width:600px;color:var(--color-text-muted);font-size:clamp(1.0625rem,1.2vw,1.125rem);line-height:1.6}
.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.hero-orbit{position:relative;min-height:460px;align-self:stretch;overflow:hidden;isolation:isolate;touch-action:pan-y;transform:perspective(980px) rotateX(var(--orbit-tilt-y,0deg)) rotateY(var(--orbit-tilt-x,0deg));transform-origin:center;will-change:transform}.hero-orbit::before{content:"";position:absolute;z-index:0;top:50%;left:50%;width:min(390px,82%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(169,132,200,.2) 0,rgba(91,58,120,.13) 30%,rgba(42,27,77,.055) 58%,transparent 75%);opacity:var(--orbit-aura-opacity,.3);transform:translate3d(-50%,-50%,0);pointer-events:none}.hero-orbit-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block;pointer-events:none}.hero-orbit-mark{position:absolute;z-index:2;top:50%;left:50%;width:auto;height:22px;opacity:var(--orbit-mark-opacity,.08);transform:translate3d(calc(-50% + var(--orbit-mark-x,0px)),calc(-50% + var(--orbit-mark-y,0px)),0) scale(var(--orbit-mark-scale,.86));transition:opacity 320ms ease;pointer-events:none;user-select:none}
.hero-orbit.is-static::after{content:"";position:absolute;z-index:1;inset:18% 7%;border:1px solid rgba(169,132,200,.5);border-radius:50%;opacity:.7;transform:rotate(-12deg);pointer-events:none}

.institutional-pause{display:grid;place-items:center;padding:clamp(3rem,6vw,5rem) clamp(24px,6vw,80px);border-block:1px solid var(--color-line-dark);background:var(--color-bg-primary);text-align:center}.institutional-pause p{max-width:760px;color:var(--color-cream);font-family:var(--font-display);font-size:clamp(1.35rem,2.4vw,2.1rem);line-height:1.35;letter-spacing:-.015em}

/* Process */
.process-section{background:var(--color-bg-primary)}
.process-track{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,5vw,5rem);padding:0;list-style:none}.process-track::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--color-purple-primary);transform:scaleX(0);transform-origin:left;transition:transform 900ms var(--ease)}.process-track.is-visible::before{transform:scaleX(1)}
.process-item{padding:2rem 0 0;border-top:1px solid var(--color-line-dark)}.process-item>span{display:block;margin-bottom:2.4rem;color:var(--color-purple-accent);font-family:var(--font-display)}.process-item h3{font-family:var(--font-display);font-size:1.45rem;font-weight:500}.process-item p{max-width:34ch;margin-top:.7rem;color:var(--color-text-muted)}

/* Projects */
.projects-section{background:var(--color-bg-primary)}.projects-heading{max-width:none;display:grid;grid-template-columns:1fr minmax(280px,.65fr);gap:3rem;align-items:end}.projects-heading>p{margin:0!important}.projects-mosaic{width:min(100%,1160px);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);grid-template-rows:repeat(2,238px);gap:16px}.project-card{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--color-line-dark);background:#101014;transition:border-color 180ms ease}.project-featured{grid-row:1/-1;grid-template-rows:340px minmax(0,1fr)}.project-media{min-height:0;display:block;overflow:hidden;background:#0d0d11;text-decoration:none}.project-card:not(.project-featured) .project-media{height:150px;min-height:0}.project-card img{width:100%;height:100%;display:block;object-fit:cover;object-position:top;filter:brightness(.92) saturate(.88) contrast(1.02);transition:opacity 180ms ease,transform 500ms var(--ease),filter 220ms ease}.project-card:hover img{transform:scale(1.012);filter:brightness(1) saturate(1)}.project-card.is-switching img{opacity:.32}.project-card.is-mobile-view .project-media img{width:auto;min-width:0;margin-inline:auto;object-fit:contain;transform:none}.project-meta{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;background:#101014}.project-featured .project-meta{padding:17px 18px}.project-meta-top{width:100%;display:flex;justify-content:space-between;gap:1rem;align-items:center}.project-meta small{color:#B89AD2;font-size:.67rem;font-weight:750;letter-spacing:.1em;line-height:1.35;text-transform:uppercase}.project-meta h3{max-width:100%;margin-top:.32rem;color:var(--color-ivory);font-family:var(--font-display);font-size:clamp(1.08rem,1.45vw,1.3rem);font-weight:500;line-height:1.12}.project-featured .project-meta h3{font-size:clamp(1.35rem,2vw,1.65rem)}.project-meta>a{margin-top:.52rem;color:var(--color-cream);font-size:.82rem;text-decoration:none;transition:color 160ms ease}.project-meta>a:hover{color:#C7A8E0}.project-view-toggle{flex:0 0 auto;display:flex;padding:2px;border:1px solid var(--color-line-dark);border-radius:3px}.project-view-toggle button{min-height:28px;padding:.25rem .5rem;border:0;border-radius:2px;background:transparent;color:var(--color-text-subtle);font-size:.66rem;cursor:pointer}.project-view-toggle button.is-active{background:rgba(138,98,176,.16);color:var(--color-ivory)}

/* Cinta cinética editorial */
.kinetic-ribbon{position:relative;width:100%;height:68px;display:flex;align-items:center;overflow:hidden;border-block:1px solid rgba(169,132,200,.18);background:#101014;color:var(--color-cream)}.kinetic-ribbon::before,.kinetic-ribbon::after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:clamp(22px,5vw,72px);pointer-events:none}.kinetic-ribbon::before{left:0;background:linear-gradient(90deg,#101014,transparent)}.kinetic-ribbon::after{right:0;background:linear-gradient(-90deg,#101014,transparent)}.kinetic-ribbon-track{display:flex;width:max-content;will-change:transform;animation:kinetic-ribbon-scroll 34s linear infinite}.kinetic-ribbon-group{flex:0 0 auto;white-space:nowrap;padding-right:2.8rem;color:var(--color-text-muted);font-size:.72rem;font-weight:720;letter-spacing:.14em;line-height:1;text-transform:uppercase}.kinetic-ribbon-group span{display:inline-block;margin-inline:.7rem;color:#B89AD2;font-size:.62rem}

/* Direction, FAQ, contact */
.hadriva-section{background:var(--color-bg-secondary)}.hadriva-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(3rem,9vw,7rem)}.hadriva-grid .section-heading>p:not(.eyebrow){margin-top:1rem}.leadership-list{border-top:1px solid var(--color-line-dark)}.leadership-list article{display:grid;grid-template-columns:62px 1fr;gap:1rem;align-items:center;padding:1.65rem 0;border-bottom:1px solid var(--color-line-dark)}.leadership-list article>span{color:var(--color-purple-accent);font-family:var(--font-display)}.leadership-list h3{font-family:var(--font-display);font-size:1.28rem;font-weight:500}.leadership-list p{margin-top:.25rem;color:var(--color-text-muted);font-size:.9rem}
.faq-section{background:var(--color-bg-primary)}.faq-grid{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:clamp(3rem,9vw,7rem)}.faq-list{border-top:1px solid var(--color-line-dark)}.faq-item{border-bottom:1px solid var(--color-line-dark)}.faq-item summary{position:relative;min-height:70px;display:flex;align-items:center;padding:1rem 3rem 1rem .8rem;color:var(--color-cream);font-weight:700;cursor:pointer;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";position:absolute;right:.8rem;color:var(--color-purple-accent);font-size:1.4rem;transition:transform 220ms var(--ease)}.faq-item[open] summary::after{transform:rotate(45deg)}.faq-item p{max-width:62ch;padding:0 3rem 1.4rem .8rem;color:var(--color-text-muted);animation:answer-in 220ms var(--ease)}
.contact-section{background:var(--color-bg-tertiary)}.contact-shell{display:grid;grid-template-columns:minmax(0,.72fr) minmax(390px,1fr);gap:clamp(3rem,8vw,6rem);padding:clamp(1.7rem,5vw,4rem);border:1px solid var(--color-line-dark);background:var(--color-bg-secondary)}.contact-copy>p:not(.eyebrow){max-width:50ch;margin-top:1.1rem;color:var(--color-text-muted)}.contact-direct{display:grid;gap:.5rem;margin-top:2rem}.contact-direct a{width:fit-content}.contact-form{display:grid;gap:.6rem}.contact-form label:not(.form-consent){margin-top:.3rem;color:var(--color-cream);font-size:.9rem;font-weight:700}.contact-form label span{color:var(--color-text-subtle);font-weight:400}.contact-form input:not([type=checkbox]),.contact-form textarea{width:100%;min-height:48px;padding:.78rem .88rem;border:1px solid var(--color-line-dark);border-radius:3px;background:var(--color-bg-primary);color:var(--color-ivory);transition:border-color 160ms ease,box-shadow 160ms ease}.contact-form textarea{min-height:120px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--color-purple-accent);outline:0;box-shadow:0 0 0 3px rgba(138,98,176,.14)}.form-honeypot{position:absolute;left:-9999px}.form-consent{display:grid;grid-template-columns:20px 1fr;gap:.7rem;margin:.65rem 0;color:var(--color-text-muted);font-size:.83rem;line-height:1.5}.form-consent input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--color-purple-primary)}.form-consent a{color:var(--color-ivory)}.contact-form .button{justify-self:start}
/* Footer */
.site-footer{position:relative;isolation:isolate;padding:4.5rem 0 1.5rem;border-top:1px solid var(--color-line-dark);background:var(--color-bg-primary);color:var(--color-text-muted)}.site-footer::after{content:"";position:absolute;z-index:0;left:50%;bottom:9px;width:34px;height:52px;background:url("assets/ornamental-cross.svg") center/contain no-repeat;opacity:.46;transform:translateX(-50%);pointer-events:none}.site-footer>.container{position:relative;z-index:1}.footer-grid{display:grid;grid-template-columns:1.2fr .75fr .85fr;gap:clamp(2rem,6vw,4.5rem);padding-bottom:3rem}.footer-brand p{max-width:42ch;margin-top:.7rem}.footer-grid h3{color:var(--color-cream);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase}.footer-nav,.footer-contact-list{display:grid;gap:.45rem;margin-top:1rem;padding:0;list-style:none}.footer-nav a,.footer-contact-list a,.footer-bottom a{color:var(--color-text-muted);transition:color 160ms ease}.footer-nav a:hover,.footer-contact-list a:hover,.footer-bottom a:hover{color:var(--color-ivory)}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-line-dark);font-size:.87rem}.footer-legal-links{display:flex;flex-wrap:wrap;gap:1rem}.compact-footer-bottom{align-items:center;flex-wrap:wrap}.footer-compact-logo img{width:118px}.thanks-header .header-cta{display:inline-flex}

/* Internal legal and confirmation pages */
.legal-main{background:var(--color-bg-secondary);color:var(--color-text-muted)}.legal-section{padding:clamp(3.5rem,7vw,6rem) 0}.legal-document{max-width:820px}.legal-document h1{margin-bottom:.9rem;color:var(--color-ivory)}.legal-updated{color:var(--color-text-subtle)}.legal-document h2{margin:3rem 0 1rem;color:var(--color-cream);font-family:var(--font-body);font-size:1.05rem;font-weight:800;letter-spacing:.04em}.legal-document p+p{margin-top:.78rem}.legal-document ul{margin-top:.8rem;padding-left:1.3rem}.legal-document li+li{margin-top:.35rem}.legal-document a{color:var(--color-ivory)}.thanks-header .nav-bar{justify-content:space-between}.thanks-page{min-height:100vh;display:flex;flex-direction:column}.thanks-page main{flex:1;display:grid;place-items:center}.thanks-section{width:100%;padding:5rem 0}.thanks-card{max-width:680px}.thanks-icon{width:52px;height:52px;display:grid;place-items:center;margin-bottom:1.4rem;border:1px solid var(--color-purple-accent);border-radius:50%;color:var(--color-purple-accent)}.thanks-card>p:not(.eyebrow){margin-top:1.1rem;color:var(--color-text-muted)}.contact-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* Reveals */
.js [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity 620ms var(--ease),transform 620ms var(--ease)}.js [data-reveal=left]{transform:translateY(14px)}.js [data-reveal=right]{transform:translateY(14px)}.js [data-reveal].is-visible{opacity:1;transform:none}.js [data-title-reveal]{clip-path:inset(0 0 100%);transform:translateY(14px);transition:clip-path 720ms var(--ease),transform 720ms var(--ease)}.js [data-title-reveal].is-visible{clip-path:inset(0);transform:none}
@keyframes intro-plane-register{0%{opacity:0;transform:translateX(-50%) scaleX(.2)}52%{opacity:.58}100%{opacity:.16;transform:translateX(-50%) scaleX(1)}}
@keyframes intro-axis-v{0%{opacity:0;transform:translate3d(-50%,-50%,0) scaleY(.04)}46%{opacity:.76}100%{opacity:.32;transform:translate3d(-50%,-50%,0) scaleY(1)}}
@keyframes intro-axis-h{0%{opacity:0;transform:translate3d(-50%,-50%,0) scaleX(.035)}48%{opacity:.84}100%{opacity:.38;transform:translate3d(-50%,-50%,0) scaleX(1)}}
@keyframes intro-rail-set{0%{opacity:0;transform:translate3d(-50%,var(--rail-y),0) scaleX(.12)}68%{opacity:.5}100%{opacity:.25;transform:translate3d(-50%,0,0) scaleX(1)}}
@keyframes intro-diagonal-set{0%{opacity:0;transform:translate3d(var(--diagonal-x),-50%,0) rotate(var(--diagonal-angle)) scaleX(.12)}100%{opacity:.34;transform:translate3d(var(--diagonal-x),-50%,0) rotate(var(--diagonal-angle)) scaleX(1)}}
@keyframes intro-node-lock{0%{opacity:0;transform:translate3d(var(--node-x),var(--node-y),0) scale(.5)}66%{opacity:.86}100%{opacity:.5;transform:translate3d(0,0,0) scale(1)}}
@keyframes intro-frame-build{0%{opacity:0;clip-path:inset(50% 0);transform:translate3d(-50%,-50%,0) scale(.96)}62%{opacity:.56}100%{opacity:.26;clip-path:inset(0);transform:translate3d(-50%,-50%,0) scale(1)}}
@keyframes intro-architecture-order{0%{transform:scale(.985)}58%{transform:scale(1.006)}100%{transform:scale(1)}}
@keyframes intro-mark-accent-architectural{0%{clip-path:inset(0);opacity:0;transform:translate3d(-5px,3px,0) scale(.95)}18%{clip-path:inset(0);opacity:.075}34%{clip-path:inset(48% 0 0);opacity:.28}76%{clip-path:inset(0);opacity:.34;transform:translate3d(0,0,0) scale(1)}100%{clip-path:inset(0);opacity:.12;transform:translate3d(0,0,0) scale(1)}}
@keyframes intro-mark-final-architectural{0%{clip-path:inset(0 0 52%);opacity:0;transform:translate3d(4px,-3px,0) scale(.95)}22%{opacity:.18}74%{clip-path:inset(0);opacity:.96;transform:translate3d(0,0,0) scale(1)}100%{clip-path:inset(0);opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes intro-mark-dock{0%{transform:translate3d(-50%,-50%,0)}100%{transform:translate3d(calc(-50% - (var(--intro-logo-gap) + var(--intro-name-width))/2),-50%,0)}}
@keyframes intro-name-rule{0%{opacity:0;transform:translateY(-50%) scaleX(0)}42%{opacity:.78}100%{opacity:0;transform:translateY(-50%) scaleX(1)}}
@keyframes intro-name-arrive{0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translate3d(16px,0,0)}100%{clip-path:inset(0);opacity:1;transform:translate3d(0,0,0)}}
@keyframes intro-identity-light{0%{opacity:0;transform:translate3d(-120%,0,0) skewX(-9deg)}24%{opacity:.62}72%{opacity:.34}100%{opacity:0;transform:translate3d(455%,0,0) skewX(-9deg)}}
@keyframes intro-descriptor-rule{0%{opacity:0;transform:scaleX(.12)}100%{opacity:.52;transform:scaleX(1)}}
@keyframes intro-description-arrive{0%{opacity:0;transform:translate3d(0,7px,0)}100%{opacity:.76;transform:translate3d(0,0,0)}}
@keyframes intro-overlay-safety{0%,99.9%{opacity:1;visibility:visible;pointer-events:auto}100%{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes kinetic-ribbon-scroll{to{transform:translate3d(-33.333333%,0,0)}}
@keyframes answer-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

@media(max-width:1100px){.header-cta{display:none}.hero-grid{grid-template-columns:minmax(0,1.18fr) minmax(260px,.82fr)}.hero-copy h1{font-size:clamp(2.75rem,4.8vw,3.25rem)}.projects-mosaic{min-height:660px}.contact-shell{grid-template-columns:1fr 1fr}}
@media(max-width:900px){:root{--header-height:70px;--section-space:clamp(4.5rem,9vw,5.8rem)}.nav-toggle{display:block;margin-left:auto}.site-nav{position:fixed;z-index:170;inset:var(--header-height) 0 0;display:block;margin:0;padding:24px;overflow-y:auto;border-top:1px solid var(--color-line-dark);background:var(--color-bg-primary);opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity 180ms ease,visibility 180ms ease,transform 220ms var(--ease)}.site-nav.is-open{opacity:1;visibility:visible;transform:none;pointer-events:auto}.site-nav>a:not(.button){min-height:54px;justify-content:flex-start;border-bottom:1px solid var(--color-line-dark);font-size:1.15rem}.nav-indicator{display:none}.mobile-menu-cta{width:100%;display:flex;margin-top:clamp(2rem,8vh,4rem)}.hero{min-height:auto;padding:4.5rem 0 4rem}.hero-grid{grid-template-columns:1fr;gap:2rem}.hero-copy{max-width:760px}.hero-orbit{min-height:260px}.process-track{grid-template-columns:1fr}.process-track::before{width:2px;height:100%;transform:scaleY(0);transform-origin:top}.process-track.is-visible::before{transform:scaleY(1)}.process-item{padding:1.4rem 0 1.5rem 2rem}.projects-heading,.hadriva-grid,.faq-grid,.contact-shell{grid-template-columns:1fr}.projects-heading{gap:1.2rem}.projects-mosaic{grid-template-columns:minmax(0,1.55fr) minmax(230px,1fr);min-height:640px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:700px){.site-footer::after{width:29px;height:45px}.projects-mosaic{grid-template-columns:1fr;grid-template-rows:none;min-height:0}.project-featured{grid-column:auto;grid-row:auto}.project-media,.project-card:not(.project-featured) .project-media{min-height:0;aspect-ratio:16/10}.project-meta,.project-featured .project-meta{padding:22px}.project-meta h3,.project-featured .project-meta h3{font-size:clamp(1.5rem,7vw,1.875rem)}}
@media(max-width:600px){.container{width:min(calc(100% - 40px),var(--max-width))}h1{font-size:clamp(2.4rem,10vw,3.1rem)}h2{font-size:clamp(1.9rem,8.5vw,2.45rem)}.brand{gap:8px}.brand .brand-mark{height:19.8px}.brand .brand-name{height:18px}.hero{padding:3.75rem 0 4rem}.hero-copy .eyebrow{margin-bottom:1.15rem}.hero-copy h1{margin-bottom:28px;font-size:clamp(2.25rem,10vw,2.65rem);line-height:1.09}.hero-lead{font-size:1rem}.hero-actions,.contact-links{display:grid}.hero-actions .button,.contact-links .button,.section-actions .button,.contact-form .button{width:100%}.hero-orbit{min-height:190px}.leadership-list article{grid-template-columns:50px 1fr}.contact-shell{width:calc(100% - 32px);padding:1.35rem}.footer-grid{grid-template-columns:1fr;gap:2.2rem}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column}.legal-document h2{margin-top:2.5rem}}
@media(prefers-reduced-motion:reduce){}

/* Home: recalibración editorial y compacta */
.home-page{--header-height:70px;--section-space:clamp(4.4rem,7vw,6.4rem);font-size:15.25px}
.home-page h2{max-width:720px;font-size:clamp(2rem,3.25vw,3.2rem);line-height:1.06}
.home-page .section-heading{margin-bottom:clamp(2.25rem,4vw,3.5rem)}
.home-page .section-heading>p:not(.eyebrow){max-width:60ch;margin-top:1rem}
.home-page .eyebrow{margin-bottom:.78rem;font-size:.7rem;letter-spacing:.16em}
.home-page .button{min-height:46px;padding:.68rem 1.12rem;font-size:.9rem}
.home-page .site-header{backdrop-filter:blur(12px);background:rgba(11,11,15,.9)}
.home-page .nav-bar{gap:clamp(.9rem,2vw,1.6rem)}
.home-page .brand{gap:7px}
.home-page .brand .brand-mark{height:17.6px}
.home-page .brand .brand-name{height:16px}
.home-page .site-nav{gap:clamp(.65rem,1.5vw,1.15rem)}
.home-page .site-nav>a:not(.button){font-size:.8rem}
.home-page .header-cta{min-height:42px;padding:.58rem .9rem;font-size:.78rem}
.home-page .hero{min-height:clamp(580px,calc(100svh - var(--header-height)),700px);padding:clamp(3.6rem,6vh,4.8rem) 0}
.home-page .hero-grid{grid-template-columns:minmax(0,1.22fr) minmax(300px,.88fr);gap:clamp(2rem,4vw,4rem)}
.home-page .hero-copy .eyebrow{margin-bottom:1.05rem}
.home-page .hero-copy h1{max-width:650px;margin-bottom:24px;font-size:clamp(2.7rem,3.9vw,3.6rem);line-height:1.075}
.home-page .hero-lead{max-width:585px;font-size:clamp(1rem,1.1vw,1.0625rem);line-height:1.58}
.home-page .hero-actions{gap:.75rem;margin-top:1.65rem}
.home-page .hero-orbit{min-height:410px}

.home-page .needs-section{border-top:1px solid var(--color-line-dark);background:var(--color-bg-primary)}
.home-page .needs-heading{max-width:800px}
.home-page .needs-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;border-top:1px solid var(--color-line-dark);list-style:none}
.home-page .needs-item{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);gap:1rem;padding:clamp(1.35rem,2.5vw,1.8rem) clamp(1rem,3vw,2rem) clamp(1.35rem,2.5vw,1.8rem) 0;border-bottom:1px solid var(--color-line-dark);transition:border-color 180ms ease,background-color 180ms ease}
.home-page .needs-item:nth-child(even){padding-right:0;padding-left:clamp(1rem,3vw,2rem);border-left:1px solid var(--color-line-dark)}
.home-page .needs-item:hover{border-color:rgba(169,132,200,.42);background:rgba(138,98,176,.025)}
.home-page .needs-number{padding-top:.28rem;color:#A984C8;font-family:var(--font-display);font-size:.76rem}
.home-page .needs-item h3{font-family:var(--font-display);font-size:clamp(1.1rem,1.6vw,1.3rem);font-weight:500;line-height:1.22}
.home-page .needs-item p{max-width:52ch;margin-top:.55rem;color:var(--color-text-muted);font-size:.9rem;line-height:1.58}
.home-page .needs-link{min-height:44px;display:inline-flex;align-items:center;gap:.45rem;margin-top:.72rem;color:var(--color-cream);font-size:.82rem;font-weight:700;text-underline-offset:.32em;transition:color 160ms ease,transform 180ms var(--ease)}
.home-page .needs-link:hover{color:#C7A8E0;transform:translateX(3px)}

.home-page .process-section{padding-block:clamp(4rem,6vw,5.5rem)}
.home-page .process-track{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem)}
.home-page .process-item{padding:1.5rem 0 0}
.home-page .process-item>span{margin-bottom:1.35rem;font-size:.82rem}
.home-page .process-item h3{font-size:1.18rem;line-height:1.2}
.home-page .process-item p{margin-top:.55rem;font-size:.9rem;line-height:1.55}

.home-page .stewardship-section{border-block:1px solid var(--color-line-dark);background:var(--color-bg-secondary)}
.home-page .stewardship-heading{max-width:820px}
.home-page .stewardship-track{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(.9rem,2vw,1.5rem);margin:0;padding:0;list-style:none}
.home-page .stewardship-track::before{content:"";position:absolute;top:9px;right:0;left:0;height:1px;background:rgba(169,132,200,.48);transform:scaleX(0);transform-origin:left;transition:transform 900ms var(--ease)}
.home-page .stewardship-track.is-visible::before{transform:scaleX(1)}
.home-page .stewardship-item{min-width:0;position:relative}
.home-page .stewardship-number{position:relative;z-index:1;min-width:32px;height:19px;display:inline-flex;align-items:center;padding-right:.55rem;background:var(--color-bg-secondary);color:#A984C8;font-family:var(--font-display);font-size:.72rem;line-height:1}
.home-page .stewardship-item h3{max-width:18ch;margin-top:1rem;font-family:var(--font-display);font-size:1.02rem;font-weight:500;line-height:1.22}
.home-page .stewardship-item p{max-width:28ch;margin-top:.55rem;color:var(--color-text-muted);font-size:.84rem;line-height:1.55}
.home-page .projects-mosaic{min-height:0;gap:16px}
.home-page .project-card{transition:border-color 180ms ease}
.home-page .project-card:hover{border-color:rgba(138,98,176,.42)}
.home-page .project-card img{transition:transform 700ms var(--ease),filter 260ms ease}
.home-page .project-meta{padding:14px 16px}
.home-page .project-featured .project-meta{padding:17px 18px}
.home-page .project-meta h3{font-size:clamp(1.08rem,1.45vw,1.3rem)}
.home-page .project-featured .project-meta h3{font-size:clamp(1.35rem,2vw,1.65rem)}
.home-page .project-meta>a{margin-top:.52rem;font-size:.82rem}

.home-page .hadriva-section{padding-block:clamp(4.2rem,6vw,5.6rem)}
.home-page .hadriva-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1fr);gap:clamp(2.5rem,7vw,5rem)}
.home-page .leadership-list article{grid-template-columns:52px 1fr;padding:1.35rem 0}
.home-page .leadership-list h3{font-size:1.16rem}
.home-page .leadership-list p{font-size:.84rem}
.home-page .faq-grid{gap:clamp(2.5rem,7vw,5rem)}
.home-page .faq-item summary{min-height:64px;padding:.9rem 2.8rem .9rem .7rem;font-size:.94rem;transition:color 160ms ease,background-color 160ms ease}
.home-page .faq-item summary:hover{background:rgba(138,98,176,.035);color:var(--color-ivory)}
.home-page .faq-item p{padding:0 2.8rem 1.25rem .7rem;font-size:.92rem;line-height:1.58}
.home-page .contact-shell{grid-template-columns:minmax(0,.72fr) minmax(360px,1fr);gap:clamp(2.5rem,6vw,4.5rem);padding:clamp(1.6rem,4vw,3.2rem)}
.home-page .contact-copy>p:not(.eyebrow){margin-top:.9rem}
.home-page .contact-direct{margin-top:1.5rem}
.home-page .contact-form{gap:.5rem}
.home-page .contact-form input:not([type=checkbox]),.home-page .contact-form textarea{min-height:46px;padding:.7rem .82rem}
.home-page .contact-form textarea{min-height:110px}
.home-page .site-footer{padding:3.8rem 0 1.35rem}
.home-page .footer-grid{padding-bottom:2.5rem}

@media(max-width:1100px){
  .home-page .hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)}
  .home-page .hero-copy h1{font-size:clamp(2.6rem,4.5vw,3.25rem)}
  .home-page .projects-mosaic{grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);grid-template-rows:repeat(2,226px)}
  .home-page .project-featured{grid-template-rows:310px minmax(0,1fr)}
  .home-page .project-card:not(.project-featured) .project-media{height:142px}
}
@media(max-width:900px){
  .home-page{--header-height:64px;--section-space:clamp(4rem,8vw,5.2rem)}
  .home-page .site-nav{top:100%;right:0;bottom:auto;left:0;width:100%;height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));max-height:calc(100dvh - var(--header-height));padding:20px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
  .home-page .site-nav>a:not(.button){min-height:50px;font-size:1rem}
  .home-page .mobile-menu-cta{margin-top:2rem}
  .home-page .hero{min-height:auto;padding:4rem 0 3.5rem}
  .home-page .hero-grid{grid-template-columns:1fr;gap:1.5rem}
  .home-page .hero-orbit{min-height:260px}
  .home-page .process-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2rem}
  .home-page .process-track::before{display:none}
  .home-page .process-item{padding:1.25rem 0 0}
  .home-page .projects-mosaic{grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);grid-template-rows:repeat(2,218px)}
  .home-page .project-featured{grid-template-rows:300px minmax(0,1fr)}
  .home-page .project-card:not(.project-featured) .project-media{height:136px}
  .home-page .hadriva-grid,.home-page .faq-grid,.home-page .contact-shell{grid-template-columns:1fr}
  .home-page .stewardship-track{grid-template-columns:1fr;gap:1.35rem}
  .home-page .stewardship-track::before{top:8px;right:auto;bottom:8px;left:10px;width:1px;height:auto;transform:scaleY(0);transform-origin:top}
  .home-page .stewardship-track.is-visible::before{transform:scaleY(1)}
  .home-page .stewardship-item{min-height:72px;padding-left:42px}
  .home-page .stewardship-number{position:absolute;top:0;left:0;min-width:22px;padding-right:.35rem}
  .home-page .stewardship-item h3{max-width:none;margin-top:0}
  .home-page .stewardship-item p{max-width:64ch}
}
@media(max-width:700px){
  .home-page .needs-list{grid-template-columns:1fr}
  .home-page .needs-item,.home-page .needs-item:nth-child(even){padding:1.25rem 0;border-left:0}
  .home-page .needs-link{width:100%;justify-content:space-between}
  .home-page .projects-mosaic{grid-template-columns:1fr;grid-template-rows:none;min-height:0}
  .home-page .project-featured{grid-column:auto;grid-row:auto}
  .home-page .project-featured{grid-template-rows:220px auto}
  .home-page .project-media,.home-page .project-card:not(.project-featured) .project-media{height:210px;min-height:0;aspect-ratio:auto}
  .home-page .project-meta,.home-page .project-featured .project-meta{padding:15px 16px}
  .home-page .project-meta h3,.home-page .project-featured .project-meta h3{font-size:clamp(1.2rem,5.2vw,1.45rem)}
  .home-page .project-view-toggle button{min-height:30px}
}
@media(max-width:600px){
  .home-page{font-size:15px}
  .home-page .container{width:min(calc(100% - 40px),var(--max-width))}
  .home-page h2{font-size:clamp(1.75rem,7.5vw,2.2rem)}
  .home-page .brand{gap:6px}
  .home-page .brand .brand-mark{height:15.4px}
  .home-page .brand .brand-name{height:14px}
  .home-page .hero{padding:3.35rem 0 3.5rem}
  .home-page .hero-copy h1{margin-bottom:21px;font-size:clamp(2.1rem,9vw,2.45rem);line-height:1.09}
  .home-page .hero-lead{font-size:.96rem}
  .home-page .hero-actions{display:grid;margin-top:1.4rem}
  .home-page .hero-actions .button{width:100%}
  .home-page .hero-orbit{min-height:200px}
  .home-page .hero-orbit-mark{height:16px}
  .home-page .process-track{grid-template-columns:1fr;gap:.35rem}
  .home-page .process-item{padding:1.15rem 0}
  .home-page .projects-heading{grid-template-columns:1fr;gap:1rem}
  .home-page .contact-shell{width:calc(100% - 32px);padding:1.3rem}
}

/* Corrección integral: órbita, demos, cinta y páginas de cierre */
.home-page .hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(480px,.92fr);gap:clamp(2.25rem,4vw,4rem)}
.home-page .hero-orbit{min-height:460px}
.home-page .hero-orbit-mark{transform:translate3d(calc(-50% + var(--orbit-mark-x,0px)),calc(-50% + var(--orbit-mark-y,0px)),0) rotate(var(--orbit-mark-rotate,0deg)) scale(var(--orbit-mark-scale,.86))}
.home-page .site-footer{padding-bottom:3.75rem}
.home-page .site-footer::after{z-index:0;bottom:10px;opacity:.62}
.home-page .hero-actions{gap:.6rem;margin-top:1.35rem}
.home-page .hero-actions .button.secondary{min-height:44px;padding:.55rem .55rem;border-color:transparent;color:var(--color-text-muted);font-size:.84rem;text-decoration:underline;text-decoration-color:rgba(169,132,200,.48);text-underline-offset:.32em}
.home-page .hero-actions .button.secondary:hover{border-color:transparent;background:transparent;color:var(--color-ivory)}
.home-page .projects-heading{display:block;max-width:720px;margin-bottom:clamp(1.8rem,3vw,2.6rem)}
.home-page .projects-heading>div{min-width:0;max-width:100%}
.home-page .projects-heading>div>p:not(.eyebrow){max-width:58ch;margin-top:.72rem;color:var(--color-text-muted);font-size:.9rem;line-height:1.55}

.home-page .projects-mosaic{grid-template-rows:repeat(2,184px);gap:12px}
.home-page .project-featured{grid-template-rows:250px minmax(0,1fr)}
.home-page .project-card:not(.project-featured) .project-media{height:99px}
.home-page .project-meta,.home-page .project-featured .project-meta{padding:8px 10px}
.home-page .project-meta-top{gap:.55rem}
.home-page .project-meta small{font-size:.54rem;letter-spacing:.085em}
.home-page .project-meta h3{margin-top:.16rem;font-size:clamp(.88rem,1vw,.96rem);line-height:1.08}
.home-page .project-featured .project-meta h3{font-size:clamp(1rem,1.22vw,1.1rem)}
.home-page .project-meta>a{margin-top:.26rem;font-size:.68rem}
.home-page .project-view-toggle{padding:1px}
.home-page .project-view-toggle button{min-height:22px;padding:.15rem .32rem;font-size:.54rem}

.home-page .site-footer .footer-nav a,.home-page .site-footer .footer-bottom a{text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:rgba(185,175,167,.32);text-underline-offset:5px;transition:color 160ms ease,text-decoration-color 160ms ease}
.home-page .site-footer .footer-nav a:hover,.home-page .site-footer .footer-bottom a:hover{text-decoration-color:rgba(229,221,212,.68)}

.kinetic-ribbon{height:64px;background:#0F0F14}
.kinetic-ribbon::before{background:linear-gradient(90deg,#0F0F14,transparent)}
.kinetic-ribbon::after{background:linear-gradient(-90deg,#0F0F14,transparent)}
.kinetic-ribbon-group{color:rgba(243,239,232,.78)}

.thanks-header .brand{gap:7px}
.thanks-header .brand .brand-mark{height:17.6px}
.thanks-header .brand .brand-name{height:16px}
.thanks-page main{min-height:0;place-items:center stretch}
.thanks-page .thanks-section{padding:clamp(2.8rem,7vh,4.5rem) 0}
.thanks-page .thanks-card{position:relative;width:min(100%,720px);max-width:none;display:grid;grid-template-columns:48px minmax(0,1fr);gap:0 1.7rem;padding:2rem 0;border-block:1px solid var(--color-line-dark)}
.thanks-page .thanks-card::before{content:"";position:absolute;top:-1px;left:0;width:96px;height:1px;background:var(--color-purple-accent)}
.thanks-page .thanks-icon{grid-column:1;grid-row:1;width:44px;height:44px;margin:2px 0 0;border-color:rgba(169,132,200,.65);font-size:.9rem}
.thanks-page .thanks-message{grid-column:2}
.thanks-page .thanks-message h1{max-width:560px;font-size:clamp(3rem,3.35vw,3.5rem);line-height:1.04}
.thanks-page .thanks-message>p:not(.eyebrow){max-width:56ch;margin-top:.9rem;color:var(--color-text-muted)}
.thanks-page .contact-links{gap:.65rem;margin-top:1.45rem}
.thanks-page .contact-links .button{min-height:44px;padding:.62rem 1rem;font-size:.86rem}
.thanks-page .site-footer{padding-top:1.45rem}
:is(.thanks-page,.legal-page) .site-footer{padding-bottom:5rem}
:is(.thanks-page,.legal-page) .site-footer::after{bottom:13px}
:is(.thanks-page,.legal-page) .compact-footer-bottom{display:grid;grid-template-columns:auto minmax(190px,.72fr) minmax(300px,1.2fr);align-items:center;gap:1rem 2rem;padding-top:0;border-top:0}
:is(.thanks-page,.legal-page) .footer-compact-logo{gap:5px}
:is(.thanks-page,.legal-page) .footer-compact-logo img{width:auto}
:is(.thanks-page,.legal-page) .footer-compact-logo .brand-mark{height:15.4px}
:is(.thanks-page,.legal-page) .footer-compact-logo .brand-name{height:14px}
:is(.thanks-page,.legal-page) .footer-legal-links{justify-content:flex-end}

@media(min-width:901px) and (max-width:1100px){
  .home-page .hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(370px,.88fr)}
  .home-page .hero-orbit{min-height:400px}
  .home-page .projects-mosaic{grid-template-rows:repeat(2,178px)}
  .home-page .project-featured{grid-template-rows:240px minmax(0,1fr)}
  .home-page .project-card:not(.project-featured) .project-media{height:94px}
}
@media(min-width:701px) and (max-width:900px){
  .home-page .hero-orbit{min-height:310px}
  .home-page .projects-mosaic{grid-template-rows:repeat(2,174px)}
  .home-page .project-featured{grid-template-rows:232px minmax(0,1fr)}
  .home-page .project-card:not(.project-featured) .project-media{height:92px}
}
@media(max-width:700px){
  .home-page .projects-mosaic{grid-template-rows:none;gap:12px}
  .home-page .project-featured{grid-template-rows:190px auto}
  .home-page .project-media,.home-page .project-card:not(.project-featured) .project-media{height:184px;aspect-ratio:auto}
  .home-page .project-meta,.home-page .project-featured .project-meta{padding:9px 10px}
  .home-page .project-meta h3,.home-page .project-featured .project-meta h3{font-size:clamp(.94rem,4.2vw,1.02rem)}
  :is(.thanks-page,.legal-page) .compact-footer-bottom{grid-template-columns:1fr;gap:.75rem;text-align:left}
  :is(.thanks-page,.legal-page) .footer-legal-links{justify-content:flex-start}
}
@media(max-width:600px){
  .home-page .hero-orbit{min-height:230px}
  .kinetic-ribbon{height:56px}
  .kinetic-ribbon-track{animation-duration:39s}
  .kinetic-ribbon-group{padding-right:2rem;font-size:.65rem;letter-spacing:.11em}
  .kinetic-ribbon-group span{margin-inline:.52rem}
  .thanks-page .thanks-section{padding:2.6rem 0}
  .thanks-page .thanks-card{grid-template-columns:1fr;gap:1rem;padding:1.55rem 0}
  .thanks-page .thanks-icon{grid-column:1;grid-row:auto;width:40px;height:40px;margin:0}
  .thanks-page .thanks-message{grid-column:1}
  .thanks-page .thanks-message h1{font-size:clamp(2.125rem,10vw,2.55rem)}
  .thanks-page .contact-links{display:grid}
  :is(.thanks-page,.legal-page) .site-footer{padding-bottom:4.5rem}
}
@media(max-width:900px){
  .home-page,.home-page main,.home-page .hero,.home-page .hero-grid{max-width:100%}
  .home-page .hero-grid{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .home-page .hero-grid>*,.home-page .hero-copy,.home-page .hero-orbit{min-width:0;max-width:100%}
  .home-page .hero-orbit{width:100%;min-height:310px;overflow:hidden;contain:paint;transform:none}
  .home-page .hero-orbit-canvas{inset:0;width:100%;max-width:100%;height:100%}
}
@media(max-width:700px){
  .home-page .hero-orbit{min-height:240px}
}
@media(max-width:600px){
  .home-page .hero-orbit{min-height:230px}
}
@media(hover:none),(pointer:coarse){.hero-cursor-halo{display:none}}
@media(prefers-reduced-motion:reduce){
  .hero-orbit{will-change:auto}
}
