﻿@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0");

:root {
  --bg:#525B44;
  --bg-2:#5A6C57;
  --surface:#61735d;
  --surface-2:#647963;
  --card:rgba(255,255,255,.06);
  --card-strong:rgba(255,255,255,.1);
  --line:rgba(211,241,223,.16);
  --line-strong:rgba(211,241,223,.28);
  --text:#F4FBF6;
  --muted:rgba(244,251,246,.75);
  --muted-2:rgba(244,251,246,.56);
  --mint:#D3F1DF;
  --sage:#85A98F;
  --forest:#5A6C57;
  --dark:#525B44;
  --shadow:0 24px 80px rgba(12,18,11,.22);
  --radius:28px;
  --radius-sm:18px;
  --container:min(1200px, calc(100vw - 48px));
  --sans:'DM Sans', system-ui, sans-serif;
  --serif:'Instrument Serif', Georgia, serif;
  --display:'Monoton', system-ui, sans-serif;
  --ease:cubic-bezier(.2,.65,.2,1);
  --page-bg-image:url("https://images.unsplash.com/photo-1759265212005-4ed3ec0afb9f?q=80&w=627&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; color:var(--text); background-color:var(--bg); background-image:
  linear-gradient(180deg, rgba(82,91,68,.9) 0%, rgba(82,91,68,.92) 42%, rgba(76,86,64,.94) 100%),
  radial-gradient(circle at top left, rgba(133,169,143,.22), transparent 32%),
  radial-gradient(circle at 85% 20%, rgba(211,241,223,.1), transparent 18%),
  var(--page-bg-image);
  background-size:auto, auto, auto, cover;
  background-position:center, top left, 85% 20%, center var(--page-bg-y, 0%);
  background-repeat:no-repeat;
  background-attachment:scroll, scroll, scroll, scroll;
  font:400 16px/1.7 var(--sans); overflow-x:hidden;
}
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
video { display:block; width:100%; }
.container { width:var(--container); margin:0 auto; position:relative; z-index:1; }
.section-pad-top { padding-top:106px; }
.section-pad { padding:86px 0; }
.section-pad-sm { padding:58px 0 78px; }
.overline, .section-index { margin:0 0 18px; font-size:.76rem; line-height:1.2; text-transform:uppercase; letter-spacing:.18em; color:var(--sage); font-weight:700; }
.section-index { font-family:var(--sans); }
h1, h2, h3, blockquote { margin:0; font-weight:400; line-height:1.05; letter-spacing:0; font-family:var(--display); }
h1 { font-size:clamp(3.6rem, 8vw, 6.7rem); }
h2 { font-size:clamp(2.4rem, 5vw, 4.35rem); }
h3 { font-size:clamp(1.45rem, 2vw, 1.9rem); }
p { margin:0 0 18px; color:var(--muted); }
em { color:var(--mint); font-style:italic; }
.button, .button-ghost {
  display:inline-flex; align-items:center; gap:10px; padding:14px 22px; border-radius:999px; border:1px solid var(--line-strong);
  background:var(--mint); color:#223225; font-weight:700; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.button:hover, .button-ghost:hover { transform:translateY(-2px); box-shadow:0 16px 38px rgba(0,0,0,.18); }
.button-small { padding:12px 18px; font-size:.92rem; }
.button-ghost { background:transparent; color:var(--text); }
.text-link { display:inline-flex; align-items:center; gap:10px; color:var(--mint); font-weight:600; }
.site-header .button { background:#525B44; color:#F4FBF6; border-color:#525B44; }
.site-header { position:fixed; top:0; left:0; right:0; z-index:50; background:#85A98F; border-bottom:1px solid rgba(82,91,68,.24); transition:background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.site-header.is-scrolled { background:#85A98F; border-color:rgba(82,91,68,.32); box-shadow:0 8px 30px rgba(0,0,0,.16); }
.header-inner { min-height:86px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; }
.brand img { width:206px; height:auto; }
.desktop-nav { display:flex; justify-content:center; gap:26px; align-items:center; }
.nav-link { font-size:.95rem; color:rgba(82,91,68,.78); position:relative; padding:6px 0; font-weight:700; }
.nav-link:hover, .nav-link.is-active { color:#525B44; }
.nav-link.is-active::after, .nav-link:hover::after { content:''; position:absolute; left:0; right:0; bottom:-10px; height:1px; background:#525B44; }
.minor-link { font-size:.82rem; opacity:.9; }
.menu-toggle { display:none; }
.mobile-menu { position:absolute; inset:100% 0 auto; background:#85A98F; border-bottom:1px solid rgba(82,91,68,.24); }
.mobile-menu-inner { display:flex; flex-direction:column; padding:24px 0 32px; }
.mobile-menu-inner .button { margin-top:18px; align-self:flex-start; }
.mobile-link { font:700 1.25rem/1.2 var(--sans); padding:16px 0; border-bottom:1px solid rgba(82,91,68,.24); }
.mobile-link, .mobile-link.is-active { color:#525B44; }
.hero, .page-hero { position:relative; overflow:hidden; isolation:isolate; }
.hero-dark {
  --hero-bg:url("https://images.unsplash.com/photo-1735615479490-237b941e996a?q=80&w=1332&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding-bottom:78px;
}
.about-hero {
  --hero-bg:url("https://images.unsplash.com/photo-1734784547175-e02d14fff45c?q=80&w=1332&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding-bottom:72px;
}
.service-hero {
  --hero-bg:url("https://images.unsplash.com/photo-1706938906893-51e9acf67f76?q=80&w=1332&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding-bottom:72px;
}
.case-hero {
  --hero-bg:url("https://images.unsplash.com/photo-1705911292196-d64e7742b4f9?q=80&w=1332&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding-bottom:72px;
}
.hero-dark::before, .about-hero::before, .service-hero::before, .case-hero::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(180deg, rgba(82,91,68,.54) 0%, rgba(82,91,68,.42) 52%, rgba(82,91,68,.72) 100%), var(--hero-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 180px), transparent 100%);
  mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 180px), transparent 100%);
}
.hero-marquee { position:relative; z-index:2; width:100%; overflow:hidden; margin:0 0 34px; border-block:1px solid rgba(211,241,223,.2); background:rgba(82,91,68,.22); }
.hero-marquee-track { display:flex; width:max-content; gap:72px; animation:captionMarquee 32s linear infinite; }
.hero-marquee span { flex:0 0 auto; white-space:nowrap; padding:22px 0; color:var(--text); font-family:var(--display); font-size:clamp(3rem, 7vw, 6.4rem); line-height:1.05; letter-spacing:0; font-weight:400; }
.hero-marquee + .hero-grid { padding-top:0; }
@keyframes captionMarquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.grid-backdrop { position:relative; overflow:hidden; }
.grid-backdrop::before { display:none; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:34px 44px; align-items:start; padding-top:70px; }
.hero-copy { padding:0 0 24px; }
.hero-dark .hero-copy { grid-column:1 / -1; max-width:980px; }
.hero-dark .hero-lede { max-width:980px; }
.hero-lede { max-width:700px; font-size:1.1rem; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin:30px 0 34px; }
.brand-row { display:grid; gap:12px; color:var(--muted-2); font-size:.85rem; }
.brand-list { display:flex; flex-wrap:wrap; gap:24px; color:var(--muted); letter-spacing:.06em; font-weight:700; }
.hero-side { display:grid; gap:18px; }
.hero-image-card, .image-shell, .video-shell, .case-image, .preview-panel, .story-visual-sticky, .contact-side-image, .stats-visual { background:var(--card); border:1px solid var(--line); border-radius:30px; box-shadow:var(--shadow); overflow:hidden; }
.hero-image-card img, .image-shell img, .case-image img, .preview-panel img, .story-visual-sticky img, .contact-side-image img { width:100%; height:100%; object-fit:cover; min-height:260px; }
.media-backdrop { position:absolute; inset:0; pointer-events:none; overflow:hidden; opacity:.24; }
.media-backdrop img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(.86) brightness(.9); transform:scale(1.04); }
.media-backdrop::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(82,91,68,.9), rgba(82,91,68,.6)), linear-gradient(180deg, rgba(82,91,68,.18), rgba(82,91,68,.72)); }
.video-shell img, .planet-shell img, .stats-visual img { width:100%; height:100%; object-fit:cover; min-height:260px; }
.planet-shell.image-shell { padding:0; display:block; }
.planet-shell.image-shell p { padding:14px 18px 18px; margin:0; text-align:center; }
.stats-visual { display:grid; grid-template-rows:minmax(0,1fr) auto; }
.visual-caption { position:relative; z-index:2; align-self:end; width:100%; }
.sentence-stack { display:grid; gap:12px; }
.hero-grid > .sentence-stack { grid-column:1 / -1; grid-template-columns:repeat(3, minmax(0, 1fr)); align-items:stretch; margin-top:2px; }
.sentence-card, .sentence-rail-item {
  border:1px solid var(--line); background:rgba(255,255,255,.04); border-radius:22px; padding:20px 22px; transition:all .35s var(--ease); cursor:pointer;
}
.sentence-card span, .sentence-rail-item span { display:block; color:var(--sage); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin-bottom:10px; }
.sentence-card h3 { font-family:var(--display); font-weight:400; font-size:clamp(1.32rem, 1.75vw, 1.58rem); line-height:1.22; margin-bottom:0; letter-spacing:0; }
.sentence-card p, .sentence-rail-item p { max-height:0; opacity:0; overflow:hidden; margin:0; transition:all .35s var(--ease); }
.sentence-card:is(:hover,:focus,.is-active), .sentence-rail-item:is(:hover,:focus,.is-active) { background:rgba(211,241,223,.08); border-color:var(--line-strong); transform:translateY(-2px); }
.sentence-card:is(:hover,:focus,.is-active) p, .sentence-rail-item:is(:hover,:focus,.is-active) p { max-height:130px; opacity:1; margin-top:12px; }
.hero-static-cards .sentence-card { cursor:default; }
.hero-static-cards .sentence-card p { max-height:none; opacity:1; margin-top:12px; }
.hero-static-cards .sentence-card:is(:hover,:focus,.is-active) { transform:none; }
.two-col-heading, .section-head { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,.75fr); gap:34px; align-items:end; margin-bottom:28px; }
.hover-showcase .two-col-heading { grid-template-columns:1fr; gap:18px; align-items:start; }
.hover-showcase .two-col-heading > div, .hover-showcase .two-col-heading > p { width:100%; max-width:none; }
.showcase-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:28px; align-items:stretch; }
.preview-list { display:grid; gap:10px; }
.preview-trigger {
  text-align:left; width:100%; border:1px solid var(--line); background:rgba(255,255,255,.03); color:var(--text); padding:18px 20px; border-radius:20px;
  font:700 clamp(1rem, 2vw, 1.2rem)/1.2 var(--sans); cursor:pointer; transition:all .25s var(--ease);
}
.preview-trigger:hover, .preview-trigger:focus, .preview-trigger.is-active { border-color:var(--mint); background:rgba(211,241,223,.08); transform:translateX(4px); }
.preview-panel { display:grid; grid-template-rows:minmax(0,1fr) auto; transition:margin .25s var(--ease); }
.preview-panel img { height:440px; }
.preview-copy { padding:22px 22px 26px; }
.service-ledger { display:grid; gap:0; position:relative; z-index:1; }
.service-row { display:grid; grid-template-columns:60px minmax(0,1fr) minmax(0,1fr) 24px; gap:16px; align-items:center; padding:22px 24px; border:1px solid var(--line); background:rgba(255,255,255,.035); }
.service-row + .service-row { border-top:0; }
.service-row:first-child { border-radius:24px 24px 0 0; }
.service-row:last-child { border-radius:0 0 24px 24px; }
.service-row h3 { font-family:var(--display); font-size:clamp(1.3rem, 1.8vw, 1.62rem); font-weight:400; line-height:1.22; }
.service-number, .row-arrow { color:var(--sage); font-weight:700; }
.service-row:hover { background:rgba(211,241,223,.08); }
.stats-grid, .planet-grid, .page-hero-grid, .service-featured-grid, .contact-grid, .case-feature-grid, .operating-grid, .story-scroll-grid, .immersive-grid { display:grid; gap:28px; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:start; }
.stats-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; margin-top:28px; }
.stats-list div, .outcome-grid div { padding:18px 20px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.04); }
.stats-list strong { display:block; font-family:var(--serif); font-size:2rem; color:var(--mint); line-height:1; }
.outcome-grid strong { display:block; font-family:var(--display); font-weight:400; font-size:clamp(1.34rem, 2vw, 1.72rem); color:var(--mint); line-height:1.18; letter-spacing:0; }
.stats-visual { padding:14px; }

.visual-caption { display:flex; justify-content:space-between; gap:18px; padding:0 12px 8px; font-size:.85rem; color:var(--muted); }
.card-stage { min-height:340px; position:relative; }
.align-card {
  position:absolute; top:20px; width:calc(33.333% - 18px); max-width:360px; min-height:220px; padding:28px; border-radius:28px; background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.04)); border:1px solid var(--line); box-shadow:var(--shadow); transition:transform .85s var(--ease), left .85s var(--ease), top .85s var(--ease), opacity .4s ease;
}
.align-card span { display:inline-flex; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong); align-items:center; justify-content:center; color:var(--mint); margin-bottom:18px; font-weight:700; }
.align-card h3 { font-size:1.5rem; margin-bottom:12px; }
.card-one { left:8%; top:70px; transform:rotate(-6deg); }
.card-two { left:20%; top:105px; transform:rotate(2deg); }
.card-three { left:32%; top:140px; transform:rotate(6deg); }
.card-stage.is-aligned .card-one { left:0; top:40px; transform:none; }
.card-stage.is-aligned .card-two { left:calc(33.333% + 8px); top:40px; transform:none; }
.card-stage.is-aligned .card-three { left:calc(66.666% + 16px); top:40px; transform:none; }
.planet-shell { display:grid; justify-items:center; gap:16px; padding:28px; border:1px solid var(--line); border-radius:30px; background:rgba(255,255,255,.04); box-shadow:var(--shadow); }
.planet { position:relative; width:min(390px, 76vw); aspect-ratio:1; animation:spin 15s linear infinite; }
.planet-shell:hover .planet, .planet-shell:focus-within .planet { animation-play-state:paused; }
@keyframes spin { to { transform:rotate(360deg); } }
.planet-core { position:absolute; inset:20%; border-radius:50%; background:radial-gradient(circle at 34% 30%, rgba(211,241,223,.95), rgba(133,169,143,.45) 30%, rgba(90,108,87,.45) 54%, rgba(211,241,223,.08) 74%); box-shadow:inset 0 0 30px rgba(255,255,255,.14), 0 0 70px rgba(211,241,223,.18); }
.orbit { position:absolute; inset:10%; border-radius:50%; border:1px solid rgba(211,241,223,.2); }
.orbit-two { inset:6% 18%; transform:rotate(70deg); }
.satellite { position:absolute; width:16px; height:16px; border-radius:50%; background:var(--mint); box-shadow:0 0 18px rgba(211,241,223,.65); }
.satellite-one { top:8%; left:50%; }
.satellite-two { bottom:22%; right:13%; width:12px; height:12px; }
.case-feature-grid { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); align-items:center; }
.case-image img { min-height:440px; }
.outcome-grid { display:grid; grid-template-columns:1fr; gap:14px; margin:26px 0; }
.cta-band { position:relative; }
.cta-band-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:28px; padding:38px; border-radius:30px; background:linear-gradient(120deg, rgba(211,241,223,.1), rgba(255,255,255,.05)); border:1px solid var(--line); box-shadow:var(--shadow); }
.page-title h1 { max-width:9.5ch; }
.page-intro { padding-top:44px; }
.page-hero .page-intro { padding-top:0; }
.page-hero-grid > .page-intro:only-child { grid-column:1 / -1; max-width:820px; }
.page-hero-grid > .page-title:only-child { grid-column:1 / -1; max-width:820px; }
.contact-hero-grid .page-title h1 { max-width:12ch; }
.contact-side-image { overflow:hidden; border-radius:28px; margin-bottom:34px; }
.contact-side-image img { width:100%; min-height:320px; object-fit:cover; }
.manifesto-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:34px; }
blockquote { font-size:clamp(2rem, 4vw, 3.2rem); margin-bottom:20px; }
.sentence-rail { display:grid; gap:16px; }
.sentence-rail-item { position:relative; padding-right:64px; }
.rail-arrow { position:absolute; top:24px; right:24px; display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; border:1px solid var(--line-strong); border-radius:50%; color:var(--mint); transition:transform .25s var(--ease), background .25s var(--ease); }
.sentence-rail-item:is(:hover,:focus,.is-active) .rail-arrow { transform:rotate(90deg); background:rgba(211,241,223,.08); }
.principle-grid, .detail-grid, .case-card-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
.principle-grid { position:relative; }
.specialized-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
.principle-card, .detail-card, .case-card, .service-bullet, .operating-step { border:1px solid var(--line); background:rgba(255,255,255,.04); border-radius:24px; padding:24px; box-shadow:var(--shadow); }
.principle-card { position:relative; overflow:visible; transition:transform .25s var(--ease), border-color .25s var(--ease); }
.principle-card:hover { transform:translateY(-4px); border-color:var(--line-strong); }
.principle-card span { position:relative; z-index:1; display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:50%; border:1px solid var(--line-strong); color:var(--mint); margin-bottom:16px; font-weight:700; background:rgba(18,26,20,.96); }
.principle-card::before { content:""; position:absolute; top:46px; left:68px; width:calc(100% + 18px - 44px); height:2px; background:linear-gradient(90deg, rgba(211,241,223,.68), rgba(211,241,223,.2)); pointer-events:none; }
.principle-card:nth-child(3n)::before { display:none; }
.principle-card h3, .detail-card h3, .service-bullet h3, .case-card h3 { font-family:var(--display); font-weight:400; line-height:1.24; margin-bottom:12px; font-size:clamp(1.14rem, 1.35vw, 1.26rem); }
.principle-card h3 { font-size:clamp(1.42rem, 2.05vw, 1.78rem); line-height:1.16; }
.service-bullet h3 { font-size:clamp(1.42rem, 2vw, 1.76rem); line-height:1.16; }
.service-featured-grid { align-items:center; }
.service-bullets { display:grid; gap:16px; }
.service-bullet { display:grid; grid-template-columns:54px 1fr; gap:16px; align-items:start; }
.service-icon, .step-icon, .contact-icon { font-family:"Material Symbols Outlined"; font-weight:normal; font-style:normal; line-height:1; text-transform:none; letter-spacing:0; display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:16px; border:1px solid var(--line-strong); color:var(--mint); background:rgba(211,241,223,.07); font-size:1.35rem; }
.service-bullet > span, .operating-step > div > span, .operating-step > span { color:var(--mint); font-weight:700; }
.operating-steps { display:grid; gap:16px; }
.operating-step { display:grid; grid-template-columns:54px 1fr; gap:16px; align-items:start; }
.operating-image { margin-top:28px; min-height:320px; }
.story-scroll-grid { align-items:start; }
.story-steps { display:grid; gap:28px; }
.story-step { padding:22px 24px; border-left:2px solid var(--line); transition:border-color .2s ease, transform .2s ease; }
.story-step.is-active { border-color:var(--mint); transform:translateX(4px); }
.story-step span { display:block; margin-bottom:12px; color:var(--sage); font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }
.story-step h3 { font-size:2rem; margin-bottom:12px; }
.story-step-image { display:none; width:100%; height:320px; object-fit:cover; border-radius:22px; border:1px solid var(--line); margin-top:18px; box-shadow:var(--shadow); }
.story-visual { position:relative; min-height:100%; }
.story-visual-sticky { position:relative; top:0; min-height:540px; will-change:transform; }
.story-visual-sticky img { height:540px; object-fit:cover; }
.case-card { padding:0; overflow:hidden; }
.case-card img { width:100%; height:220px; object-fit:cover; }
.case-card div { padding:22px; }
.case-grid-section .case-card-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
.case-grid-section .case-card img { height:280px; }
.case-grid-section .case-card h3 { font-size:clamp(1.38rem, 1.9vw, 1.72rem); line-height:1.18; }
.package-card { display:flex; min-height:100%; flex-direction:column; gap:16px; }
.package-card h3 { margin-bottom:0; font-size:clamp(1.36rem, 1.85vw, 1.68rem); line-height:1.18; }
.package-card p { margin:0; }
.package-card ul { display:grid; gap:8px; margin:0; padding-left:18px; color:var(--muted); }
.package-price { margin-top:auto !important; padding-top:14px; border-top:1px solid var(--line); color:var(--mint) !important; font-weight:800; font-size:1.05rem; }
.contact-list { display:grid; gap:18px; margin:28px 0; }
.contact-list > div { display:grid; grid-template-columns:54px 1fr; gap:14px; align-items:start; border-bottom:1px solid var(--line); padding-bottom:16px; }
.contact-list span:not(.contact-icon) { display:block; color:var(--sage); font-size:.82rem; text-transform:uppercase; letter-spacing:.14em; margin-bottom:6px; font-weight:700; }
.contact-list p { margin:0; }
.contact-branches { display:grid; gap:24px; margin-top:28px; }
.contact-branch { border:1px solid var(--line); border-radius:24px; padding:22px; background:rgba(255,255,255,.035); }
.contact-branch h3 { font-size:clamp(1.25rem, 1.8vw, 1.56rem); margin-bottom:10px; }
.contact-branch .contact-list { margin:0; gap:14px; }
.contact-branch .contact-list > div:last-child { border-bottom:0; padding-bottom:0; }
.contact-form-wrap { border:1px solid var(--line); background:rgba(255,255,255,.06); border-radius:28px; padding:24px; box-shadow:var(--shadow); }
.contact-form label { display:block; font-size:.92rem; color:var(--text); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form input, .contact-form textarea, .contact-form select { width:100%; margin:8px 0 18px; padding:14px 16px; border:1px solid var(--line); background:rgba(255,255,255,.04); border-radius:14px; color:var(--text); outline:none; font:inherit; }
.contact-form textarea { resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--mint); box-shadow:0 0 0 3px rgba(211,241,223,.1); }
.contact-form select option { color:#233122; }
.form-consent { display:grid; grid-template-columns:18px 1fr; gap:12px; margin:8px 0 22px; }
.form-consent input { width:18px; margin:4px 0 0; }
.form-consent label { color:var(--muted); }
.form-consent a { text-decoration:underline; }
.honeypot { position:absolute; left:-9999px; }
.form-status { display:none; margin-bottom:18px; padding:14px 16px; background:rgba(211,241,223,.14); border:1px solid var(--line); border-radius:14px; color:var(--text); }
.form-status.is-visible { display:block; }
.legal-title { padding-top:70px; }
.legal-grid { display:grid; grid-template-columns:260px minmax(0,1fr); gap:40px; align-items:start; }
.legal-nav { position:sticky; top:110px; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:22px; overflow:hidden; background:rgba(255,255,255,.04); }
.legal-nav a { padding:12px 16px; border-bottom:1px solid var(--line); font-size:.92rem; color:var(--muted); }
.legal-nav a:last-child { border-bottom:0; }
.legal-nav a:hover { color:var(--text); background:rgba(255,255,255,.04); }
.legal-article { border:1px solid var(--line); background:rgba(255,255,255,.04); padding:26px 28px; border-radius:26px; }
.legal-article h2 { font-family:var(--display); font-size:clamp(1.36rem, 1.85vw, 1.68rem); margin:34px 0 10px; letter-spacing:0; line-height:1.18; scroll-margin-top:120px; }
.legal-article p { color:var(--muted); }
.legal-notice { padding:18px; background:rgba(211,241,223,.08); border-left:3px solid var(--sage); border-radius:14px; }
.site-footer { position:relative; margin-top:38px; padding:92px 0 0; border-top:1px solid var(--line); overflow:hidden; }
.footer-watermark { position:absolute; inset:auto 0 -12px 0; opacity:.08; pointer-events:none; display:flex; justify-content:center; }
.footer-watermark img { width:min(1200px, 92vw); }
.footer-grid { position:relative; display:grid; grid-template-columns:2fr 1fr 1fr 1.1fr; gap:48px; padding-bottom:72px; }
.footer-brand img { width:190px; margin-bottom:18px; }
.footer-brand p { max-width:360px; }
.footer-label { margin:0 0 16px; color:var(--sage); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; }
.footer-column { display:flex; flex-direction:column; gap:10px; }
.footer-column a, .footer-column span { color:var(--muted); }
.branch-contact { display:grid; gap:4px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.branch-contact:last-child { padding-bottom:0; border-bottom:0; }
.branch-contact span { color:var(--sage); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.branch-contact p { margin:0; color:var(--muted); }
.footer-bottom { position:relative; display:flex; justify-content:space-between; gap:16px; padding:22px 0; border-top:1px solid var(--line); color:var(--muted-2); font-size:.82rem; }
.reveal { opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.12s; }
.reveal-delay-2 { transition-delay:.24s; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .hero-marquee-track { animation:none; transform:none; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
@media (min-width: 1101px) {
  .hero-grid { align-items:stretch; }
  .hero-side,
  .hero-image-card { height:100%; }
  .hero-image-card img { min-height:0; height:100%; }
  .planet-section .planet-grid,
  .case-feature-grid { align-items:stretch; }
  .planet-section .planet-copy,
  .case-copy { display:flex; flex-direction:column; justify-content:center; min-height:560px; }
  .planet-section .planet-shell.image-shell { display:grid; grid-template-rows:minmax(0,1fr) auto; height:100%; min-height:560px; }
  .planet-section .planet-shell.image-shell img,
  .case-image img { min-height:0; height:100%; }
  .case-image { height:100%; min-height:100%; }
  .operating-grid { align-items:stretch; }
  .operating-intro { display:flex; flex-direction:column; }
  .operating-image { flex:1; min-height:360px; }
  .operating-image img { min-height:0; height:100%; }
  .service-featured-grid { align-items:stretch; }
  .service-featured-grid > .image-shell { height:100%; min-height:100%; }
  .service-featured-grid > .image-shell img { min-height:0; height:100%; }
  .contact-section .contact-grid { align-items:stretch; }
  .contact-form-wrap { display:flex; min-height:100%; }
  .contact-form { display:flex; flex:1; flex-direction:column; }
  .contact-form > label { display:flex; flex:1; flex-direction:column; }
  .contact-form textarea { flex:1; }
  .contact-hero-grid { align-items:stretch; }
  .contact-hero-grid .page-title { display:flex; align-items:center; }
  .contact-hero-grid .contact-side-image { height:auto; margin-bottom:34px; }
  .contact-hero-grid .contact-side-image img { min-height:0; height:100%; }
}
@media (max-width: 1100px) {
  .desktop-nav, .header-cta { display:none; }
  .menu-toggle { display:flex; width:46px; height:46px; border:1px solid rgba(82,91,68,.36); background:rgba(82,91,68,.08); border-radius:50%; flex-direction:column; justify-content:center; gap:6px; padding:0 12px; }
  .menu-toggle span { display:block; height:1px; background:#525B44; transition:.25s; }
  .menu-toggle[aria-expanded='true'] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded='true'] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .header-inner { grid-template-columns:auto auto; justify-content:space-between; }
  .hero-grid, .stats-grid, .planet-grid, .page-hero-grid, .service-featured-grid, .contact-grid, .case-feature-grid, .operating-grid, .story-scroll-grid, .immersive-grid, .showcase-grid, .two-col-heading, .section-head, .manifesto-grid, .legal-grid { grid-template-columns:1fr; }
  .hero-grid > .sentence-stack { grid-template-columns:1fr; }
  .page-intro { padding-top:10px; }
  .service-row { grid-template-columns:50px 1fr 20px; }
  .service-row p { grid-column:2; }
  .service-row .row-arrow { grid-column:3; grid-row:1; }
  .story-visual { display:none; }
  .story-step-image { display:none; }
  .story-step.is-active .story-step-image { display:block; }
  .principle-grid, .detail-grid, .case-card-grid, .footer-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .footer-contact { grid-column:1 / -1; }
  .legal-nav { position:relative; top:auto; }
  .card-stage { min-height:1120px; }
  .align-card { width:min(100%, 560px); left:50% !important; transform:translateX(-50%) !important; }
  .card-one, .card-two, .card-three { top:20px; }
  .card-stage.is-aligned .card-one { top:20px; }
  .card-stage.is-aligned .card-two { top:410px; }
  .card-stage.is-aligned .card-three { top:800px; }
  .principle-card:nth-child(3n)::before { display:block; }
  .principle-card:nth-child(2n)::before { display:none; }
}
@media (max-width: 760px) {
  :root { --container:calc(100vw - 28px); }
  .hero-dark, .about-hero, .service-hero, .case-hero { padding-bottom:58px; }
  .hero-marquee { margin-bottom:28px; }
  .hero-marquee-track { gap:46px; }
  .hero-marquee span { padding:16px 0; font-size:clamp(2.15rem, 12vw, 4rem); }
  body { font-size:15px; background-attachment:scroll, scroll, scroll, scroll; }
  .section-pad-top { padding-top:82px; }
  .section-pad { padding:62px 0; }
  .section-pad-sm { padding:42px 0 58px; }
  .header-inner { min-height:76px; }
  .brand img { width:160px; }
  h1 { font-size:clamp(3rem, 15vw, 4.8rem); }
  h2 { font-size:clamp(2.2rem, 11vw, 3.4rem); }
  .hero-grid { padding-top:54px; gap:28px; }
  .hero-copy { padding-top:0; }
  .hero-actions, .visual-caption, .footer-bottom { flex-direction:column; align-items:flex-start; }
  .brand-list { gap:14px; }
  .preview-panel { margin:14px 0 18px; }
  .preview-panel img { height:320px; }
  .stats-list, .outcome-grid, .form-row, .principle-grid, .detail-grid, .case-card-grid, .footer-grid { grid-template-columns:1fr; }
  .case-grid-section .case-card-grid { grid-template-columns:1fr; }
  .cta-band-inner { grid-template-columns:1fr; }
  .contact-form-wrap, .video-shell, .image-shell, .hero-image-card, .preview-panel, .planet-shell, .stats-visual, .case-image, .contact-side-image, .story-visual-sticky { border-radius:24px; }
  .story-step h3 { font-size:1.65rem; }
  .card-stage { min-height:930px; }
  .align-card { max-width:none; width:100%; left:0 !important; transform:none !important; }
  .card-one, .card-two, .card-three { top:20px; }
  .card-stage.is-aligned .card-one { top:20px; }
  .card-stage.is-aligned .card-two { top:335px; }
  .card-stage.is-aligned .card-three { top:650px; }
  .principle-card::before { display:block; left:45px; top:68px; width:2px; height:calc(100% + 18px - 44px); background:linear-gradient(180deg, rgba(211,241,223,.68), rgba(211,241,223,.2)); }
  .principle-card:nth-child(2n)::before, .principle-card:nth-child(3n)::before { display:block; }
  .principle-card:last-child::before { display:none; }
}















.immersive-media .image-shell, .immersive-media .video-shell { min-height:420px; }
.immersive-media .image-shell img, .immersive-media .video-shell img { min-height:420px; height:100%; }
@media (max-width: 760px) { .immersive-media .image-shell, .immersive-media .video-shell, .immersive-media .image-shell img, .immersive-media .video-shell img { min-height:300px; } }
