:root {
  color-scheme: light;
  --ink: #112c2d;
  --ink-soft: #445f60;
  --deep: #092d32;
  --deeper: #061f23;
  --mint: #b9e9c9;
  --mint-bright: #c5f1d0;
  --cream: #f8f9f4;
  --paper: #ffffff;
  --line: #dde5de;
  --display: 'Manrope', 'DM Sans', system-ui, sans-serif;
  --body: 'DM Sans', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--body); -webkit-font-smoothing:antialiased; line-height:1.65; }
a { color:inherit; }
a:focus-visible, button:focus-visible { outline:3px solid #0a8e87; outline-offset:4px; }
img, svg { max-width:100%; }
button { font:inherit; }
::selection { background:#c0efc8; color:#063338; }
.container { max-width:1270px; padding:0 45px; margin:0 auto; }
.skip-link { position:absolute; left:18px; top:-80px; z-index:200; background:var(--mint); color:var(--deep); padding:10px 16px; border-radius:8px; }
.skip-link:focus { top:12px; }
.siteHeader { background:#fbfcf8; position:relative; z-index:40; border-bottom:1px solid #e5eae4; }
.navWrap { max-width:1370px; margin:auto; height:90px; padding:0 45px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.siteBrand, .footerBrand { display:inline-flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brandMark { display:inline-flex; align-items:center; justify-content:center; font-family:var(--display); font-size:29px; font-weight:800; letter-spacing:-.09em; color:#d2f5d7; background:var(--deep); width:47px; height:47px; border-radius:13px; line-height:1; }
.brandMark span { color:#7cca9f; }
.brandText { display:flex; flex-direction:column; font-size:12px; font-weight:600; letter-spacing:.12em; line-height:1.4; color:#193a38; }
.brandText strong { font-weight:800; }
.brandText small { font-size:8px; font-weight:700; letter-spacing:.21em; margin-top:4px; color:#748582; white-space:nowrap; }
.mainNav { display:flex; align-items:center; gap:34px; }
.mainNav > a { text-decoration:none; color:#3c5351; font-size:13px; font-weight:700; transition:color .2s ease; }
.mainNav > a:hover { color:#148579; }
.mainNav .navCTA { padding:13px 18px; color:#fff; background:#0f4745; border-radius:7px; font-size:12px; margin-left:5px; transition:background .2s, transform .2s; }
.mainNav .navCTA:hover { color:white; background:#146e63; transform:translateY(-1px); }
.navCTA span { padding-left:11px; font-size:15px; }
.menuToggle { display:none; background:transparent; border:0; padding:9px; color:var(--deep); cursor:pointer; }
.menuToggle span { display:block; width:23px; height:2px; background:currentColor; margin:5px 0; border-radius:2px; }
.hero { position:relative; overflow:hidden; background:radial-gradient(ellipse 85% 72% at 93% 25%, #12505a 0%, transparent 56%), linear-gradient(135deg, #08292e 0%, #0b363b 57%, #082a30 100%); color:#fff; isolation:isolate; }
.hero::after { content:""; pointer-events:none; position:absolute; inset:0; opacity:.17; z-index:-1; background-image:radial-gradient(circle,#78aca9 1px,transparent 1.4px); background-size:33px 33px; mask-image:linear-gradient(90deg,transparent 20%,black 100%); }
.heroDecoration { position:absolute; border:1px solid rgba(178,235,198,.12); border-radius:50%; pointer-events:none; }
.heroDecorationOne { width:800px; height:800px; right:-340px; top:-430px; }
.heroDecorationTwo { width:600px; height:600px; left:-425px; bottom:-410px; }
.heroLayout { display:grid; grid-template-columns:minmax(0, 1.13fr) minmax(0,.87fr); gap:30px; min-height:655px; align-items:center; position:relative; }
.heroCopy { padding:70px 0 94px; position:relative; z-index:3; }
.eyebrow { display:inline-flex; align-items:center; gap:12px; font-weight:800; font-size:10px; letter-spacing:.22em; line-height:1.5; }
.lightEyebrow { color:#c4e2d4; }
.darkEyebrow { color:#276d65; }
.eyebrowDot { width:7px; height:7px; flex-shrink:0; background:#9eddb7; border-radius:50%; }
.darkEyebrow .eyebrowDot { background:#168874; }
.heroIntro { color:#b9dacd; font-size:11px; font-weight:800; letter-spacing:.25em; margin:45px 0 13px; }
.hero h1 { font-family:var(--display); font-size:clamp(54px,5.35vw,86px); letter-spacing:-.083em; font-weight:800; line-height:1.105; margin:0; max-width:670px; }
.hero h1 em, .sectionTitle em, .contactCopy h2 em { color:var(--mint); font-family:Georgia,'Times New Roman',serif; letter-spacing:-.045em; font-weight:400; font-style:italic; }
.heroDescription { color:#c0d4d0; font-size:16px; line-height:1.9; max-width:495px; margin:30px 0 32px; }
.heroActions, .contactActions { display:flex; align-items:center; gap:29px; flex-wrap:wrap; }
.button { display:inline-flex; gap:28px; align-items:center; justify-content:center; text-decoration:none; border-radius:6px; padding:16px 19px 16px 23px; font-size:12px; line-height:1; font-weight:800; min-height:52px; transition:transform .2s, background .2s; }
.button:hover { transform:translateY(-3px); }
.button span { font-size:16px; font-weight:500; }
.buttonMint { background:var(--mint-bright); color:#0d3939; }
.buttonMint:hover { background:#edfff0; }
.textLink { display:inline-flex; align-items:center; gap:23px; font-size:12px; font-weight:800; text-decoration:none; padding-bottom:6px; border-bottom:1px solid; transition:gap .2s; white-space:nowrap; }
.textLink:hover { gap:31px; }
.textLinkLight { color:#e4f4e8; border-color:#547f7b; }
.textLinkDark { color:#123d3c; border-color:#639b89; }
.textLink span { font-size:17px; font-weight:400; }
.heroBottomNote { display:flex; align-items:center; gap:12px; font-size:10px; font-weight:700; letter-spacing:.08em; color:#8cafab; margin-top:67px; }
.heroPulse { height:17px; display:inline-flex; align-items:center; gap:3px; }
.heroPulse i { display:block; width:3px; border-radius:5px; background:#bdeccf; height:7px; }
.heroPulse i:nth-child(2) { height:16px; }
.heroPulse i:nth-child(3) { height:11px; }
.heroVisual { position:relative; align-self:stretch; display:flex; align-items:flex-end; justify-content:center; padding:45px 0 48px; }
.heroImageFrame { position:relative; width:min(100%,448px); height:535px; background:linear-gradient(145deg,#245e6b,#0c3d48 60%,#386b73); border:8px solid rgba(165,215,207,.13); border-radius:232px 232px 28px 28px; box-shadow:0 32px 75px #06181a82, inset 0 0 75px #5aaea02b; overflow:hidden; }
.heroImageFrame::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,rgba(5,30,32,.46),transparent 25%); }
.heroImageFallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 45% 23%, #3b8f94,transparent 45%),linear-gradient(145deg,#1b5e69,#0d323b); }
.heroImageFallback span { font-size:140px; font-weight:800; color:#8ac9c421; letter-spacing:-.13em; }
.heroPortrait { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
.heroOrbTop { position:absolute; font-size:80px; line-height:1; top:38px; right:-18px; color:#c8f3ce; animation:slowRotate 25s linear infinite; }
.floatingNote { position:absolute; z-index:5; bottom:85px; left:-42px; width:275px; display:flex; align-items:center; gap:13px; padding:16px 17px; border:1px solid #f8ffff49; border-radius:10px; background:#fff; box-shadow:0 17px 54px #001b1b54; color:#1f4140; }
.floatIcon { display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; border-radius:10px; color:#1b766b; background:#e1f4e6; font-size:25px; }
.floatingNote strong { display:block; font-size:9px; font-weight:800; letter-spacing:.11em; line-height:1.6; }
.floatingNote small { display:block; font-size:10px; color:#6b8581; line-height:1.6; margin-top:3px; }
.heroVerticalLabel { position:absolute; top:50%; right:-51px; transform:translateY(-50%) rotate(90deg); white-space:nowrap; color:#8ab4b3; font-size:8px; font-weight:800; letter-spacing:.25em; }
.heroVerticalLabel span { padding:0 9px; }
.heroIndex { position:absolute; right:25px; bottom:21px; color:#85a4a5; font-size:10px; letter-spacing:.2em; }
@keyframes slowRotate { to { transform:rotate(360deg); } }
.credentials { background:#eaf4e9; }
.credentialGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding-top:30px; padding-bottom:31px; }
.credential { display:flex; flex-direction:column; padding:8px 20px 5px 30px; min-height:67px; border-right:1px solid #c8dbcd; position:relative; }
.credential:first-child { padding-left:8px; }
.credential:last-child { border-right:0; }
.credentialIcon { position:absolute; color:#66a58d; font-size:14px; right:29px; top:1px; }
.credential strong { font-family:var(--display); font-size:18px; letter-spacing:-.04em; line-height:1.45; font-weight:800; color:#143e3a; }
.credential > span:last-child { font-size:11px; font-weight:600; color:#647f74; padding-top:5px; }
.section { padding:128px 0; }
.aboutSection { background:#fbfcf9; }
.aboutLayout { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:10%; align-items:center; }
.aboutArtwork { position:relative; padding:24px 35px 27px 0; }
.aboutImage { background:#d1e0d9; overflow:hidden; border-radius:175px 175px 10px 10px; height:485px; position:relative; }
.aboutImage img { width:100%; height:100%; display:block; position:relative; z-index:1; object-fit:cover; object-position:center; filter:saturate(.87); }
.aboutImageFallback { position:absolute; inset:0; padding:35px; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at top,#98caba,#285f5c); }
.aboutImageFallback span { font:800 clamp(32px,4vw,51px)/1.2 var(--display); letter-spacing:-.065em; color:#edfff0; }
.aboutArtwork:before { content:""; position:absolute; width:60%; height:73%; top:0; right:5px; border:1.5px solid #b1d3c3; border-radius:180px 180px 12px 12px; }
.aboutPhotoLabel { position:absolute; z-index:4; width:241px; right:-13px; bottom:0; padding:23px 26px; background:#bfe9cd; color:#123c39; box-shadow:0 16px 40px #0c403018; }
.aboutPhotoLabel span { display:block; font-size:9px; font-weight:800; letter-spacing:.21em; color:#357a65; margin-bottom:8px; }
.aboutPhotoLabel strong { font:800 18px/1.35 var(--display); letter-spacing:-.055em; }
.aboutMark { position:absolute; right:17px; top:41px; font-size:64px; line-height:1; color:#1a756c; }
.sectionTitle { font:800 clamp(37px,4.05vw,59px)/1.18 var(--display); letter-spacing:-.072em; color:#123b3b; margin:25px 0 0; }
.sectionTitle em { color:#237f70; }
.aboutCopy { padding:8px 0; }
.aboutLead { font-size:17px !important; color:#183e3c !important; font-weight:700; line-height:1.85 !important; margin-top:30px !important; }
.aboutCopy p { color:#61736d; font-size:14px; line-height:2; margin:20px 0 0; }
.underlinedLink { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; font-size:12px; font-weight:800; color:#134941; text-decoration:none; border-bottom:1px solid #337a69; padding-bottom:9px; transition:gap .2s; }
.underlinedLink:hover { gap:31px; }
.underlinedLink span { font-size:16px; }
.aboutCopy .underlinedLink { margin-top:29px; }
.expertiseSection { background:#ecf4ed; padding-top:110px; padding-bottom:120px; }
.sectionHeading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:48px; }
.sectionHeading > p { width:245px; flex-shrink:0; font-size:14px; line-height:1.9; color:#647c71; margin:0 12px 8px 0; }
.expertiseGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.expertiseCard { position:relative; background:#fff; border:1px solid #e0eae2; padding:26px 26px 31px; min-height:308px; display:flex; flex-direction:column; border-radius:4px; transition:transform .3s, box-shadow .3s, background .3s; }
.expertiseCard:hover { transform:translateY(-7px); box-shadow:0 18px 33px #123b2b12; background:#fafffc; }
.expertiseNumber { font-size:10px; letter-spacing:.1em; color:#a1b6a9; font-weight:800; }
.expertiseIcon { width:64px; height:64px; display:grid; place-items:center; margin:19px 0 16px; background:#eaf6ee; color:#217e71; border-radius:50%; }
.expertiseIcon svg { width:44px; height:44px; }
.expertiseCard h3 { font:800 19px/1.4 var(--display); letter-spacing:-.05em; margin:0 0 11px; color:#183d3a; }
.expertiseCard p { font-size:12px; color:#718179; line-height:1.85; margin:0 0 20px; }
.cardArrow { margin-top:auto; color:#3b8473; font-size:18px; line-height:1; align-self:flex-end; }
.impactSection { background:#0d3337; color:#e7f4ed; padding:120px 0; position:relative; overflow:hidden; }
.impactSection:before { content:""; position:absolute; width:500px; height:500px; border:1px solid #426d6a40; border-radius:50%; bottom:-360px; left:-200px; }
.impactLayout { display:grid; grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr); gap:10%; position:relative; }
.impactIntro { position:relative; min-height:460px; }
.impactIntro .sectionTitle { color:#f1fff5; }
.impactIntro .sectionTitle em { color:#aee3bf; }
.impactIntro > p { font-size:14px; line-height:1.95; color:#afcbc6; margin:30px 0; max-width:392px; }
.impactWatermark { position:absolute; left:-6px; bottom:-60px; font:800 180px/1 var(--display); letter-spacing:-.14em; color:#164b4c; pointer-events:none; opacity:.75; }
.impactWatermark span { color:#256c64; }
.impactList { border-top:1px solid #416567; }
.impactItem { display:grid; grid-template-columns:40px 1fr 23px; gap:17px; padding:34px 0 34px; border-bottom:1px solid #416567; transition:padding-left .25s; }
.impactItem:hover { padding-left:12px; }
.impactNum { font-size:11px; font-weight:700; color:#98b4ae; padding-top:4px; }
.impactTag { font-size:9px; letter-spacing:.17em; font-weight:800; color:#b3dec5; }
.impactItem h3 { font:800 24px/1.2 var(--display); letter-spacing:-.065em; color:#f2fff5; margin:10px 0 12px; }
.impactItem p { color:#b4c9c2; font-size:13px; max-width:398px; line-height:1.85; margin:0; }
.impactArrow { color:#b5e4c3; font-size:20px; }
.insightsSection { background:#fbfcf9; }
.insightsSection .sectionHeading { margin-bottom:48px; }
.insightsAllLink { margin:0 0 11px auto; flex-shrink:0; }
.insightsGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; }
.insightCard { background:white; border:1px solid #e2e8e3; transition:transform .25s,box-shadow .25s; }
.insightCard:hover { transform:translateY(-5px); box-shadow:0 18px 38px #092a2412; }
.insightArt { position:relative; height:198px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.insightArtOne { background:linear-gradient(135deg,#1a5157,#0b2d39); }
.insightArtTwo { background:linear-gradient(135deg,#c2e4ca,#75a99d); }
.insightArtThree { background:linear-gradient(135deg,#eedfcb,#c2ceb5); }
.graphicGrid { position:absolute; inset:0; opacity:.35; background-image:linear-gradient(90deg,#ffffff24 1px,transparent 1px),linear-gradient(#ffffff24 1px,transparent 1px); background-size:34px 34px; transform:perspective(250px) rotateX(9deg) scale(1.2); }
.graphicCircle { display:grid; place-items:center; border:1px solid #a3ddbf6b; border-radius:50%; height:136px; width:136px; color:#c3f5d3; font:800 62px/1 var(--display); letter-spacing:-.09em; z-index:1; box-shadow:0 0 0 23px #80d6a412, 0 0 0 49px #80d6a40a; }
.graphicWave { color:#135a52; font-size:125px; line-height:1; animation:slowRotate 30s linear infinite; }
.graphicHeart { font-family:Georgia,serif; font-size:165px; line-height:1; color:#497d68; transform:translateY(-9px); }
.graphicCorner { position:absolute; bottom:15px; left:18px; font-size:9px; letter-spacing:.17em; font-weight:800; color:#daf7e9; }
.insightArtTwo .graphicCorner,.insightArtThree .graphicCorner { color:#2b695e; }
.insightCopy { padding:25px 24px 26px; display:flex; flex-direction:column; min-height:277px; }
.insightMeta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:9px; font-size:9px; font-weight:800; letter-spacing:.11em; color:#6e9b87; }
.insightMeta span:last-child { color:#99a9a1; font-size:9px; }
.insightCopy h3 { font:800 20px/1.4 var(--display); letter-spacing:-.055em; color:#1b403b; margin:16px 0 9px; }
.insightCopy h3 a { text-decoration:none; }
.insightCopy h3 a:hover { color:#1a806c; }
.insightCopy p { font-size:12px; line-height:1.7; color:#76857b; margin:0; }
.insightRead { display:flex; justify-content:space-between; align-items:center; font-size:11px; font-weight:800; text-decoration:none; color:#276e5d; border-top:1px solid #e9eee9; padding-top:17px; margin-top:auto; }
.insightRead span { font-size:18px; }
.siteJournalNote { display:flex; gap:20px; align-items:center; justify-content:center; margin-top:40px; }
.siteJournalNote > span { font-size:10px; color:#8ba198; letter-spacing:.15em; font-weight:800; }
.siteJournalNote a { font-size:12px; font-weight:800; color:#1a776a; }
.contactSection { background:linear-gradient(120deg,#ccecd6,#dff5de 54%,#b7e3c9); overflow:hidden; position:relative; }
.contactLayout { position:relative; padding-top:99px; padding-bottom:106px; }
.contactCopy { max-width:780px; position:relative; z-index:3; }
.contactCopy h2 { font:800 clamp(39px,4.65vw,69px)/1.18 var(--display); letter-spacing:-.075em; margin:27px 0 24px; color:#103e3b; }
.contactCopy h2 em { color:#247c6d; }
.contactCopy p { color:#3d7369; font-size:14px; line-height:1.9; max-width:580px; margin:0 0 29px; }
.buttonDark { background:#103d3a; color:#fff; }
.buttonDark:hover { background:#1c6559; }
.contactDecoration { position:absolute; color:#96d3b4; font-size:470px; line-height:1; bottom:-105px; right:-90px; opacity:.55; }
.siteFooter { background:#09282c; color:#a6c1b9; }
.footerInner { max-width:1270px; margin:auto; padding:67px 45px 24px; }
.footerTop { display:grid; grid-template-columns:2fr 1fr 1fr; gap:70px; padding-bottom:67px; }
.footerBrand { font:800 17px/1.3 var(--display); color:#e7f7ed; letter-spacing:-.045em; }
.footerBrand .brandMark { width:42px; height:42px; background:#18524d; font-size:26px; }
.footerIdentity p { font-size:12px; line-height:1.95; max-width:320px; color:#9cb5ad; margin-top:21px; }
.footerLinks { display:flex; flex-direction:column; align-items:start; gap:11px; }
.footerLinks span { font-size:9px; font-weight:800; letter-spacing:.19em; color:#85af9f; margin:0 0 8px; }
.footerLinks a { font-size:12px; text-decoration:none; color:#bed3cb; }
.footerLinks a:hover,.footerBottom a:hover { color:#c7f5d3; }
.footerBottom { padding-top:22px; border-top:1px solid #2c4b4c; display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; font-size:10px; color:#93aca4; }
.footerBottom a { text-decoration:underline; text-underline-offset:3px; }
.js-animate [data-reveal] { opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s ease; }
.js-animate [data-reveal].is-visible { opacity:1; transform:translateY(0); }
/* Existing site-managed post & gallery pages keep their functionality and share the new theme. */
.siteMain { max-width:1220px; margin:0 auto; min-height:60vh; padding:0 45px 100px; }
.siteHero { padding:90px 0 65px; max-width:830px; }
.siteHero h1,.postHero h1 { font:800 clamp(42px,5vw,71px)/1.16 var(--display); letter-spacing:-.075em; margin:16px 0 22px; color:#123b39; }
.siteHero > p { color:#627970; font-size:17px; }
.siteHero .eyebrow, .postHero .eyebrow { color:#257e69; font-size:11px; }
.postGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:21px; }
.postCard { background:#fff; border:1px solid var(--line); overflow:hidden; }
.postCardImage { display:block; aspect-ratio:1.6; overflow:hidden; background:#d7e7dc; }
.postCardImage img { display:block; width:100%; height:100%; object-fit:cover; }
.postCardContent { padding:25px; }
.postCardContent time,.postHero time { font-size:11px; color:#779188; }
.postCardContent h2 { font:800 20px/1.35 var(--display); letter-spacing:-.045em; margin:13px 0; }
.postCardContent h2 a { text-decoration:none; }
.postCardContent p { font-size:13px; color:#697e74; line-height:1.8; }
.readPost { display:flex; justify-content:space-between; color:#177262; font-size:12px; font-weight:800; text-decoration:none; border-top:1px solid #e6eee7; padding-top:14px; margin-top:23px; }
.siteButton { display:inline-block; background:#103d3a; color:#fff; padding:14px 22px; border-radius:5px; font-weight:800; font-size:12px; text-decoration:none; }
.allPosts { text-align:center; margin-top:40px; }
.siteEmpty { border:1px dashed #a8c8b7; background:#eff6ed; padding:60px 25px; text-align:center; border-radius:5px; color:#607a70; }
.siteEmpty h2 { color:#19453b; margin-top:0; }
.sitePagination { margin-top:40px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; }
.sitePagination a { color:#187063; }
.postMain { max-width:860px; }
.postHero { padding:76px 0 38px; }
.postHero .eyebrow { text-decoration:none; }
.postBody { font-size:17px; line-height:1.9; overflow-wrap:anywhere; display:flow-root; }
.postBody h2 { font:800 33px/1.3 var(--display); letter-spacing:-.05em; margin-top:1.6em; }
.postBody h3 { font:800 24px/1.4 var(--display); }
.postBody p { margin:0 0 1.4em; }
.postBody img { max-width:100%; height:auto; border-radius:5px; }
.postBody img[align=left] { margin:8px 22px 14px 0; }
.postBody img[align=right] { margin:8px 0 14px 22px; }
.postBody table { display:block; max-width:100%; overflow:auto; border-collapse:collapse; margin:26px 0; }
.postBody th,.postBody td { border:1px solid #d4e3d7; padding:10px 14px; }
.postBody a { color:#197f6e; }
.postBody hr { border:0; border-top:1px solid #d4e3d7; margin:40px 0; }
.postEnd { clear:both; border-top:1px solid #d4e3d7; margin-top:45px; padding-top:30px; }
.galleryGrid { columns:3 240px; column-gap:22px; }
.galleryFrame { break-inside:avoid; margin:0 0 22px; background:#fff; border:1px solid #e2e9e2; overflow:hidden; border-radius:5px; }
.galleryFrame a { display:block; overflow:hidden; }
.galleryFrame img { display:block; width:100%; height:auto; transition:transform .35s ease; }
.galleryFrame:hover img { transform:scale(1.03); }
.galleryFrame figcaption { font-size:12px; color:#6c8177; padding:15px 18px; }
.galleryFrame figcaption span { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
@media (max-width:1130px) {
  .navWrap { padding:0 30px; }
  .mainNav { gap:21px; }
  .container { padding:0 35px; }
  .hero h1 { font-size:clamp(53px,5.2vw,73px); }
  .heroLayout { gap:12px; }
  .heroImageFrame { height:490px; }
  .floatingNote { left:-23px; }
  .aboutLayout { gap:6%; }
  .expertiseCard { padding-left:21px; padding-right:21px; }
  .expertiseCard h3 { font-size:17px; }
  .impactLayout { gap:7%; }
}
@media (max-width:900px) {
  .navWrap { height:78px; }
  .mainNav { gap:15px; }
  .mainNav > a { font-size:12px; }
  .mainNav .navCTA { padding:12px 13px; margin-left:0; }
  .heroLayout { min-height:600px; }
  .heroCopy { padding:64px 0; }
  .hero h1 { font-size:50px; }
  .heroIntro { margin-top:30px; }
  .heroDescription { font-size:14px; }
  .heroVisual { padding-top:70px; }
  .heroImageFrame { height:405px; border-width:5px; }
  .heroOrbTop { font-size:58px; right:-10px; top:90px; }
  .floatingNote { bottom:85px; left:-33px; width:245px; }
  .heroVerticalLabel { display:none; }
  .credential { padding-left:20px; }
  .credential strong { font-size:16px; }
  .section { padding:95px 0; }
  .aboutImage { height:395px; }
  .aboutPhotoLabel { width:215px; padding:16px 18px; }
  .aboutPhotoLabel strong { font-size:15px; }
  .sectionTitle { font-size:44px; }
  .expertiseGrid { grid-template-columns:repeat(2,1fr); }
  .expertiseCard { min-height:290px; }
  .insightsGrid { gap:12px; }
  .insightArt { height:175px; }
  .insightCopy { padding:19px; min-height:290px; }
  .insightCopy h3 { font-size:17px; }
  .postGrid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:800px) {
  .menuToggle { display:block; }
  .mainNav { position:absolute; top:100%; left:0; right:0; padding:20px 27px 28px; display:none; flex-direction:column; align-items:stretch; gap:0; background:#f9fbf6; box-shadow:0 19px 26px #072f2923; border-top:1px solid #e1ebe2; }
  .mainNav.is-open { display:flex; }
  .mainNav > a { padding:13px 8px; font-size:14px; }
  .mainNav .navCTA { margin-top:10px; text-align:center; }
  .heroLayout { grid-template-columns:1fr 1fr; }
  .hero h1 { font-size:clamp(43px,6vw,55px); }
  .heroVisual { padding-left:10px; }
  .heroImageFrame { height:390px; }
  .floatingNote { left:-25px; }
  .aboutLayout { gap:35px; }
  .aboutCopy p { font-size:13px; }
  .sectionTitle { font-size:39px; }
  .impactLayout { gap:25px; }
}
@media (max-width:680px) {
  html { scroll-padding-top:80px; }
  .container { padding:0 24px; }
  .navWrap { height:73px; padding:0 24px; }
  .brandMark { width:41px; height:41px; font-size:26px; border-radius:10px; }
  .brandText { font-size:11px; }
  .brandText small { font-size:7px; letter-spacing:.13em; }
  .heroLayout { display:flex; flex-direction:column; min-height:0; gap:0; align-items:stretch; }
  .heroCopy { padding:65px 0 6px; }
  .heroIntro { margin-top:32px; }
  .hero h1 { font-size:clamp(49px,10.7vw,71px); max-width:590px; }
  .heroDescription { font-size:15px; margin-top:25px; max-width:560px; }
  .heroActions { gap:22px; }
  .heroBottomNote { margin-top:40px; }
  .heroVisual { width:100%; max-width:460px; align-self:center; padding:20px 9px 44px; }
  .heroImageFrame { height:390px; max-width:350px; border-radius:200px 200px 20px 20px; }
  .heroOrbTop { top:10px; right:18px; }
  .floatingNote { left:0; bottom:68px; }
  .heroIndex { display:none; }
  .credentialGrid { grid-template-columns:repeat(2,1fr); row-gap:20px; padding:27px 24px; }
  .credential:nth-child(2) { border-right:0; }
  .credential:nth-child(3) { padding-left:8px; }
  .credential { padding:5px 10px 5px 15px; min-height:60px; }
  .credential strong { font-size:16px; }
  .credential > span:last-child { font-size:10px; }
  .credentialIcon { right:12px; }
  .section { padding:80px 0; }
  .aboutLayout, .impactLayout { grid-template-columns:1fr; gap:45px; }
  .aboutArtwork { max-width:470px; width:100%; margin:0 auto; }
  .aboutImage { height:440px; }
  .aboutPhotoLabel { right:-2px; }
  .aboutCopy { padding:0; }
  .sectionTitle { font-size:clamp(38px,8vw,53px); }
  .aboutLead { font-size:16px !important; }
  .sectionHeading { display:block; }
  .sectionHeading > p { margin:20px 0 0; width:auto; max-width:430px; }
  .expertiseGrid { gap:12px; }
  .expertiseCard { padding:23px; }
  .impactIntro { min-height:0; }
  .impactWatermark { display:none; }
  .impactList { margin-top:8px; }
  .insightsGrid { grid-template-columns:1fr; gap:21px; }
  .insightArt { height:200px; }
  .insightCopy { min-height:0; padding:23px; }
  .insightCopy h3 { font-size:21px; }
  .insightRead { margin-top:25px; }
  .insightsAllLink { margin-top:23px; }
  .contactLayout { padding-top:75px; padding-bottom:75px; }
  .contactCopy h2 { font-size:clamp(39px,8.2vw,58px); }
  .contactDecoration { font-size:320px; bottom:-65px; right:-122px; }
  .footerInner { padding:55px 24px 26px; }
  .footerTop { grid-template-columns:1fr 1fr; gap:35px; padding-bottom:45px; }
  .footerIdentity { grid-column:1 / -1; }
  .footerBottom { display:block; line-height:2; }
  .footerBottom span { display:block; }
  .siteMain { padding:0 24px 80px; }
  .siteHero { padding:65px 0 45px; }
  .postGrid { grid-template-columns:1fr; }
  .galleryGrid { columns:2 140px; column-gap:12px; }
  .galleryFrame { margin-bottom:12px; }
  .postBody { font-size:15px; }
}
@media (max-width:390px) {
  .brandText { font-size:10px; }
  .brandText small { font-size:6px; }
  .hero h1 { font-size:46px; }
  .heroActions { align-items:flex-start; flex-direction:column; }
  .heroImageFrame { height:355px; max-width:320px; }
  .floatingNote { width:231px; left:-2px; bottom:59px; }
  .expertiseGrid { grid-template-columns:1fr; }
  .expertiseCard { min-height:260px; }
  .contactActions { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  [data-reveal] { opacity:1; transform:none; }
}
