:root {
  --ink: #0b0a09;
  --ink-soft: #151310;
  --ivory: #f2eee6;
  --paper: #e8e1d6;
  --bronze: #b99c6b;
  --bronze-dark: #8e724b;
  --line: rgba(255,255,255,.16);
  --line-dark: rgba(18,16,13,.16);
  --text-soft: rgba(255,255,255,.67);
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--font-body); font-size: 15px; line-height: 1.65; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
::selection { background: var(--bronze); color: var(--ink); }

.page-loader { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: var(--ink); transition: opacity .7s ease, visibility .7s ease; }
.page-loader span { font-family: var(--font-display); font-size: 28px; letter-spacing: .36em; color: var(--bronze); animation: loaderPulse 1.4s ease-in-out infinite; }
body.is-loaded .page-loader { opacity: 0; visibility: hidden; }
@keyframes loaderPulse { 50% { opacity: .35; transform: scale(.96); } }
.cursor-glow { position: fixed; z-index: 30; width: 380px; height: 380px; transform: translate(-50%, -50%); pointer-events: none; border-radius: 50%; background: radial-gradient(circle, rgba(185,156,107,.08), transparent 68%); mix-blend-mode: screen; }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; right: 0; height: 96px; padding: 0 4vw; display: flex; align-items: center; justify-content: space-between; transition: background .35s ease, height .35s ease, border-color .35s ease; border-bottom: 1px solid transparent; }
.site-header.is-scrolled { height: 76px; background: rgba(10,9,8,.88); backdrop-filter: blur(18px); border-color: rgba(255,255,255,.12); }
.brand img { width: 248px; height: auto; }
.desktop-nav { display: flex; gap: 34px; margin-left: auto; margin-right: 38px; }
.desktop-nav a { color: rgba(255,255,255,.74); font-size: 12px; letter-spacing: .08em; transition: color .25s ease; }
.desktop-nav a:hover { color: #fff; }
.header-actions { display: flex; align-items: center; gap: 24px; }
.header-cta { color: #fff; font-size: 12px; letter-spacing: .08em; border-bottom: 1px solid var(--bronze); padding: 7px 0; }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.24); background: transparent; position: relative; }
.menu-toggle span { position: absolute; left: 11px; width: 19px; height: 1px; background: #fff; transition: transform .25s ease, top .25s ease; }
.menu-toggle span:first-child { top: 16px; }
.menu-toggle span:last-child { top: 24px; }
.menu-open .menu-toggle span:first-child { top: 20px; transform: rotate(45deg); }
.menu-open .menu-toggle span:last-child { top: 20px; transform: rotate(-45deg); }
.mobile-menu { position: fixed; inset: 0; z-index: 90; visibility: hidden; opacity: 0; background: var(--ink); transition: opacity .35s ease, visibility .35s ease; }
.menu-open .mobile-menu { visibility: visible; opacity: 1; }
.mobile-menu-inner { min-height: 100%; padding: 140px 7vw 60px; display: flex; flex-direction: column; gap: 18px; background-image: url('../img/architectural-grid.svg'); background-size: cover; }
.mobile-menu a { font-family: var(--font-display); color: #fff; font-size: clamp(34px,8vw,55px); line-height: 1; }
.mobile-menu .admin-entry { margin-top: 28px; font-family: var(--font-body); color: var(--bronze); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.menu-label, .eyebrow { display: inline-block; font-size: 10px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--bronze); }
.eyebrow.dark { color: var(--bronze-dark); }

.hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: hidden; background: var(--ink); color: #fff; }
.hero-image { position: absolute; inset: 0; background-image: url('https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=2200&q=90'); background-size: cover; background-position: center 54%; transform: scale(1.06); animation: heroScale 14s ease-out forwards; }
@keyframes heroScale { to { transform: scale(1); } }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,5,4,.78) 0%, rgba(5,5,4,.3) 48%, rgba(5,5,4,.42) 100%), linear-gradient(0deg, rgba(5,5,4,.8) 0%, transparent 55%); }
.hero-grid { position: absolute; inset: 0; opacity: .35; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 25% 100%, 100% 100%; }
.hero-content { position: relative; z-index: 2; width: min(1180px, 92vw); margin: 0 auto; padding: 170px 0 13vh; }
.hero h1 { margin: 20px 0 38px; max-width: 990px; font-family: var(--font-display); font-size: clamp(65px, 8.7vw, 136px); font-weight: 400; line-height: .82; letter-spacing: -.045em; }
.hero h1 em { font-weight: 400; color: var(--bronze); }
.hero-lower { max-width: 660px; display: grid; grid-template-columns: 1.35fr .9fr; gap: 44px; align-items: end; }
.hero-lower p { margin: 0; color: rgba(255,255,255,.75); font-size: 15px; }
.hero-buttons { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.button { border: 0; display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 52px; padding: 0 23px; font-size: 11px; letter-spacing: .11em; text-transform: uppercase; transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button-light { background: var(--ivory); color: var(--ink); min-width: 210px; }
.button-outline { border: 1px solid rgba(255,255,255,.32); color: #fff; background: transparent; }
.button-outline:hover { background: #fff; color: var(--ink); border-color: #fff; }
.text-link, .arrow-link { display: inline-flex; align-items: center; gap: 13px; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.text-link { color: rgba(255,255,255,.75); }
.arrow-link { margin-top: 20px; padding-bottom: 6px; border-bottom: 1px solid var(--bronze-dark); }
.hero-range { position: absolute; right: 4vw; bottom: 5vh; z-index: 2; text-align: right; padding-left: 34px; border-left: 1px solid rgba(255,255,255,.35); }
.hero-range span { display: block; color: rgba(255,255,255,.55); font-size: 10px; text-transform: uppercase; letter-spacing: .16em; }
.hero-range strong { font-family: var(--font-display); font-size: 27px; font-weight: 500; color: var(--bronze); }
.scroll-mark { position: absolute; z-index: 2; left: 4vw; bottom: 4.5vh; display: flex; align-items: center; gap: 13px; color: rgba(255,255,255,.46); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.scroll-mark span { width: 43px; height: 1px; background: rgba(255,255,255,.4); position: relative; overflow: hidden; }
.scroll-mark span::after { content:""; position:absolute; inset:0; background:#fff; transform:translateX(-100%); animation: scrollLine 2.1s ease infinite; }
@keyframes scrollLine { 60%,100% { transform: translateX(100%); } }

.section { position: relative; padding: 140px max(5vw, 30px); }
.section-number { position: absolute; top: 55px; left: max(5vw,30px); font-size: 10px; letter-spacing: .18em; color: var(--bronze-dark); }
.intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10vw; padding-top: 170px; padding-bottom: 95px; }
.intro-heading h2, .source-intro h2, .section-head h2, .intelligence h2, .process h2, .contact-copy h2 { font-family: var(--font-display); font-weight: 400; letter-spacing: -.035em; line-height: .95; }
.intro-heading h2, .source-intro h2 { font-size: clamp(55px,7vw,100px); margin: 20px 0 0; }
.intro-copy { padding-top: 58px; max-width: 560px; }
.intro-copy p { color: #5d574e; margin: 0 0 20px; }
.intro-copy .lead-copy { font-family: var(--font-display); color: var(--ink); font-size: 29px; line-height: 1.24; }
.capability-strip { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line-dark); margin-top: 80px; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.capability-strip div { padding: 38px 32px; background: var(--ivory); display: flex; flex-direction: column; gap: 8px; }
.capability-strip strong { font-family: var(--font-display); color: var(--bronze-dark); font-size: 42px; font-weight: 500; line-height: 1; }
.capability-strip span { font-size: 11px; color: #6d665c; max-width: 190px; }

.manifesto { min-height: 760px; display: grid; grid-template-columns: 1.25fr .75fr; background: var(--ink); }
.manifesto-image { min-height: 650px; background: url('https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=1800&q=88') center/cover; }
.manifesto-panel { padding: 8vw 6vw; color: #fff; display: flex; flex-direction: column; justify-content: center; background-image: url('../img/architectural-grid.svg'); background-size: cover; }
.manifesto blockquote { font-family: var(--font-display); font-size: clamp(34px,4.1vw,60px); line-height: 1.08; margin: 35px 0 70px; font-weight: 400; }
.signature-line { padding-top: 25px; border-top: 1px solid var(--line); display: flex; flex-direction: column; }
.signature-line span { font-family: var(--font-display); color: var(--bronze); font-size: 25px; }
.signature-line small { color: var(--text-soft); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }

.section-dark { background: var(--ink); color: #fff; }
.projects { padding: 150px max(5vw,30px); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; margin-bottom: 80px; }
.section-head h2 { font-size: clamp(55px,6.5vw,94px); margin: 18px 0 0; }
.section-head > p { max-width: 365px; color: var(--text-soft); margin-bottom: 8px; }
.project-accordion { border-top: 1px solid var(--line); }
.project-item { border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.project-trigger { width: 100%; min-height: 135px; display: grid; grid-template-columns: 70px 1fr 55px; gap: 24px; align-items: center; text-align: left; color: #fff; background: transparent; border: 0; padding: 20px 0; }
.project-index { color: var(--bronze); font-size: 11px; letter-spacing: .15em; }
.project-title-wrap { display: flex; flex-direction: column; gap: 9px; }
.project-title-wrap small { color: rgba(255,255,255,.46); font-size: 9px; text-transform: uppercase; letter-spacing: .17em; }
.project-title-wrap strong { font-family: var(--font-display); font-size: clamp(35px,4.3vw,65px); line-height: 1; font-weight: 400; transition: color .25s ease; }
.project-trigger:hover strong, .project-item.is-open .project-title-wrap strong { color: var(--bronze); }
.project-plus { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; position: relative; }
.project-plus::before, .project-plus::after { content:""; position:absolute; left:50%; top:50%; width:12px; height:1px; background:#fff; transform: translate(-50%,-50%); transition: transform .3s ease; }
.project-plus::after { transform: translate(-50%,-50%) rotate(90deg); }
.project-item.is-open .project-plus::after { transform: translate(-50%,-50%) rotate(0); }
.project-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .65s cubic-bezier(.2,.8,.2,1); }
.project-item.is-open .project-content { grid-template-rows: 1fr; }
.project-content-inner { min-height: 0; overflow: hidden; display: grid; grid-template-columns: minmax(320px,.82fr) 1.18fr; gap: 6vw; }
.project-visual { min-height: 520px; margin: 10px 0 70px; background: linear-gradient(rgba(0,0,0,.06),rgba(0,0,0,.2)), var(--project-image) center/cover; }
.project-details { padding: 26px 0 70px; }
.project-summary { max-width: 670px; color: rgba(255,255,255,.72); font-family: var(--font-display); font-size: 26px; line-height: 1.32; }
.sourcing-groups { display: grid; grid-template-columns: repeat(3,1fr); gap: 35px; margin: 48px 0; }
.sourcing-group { border-top: 1px solid rgba(255,255,255,.22); padding-top: 18px; }
.sourcing-group h3 { font-size: 10px; text-transform: uppercase; letter-spacing: .16em; color: var(--bronze); margin: 0 0 18px; }
.sourcing-group ul { list-style: none; padding: 0; margin: 0; }
.sourcing-group li { position: relative; padding: 7px 0 7px 15px; color: rgba(255,255,255,.63); font-size: 12px; line-height: 1.5; }
.sourcing-group li::before { content:""; position:absolute; left:0; top:15px; width:4px; height:4px; background:var(--bronze); border-radius:50%; }

.source-master { padding-top: 170px; }
.source-intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 9vw; align-items: end; margin-bottom: 100px; }
.source-intro .eyebrow { grid-column:1/-1; }
.source-intro h2 { margin: 0; }
.source-intro p { max-width: 540px; color:#625b51; }
.source-layout { display: grid; grid-template-columns: .76fr 1.24fr; gap: 8vw; align-items: start; }
.source-sticky { position: sticky; top: 120px; min-height: 560px; display: flex; flex-direction: column; justify-content: space-between; }
.source-sticky p { max-width: 410px; color:#625b51; }
.material-orbit { width: min(420px,90%); aspect-ratio:1; position:relative; display:grid; place-items:center; }
.orbit { position:absolute; inset:8%; border:1px solid rgba(142,114,75,.35); border-radius:50%; animation: spin 18s linear infinite; }
.orbit::before { content:""; position:absolute; width:14px; height:14px; border-radius:50%; background:var(--bronze-dark); left:11%; top:11%; box-shadow:0 0 0 10px rgba(142,114,75,.08); }
.orbit-two { inset:24%; animation-direction:reverse; animation-duration:12s; }
.orbit-two::before { left:auto; right:4%; top:48%; width:8px; height:8px; }
.orbit-core { width:110px; height:110px; border-radius:50%; background:var(--ink); color:var(--bronze); display:grid; place-items:center; font-family:var(--font-display); font-size:25px; letter-spacing:.14em; }
@keyframes spin { to { transform:rotate(360deg); } }
.source-list { border-top:1px solid var(--line-dark); }
.source-row { display:grid; grid-template-columns:55px .85fr 1.2fr 26px; gap:24px; align-items:center; padding:35px 0; border-bottom:1px solid var(--line-dark); transition:padding .25s ease, background .25s ease; }
.source-row:hover { padding-left:18px; background:rgba(185,156,107,.055); }
.source-row > span { color:var(--bronze-dark); font-size:10px; letter-spacing:.14em; }
.source-row h3 { margin:0; font-family:var(--font-display); font-size:31px; font-weight:500; }
.source-row p { margin:0; color:#6a6258; font-size:12px; }
.source-row b { font-weight:400; color:var(--bronze-dark); }

.intelligence { padding: 150px max(5vw,30px); background-image: radial-gradient(circle at 70% 30%, rgba(185,156,107,.12), transparent 25%), url('../img/architectural-grid.svg'); background-size:auto,cover; }
.intelligence-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:10vw; align-items:center; }
.intelligence-copy h2 { font-size:clamp(57px,7vw,100px); margin:20px 0 35px; }
.intelligence-copy p { max-width:560px; color:var(--text-soft); margin-bottom:38px; }
.document-stack { position:relative; min-height:620px; perspective:1400px; }
.document-card { position:absolute; width:min(460px,72%); aspect-ratio:.72; background:#eee7dc; color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.35); }
.card-back { left:0; top:55px; transform:rotate(-8deg); background:#5f5549; color:#fff; padding:30px; }
.card-middle { right:0; top:10px; transform:rotate(8deg); background:#b59b73; color:var(--ink); padding:30px; }
.card-front { left:50%; top:40px; transform:translateX(-50%); padding:38px; }
.document-card > span, .document-card > b { display:block; }
.document-card > span { font-size:10px; letter-spacing:.15em; }
.document-card > b { margin-top:170px; font-family:var(--font-display); font-size:35px; font-weight:500; }
.doc-header { display:flex; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid var(--line-dark); font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.card-front h3 { font-family:var(--font-display); font-size:39px; line-height:1; font-weight:500; margin:44px 0; }
.doc-lines { display:grid; gap:11px; }
.doc-lines i { display:block; height:5px; background:#d1c8bb; }
.doc-lines i:nth-child(2){width:84%}.doc-lines i:nth-child(3){width:93%}.doc-lines i:nth-child(4){width:72%}.doc-lines i:nth-child(5){width:88%}
.doc-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:32px 0 45px; }
.doc-grid span { height:85px; background:#ddd3c5; }
.card-front > small { font-size:8px; text-transform:uppercase; letter-spacing:.12em; }

.process { overflow:hidden; }
.light-head h2 { color:var(--ink); }
.light-head > p { color:#625b51; }
.process-rail { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark); }
.process-card { min-height:280px; padding:30px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); position:relative; transition:background .25s ease, color .25s ease; }
.process-card:hover { background:var(--ink); color:#fff; }
.process-card > span { color:var(--bronze-dark); font-size:10px; letter-spacing:.15em; }
.process-card h3 { font-family:var(--font-display); font-size:31px; font-weight:500; margin:70px 0 13px; }
.process-card p { font-size:12px; color:#665f55; transition:color .25s ease; }
.process-card:hover p { color:rgba(255,255,255,.64); }

.contact-section { position:relative; display:grid; grid-template-columns:.85fr 1.15fr; min-height:900px; background:var(--ink); color:#fff; overflow:hidden; }
.contact-backdrop { position:absolute; inset:0 52% 0 0; background: linear-gradient(rgba(7,6,5,.55),rgba(7,6,5,.82)), url('https://images.unsplash.com/photo-1600210491369-e753d80a41f3?auto=format&fit=crop&w=1500&q=88') center/cover; }
.contact-copy { position:relative; z-index:1; padding:140px 6vw; display:flex; flex-direction:column; justify-content:center; }
.contact-copy h2 { font-size:clamp(64px,7.5vw,110px); margin:20px 0 38px; }
.contact-copy > p { max-width:490px; color:var(--text-soft); }
.contact-facts { margin-top:65px; display:grid; gap:0; border-top:1px solid var(--line); }
.contact-facts div { padding:19px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; }
.contact-facts small { color:rgba(255,255,255,.45); font-size:8px; text-transform:uppercase; letter-spacing:.16em; }
.contact-facts strong { font-family:var(--font-display); font-size:23px; color:var(--bronze); font-weight:500; }
.form-panel { position:relative; z-index:1; background:#eee8df; color:var(--ink); padding:110px 6vw; }
.form-panel form { max-width:760px; margin:0 auto; }
.form-grid { display:grid; gap:28px; }
.form-grid.two { grid-template-columns:1fr 1fr; }
.form-panel label { display:block; margin-bottom:25px; }
.form-panel label > span, fieldset legend { display:block; margin-bottom:8px; font-size:9px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#756c61; }
.form-panel input, .form-panel select, .form-panel textarea { width:100%; border:0; border-bottom:1px solid #b8ad9e; background:transparent; padding:11px 0; color:var(--ink); border-radius:0; outline:none; transition:border-color .25s ease; }
.form-panel input:focus, .form-panel select:focus, .form-panel textarea:focus { border-color:var(--bronze-dark); }
.form-panel textarea { resize:vertical; }
fieldset { margin:0 0 26px; padding:0; border:0; }
.check-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.check-label { margin:0 !important; }
.check-label input { position:absolute; opacity:0; pointer-events:none; }
.check-label span { min-height:42px; display:flex !important; align-items:center; justify-content:center; margin:0 !important; border:1px solid #c8bdaf; font-size:8px !important; text-align:center; padding:8px; cursor:pointer; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.check-label input:checked + span { background:var(--ink); color:#fff; border-color:var(--ink); }
.file-field { padding:16px 0; border-top:1px solid #b8ad9e; border-bottom:1px solid #b8ad9e; display:flex !important; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; }
.file-field input { display:none; }
.file-field span { margin:0 !important; }
.file-field small { display:block; font-size:8px; color:#94897c; letter-spacing:.05em; margin-top:3px; }
.file-field b { max-width:50%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; color:var(--bronze-dark); font-weight:600; }
.submit-button { margin-top:12px; width:100%; background:var(--ink); color:#fff; border:1px solid var(--ink); }
.submit-button:hover { background:var(--bronze-dark); border-color:var(--bronze-dark); }
.submit-button.is-loading { opacity:.65; pointer-events:none; }
.privacy-copy { color:#8c8276; font-size:9px; margin:15px 0 0; }
.form-status { display:none; margin-bottom:22px; padding:15px 18px; font-size:11px; }
.form-status.success, .form-status.error { display:block; }
.form-status.success { background:#dfe7dc; color:#2b4c2d; }
.form-status.error { background:#eadbd7; color:#6a3028; }

.whatsapp-float { position:fixed; right:22px; bottom:22px; z-index:80; width:52px; height:52px; border-radius:50%; background:var(--bronze); color:var(--ink); display:grid; place-items:center; font-size:10px; font-weight:700; letter-spacing:.05em; box-shadow:0 12px 28px rgba(0,0,0,.3); }
.site-footer { background:#080706; color:#fff; padding:90px max(5vw,30px) 30px; display:grid; grid-template-columns:1.5fr .55fr .8fr; gap:8vw; border-top:1px solid var(--line); }
.footer-brand img { width:270px; }
.footer-brand p { color:var(--text-soft); max-width:310px; margin-top:20px; }
.footer-nav { display:flex; flex-direction:column; gap:11px; }
.footer-nav > span { color:var(--bronze); font-size:9px; text-transform:uppercase; letter-spacing:.16em; margin-bottom:10px; }
.footer-nav a { color:rgba(255,255,255,.64); font-size:11px; }
.footer-bottom { grid-column:1/-1; margin-top:70px; padding-top:23px; border-top:1px solid var(--line); display:flex; justify-content:space-between; color:rgba(255,255,255,.4); font-size:9px; letter-spacing:.09em; text-transform:uppercase; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .85s ease, transform .85s cubic-bezier(.2,.8,.2,1); }
.reveal.in-view { opacity:1; transform:none; }
.reveal-image { opacity:0; clip-path:inset(0 100% 0 0); transition:opacity .2s ease, clip-path 1.2s cubic-bezier(.2,.8,.2,1); }
.reveal-image.in-view { opacity:1; clip-path:inset(0 0 0 0); }
.hero .reveal { opacity:0; transform:translateY(24px); }
body.is-loaded .hero .reveal { opacity:1; transform:none; transition:opacity .9s ease,transform .9s ease; }
body.is-loaded .hero .reveal:nth-child(2){transition-delay:.15s} body.is-loaded .hero .reveal:nth-child(3){transition-delay:.3s}

@media (max-width: 1100px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:block; }
  .hero-range { display:none; }
  .intro { gap:6vw; }
  .project-content-inner { grid-template-columns:1fr; gap:0; }
  .project-visual { min-height:460px; margin-bottom:25px; }
  .sourcing-groups { grid-template-columns:1fr 1fr 1fr; }
  .source-layout { gap:4vw; }
  .contact-section { grid-template-columns:1fr; }
  .contact-backdrop { inset:0; opacity:.45; }
  .contact-copy { min-height:720px; }
  .form-panel { padding:90px 7vw; }
}
@media (max-width: 800px) {
  .cursor-glow { display:none; }
  .site-header { height:78px; padding:0 20px; }
  .brand img { width:205px; }
  .header-cta { display:none; }
  .hero-content { padding:140px 0 120px; }
  .hero h1 { font-size:clamp(58px,17vw,86px); }
  .hero-lower { grid-template-columns:1fr; gap:28px; }
  .hero-buttons { flex-direction:row; align-items:center; flex-wrap:wrap; }
  .scroll-mark { display:none; }
  .section { padding:100px 22px; }
  .section-number { top:35px; left:22px; }
  .intro { grid-template-columns:1fr; gap:15px; padding-top:125px; }
  .intro-copy { padding-top:15px; }
  .capability-strip { grid-template-columns:1fr 1fr; margin-top:45px; }
  .capability-strip div { padding:28px 20px; }
  .manifesto { grid-template-columns:1fr; }
  .manifesto-image { min-height:520px; }
  .manifesto-panel { padding:85px 24px; }
  .projects { padding:105px 22px; }
  .section-head { flex-direction:column; align-items:flex-start; margin-bottom:50px; gap:25px; }
  .project-trigger { grid-template-columns:40px 1fr 40px; gap:12px; min-height:110px; }
  .project-title-wrap strong { font-size:37px; }
  .project-title-wrap small { display:none; }
  .project-content-inner { display:block; }
  .project-visual { min-height:330px; margin:0 0 25px; }
  .project-details { padding:10px 0 45px; }
  .project-summary { font-size:23px; }
  .sourcing-groups { grid-template-columns:1fr; gap:22px; }
  .source-master { padding-top:125px; }
  .source-intro { grid-template-columns:1fr; margin-bottom:65px; gap:25px; }
  .source-layout { grid-template-columns:1fr; }
  .source-sticky { position:relative; top:auto; min-height:auto; margin-bottom:55px; align-items:center; }
  .source-sticky p { text-align:center; }
  .source-row { grid-template-columns:35px 1fr 20px; gap:12px; }
  .source-row p { grid-column:2/4; }
  .source-row h3 { font-size:27px; }
  .intelligence { padding:100px 22px; }
  .intelligence-grid { grid-template-columns:1fr; }
  .document-stack { min-height:520px; margin-top:45px; }
  .document-card { width:75%; }
  .card-front { padding:26px; }
  .process-rail { grid-template-columns:1fr 1fr; }
  .process-card { min-height:235px; padding:24px; }
  .process-card h3 { margin-top:45px; }
  .contact-copy { padding:110px 24px; min-height:680px; }
  .form-panel { padding:75px 22px; }
  .form-grid.two { grid-template-columns:1fr; gap:0; }
  .check-grid { grid-template-columns:1fr 1fr; }
  .site-footer { grid-template-columns:1fr; gap:45px; padding-top:75px; }
  .footer-bottom { margin-top:25px; flex-direction:column; gap:8px; }
}
@media (max-width: 480px) {
  .hero h1 { font-size:57px; }
  .button-light { min-width:185px; }
  .intro-heading h2,.source-intro h2,.section-head h2,.intelligence h2,.process h2,.contact-copy h2 { font-size:52px; }
  .capability-strip { grid-template-columns:1fr; }
  .project-title-wrap strong { font-size:31px; }
  .project-trigger { grid-template-columns:28px 1fr 34px; }
  .project-plus { width:32px;height:32px; }
  .source-row { padding:28px 0; }
  .process-rail { grid-template-columns:1fr; }
  .document-stack { min-height:430px; }
  .document-card { width:80%; }
  .card-front h3 { font-size:29px; }
  .doc-grid span { height:55px; }
  .contact-facts strong { font-size:20px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
