@font-face {
  font-family:"Geist";
  src:url("../fonts/Geist-Variable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
@font-face {
  font-family:"Geist Mono";
  src:url("../fonts/GeistMono-Variable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}

:root { --font-geist-sans:"Geist"; --font-geist-mono:"Geist Mono"; --ink:#10110f; --paper:#f2efe6; --white:#fff; --cobalt:#3455ff; --lime:#d9ff56; --sand:#d7c2a0; --line:rgba(16,17,15,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-geist-sans),Arial,sans-serif; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--lime); color:var(--ink); }

.site-header { align-items:center; backdrop-filter:blur(18px); background:rgba(242,239,230,.88); border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto 1fr; height:80px; left:0; padding:0 4vw; position:fixed; right:0; top:0; z-index:20; }
.wordmark { align-items:center; display:flex; font-size:.88rem; font-weight:650; gap:.75rem; letter-spacing:-.01em; }
.wordmark span { align-items:center; background:var(--ink); border-radius:50%; color:var(--paper); display:flex; font-family:var(--font-geist-mono),monospace; font-size:.63rem; height:34px; justify-content:center; letter-spacing:-.08em; width:34px; }
.site-header nav { display:flex; gap:2rem; }
.site-header nav a { font-size:.78rem; font-weight:550; position:relative; }
.site-header nav a::after { background:var(--ink); bottom:-.4rem; content:""; height:1px; left:0; position:absolute; transform:scaleX(0); transform-origin:right; transition:transform 220ms ease; width:100%; }
.site-header nav a:hover::after,.site-header nav a:focus-visible::after { transform:scaleX(1); transform-origin:left; }
.header-cta { align-items:center; display:flex; font-size:.78rem; font-weight:650; gap:.5rem; justify-self:end; }
.header-cta svg,.button svg { height:1.05rem; transition:transform 180ms ease; width:1.05rem; }
.header-cta:hover svg,.button:hover svg { transform:translate(2px,-2px); }

.hero { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(340px,.62fr); min-height:100vh; padding:152px 4vw 38px; position:relative; }
.hero-copy { align-self:center; padding:3vh 5vw 8vh 0; }
.kicker { align-items:center; display:flex; font-family:var(--font-geist-mono),monospace; font-size:.68rem; font-weight:600; gap:.65rem; letter-spacing:.09em; margin:0; text-transform:uppercase; }
.kicker::before { background:currentColor; content:""; height:1px; width:26px; }
.hero h1 { font-size:clamp(4rem,7.1vw,7.6rem); font-weight:590; letter-spacing:-.075em; line-height:.88; margin:2rem 0 2.1rem; max-width:1120px; }
.hero h1 span { color:var(--cobalt); display:block; }
.hero-intro { font-size:clamp(1rem,1.35vw,1.25rem); line-height:1.55; margin:0; max-width:665px; }
.hero-actions { align-items:center; display:flex; gap:1.75rem; margin-top:2.4rem; }
.button { align-items:center; border-radius:999px; display:inline-flex; font-size:.82rem; font-weight:650; gap:.7rem; justify-content:center; padding:1rem 1.3rem; transition:background 180ms ease,color 180ms ease,transform 180ms ease; }
.button-primary { background:var(--ink); color:var(--white); }
.button-primary:hover { background:var(--cobalt); transform:translateY(-2px); }
.text-link { border-bottom:1px solid var(--ink); font-size:.82rem; font-weight:600; padding-bottom:.3rem; }
.hero-art { align-self:stretch; background:var(--cobalt); border-radius:28rem 28rem 1.5rem 1.5rem; color:var(--lime); display:flex; isolation:isolate; justify-content:center; min-height:570px; overflow:hidden; position:relative; }
.hero-art>p { align-self:center; font-size:clamp(8rem,15vw,15rem); font-weight:650; letter-spacing:-.14em; line-height:.8; margin:0 0 0 -.12em; position:relative; transform:rotate(-7deg); z-index:2; }
.orbit { border:1px solid rgba(255,255,255,.55); border-radius:50%; inset:15% -28%; position:absolute; transform:rotate(34deg); }
.orbit-two { border-color:rgba(217,255,86,.65); inset:25% -3%; transform:rotate(-32deg); }
.art-note { background:var(--lime); border-radius:999px; color:var(--ink); font-family:var(--font-geist-mono),monospace; font-size:.61rem; letter-spacing:.05em; padding:.62rem .85rem; position:absolute; text-transform:uppercase; z-index:3; }
.art-note-top { right:6%; top:17%; } .art-note-bottom { bottom:8%; left:7%; }
.proof-strip { border-top:1px solid var(--line); bottom:38px; display:grid; gap:1.5rem; grid-column:1/-1; grid-template-columns:repeat(3,1fr); padding-top:1.1rem; position:absolute; width:61%; }
.proof-strip div { align-items:baseline; display:flex; gap:.65rem; }
.proof-strip strong { font-size:1.3rem; letter-spacing:-.05em; } .proof-strip span { font-size:.72rem; line-height:1.35; max-width:120px; }

.section-shell { padding:8.5rem 4vw; }
.section-heading { display:grid; gap:1rem 3rem; grid-template-columns:.55fr 1.35fr .7fr; margin-bottom:4.5rem; }
.section-heading h2 { font-size:clamp(2.6rem,4.2vw,4.8rem); font-weight:570; letter-spacing:-.065em; line-height:.98; margin:0; }
.section-heading>p:last-child { align-self:end; font-size:.93rem; line-height:1.6; margin:0; }
.case-list { border-top:1px solid var(--line); }
.case-card { border-bottom:1px solid var(--line); display:grid; gap:2rem; grid-template-columns:.45fr .75fr 1.05fr; min-height:450px; overflow:hidden; padding:2rem 0; position:relative; }
.case-card::before { background:var(--card-color); border-radius:50%; content:""; height:410px; left:30%; opacity:.92; position:absolute; top:50%; transform:translate(-50%,-50%) scale(.75); transition:transform 550ms cubic-bezier(.2,.8,.2,1); width:410px; }
.case-card:hover::before { transform:translate(-50%,-50%) scale(.91); }
.case-card.cobalt { --card-color:var(--cobalt); } .case-card.lime { --card-color:var(--lime); } .case-card.sand { --card-color:var(--sand); }
.case-meta,.case-name,.case-content { position:relative; z-index:1; }
.case-meta span { font-family:var(--font-geist-mono),monospace; font-size:.7rem; }
.case-meta p { font-size:.72rem; line-height:1.4; margin:1rem 0 0; max-width:165px; }
.case-name { align-self:center; font-size:clamp(3rem,5.5vw,6.5rem); font-weight:700; letter-spacing:-.08em; line-height:.8; transform:rotate(-7deg); }
.cobalt .case-name { color:var(--white); }
.case-content { align-self:center; padding:1rem 2vw; }
.case-content h3 { font-size:clamp(1.75rem,2.6vw,2.9rem); font-weight:570; letter-spacing:-.055em; line-height:1.05; margin:0 0 1.4rem; }
.case-content>p { font-size:.9rem; line-height:1.65; margin:0; max-width:570px; }
.case-content ul { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:2rem 0 0; padding:0; }
.case-content li { border:1px solid var(--line); border-radius:999px; font-family:var(--font-geist-mono),monospace; font-size:.61rem; padding:.55rem .72rem; text-transform:uppercase; }

.expertise { background:var(--ink); color:var(--paper); display:grid; gap:1px; grid-template-columns:1.35fr .65fr; padding-bottom:0; padding-top:0; }
.services-panel { padding:8.5rem 4vw 8.5rem 0; }
.section-heading.light { display:block; margin-bottom:4rem; } .section-heading.light h2 { margin-top:1.5rem; max-width:840px; }
.service-list { border-top:1px solid rgba(242,239,230,.23); }
.service-list article { border-bottom:1px solid rgba(242,239,230,.23); display:grid; gap:1.8rem; grid-template-columns:45px .7fr; padding:1.8rem 0; }
.service-list article>span { color:var(--lime); font-family:var(--font-geist-mono),monospace; font-size:.65rem; padding-top:.25rem; }
.service-list h3 { font-size:1.4rem; font-weight:570; letter-spacing:-.035em; margin:0 0 .55rem; }
.service-list p { color:rgba(242,239,230,.68); font-size:.84rem; line-height:1.6; margin:0; max-width:690px; }
.trajectory { background:var(--lime); color:var(--ink); margin-right:-4vw; padding:8.5rem 4vw; }
.trajectory h2 { font-size:clamp(2.7rem,4.2vw,4.6rem); font-weight:590; letter-spacing:-.07em; line-height:.92; margin:4rem 0 1.7rem; }
.trajectory-lead { font-size:.92rem; line-height:1.65; margin:0; }
.timeline { border-top:1px solid rgba(16,17,15,.3); margin-top:3.6rem; }
.timeline>div { border-bottom:1px solid rgba(16,17,15,.3); display:grid; gap:1rem; grid-template-columns:36px 1fr; padding:1.15rem 0; }
.timeline span { font-family:var(--font-geist-mono),monospace; font-size:.61rem; }
.timeline p { font-size:.76rem; line-height:1.45; margin:0; } .timeline strong { display:block; font-size:.8rem; margin-bottom:.3rem; }

.contact { background:var(--cobalt); color:var(--white); min-height:86vh; padding:8.5rem 4vw 2.2rem; }
.contact>h2 { font-size:clamp(3.5rem,8vw,9rem); font-weight:570; letter-spacing:-.08em; line-height:.86; margin:5.5rem 0 2.5rem; max-width:1300px; }
.contact>p { font-size:clamp(1rem,1.6vw,1.35rem); line-height:1.5; max-width:640px; }
.contact-actions { align-items:center; display:flex; gap:1.5rem; margin-top:2.5rem; }
.button-light { background:var(--lime); color:var(--ink); cursor:default; }
.contact-actions p { font-family:var(--font-geist-mono),monospace; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; }
.contact-footer { border-top:1px solid rgba(255,255,255,.38); display:grid; font-size:.69rem; grid-template-columns:repeat(3,1fr); margin-top:7rem; padding-top:1rem; }
.contact-footer span:nth-child(2) { text-align:center; } .contact-footer span:last-child { text-align:right; }

/* Portfolio */
.portfolio-page { min-height:100vh; }
.portfolio-header .nav-active::after { transform:scaleX(1); }
.portfolio-hero { padding:170px 4vw 5.5rem; }
.portfolio-title-row { align-items:flex-end; display:flex; justify-content:space-between; margin-top:3rem; }
.portfolio-title-row h1 { color:var(--cobalt); font-size:clamp(6.5rem,18vw,18rem); font-weight:620; letter-spacing:-.1em; line-height:.7; margin:0 0 0 -.07em; }
.portfolio-count { align-items:flex-end; border-bottom:1px solid var(--line); display:flex; gap:.7rem; margin-bottom:.5rem; padding-bottom:.7rem; }
.portfolio-count strong { font-size:2rem; letter-spacing:-.06em; }
.portfolio-count span { font-family:var(--font-geist-mono),monospace; font-size:.61rem; line-height:1.3; max-width:82px; text-transform:uppercase; }
.portfolio-intro { align-items:flex-end; border-top:1px solid var(--line); display:grid; gap:2rem; grid-template-columns:1fr auto; margin-top:5.7rem; padding-top:1.5rem; }
.portfolio-intro p { font-size:clamp(1.2rem,2vw,1.8rem); letter-spacing:-.03em; line-height:1.3; margin:0; max-width:760px; }
.portfolio-intro span { font-family:var(--font-geist-mono),monospace; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; }
.portfolio-index { background:var(--white); padding:3.5rem 4vw 8rem; }
.portfolio-filters { border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; gap:.65rem; padding-bottom:2rem; }
.portfolio-filters button { background:transparent; border:1px solid var(--line); border-radius:999px; color:rgba(16,17,15,.55); cursor:pointer; font-family:var(--font-geist-mono),monospace; font-size:.6rem; padding:.62rem .82rem; text-transform:uppercase; }
.portfolio-filters .is-selected { background:var(--ink); color:var(--white); }
.portfolio-empty { display:grid; grid-template-columns:.8fr 1.2fr; min-height:620px; padding-top:3.5rem; }
.empty-visual { align-items:center; background:var(--cobalt); border-radius:18rem 18rem 1.5rem 1.5rem; color:var(--lime); display:flex; justify-content:center; overflow:hidden; position:relative; }
.empty-visual>span { font-size:clamp(7rem,13vw,13rem); font-weight:650; letter-spacing:-.14em; margin-left:-.12em; position:relative; transform:rotate(-7deg); z-index:2; }
.empty-visual i { border:1px solid rgba(255,255,255,.55); border-radius:50%; inset:18% -22%; position:absolute; transform:rotate(31deg); }
.empty-visual i:last-child { border-color:rgba(217,255,86,.7); inset:29% 0; transform:rotate(-37deg); }
.empty-copy { align-self:center; padding:4vw 7vw; }
.empty-copy h2 { font-size:clamp(3rem,5.4vw,6rem); font-weight:580; letter-spacing:-.07em; line-height:.92; margin:3rem 0 1.8rem; }
.empty-copy>p:last-child { font-size:.96rem; line-height:1.65; margin:0; max-width:590px; }
.portfolio-grid { display:grid; gap:5rem 1.5rem; grid-template-columns:repeat(2,1fr); padding-top:4rem; }
.portfolio-card-image { aspect-ratio:4/3; background:var(--paper); overflow:hidden; position:relative; }
.portfolio-card-image img { height:100%; object-fit:cover; transition:transform 500ms ease; width:100%; }
.portfolio-card:hover img { transform:scale(1.035); }
.portfolio-card-image span { background:var(--lime); border-radius:999px; bottom:1rem; font-family:var(--font-geist-mono),monospace; font-size:.65rem; padding:.65rem; position:absolute; right:1rem; }
.portfolio-card-copy { border-top:1px solid var(--line); margin-top:1rem; padding-top:1rem; position:relative; }
.portfolio-card-copy p { font-family:var(--font-geist-mono),monospace; font-size:.61rem; margin:0; text-transform:uppercase; }
.portfolio-card-copy h2 { font-size:2rem; letter-spacing:-.055em; margin:1rem 0 0; }
.portfolio-card-copy>span { align-items:center; display:flex; font-size:.7rem; gap:.4rem; position:absolute; right:0; top:1rem; }
.portfolio-card-copy svg { height:1rem; width:1rem; }
.portfolio-footer { background:var(--ink); color:var(--paper); display:grid; font-size:.68rem; grid-template-columns:repeat(3,1fr); padding:2.3rem 4vw; }
.portfolio-footer p { margin:0; text-align:center; }.portfolio-footer span { text-align:right; }

/* Individual portfolio posts */
.project-page { background:var(--paper); min-height:100vh; }
.project-topbar { align-items:center; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; padding:1.4rem 4vw; }
.project-topbar>a:last-child { font-size:.72rem; font-weight:600; }
.project-hero { padding:7rem 4vw 5rem; }
.project-hero h1 { color:var(--cobalt); font-size:clamp(4.5rem,11vw,11rem); font-weight:600; letter-spacing:-.085em; line-height:.82; margin:4rem 0; max-width:1300px; }
.project-overview { border-top:1px solid var(--line); display:grid; gap:4rem; grid-template-columns:1.4fr .6fr; padding-top:1.5rem; }
.project-overview>p { font-size:clamp(1.2rem,2vw,1.7rem); line-height:1.4; margin:0; max-width:750px; }
.project-overview dl { margin:0; }.project-overview dl>div { border-bottom:1px solid var(--line); display:grid; gap:1rem; grid-template-columns:80px 1fr; padding:.8rem 0; }
.project-overview dt { font-family:var(--font-geist-mono),monospace; font-size:.6rem; text-transform:uppercase; }.project-overview dd { font-size:.76rem; margin:0; }
.project-website { border-bottom:1px solid currentColor; font-weight:650; padding-bottom:.15rem; }
.project-gallery { background:var(--white); display:grid; gap:1.5rem; grid-template-columns:repeat(2,1fr); padding:4vw; }
.project-gallery figure { margin:0; }.project-gallery figure:first-child { grid-column:1/-1; }.project-gallery img { display:block; height:auto; width:100%; }
.project-footer { align-items:end; background:var(--cobalt); color:var(--white); display:flex; justify-content:space-between; min-height:50vh; padding:5rem 4vw; }
.project-footer p { font-size:clamp(2.8rem,6vw,7rem); font-weight:580; letter-spacing:-.07em; line-height:.9; margin:0; max-width:850px; }.project-footer a { border-bottom:1px solid currentColor; font-size:1rem; padding-bottom:.4rem; }

/* Plans */
.plans-page { min-height:100vh; }
.plans-header .nav-active::after { transform:scaleX(1); }
.plans-hero { padding:170px 4vw 5rem; }
.plans-title-row { align-items:end; display:grid; gap:4rem; grid-template-columns:1.4fr .6fr; margin-top:3rem; }
.plans-title-row h1 { color:var(--cobalt); font-size:clamp(7rem,18vw,18rem); font-weight:620; letter-spacing:-.1em; line-height:.7; margin:0 0 0 -.07em; }
.plans-title-row>p { font-size:clamp(1.1rem,1.7vw,1.55rem); letter-spacing:-.025em; line-height:1.45; margin:0; max-width:560px; }
.plans-notice { border-top:1px solid var(--line); display:grid; gap:2rem; grid-template-columns:.45fr 1fr; margin-top:6rem; padding-top:1.2rem; }
.plans-notice span { font-family:var(--font-geist-mono),monospace; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; }
.plans-notice p { font-size:.86rem; line-height:1.55; margin:0; max-width:680px; }
.plans-grid { background:var(--white); display:grid; grid-template-columns:repeat(2,1fr); padding:4vw; }
.plan-card { background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; min-height:710px; padding:2.3rem; }
.plan-card.lime { background:var(--lime); }.plan-card.cobalt { background:var(--cobalt); color:var(--white); }.plan-card.ink { background:var(--ink); color:var(--paper); }
.plan-topline { align-items:center; display:flex; justify-content:space-between; }
.plan-topline>span,.plan-topline>strong { font-family:var(--font-geist-mono),monospace; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; }
.plan-topline>strong { background:var(--ink); border-radius:999px; color:var(--white); padding:.55rem .75rem; }
.plan-audience { font-size:.75rem; margin:4rem 0 1rem; opacity:.68; }
.plan-card h2 { font-size:clamp(2.8rem,4.6vw,5.2rem); font-weight:590; letter-spacing:-.07em; line-height:.88; margin:0; }
.plan-price { border-bottom:1px solid currentColor; border-top:1px solid currentColor; display:grid; gap:.6rem; margin:2.5rem 0; padding:1.4rem 0; }
.plan-price small,.plan-price span { font-family:var(--font-geist-mono),monospace; font-size:.58rem; letter-spacing:.06em; opacity:.65; text-transform:uppercase; }
.plan-price strong { font-size:clamp(2rem,3vw,3.5rem); letter-spacing:-.06em; }
.plan-financing { background:rgba(255,255,255,.14); border:1px solid currentColor; border-radius:999px; font-family:var(--font-geist-mono),monospace; font-size:.57rem; letter-spacing:.03em; line-height:1.35; margin:-1rem 0 1.5rem; padding:.7rem .85rem; text-transform:uppercase; width:max-content; }
.plan-card ul { list-style:none; margin:0 0 2.5rem; padding:0; }
.plan-card li { border-bottom:1px solid color-mix(in srgb,currentColor 18%,transparent); font-size:.8rem; line-height:1.4; padding:.7rem 0 .7rem 1.3rem; position:relative; }
.plan-card li::before { content:"↗"; font-size:.65rem; left:0; position:absolute; top:.78rem; }
.plan-cta { align-items:center; border-bottom:1px solid currentColor; display:flex; font-size:.76rem; font-weight:650; gap:.5rem; margin-top:auto; padding-bottom:.45rem; width:max-content; }
.plan-cta svg,.plans-footer svg { height:1rem; width:1rem; }
.social-plans { background:var(--paper); padding:8rem 4vw; }
.social-plans-heading { display:grid; gap:1rem 4rem; grid-template-columns:.55fr 1.1fr .7fr; margin-bottom:4rem; }
.social-plans-heading h2 { font-size:clamp(2.8rem,4.6vw,5.4rem); font-weight:570; letter-spacing:-.07em; line-height:.94; margin:0; }
.social-plans-heading>p:last-child { align-self:end; font-size:.88rem; line-height:1.6; margin:0; }
.social-promo { align-items:center; background:var(--cobalt); color:var(--white); display:flex; gap:2rem; justify-content:space-between; margin-bottom:1rem; padding:1.2rem 1.5rem; }
.social-promo strong { font-size:1.2rem; letter-spacing:-.03em; }
.social-promo p { font-family:var(--font-geist-mono),monospace; font-size:.62rem; letter-spacing:.04em; margin:0; text-transform:uppercase; }
.social-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); }
.social-card { background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; min-height:670px; padding:2rem; }
.social-card:nth-child(2) { background:var(--lime); }
.social-card h3 { font-size:clamp(2.5rem,3.5vw,4rem); font-weight:590; letter-spacing:-.065em; line-height:.9; margin:0; }
.social-price { border-bottom:1px solid var(--line); border-top:1px solid var(--line); display:grid; gap:.45rem; margin:2rem 0; padding:1.2rem 0; }
.social-price small,.social-price span { font-family:var(--font-geist-mono),monospace; font-size:.56rem; letter-spacing:.06em; text-transform:uppercase; }.social-price strong { font-size:2.1rem; letter-spacing:-.05em; }
.social-card ul { list-style:none; margin:0 0 2rem; padding:0; }.social-card li { border-bottom:1px solid var(--line); font-size:.76rem; line-height:1.45; padding:.68rem 0 .68rem 1.2rem; position:relative; }.social-card li::before { content:"↗"; font-size:.6rem; left:0; position:absolute; top:.74rem; }.social-card .plan-cta { margin-top:auto; }
.social-note { border-top:1px solid var(--line); font-size:.68rem; line-height:1.6; margin:3rem 0 0; padding-top:1rem; }
.plans-conditions { background:var(--ink); color:var(--paper); display:grid; gap:5rem; grid-template-columns:.65fr 1.35fr; padding:8rem 4vw; }
.plans-conditions h2 { font-size:clamp(3rem,5vw,5.8rem); font-weight:570; letter-spacing:-.07em; line-height:.94; margin:2rem 0 0; }
.conditions-list { border-top:1px solid rgba(242,239,230,.25); }
.conditions-list article { border-bottom:1px solid rgba(242,239,230,.25); display:grid; gap:1rem; grid-template-columns:40px .7fr 1fr; padding:1.5rem 0; }
.conditions-list span { color:var(--lime); font-family:var(--font-geist-mono),monospace; font-size:.62rem; }.conditions-list h3 { font-size:1.15rem; margin:0; }.conditions-list p { color:rgba(242,239,230,.7); font-size:.8rem; line-height:1.5; margin:0; }
.conditions-note { color:rgba(242,239,230,.55); font-size:.68rem; grid-column:2; line-height:1.6; margin:0; max-width:760px; }
.maintenance { background:var(--lime); display:grid; gap:6rem; grid-template-columns:1fr 1fr; padding:7rem 4vw; }
.maintenance h2 { font-size:clamp(3rem,5vw,5.5rem); font-weight:580; letter-spacing:-.07em; line-height:.92; margin:2rem 0 1.5rem; }.maintenance>div>p:last-child { font-size:.9rem; line-height:1.6; max-width:520px; }
.maintenance-list { border-top:1px solid rgba(16,17,15,.3); }.maintenance-list article { align-items:center; border-bottom:1px solid rgba(16,17,15,.3); display:flex; justify-content:space-between; padding:1.5rem 0; }.maintenance-list h3 { font-size:1rem; margin:0; }.maintenance-list strong { font-size:1.15rem; letter-spacing:-.03em; }
.plans-faq { display:grid; gap:5rem; grid-template-columns:.5fr 1.5fr; padding:8rem 4vw; }
.plans-faq details { border-top:1px solid var(--line); padding:1.4rem 0; }.plans-faq details:last-child { border-bottom:1px solid var(--line); }.plans-faq summary { cursor:pointer; font-size:1.2rem; font-weight:590; list-style:none; }.plans-faq summary::after { content:"+"; float:right; }.plans-faq details[open] summary::after { content:"−"; }.plans-faq details p { font-size:.85rem; line-height:1.65; margin:1rem 0 0; max-width:700px; }
.plans-footer { align-items:end; background:var(--cobalt); color:var(--white); display:flex; justify-content:space-between; min-height:60vh; padding:6rem 4vw; }.plans-footer h2 { font-size:clamp(3.5rem,7vw,8rem); font-weight:570; letter-spacing:-.08em; line-height:.88; margin:3rem 0 0; max-width:1050px; }.plans-footer>a { align-items:center; border-bottom:1px solid currentColor; display:flex; flex:0 0 auto; font-size:.9rem; gap:.6rem; padding-bottom:.5rem; }

@media(max-width:980px) {
  .site-header { grid-template-columns:1fr auto; } .site-header nav { display:none; }
  .hero { grid-template-columns:1fr; padding-top:130px; } .hero-copy { padding-right:0; } .hero-art { min-height:620px; }
  .proof-strip { bottom:auto; grid-column:auto; margin:2rem 0 0; position:relative; width:100%; }
  .section-heading { grid-template-columns:1fr 2fr; } .section-heading>p:last-child { grid-column:2; }
  .case-card { grid-template-columns:.3fr .7fr 1.3fr; }
  .expertise { grid-template-columns:1fr; } .services-panel { padding-right:0; } .trajectory { margin-left:-4vw; }
  .portfolio-empty { grid-template-columns:1fr; }.empty-visual { min-height:570px; }.empty-copy { padding:5rem 0; }
  .plans-title-row { grid-template-columns:1fr; }.plans-grid { grid-template-columns:1fr; }.plans-conditions,.maintenance,.plans-faq { grid-template-columns:1fr; }.conditions-note { grid-column:auto; }
  .social-plans-heading { grid-template-columns:1fr 1.5fr; }.social-plans-heading>p:last-child { grid-column:2; }.social-grid { grid-template-columns:1fr; }
}

@media(max-width:680px) {
  .site-header { height:66px; padding:0 1.15rem; } .wordmark { font-size:.78rem; } .wordmark span { height:30px; width:30px; }
  .hero { padding:110px 1.15rem 1.4rem; } .hero h1 { font-size:clamp(3.6rem,16.2vw,5.2rem); line-height:.9; margin-top:1.5rem; }
  .hero-intro { font-size:.94rem; } .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-art { border-radius:14rem 14rem 1rem 1rem; margin-top:3.6rem; min-height:470px; }
  .proof-strip { gap:.5rem; } .proof-strip div { align-items:flex-start; flex-direction:column; gap:.25rem; } .proof-strip span { font-size:.62rem; }
  .section-shell { padding:6.2rem 1.15rem; } .section-heading { display:block; margin-bottom:3rem; } .section-heading h2 { font-size:2.65rem; margin-top:1.5rem; } .section-heading>p:last-child { margin-top:1.5rem; }
  .case-card { display:block; min-height:570px; padding:1.4rem 0; } .case-card::before { height:320px; left:50%; top:34%; width:320px; }
  .case-meta { display:flex; justify-content:space-between; } .case-meta p { margin-top:0; text-align:right; }
  .case-name { margin:8rem 0 7rem; text-align:center; } .case-content { padding:0; }
  .services-panel { padding:6.2rem 0; } .trajectory { margin-left:-1.15rem; margin-right:-1.15rem; padding:6.2rem 1.15rem; }
  .contact { min-height:100vh; padding:6.2rem 1.15rem 1.4rem; } .contact>h2 { font-size:clamp(3.5rem,17vw,5.3rem); margin-top:4.5rem; }
  .contact-actions { align-items:flex-start; flex-direction:column; } .contact-footer { gap:1rem; grid-template-columns:1fr; margin-top:5rem; }
  .contact-footer span:nth-child(2),.contact-footer span:last-child { text-align:left; }
  .portfolio-hero { padding:125px 1.15rem 4rem; }.portfolio-title-row { align-items:flex-start; flex-direction:column; gap:3rem; }
  .portfolio-title-row h1 { font-size:clamp(5.7rem,28vw,8.5rem); }.portfolio-intro { display:block; margin-top:4rem; }.portfolio-intro span { display:block; margin-top:2rem; }
  .portfolio-index { padding:2rem 1.15rem 5rem; }.portfolio-filters { flex-wrap:nowrap; overflow-x:auto; }.portfolio-filters span { flex:0 0 auto; }
  .portfolio-empty { min-height:auto; }.empty-visual { min-height:440px; }.empty-copy h2 { font-size:3.3rem; }
  .portfolio-grid { grid-template-columns:1fr; }.portfolio-footer { gap:1rem; grid-template-columns:1fr; }.portfolio-footer p,.portfolio-footer span { text-align:left; }
  .project-topbar { padding:1rem 1.15rem; }.project-topbar .wordmark { font-size:0; }.project-hero { padding:5rem 1.15rem 3rem; }.project-overview { grid-template-columns:1fr; }
  .project-gallery { gap:.8rem; grid-template-columns:1fr; padding:1.15rem; }.project-gallery figure:first-child { grid-column:auto; }.project-footer { align-items:flex-start; flex-direction:column; gap:4rem; padding:4rem 1.15rem; }
  .plans-hero { padding:125px 1.15rem 4rem; }.plans-title-row { gap:2.5rem; }.plans-title-row h1 { font-size:clamp(6.2rem,29vw,9rem); }.plans-notice { grid-template-columns:1fr; margin-top:4rem; }.plans-grid { padding:1.15rem; }.plan-card { min-height:680px; padding:1.5rem; }.plans-conditions,.maintenance,.plans-faq { gap:3.5rem; padding:6rem 1.15rem; }.conditions-list article { grid-template-columns:32px 1fr; }.conditions-list p { grid-column:2; }.maintenance-list article { align-items:flex-start; flex-direction:column; gap:.5rem; }.plans-footer { align-items:flex-start; flex-direction:column; gap:5rem; min-height:80vh; padding:5rem 1.15rem; }
  .plan-financing { white-space:normal; width:100%; }.social-plans { padding:6rem 1.15rem; }.social-plans-heading { display:block; }.social-plans-heading h2 { margin:1.5rem 0; }.social-plans-heading>p:last-child { margin-bottom:3rem; }.social-promo { align-items:flex-start; flex-direction:column; gap:.45rem; }.social-card { min-height:640px; padding:1.5rem; }
}

@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; } }

[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity 600ms ease,transform 600ms ease; }
[data-reveal].is-visible { opacity:1; transform:none; }
.is-hidden { display:none!important; }
