@font-face {
  font-family: 'IBM Plex Sans Thai';
  src: url('./assets/fonts/IBMPlexSansThai-Light.woff2') format('woff2');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Sans Thai';
  src: url('./assets/fonts/IBMPlexSansThai-Regular.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Sans Thai';
  src: url('./assets/fonts/IBMPlexSansThai-SemiBold.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

:root {
  --ink: #0d1713;
  --forest: #062d20;
  --green: #d8b65c;
  --gold: #d8b65c;
  --paper: #f4f0e7;
  --line: rgba(255,255,255,.22);
  --font-sans: 'IBM Plex Sans Thai','Leelawadee UI','Tahoma','Segoe UI',sans-serif;
  --font-mono: 'IBM Plex Mono','SFMono-Regular','Consolas',monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-sans); font-size:16px; font-weight:400; line-height:1.65; font-kerning:normal; font-feature-settings:'kern' 1; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-wrap:break-word; }
button,input,select,textarea { font-family:inherit; }
a { color: inherit; text-decoration: none; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #f2c85b;
  outline-offset: 4px;
}

.site-header {
  position: fixed; z-index: 20; top: 0; left: 0; right: 0;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: 82px; padding: 0 4vw; color: white;
  border-bottom: 1px solid rgba(255,255,255,.24);
  background: linear-gradient(to bottom, rgba(4,13,10,.68), transparent);
}
.site-header.is-scrolled { background: rgba(8,22,17,.92); backdrop-filter: blur(14px); }
.brand { display:inline-flex; align-items:center; width:max-content; }
.brand img { width: 58px; height: 58px; object-fit:contain; }
.desktop-nav { display: flex; gap: 2.1rem; font-size: .85rem; }
.desktop-nav a { opacity: .78; transition: opacity .2s; }
.desktop-nav a:hover { opacity: 1; }
.header-tools { justify-self:end; display:flex; align-items:center; gap:1.25rem; }
.header-cta { font-size: .83rem; text-transform: uppercase; letter-spacing: .04em; }
.header-cta span { margin-left: .5rem; color: var(--green); }
.lang-toggle { display:flex; align-items:center; gap:.45rem; padding:.35rem .5rem; color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.22); background:rgba(3,18,12,.35); font:500 .6rem 'IBM Plex Mono',monospace; cursor:pointer; }
.lang-toggle i { width:1px; height:12px; background:rgba(255,255,255,.25); }.lang-toggle .lang-active { color:var(--gold); }
.mobile-dock { display:none; }

.hero { position: relative; min-height: 100svh; overflow: hidden; color: white; background: #142119; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; transform:scale(1.18); transform-origin:center bottom; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,16,11,.93) 0%, rgba(2,16,11,.5) 45%, rgba(2,16,11,.08) 77%), linear-gradient(0deg, rgba(1,12,8,.86), transparent 50%); }
.technical-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size: 8.33vw 8.33vw; mask-image: linear-gradient(to bottom, transparent 5%, black 35%, black 92%, transparent); }
.hero-scan { position:absolute; z-index:1; top:82px; bottom:0; left:63%; width:1px; background:linear-gradient(transparent,rgba(216,182,92,.7) 30%,rgba(216,182,92,.7) 76%,transparent); }
.hero-scan::before,.hero-scan::after { content:""; position:absolute; left:-4px; width:9px; height:9px; border:1px solid var(--gold); border-radius:50%; background:rgba(2,16,11,.7); }
.hero-scan::before { top:30%; }.hero-scan::after { top:76%; }
.hero-scan span { position:absolute; top:31%; left:12px; white-space:nowrap; color:rgba(255,255,255,.62); font:.56rem 'IBM Plex Mono',monospace; letter-spacing:.12em; }
.hero-coordinates, .hero-index, .section-kicker { font: 500 .68rem/1.3 'IBM Plex Mono', monospace; letter-spacing: .14em; }
.hero-coordinates { position: absolute; top: 108px; right: 4vw; opacity: .7; }
.hero-index { position: absolute; top: 46%; left: 1.25vw; writing-mode: vertical-rl; opacity: .64; }
.hero-content { position: relative; z-index: 2; width: min(790px, 84vw); padding: 25vh 0 180px 8.3vw; }
.eyebrow { margin: 0 0 1.35rem; color: var(--green); font: 500 .72rem/1.4 'IBM Plex Mono', monospace; letter-spacing: .18em; }
h1 { margin: 0; font-size: clamp(3.2rem, 7.5vw, 7.4rem); font-weight: 300; line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.hero-copy { max-width: 620px; margin: 2rem 0 0; color: rgba(255,255,255,.76); font-size: clamp(1rem, 1.3vw, 1.22rem); line-height: 1.75; font-weight: 300; }
.hero-actions { display: flex; gap: 1rem; margin-top: 2.2rem; align-items: center; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .85rem 1.35rem; font-size: .88rem; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--ink); background: var(--green); }
.button-quiet { border-bottom: 1px solid rgba(255,255,255,.4); }
.button-quiet span { margin-left: 1rem; color: var(--green); }
.hero-specs { position: absolute; z-index: 2; right: 4vw; bottom: 46px; display: grid; grid-template-columns: repeat(3, minmax(125px, 1fr)); border-top: 1px solid var(--line); }
.hero-specs div { padding: 1.05rem 1.25rem; border-right: 1px solid var(--line); }
.hero-specs strong { display: block; font: 400 1.25rem 'IBM Plex Mono', monospace; color: var(--green); }
.hero-specs span { display: block; margin-top: .35rem; color: rgba(255,255,255,.58); font-size: .68rem; }
.scroll-cue { position: absolute; z-index: 2; left: 4vw; bottom: 38px; display: flex; align-items: center; gap: .7rem; color: rgba(255,255,255,.55); font: .6rem 'IBM Plex Mono', monospace; letter-spacing: .16em; }
.scroll-cue span { width: 44px; height: 1px; background: var(--green); }

.system-intro { padding: 8rem 6vw 7rem; background: var(--paper); }
.section-kicker { display: flex; gap: 1rem; color: #5f6a64; }
.section-kicker span { color: #a67d1f; }
.intro-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; margin: 4rem 0 6rem; align-items: end; }
.intro-grid h2 { margin: 0; font-size: clamp(2.6rem, 5.7vw, 6rem); font-weight: 300; line-height: 1.04; letter-spacing: -.04em; }
.intro-copy p { max-width: 580px; margin: 0 0 2rem; font-size: 1.08rem; line-height: 1.85; color: #4c5650; }
.intro-copy a { display: inline-flex; gap: 1.4rem; padding-bottom: .4rem; border-bottom: 1px solid #9ca39e; font-size: .86rem; }
.system-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bec4bd; border-bottom: 1px solid #bec4bd; }
.system-strip article { min-height: 220px; padding: 1.5rem; border-right: 1px solid #bec4bd; }
.system-strip article:last-child { border-right: 0; }
.system-strip span { font: .68rem 'IBM Plex Mono', monospace; color: #a67d1f; }
.system-strip h3 { margin: 3.4rem 0 .7rem; font: 500 .83rem 'IBM Plex Mono', monospace; letter-spacing: .12em; }
.system-strip p { margin: 0; color: #667069; font-size: .85rem; line-height: 1.55; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.section-kicker.light { color: rgba(255,255,255,.48); }

.low-carbon-section { display:grid; grid-template-columns:.92fr 1.08fr; position:relative; overflow:hidden; color:white; background:#041a12; border-top:1px solid rgba(216,182,92,.26); }
.low-carbon-section::before { content:""; position:absolute; inset:0; opacity:.13; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:8.33vw 8.33vw; }
.campaign-visual { position:relative; min-height:720px; margin:6vw 0 9rem 4vw; padding:1rem; border:1px solid rgba(216,182,92,.28); background:#0b120f; }
.campaign-visual img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.92) contrast(1.04); }
.campaign-visual::after { content:""; position:absolute; inset:1rem; box-shadow:inset 0 0 80px rgba(4,26,18,.2); pointer-events:none; }
.visual-readout { position:absolute; right:2rem; bottom:2rem; display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; padding:.7rem .85rem; color:#d8b65c; background:rgba(2,17,12,.72); border:1px solid rgba(216,182,92,.42); backdrop-filter:blur(10px); font:.55rem 'IBM Plex Mono',monospace; letter-spacing:.14em; }
.visual-readout b { color:white; font-size:.7rem; }
.promo-proof { position:absolute; z-index:4; left:4vw; bottom:3.2rem; width:min(27vw,430px); border:1px solid rgba(216,182,92,.35); background:#071a13; box-shadow:0 24px 70px rgba(0,0,0,.34); }
.promo-proof picture,.promo-proof img { display:block; width:100%; height:auto; }.promo-proof img[hidden] { display:none !important; }.promo-proof span { display:block; padding:.55rem .8rem; color:#d8b65c; font:.52rem 'IBM Plex Mono',monospace; letter-spacing:.14em; }
.visual-corner { position:absolute; z-index:2; width:20px; height:20px; border-color:var(--gold); }
.corner-tl { top:7px; left:7px; border-top:1px solid; border-left:1px solid; }.corner-tr { top:7px; right:7px; border-top:1px solid; border-right:1px solid; }.corner-bl { bottom:7px; left:7px; border-bottom:1px solid; border-left:1px solid; }.corner-br { bottom:7px; right:7px; border-bottom:1px solid; border-right:1px solid; }
.visual-code { position:absolute; left:1rem; bottom:-2rem; color:rgba(255,255,255,.4); font:.58rem 'IBM Plex Mono',monospace; letter-spacing:.13em; }
.low-carbon-content { position:relative; z-index:1; padding:8rem 6vw 12rem 6vw; }
.low-carbon-content h2 { margin:3rem 0 1.5rem; font-size:clamp(2.8rem,4.8vw,5.5rem); font-weight:300; line-height:1.06; letter-spacing:-.045em; }
.low-carbon-content h2 em { color:var(--gold); font-style:normal; }
.low-carbon-content .lead { max-width:660px; margin:0 0 3rem; color:rgba(255,255,255,.6); line-height:1.85; }
.pillar-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.17); border-left:1px solid rgba(255,255,255,.17); }
.pillar-grid article { min-height:190px; padding:1.35rem; border-right:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.pillar-grid article>span { color:var(--gold); font:.57rem 'IBM Plex Mono',monospace; letter-spacing:.1em; }
.pillar-grid h3 { margin:2rem 0 .55rem; font-size:1.05rem; font-weight:500; }.pillar-grid p { margin:0; color:rgba(255,255,255,.5); font-size:.82rem; line-height:1.65; }
.future-ready { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2rem; }
.future-ready span { padding:.55rem .7rem; border:1px solid rgba(216,182,92,.38); color:rgba(255,255,255,.72); font:.54rem 'IBM Plex Mono',monospace; letter-spacing:.08em; }
.offer-bar { position:absolute; z-index:3; left:calc(4vw + min(27vw,430px)); right:4vw; bottom:3.2rem; display:grid; grid-template-columns:1.25fr repeat(2,1fr) 1.15fr; color:var(--ink); background:#f2eee4; box-shadow:0 24px 70px rgba(0,0,0,.28); }
.offer-bar>div,.offer-bar>a { min-height:105px; padding:1.15rem; border-right:1px solid #cfc5ae; }
.offer-title span,.offer b { display:block; color:#9c731a; font:.53rem 'IBM Plex Mono',monospace; letter-spacing:.12em; }.offer-title strong { display:block; margin-top:1.3rem; font-weight:500; }.offer-title a { display:block; color:inherit; }.offer-title a::after { content:' ↗'; margin-left:.45rem; color:#9c731a; }.offer span,.offer strong { display:block; }.offer span { margin:.75rem 0 .18rem; font-size:.78rem; }.offer strong { font-size:.95rem; color:var(--forest); }
.offer-bar>a { display:flex; flex-direction:column; justify-content:center; color:#fff; background:linear-gradient(135deg,#aa7b1d,#e1c373); }.offer-bar>a span { font-size:.72rem; }.offer-bar>a strong { margin-top:.25rem; font:500 1.1rem 'IBM Plex Mono',monospace; }
.offer-bar small { grid-column:1/-1; padding:.55rem 1rem; color:rgba(255,255,255,.55); background:#06150f; font-size:.56rem; }

.process-section { padding: 8rem 6vw; overflow: hidden; color: white; background: var(--ink); }
.process-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; margin: 4rem 0 5rem; align-items: end; }
.process-heading h2, .projects-top h2, .insights-heading h2 { margin: 0; font-size: clamp(2.8rem, 5.8vw, 6.2rem); font-weight: 300; line-height: 1.04; letter-spacing: -.045em; }
.process-heading p { max-width: 540px; margin: 0; color: rgba(255,255,255,.6); line-height: 1.9; }
.process-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 7vw; align-items: center; }
.process-visual { position: relative; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.15); background-image: linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size: 12.5% 12.5%; }
.process-visual::before,.process-visual::after { content:""; position:absolute; background:var(--green); }
.process-visual::before { width:1px; height:100%; left:50%; }.process-visual::after { height:1px; width:100%; top:50%; }
.orbit { position: absolute; inset: 12%; border: 1px solid rgba(184,217,57,.45); border-radius: 50%; }
.orbit-two { inset: 28%; border-style: dashed; }
.plan-core { position: absolute; z-index:2; inset: 37%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border-radius:50%; color:var(--ink); background:var(--green); }
.plan-core span,.plan-core small { font: .55rem 'IBM Plex Mono',monospace; letter-spacing:.1em; }.plan-core strong { font: 500 clamp(1.6rem,3vw,3.2rem) 'IBM Plex Mono',monospace; }
.plan-label { position:absolute; padding:.4rem .6rem; color:rgba(255,255,255,.62); background:var(--ink); font:.58rem 'IBM Plex Mono',monospace; letter-spacing:.1em; }
.label-a { top:8%; left:43%; }.label-b { bottom:12%; left:8%; }.label-c { right:4%; top:58%; }
.process-list { margin:0; padding:0; list-style:none; }
.process-list li { display:grid; grid-template-columns:54px 1fr; gap:1rem; padding:1.6rem 0; border-top:1px solid rgba(255,255,255,.15); }
.process-list li:last-child { border-bottom:1px solid rgba(255,255,255,.15); }
.process-list li>span { padding-top:.25rem; color:var(--green); font:.68rem 'IBM Plex Mono',monospace; }
.process-list h3 { margin:0 0 .45rem; font:500 1rem 'IBM Plex Mono',monospace; letter-spacing:.04em; }
.process-list p { margin:0; color:rgba(255,255,255,.52); font-size:.88rem; line-height:1.65; }

.assembly-section { padding:8rem 6vw; color:white; background:#07100d; }
.assembly-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; align-items:end; margin:4rem 0 6rem; }
.assembly-heading h2 { margin:0; font-size:clamp(3rem,6vw,6.5rem); font-weight:300; line-height:1.02; letter-spacing:-.05em; }.assembly-heading p { margin:0; max-width:580px; color:rgba(255,255,255,.57); line-height:1.9; }
.assembly-layout { display:grid; grid-template-columns:1.08fr .92fr; gap:7vw; align-items:start; }
.assembly-sticky { position:sticky; top:105px; height:calc(100vh - 135px); min-height:600px; }
.assembly-viewport { position:relative; width:100%; height:100%; overflow:hidden; border:1px solid rgba(216,182,92,.28); background:radial-gradient(circle at 50% 48%,rgba(18,60,44,.6),rgba(4,17,12,.96) 66%); }
.assembly-grid { position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:9% 9%; }
.assembly-axis { position:absolute; z-index:1; background:rgba(216,182,92,.4); }.axis-x { left:5%; right:5%; top:68%; height:1px; }.axis-y { top:5%; bottom:5%; left:50%; width:1px; }
.build-layer { position:absolute; z-index:3; left:12%; right:12%; transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .55s ease,filter .55s ease; }
.build-layer>span { position:absolute; color:rgba(255,255,255,.52); font:.5rem 'IBM Plex Mono',monospace; letter-spacing:.12em; }
.layer-site { bottom:18%; height:4px; background:var(--gold); box-shadow:0 0 30px rgba(216,182,92,.4); }.layer-site span { right:0; top:10px; }
.layer-foundation { bottom:22%; height:11%; border:1px solid rgba(216,182,92,.85); background:rgba(216,182,92,.08); }.layer-foundation i { position:absolute; bottom:-32px; width:8px; height:32px; border:1px solid rgba(216,182,92,.7); }.layer-foundation i:nth-child(1){left:8%}.layer-foundation i:nth-child(2){left:36%}.layer-foundation i:nth-child(3){right:36%}.layer-foundation i:nth-child(4){right:8%}.layer-foundation span{right:0;top:-18px}
.layer-frame { bottom:33%; height:37%; border:2px solid rgba(255,255,255,.8); background:repeating-linear-gradient(90deg,transparent 0 24%,rgba(255,255,255,.65) 24% calc(24% + 2px),transparent calc(24% + 2px) 50%); }.layer-frame::after { content:""; position:absolute; left:0; right:0; top:49%; height:2px; background:rgba(255,255,255,.75); }.layer-frame span{right:0;top:-18px}
.layer-services { bottom:36%; height:31%; border-left:3px solid #8fd4c0; border-bottom:3px solid #8fd4c0; opacity:.8; }.layer-services i { position:absolute; border-style:solid; border-color:#d8b65c; border-width:2px 2px 0 0; }.layer-services i:first-child { left:22%; top:12%; width:34%; height:44%; }.layer-services i:nth-child(2) { right:8%; top:32%; width:25%; height:35%; }.layer-services span{left:4px;top:-18px;color:#8fd4c0}
.layer-envelope { bottom:33%; height:37%; display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:4%; }.layer-envelope i { border:1px solid rgba(255,255,255,.72); background:rgba(214,230,223,.11); backdrop-filter:blur(2px); }.layer-envelope span{right:0;top:-18px}
.layer-roof { bottom:72%; height:5%; background:linear-gradient(90deg,#d8b65c,#f5e3a7,#a4771e); clip-path:polygon(2% 0,98% 0,100% 100%,0 100%); }.layer-roof span{right:0;top:-18px}
.build-finish { position:absolute; z-index:6; left:5%; bottom:11%; width:90%; height:68%; object-fit:cover; opacity:0; transform:scale(.94); filter:saturate(.9); transition:opacity .8s ease,transform 1s cubic-bezier(.2,.7,.2,1); }
.assembly-viewport[data-stage="0"] .build-layer:not(.layer-site) { opacity:.1; transform:translateY(-90px); }
.assembly-viewport[data-stage="1"] .layer-frame,.assembly-viewport[data-stage="1"] .layer-services,.assembly-viewport[data-stage="1"] .layer-envelope,.assembly-viewport[data-stage="1"] .layer-roof { opacity:.08; transform:translateY(-100px); }
.assembly-viewport[data-stage="2"] .layer-services,.assembly-viewport[data-stage="2"] .layer-envelope,.assembly-viewport[data-stage="2"] .layer-roof { opacity:.08; transform:translateY(-90px); }
.assembly-viewport[data-stage="3"] .layer-envelope,.assembly-viewport[data-stage="3"] .layer-roof { opacity:.1; transform:translateY(-72px); }
.assembly-viewport[data-stage="4"] .layer-roof { opacity:.18; transform:translateY(-48px); }
.assembly-viewport[data-stage="5"] .build-layer { opacity:0; transform:scale(.96); }.assembly-viewport[data-stage="5"] .build-finish { opacity:1; transform:scale(1); }
.assembly-status { position:absolute; z-index:8; left:1.4rem; top:1.4rem; }.assembly-status span,.assembly-status strong { display:block; font-family:'IBM Plex Mono',monospace; }.assembly-status span { color:rgba(255,255,255,.38); font-size:.52rem; letter-spacing:.13em; }.assembly-status strong { margin-top:.45rem; color:var(--gold); font-size:.72rem; font-weight:500; }
.assembly-meter { position:absolute; z-index:8; left:1.4rem; right:1.4rem; bottom:1.4rem; height:2px; background:rgba(255,255,255,.15); }.assembly-meter i { display:block; width:var(--assembly-width,16.666%); height:100%; background:var(--gold); transition:width .5s ease; }
.assembly-controls { position:absolute; z-index:9; left:1.4rem; right:1.4rem; bottom:2.25rem; display:grid; grid-template-columns:repeat(6,1fr); gap:4px; }.assembly-controls button { min-width:0; min-height:34px; padding:0; color:rgba(255,255,255,.46); border:1px solid rgba(255,255,255,.13); background:rgba(3,16,11,.72); font:.54rem 'IBM Plex Mono',monospace; cursor:pointer; transition:color .25s,border-color .25s,background .25s; }.assembly-controls button:hover,.assembly-controls button:focus-visible,.assembly-controls button.is-active { color:#07100d; border-color:var(--gold); background:var(--gold); }.assembly-controls button:focus-visible { outline:2px solid white; outline-offset:2px; }
.assembly-steps { margin:0; padding:0; list-style:none; }.assembly-step { display:grid; grid-template-columns:54px 1fr; gap:1.2rem; min-height:72vh; padding:9vh 0; border-top:1px solid rgba(255,255,255,.14); opacity:.34; transition:opacity .4s; }.assembly-step:last-child { border-bottom:1px solid rgba(255,255,255,.14); }.assembly-step.is-active { opacity:1; }.assembly-step>span { color:var(--gold); font:.7rem 'IBM Plex Mono',monospace; }.assembly-step small { color:rgba(255,255,255,.48); font:.57rem 'IBM Plex Mono',monospace; letter-spacing:.13em; }.assembly-step h3 { margin:1rem 0 .7rem; font-size:clamp(1.5rem,2.7vw,2.7rem); font-weight:300; }.assembly-step p { max-width:510px; margin:0; color:rgba(255,255,255,.55); line-height:1.8; }

.house-library { padding:8rem 0 8rem 6vw; overflow:hidden; background:#f4f0e7; }
.library-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:end; padding-right:6vw; margin-bottom:5rem; }
.library-heading h2 { margin:3rem 0 0; font-size:clamp(2.8rem,5.8vw,6rem); font-weight:300; line-height:1.04; letter-spacing:-.045em; }.library-heading>div:last-child p { max-width:560px; margin:0 0 2rem; color:#5f6963; line-height:1.8; }
.house-rail { display:grid; grid-auto-flow:column; grid-auto-columns:min(42vw,560px); gap:1.2rem; overflow-x:auto; padding:0 6vw 1.2rem 0; scroll-snap-type:x mandatory; scrollbar-color:#aa8127 transparent; }
.house-card { scroll-snap-align:start; background:#0b1712; color:white; }.house-card img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }.house-card>div { padding:1.45rem; border-top:1px solid rgba(216,182,92,.28); }.house-card span { color:var(--gold); font:.56rem 'IBM Plex Mono',monospace; letter-spacing:.12em; }.house-card h3 { margin:.9rem 0 .35rem; font-size:1.65rem; font-weight:300; }.house-card p { margin:0; color:rgba(255,255,255,.52); font-size:.78rem; }

.projects-section { padding:8rem 4vw; background:#e7e6dd; }
.projects-top,.insights-heading { display:flex; justify-content:space-between; align-items:end; gap:3rem; margin:0 2vw 5rem; }
.projects-top h2,.insights-heading h2 { margin-top:3rem; }
.text-link { flex:0 0 auto; padding-bottom:.55rem; border-bottom:1px solid #8a928c; font-size:.82rem; }.text-link span { margin-left:1rem; }
.project-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:1.25rem; }
.project-card { position:relative; min-height:380px; overflow:hidden; background:#20352b; color:white; }
.project-card.project-wide { grid-row:span 2; min-height:780px; }
.project-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.project-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,12,8,.8),transparent 55%); }
.project-card:hover img { transform:scale(1.035); }
.project-overlay { position:absolute; z-index:2; left:2rem; right:2rem; bottom:1.8rem; }
.project-overlay span { font:.61rem 'IBM Plex Mono',monospace; color:var(--green); letter-spacing:.13em; }
.project-overlay h3 { margin:.65rem 0 .15rem; font-size:clamp(1.65rem,3vw,3rem); font-weight:300; }
.project-overlay p { margin:0; color:rgba(255,255,255,.62); font:.68rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }

.stories-section { padding:8rem 0 8rem 6vw; overflow:hidden; color:white; background:#020906; }
.stories-heading { max-width:1050px; padding-right:6vw; }.stories-heading h2 { margin:3rem 0 1.5rem; font-size:clamp(3rem,6vw,6.4rem); font-weight:300; line-height:1.03; letter-spacing:-.05em; }.stories-heading>p { max-width:700px; color:rgba(255,255,255,.56); line-height:1.85; }
.video-rail { display:grid; grid-auto-flow:column; grid-auto-columns:min(38vw,520px); gap:1.2rem; overflow-x:auto; padding:4.5rem 6vw 1.4rem 0; scroll-snap-type:x mandatory; scrollbar-color:#bd9130 transparent; }
.video-card { scroll-snap-align:start; color:white; }.video-thumb { position:relative; aspect-ratio:16/9; overflow:hidden; border:1px solid rgba(216,182,92,.25); }.video-thumb img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) brightness(.78); transition:transform .7s,filter .4s; }.video-card:hover .video-thumb img { transform:scale(1.035); filter:saturate(1) brightness(.9); }
.video-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(1,7,4,.66),transparent 55%); }.play { position:absolute; z-index:2; left:1.2rem; bottom:1rem; display:grid; place-items:center; width:58px; height:58px; border-radius:50%; color:#0b1712!important; background:var(--gold); font:.56rem 'IBM Plex Mono',monospace!important; }.video-thumb i { position:absolute; z-index:2; right:1rem; bottom:1rem; color:rgba(255,255,255,.7); font:normal .58rem 'IBM Plex Mono',monospace; }
.video-card>span { display:block; margin-top:1.3rem; color:var(--gold); font:.55rem 'IBM Plex Mono',monospace; letter-spacing:.12em; }.video-card h3 { margin:.7rem 0 .35rem; font-size:1.5rem; font-weight:300; }.video-card p { margin:0; color:rgba(255,255,255,.48); font-size:.82rem; }
.stories-all { display:inline-flex; gap:1.2rem; margin-top:3rem; padding-bottom:.5rem; border-bottom:1px solid rgba(255,255,255,.3); font-size:.82rem; }.stories-all span { color:var(--gold); }

.energy-section { display:grid; grid-template-columns:1.1fr .9fr; min-height:780px; color:white; background:var(--forest); }
.energy-image { position:relative; min-height:620px; overflow:hidden; }
.energy-image img { width:100%; height:100%; object-fit:cover; }
.energy-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 55%,rgba(13,51,39,.55)); }
.sun-path { position:absolute; z-index:2; left:8%; right:8%; bottom:8%; display:flex; align-items:center; justify-content:space-between; height:74px; border-top:1px solid rgba(255,255,255,.5); color:white; font:.6rem 'IBM Plex Mono',monospace; }
.sun-path i { position:absolute; left:50%; top:-10px; width:18px; height:18px; border-radius:50%; background:var(--green); box-shadow:0 0 32px rgba(184,217,57,.8); }.sun-path b { font-weight:400; color:var(--green); }
.energy-copy { display:flex; flex-direction:column; justify-content:center; padding:7rem 6vw; }
.energy-copy h2 { margin:3rem 0 1.7rem; font-size:clamp(2.6rem,4.8vw,5rem); font-weight:300; line-height:1.06; letter-spacing:-.04em; }
.energy-copy>p { margin:0; color:rgba(255,255,255,.65); line-height:1.9; }
.energy-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:3rem 0; padding:1.4rem 0; border-top:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }
.energy-stats strong,.energy-stats span { display:block; }.energy-stats strong { color:var(--green); font:.7rem 'IBM Plex Mono',monospace; }.energy-stats span { margin-top:.55rem; color:rgba(255,255,255,.65); font-size:.72rem; }
.energy-copy .button { align-self:flex-start; }.dark-text { color:var(--ink); }

.insights-section { padding:8rem 6vw; background:var(--paper); }
.insights-heading { margin:0 0 5rem; }
.insight-list { border-top:1px solid #b7bdb6; }
.insight-item { display:grid; grid-template-columns:150px 1fr 100px; gap:2rem; align-items:center; padding:2rem 0; border-bottom:1px solid #b7bdb6; }
.insight-date,.insight-type { color:#677169; font:.62rem 'IBM Plex Mono',monospace; letter-spacing:.08em; }.insight-type { text-align:right; color:#70870f; }
.insight-item h3 { margin:0; font-size:clamp(1.15rem,2vw,1.75rem); font-weight:400; line-height:1.45; transition:padding .25s; }.insight-item:hover h3 { padding-left:.8rem; }

.assessment-section { position:relative; padding:8rem 6vw; color:white; background:radial-gradient(circle at 85% 10%,rgba(216,182,92,.13),transparent 28%),#061a12; overflow:hidden; }
.assessment-section::before { content:""; position:absolute; inset:0; opacity:.12; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:8.33vw 8.33vw; }
.assessment-section>* { position:relative; z-index:1; }.assessment-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:6vw; align-items:end; max-width:1240px; margin:0 auto 4rem; }.assessment-heading h2 { margin:2rem 0 0; font-size:clamp(2.8rem,5.7vw,6rem); line-height:.98; font-weight:350; letter-spacing:-.045em; }.assessment-heading>p { margin:0; color:rgba(255,255,255,.62); line-height:1.8; }
.assessment-card,.assessment-result { max-width:1120px; margin:auto; padding:clamp(1.4rem,4vw,3.5rem); color:#10231c; background:#f7f7f2; box-shadow:0 30px 90px rgba(0,0,0,.32); border-top:4px solid #d8b65c; }
.assessment-progress>div { display:flex; justify-content:space-between; color:#315046; font:.68rem 'IBM Plex Mono',monospace; letter-spacing:.08em; }.assessment-progress i { display:block; height:4px; margin:1rem 0 3rem; overflow:hidden; background:#dce4df; }.assessment-progress i span { display:block; width:25%; height:100%; background:linear-gradient(90deg,#0b684a,#d8b65c); transition:width .35s ease; }
.assessment-step { display:none; margin:0; padding:0; border:0; }.assessment-step.is-active { display:block; animation:step-in .35s ease both; }.assessment-step legend { width:100%; margin-bottom:1.6rem; color:#0d4d39; font-size:clamp(1.25rem,2vw,1.65rem); font-weight:650; }.choice-grid,.priority-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; }.choice-grid-3 { grid-template-columns:repeat(3,1fr); }.choice-grid label,.priority-grid label { position:relative; cursor:pointer; }.choice-grid input,.priority-grid input { position:absolute; opacity:0; pointer-events:none; }.choice-grid span,.priority-grid span { display:grid; min-height:64px; place-items:center; padding:.8rem; text-align:center; border:1px solid #bfd0c8; background:white; transition:.2s; }.choice-grid input:checked+span,.priority-grid input:checked+span { color:white; border-color:#0b684a; background:#0b684a; box-shadow:inset 0 0 0 2px #f7f7f2; }.choice-grid input:focus-visible+span,.priority-grid input:focus-visible+span { outline:3px solid #a67d1f; outline-offset:3px; }.priority-grid { grid-template-columns:repeat(4,1fr); margin-top:1.4rem; }.priority-grid span { min-height:54px; font-size:.82rem; }
.form-trap { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.field-label { display:block; margin-top:1.35rem; color:#29483e; font-size:.82rem; font-weight:650; }.field-label>span { display:block; margin-bottom:.55rem; }.field-label input,.field-label select { width:100%; min-height:54px; padding:.8rem 1rem; color:#13251e; border:1px solid #bfd0c8; border-radius:0; background:white; font:inherit; }.field-label input:focus,.field-label select:focus { outline:2px solid #d8b65c; outline-offset:1px; }
.assessment-controls { display:flex; justify-content:flex-end; gap:.8rem; margin-top:2rem; }.assessment-controls button,.result-actions>* { min-height:50px; padding:.8rem 1.2rem; border:1px solid #0b684a; cursor:pointer; font:600 .86rem inherit; }.assessment-next,.assessment-submit { color:white; background:#0b684a; }.assessment-back { color:#0b684a; background:transparent; }.assessment-error { min-height:1.4em; margin-top:1rem; color:#a5332a; font-size:.8rem; }.privacy-note { color:#64766f; font-size:.75rem; }.consent-line { display:flex; gap:.7rem; align-items:flex-start; margin-top:1.2rem; color:#29483e; font-size:.78rem; line-height:1.55; }.consent-line input { width:18px; height:18px; margin-top:.1rem; accent-color:#0b684a; }.assessment-result { margin-top:1.5rem; }.assessment-result>span { color:#9e761c; font:.58rem 'IBM Plex Mono',monospace; letter-spacing:.15em; }.assessment-result h3 { margin:1rem 0; font-size:clamp(1.6rem,3vw,2.6rem); }.assessment-result pre { overflow:auto; padding:1.2rem; white-space:pre-wrap; color:#e9f4ee; background:#082219; font:500 .78rem/1.8 'IBM Plex Mono',monospace; }.assessment-result>p { color:#60736a; font-size:.75rem; }.result-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.2rem; }.result-actions>* { display:grid; place-items:center; color:white; background:#0b684a; }.result-actions .send-lead { color:#10231c; background:#d8b65c; border-color:#b38a2d; }.result-actions a:nth-of-type(1) { background:#08a04b; }.result-actions a:nth-of-type(2) { background:#1476d4; }.result-actions a:last-child { color:#173d30; background:#d8b65c; }.send-status { min-height:1.5em; margin-top:1rem; color:#0b684a; font-size:.8rem; font-weight:650; }.send-status.is-error { color:#a5332a; }
@keyframes step-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }

.contact-section { position:relative; overflow:hidden; padding:9rem 6vw; color:white; text-align:center; background:#07110d; }
.contact-section::before { content:""; position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size:8.33vw 8.33vw; }
.contact-section>* { position:relative; z-index:1; }.contact-mark { margin-bottom:4rem; color:var(--green); font:.7rem 'IBM Plex Mono',monospace; letter-spacing:.18em; }.contact-section>p { color:rgba(255,255,255,.42); font:.62rem 'IBM Plex Mono',monospace; letter-spacing:.16em; }
.contact-section h2 { margin:1.5rem auto 3rem; max-width:900px; font-size:clamp(3rem,6.4vw,6.5rem); font-weight:300; line-height:1.05; letter-spacing:-.05em; }
.contact-button { display:inline-grid; grid-template-columns:1fr 62px; align-items:center; min-width:min(420px,90vw); min-height:62px; text-align:left; color:var(--ink); background:var(--green); }.contact-button span { padding:0 1.3rem; }.contact-button b { display:grid; place-items:center; align-self:stretch; border-left:1px solid rgba(13,23,19,.25); font-weight:400; }

.social-bridge { display:grid; grid-template-columns:1fr 1.45fr; gap:4rem; align-items:center; padding:4rem 6vw; color:#0a231a; background:#f5f5f1; border-top:1px solid #d8b65c; }.social-bridge>div>span { color:#9c761e; font:.58rem 'IBM Plex Mono',monospace; letter-spacing:.16em; }.social-bridge h2 { margin:.8rem 0 0; font-size:clamp(1.5rem,2.4vw,2.8rem); font-weight:420; }.social-bridge nav { display:grid; grid-template-columns:repeat(6,1fr); gap:.5rem; }.social-bridge a { display:flex; min-width:0; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; min-height:96px; color:white; background:#111; transition:transform .2s,filter .2s; }.social-bridge a:hover { transform:translateY(-4px); filter:brightness(1.08); }.social-bridge b { display:grid; place-items:center; width:34px; height:34px; font-size:1rem; }.social-bridge span { font-size:.6rem; }.social-facebook{background:#365899!important}.social-instagram{background:#d62976!important}.social-youtube{background:#e34133!important}.social-line{background:#14c93c!important}.social-line b{font-size:.58rem}.social-messenger{background:#0b7bec!important}.social-email{background:#118bc5!important}

footer { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3rem; padding:4rem 6vw 2rem; color:rgba(255,255,255,.68); background:#050a08; font-size:.75rem; }
.footer-brand img { width:190px; height:auto; }.footer-brand p { max-width:370px; }
footer>div:not(.footer-brand) { display:flex; flex-direction:column; gap:.6rem; } footer>div>span { margin-bottom:.8rem; color:var(--green); font:.6rem 'IBM Plex Mono',monospace; letter-spacing:.15em; } footer small { grid-column:1/-1; padding-top:2rem; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.3); font:.55rem 'IBM Plex Mono',monospace; letter-spacing:.1em; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; height: 70px; }
  .desktop-nav { display: none; }
  .mobile-dock { position:fixed; z-index:30; left:50%; bottom:14px; transform:translateX(-50%); display:grid; grid-template-columns:repeat(4,1fr); width:min(92vw,520px); color:white; border:1px solid rgba(216,182,92,.35); background:rgba(4,20,14,.92); backdrop-filter:blur(14px); box-shadow:0 12px 36px rgba(0,0,0,.35); }.mobile-dock a { display:flex; flex-direction:column; align-items:center; gap:.18rem; padding:.58rem .4rem; border-right:1px solid rgba(255,255,255,.12); font-size:.65rem; }.mobile-dock a:last-child { border-right:0; }.mobile-dock span { color:var(--gold); font:.48rem 'IBM Plex Mono',monospace; }
  .brand img { width: 52px; height:52px; }
  .header-cta { font-size: .72rem; }
  .header-tools { gap:.55rem; }
  .hero-content { padding: 22vh 7vw 240px; width: 100%; }
  .hero-shade { background: linear-gradient(90deg, rgba(2,16,11,.9), rgba(2,16,11,.28)), linear-gradient(0deg, rgba(2,14,9,.9), transparent 58%); }
  .hero-specs { left: 7vw; right: 7vw; bottom: 72px; grid-template-columns: repeat(3,1fr); }
  .scroll-cue, .hero-coordinates, .hero-index, .hero-scan { display: none; }
  .intro-grid { grid-template-columns: 1fr; gap: 2rem; }
  .system-strip { grid-template-columns: 1fr 1fr; }
  .system-strip article:nth-child(2) { border-right: 0; }
  .system-strip article:nth-child(-n+2) { border-bottom: 1px solid #bec4bd; }
  .process-heading,.process-layout { grid-template-columns:1fr; }
  .assembly-heading,.assembly-layout { grid-template-columns:1fr; }.assembly-sticky { position:relative; top:auto; height:70vw; min-height:520px; }.assembly-step { min-height:420px; }
  .library-heading { grid-template-columns:1fr; gap:2.2rem; }.house-rail { grid-auto-columns:min(70vw,540px); }.video-rail { grid-auto-columns:min(68vw,520px); }
  .low-carbon-section { grid-template-columns:1fr; }.campaign-visual { min-height:auto; aspect-ratio:16/10; margin:6vw 6vw 0; }.low-carbon-content { padding:6rem 7vw 26rem; }.promo-proof { left:6vw; bottom:3rem; width:42vw; }.offer-bar { left:48vw; right:6vw; grid-template-columns:1fr 1fr; }.offer-title,.offer-bar>a { grid-column:1/-1; }
  .process-visual { width:min(560px,100%); margin:auto; }
  .project-grid { grid-template-columns:1fr 1fr; }.project-card.project-wide { grid-column:1/-1; grid-row:auto; min-height:620px; }
  .energy-section { grid-template-columns:1fr; }.energy-image { min-height:60vw; }.energy-copy { padding:6rem 7vw; }
  .insight-item { grid-template-columns:110px 1fr 70px; }
  .assessment-heading { grid-template-columns:1fr; }.choice-grid-3 { grid-template-columns:1fr; }.priority-grid { grid-template-columns:1fr 1fr; }
  .social-bridge { grid-template-columns:1fr; gap:2rem; }.social-bridge nav { grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 560px) {
  .site-header { padding: 0 5vw; }
  .header-cta { font-size: 0; }
  .header-cta span { font-size: 1.2rem; }
  .lang-toggle { padding:.32rem .4rem; }
  .hero-content { padding: 20vh 6vw 285px; }
  h1 { font-size: clamp(2.9rem, 14vw, 4.2rem); }
  .hero-actions { align-items: stretch; flex-direction: column; width: min(100%, 330px); }
  .hero-specs { grid-template-columns: 1fr; left: 6vw; right: 6vw; bottom: 32px; }
  .hero-specs div { display: grid; grid-template-columns: 65px 1fr; align-items: center; padding: .65rem .2rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .hero-specs div:last-child { border-bottom: 0; }
  .hero-specs span { margin-top: 0; }
  .system-intro { padding: 5.5rem 6vw; }
  .intro-grid { margin: 2.7rem 0 4rem; }
  .system-strip { grid-template-columns: 1fr; }
  .system-strip article { min-height: 160px; border-right: 0; border-bottom: 1px solid #bec4bd; }
  .system-strip article:last-child { border-bottom: 0; }
  .system-strip h3 { margin-top: 2rem; }
  .process-section,.projects-section,.insights-section { padding-top:5.5rem; padding-bottom:5.5rem; }
  .assembly-section { padding:5.5rem 6vw; }.assembly-heading { display:block; margin:2.7rem 0 3.5rem; }.assembly-heading p { margin-top:2rem; }.assembly-sticky { height:92vw; min-height:430px; }.assembly-step { min-height:auto; padding:4.5rem 0; }.build-layer { left:8%; right:8%; }.assembly-controls { left:.85rem; right:.85rem; bottom:1.8rem; gap:2px; }.assembly-controls button { min-height:30px; font-size:.48rem; }.assembly-meter { left:.85rem; right:.85rem; bottom:1rem; }
  .house-library,.stories-section { padding-top:5.5rem; padding-bottom:5.5rem; }.library-heading { display:block; margin-bottom:3rem; }.library-heading>div:last-child { margin-top:2rem; }.house-rail { grid-auto-columns:86vw; }.video-rail { grid-auto-columns:84vw; padding-top:3rem; }.stories-heading h2 { margin-top:2.5rem; }
  .campaign-visual { aspect-ratio:16/11; margin:1rem 1rem 0; padding:.45rem; }.campaign-visual::after { inset:.45rem; }.visual-readout { right:1rem; bottom:1rem; }.low-carbon-content { padding:5rem 6vw 40rem; }.pillar-grid { grid-template-columns:1fr; }.pillar-grid article { min-height:155px; }.pillar-grid h3 { margin-top:1.3rem; }.promo-proof { left:1rem; right:1rem; bottom:18rem; width:auto; }.offer-bar { left:1rem; right:1rem; bottom:2rem; grid-template-columns:1fr 1fr; }.offer-title,.offer-bar>a,.offer-bar small { grid-column:1/-1; }.offer-bar>div,.offer-bar>a { min-height:72px; border-right:0; border-bottom:1px solid #cfc5ae; }.offer { display:grid; grid-template-columns:34px 1fr; column-gap:.5rem; align-items:center; }.offer b { grid-row:1/3; }.offer span { margin:0; }
  .process-heading,.projects-top,.insights-heading { display:block; margin-top:2.7rem; margin-bottom:3.2rem; }.process-heading p { margin-top:2rem; }.projects-top .text-link,.insights-heading .text-link { display:inline-block; margin-top:2rem; }
  .project-grid { grid-template-columns:1fr; }.project-card,.project-card.project-wide { grid-column:auto; min-height:115vw; }
  .project-overlay { left:1.2rem; right:1.2rem; bottom:1.2rem; }
  .energy-image { min-height:90vw; }.energy-copy { padding:5rem 6vw; }.energy-stats { grid-template-columns:1fr; }
  .insight-item { grid-template-columns:1fr 65px; gap:.8rem; }.insight-date { grid-column:1/-1; }.insight-item h3 { font-size:1.15rem; }.insight-type { align-self:end; }
  .assessment-section { padding:5.5rem 5vw 7.5rem; }.assessment-heading { margin-bottom:2.5rem; }.assessment-card,.assessment-result { padding:1.25rem; }.form-grid,.choice-grid,.priority-grid { grid-template-columns:1fr; }.assessment-controls button { flex:1; }.result-actions { display:grid; }.result-actions>* { width:100%; }
  .social-bridge { padding:3.5rem 5vw 7.5rem; }.social-bridge nav { grid-template-columns:repeat(2,1fr); }.social-bridge a { min-height:82px; }
  footer { grid-template-columns:1fr; } footer small { grid-column:auto; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } .reveal { opacity:1; transform:none; } }

/* Connected internal pages */
.inner-page { background:#06130e; color:#f7f5ee; }
.inner-hero { position:relative; min-height:72vh; display:grid; align-content:end; padding:10rem 6vw 6rem; overflow:hidden; background:radial-gradient(circle at 80% 20%,rgba(216,182,92,.15),transparent 32%),#071a13; }
.inner-hero::before { content:""; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:8.33vw 8.33vw; }
.inner-hero>* { position:relative; z-index:1; }.inner-hero h1 { max-width:1050px; margin:.8rem 0 1.4rem; font-size:clamp(3rem,8vw,8rem); line-height:.9; font-weight:350; letter-spacing:-.055em; }.inner-hero h1 em { color:#d8b65c; font-style:normal; }.inner-hero p { max-width:680px; color:rgba(255,255,255,.68); font-size:clamp(1rem,1.5vw,1.3rem); }
.inner-index { position:absolute; top:8rem; right:6vw; color:#d8b65c; font:.6rem 'IBM Plex Mono',monospace; letter-spacing:.18em; }
.inner-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1px; padding:1px; background:rgba(216,182,92,.2); }
.inner-card { grid-column:span 4; min-height:330px; padding:2rem; background:#0a2018; transition:background .35s,transform .35s; }.inner-card:hover { background:#103024; transform:translateY(-4px); }.inner-card span { color:#d8b65c; font:.55rem 'IBM Plex Mono',monospace; letter-spacing:.14em; }.inner-card h2,.inner-card h3 { margin:3.5rem 0 1rem; font-size:clamp(1.5rem,2.5vw,2.7rem); font-weight:400; line-height:1.08; }.inner-card p { color:rgba(255,255,255,.6); }.inner-card a { display:inline-block; margin-top:1.5rem; color:#d8b65c; }
.inner-wide { grid-column:span 6; min-height:390px; }.inner-cta { display:grid; place-items:center; min-height:54vh; padding:5rem 6vw; text-align:center; background:#f2eee4; color:#071a13; }.inner-cta h2 { max-width:900px; font-size:clamp(2.6rem,6vw,6.5rem); line-height:.94; font-weight:350; }.inner-cta a { margin-top:2rem; padding:1rem 1.5rem; color:white; background:#0a422e; }
@media (max-width:900px){.inner-card{grid-column:span 6}.inner-wide{grid-column:span 12}}
@media (max-width:560px){.inner-hero{min-height:66vh;padding:8rem 6vw 4rem}.inner-card{grid-column:span 12;min-height:260px}.inner-index{top:5.5rem}.inner-page footer{padding-bottom:7rem}}

/* GDC precision interface v2 — architectural, motion-led, lightweight */
.promo-proof{left:3vw;bottom:3.5rem;width:min(45vw,760px);overflow:hidden;border-color:rgba(216,182,92,.55);background:#03130d;clip-path:polygon(0 0,96% 0,100% 8%,100% 100%,0 100%)}
.promo-proof>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:54% center;filter:saturate(.9) contrast(1.03)}
.promo-proof::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgba(3,19,13,.72) 100%);pointer-events:none}
.promo-scan{position:absolute;z-index:2;left:1.1rem;right:1.1rem;bottom:1rem;display:flex;align-items:center;gap:.75rem;color:#f5d779;font:.54rem 'IBM Plex Mono',monospace;letter-spacing:.14em}
.promo-scan i{position:relative;display:block;width:44px;height:2px;background:#d8b65c;box-shadow:0 0 18px rgba(216,182,92,.9)}
.promo-scan i::after{content:"";position:absolute;right:-5px;top:-4px;width:9px;height:9px;border:1px solid #f5d779;border-radius:50%}
.offer-bar{left:auto;right:3vw;width:min(44vw,700px);grid-template-columns:1fr 1fr;background:rgba(246,242,231,.96);backdrop-filter:blur(16px);box-shadow:0 24px 80px rgba(0,0,0,.32)}
.offer-title,.offer-bar>a,.offer-bar small{grid-column:1/-1}

.assessment-section{padding:9rem 5vw;background:radial-gradient(circle at 12% 30%,rgba(19,113,80,.22),transparent 25%),radial-gradient(circle at 90% 2%,rgba(216,182,92,.13),transparent 24%),#020e0a}
.assessment-section::after{content:"CALIBRATION / 2026";position:absolute;right:1.5vw;top:50%;writing-mode:vertical-rl;color:rgba(216,182,92,.35);font:.5rem 'IBM Plex Mono',monospace;letter-spacing:.28em}
.assessment-heading{max-width:1320px;margin-bottom:3rem}
.assessment-heading h2{max-width:900px;font-size:clamp(3rem,6.2vw,7rem);font-weight:300}
.assessment-card{position:relative;display:grid;grid-template-columns:210px minmax(0,1fr);column-gap:clamp(1.5rem,4vw,5rem);max-width:1320px;padding:0;color:#eef6f1;border:1px solid rgba(216,182,92,.32);border-top:1px solid rgba(216,182,92,.75);background:rgba(4,24,17,.88);box-shadow:0 36px 100px rgba(0,0,0,.5);backdrop-filter:blur(18px);clip-path:polygon(0 0,97.5% 0,100% 5%,100% 100%,2.5% 100%,0 95%)}
.assessment-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:72px 72px}
.assessment-console{grid-column:1/-1;display:grid;grid-template-columns:1fr auto 90px;align-items:center;gap:1rem;min-height:62px;padding:0 1.4rem;border-bottom:1px solid rgba(216,182,92,.25);color:#d8b65c;font:.55rem 'IBM Plex Mono',monospace;letter-spacing:.15em}
.assessment-console b{color:#eff7f2;font-weight:500}.assessment-console i{height:1px;background:#d8b65c;box-shadow:0 0 16px rgba(216,182,92,.8)}
.assessment-sequence{position:relative;z-index:1;grid-column:1;grid-row:2/7;margin:0;padding:2rem 0 2rem 1.4rem;list-style:none;border-right:1px solid rgba(216,182,92,.18)}
.assessment-sequence li{position:relative;display:grid;grid-template-columns:34px 1fr;gap:.65rem;align-items:center;min-height:72px;color:rgba(255,255,255,.34);font:.62rem 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;transition:.3s}
.assessment-sequence li::before{content:"";position:absolute;left:14px;top:-18px;width:1px;height:35px;background:rgba(216,182,92,.2)}
.assessment-sequence li:first-child::before{display:none}.assessment-sequence b{display:grid;place-items:center;width:29px;height:29px;border:1px solid rgba(216,182,92,.25);font-size:.55rem}.assessment-sequence .is-active{color:#fff}.assessment-sequence .is-active b{color:#07130e;border-color:#f1ce6f;background:#f1ce6f;box-shadow:0 0 24px rgba(216,182,92,.32)}.assessment-sequence .is-complete{color:#68d4aa}.assessment-sequence .is-complete b{border-color:#36a97d}
.assessment-progress,.assessment-step,.assessment-error,.assessment-controls{position:relative;z-index:1;grid-column:2;margin-right:clamp(1.4rem,4vw,4rem)}
.assessment-progress{padding-top:2.2rem}.assessment-progress>div{color:rgba(255,255,255,.58)}.assessment-progress i{height:2px;margin:1rem 0 2.4rem;background:rgba(255,255,255,.1)}.assessment-progress i span{background:linear-gradient(90deg,#30b17e,#f1ce6f);box-shadow:0 0 16px rgba(48,177,126,.45)}
.assessment-step{min-height:300px;padding-bottom:1rem}.assessment-step legend{color:#f5f7f2;font-size:clamp(1.5rem,2.4vw,2.4rem);font-weight:400;letter-spacing:-.025em}
.choice-grid span,.priority-grid span{position:relative;min-height:70px;color:rgba(255,255,255,.72);border-color:rgba(216,182,92,.23);background:rgba(8,38,27,.74);font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.03em;overflow:hidden}
.choice-grid span::before,.priority-grid span::before{content:"";position:absolute;left:0;top:0;width:18px;height:1px;background:#d8b65c}
.choice-grid label:hover span,.priority-grid label:hover span{color:white;border-color:rgba(216,182,92,.7);transform:translateY(-2px);background:#0b3023}
.choice-grid input:checked+span,.priority-grid input:checked+span{color:#07130e;border-color:#d8b65c;background:#e3c05e;box-shadow:0 0 0 1px #e3c05e,0 12px 34px rgba(0,0,0,.24)}
.field-label{color:rgba(255,255,255,.65);font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.03em}.field-label input,.field-label select{color:#f4f7f5;border-color:rgba(216,182,92,.26);background:#071d15}.field-label input::placeholder{color:rgba(255,255,255,.32)}
.consent-line{color:rgba(255,255,255,.68)}.privacy-note{color:rgba(255,255,255,.4)}.assessment-back{color:#d8b65c;border-color:rgba(216,182,92,.45);background:transparent}.assessment-next,.assessment-submit{color:#04110c;border-color:#d8b65c;background:#d8b65c}.assessment-controls button{min-width:140px}.assessment-error{color:#ff9e88}
.assessment-result{max-width:1320px;border-top-width:1px;background:#eef0e9}

.social-bridge{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:1px;padding:1px;color:#f3f7f4;border-top:1px solid rgba(216,182,92,.5);background:#173328;overflow:hidden}
.social-visual{position:relative;grid-column:1/8;grid-row:1/3;min-height:520px;margin:0;overflow:hidden;background:#03140d}
.social-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 58%,#061811 100%),linear-gradient(0deg,rgba(2,14,10,.55),transparent 45%);pointer-events:none}.social-visual img{width:100%;height:100%;object-fit:cover;object-position:center}.social-visual figcaption{position:absolute;z-index:1;left:1.4rem;bottom:1.2rem;color:#d8b65c;font:.55rem 'IBM Plex Mono',monospace;letter-spacing:.16em}
.social-intro{grid-column:8/13;padding:3.2rem 3rem 2rem;background:#061811}.social-intro>span{color:#d8b65c;font:.58rem 'IBM Plex Mono',monospace;letter-spacing:.16em}.social-intro h2{max-width:560px;margin:1rem 0;font-size:clamp(2rem,3.5vw,4.4rem);font-weight:320;line-height:1.02;letter-spacing:-.04em}.social-intro p{max-width:540px;color:rgba(255,255,255,.56);line-height:1.7}
.social-bridge nav{grid-column:8/13;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(216,182,92,.2)}
.social-bridge a{position:relative;min-height:130px;color:#f5f8f6!important;border:0;background:#092219!important;transition:background .25s,transform .25s;overflow:hidden}.social-bridge a::before{content:"";position:absolute;left:0;top:0;width:22px;height:2px;background:#d8b65c;transition:width .25s}.social-bridge a:hover{z-index:1;transform:translateY(-4px);background:#10392a!important;filter:none}.social-bridge a:hover::before{width:100%}.social-bridge b{color:#d8b65c;border:1px solid rgba(216,182,92,.4);border-radius:50%;font-family:'IBM Plex Mono',monospace}.social-bridge a>span{font:.58rem 'IBM Plex Mono',monospace;letter-spacing:.08em}

@media(max-width:900px){.promo-proof{left:5vw;right:5vw;bottom:24rem;width:auto}.offer-bar{left:8vw;right:8vw;width:auto}.assessment-card{grid-template-columns:150px minmax(0,1fr)}.social-visual{grid-column:1/13;grid-row:auto;min-height:58vw}.social-intro,.social-bridge nav{grid-column:1/13}.social-intro{padding:3rem 7vw}.social-bridge nav{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.low-carbon-content{padding-bottom:48rem}.promo-proof{left:1rem;right:1rem;bottom:27rem}.promo-proof>img{aspect-ratio:4/3}.offer-bar{left:1rem;right:1rem;bottom:2rem}.assessment-section{padding:5.5rem 4vw 7.5rem}.assessment-card{display:block;clip-path:polygon(0 0,94% 0,100% 4%,100% 100%,0 100%)}.assessment-console{grid-template-columns:1fr auto;padding:0 1rem}.assessment-console i{display:none}.assessment-sequence{display:grid;grid-template-columns:repeat(4,1fr);padding:0;border-right:0;border-bottom:1px solid rgba(216,182,92,.18)}.assessment-sequence li{display:flex;min-height:62px;justify-content:center}.assessment-sequence li::before,.assessment-sequence li span{display:none}.assessment-progress,.assessment-step,.assessment-error,.assessment-controls{margin-right:0;padding-left:1rem;padding-right:1rem}.assessment-progress{padding-top:1.5rem}.assessment-step{min-height:360px}.assessment-controls{padding-bottom:1.2rem}.social-visual{min-height:82vw}.social-intro{padding:2.5rem 6vw}.social-bridge nav{grid-template-columns:repeat(2,1fr)}.social-bridge a{min-height:105px}}

/* Precision interface v3 — overlap-free systems and immersive inner pages */
.low-carbon-section{
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:1px;
  padding:clamp(1rem,3vw,3.5rem);
  background-color:#03140e;
}
.low-carbon-section>*{min-width:0;max-width:100%}
.campaign-visual{
  grid-column:1;
  grid-row:1;
  min-height:clamp(580px,46vw,820px);
  height:100%;
  margin:0;
}
.low-carbon-content{
  grid-column:2;
  grid-row:1;
  min-width:0;
  padding:clamp(4rem,6vw,8rem) clamp(2rem,5vw,6rem);
  background:rgba(3,24,17,.86);
}
.promo-proof{
  position:relative;
  grid-column:1;
  grid-row:2;
  left:auto;
  right:auto;
  bottom:auto;
  width:auto;
  margin:0;
  align-self:stretch;
  box-shadow:none;
  clip-path:polygon(0 0,96.5% 0,100% 8%,100% 100%,0 100%);
}
.promo-proof>img{height:100%;min-height:420px;aspect-ratio:auto;object-position:center;}
.offer-bar{
  position:relative;
  grid-column:2;
  grid-row:2;
  left:auto;
  right:auto;
  bottom:auto;
  width:auto;
  height:100%;
  margin:0;
  align-self:stretch;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto 1fr auto auto;
  box-shadow:none;
  overflow:hidden;
}
.offer-bar strong,.offer-bar span,.offer-bar small{overflow-wrap:anywhere}
.offer-title{min-height:112px}.offer-bar .offer{display:flex;flex-direction:column;justify-content:center;min-height:150px}.offer-bar>a{min-height:96px}.offer-bar small{align-self:end}

.inner-page{position:relative;isolation:isolate;background:#020d09;}
.inner-page::before{
  content:"";
  position:fixed;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:linear-gradient(rgba(216,182,92,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(216,182,92,.13) 1px,transparent 1px);
  background-size:8.333vw 8.333vw;
}
.inner-page .site-header{border-bottom-color:rgba(216,182,92,.25);background:rgba(2,15,10,.82);backdrop-filter:blur(18px)}
.inner-hero{
  min-height:78vh;
  align-content:center;
  padding:11rem 6vw 7rem;
  border-bottom:1px solid rgba(216,182,92,.28);
  background:radial-gradient(circle at 18% 70%,rgba(20,122,84,.22),transparent 32%),#03140e;
}
.inner-hero::before{opacity:.12;background-size:6.25vw 6.25vw}
.inner-hero::after{
  content:"";
  position:absolute;
  z-index:0;
  top:5rem;
  right:0;
  bottom:0;
  width:min(50vw,920px);
  opacity:.48;
  background:linear-gradient(90deg,#03140e 0%,transparent 32%),linear-gradient(0deg,#03140e 0%,transparent 38%),url('./assets/greenery-low-carbon-precision-v2.webp') center/cover no-repeat;
  filter:saturate(.75) contrast(1.08);
  clip-path:polygon(12% 0,100% 0,100% 100%,0 100%,0 12%);
}
.inner-hero h1{position:relative;z-index:2;max-width:900px;font-size:clamp(3.2rem,7vw,7.5rem);text-wrap:balance}
.inner-hero p{position:relative;z-index:2;max-width:620px;line-height:1.8}
.inner-hero .section-kicker{position:relative;z-index:2}.inner-index{z-index:3;padding:.55rem .75rem;border:1px solid rgba(216,182,92,.35);background:rgba(3,20,14,.68)}
.inner-grid{position:relative;gap:1px;padding:clamp(1rem,4vw,4rem);background:#03110c}
.inner-grid::before{content:"SYSTEM MATRIX / GREENERY";position:absolute;right:4vw;top:1.25rem;color:rgba(216,182,92,.4);font:.52rem 'IBM Plex Mono',monospace;letter-spacing:.18em}
.inner-card{
  position:relative;
  min-height:360px;
  padding:clamp(1.5rem,2.4vw,2.8rem);
  border:1px solid rgba(216,182,92,.18);
  background:linear-gradient(145deg,rgba(10,39,28,.96),rgba(4,24,17,.96));
  clip-path:polygon(0 0,94% 0,100% 9%,100% 100%,0 100%);
  overflow:hidden;
}
.inner-card::before{content:"";position:absolute;left:0;top:0;width:48px;height:2px;background:#d8b65c;box-shadow:0 0 20px rgba(216,182,92,.5);transition:width .35s ease}
.inner-card::after{content:"+";position:absolute;right:1.25rem;bottom:1rem;color:rgba(216,182,92,.28);font:1.4rem 'IBM Plex Mono',monospace}
.inner-card:hover{transform:translateY(-6px);background:linear-gradient(145deg,#103b2b,#07271c);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.inner-card:hover::before{width:100%}
.inner-card h2,.inner-card h3{max-width:680px;margin-top:clamp(3rem,5vw,5.5rem)}
.inner-card p{max-width:620px;line-height:1.75}.inner-card a{padding-bottom:.35rem;border-bottom:1px solid rgba(216,182,92,.42)}
.inner-wide{min-height:430px}
.inner-cta{position:relative;min-height:60vh;place-items:end start;text-align:left;padding:8rem 6vw;overflow:hidden;background:#eee9dd}
.inner-cta::before{content:"PROJECT START / 01";position:absolute;right:6vw;top:5rem;color:#9a741e;font:.55rem 'IBM Plex Mono',monospace;letter-spacing:.18em}
.inner-cta::after{content:"";position:absolute;right:-8vw;bottom:-18vw;width:48vw;aspect-ratio:1;border:1px solid rgba(10,66,46,.18);border-radius:50%;box-shadow:0 0 0 8vw rgba(10,66,46,.035),0 0 0 16vw rgba(10,66,46,.025)}
.inner-cta>div{position:relative;z-index:1}.inner-cta h2{margin:0;max-width:1050px;text-wrap:balance}.inner-cta a{display:inline-flex;align-items:center;min-height:54px;clip-path:polygon(0 0,92% 0,100% 30%,100% 100%,0 100%)}
.inner-page footer{border-top:1px solid rgba(216,182,92,.22);background:#020b08}

@media(max-width:900px){
  .low-carbon-section{grid-template-columns:minmax(0,1fr);padding:1rem}
  .campaign-visual,.low-carbon-content,.promo-proof,.offer-bar{grid-column:1;position:relative;left:auto;right:auto;bottom:auto;width:auto}
  .campaign-visual{grid-row:1;min-height:68vw}.low-carbon-content{grid-row:2;padding:5rem 6vw}.promo-proof{grid-row:3}.offer-bar{grid-row:4}
  .promo-proof>img{min-height:0;aspect-ratio:16/10}
  .inner-hero{min-height:72vh}.inner-hero::after{width:72vw;opacity:.32}.inner-hero h1{max-width:90%}
  .inner-grid{padding:2rem 4vw}.inner-card{min-height:330px}
}
@media(max-width:560px){
  .low-carbon-section{padding:.65rem}.campaign-visual{min-height:112vw;padding:.55rem}.campaign-visual::after{inset:.55rem}
  .low-carbon-content{padding:4.5rem 1rem}.low-carbon-content h2{font-size:clamp(2.45rem,12vw,4rem)}
  .promo-proof{margin-top:.65rem;clip-path:polygon(0 0,92% 0,100% 8%,100% 100%,0 100%)}.promo-proof>img{min-height:0;aspect-ratio:4/3}
  .offer-bar{margin-top:.65rem;grid-template-columns:1fr}.offer-title,.offer-bar .offer,.offer-bar>a,.offer-bar small{grid-column:1/-1}.offer-bar .offer{min-height:100px;border-right:0;border-bottom:1px solid #cfc5ae}
  .inner-hero{min-height:76svh;padding:8.5rem 6vw 4.5rem;align-content:end}.inner-hero::after{top:4rem;width:100%;opacity:.3;clip-path:none}.inner-hero::before{background-size:25vw 25vw}
  .inner-hero h1{max-width:100%;font-size:clamp(3rem,15vw,5rem);line-height:.92}.inner-hero p{font-size:.96rem}.inner-index{top:5.5rem;right:6vw}
  .inner-grid{padding:1px}.inner-grid::before{display:none}.inner-card,.inner-wide{min-height:300px;padding:1.5rem;clip-path:none}.inner-card h2,.inner-card h3{margin-top:4rem}
  .inner-cta{min-height:56vh;padding:6rem 6vw}.inner-cta::before{top:2.5rem}.inner-cta::after{width:90vw}
}

/* Immersive inner-page content systems v4 */
.signal-strip{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:2rem;min-height:84px;padding:1rem 6vw;border-block:1px solid rgba(216,182,92,.25);color:rgba(255,255,255,.62);background:#04150f;font:.58rem 'IBM Plex Mono',monospace;letter-spacing:.13em}.signal-strip span,.signal-strip i{color:#d8b65c;font-style:normal}.signal-strip b{font-weight:400}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:1px;background:rgba(216,182,92,.2)}.module-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.system-module{position:relative;min-height:390px;padding:clamp(1.5rem,3vw,3.5rem);overflow:hidden;background:linear-gradient(145deg,#09291e,#041b13);transition:transform .3s,background .3s}.system-module::before{content:"";position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:52px 52px}.system-module>*{position:relative;z-index:1}.system-module>span,.media-heading>span,.narrative-panel>span,.project-index-head>span{color:#d8b65c;font:.56rem 'IBM Plex Mono',monospace;letter-spacing:.15em}.system-module h2{max-width:520px;margin:clamp(4.5rem,8vw,8rem) 0 1.2rem;font-size:clamp(1.8rem,3vw,3.4rem);font-weight:350;line-height:1.05}.system-module p{max-width:560px;color:rgba(255,255,255,.6);line-height:1.75}.system-module a{display:inline-block;margin-top:1.4rem;color:#e1c36f;border-bottom:1px solid rgba(225,195,111,.45)}.system-module:hover{z-index:1;transform:translateY(-5px);background:linear-gradient(145deg,#104633,#08251b)}
.narrative-panel{display:grid;grid-template-columns:1fr 2.4fr;gap:4rem;align-items:start;padding:8rem 6vw;background:#efeade;color:#071a13}.narrative-panel h2{max-width:900px;margin:0 0 1.5rem;font-size:clamp(2.8rem,6vw,6.8rem);font-weight:350;line-height:.95;letter-spacing:-.05em}.narrative-panel p{max-width:700px;font-size:1.08rem;line-height:1.8}
.catalog-console{padding:clamp(2rem,5vw,5rem) 6vw;border-bottom:1px solid rgba(216,182,92,.25);background:#03130d}.console-head{display:flex;justify-content:space-between;gap:2rem;margin-bottom:1.5rem;color:#d8b65c;font:.57rem 'IBM Plex Mono',monospace;letter-spacing:.14em}.console-head b{color:rgba(255,255,255,.65);font-weight:400}.console-inputs{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:1px;background:rgba(216,182,92,.26)}.console-inputs>*{display:grid;place-items:center;min-height:76px;padding:1rem;color:rgba(255,255,255,.72);background:#08251b;font:.62rem 'IBM Plex Mono',monospace;text-align:center}.console-inputs a{color:#08140f;background:#d8b65c}
.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:1px;background:rgba(216,182,92,.2)}.catalog-card{position:relative;min-height:360px;padding:2rem;overflow:hidden;background:#071d15}.catalog-card::before{content:"";position:absolute;inset:0;opacity:.15;background:radial-gradient(circle at 85% 10%,#d8b65c,transparent 28%)}.catalog-card>*{position:relative}.catalog-card>span{color:#d8b65c;font:.55rem 'IBM Plex Mono',monospace;letter-spacing:.14em}.catalog-card h2{margin:7rem 0 1rem;font-size:clamp(1.8rem,2.8vw,3rem);font-weight:350;line-height:1.02}.catalog-card p{min-height:3.4rem;color:rgba(255,255,255,.56)}.catalog-card a{display:inline-block;margin-top:1.5rem;color:#d8b65c}.catalog-card:hover{background:#0d3426}
.media-heading,.project-index-head{display:grid;grid-template-columns:1fr 2.3fr;gap:3rem;align-items:end;padding:6rem 6vw 3rem;background:#03130d}.media-heading h2,.project-index-head h2{margin:0;font-size:clamp(2.8rem,6vw,6rem);font-weight:350;line-height:.95}.media-module{min-height:430px}.project-index{padding-bottom:1px;background:#04140e}.project-index>a{display:grid;grid-template-columns:70px 1fr auto;gap:2rem;align-items:center;min-height:112px;padding:1rem 6vw;border-top:1px solid rgba(216,182,92,.2);transition:background .25s}.project-index>a:hover{background:#0d3023}.project-index b,.project-index i{color:#d8b65c;font:.58rem 'IBM Plex Mono',monospace;font-style:normal}.project-index span{font-size:clamp(1.25rem,2.4vw,2.6rem);font-weight:350}
.intel-list{padding:clamp(2rem,5vw,5rem) 6vw 7rem;background:#03130d}.intel-head{display:grid;grid-template-columns:1fr 2fr;gap:2rem;padding:0 0 2rem;color:#d8b65c;font:.57rem 'IBM Plex Mono',monospace;letter-spacing:.14em}.intel-head b{color:rgba(255,255,255,.62);font-weight:400}.intel-list>a{display:grid;grid-template-columns:130px 120px minmax(0,1fr) 55px;gap:2rem;align-items:center;min-height:126px;border-top:1px solid rgba(216,182,92,.22);transition:padding .25s,background .25s}.intel-list>a:last-child{border-bottom:1px solid rgba(216,182,92,.22)}.intel-list>a:hover{padding-inline:1rem;background:#0a281d}.intel-list time,.intel-list small,.intel-list i{color:#d8b65c;font:.56rem 'IBM Plex Mono',monospace;letter-spacing:.08em;font-style:normal}.intel-list h2{margin:0;padding:1.2rem 0;font-size:clamp(1.25rem,2.2vw,2.5rem);font-weight:350;line-height:1.16}
.contact-console{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1px;padding:1px;background:rgba(216,182,92,.2)}.contact-console-copy{padding:clamp(3rem,6vw,7rem);background:#ede8dc;color:#061a12}.contact-console-copy>span{color:#99741d;font:.56rem 'IBM Plex Mono',monospace;letter-spacing:.15em}.contact-console-copy h2{margin:1.5rem 0 2.5rem;font-size:clamp(2.8rem,5vw,5.8rem);font-weight:350;line-height:.95}.contact-console-copy ol{display:grid;gap:.9rem;padding-left:1.2rem}.contact-console-copy li{padding:.7rem 0;border-bottom:1px solid rgba(6,26,18,.16)}.contact-console-copy p{margin-top:2rem;color:rgba(6,26,18,.65);line-height:1.7}.contact-channels{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(216,182,92,.2)}.contact-channels a{display:grid;grid-template-columns:1fr auto;align-content:space-between;min-width:0;min-height:260px;padding:2rem;background:#08251b}.contact-channels span{grid-column:1/-1;color:#d8b65c;font:.55rem 'IBM Plex Mono',monospace;letter-spacing:.13em}.contact-channels b{align-self:end;overflow-wrap:anywhere;font-size:clamp(1.05rem,1.6vw,1.7rem);font-weight:350}.contact-channels i{align-self:end;color:#d8b65c;font-style:normal}.contact-channels a:hover{background:#0e392a}

@media(max-width:1100px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.console-inputs{grid-template-columns:repeat(3,1fr)}.console-inputs a{grid-column:span 3}.intel-list>a{grid-template-columns:100px 90px minmax(0,1fr) 40px}}
@media(max-width:900px){.module-grid{grid-template-columns:1fr 1fr}.signal-strip{grid-template-columns:1fr auto}.signal-strip b{grid-column:1/-1;grid-row:2}.narrative-panel,.media-heading,.project-index-head,.contact-console{grid-template-columns:1fr}.contact-channels a{min-height:220px}.intel-list>a{grid-template-columns:90px 1fr 40px}.intel-list small{display:none}}
@media(max-width:560px){.module-grid,.module-grid-4,.catalog-grid,.contact-channels{grid-template-columns:1fr}.signal-strip{gap:.7rem;padding:1.2rem 6vw}.signal-strip i{display:none}.system-module,.media-module{min-height:320px}.system-module h2{margin-top:4.5rem}.narrative-panel{padding:6rem 6vw}.console-head{display:grid}.console-inputs{grid-template-columns:1fr 1fr}.console-inputs a{grid-column:1/-1}.catalog-card{min-height:300px}.catalog-card h2{margin-top:5rem}.media-heading,.project-index-head{padding:5rem 6vw 2.5rem}.project-index>a{grid-template-columns:40px 1fr;gap:1rem;min-height:100px}.project-index i{display:none}.intel-list{padding-inline:0}.intel-head{grid-template-columns:1fr;padding:0 6vw 2rem}.intel-list>a{grid-template-columns:1fr 42px;gap:.8rem;padding:1.2rem 6vw}.intel-list time{grid-column:1/-1}.intel-list h2{padding:.4rem 0}.contact-channels a{min-height:190px}.contact-console-copy{padding:4rem 6vw}}

/* Professional Thai typography system v5 */
:where(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea,label,li) {
  font-family: var(--font-sans);
}

:where(h1,h2,h3,h4,h5,h6) {
  text-wrap: balance;
}

:where(p,li) {
  text-wrap: pretty;
}

.desktop-nav,
.header-cta,
.button,
.mobile-dock,
.field-label,
.assessment-controls button,
.result-actions > * {
  font-weight: 600;
}

html[lang="th"] body {
  line-height: 1.72;
  word-break: normal;
  line-break: loose;
}

html[lang="th"] :where(h1,h2,h3,h4,h5,h6) {
  font-weight: 300;
  line-height: 1.13;
  letter-spacing: -.018em;
}

html[lang="th"] :where(p,li) {
  line-height: 1.82;
}

html[lang="th"] .hero h1 {
  line-height: 1.08;
  letter-spacing: -.022em;
}

html[lang="th"] .inner-hero h1 {
  max-width: 980px;
  line-height: 1.08;
  letter-spacing: -.022em;
}

html[lang="th"] :where(.intro-grid h2,.narrative-panel h2,.media-heading h2,.project-index-head h2,.contact-console-copy h2,.social-intro h2) {
  line-height: 1.12;
  letter-spacing: -.018em;
}

html[lang="th"] :where(
  .desktop-nav,
  .header-cta,
  .button,
  .mobile-dock,
  .system-strip h3,
  .process-list h3,
  .assessment-sequence li,
  .choice-grid span,
  .priority-grid span,
  .field-label,
  .assessment-controls button,
  .result-actions > *,
  .console-inputs > *,
  .intel-list h2,
  .project-index span,
  .contact-channels b
) {
  font-family: var(--font-sans);
  letter-spacing: 0;
}

html[lang="th"] :where(.desktop-nav,.header-cta,.button,.mobile-dock) {
  font-size: .9rem;
  font-weight: 600;
}

html[lang="th"] :where(.choice-grid span,.priority-grid span,.field-label,.assessment-sequence li,.console-inputs > *) {
  font-size: .88rem;
  font-weight: 400;
  line-height: 1.55;
  text-transform: none;
}

html[lang="th"] :where(.inner-card p,.system-module p,.catalog-card p,.contact-console-copy p,.social-intro p) {
  font-size: 1rem;
  line-height: 1.82;
}

html[lang="th"] .intel-list h2 {
  line-height: 1.32;
}

@media(max-width:560px) {
  html[lang="th"] .header-cta,
  html[lang="en"] .header-cta { font-size:0; }
  html[lang="th"] .header-cta span,
  html[lang="en"] .header-cta span { font-size:1.2rem; }

  html[lang="th"] .hero h1 {
    font-size: clamp(2.8rem, 13vw, 4.5rem);
    line-height: 1.1;
  }

  html[lang="th"] .inner-hero h1 {
    font-size: clamp(2.75rem, 13.5vw, 4.6rem);
    line-height: 1.1;
  }

  html[lang="th"] :where(.narrative-panel h2,.media-heading h2,.project-index-head h2,.contact-console-copy h2) {
    line-height: 1.14;
  }

  html[lang="th"] .mobile-dock a {
    font-size: .72rem;
    line-height: 1.25;
  }
}

/* Contact location system / v5 */
.page-contact .contact-console {
  position: relative;
  isolation: isolate;
}

.page-contact .contact-console::before {
  content: "CONTACT PROTOCOL / ACTIVE";
  position: absolute;
  z-index: 2;
  top: 1.2rem;
  right: 1.5rem;
  color: rgba(216,182,92,.7);
  font: 600 .52rem/1 'IBM Plex Mono',monospace;
  letter-spacing: .15em;
  pointer-events: none;
}

.location-console {
  display: grid;
  grid-template-columns: minmax(0,1.28fr) minmax(390px,.72fr);
  min-height: 760px;
  color: #f7f4eb;
  background: #031810;
  border-top: 1px solid rgba(216,182,92,.28);
  border-bottom: 1px solid rgba(216,182,92,.28);
}

.location-map {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  background:
    linear-gradient(rgba(216,182,92,.065) 1px,transparent 1px),
    linear-gradient(90deg,rgba(216,182,92,.065) 1px,transparent 1px),
    #08261b;
  background-size: 72px 72px;
}

.location-map::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg,rgba(2,17,11,.08),rgba(2,17,11,0) 60%,rgba(2,17,11,.38));
}

.location-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) sepia(.18) hue-rotate(82deg) saturate(.7) contrast(1.04);
}

.map-hud {
  position: absolute;
  z-index: 3;
  top: 1.5rem;
  left: 1.5rem;
  display: grid;
  gap: .5rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(216,182,92,.48);
  background: rgba(2,18,12,.86);
  backdrop-filter: blur(12px);
  font: 600 .54rem/1.25 'IBM Plex Mono',monospace;
  letter-spacing: .13em;
}

.map-hud span { color: #d8b65c; }
.map-hud b { color: rgba(255,255,255,.72); font-weight: 500; }

.map-scan {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: 108px;
  height: 108px;
  border: 1px solid rgba(216,182,92,.72);
  border-radius: 50%;
  transform: translate(-50%,-50%);
  pointer-events: none;
}

.map-scan::before,
.map-scan::after {
  content: "";
  position: absolute;
  inset: 50%;
  background: #d8b65c;
  transform: translate(-50%,-50%);
}
.map-scan::before { width: 1px; height: 150%; }
.map-scan::after { width: 150%; height: 1px; }

.location-data {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(3rem,5vw,6rem) clamp(2rem,4vw,5rem);
  background:
    radial-gradient(circle at 100% 0,rgba(216,182,92,.12),transparent 34%),
    #041d14;
}

.location-data::before,
.location-data::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-color: #d8b65c;
  border-style: solid;
  pointer-events: none;
}
.location-data::before { top: 1.2rem; right: 1.2rem; border-width: 1px 1px 0 0; }
.location-data::after { bottom: 1.2rem; left: 1.2rem; border-width: 0 0 1px 1px; }

.location-data > span {
  color: #d8b65c;
  font: 600 .56rem/1 'IBM Plex Mono',monospace;
  letter-spacing: .16em;
}

.location-data h2 {
  max-width: 540px;
  margin: 2.2rem 0 3.5rem;
  font-size: clamp(2.7rem,4.3vw,5.4rem);
  font-weight: 300;
  line-height: .98;
  letter-spacing: -.04em;
}

.location-record {
  display: grid;
  grid-template-columns: 118px 1fr;
  gap: 1.4rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(216,182,92,.22);
}

.location-record small {
  color: #d8b65c;
  font: 600 .52rem/1.4 'IBM Plex Mono',monospace;
  letter-spacing: .12em;
}

.location-record address,
.location-record p {
  margin: 0;
  color: rgba(255,255,255,.76);
  font-size: .96rem;
  font-style: normal;
  line-height: 1.75;
}

.location-actions {
  display: grid;
  margin-top: auto;
  padding-top: 3rem;
}

.location-actions a {
  display: grid;
  grid-template-columns: 1fr 54px;
  align-items: center;
  min-height: 60px;
  border: 1px solid rgba(216,182,92,.3);
  border-bottom: 0;
  transition: color .25s,background .25s;
}
.location-actions a:last-child { border-bottom: 1px solid rgba(216,182,92,.3); }
.location-actions a span { padding: 0 1.1rem; }
.location-actions a b {
  display: grid;
  place-items: center;
  align-self: stretch;
  border-left: 1px solid rgba(216,182,92,.3);
  color: #d8b65c;
  font-weight: 400;
}
.location-actions a:hover { color: #061a12; background: #d8b65c; }
.location-actions a:hover b { color: #061a12; border-color: rgba(6,26,18,.22); }

.location-note {
  margin: 1.4rem 0 0;
  color: rgba(255,255,255,.42);
  font-size: .72rem;
  line-height: 1.65;
}

@media(max-width:980px) {
  .location-console { grid-template-columns: 1fr; min-height: 0; }
  .location-map { min-height: 58vw; }
  .location-data { min-height: 630px; }
}

@media(max-width:560px) {
  .page-contact .contact-console::before { display: none; }
  .location-map { min-height: 112vw; }
  .location-map::after { background: linear-gradient(180deg,rgba(2,17,11,.05),rgba(2,17,11,.38)); }
  .map-hud { top: 1rem; left: 1rem; }
  .map-scan { width: 78px; height: 78px; }
  .location-data { min-height: 0; padding: 4rem 6vw 5rem; }
  .location-data h2 { margin: 1.7rem 0 2.7rem; font-size: clamp(2.65rem,12vw,4rem); line-height: 1.06; }
  .location-record { grid-template-columns: 1fr; gap: .7rem; }
  .location-record address,.location-record p { font-size: .92rem; }
  .location-actions { padding-top: 2.5rem; }
  .location-actions a { min-height: 58px; font-size: .82rem; }
}

@media(prefers-reduced-motion:no-preference) {
  .map-scan { animation: gdc-map-pulse 3.4s ease-out infinite; }
}

@keyframes gdc-map-pulse {
  0%,35% { box-shadow: 0 0 0 0 rgba(216,182,92,.35); }
  75%,100% { box-shadow: 0 0 0 34px rgba(216,182,92,0); }
}
