/* Forge v4: an additive motion layer. Original visual system lives in styles.css. */
:root{--ticker:34px}
:focus-visible{outline:1px solid var(--bronze2);outline-offset:6px}
.menu-panel{overflow-y:auto}
.menu-body,.menu-top,.menu-footer{z-index:2}
.menu-top{gap:16px}.menu-top>span{line-height:1.7}
.menu-atmosphere{overflow:hidden;--mood-x:65%;--mood-y:50%;background:radial-gradient(ellipse at var(--mood-x) var(--mood-y),rgba(158,98,51,.13),transparent 55%);transition:background 1.5s}
.menu-ghost{position:absolute;inset:12% -12%;display:flex;flex-direction:column;justify-content:space-around;opacity:.035;transform:rotate(-5deg)}
.menu-ghost span{white-space:nowrap;font:600 clamp(90px,17vw,240px)/1 Manrope,sans-serif;letter-spacing:-.055em;animation:menuDrift 50s ease-in-out infinite alternate;animation-play-state:paused}
.menu-ghost span:nth-child(2){align-self:flex-end;animation-direction:alternate-reverse;font-family:'Cormorant Garamond',serif}
.menu-construction{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(208,161,109,.045) 50%,transparent 50.1%),repeating-linear-gradient(0deg,transparent 0 89px,rgba(255,255,255,.018) 90px);mask-image:linear-gradient(90deg,transparent,#000)}
.menu-tf{position:absolute;right:8%;top:18%;height:64%;width:35%;fill:none;stroke:var(--bronze2);stroke-width:.3;opacity:.085;transition:transform 1.5s,opacity 1.5s}
.menu-dust{position:absolute;inset:0;opacity:.3}.menu-dust i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;background:var(--bronze2);animation:dustFloat var(--duration) ease-in-out infinite alternate;animation-delay:var(--delay);animation-play-state:paused}
.menu-panel.open .menu-ghost span,.menu-panel.open .menu-dust i{animation-play-state:running}
.menu-panel[data-mood="work"]{--mood-x:30%;--mood-y:70%}.menu-panel[data-mood="about"] .menu-ghost{opacity:.02}.menu-panel[data-mood="team"] .menu-dust{opacity:.1}.menu-panel[data-mood="team"] .menu-tf{opacity:.035}.menu-panel[data-mood="forge-brand"] .menu-tf{transform:scale(.8);opacity:.13}
.menu-panel[data-mood="work"] .menu-atmosphere{--mood-x:30%;--mood-y:70%}.menu-panel[data-mood="forge-brand"] .menu-atmosphere{--mood-x:50%;--mood-y:50%}
@keyframes menuDrift{to{transform:translateX(6%)}}
@keyframes dustFloat{to{transform:translate(14px,-34px);opacity:.25}}
.gateway-title{position:relative}.gateway-title:after{content:"";position:absolute;inset:-10%;pointer-events:none;background:linear-gradient(110deg,transparent 38%,rgba(208,161,109,.09) 49%,transparent 60%);opacity:0;mix-blend-mode:screen;transform:translateX(-50%)}
.gateway-glint .gateway-title:after{animation:forgeGlint 2.8s ease both}.gateway-glint .forge-word{animation:catchLight 2.8s ease both}.menu-glint .menu-toggle{border-color:rgba(208,161,109,.7);color:#f3e4ce;box-shadow:0 0 24px rgba(169,119,69,.1)}
@keyframes forgeGlint{25%{opacity:1}85%{opacity:.4}100%{transform:translateX(45%);opacity:0}}
@keyframes catchLight{0%,100%{filter:brightness(1)}33%{filter:brightness(1.09)}39%{filter:brightness(1.02)}58%{filter:brightness(1.12)}}
/* Arrive in an intentional order, then return to completely stable typography. */
.performing-title .arrival{display:inline-block}.experiences{position:relative;padding-bottom:.11em}.experiences:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--bronze2);transform-origin:left}
.motion-ready .what-view.is-active .turn{animation:wordArrival .85s var(--ease) .12s both}
.motion-ready .what-view.is-active .ideas{animation:ideaArrival .95s var(--ease) .28s both}
.motion-ready .what-view.is-active .into{animation:wordArrival .7s var(--ease) .52s both}
.motion-ready .what-view.is-active .experiences{animation:experienceArrival 1.1s var(--ease) .65s both}
.motion-ready .what-view.is-active .experiences:after{animation:drawUnderline .75s var(--ease) 1.5s both}
.motion-ready .what-view.is-active .hero-chapter .chapter-copy{animation:copyArrival .8s ease 1.85s both}
@keyframes wordArrival{from{opacity:0;transform:translateY(.28em)}to{opacity:1;transform:none}}
@keyframes ideaArrival{from{opacity:0;transform:translateX(.2em) rotateX(18deg)}to{opacity:1;transform:none}}
@keyframes experienceArrival{from{clip-path:inset(0 100% 0 0);transform:translateX(-.12em)}to{clip-path:inset(0);transform:none}}
@keyframes drawUnderline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes copyArrival{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.meaning{display:inline-block;position:relative;font:inherit;letter-spacing:inherit;text-transform:none;color:inherit;white-space:nowrap;vertical-align:baseline}
.meaning-strategy{transform:translateY(var(--alignment,0px))}
.meaning-strategy:after,.meaning-technology:after{content:"";position:absolute;left:0;right:0;bottom:-.12em;height:1px;background:var(--bronze2);opacity:calc(var(--semantic-energy,0) * .45);transform:scaleX(calc(1 - var(--semantic-energy,0) * .3));transform-origin:left;pointer-events:none}
.meaning-technology:after{height:.16em;background:linear-gradient(90deg,var(--bronze2) 1px,transparent 1px) 0 0/25% 100%;border-bottom:1px solid var(--bronze2)}
.meaning-design{letter-spacing:var(--identity-spacing,0em);color:color-mix(in srgb,currentColor calc(100% - var(--semantic-energy,0) * 60%),var(--bronze2));}
.meaning-real{filter:blur(var(--real-blur,0px));opacity:var(--real-opacity,1)}
/* One construction vocabulary evolves through the capability sequence. */
.capability-deck{position:relative;background:linear-gradient(90deg,transparent calc(6vw + 18px),rgba(169,119,69,.16) calc(6vw + 19px),transparent calc(6vw + 20px))}
.capability{container-type:inline-size;border-left:0;border-right:0;background:rgba(7,7,7,.35);--progress:1;--remaining:0;--trace:0}
.capability-main{min-width:0}.capability-main h3{font-size:clamp(30px,9.5cqw,105px);line-height:.95;max-width:100%}
.capability-trace{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(208,161,109,.14);stroke-width:.8;pointer-events:none}
.capability-trace path{stroke-dasharray:1;stroke-dashoffset:var(--trace);transition:stroke-dashoffset .15s linear}
.capability[data-capability="digital"] .capability-orbit{transform:translateY(-50%) rotate(calc(var(--remaining) * -28deg));opacity:calc(.4 + var(--progress) * .6)}
.capability[data-capability="design"] .capability-trace{transform:scaleX(.9);stroke:rgba(208,161,109,.22)}
.capability[data-capability="design"] .capability-type{transform:translateY(calc(var(--remaining) * 30px));color:rgba(208,161,109,.065)}
.capability[data-capability="design"] h3{letter-spacing:calc(-.06em + var(--remaining) * .06em)}
.video-ink{display:inline-block;color:#e9e5dd;background:repeating-linear-gradient(115deg,#f3f0ea 0%,#c4beb5 18%,#eee9df 25%,#9a7954 32%,#f3f0ea 40%,#f3f0ea 50%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:videoFrames 12s linear infinite;animation-play-state:paused}
.capability.in-viewport .video-ink{animation-play-state:running}
@keyframes videoFrames{to{background-position:100% 0}}
.content-assembly{display:inline-block}.content-assembly span{display:inline-block;transform:translateY(calc(var(--remaining) * var(--offset,20px)));opacity:calc(.35 + var(--progress) * .65)}
.capability[data-capability="motion"] .capability-trace{transform:scale(.85,.74);stroke:rgba(255,255,255,.1)}
.capability[data-capability="strategy"] .capability-nodes i{opacity:var(--progress);transform:translateY(calc(var(--remaining) * 24px))}
.capability[data-capability="strategy"] .capability-nodes:before,.capability[data-capability="strategy"] .capability-nodes:after{opacity:var(--progress)}
.capability[data-capability="strategy"] .capability-trace{transform:skewY(-3deg);stroke:rgba(208,161,109,.18)}
body.effects-suspended .video-ink,body.effects-suspended .menu-ghost span,body.effects-suspended .menu-dust i{animation-play-state:paused!important}
/* Responsive composition: finished content fits its own available column. */
.chapter-grid,.process-copy,.project-feature,.philosophy-section{min-width:0}.chapter-grid>*{min-width:0}
h2,h3{overflow-wrap:normal}.chapter h2{font-size:clamp(35px,5.3vw,100px);line-height:.96}
.contact-stage h2{font-size:clamp(45px,9vw,145px);line-height:.94}
.contact-meta{max-width:100%;overflow-wrap:anywhere}.contact-actions a{min-width:0;gap:18px;line-height:1.5}
.process-stage article{min-width:0}.process-stage h3{font-size:clamp(23px,2.5vw,42px)}
.announcement-track{gap:0}.announcement-cycle{display:flex;align-items:center;gap:36px;flex-shrink:0;padding-right:36px;min-width:100vw}
.menu-nav a:focus-visible strong{color:var(--bronze2)}
@media(max-width:900px){
 .chapter h2{font-size:clamp(30px,9.1vw,80px);line-height:1}.capability{grid-template-columns:1fr;gap:28px;padding:8vw 6vw}.capability-main h3{font-size:clamp(27px,11.2cqw,78px)}
 .capability-index{padding-bottom:12px;border-bottom:1px solid var(--line2);width:26px}.menu-nav strong{font-size:clamp(18px,4.9vw,32px)}.menu-nav a{grid-template-columns:26px minmax(0,1fr) 20px;gap:10px}.menu-indicator{width:18px}.menu-nav a:hover .menu-indicator{width:20px}
 .menu-ghost{opacity:.022}.menu-dust i:nth-child(n+9){display:none}.menu-tf{width:70%;right:-10%;opacity:.05}.menu-body{padding:28px 0;gap:24px}.menu-utility a{font-size:10px;min-height:32px;display:flex;align-items:center}
 .gateway-stage{min-height:calc(100svh - var(--header) - var(--ticker));height:auto;padding-bottom:70px}.gateway{height:auto;min-height:100svh}.gateway-title{font-size:clamp(68px,23vw,145px)}
 .contact-stage h2{font-size:clamp(38px,12vw,100px)}.forge-brand-stage h2{font-size:clamp(44px,15vw,105px)}.process-copy h2{font-size:clamp(31px,9.7vw,70px)}
 .project-details h3{font-size:clamp(30px,9vw,76px)}.philosophy-title h2{font-size:clamp(35px,10vw,90px)}.capability-main p{font-size:14px}.menu-top{font-size:7px}.menu-close{min-height:44px;padding:12px}
}
@media(max-width:360px){.brand{gap:8px}.brand span:last-child{font-size:10px}.menu-toggle{padding:14px 12px}.chapter-copy{padding-left:14px}.menu-utility{column-gap:12px}.intro-welcome{letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){
 .announcement{height:auto;min-height:var(--ticker)}.announcement-track{width:100%;white-space:normal;animation:none}.announcement-cycle{width:100%;padding:7px 4vw;line-height:1.5;font-size:8px;letter-spacing:.12em}.announcement-cycle:nth-child(2),.announcement-cycle i{display:none}
 .arrival,.experiences:after,.hero-chapter .chapter-copy,.menu-ghost span,.menu-dust i,.video-ink,.gateway-title:after,.forge-word{animation:none!important;transition:none!important}.video-ink{-webkit-text-fill-color:var(--ink);background:none}
 .meaning-char,.content-assembly span{transform:none!important;opacity:1!important}.meaning-real{filter:none;opacity:1}.meaning-technology:after{display:none}.design-layer{display:none}.design-base{opacity:1}
 .capability{--progress:1!important;--remaining:0!important;--trace:0!important}.cursor-glow{display:none}
}
/* Keep mixed type identities separated during the transformation. */
.performing-title .ideas{margin-left:.12em}.performing-title .into{margin-right:.1em}

@media(prefers-reduced-motion:reduce){.meaning{transform:none!important;filter:none!important;opacity:1!important;color:inherit!important;letter-spacing:inherit!important}.meaning:after{display:none}}

/* Gateway ambient signal: intentionally sparse, cinematic, and non-destructive. */
.gateway-signal{position:fixed;z-index:176;left:0;top:0;width:0;height:1px;pointer-events:none;opacity:0;transform-origin:0 50%;background:linear-gradient(90deg,rgba(208,161,109,0),rgba(233,196,154,.72) 45%,rgba(255,247,235,.95) 58%,rgba(208,161,109,0));filter:drop-shadow(0 0 6px rgba(208,161,109,.22));mix-blend-mode:screen}
body.gateway-glint .gateway-title .forge-word-the{animation:forgeWordPulse 2.65s cubic-bezier(.2,.7,.2,1) both}
body.gateway-glint .gateway-title .forge-word-forge{animation:forgeWordPulse 2.65s cubic-bezier(.2,.7,.2,1) .08s both}
body.gateway-glint .gateway-logo svg{animation:forgeMarkCatch 2.65s cubic-bezier(.2,.7,.2,1) both}
body.gateway-glint .gateway-light-a{animation:gatewayBloom 2.9s ease both}
body.menu-glint .menu-toggle{animation:menuCatch 1.05s cubic-bezier(.2,.7,.2,1) both}
body.menu-glint .gateway-signal{animation:gatewaySignal .72s cubic-bezier(.2,.65,.2,1) both}
@keyframes forgeWordPulse{0%,100%{text-shadow:none;filter:brightness(1)}18%{filter:brightness(1.035)}27%{text-shadow:0 0 15px rgba(208,161,109,.07);filter:brightness(1.11)}31%{filter:brightness(1.025)}42%{filter:brightness(1.14)}49%{text-shadow:0 0 24px rgba(208,161,109,.11);filter:brightness(1.055)}65%{filter:brightness(1.09)}76%{filter:brightness(1.01)}}
@keyframes forgeMarkCatch{0%,100%{filter:none;stroke:#e2ded7}28%{filter:drop-shadow(0 0 5px rgba(208,161,109,.17));stroke:#f3e4ce}46%{stroke:#e2ded7}58%{filter:drop-shadow(0 0 7px rgba(208,161,109,.2));stroke:#f0dbc0}74%{filter:none;stroke:#e2ded7}}
@keyframes gatewayBloom{0%,100%{opacity:.25;filter:blur(75px)}42%{opacity:.34;filter:blur(67px)}68%{opacity:.27;filter:blur(73px)}}
@keyframes menuCatch{0%,100%{border-color:var(--line);color:inherit;box-shadow:none}18%{border-color:rgba(208,161,109,.28)}45%{border-color:rgba(233,196,154,.82);color:#fff4e8;box-shadow:0 0 26px rgba(169,119,69,.12),inset 0 0 14px rgba(208,161,109,.035)}70%{border-color:rgba(208,161,109,.42);box-shadow:0 0 12px rgba(169,119,69,.06)}}
@keyframes gatewaySignal{0%{opacity:0;clip-path:inset(0 100% 0 0)}15%{opacity:.68}72%{opacity:.28;clip-path:inset(0 0 0 0)}100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@media(max-width:900px){.gateway-signal{height:1px;filter:drop-shadow(0 0 4px rgba(208,161,109,.16))}}
@media(prefers-reduced-motion:reduce){.gateway-signal{display:none!important}body.gateway-glint .gateway-title .forge-word-the,body.gateway-glint .gateway-title .forge-word-forge,body.gateway-glint .gateway-logo svg,body.gateway-glint .gateway-light-a,body.menu-glint .menu-toggle{animation:none!important}}

/* Signature threshold transit: Forge material accelerates, then resolves into structure. */
.forge-transit{position:fixed;inset:0;z-index:190;background:#020202;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s;overflow:hidden}
.forge-transit.active{opacity:1;visibility:visible;transition-delay:0s}
.forge-transit canvas{position:absolute;inset:0;width:100%;height:100%}
.transit-vignette{position:absolute;inset:-10%;background:radial-gradient(circle at 50% 50%,transparent 0 18%,rgba(0,0,0,.15) 42%,rgba(0,0,0,.78) 86%);mix-blend-mode:multiply}
.transit-axis{position:absolute;left:50%;top:50%;width:1px;height:1px;box-shadow:0 0 60px 22px rgba(169,119,69,.08);opacity:0;transition:opacity .6s ease}
.forge-transit.arriving .transit-axis{opacity:1}
.transit-copy{position:absolute;inset:auto 5vw 4.5vh;display:flex;justify-content:space-between;align-items:center;gap:20px;font:500 8px/1.2 Inter,sans-serif;letter-spacing:.24em;color:rgba(236,231,222,.35);opacity:.5}
.transit-copy b{font-weight:500;color:rgba(208,161,109,.7);letter-spacing:.3em}
.forge-transit.exit{opacity:0;transition:opacity .42s cubic-bezier(.2,.7,.2,1)}
body.in-transit .site-header,body.in-transit .announcement{opacity:.16;transition:opacity .25s ease}

/* Terms intentionally calmer than the cinematic sales journey. */
.terms-view{background:#060606}.terms-stage{padding-top:clamp(90px,12vw,170px);padding-bottom:12vw}.terms-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:7vw;align-items:end;padding-bottom:7vw;border-bottom:1px solid var(--line2)}
.terms-heading h2{font-size:clamp(52px,8.4vw,140px);line-height:.82;letter-spacing:-.07em;margin:0}.terms-heading h2 em{font-family:"Cormorant Garamond",serif;font-weight:400;color:var(--bronze2)}
.terms-heading p,.terms-grid p,.terms-note p{color:var(--muted);line-height:1.75;font-size:clamp(12px,1vw,15px);margin:0}
.terms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line2);margin-top:6vw}
.terms-grid article{position:relative;padding:clamp(30px,4vw,62px);border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);min-width:0}.terms-grid article:nth-child(2n){border-right:0}
.terms-grid small{display:block;color:var(--bronze2);font:600 8px/1 Inter,sans-serif;letter-spacing:.2em;margin-bottom:24px}.terms-grid h3{font-size:clamp(18px,2vw,30px);line-height:1;letter-spacing:-.035em;margin:0 0 22px;color:var(--ink)}
.terms-note{display:grid;grid-template-columns:.45fr 1.55fr;gap:5vw;padding:4vw 0;border-bottom:1px solid var(--line2)}.terms-note span{font:600 8px/1.4 Inter,sans-serif;letter-spacing:.18em;color:var(--bronze2)}
@media(max-width:760px){.transit-copy{inset:auto 6vw 3vh;font-size:6px}.transit-copy span{display:none}.transit-copy b{width:100%;text-align:center}.terms-heading{grid-template-columns:1fr;gap:34px}.terms-grid{grid-template-columns:1fr}.terms-grid article,.terms-grid article:nth-child(2n){border-right:0;padding:34px 0}.terms-note{grid-template-columns:1fr;gap:18px;padding:34px 0}.terms-stage{padding-left:6vw;padding-right:6vw}}
@media(prefers-reduced-motion:reduce){.forge-transit{display:none!important}}
