@view-transition{navigation:auto}
::view-transition-old(root){animation:gt-out .12s ease both}
::view-transition-new(root){animation:gt-in .18s ease both}
@keyframes gt-out{to{opacity:0}}
@keyframes gt-in{from{opacity:0}}

:root{
  color-scheme:light;
  --bg:#f7f6f1;
  --surface:#eceee9;
  --surface-2:#e3e7e1;
  --ink:#141713;
  --text:#4f5751;
  --muted:#727a73;
  --line:#d9ddd7;
  --line-strong:#c4cac2;
  --accent:#214b36;
  --accent-strong:#163a29;
  --accent-soft:#e2eae3;
  --on-accent:#f8f8f3;
  --header:rgba(247,246,241,.90);
  --shadow:0 20px 70px rgba(23,34,27,.10);
  --on-dark:#f3f2ec;
  --on-dark-muted:#bac2bb;
  --display:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --body:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular","Cascadia Mono",Consolas,monospace;
  --shell:min(1380px,calc(100% - 96px));
  --ease:cubic-bezier(.22,.61,.36,1);

  /* Compatibility aliases for legacy legal markup */
  --forest:var(--accent);--deep:#121512;--moss:#71867a;--sage:#b9c7bc;--mist:var(--surface);--sand:var(--surface-2);--cream:var(--bg);--paper:var(--bg);--sans:var(--body);--serif:var(--display);--accent-2:var(--accent-soft);
  --gt-paper:var(--bg);--gt-cream:var(--bg);--gt-sand:var(--surface-2);--gt-mist:var(--surface);--gt-ink:var(--ink);--gt-copy:var(--text);--gt-faint:var(--muted);--gt-line:var(--line);--gt-soft-line:var(--line);--gt-forest:var(--accent);--gt-accent:var(--accent);--gt-deep:#121512;--gt-moss:#6f8877;--gt-sage:#b9c7bc;--gt-panel:#fafaf7;--gt-on-dark:#f3f4ef;--gt-on-dark-muted:#b6beb7;--gt-sans:var(--body);--gt-serif:var(--display);--gt-mono:var(--mono);
}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#111310;
  --surface:#181b18;
  --surface-2:#20241f;
  --ink:#f3f2ec;
  --text:#c1c7c0;
  --muted:#959d96;
  --line:#2e342e;
  --line-strong:#414941;
  --accent:#91b39a;
  --accent-strong:#b3cdb9;
  --accent-soft:#1d2a21;
  --on-accent:#111511;
  --header:rgba(17,19,16,.90);
  --shadow:0 24px 80px rgba(0,0,0,.32);
  --on-dark:#f3f2ec;
  --on-dark-muted:#bec5bf;

  --forest:var(--accent);--deep:#0d0f0d;--moss:#8fa397;--sage:#506658;--mist:var(--surface);--sand:var(--surface-2);--cream:var(--bg);--paper:var(--bg);--accent-2:var(--accent-soft);
  --gt-paper:var(--bg);--gt-cream:var(--bg);--gt-sand:var(--surface-2);--gt-mist:var(--surface);--gt-ink:var(--ink);--gt-copy:var(--text);--gt-faint:var(--muted);--gt-line:var(--line);--gt-soft-line:var(--line);--gt-forest:var(--accent);--gt-accent:var(--accent);--gt-deep:#0c0f0c;--gt-moss:#8ea296;--gt-sage:#506658;--gt-panel:#141814;--gt-on-dark:#f0f1eb;--gt-on-dark-muted:#aeb7af;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body,button,a{font-synthesis:none}
a{color:inherit}
button,input{font:inherit}
img{display:block;max-width:100%}
::selection{background:var(--accent);color:var(--on-accent)}
.shell,.wrap{width:var(--shell);margin-inline:auto}
.section-label,.section-index,.index,.page-kicker{margin:0;color:var(--muted);font-size:11px;line-height:1.3;letter-spacing:.01em}
.dark-surface{background:var(--ink);color:var(--bg)}
html[data-theme="dark"] .dark-surface{background:#0d0f0d;color:#f3f2ec}
.green-surface{background:var(--accent-strong);color:var(--on-accent)}
.primary-link,.quiet-link,.text-link,.arrow-link{display:inline-flex;align-items:center;gap:18px;width:max-content;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:5px;font-size:12px;line-height:1.2;transition:opacity .2s ease,gap .2s var(--ease)}
.primary-link:hover,.quiet-link:hover,.text-link:hover,.arrow-link:hover{gap:23px;opacity:.78}

/* Header ---------------------------------------------------------------- */
.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:68px;padding:0 34px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid transparent;transition:background .22s ease,border-color .22s ease,backdrop-filter .22s ease}
.site-header.scrolled,.site-header.menu-open{background:var(--header);border-color:var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:9px;width:max-content;text-decoration:none}
.brand img{width:24px;height:24px;object-fit:contain}
html[data-theme="dark"] .brand img{filter:brightness(0) invert(1);opacity:.92}
.brand-name{font-size:13px;font-weight:620;letter-spacing:-.025em}
.brand-ai{align-self:flex-start;margin-top:2px;color:var(--muted);font-size:8px;letter-spacing:.02em}
.site-nav{display:flex;gap:30px}
.site-nav a{position:relative;text-decoration:none;color:var(--text);font-size:12px}
.site-nav a:hover,.site-nav a.active{color:var(--ink)}
.site-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:currentColor}
.header-actions{justify-self:end;display:flex;align-items:center;gap:14px}
.theme-toggle,.menu-toggle{border:0;background:none;color:var(--text);cursor:pointer}
.theme-toggle{padding:8px 0;font-size:11px}
.menu-toggle{display:none;width:28px;height:28px;padding:6px}
.menu-toggle span{display:block;height:1px;background:currentColor;margin:5px 0}

/* Home ------------------------------------------------------------------ */
.home-masthead{min-height:100svh;padding:112px 0 32px;border-bottom:1px solid var(--line)}
.masthead-inner{min-height:calc(100svh - 144px);display:grid;grid-template-rows:auto 1fr auto;gap:34px}
.masthead-wordmark{position:relative;font-size:108px;font-size:clamp(66px,8.2vw,118px);line-height:.82;letter-spacing:-.072em;font-weight:610;white-space:nowrap}
.masthead-wordmark>span{position:absolute;top:0.05em;margin-left:.34em;color:var(--accent);font-size:.11em;font-weight:650;letter-spacing:.04em}
.masthead-thesis{align-self:center;display:grid;grid-template-columns:2fr 6fr 4fr;gap:28px;align-items:start;padding:18px 0 44px}
.masthead-label{margin:7px 0 0;color:var(--muted);font-size:11px}
.masthead-thesis h1{margin:0;max-width:820px;font-size:54px;font-size:clamp(40px,4.3vw,60px);line-height:1.02;font-weight:520;letter-spacing:-.052em}
.masthead-copy{max-width:390px;padding-top:5px}
.masthead-copy>p{margin:0 0 28px;color:var(--text);font-size:15px;line-height:1.7}
.masthead-actions{display:grid;gap:18px;justify-items:start}
.masthead-actions>span{color:var(--muted);font-size:10px}
.home-directory{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home-directory a{position:relative;min-height:134px;padding:18px 20px 18px 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;gap:10px;text-decoration:none;transition:background .2s ease}
.home-directory a+a{border-left:1px solid var(--line);padding-left:20px}
.home-directory a:hover{background:var(--surface)}
.home-directory a>span{grid-column:1;color:var(--muted);font:500 10px/1.4 var(--mono)}
.home-directory strong{grid-column:1;font-size:15px;font-weight:620;letter-spacing:-.02em}
.home-directory small{grid-column:1;align-self:end;color:var(--text);font-size:12px;line-height:1.45}
.home-directory i{grid-column:2;grid-row:1/4;align-self:start;font-style:normal;font-size:16px;transition:transform .2s var(--ease)}
.home-directory a:hover i{transform:translate(3px,-3px)}

.home-premise{padding:112px 0 120px}
.home-premise-main{display:grid;grid-template-columns:2fr 6fr 4fr;gap:28px;margin-top:36px;align-items:start}
.home-premise h2{grid-column:2;margin:0;font-size:46px;font-size:clamp(36px,3.6vw,52px);line-height:1.03;font-weight:520;letter-spacing:-.047em}
.home-premise-copy{grid-column:3;display:grid;gap:16px;padding-top:4px}
.home-premise-copy p{margin:0;color:var(--text);font-size:14px;line-height:1.72}

.home-engineering{padding:104px 0 112px;background:var(--surface)}
.home-section-head{display:grid;grid-template-columns:2fr 7fr 3fr;gap:28px;align-items:end;padding-bottom:38px;border-bottom:1px solid var(--line-strong)}
.home-section-head h2{margin:0;font-size:40px;font-size:clamp(32px,3.2vw,46px);line-height:1.06;font-weight:520;letter-spacing:-.043em}
.home-section-head .quiet-link{justify-self:end}
.engineering-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.engineering-grid article{min-height:260px;padding:28px 30px 34px 0;border-bottom:1px solid var(--line-strong)}
.engineering-grid article+article{padding-left:30px;border-left:1px solid var(--line-strong)}
.engineering-grid span{display:block;margin-bottom:58px;color:var(--muted);font:500 10px/1 var(--mono)}
.engineering-grid h3{margin:0 0 14px;font-size:23px;line-height:1;font-weight:590;letter-spacing:-.03em}
.engineering-grid p{margin:0;max-width:360px;color:var(--text);font-size:13px;line-height:1.65}

.home-company{display:grid;grid-template-columns:6fr 3fr 3fr;gap:28px;padding:112px 0 118px;border-bottom:1px solid var(--line);align-items:end}
.home-company h2{margin:34px 0 0;max-width:760px;font-size:46px;font-size:clamp(36px,3.6vw,52px);line-height:1.03;font-weight:520;letter-spacing:-.047em}
.home-company-detail p{margin:0 0 26px;color:var(--text);font-size:14px;line-height:1.72}
.home-company-proof{align-self:stretch;padding:18px 0 0 24px;border-left:1px solid var(--line);display:flex;flex-direction:column}
.home-company-proof span{color:var(--muted);font-size:10px}
.home-company-proof strong{margin-top:auto;font-size:17px;line-height:1.2;font-weight:600;letter-spacing:-.02em}
.home-company-proof small{margin-top:8px;color:var(--text);font-size:11px;line-height:1.5}

.home-latest{padding:46px 0 90px}
.home-latest-head{display:flex;justify-content:space-between;margin-bottom:14px;color:var(--muted);font-size:10px}
.home-latest-head a{text-decoration:none}
.home-latest-item{display:grid;grid-template-columns:100px 1fr 24px;gap:28px;align-items:start;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none}
.home-latest-item time{color:var(--muted);font:500 10px/1.45 var(--mono)}
.home-latest-item h2{margin:0 0 8px;font-size:32px;font-size:clamp(25px,2.5vw,36px);line-height:1.08;font-weight:540;letter-spacing:-.035em}
.home-latest-item p{margin:0;max-width:650px;color:var(--text);font-size:13px;line-height:1.6}
.home-latest-item>span{font-size:17px;transition:transform .2s var(--ease)}
.home-latest-item:hover>span{transform:translate(3px,-3px)}

/* Internal pages --------------------------------------------------------- */
.page-hero{padding:144px 0 72px;display:grid;grid-template-columns:2fr 7fr 3fr;gap:28px;align-items:end;border-bottom:1px solid var(--line)}
.page-hero h1{grid-column:2;margin:0;font-size:58px;font-size:clamp(44px,5vw,66px);line-height:1.01;font-weight:520;letter-spacing:-.05em}
.page-lead{grid-column:3;margin:0;color:var(--text);font-size:14px;line-height:1.72}
.page-kicker{grid-column:1;align-self:start;margin-top:8px}

.tech-layout{display:grid;grid-template-columns:2fr 10fr;gap:28px;padding:46px 0 104px}
.tech-index{position:sticky;top:112px;align-self:start;display:grid;gap:10px}
.tech-index a{width:max-content;text-decoration:none;color:var(--muted);font-size:11px;transition:color .2s ease}
.tech-index a:hover,.tech-index a.active{color:var(--ink)}
.tech-articles{border-top:1px solid var(--line)}
.tech-articles article{display:grid;grid-template-columns:3fr 4fr 5fr;gap:28px;padding:30px 0 40px;border-bottom:1px solid var(--line);scroll-margin-top:105px}
.tech-articles h2{margin:0;font-size:25px;font-weight:570;letter-spacing:-.032em}
.tech-principle{margin:0;font-size:17px;line-height:1.48;letter-spacing:-.015em}
.tech-articles article>p:last-child{margin:0;color:var(--text);font-size:14px;line-height:1.72;max-width:520px}
.tech-close{padding:82px 0}
.tech-close-grid{display:grid;grid-template-columns:2fr 7fr 3fr;gap:28px;align-items:start}
.tech-close h2{margin:0;font-size:44px;font-size:clamp(34px,3.7vw,50px);line-height:1.04;font-weight:520;letter-spacing:-.044em}
.tech-close-grid>p:last-child{margin:0;color:var(--on-dark-muted,#bac2bb);font-size:13px;line-height:1.7}

.founders{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:54px 0 102px}
.founder figure{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--surface)}
.founder figure img{width:100%;height:100%;object-fit:cover}
.founder-meta{display:grid;grid-template-columns:2fr 3fr;gap:26px;padding-top:18px}
.founder-meta h2{margin:0;font-size:20px;font-weight:590;letter-spacing:-.025em}
.founder-meta>div>p{margin:4px 0 0;color:var(--muted);font-size:11px}
.founder-meta>p{margin:0;color:var(--text);font-size:13px;line-height:1.68}
.company-story{padding:94px 0}
.company-story-grid{display:grid;grid-template-columns:2fr 6fr 4fr;gap:28px}
.company-story h2{margin:0;font-size:44px;font-size:clamp(34px,3.7vw,50px);line-height:1.05;font-weight:520;letter-spacing:-.044em}
.company-story-grid>div{display:grid;gap:15px}
.company-story-grid>div p{margin:0;color:var(--on-dark-muted,#bac2bb);font-size:13px;line-height:1.72}
.company-facts{padding:18px 0 70px;border-bottom:1px solid var(--line)}
.company-facts>div{display:grid;grid-template-columns:2fr 10fr;gap:28px;padding:15px 0;border-bottom:1px solid var(--line)}
.company-facts>div:last-child{border-bottom:0}
.company-facts span{color:var(--muted);font-size:10px}
.company-facts strong{font-size:14px;font-weight:550}
.company-facts a{text-decoration:none}
.company-vision{display:grid;grid-template-columns:2fr 8fr 2fr;gap:28px;align-items:end;padding:90px 0 100px}
.company-vision h2{grid-column:2;margin:0;font-size:46px;font-size:clamp(34px,3.8vw,52px);line-height:1.04;font-weight:520;letter-spacing:-.045em}
.company-vision .arrow-link{grid-column:3;justify-self:end}

.updates-list{padding:38px 0 90px}
.update-entry{display:grid;grid-template-columns:2fr 10fr;gap:28px;padding:28px 0 38px;border-bottom:1px solid var(--line)}
.update-meta{display:flex;gap:14px;color:var(--muted);font-size:10px}
.update-entry h2{margin:0 0 12px;font-size:32px;font-size:clamp(25px,2.6vw,36px);line-height:1.1;font-weight:550;letter-spacing:-.035em}
.update-entry p{margin:0;max-width:720px;color:var(--text);font-size:14px;line-height:1.7}
.updates-follow{display:flex;justify-content:flex-end;padding:0 0 90px}

/* Footer ---------------------------------------------------------------- */
.site-footer{border-top:1px solid var(--line);padding:48px 0 24px}
.footer-top{display:grid;grid-template-columns:8fr 4fr;gap:28px}
.footer-wordmark{display:inline-flex;width:max-content;text-decoration:none;font-size:52px;font-size:clamp(38px,4vw,58px);font-weight:570;line-height:.9;letter-spacing:-.055em}
.footer-wordmark span{margin:3px 0 0 4px;color:var(--muted);font-size:8px;letter-spacing:.02em}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.footer-links>div{display:grid;gap:9px}
.footer-links a{color:var(--text);text-decoration:none;font-size:11px}
.footer-links a:hover{color:var(--ink)}
.footer-bottom{display:grid;grid-template-columns:1fr auto auto auto;gap:24px;margin-top:42px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}
.footer-bottom a{color:inherit;text-decoration:none}
.footer-cookie-button{border:0;padding:0;background:none;color:inherit;cursor:pointer;font-size:10px}

/* Consent --------------------------------------------------------------- */
.cookie-banner[hidden]{display:none!important}
.cookie-banner{position:fixed;z-index:500;right:22px;bottom:22px;width:min(430px,calc(100% - 44px));padding:20px;background:var(--ink);color:var(--bg);border:1px solid color-mix(in srgb,currentColor 14%,transparent);box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
html[data-theme="dark"] .cookie-banner{background:#f3f2ec;color:#141713;border-color:#f3f2ec}
.cookie-banner.show{opacity:1;transform:none;pointer-events:auto}
.cookie-banner h2{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.02em}
.cookie-banner p{margin:0;color:color-mix(in srgb,currentColor 70%,transparent);font-size:11px;line-height:1.6}
.cookie-banner a{color:inherit;text-underline-offset:3px}
.cookie-actions{display:flex;gap:8px;margin-top:18px}
.cookie-button{min-height:38px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);padding:9px 12px;background:transparent;color:inherit;font-size:10px;cursor:pointer}
.cookie-button:hover{border-color:currentColor}
.cookie-accept{background:var(--bg);color:var(--ink);border-color:var(--bg)}
html[data-theme="dark"] .cookie-accept{background:#141713;color:#f3f2ec;border-color:#141713}

/* Legal ----------------------------------------------------------------- */
body.legal-page,body.cookie-policy-page{overflow-x:hidden}
.legal-header{padding:136px 0 54px;border-bottom:1px solid var(--line)}
.legal-header-grid{display:grid;grid-template-columns:2fr 7fr 3fr;gap:28px;align-items:end}
.legal-header .legal-eyebrow{margin:0;color:var(--muted);font-size:11px}
.legal-header h1{margin:0;font-size:46px;font-size:clamp(38px,4vw,52px);line-height:1.02;font-weight:530;letter-spacing:-.047em}
.legal-header .legal-intro{margin:0;color:var(--text);font-size:13px;line-height:1.7}
.legal-meta-line{margin-top:14px;color:var(--muted);font-size:10px}
.legal-document{display:grid;grid-template-columns:2fr 10fr;gap:28px;padding:38px 0 96px}
.legal-nav{position:sticky;top:100px;align-self:start;display:grid;gap:9px}
.legal-nav a{width:max-content;color:var(--muted);text-decoration:none;font-size:10px}
.legal-nav a:hover,.legal-nav a.is-active{color:var(--ink)}
.legal-body{max-width:860px}
.legal-body article{padding:0 0 42px;margin-bottom:36px;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.legal-body article:last-child{margin-bottom:0}
.legal-body .legal-section-label{margin:0 0 12px;color:var(--muted);font-size:10px}
.legal-body h2{margin:0 0 18px;font-size:26px;line-height:1.08;font-weight:560;letter-spacing:-.035em}
.legal-body h3{margin:28px 0 10px;font-size:16px;font-weight:590;letter-spacing:-.02em}
.legal-body p,.legal-body li{color:var(--text);font-size:14px;line-height:1.75}
.legal-body p{margin:0 0 16px}
.legal-body ul{margin:0 0 18px;padding-left:20px}
.legal-body li+li{margin-top:6px}
.legal-body a{color:var(--accent);text-underline-offset:3px}
.legal-summary{display:grid;grid-template-columns:1fr 1fr;margin:16px 0 52px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.legal-summary article{margin:0;padding:20px 22px 22px 0;border:0;background:transparent}.legal-summary article+article{padding-left:22px;border-left:1px solid var(--line)}
.legal-summary span{display:block;margin-bottom:34px;color:var(--muted);font-size:10px}
.legal-summary strong{display:block;margin-bottom:7px;font-size:16px;font-weight:590;letter-spacing:-.018em}
.legal-summary p{margin:0;font-size:12px;line-height:1.6}
.policy-table-shell{width:100%;margin:24px 0;overflow:auto;border:1px solid var(--line)}
.policy-table{width:100%;min-width:680px;border-collapse:collapse;text-align:left}
.policy-table th,.policy-table td{padding:14px 16px;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.policy-table th:last-child,.policy-table td:last-child{border-right:0}.policy-table tr:last-child td{border-bottom:0}
.policy-table th{background:var(--surface);color:var(--muted);font-size:10px;font-weight:550}
.policy-table td{color:var(--text);font-size:12px;line-height:1.55}
.legal-body code{padding:.12em .32em;border:1px solid var(--line);background:var(--surface);font:500 .82em var(--mono);overflow-wrap:anywhere}

.storage-list{margin:26px 0 30px;border-top:1px solid var(--line)}
.storage-item{display:grid;grid-template-columns:3fr 6fr 3fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.storage-item>div{display:grid;gap:7px;min-width:0}
.storage-item code{justify-self:start;padding:0;border:0;background:transparent;color:var(--ink);font:500 11px/1.45 var(--mono);overflow-wrap:anywhere}
.storage-item span,.storage-item small{color:var(--muted);font-size:10px;line-height:1.5}
.storage-item p{margin:0!important;color:var(--text)!important;font-size:12px!important;line-height:1.6!important}
.storage-item small{display:block}

.policy-preferences{display:inline-flex;align-items:center;gap:18px;margin:8px 0 20px;border:1px solid var(--line-strong);padding:10px 13px;background:transparent;color:var(--ink);font-size:11px;cursor:pointer}
.policy-preferences:hover{border-color:var(--ink)}

/* Legacy legal markup compatibility ------------------------------------- */
.legal-page .page-wipe,.cookie-policy-page .page-wipe{display:none}
.legal-page .page-hero,.cookie-policy-page .page-hero{padding:136px 0 54px;display:grid;grid-template-columns:2fr 7fr 3fr;gap:28px;align-items:end;border-bottom:1px solid var(--line)}
.legal-page .page-hero>.overline,.cookie-policy-page .page-hero>.overline{grid-column:1;color:var(--muted);font-size:11px}
.legal-page .page-hero h1,.cookie-policy-page .page-hero h1{grid-column:2;margin:0!important;font-size:52px!important;font-size:clamp(40px,4.6vw,60px)!important;line-height:1.02!important;font-weight:530!important;letter-spacing:-.047em!important;color:var(--ink)!important}
.legal-page .page-hero h1 em,.cookie-policy-page .page-hero h1 em{font:inherit!important;font-style:normal!important;color:inherit!important}
.legal-page .page-hero>div,.cookie-policy-page .page-hero>div{grid-column:3}
.legal-page .page-hero>div p,.cookie-policy-page .page-hero>div p{margin:0;color:var(--text);font-size:13px;line-height:1.7}
.legal-page .manifesto,.cookie-policy-page .manifesto{display:none!important}
.legal-page .legal-layout,.cookie-policy-page .policy-layout{display:grid!important;grid-template-columns:2fr 10fr!important;gap:28px!important;padding:38px 0 96px!important}
.legal-page .legal-toc,.cookie-policy-page .policy-toc{position:sticky!important;top:100px!important;align-self:start!important;display:grid!important;gap:9px!important}
.legal-page .legal-toc a,.cookie-policy-page .policy-toc a{width:max-content!important;padding:0!important;color:var(--muted)!important;text-decoration:none!important;font:400 10px/1.4 var(--body)!important;letter-spacing:0!important;opacity:1!important;transform:none!important;border:0!important;background:none!important}
.legal-page .legal-toc a::before,.cookie-policy-page .policy-toc a::before{display:none!important}
.legal-page .legal-toc a:hover,.legal-page .legal-toc a.is-active,.cookie-policy-page .policy-toc a:hover,.cookie-policy-page .policy-toc a.is-active{color:var(--ink)!important}
.legal-page .legal-content,.cookie-policy-page .policy-content{max-width:860px}
.legal-page .legal-content article,.cookie-policy-page .policy-content article{padding:0 0 42px;margin-bottom:36px;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.legal-page .legal-content h2,.cookie-policy-page .policy-content h2{margin:0 0 18px!important;font-size:28px!important;line-height:1.08!important;font-weight:560!important;letter-spacing:-.035em!important}
.legal-page .legal-content h3,.cookie-policy-page .policy-content h3{margin:28px 0 10px!important;font-size:16px!important;font-weight:590!important;letter-spacing:-.02em!important;color:var(--ink)!important}
.legal-page .legal-content p,.legal-page .legal-content li,.cookie-policy-page .policy-content p,.cookie-policy-page .policy-content li{color:var(--text)!important;font-size:14px!important;line-height:1.75!important}
.legal-page .legal-content a,.cookie-policy-page .policy-content a{color:var(--accent)!important}
.legal-page .principles,.cookie-policy-page .principles{display:none!important}

/* Reveal ---------------------------------------------------------------- */
.js [data-reveal],.js .reveal{opacity:0;transform:translateY(10px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.js [data-reveal].is-visible,.js .reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal],.js .reveal{opacity:1;transform:none;transition:none}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Responsive ------------------------------------------------------------ */
@media(max-width:1100px){
  :root{--shell:calc(100% - 48px)}
  .site-header{padding:0 24px}
  .masthead-thesis{grid-template-columns:2fr 7fr 3fr}
  .home-directory a{padding-right:16px}.home-directory a+a{padding-left:16px}
  .page-hero,.legal-header-grid,.legal-page .page-hero,.cookie-policy-page .page-hero{grid-template-columns:2fr 7fr 3fr}
}

@media(max-width:820px){
  :root{--shell:calc(100% - 30px)}
  .site-header{height:64px;padding:0 15px;grid-template-columns:1fr auto auto}
  .menu-toggle{display:block}.site-nav{display:none;position:fixed;top:64px;left:0;right:0;padding:24px 15px 28px;flex-direction:column;align-items:flex-start;gap:18px;background:var(--bg);border-bottom:1px solid var(--line)}.site-header.menu-open .site-nav{display:flex}.site-nav a{font-size:17px}.site-nav a.active::after{display:none}
  .home-masthead{min-height:auto;padding:108px 0 22px}.masthead-inner{min-height:auto;display:block}.masthead-wordmark{font-size:clamp(52px,15vw,72px);white-space:normal;margin-bottom:72px}.masthead-thesis{display:block;padding:0}.masthead-label{margin-bottom:24px}.masthead-thesis h1{font-size:clamp(38px,10.5vw,54px)}.masthead-copy{max-width:100%;padding-top:28px}.masthead-copy>p{font-size:14px}.home-directory{display:block;margin-top:62px}.home-directory a,.home-directory a+a{min-height:auto;padding:16px 0;border-left:0;border-bottom:1px solid var(--line)}.home-directory a:last-child{border-bottom:0}.home-directory small{padding-top:12px}
  .home-premise{padding:74px 0 80px}.home-premise-main{display:block;margin-top:22px}.home-premise h2{font-size:38px;margin-bottom:26px}.home-premise-copy{display:grid;gap:14px}.home-engineering{padding:72px 0 76px}.home-section-head{display:block;padding-bottom:24px}.home-section-head h2{margin:22px 0 18px;font-size:35px}.home-section-head .quiet-link{justify-self:auto}.engineering-grid{display:block}.engineering-grid article,.engineering-grid article+article{min-height:auto;padding:22px 0;border-left:0;border-bottom:1px solid var(--line-strong)}.engineering-grid span{margin-bottom:30px}.home-company{display:block;padding:72px 0 78px}.home-company h2{margin:22px 0 28px;font-size:38px}.home-company-detail{margin-bottom:42px}.home-company-proof{padding:18px 0 0;border-left:0;border-top:1px solid var(--line);min-height:130px}.home-company-proof strong{margin-top:34px}.home-latest{padding:38px 0 70px}.home-latest-item{grid-template-columns:60px 1fr 18px;gap:12px}.home-latest-item h2{font-size:25px}.home-latest-item p{font-size:12px}
  .page-hero{display:block;padding:116px 0 58px}.page-kicker{margin-bottom:24px}.page-hero h1{font-size:44px;margin-bottom:22px}.page-lead{max-width:600px}.tech-layout{display:block;padding:34px 0 72px}.tech-index{position:static;display:flex;gap:16px;overflow-x:auto;padding:0 0 16px}.tech-articles article{display:block;padding:24px 0 30px}.tech-articles h2{margin-bottom:14px}.tech-principle{margin-bottom:12px}.tech-close{padding:62px 0}.tech-close-grid{display:block}.tech-close h2{margin:22px 0 18px;font-size:38px}.founders{grid-template-columns:1fr;gap:56px;padding:42px 0 76px}.founder-meta{display:block;padding-top:15px}.founder-meta>p{margin-top:16px}.company-story{padding:70px 0}.company-story-grid{display:block}.company-story h2{margin:22px 0 20px;font-size:38px}.company-facts{padding:22px 0 54px}.company-facts>div{grid-template-columns:1fr;padding:14px 0}.company-facts strong{margin-top:5px}.company-vision{display:block;padding:66px 0 78px}.company-vision h2{margin:22px 0 28px;font-size:38px}.updates-list{padding:28px 0 66px}.update-entry{display:block;padding:22px 0 28px}.update-meta{margin-bottom:16px}.update-entry h2{font-size:27px}.updates-follow{justify-content:flex-start;padding-bottom:70px}
  .footer-top{grid-template-columns:1fr;gap:34px}.footer-wordmark{font-size:44px}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:34px}
  .cookie-banner{left:12px;right:12px;bottom:12px;width:auto}.cookie-actions{flex-wrap:wrap}
  .storage-item{grid-template-columns:1fr;gap:10px;padding:18px 0}.storage-item>div{gap:4px}
  .legal-header{padding:116px 0 44px}.legal-header-grid{display:block}.legal-header h1{margin:22px 0 18px;font-size:42px}.legal-document{display:block;padding:26px 0 72px}.legal-nav{position:static;display:flex;gap:14px;overflow:auto;padding:0 0 20px;margin-bottom:26px;border-bottom:1px solid var(--line)}.legal-nav a{flex:0 0 auto}.legal-summary{grid-template-columns:1fr}.legal-summary article,.legal-summary article+article{padding:18px 0;border-left:0;border-bottom:1px solid var(--line)}.legal-summary article:last-child{border-bottom:0}.legal-summary span{margin-bottom:20px}
  .legal-page .page-hero,.cookie-policy-page .page-hero{display:block!important;padding:116px 0 44px!important}.legal-page .page-hero h1,.cookie-policy-page .page-hero h1{margin:22px 0 18px!important;font-size:42px!important}.legal-page .page-hero>.overline,.cookie-policy-page .page-hero>.overline{display:block}.legal-page .page-hero>div,.cookie-policy-page .page-hero>div{display:block}.legal-page .legal-layout,.cookie-policy-page .policy-layout{display:block!important;padding:26px 0 72px!important}.legal-page .legal-toc,.cookie-policy-page .policy-toc{position:static!important;display:flex!important;gap:14px!important;overflow:auto!important;padding:0 0 20px!important;margin-bottom:26px!important;border-bottom:1px solid var(--line)!important}.legal-page .legal-toc a,.cookie-policy-page .policy-toc a{flex:0 0 auto!important;white-space:nowrap!important}
}

@media(max-width:520px){
  :root{--shell:calc(100% - 24px)}
  body{font-size:14px}.site-header{padding-inline:12px}.theme-toggle{font-size:10px}
  .masthead-wordmark{font-size:58px;letter-spacing:-.065em}.masthead-thesis h1{font-size:39px}.masthead-copy>p{font-size:13px}.home-directory strong{font-size:14px}.home-directory small{font-size:11px}
  .home-premise h2,.home-company h2,.company-story h2,.company-vision h2,.tech-close h2{font-size:34px}.home-section-head h2{font-size:32px}.page-hero h1{font-size:39px}.footer-wordmark{font-size:40px}
  .cookie-actions{display:grid;grid-template-columns:1fr}.cookie-button{width:100%}
  .legal-body h2,.legal-page .legal-content h2,.cookie-policy-page .policy-content h2{font-size:25px!important}.policy-table{min-width:620px}
}

html[data-theme="dark"] .masthead-wordmark>span{color:var(--accent-strong)}

/* Root / home — intentionally minimal ------------------------------------ */
.root-main{min-height:100svh}
.root-hero{min-height:100svh;padding:68px 0 0;display:flex}
.root-hero-inner{min-height:calc(100svh - 68px);display:grid;grid-template-rows:1fr auto;align-items:stretch}
.root-hero-grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(40px,7vw,112px);align-items:end;padding:clamp(120px,18vh,220px) 0 clamp(64px,10vh,112px)}
.root-hero h1{margin:0;max-width:900px;font-size:clamp(48px,5.9vw,82px);line-height:.98;font-weight:520;letter-spacing:-.058em;text-wrap:balance}
.root-intro{align-self:end;max-width:460px;padding-bottom:.35em}
.root-intro p{margin:0;color:var(--text);font-size:14px;line-height:1.7}
.root-intro p+p{margin-top:14px;color:var(--muted)}
.root-links{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.root-links a{display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:0 22px 0 0;text-decoration:none;font-size:12px;transition:color .2s ease,background .2s ease,padding .2s var(--ease)}
.root-links a+a{border-left:1px solid var(--line);padding-left:22px}
.root-links a i{font-style:normal;color:var(--muted);transition:transform .2s var(--ease),color .2s ease}
.root-links a:hover{background:var(--surface)}
.root-links a:hover i{color:var(--ink);transform:translate(3px,-3px)}
body[data-page="home"] .site-footer{padding-top:30px}
body[data-page="home"] .footer-wordmark{font-size:clamp(28px,2.6vw,40px)}
body[data-page="home"] .footer-bottom{margin-top:28px}

@media (max-width:900px){
  .root-hero-grid{grid-template-columns:1fr;align-content:end;padding:120px 0 54px;gap:38px}
  .root-hero h1{font-size:clamp(44px,10vw,64px)}
  .root-intro{max-width:620px;padding:0}
}
@media (max-width:640px){
  .root-hero{padding-top:64px}
  .root-hero-inner{min-height:calc(100svh - 64px)}
  .root-hero-grid{padding:92px 0 42px;gap:30px}
  .root-hero h1{font-size:clamp(39px,11.5vw,52px);line-height:1.01;letter-spacing:-.052em}
  .root-intro p{font-size:13px;line-height:1.65}
  .root-links{grid-template-columns:1fr}
  .root-links a,.root-links a+a{min-height:58px;padding:0;border-left:0;border-bottom:1px solid var(--line)}
  .root-links a:last-child{border-bottom:0}
  body[data-page="home"] .site-footer{padding-top:36px}
}

/* Root refinement -------------------------------------------------------- */
.root-hero{min-height:100vh;min-height:100svh}
.root-hero-inner{min-height:calc(100vh - 68px);min-height:calc(100svh - 68px)}
.root-intro p+p{display:none}
.root-links{grid-template-columns:1fr auto auto auto;gap:36px;align-items:center;min-height:72px;border-bottom:0}
.root-links-label{color:var(--muted);font-size:10px}
.root-links a,.root-links a+a{min-height:auto;padding:0;border:0;background:none!important;font-size:11px;gap:10px;justify-content:flex-start}
.root-links a i{margin-left:7px;font-size:11px}
.root-links a:hover{color:var(--accent)}
@media (max-width:640px){
  .root-links{grid-template-columns:1fr auto;gap:12px 24px;padding:18px 0 20px}
  .root-links-label{grid-column:1/-1}
  .root-links a,.root-links a+a{min-height:30px;border:0;padding:0}
  .root-links a:nth-of-type(3){grid-column:2}
}
@media (max-width:640px){
  .root-links{grid-template-columns:auto repeat(3,1fr);gap:12px;padding:18px 0 20px}
  .root-links-label{grid-column:auto}
  .root-links a,.root-links a+a{min-height:auto;justify-self:end}
  .root-links a:nth-of-type(3){grid-column:auto}
  .root-links a i{display:none}
}

/* ========================================================================
   Home v14 — bespoke root page
   ======================================================================== */
.home-v14{
  --home-bg:#f4f3ee;
  --home-surface:#ebece6;
  --home-ink:#101510;
  --home-text:#505851;
  --home-muted:#7b827c;
  --home-line:#d4d9d2;
  --home-accent:#24563a;
  --home-accent-soft:#dce7de;
  background:var(--home-bg);
}
html[data-theme="dark"] .home-v14{
  --home-bg:#0d100e;
  --home-surface:#151a16;
  --home-ink:#f1f2ed;
  --home-text:#b9c1ba;
  --home-muted:#8d968e;
  --home-line:#293029;
  --home-accent:#9ebda7;
  --home-accent-soft:#1b2a20;
}
.home-v14 main{background:var(--home-bg);color:var(--home-ink)}
.home-v14 .site-header:not(.scrolled):not(.menu-open){color:var(--home-ink)}
.home-v14 .site-header:not(.scrolled):not(.menu-open) .site-nav a,
.home-v14 .site-header:not(.scrolled):not(.menu-open) .theme-toggle{color:var(--home-text)}
.home-v14 .site-header:not(.scrolled):not(.menu-open) .brand-ai{color:var(--home-muted)}

.gt14-hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  border-bottom:1px solid var(--home-line);
}
.gt14-field{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.78;
  pointer-events:none;
}
.gt14-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,var(--home-bg) 0%,color-mix(in srgb,var(--home-bg) 96%,transparent) 45%,color-mix(in srgb,var(--home-bg) 60%,transparent) 100%);
}
.gt14-hero-inner{
  position:relative;
  z-index:2;
  min-height:100svh;
  padding-top:118px;
  padding-bottom:34px;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.gt14-eyebrow{
  display:flex;
  justify-content:space-between;
  color:var(--home-muted);
  font:500 11px/1.2 var(--mono);
  letter-spacing:.01em;
}
.gt14-hero-copy{
  align-self:center;
  display:grid;
  grid-template-columns:minmax(0,7.2fr) minmax(300px,4.8fr);
  gap:clamp(46px,7vw,118px);
  align-items:end;
  padding:54px 0 64px;
}
.gt14-hero h1{
  margin:0;
  max-width:900px;
  font-family:"Avenir Next","Segoe UI Variable Display","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(54px,6.2vw,92px);
  line-height:.94;
  font-weight:560;
  letter-spacing:-.062em;
  text-wrap:balance;
}
.gt14-intro{
  max-width:430px;
  padding-bottom:6px;
}
.gt14-intro p{
  margin:0 0 34px;
  color:var(--home-text);
  font-size:17px;
  line-height:1.62;
  letter-spacing:-.014em;
}
.gt14-primary{
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:0 0 7px;
  border-bottom:1px solid var(--home-ink);
  color:var(--home-ink);
  text-decoration:none;
  font-size:13px;
  font-weight:560;
  transition:gap .25s var(--ease),opacity .2s ease;
}
.gt14-primary:hover{gap:25px;opacity:.72}
.gt14-hero-foot{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--home-line);
  color:var(--home-text);
  font-size:12px;
}
.gt14-hero-foot span{padding:17px 20px 0 0}
.gt14-hero-foot span+span{padding-left:20px;border-left:1px solid var(--home-line)}

.gt14-thesis{
  padding:132px 0 142px;
  background:var(--home-bg);
  border-bottom:1px solid var(--home-line);
}
.gt14-thesis-grid{
  display:grid;
  grid-template-columns:2.2fr 9.8fr;
  gap:44px;
}
.gt14-thesis-label{
  padding-top:8px;
  color:var(--home-muted);
  font:500 10px/1.4 var(--mono);
}
.gt14-thesis-main{
  display:grid;
  grid-template-columns:minmax(0,7fr) minmax(280px,3fr);
  gap:clamp(42px,7vw,110px);
  align-items:start;
}
.gt14-lede{
  margin:0;
  max-width:820px;
  font-family:"Avenir Next","Segoe UI Variable Display","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(31px,3vw,45px);
  line-height:1.06;
  font-weight:520;
  letter-spacing:-.045em;
}
.gt14-body{
  margin:4px 0 0;
  color:var(--home-text);
  font-size:14px;
  line-height:1.75;
}

.gt14-principles{
  padding:118px 0 132px;
  background:var(--home-surface);
  border-bottom:1px solid var(--home-line);
}
.gt14-section-head{
  display:grid;
  grid-template-columns:2.2fr 9.8fr;
  gap:44px;
  align-items:end;
  padding-bottom:36px;
  border-bottom:1px solid var(--home-line);
}
.gt14-section-head>span{
  color:var(--home-muted);
  font:500 10px/1.4 var(--mono);
}
.gt14-section-head h2{
  margin:0;
  max-width:650px;
  font-family:"Avenir Next","Segoe UI Variable Display","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(30px,2.8vw,42px);
  line-height:1.05;
  font-weight:520;
  letter-spacing:-.042em;
}
.gt14-principle-grid{
  margin-left:calc((100% + 44px) * .1833);
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.gt14-principle-grid article{
  min-height:260px;
  padding:28px 34px 12px 0;
  display:flex;
  flex-direction:column;
}
.gt14-principle-grid article+article{padding-left:34px;border-left:1px solid var(--home-line)}
.gt14-num{
  margin-bottom:auto;
  color:var(--home-muted);
  font:500 10px/1 var(--mono);
}
.gt14-principle-grid h3{
  margin:58px 0 13px;
  font-size:20px;
  line-height:1.1;
  font-weight:590;
  letter-spacing:-.028em;
}
.gt14-principle-grid p{
  margin:0;
  max-width:315px;
  color:var(--home-text);
  font-size:13px;
  line-height:1.64;
}

.gt14-exit{padding:70px 0 72px;background:var(--home-bg)}
.gt14-exit-grid{
  display:grid;
  grid-template-columns:8fr 4fr;
  gap:44px;
  align-items:end;
}
.gt14-exit p{
  margin:0;
  max-width:670px;
  color:var(--home-text);
  font-size:20px;
  line-height:1.45;
  letter-spacing:-.025em;
}
.gt14-exit a{
  justify-self:end;
  display:flex;
  gap:20px;
  align-items:center;
  border-bottom:1px solid currentColor;
  padding-bottom:7px;
  color:var(--home-ink);
  text-decoration:none;
  font-size:13px;
  font-weight:560;
  transition:gap .25s var(--ease),opacity .2s ease;
}
.gt14-exit a:hover{gap:27px;opacity:.72}

@media (max-width:980px){
  .gt14-hero-copy{grid-template-columns:1fr;gap:36px;align-items:start}
  .gt14-intro{max-width:560px}
  .gt14-thesis-grid,.gt14-section-head{grid-template-columns:1fr;gap:24px}
  .gt14-thesis-main{grid-template-columns:minmax(0,1.45fr) minmax(240px,.8fr);gap:44px}
  .gt14-principle-grid{margin-left:0}
}
@media (max-width:720px){
  .gt14-field{opacity:.4}
  .gt14-hero::after{background:linear-gradient(180deg,var(--home-bg) 0%,color-mix(in srgb,var(--home-bg) 82%,transparent) 100%)}
  .gt14-hero-inner{padding-top:100px;padding-bottom:24px}
  .gt14-eyebrow{font-size:9px}
  .gt14-hero-copy{padding:54px 0 48px;gap:28px}
  .gt14-hero h1{font-size:clamp(44px,13vw,62px);line-height:.96;letter-spacing:-.057em}
  .gt14-intro p{font-size:15px;line-height:1.62;margin-bottom:26px}
  .gt14-hero-foot{grid-template-columns:1fr;gap:0}
  .gt14-hero-foot span{padding:12px 0;border-top:1px solid var(--home-line)}
  .gt14-hero-foot span+span{padding-left:0;border-left:0}
  .gt14-thesis{padding:84px 0 92px}
  .gt14-thesis-main{grid-template-columns:1fr;gap:28px}
  .gt14-lede{font-size:31px}
  .gt14-principles{padding:80px 0 88px}
  .gt14-principle-grid{grid-template-columns:1fr}
  .gt14-principle-grid article{min-height:auto;padding:28px 0 34px;border-bottom:1px solid var(--home-line)}
  .gt14-principle-grid article+article{padding-left:0;border-left:0}
  .gt14-num{margin-bottom:44px}
  .gt14-principle-grid h3{margin:0 0 10px}
  .gt14-exit{padding:54px 0 58px}
  .gt14-exit-grid{grid-template-columns:1fr;gap:28px}
  .gt14-exit p{font-size:18px}
  .gt14-exit a{justify-self:start}
}
@media (prefers-reduced-motion:reduce){.gt14-field{display:none}}

/* ========================================================================
   Home v15 — high-end root page
   ======================================================================== */
.home-v15{
  --h-bg:#f4f2ec;
  --h-surface:#e9ebe5;
  --h-ink:#111611;
  --h-text:#515951;
  --h-muted:#7b827b;
  --h-line:#d3d7d0;
  --h-green:#143326;
  --h-green-2:#1a402f;
  --h-hero:#f2f3ed;
  --h-hero-muted:#a8b5ac;
  --h-hero-line:rgba(236,241,236,.17);
  background:var(--h-bg);
}
html[data-theme="dark"] .home-v15{
  --h-bg:#0f120f;
  --h-surface:#171b17;
  --h-ink:#f1f2ed;
  --h-text:#bcc3bd;
  --h-muted:#8e978f;
  --h-line:#2b312b;
  --h-green:#10291f;
  --h-green-2:#17382a;
  --h-hero:#f2f3ed;
  --h-hero-muted:#a7b5aa;
  --h-hero-line:rgba(236,241,236,.16);
}
.home-v15 main{background:var(--h-bg);color:var(--h-ink)}
.home-v15 .gt15-header:not(.scrolled):not(.menu-open){color:var(--h-hero)}
.home-v15 .gt15-header:not(.scrolled):not(.menu-open) .site-nav a,
.home-v15 .gt15-header:not(.scrolled):not(.menu-open) .theme-toggle,
.home-v15 .gt15-header:not(.scrolled):not(.menu-open) .brand-ai{color:var(--h-hero-muted)}
.home-v15 .gt15-header:not(.scrolled):not(.menu-open) .brand img{filter:brightness(0) invert(1);opacity:.96}

.gt15-hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  background:var(--h-green);
  color:var(--h-hero);
}
.gt15-field{position:absolute;inset:0;width:100%;height:100%;opacity:.95;pointer-events:none}
.gt15-noise{position:absolute;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}
.gt15-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(20,51,38,.98) 0%,rgba(20,51,38,.92) 42%,rgba(20,51,38,.36) 100%)}
.gt15-hero-inner{position:relative;z-index:2;min-height:100svh;padding-top:110px;padding-bottom:30px;display:grid;grid-template-rows:auto 1fr auto}
.gt15-topline{display:flex;justify-content:space-between;color:var(--h-hero-muted);font:500 10px/1.3 var(--mono);letter-spacing:.02em}
.gt15-hero-main{align-self:center;display:grid;grid-template-columns:minmax(0,7.5fr) minmax(300px,4.5fr);gap:clamp(56px,8vw,136px);align-items:end;padding:52px 0 70px}
.gt15-hero h1{margin:0;max-width:850px;font-family:"Avenir Next","Segoe UI Variable Display","Helvetica Neue",Arial,sans-serif;font-size:clamp(58px,6vw,90px);line-height:.93;font-weight:540;letter-spacing:-.064em;text-wrap:balance}
.gt15-intro{max-width:440px;padding-bottom:7px}
.gt15-intro>p{margin:0 0 36px;color:#d2d9d3;font-size:17px;line-height:1.62;letter-spacing:-.012em}
.gt15-actions{display:flex;flex-wrap:wrap;gap:24px 34px}
.gt15-actions a{display:inline-flex;align-items:center;gap:17px;padding-bottom:7px;border-bottom:1px solid rgba(242,243,237,.72);color:var(--h-hero);text-decoration:none;font-size:12px;font-weight:570;transition:gap .22s var(--ease),opacity .2s ease}
.gt15-actions a:hover{gap:23px;opacity:.72}
.gt15-bottomline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--h-hero-line);color:var(--h-hero-muted);font-size:11px}
.gt15-bottomline p{margin:0;padding:16px 20px 0 0}
.gt15-bottomline p+p{padding-left:20px;border-left:1px solid var(--h-hero-line)}

.gt15-position{padding:138px 0 148px;border-bottom:1px solid var(--h-line);background:var(--h-bg)}
.gt15-position-grid{display:grid;grid-template-columns:2.2fr 9.8fr;gap:44px}
.gt15-index{color:var(--h-muted);font:500 10px/1.4 var(--mono);letter-spacing:.01em}
.gt15-position-copy{display:grid;grid-template-columns:minmax(0,7fr) minmax(280px,3fr);gap:clamp(50px,7.5vw,116px);align-items:start}
.gt15-position h2{margin:0;max-width:820px;font-size:clamp(38px,3.4vw,52px);line-height:1.03;font-weight:520;letter-spacing:-.05em}
.gt15-position-copy>p{margin:3px 0 0;color:var(--h-text);font-size:14px;line-height:1.76}

.gt15-principles{padding:120px 0 126px;background:var(--h-surface);border-bottom:1px solid var(--h-line)}
.gt15-section-head{display:grid;grid-template-columns:2.2fr 9.8fr;gap:44px;align-items:end;padding-bottom:40px;border-bottom:1px solid var(--h-line)}
.gt15-section-head h2{margin:0;max-width:720px;font-size:clamp(34px,3vw,46px);line-height:1.04;font-weight:520;letter-spacing:-.046em}
.gt15-principle-list{margin-left:calc((100% + 44px) * .1833);display:grid;grid-template-columns:repeat(3,1fr)}
.gt15-principle-list article{min-height:290px;padding:30px 38px 12px 0;display:flex;flex-direction:column}
.gt15-principle-list article+article{padding-left:38px;border-left:1px solid var(--h-line)}
.gt15-principle-list article>span{color:var(--h-muted);font:500 10px/1 var(--mono)}
.gt15-principle-list h3{margin:auto 0 14px;max-width:280px;font-size:20px;line-height:1.1;font-weight:590;letter-spacing:-.03em}
.gt15-principle-list p{margin:0;max-width:320px;color:var(--h-text);font-size:13px;line-height:1.65}

.gt15-technology-bridge{padding:104px 0 110px;background:var(--h-bg)}
.gt15-bridge-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(60px,8vw,130px);align-items:end}
.gt15-bridge-grid h2{margin:28px 0 0;max-width:650px;font-size:clamp(34px,3vw,46px);line-height:1.04;font-weight:520;letter-spacing:-.046em}
.gt15-bridge-grid>div:last-child{max-width:430px;justify-self:end}
.gt15-bridge-grid p{margin:0 0 30px;color:var(--h-text);font-size:14px;line-height:1.72}
.gt15-bridge-grid a{display:inline-flex;align-items:center;gap:18px;padding-bottom:7px;border-bottom:1px solid currentColor;color:var(--h-ink);text-decoration:none;font-size:12px;font-weight:570;transition:gap .22s var(--ease),opacity .2s ease}
.gt15-bridge-grid a:hover{gap:24px;opacity:.72}

@media (max-width:980px){
  .gt15-hero-main{grid-template-columns:1fr;gap:38px}
  .gt15-intro{max-width:600px}
  .gt15-position-grid,.gt15-section-head{grid-template-columns:1fr;gap:25px}
  .gt15-position-copy{grid-template-columns:1.45fr .8fr;gap:48px}
  .gt15-principle-list{margin-left:0}
}
@media (max-width:720px){
  .gt15-hero::after{background:linear-gradient(180deg,rgba(20,51,38,.92),rgba(20,51,38,.66))}
  .gt15-field{opacity:.5}
  .gt15-hero-inner{padding-top:98px;padding-bottom:22px}
  .gt15-topline{font-size:9px}
  .gt15-hero-main{padding:56px 0 48px;gap:28px}
  .gt15-hero h1{font-size:clamp(47px,13vw,62px);line-height:.95}
  .gt15-intro>p{font-size:15px;line-height:1.62;margin-bottom:27px}
  .gt15-bottomline{grid-template-columns:1fr}
  .gt15-bottomline p{padding:11px 0;border-top:1px solid var(--h-hero-line)}
  .gt15-bottomline p+p{padding-left:0;border-left:0}
  .gt15-position{padding:88px 0 94px}
  .gt15-position-copy{grid-template-columns:1fr;gap:30px}
  .gt15-position h2{font-size:34px}
  .gt15-principles{padding:82px 0 88px}
  .gt15-principle-list{grid-template-columns:1fr}
  .gt15-principle-list article{min-height:auto;padding:27px 0 34px;border-bottom:1px solid var(--h-line)}
  .gt15-principle-list article+article{padding-left:0;border-left:0}
  .gt15-principle-list article>span{margin-bottom:44px}
  .gt15-principle-list h3{margin:0 0 10px}
  .gt15-technology-bridge{padding:80px 0 86px}
  .gt15-bridge-grid{grid-template-columns:1fr;gap:38px}
  .gt15-bridge-grid>div:last-child{justify-self:start;max-width:100%}
}
@media (prefers-reduced-motion:reduce){.gt15-field{display:none}}

/* v15 hero brand lockup refinement */
.gt15-display-brand{
  align-self:start;
  display:flex;
  align-items:flex-start;
  width:max-content;
  font-family:"Avenir Next","Segoe UI Variable Display","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(58px,6.4vw,94px);
  line-height:.86;
  font-weight:560;
  letter-spacing:-.066em;
  color:var(--h-hero);
}
.gt15-display-brand span{
  margin:.38em 0 0 .55em;
  color:var(--h-hero-muted);
  font:600 10px/1 var(--mono);
  letter-spacing:.06em;
}
.gt15-hero-main{padding-top:42px}
@media (max-width:720px){
  .gt15-display-brand{font-size:clamp(48px,15vw,64px)}
  .gt15-display-brand span{font-size:8px;margin-top:.45em}
  .gt15-hero-main{padding-top:38px}
}

/* Cookie consent — polished bar ------------------------------------------ */
.cookie-banner{
  left:50%;right:auto;bottom:22px;
  width:min(920px,calc(100% - 44px));
  padding:16px 18px 16px 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  background:var(--bg);
  color:var(--ink);
  border:1px solid var(--line-strong);
  box-shadow:0 18px 55px rgba(12,18,14,.16);
  opacity:0;
  transform:translate(-50%,12px);
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}
html[data-theme="dark"] .cookie-banner{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:0 22px 70px rgba(0,0,0,.35)}
.cookie-banner.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.cookie-banner h2{margin:0 0 4px;font-size:13px;font-weight:620;letter-spacing:-.02em}
.cookie-banner p{margin:0;max-width:580px;color:var(--text);font-size:11px;line-height:1.5}
.cookie-banner a{color:inherit;text-underline-offset:3px}
.cookie-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.cookie-button{min-height:34px;padding:8px 12px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:10px;cursor:pointer;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease}
.cookie-button:hover{border-color:var(--ink)}
.cookie-button.cookie-accept{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.cookie-button.cookie-accept:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
@media(max-width:720px){
  .cookie-banner{left:12px;right:12px;bottom:12px;width:auto;padding:15px;display:grid;grid-template-columns:1fr;gap:14px;transform:translateY(12px)}
  .cookie-banner.show{transform:none}
  .cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .cookie-button{width:100%}
}
@media(max-width:430px){.cookie-actions{grid-template-columns:1fr}}
/* Keep the root page immediate: only the opening scene animates. */
.home-v15 main section:not(.gt15-hero) [data-reveal]{opacity:1;transform:none;transition:none}


/* Hero background refinement — v14.1
   Remove the animated warped field; retain only a quiet, continuous forest tone. */
.home-v15 .gt15-hero{
  background:
    radial-gradient(ellipse 72% 78% at 82% 36%, rgba(73,111,88,.18) 0%, rgba(73,111,88,.07) 36%, transparent 70%),
    linear-gradient(132deg, #153629 0%, #123025 52%, #102b21 100%);
}
.home-v15 .gt15-field{display:none!important}
.home-v15 .gt15-noise{opacity:.055;mix-blend-mode:soft-light}
.home-v15 .gt15-hero::after{
  background:linear-gradient(90deg, rgba(7,22,15,.14) 0%, transparent 48%, rgba(255,255,255,.015) 100%);
}
html[data-theme="dark"] .home-v15 .gt15-hero{
  background:
    radial-gradient(ellipse 72% 78% at 82% 36%, rgba(62,99,77,.16) 0%, rgba(62,99,77,.055) 38%, transparent 70%),
    linear-gradient(132deg, #102c21 0%, #0e281e 55%, #0c241b 100%);
}
@media (max-width:720px){
  .home-v15 .gt15-hero::after{
    background:linear-gradient(180deg, rgba(7,22,15,.08) 0%, transparent 55%, rgba(7,22,15,.08) 100%);
  }
}

/* ========================================================================
   GreenTrust v16 — editorial / local-first refinement
   Preserves the v14 content architecture while replacing its visual system.
   ======================================================================== */
:root{
  --bg:#f2f3ed;
  --surface:#e7e9e1;
  --surface-2:#dde1d7;
  --ink:#101511;
  --text:#465048;
  --muted:#6e786f;
  --line:#cbd0c7;
  --line-strong:#aeb7ad;
  --accent:#123d2c;
  --accent-strong:#0a2b1e;
  --accent-soft:#dce7dc;
  --signal:#b5da58;
  --on-accent:#f6f7f0;
  --header:rgba(242,243,237,.92);
  --shadow:0 16px 52px rgba(12,26,18,.10);
  --shell:min(1420px,calc(100% - 112px));
  --display:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --body:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
html[data-theme="dark"]{
  --bg:#0b0e0c;
  --surface:#121713;
  --surface-2:#182019;
  --ink:#f1f3ec;
  --text:#b9c1ba;
  --muted:#89948b;
  --line:#283029;
  --line-strong:#3a453c;
  --accent:#a6c8ae;
  --accent-strong:#cae0ce;
  --accent-soft:#17271d;
  --signal:#b9da62;
  --on-accent:#0b130d;
  --header:rgba(11,14,12,.92);
  --shadow:0 20px 64px rgba(0,0,0,.34);
}
body{font-size:15px;line-height:1.58;letter-spacing:-.006em}
.shell,.wrap{width:var(--shell)}

/* Never hide primary content behind JS reveal states. */
.js [data-reveal],.js .reveal{opacity:1!important;transform:none!important;transition:none!important}

/* Header --------------------------------------------------------------- */
.site-header{
  height:76px;padding:0 34px;
  grid-template-columns:1fr auto 1fr;
  border-bottom:1px solid transparent;
}
.site-header.scrolled,.site-header.menu-open{background:var(--header);border-color:var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{gap:9px;text-decoration:none;font-weight:650;letter-spacing:-.035em}
.brand img{width:24px;height:24px}
.brand-name{font-size:15px}.brand-ai{font:600 9px/1 var(--mono);letter-spacing:.08em;margin-top:-7px;color:var(--muted)}
.site-nav{gap:34px}.site-nav a{font-size:12px;font-weight:560;letter-spacing:-.01em;padding:28px 0 25px}
.site-nav a::after{height:2px;bottom:20px;background:var(--signal)}
.header-actions{gap:17px;align-items:center}
.theme-toggle{min-width:58px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);background:var(--bg);font:600 10px/1 var(--mono);transition:border-color .18s ease,background .18s ease,color .18s ease}
.theme-toggle:hover{border-color:var(--ink);background:var(--ink);color:var(--bg)}

/* Homepage / v14 structure, v16 art direction ------------------------- */
.home-v16{
  --h-bg:var(--bg);--h-surface:var(--surface);--h-ink:var(--ink);--h-text:var(--text);--h-muted:var(--muted);--h-line:var(--line);
  --h-green:#0d3022;--h-green-2:#123a29;--h-hero:#f4f6ef;--h-hero-muted:#b8c7bc;--h-hero-line:rgba(239,245,239,.20)
}
html[data-theme="dark"] .home-v16{--h-green:#0a2419;--h-green-2:#0c2b1e;--h-hero:#f1f4ed;--h-hero-muted:#aabbb0;--h-hero-line:rgba(239,245,239,.18)}
.home-v16 .gt15-header:not(.scrolled):not(.menu-open) .theme-toggle{color:var(--h-hero);border-color:rgba(244,246,239,.42);background:rgba(255,255,255,.02)}
.home-v16 .gt15-header:not(.scrolled):not(.menu-open) .theme-toggle:hover{color:#0b2218;background:var(--signal);border-color:var(--signal)}
.home-v16 .gt15-hero{
  min-height:100svh;
  background:linear-gradient(90deg,#0d3022 0 73%,#103526 73% 100%);
  border-bottom:1px solid rgba(255,255,255,.12)
}
html[data-theme="dark"] .home-v16 .gt15-hero{background:linear-gradient(90deg,#091f16 0 73%,#0c261b 73% 100%)}
.home-v16 .gt15-hero::before{content:"LOCAL / 01";position:absolute;right:28px;top:50%;transform:rotate(90deg) translateX(50%);transform-origin:right top;color:rgba(239,246,240,.34);font:600 9px/1 var(--mono);letter-spacing:.18em;z-index:2}
.home-v16 .gt15-hero::after{content:"";position:absolute;top:76px;bottom:0;left:73%;width:1px;background:rgba(239,246,240,.12);pointer-events:none}
.home-v16 .gt15-noise{display:none}
.gt15-hero-inner{padding-top:122px;padding-bottom:32px}
.gt15-display-brand{font-size:clamp(70px,7.7vw,116px);font-weight:560;line-height:.82;letter-spacing:-.075em}
.gt15-display-brand span{color:var(--signal);font-size:9px;margin:.52em 0 0 .7em}
.gt15-hero-main{grid-template-columns:minmax(0,7.2fr) minmax(300px,3.1fr);gap:clamp(52px,7vw,120px);padding:62px 0 74px;align-items:end}
.gt15-hero h1{max-width:820px;font-size:clamp(56px,5.7vw,88px);line-height:.94;font-weight:510;letter-spacing:-.065em}
.gt15-intro{max-width:390px;border-top:1px solid var(--h-hero-line);padding-top:20px;padding-bottom:2px}
.gt15-intro>p{margin:0 0 31px;color:#d6ded8;font-size:15px;line-height:1.67}
.gt15-actions{gap:10px;flex-wrap:wrap}
.gt15-actions a{min-height:42px;padding:0 15px;border:1px solid rgba(244,246,239,.48);border-radius:2px;color:var(--h-hero);font-size:11px;font-weight:620;gap:18px;background:transparent;transition:background .16s ease,color .16s ease,border-color .16s ease}
.gt15-actions a:first-child{background:var(--signal);border-color:var(--signal);color:#102015}
.gt15-actions a:hover{gap:18px;opacity:1;background:#f4f6ef;color:#102015;border-color:#f4f6ef}
.gt15-bottomline{grid-template-columns:repeat(3,1fr);font:560 10px/1.4 var(--mono);letter-spacing:.02em}
.gt15-bottomline p{padding-top:17px;text-transform:uppercase}
.gt15-bottomline p:first-child{color:var(--signal)}

.gt15-position{padding:130px 0 138px;background:var(--bg);border-bottom:1px solid var(--line)}
.gt15-position-grid{grid-template-columns:2fr 10fr;gap:48px}
.gt15-index{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.gt15-position-copy{grid-template-columns:minmax(0,7.4fr) minmax(260px,2.6fr);gap:clamp(48px,8vw,126px)}
.gt15-position h2{font-size:clamp(42px,4vw,62px);font-weight:500;line-height:1;letter-spacing:-.058em}
.gt15-position-copy>p{font-size:15px;line-height:1.72;padding-top:5px}

.gt15-principles{padding:0;background:var(--surface);border-bottom:1px solid var(--line)}
.gt15-section-head{padding:94px 0 38px;grid-template-columns:2fr 10fr;gap:48px}
.gt15-section-head h2{font-size:clamp(37px,3.35vw,52px);font-weight:510;line-height:1.02}
.gt15-principle-list{margin-left:calc((100% + 48px) * .1666);border-left:1px solid var(--line)}
.gt15-principle-list article{min-height:340px;padding:28px 34px 32px;border-top:0;position:relative}
.gt15-principle-list article+article{padding-left:34px}
.gt15-principle-list article::after{content:"";position:absolute;left:34px;right:34px;bottom:28px;height:3px;background:var(--line)}
.gt15-principle-list article:first-child::after{background:var(--signal)}
.gt15-principle-list article>span{font-size:9px;letter-spacing:.12em}
.gt15-principle-list h3{font-size:23px;font-weight:580;max-width:260px;margin:auto 0 14px}
.gt15-principle-list p{font-size:13px;line-height:1.65;padding-bottom:28px}

.gt15-technology-bridge{padding:116px 0 122px;background:var(--bg)}
.gt15-bridge-grid{grid-template-columns:7.3fr 4.7fr;gap:clamp(64px,9vw,140px)}
.gt15-bridge-grid h2{font-size:clamp(40px,3.6vw,56px);font-weight:500;line-height:1;letter-spacing:-.055em}
.gt15-bridge-grid>div:last-child{padding-top:34px;border-top:1px solid var(--line);max-width:460px}
.gt15-bridge-grid p{font-size:14px;line-height:1.7}
.gt15-bridge-grid a,.arrow-link{min-height:40px;padding:0 13px!important;border:1px solid var(--line-strong)!important;border-radius:2px!important;text-decoration:none!important;font-size:11px!important;font-weight:620!important;gap:18px!important;transition:background .16s ease,color .16s ease,border-color .16s ease!important}
.gt15-bridge-grid a:hover,.arrow-link:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)!important;opacity:1!important;gap:18px!important}

/* Interior pages ------------------------------------------------------- */
.page-hero{padding:164px 0 82px;grid-template-columns:2fr 7.2fr 2.8fr;gap:32px}
.page-kicker{font:600 9px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.page-hero h1{font-size:clamp(52px,5.6vw,78px);line-height:.94;font-weight:510;letter-spacing:-.065em}
.page-lead{font-size:14px;line-height:1.72;border-top:1px solid var(--line);padding-top:18px;color:var(--text)}

.tech-layout{padding:0 0 118px;grid-template-columns:2fr 10fr;gap:48px}
.tech-index{top:112px;padding-top:31px}.tech-index a{font:550 10px/1.25 var(--mono);letter-spacing:.02em;padding:8px 0;color:var(--muted)}
.tech-index a.active{color:var(--ink)}
.tech-index a.active::before{content:"";display:inline-block;width:18px;height:2px;background:var(--signal);vertical-align:middle;margin-right:8px}
.tech-articles article{grid-template-columns:2.5fr 3.2fr 4.3fr;gap:34px;padding:48px 0 56px;border-bottom:1px solid var(--line)}
.tech-articles h2{font-size:31px;font-weight:530;letter-spacing:-.04em}.tech-principle{font-size:16px;line-height:1.42;color:var(--ink)}.tech-articles article>p:last-child{font-size:13px;line-height:1.7}
.dark-surface{background:#0d3022;color:#f2f5ef}
html[data-theme="dark"] .dark-surface{background:#071a12;color:#f2f5ef}
.tech-close{padding:96px 0}.tech-close-grid{grid-template-columns:2fr 7.2fr 2.8fr;gap:32px}.tech-close h2{font-size:clamp(40px,3.7vw,58px);font-weight:500;line-height:1}.tech-close p:last-child{color:#bdc9c0;font-size:13px;line-height:1.65}

.founders{gap:22px;padding:58px 0 112px}.founder{border-top:1px solid var(--line);padding-top:14px}.founder figure{aspect-ratio:5/6;background:var(--surface)}.founder figure img{filter:saturate(.72) contrast(1.02)}
html[data-theme="dark"] .founder figure img{filter:saturate(.62) brightness(.88) contrast(1.06)}
.founder-meta{grid-template-columns:2fr 3fr;padding-top:20px}.founder-meta h2{font-size:22px}.founder-meta>div>p{font:540 10px/1.4 var(--mono);letter-spacing:.02em}.founder-meta>p{font-size:13px}
.company-story{padding:104px 0}.company-story-grid{grid-template-columns:2fr 6fr 4fr;gap:48px}.company-story h2{font-size:clamp(38px,3.4vw,54px);font-weight:500;line-height:1.02}.company-story-grid>div p{font-size:13px;color:#becac1}
.company-facts{padding:40px 0 84px}.company-facts>div{padding:18px 0;border-bottom:1px solid var(--line);grid-template-columns:2fr 10fr}.company-facts span{font:550 10px/1.4 var(--mono);letter-spacing:.04em;color:var(--muted)}.company-facts strong{font-size:14px;font-weight:560}.company-facts a{text-underline-offset:4px}
.company-vision{padding:84px 0 104px;grid-template-columns:2fr 7fr 3fr;gap:32px}.company-vision h2{font-size:clamp(42px,4vw,60px);font-weight:500;line-height:1.01}

.updates-list{padding:22px 0 96px}.update-entry{grid-template-columns:2fr 10fr;gap:48px;padding:34px 0 42px;border-bottom:1px solid var(--line)}.update-meta{font:550 10px/1.5 var(--mono);letter-spacing:.02em}.update-entry>div:last-child{display:grid;grid-template-columns:5.4fr 4.6fr;gap:72px}.update-entry h2{font-size:30px;line-height:1.05;font-weight:530;letter-spacing:-.045em}.update-entry p{font-size:13px;line-height:1.7;margin-top:3px}.updates-follow{padding-bottom:104px}

/* Footer --------------------------------------------------------------- */
.site-footer{border-top:1px solid var(--line);background:var(--surface)}
.footer-top{padding:72px 0 68px}.footer-wordmark{font-size:clamp(48px,5.2vw,74px);font-weight:560;letter-spacing:-.065em}.footer-wordmark span{color:var(--signal);font:650 9px/1 var(--mono);margin-left:10px;vertical-align:top}.footer-links a{font-size:12px}.footer-bottom{font:520 9px/1.4 var(--mono);letter-spacing:.02em}
.footer-cookie-button{color:var(--text)}

/* Cookie bar button contrast ------------------------------------------ */
.cookie-button{color:var(--ink);background:var(--bg)}
.cookie-button.cookie-accept{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.cookie-button.cookie-accept:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* Responsive ----------------------------------------------------------- */
@media(max-width:980px){
  :root{--shell:min(100% - 54px,1280px)}
  .home-v16 .gt15-hero{background:#0d3022}.home-v16 .gt15-hero::after,.home-v16 .gt15-hero::before{display:none}
  html[data-theme="dark"] .home-v16 .gt15-hero{background:#091f16}
  .gt15-hero-main{grid-template-columns:1fr;gap:34px}.gt15-intro{max-width:600px}
  .gt15-position-grid,.gt15-section-head{grid-template-columns:1fr;gap:24px}.gt15-position-copy{grid-template-columns:1.3fr .7fr;gap:44px}
  .gt15-principle-list{margin-left:0;border-left:0}.company-story-grid{grid-template-columns:1.3fr 5fr 3.7fr}
}
@media(max-width:720px){
  :root{--shell:calc(100% - 30px)}
  .site-header{height:64px;padding:0 15px}.site-nav{top:64px}.theme-toggle{min-width:54px;padding-inline:9px}
  .home-v16 .gt15-hero-inner{padding-top:100px}.gt15-display-brand{font-size:clamp(52px,15vw,72px)}
  .gt15-hero-main{padding:50px 0 42px}.gt15-hero h1{font-size:clamp(43px,12.6vw,61px);line-height:.96}.gt15-intro{border-top:1px solid var(--h-hero-line);padding-top:17px}.gt15-intro>p{font-size:14px}
  .gt15-actions{display:grid;grid-template-columns:1fr 1fr}.gt15-actions a{justify-content:space-between;width:100%;min-height:44px}
  .gt15-bottomline{grid-template-columns:1fr}.gt15-bottomline p{padding:11px 0;border-top:1px solid var(--h-hero-line)}.gt15-bottomline p+p{padding-left:0;border-left:0}
  .gt15-position{padding:82px 0 88px}.gt15-position-copy{grid-template-columns:1fr;gap:24px}.gt15-position h2{font-size:36px}
  .gt15-section-head{padding:72px 0 30px}.gt15-section-head h2{font-size:34px}.gt15-principle-list{grid-template-columns:1fr}.gt15-principle-list article{min-height:250px;padding:24px 0 34px}.gt15-principle-list article+article{padding-left:0;border-left:0}.gt15-principle-list article::after{left:0;right:0;bottom:22px}.gt15-principle-list article>span{margin-bottom:44px}
  .gt15-technology-bridge{padding:78px 0 86px}.gt15-bridge-grid{grid-template-columns:1fr;gap:36px}.gt15-bridge-grid>div:last-child{padding-top:22px;justify-self:start;max-width:100%}
  .page-hero{padding:118px 0 55px}.page-hero h1{font-size:44px}.page-lead{padding-top:15px}
  .tech-layout{padding:28px 0 72px}.tech-index{top:auto;padding-top:0}.tech-articles article{grid-template-columns:1fr;padding:28px 0 34px;gap:10px}.tech-articles h2{font-size:26px}.tech-principle{font-size:15px}.tech-close{padding:66px 0}.tech-close-grid{display:block}.tech-close h2{font-size:37px;margin:20px 0}
  .founders{padding:38px 0 76px}.founder-meta{display:block}.founder-meta>p{margin-top:15px}.company-story{padding:70px 0}.company-story-grid{display:block}.company-story h2{font-size:37px;margin:21px 0}.company-facts{padding:22px 0 58px}.company-facts>div{grid-template-columns:1fr;padding:15px 0}.company-vision{display:block;padding:68px 0 80px}.company-vision h2{font-size:38px;margin:22px 0 28px}
  .updates-list{padding:24px 0 68px}.update-entry{display:block;padding:24px 0 32px}.update-meta{margin-bottom:18px}.update-entry>div:last-child{display:block}.update-entry h2{font-size:27px}.update-entry p{margin-top:14px}.updates-follow{padding-bottom:76px}
  .footer-top{padding:56px 0}.footer-wordmark{font-size:45px}
}
@media(max-width:430px){.gt15-actions{grid-template-columns:1fr}.gt15-display-brand{font-size:50px}.site-header .brand-name{font-size:14px}.theme-toggle{font-size:9px}}

/* ========================================================================
   GreenTrust v17 — motion system
   Progressive enhancement only: content remains visible without JS.
   ======================================================================== */
:root{
  --motion-fast:180ms;
  --motion-ui:280ms;
  --motion-section:720ms;
  --motion-slow:980ms;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --ease-snap:cubic-bezier(.2,.8,.2,1);
}

/* Cross-document navigation: restrained, quick, never theatrical. */
::view-transition-old(root){animation:gt17-page-out 180ms var(--ease-soft) both}
::view-transition-new(root){animation:gt17-page-in 420ms var(--ease-out) both}
@keyframes gt17-page-out{to{opacity:0;transform:translateY(-4px);filter:blur(1.5px)}}
@keyframes gt17-page-in{from{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}

/* Theme changes get their own softer crossfade when View Transitions exist. */
html.theme-switching::view-transition-old(root){animation:gt17-theme-old 260ms ease both}
html.theme-switching::view-transition-new(root){animation:gt17-theme-new 420ms var(--ease-out) both}
@keyframes gt17-theme-old{to{opacity:0}}
@keyframes gt17-theme-new{from{opacity:0}to{opacity:1}}

/* Basic surfaces transition only while a manual theme switch is happening. */
html.theme-fallback *,html.theme-fallback *::before,html.theme-fallback *::after{
  transition-property:background-color,color,border-color,box-shadow,fill,stroke!important;
  transition-duration:360ms!important;
  transition-timing-function:var(--ease-soft)!important;
}

/* Header feels attached to the page rather than simply appearing. */
.site-header{
  transition:height var(--motion-ui) var(--ease-out),background-color var(--motion-ui) ease,border-color var(--motion-ui) ease,backdrop-filter var(--motion-ui) ease,box-shadow var(--motion-ui) ease,transform var(--motion-ui) var(--ease-out);
}
.site-header.scrolled{box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 2%,transparent)}
.brand img,.brand-name,.brand-ai{transition:transform var(--motion-ui) var(--ease-out),opacity var(--motion-ui) ease,filter var(--motion-ui) ease,color var(--motion-ui) ease}
.brand:hover img{transform:rotate(-4deg) scale(1.035)}
.brand:hover .brand-name{transform:translateX(1px)}
.site-nav a{transition:color var(--motion-fast) ease,opacity var(--motion-fast) ease}
.site-nav a::after{transform:scaleX(0);transform-origin:right center;transition:transform 360ms var(--ease-out),background-color var(--motion-ui) ease}
.site-nav a:hover::after,.site-nav a.active::after{transform:scaleX(1);transform-origin:left center}
.theme-toggle{position:relative;overflow:hidden;transform:translateZ(0);transition:background-color var(--motion-ui) ease,color var(--motion-ui) ease,border-color var(--motion-ui) ease,transform var(--motion-fast) var(--ease-out)}
.theme-toggle:hover{transform:translateY(-1px)}
.theme-toggle:active{transform:translateY(0) scale(.97)}
.menu-toggle span{transform-origin:center;transition:transform 300ms var(--ease-out),opacity 200ms ease}
.site-header.menu-open .menu-toggle span:first-child{transform:translateY(3px) rotate(45deg)}
.site-header.menu-open .menu-toggle span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* Links / CTAs: movement is carried by the arrow, not by layout jumps. */
.primary-link,.quiet-link,.text-link,.arrow-link,.gt15-actions a,.gt15-bridge-grid a{
  position:relative;
  transition:background-color var(--motion-ui) var(--ease-out),color var(--motion-ui) ease,border-color var(--motion-ui) ease,opacity var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-ui) ease!important;
}
.primary-link span,.quiet-link span,.text-link span,.arrow-link span,.gt15-actions a span,.gt15-bridge-grid a span{display:inline-block;transition:transform 340ms var(--ease-out)}
.primary-link:hover span,.quiet-link:hover span,.text-link:hover span,.arrow-link:hover span,.gt15-actions a:hover span,.gt15-bridge-grid a:hover span{transform:translate(3px,-3px)}
.gt15-actions a:hover,.gt15-bridge-grid a:hover,.arrow-link:hover{transform:translateY(-2px);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 10%,transparent)}
.gt15-actions a:active,.gt15-bridge-grid a:active,.arrow-link:active{transform:translateY(0) scale(.985);box-shadow:none}

/* Progressive scroll reveal. JS only opts in after observers are ready. */
.js.motion-ready [data-reveal],.js.motion-ready .reveal{
  opacity:0!important;
  transform:translate3d(0,24px,0)!important;
  filter:blur(3px);
  transition:opacity var(--motion-section) var(--ease-out),transform var(--motion-section) var(--ease-out),filter var(--motion-section) ease!important;
  transition-delay:var(--reveal-delay,0ms)!important;
  will-change:opacity,transform;
}
.js.motion-ready [data-reveal].is-visible,.js.motion-ready .reveal.is-visible{
  opacity:1!important;
  transform:none!important;
  filter:none;
}

/* Hero entrance has its own hierarchy. */
.js.motion-ready .gt15-hero .gt15-display-brand{--reveal-delay:40ms}
.js.motion-ready .gt15-hero h1{--reveal-delay:120ms}
.js.motion-ready .gt15-hero .gt15-intro{--reveal-delay:200ms}
.js.motion-ready .gt15-hero .gt15-bottomline{--reveal-delay:300ms}
.gt15-display-brand,.gt15-hero h1{transform-origin:left bottom}

/* Tiny scroll response in the hero; no floating graphics, no parallax circus. */
.gt15-hero-inner{transition:transform 80ms linear}
.js.motion-rich .gt15-hero-inner{transform:translate3d(0,var(--hero-drift,0px),0)}
.home-v16 .gt15-hero::after{transform:scaleY(0);transform-origin:top;animation:gt17-rule-in 900ms 180ms var(--ease-out) forwards}
@keyframes gt17-rule-in{to{transform:scaleY(1)}}

/* Section rules draw in with the content. */
.gt15-position-copy,.gt15-section-head,.gt15-bridge-grid>div:last-child,.page-lead,.founder,.tech-articles article,.update-entry{position:relative}
.js.motion-ready .gt15-position-copy::before,.js.motion-ready .gt15-section-head::after,.js.motion-ready .page-lead::before{
  transform:scaleX(0);transform-origin:left;transition:transform 820ms var(--ease-out) 100ms;
}
.js.motion-ready .gt15-position-copy.is-visible::before,.js.motion-ready .gt15-section-head.is-visible::after,.js.motion-ready .page-lead.is-visible::before{transform:scaleX(1)}

/* Principle cards get physicality without turning into SaaS cards. */
.gt15-principle-list article{
  transition:background-color 420ms var(--ease-out),transform 420ms var(--ease-out),color 300ms ease;
}
.gt15-principle-list article::after{transform-origin:left center;transition:transform 520ms var(--ease-out),background-color 320ms ease}
.gt15-principle-list article:hover{background:color-mix(in srgb,var(--bg) 36%,transparent);transform:translateY(-3px)}
.gt15-principle-list article:hover::after{transform:scaleX(.72)}
.gt15-principle-list h3,.gt15-principle-list p{transition:transform 420ms var(--ease-out),color 280ms ease}
.gt15-principle-list article:hover h3{transform:translateY(-2px)}

/* Technology / company / updates pages. */
.tech-index a{transition:color var(--motion-ui) ease,transform var(--motion-ui) var(--ease-out)}
.tech-index a:hover{transform:translateX(3px)}
.tech-index a.active::before{animation:gt17-index-in 360ms var(--ease-out) both}
@keyframes gt17-index-in{from{width:0;opacity:0}to{width:18px;opacity:1}}
.tech-articles article{transition:background-color 440ms var(--ease-out),padding-left 440ms var(--ease-out)}
.tech-articles article:hover{background:color-mix(in srgb,var(--surface) 42%,transparent);padding-left:12px}
.founder figure{overflow:hidden}
.founder figure img{transition:transform 900ms var(--ease-out),filter 600ms ease}
.founder:hover figure img{transform:scale(1.018)}
.founder-meta h2,.update-entry h2{transition:color 240ms ease,transform 420ms var(--ease-out)}
.founder:hover .founder-meta h2,.update-entry:hover h2{transform:translateX(3px);color:var(--accent)}
.update-entry{transition:background-color 360ms var(--ease-out),padding-left 420ms var(--ease-out),padding-right 420ms var(--ease-out)}
.update-entry:hover{background:color-mix(in srgb,var(--surface) 48%,transparent);padding-left:12px;padding-right:12px}

/* Footer details. */
.footer-wordmark{transition:opacity 250ms ease,transform 500ms var(--ease-out)}
.footer-wordmark:hover{transform:translateX(3px);opacity:.82}
.footer-links a,.footer-bottom a,.footer-cookie-button{position:relative;transition:color 220ms ease,opacity 220ms ease}
.footer-links a:hover,.footer-bottom a:hover,.footer-cookie-button:hover{color:var(--accent);opacity:1}

/* Cookie panel enters with the same motion language. */
.cookie-banner{transition:opacity 320ms ease,transform 480ms var(--ease-out),box-shadow 320ms ease!important}
.cookie-button{transition:background-color 260ms ease,border-color 260ms ease,color 260ms ease,transform 180ms var(--ease-out)!important}
.cookie-button:hover{transform:translateY(-1px)}
.cookie-button:active{transform:scale(.98)}

/* Keyboard users get a clear, calm focus state. */
a:focus-visible,button:focus-visible{outline:2px solid var(--signal);outline-offset:4px}

@media(max-width:760px){
  .site-nav{transition:opacity 300ms var(--ease-out),transform 360ms var(--ease-out),visibility 0s linear 360ms}
  .site-header:not(.menu-open) .site-nav{opacity:0;transform:translateY(-10px);pointer-events:none;visibility:hidden}
  .site-header.menu-open .site-nav{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:0s}
  .tech-articles article:hover{padding-left:0;background:transparent}
  .update-entry:hover{padding-left:0;padding-right:0}
  .gt15-principle-list article:hover{transform:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}
  .js.motion-ready [data-reveal],.js.motion-ready .reveal{opacity:1!important;transform:none!important;filter:none!important}
  .js.motion-rich .gt15-hero-inner{transform:none!important}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* v17 small compatibility fixes --------------------------------------- */
.site-nav a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:20px;
  height:2px;
  background:var(--signal);
}
@media(max-width:820px){
  .site-nav{display:flex!important}
  .site-nav a::after{display:none!important}
}

/* ======================================================================
   GreenTrust v18 — premium motion / cross-page continuity
   ====================================================================== */
:root{
  --motion-tap:150ms;
  --motion-ui:300ms;
  --motion-soft:520ms;
  --motion-section:820ms;
  --motion-page:680ms;
  --ease-premium:cubic-bezier(.16,1,.3,1);
  --ease-smooth:cubic-bezier(.22,1,.36,1);
  --ease-exit:cubic-bezier(.4,0,1,1);
  --theme-x:92vw;
  --theme-y:34px;
  --theme-r:120vw;
}

html{scroll-padding-top:96px}
body{overflow-x:clip}
main{view-transition-name:none}
.site-header{view-transition-name:gt-header}

/* Cross-document navigation: the chrome stays anchored while the page breathes. */
::view-transition-group(root),
::view-transition-group(gt-main),
::view-transition-group(gt-header){animation-duration:var(--motion-page);animation-timing-function:var(--ease-premium)}

::view-transition-old(root){animation:gt18-root-out 260ms var(--ease-exit) both;mix-blend-mode:normal}
::view-transition-new(root){animation:gt18-root-in 660ms 34ms var(--ease-premium) both;mix-blend-mode:normal}
::view-transition-old(gt-main){animation:gt18-main-out 260ms var(--ease-exit) both;mix-blend-mode:normal}
::view-transition-new(gt-main){animation:gt18-main-in 660ms 34ms var(--ease-premium) both;mix-blend-mode:normal}
::view-transition-old(gt-header){animation:gt18-header-old 180ms ease both;mix-blend-mode:normal}
::view-transition-new(gt-header){animation:gt18-header-new 420ms var(--ease-premium) both;mix-blend-mode:normal}
::view-transition-group(gt-header){z-index:2200}
::view-transition-group(gt-main){z-index:2}

@keyframes gt18-root-out{to{opacity:0;transform:translate3d(0,-6px,0);filter:blur(1.4px)}}
@keyframes gt18-root-in{from{opacity:0;transform:translate3d(0,12px,0);filter:blur(2.2px)}to{opacity:1;transform:none;filter:none}}
@keyframes gt18-main-out{
  to{opacity:0;transform:translate3d(0,-7px,0) scale(.998);filter:blur(1.5px)}
}
@keyframes gt18-main-in{
  from{opacity:0;transform:translate3d(0,14px,0) scale(.997);filter:blur(2.5px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes gt18-header-old{to{opacity:.86}}
@keyframes gt18-header-new{from{opacity:.86}to{opacity:1}}

/* Theme switching: a controlled radial reveal from the actual toggle. */
html.theme-switching .site-header,
html.theme-switching main{view-transition-name:none}
html.theme-switching::view-transition-old(root){animation:none;z-index:1;mix-blend-mode:normal}
html.theme-switching::view-transition-new(root){
  z-index:2;
  mix-blend-mode:normal;
  animation:gt18-theme-reveal 720ms var(--ease-premium) both;
}
@keyframes gt18-theme-reveal{
  from{clip-path:circle(0 at var(--theme-x) var(--theme-y))}
  to{clip-path:circle(var(--theme-r) at var(--theme-x) var(--theme-y))}
}
html.theme-fallback *,html.theme-fallback *::before,html.theme-fallback *::after{
  transition-duration:480ms!important;
  transition-timing-function:var(--ease-smooth)!important;
}

/* Fallback page transitions for engines without View Transitions. */
main,.site-footer{transition:opacity 260ms ease,transform 420ms var(--ease-premium),filter 320ms ease}
html.route-leaving main,html.route-leaving .site-footer{opacity:0;transform:translate3d(0,-8px,0) scale(.998);filter:blur(2px)}
html.route-enter-pending main,html.route-enter-pending .site-footer{opacity:0;transform:translate3d(0,12px,0) scale(.998);filter:blur(2px)}
body::after{
  content:"";
  position:fixed;
  z-index:2600;
  inset:0;
  pointer-events:none;
  background:var(--bg);
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform 360ms var(--ease-smooth),background-color 360ms ease;
}
html.route-leaving body::after{transform:scaleY(1)}
html.route-enter-pending body::after{transform:scaleY(1);transform-origin:top}

/* A fast navigation rail gives clicks immediate feedback without slowing them. */
.site-header::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;right:0;bottom:-1px;
  height:1px;
  background:var(--signal,var(--accent));
  transform:scaleX(0);
  transform-origin:left center;
  opacity:0;
}
html.route-intent .site-header::before{animation:gt18-nav-rail 520ms var(--ease-premium) both}
@keyframes gt18-nav-rail{0%{transform:scaleX(0);opacity:1}76%{transform:scaleX(.78);opacity:1}100%{transform:scaleX(1);opacity:.25}}

/* Header — less UI chrome, more material continuity. */
.site-header{
  transition:height 520ms var(--ease-premium),padding 520ms var(--ease-premium),background-color 360ms ease,border-color 360ms ease,backdrop-filter 420ms ease,box-shadow 420ms ease,transform 520ms var(--ease-premium)!important;
  will-change:height,background-color;
}
.site-header.scrolled,.site-header.menu-open{
  backdrop-filter:blur(22px) saturate(1.08);
  -webkit-backdrop-filter:blur(22px) saturate(1.08);
  box-shadow:0 8px 36px color-mix(in srgb,var(--ink) 5%,transparent);
}
@media(min-width:821px){
  .site-header.scrolled{height:60px}
  .site-header.scrolled .brand img{transform:scale(.94)}
}
.brand{transition:opacity 240ms ease,transform 420ms var(--ease-premium)}
.brand:active{transform:scale(.985)}
.brand img{transition:transform 540ms var(--ease-premium),filter 420ms ease,opacity 320ms ease!important}
.brand:hover img{transform:rotate(-5deg) scale(1.06)!important}
.brand-name,.brand-ai{transition:transform 420ms var(--ease-premium),color 320ms ease,opacity 320ms ease!important}
.brand:hover .brand-name{transform:translateX(2px)!important}

.site-nav a{
  transition:color 260ms ease,opacity 260ms ease,transform 420ms var(--ease-premium)!important;
}
.site-nav a:hover{transform:translateY(-1px)}
.site-nav a::after{
  height:1px!important;
  transform:scaleX(0)!important;
  transform-origin:right center!important;
  transition:transform 520ms var(--ease-premium),background-color 320ms ease!important;
}
.site-nav a:hover::after,.site-nav a.active::after{transform:scaleX(1)!important;transform-origin:left center!important}

.theme-toggle{
  transition:transform 320ms var(--ease-premium),background-color 320ms ease,color 320ms ease,border-color 320ms ease,box-shadow 320ms ease!important;
}
.theme-toggle:hover{transform:translateY(-2px)!important;box-shadow:0 6px 20px color-mix(in srgb,var(--ink) 7%,transparent)}
.theme-toggle:active{transform:translateY(0) scale(.965)!important}

/* Mobile navigation unfolds instead of popping into existence. */
@media(max-width:820px){
  .site-nav{
    display:flex!important;
    clip-path:inset(0 0 100% 0);
    opacity:0;
    transform:translateY(-8px);
    transition:clip-path 520ms var(--ease-premium),opacity 260ms ease,transform 520ms var(--ease-premium),visibility 0s linear 520ms!important;
  }
  .site-header.menu-open .site-nav{clip-path:inset(0);opacity:1;transform:none;transition-delay:0s!important}
  .site-nav a{opacity:0;transform:translateY(-8px);transition:opacity 300ms ease,transform 500ms var(--ease-premium),color 220ms ease!important}
  .site-header.menu-open .site-nav a{opacity:1;transform:none}
  .site-header.menu-open .site-nav a:nth-child(1){transition-delay:80ms!important}
  .site-header.menu-open .site-nav a:nth-child(2){transition-delay:125ms!important}
  .site-header.menu-open .site-nav a:nth-child(3){transition-delay:170ms!important}
}

/* Scroll reveals — slower, smaller travel, cleaner settle. */
.js.motion-ready [data-reveal],.js.motion-ready .reveal{
  opacity:0!important;
  transform:translate3d(0,18px,0)!important;
  filter:blur(2px);
  transition:opacity 720ms ease,transform var(--motion-section) var(--ease-premium),filter 620ms ease!important;
  transition-delay:var(--reveal-delay,0ms)!important;
}
.js.motion-ready [data-reveal].is-visible,.js.motion-ready .reveal.is-visible{opacity:1!important;transform:none!important;filter:none!important}

/* Above-the-fold sequencing is deliberately calmer than the rest of the page. */
.gt15-display-brand{transition-delay:30ms!important}
.gt15-hero h1{transition-delay:110ms!important}
.gt15-hero .gt15-intro{transition-delay:190ms!important}
.gt15-hero .gt15-bottomline{transition-delay:280ms!important}
.page-hero .page-kicker{transition-delay:20ms!important}
.page-hero h1{transition-delay:90ms!important}
.page-hero .page-lead{transition-delay:170ms!important}

/* The hero glides, it does not parallax. */
.gt15-hero-inner{transition:transform 120ms linear!important}
.home-v16 .gt15-hero::after{animation-duration:1200ms!important;animation-timing-function:var(--ease-premium)!important}

/* Premium CTAs: physical feedback without loud effects. */
.gt15-actions a,.gt15-bridge-grid a,.arrow-link,.cookie-button{
  will-change:transform;
  transition:transform 360ms var(--ease-premium),background-color 360ms ease,color 320ms ease,border-color 360ms ease,box-shadow 440ms var(--ease-premium)!important;
}
.gt15-actions a:hover,.gt15-bridge-grid a:hover,.arrow-link:hover{
  transform:translate3d(0,-3px,0)!important;
  box-shadow:0 14px 36px color-mix(in srgb,var(--ink) 11%,transparent)!important;
}
.gt15-actions a:active,.gt15-bridge-grid a:active,.arrow-link:active{transform:translateY(0) scale(.975)!important;transition-duration:120ms!important}
.gt15-actions a span,.gt15-bridge-grid a span,.arrow-link span{transition:transform 520ms var(--ease-premium)!important}
.gt15-actions a:hover span,.gt15-bridge-grid a:hover span,.arrow-link:hover span{transform:translate(4px,-4px)!important}

/* Rules and editorial grids animate with the content, not separately from it. */
.gt15-position-copy::before,.gt15-section-head::after,.page-lead::before{
  transition-duration:1000ms!important;
  transition-timing-function:var(--ease-premium)!important;
}
.gt15-principle-list article{
  overflow:hidden;
  transition:background-color 560ms ease,transform 620ms var(--ease-premium),color 360ms ease!important;
}
.gt15-principle-list article:hover{transform:translateY(-5px)!important}
.gt15-principle-list article::after{transition:transform 700ms var(--ease-premium),background-color 420ms ease!important}
.gt15-principle-list article:hover::after{transform:scaleX(.58)!important}
.gt15-principle-list h3,.gt15-principle-list p{transition:transform 560ms var(--ease-premium),color 320ms ease!important}
.gt15-principle-list article:hover h3{transform:translateY(-4px)!important}
.gt15-principle-list article:hover p{transform:translateY(-1px)}

/* Interior pages get a subtle editorial response instead of card-like motion. */
.tech-articles article,.update-entry{position:relative;isolation:isolate}
.tech-articles article::before,.update-entry::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:color-mix(in srgb,var(--surface) 56%,transparent);
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform 620ms var(--ease-premium);
}
.tech-articles article:hover::before,.update-entry:hover::before{transform:scaleY(1);transform-origin:top}
.tech-articles article{transition:padding-left 620ms var(--ease-premium)!important}
.tech-articles article:hover{background:transparent!important;padding-left:14px!important}
.update-entry{transition:padding-left 620ms var(--ease-premium),padding-right 620ms var(--ease-premium)!important}
.update-entry:hover{background:transparent!important;padding-left:14px!important;padding-right:14px!important}
.tech-index a{transition:color 260ms ease,transform 460ms var(--ease-premium)!important}
.tech-index a:hover{transform:translateX(5px)!important}

.founder figure{position:relative;overflow:hidden}
.founder figure::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,color-mix(in srgb,var(--ink) 14%,transparent),transparent 38%);
  opacity:.18;
  transition:opacity 620ms ease;
  pointer-events:none;
}
.founder figure img{transition:transform 1200ms var(--ease-premium),filter 760ms ease!important;transform:scale(1.001)}
.founder:hover figure img{transform:scale(1.035)!important}
.founder:hover figure::after{opacity:.04}
.founder-meta h2,.update-entry h2{transition:transform 560ms var(--ease-premium),color 320ms ease!important}
.founder:hover .founder-meta h2,.update-entry:hover h2{transform:translateX(5px)!important}

/* Footer settles more slowly than UI controls, which makes the page feel heavier. */
.footer-wordmark{transition:transform 720ms var(--ease-premium),opacity 360ms ease!important}
.footer-wordmark:hover{transform:translateX(5px)!important}
.footer-links a,.footer-bottom a,.footer-cookie-button{transition:color 300ms ease,opacity 300ms ease,transform 420ms var(--ease-premium)!important}
.footer-links a:hover,.footer-bottom a:hover,.footer-cookie-button:hover{transform:translateX(2px)}

/* Consent UI follows the same springless, deliberate movement. */
.cookie-banner{transition:opacity 360ms ease,transform 620ms var(--ease-premium),box-shadow 420ms ease!important}
.cookie-button:hover{transform:translateY(-2px)!important}
.cookie-button:active{transform:translateY(0) scale(.98)!important}

@media(max-width:760px){
  .gt15-principle-list article:hover,.tech-articles article:hover,.update-entry:hover{transform:none!important;padding-left:0!important;padding-right:0!important}
  .tech-articles article:hover::before,.update-entry:hover::before{transform:scaleY(0)}
  .founder:hover figure img{transform:scale(1.015)!important}
}

@media(prefers-reduced-motion:reduce){
  main,.site-footer,body::after{transition:none!important;transform:none!important;filter:none!important;opacity:1!important}
  .site-header,.site-nav,.site-nav a,.gt15-actions a,.gt15-bridge-grid a,.arrow-link,.founder figure img{transition:none!important;transform:none!important}
  .site-header::before{display:none!important}
  html.theme-switching::view-transition-old(root),html.theme-switching::view-transition-new(root),
  ::view-transition-old(root),::view-transition-new(root),::view-transition-old(gt-main),::view-transition-new(gt-main),::view-transition-old(gt-header),::view-transition-new(gt-header){animation:none!important}
}


/* ======================================================================
   GreenTrust v19 — optical smoothness pass
   Motion should disappear into the interface instead of calling attention
   to itself. Cross-page transitions use continuity, not travel.
   ====================================================================== */
:root{
  --v19-ease:cubic-bezier(.2,.72,.18,1);
  --v19-ease-ui:cubic-bezier(.2,.7,.2,1);
  --v19-page:420ms;
}

/* Cross-page navigation: one clean dissolve. No vertical travel, scale or blur. */
.site-header{view-transition-name:none!important}
main{view-transition-name:none!important}
::view-transition-group(root){
  animation-duration:var(--v19-page)!important;
  animation-timing-function:linear!important;
}
::view-transition-old(root){
  animation:gt19-page-out 180ms ease-out both!important;
  mix-blend-mode:normal!important;
}
::view-transition-new(root){
  animation:gt19-page-in var(--v19-page) 20ms var(--v19-ease) both!important;
  mix-blend-mode:normal!important;
}
::view-transition-group(gt-header),::view-transition-group(gt-main),
::view-transition-old(gt-header),::view-transition-new(gt-header),
::view-transition-old(gt-main),::view-transition-new(gt-main){animation:none!important}
@keyframes gt19-page-out{from{opacity:1}to{opacity:.08}}
@keyframes gt19-page-in{from{opacity:0}to{opacity:1}}

/* Keep the radial theme transition exactly as the focal motion moment. */
html.theme-switching::view-transition-old(root){animation:none!important;opacity:1!important}
html.theme-switching::view-transition-new(root){animation:gt18-theme-reveal 720ms var(--ease-premium) both!important}

/* Older browsers get the same visual language: fade only. */
body::after{display:none!important}
.site-header::before{display:none!important}
main,.site-footer{
  transform:none!important;
  filter:none!important;
  transition:opacity 300ms var(--v19-ease-ui)!important;
}
html.route-leaving main,html.route-leaving .site-footer{
  opacity:.06!important;
  transform:none!important;
  filter:none!important;
}
html.route-enter-pending main,html.route-enter-pending .site-footer{
  opacity:0!important;
  transform:none!important;
  filter:none!important;
}

/* Header: never reflow it while scrolling. Material changes, geometry does not. */
.site-header{
  height:68px!important;
  transition:background-color 320ms ease,border-color 320ms ease,backdrop-filter 420ms var(--v19-ease-ui),box-shadow 420ms var(--v19-ease-ui),color 260ms ease!important;
}
.site-header.scrolled{height:68px!important}
.site-header.scrolled .brand img{transform:none!important}
.brand,.brand img,.brand-name,.brand-ai{transform:none!important}
.brand img{transition:filter 360ms ease,opacity 280ms ease!important}
.brand:hover img{transform:none!important;opacity:.82}
.brand:hover .brand-name{transform:none!important}

/* Navigation feedback is graphic, not positional. */
.site-nav a{transform:none!important;transition:color 260ms ease,opacity 260ms ease!important}
.site-nav a:hover{transform:none!important}
.site-nav a::after{transition:transform 420ms var(--v19-ease-ui),background-color 260ms ease!important}

/* Buttons stay physically anchored. Surface, border and arrow carry the response. */
.theme-toggle,.gt15-actions a,.gt15-bridge-grid a,.arrow-link,.cookie-button,
.primary-link,.quiet-link,.text-link{
  transform:none!important;
  will-change:auto!important;
}
.theme-toggle{
  transition:background-color 300ms ease,color 280ms ease,border-color 300ms ease,box-shadow 380ms var(--v19-ease-ui),opacity 220ms ease!important;
}
.theme-toggle:hover{transform:none!important;box-shadow:0 5px 18px color-mix(in srgb,var(--ink) 6%,transparent)}
.theme-toggle:active{transform:none!important;opacity:.72}
.gt15-actions a,.gt15-bridge-grid a,.arrow-link,.cookie-button{
  transition:background-color 300ms ease,color 280ms ease,border-color 300ms ease,box-shadow 420ms var(--v19-ease-ui),opacity 220ms ease!important;
}
.gt15-actions a:hover,.gt15-bridge-grid a:hover,.arrow-link:hover{
  transform:none!important;
  box-shadow:0 8px 26px color-mix(in srgb,var(--ink) 8%,transparent)!important;
}
.gt15-actions a:active,.gt15-bridge-grid a:active,.arrow-link:active,.cookie-button:active{
  transform:none!important;
  box-shadow:none!important;
  opacity:.78;
}
.gt15-actions a span,.gt15-bridge-grid a span,.arrow-link span,
.primary-link span,.quiet-link span,.text-link span{
  transition:transform 380ms var(--v19-ease-ui),opacity 260ms ease!important;
}
.gt15-actions a:hover span,.gt15-bridge-grid a:hover span,.arrow-link:hover span,
.primary-link:hover span,.quiet-link:hover span,.text-link:hover span{
  transform:translateX(3px)!important;
}
.primary-link,.quiet-link,.text-link,.arrow-link{gap:18px!important}
.primary-link:hover,.quiet-link:hover,.text-link:hover,.arrow-link:hover{gap:18px!important}

/* Reveals: tiny optical settle only. No blur. */
.js.motion-ready [data-reveal],.js.motion-ready .reveal{
  opacity:0!important;
  transform:translate3d(0,6px,0)!important;
  filter:none!important;
  transition:opacity 680ms var(--v19-ease),transform 760ms var(--v19-ease)!important;
  transition-delay:var(--reveal-delay,0ms)!important;
  will-change:opacity,transform;
}
.js.motion-ready [data-reveal].is-visible,.js.motion-ready .reveal.is-visible{
  opacity:1!important;
  transform:none!important;
}
.gt15-display-brand{transition-delay:0ms!important}
.gt15-hero h1{transition-delay:55ms!important}
.gt15-hero .gt15-intro{transition-delay:105ms!important}
.gt15-hero .gt15-bottomline{transition-delay:150ms!important}
.page-hero .page-kicker{transition-delay:0ms!important}
.page-hero h1{transition-delay:50ms!important}
.page-hero .page-lead{transition-delay:100ms!important}

/* Hero remains anchored to the viewport rather than drifting with scroll. */
.gt15-hero-inner,.js.motion-rich .gt15-hero-inner{transform:none!important;transition:none!important}

/* Editorial interactions: atmosphere without layout movement. */
.gt15-principle-list article{
  transform:none!important;
  transition:background-color 420ms ease,color 320ms ease!important;
}
.gt15-principle-list article:hover{transform:none!important}
.gt15-principle-list article:hover h3,.gt15-principle-list article:hover p{transform:none!important}
.gt15-principle-list h3,.gt15-principle-list p{transform:none!important;transition:color 300ms ease!important}
.gt15-principle-list article::after{transition:opacity 420ms ease,background-color 360ms ease!important}
.gt15-principle-list article:hover::after{transform:none!important;opacity:.55}

.tech-articles article,.update-entry{
  padding-left:0!important;
  padding-right:0!important;
  transition:background-color 420ms ease,color 300ms ease!important;
}
.tech-articles article:hover,.update-entry:hover{padding-left:0!important;padding-right:0!important;transform:none!important}
.tech-articles article::before,.update-entry::before{transform:none!important;opacity:0;transition:opacity 420ms ease!important}
.tech-articles article:hover::before,.update-entry:hover::before{transform:none!important;opacity:1}
.tech-index a{transform:none!important;transition:color 280ms ease,opacity 280ms ease!important}
.tech-index a:hover{transform:none!important}

.founder figure img{transform:scale(1.001)!important;transition:transform 1000ms var(--v19-ease),filter 700ms ease!important}
.founder:hover figure img{transform:scale(1.012)!important}
.founder-meta h2,.update-entry h2{transform:none!important;transition:color 300ms ease!important}
.founder:hover .founder-meta h2,.update-entry:hover h2{transform:none!important}
.footer-wordmark,.footer-links a,.footer-bottom a,.footer-cookie-button{transform:none!important}
.footer-wordmark:hover,.footer-links a:hover,.footer-bottom a:hover,.footer-cookie-button:hover{transform:none!important}
.home-directory i,.home-latest-item>span,.root-links a i{transform:none!important;transition:opacity 280ms ease,color 280ms ease!important}
.home-directory a:hover i,.home-latest-item:hover>span,.root-links a:hover i{transform:none!important;opacity:.66}

/* Mobile menu opens as a material reveal; links themselves do not fly in. */
@media(max-width:820px){
  .site-nav{
    transform:none!important;
    transition:clip-path 440ms var(--v19-ease),opacity 300ms ease,visibility 0s linear 440ms!important;
  }
  .site-header.menu-open .site-nav{transform:none!important}
  .site-nav a{
    transform:none!important;
    transition:opacity 300ms ease,color 240ms ease!important;
    transition-delay:0ms!important;
  }
  .site-header.menu-open .site-nav a:nth-child(1){transition-delay:50ms!important}
  .site-header.menu-open .site-nav a:nth-child(2){transition-delay:80ms!important}
  .site-header.menu-open .site-nav a:nth-child(3){transition-delay:110ms!important}
}

@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
  .js.motion-ready [data-reveal],.js.motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ======================================================================
   GreenTrust v20 — chrome + controls polish
   Keep v19's calm motion language, but make navigation and controls feel
   physically integrated with the page rather than layered over it.
   ====================================================================== */
:root{
  --v20-header-h:68px;
  --v20-control-ease:cubic-bezier(.22,.78,.22,1);
}

/* The top bar now owns real layout space. It never floats over page copy. */
.site-header{
  position:sticky!important;
  top:0!important;
  left:auto!important;
  right:auto!important;
  width:100%;
  height:var(--v20-header-h)!important;
  padding-inline:34px;
  background:var(--header);
  border-bottom-color:var(--line)!important;
  backdrop-filter:blur(18px) saturate(115%);
  -webkit-backdrop-filter:blur(18px) saturate(115%);
  box-shadow:none!important;
  transition:background-color 460ms var(--v20-control-ease),border-color 360ms ease,color 320ms ease,backdrop-filter 460ms ease!important;
}
.site-header.scrolled,.site-header.menu-open{
  background:var(--header);
  border-bottom-color:var(--line)!important;
  box-shadow:none!important;
}

/* On the home hero the chrome is part of the hero, not a translucent overlay. */
.home-v16 .gt15-header:not(.scrolled):not(.menu-open){
  background:#0d3022!important;
  border-bottom-color:rgba(239,245,239,.14)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html[data-theme="dark"] .home-v16 .gt15-header:not(.scrolled):not(.menu-open){background:#091f16!important}
.home-v16 .gt15-hero{min-height:calc(100svh - var(--v20-header-h))!important}
.home-v16 .gt15-hero::after{top:0!important}
.gt15-hero-inner{padding-top:54px!important}

/* Interior spacing was previously compensating for a fixed header. */
.page-hero{padding-top:96px!important}
.legal-header{padding-top:68px!important}

/* Active location: a quiet point, never a floating underline. */
.site-nav a{padding-block:25px!important}
.site-nav a::after{
  content:""!important;
  left:-11px!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  width:4px!important;
  height:4px!important;
  border-radius:999px;
  background:var(--signal)!important;
  opacity:0;
  transform:translateY(-50%) scale(.35)!important;
  transform-origin:center!important;
  transition:opacity 260ms ease,transform 440ms var(--v20-control-ease)!important;
}
.site-nav a:hover::after{opacity:0!important;transform:translateY(-50%) scale(.35)!important}
.site-nav a.active::after{
  opacity:1!important;
  transform:translateY(-50%) scale(1)!important;
}
.site-nav a.active{color:var(--ink)!important}

/* Buttons: same geometry, cleaner response. Nothing moves except the arrow. */
.gt15-actions a,.gt15-bridge-grid a,.arrow-link{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  box-shadow:none!important;
  transition:background-color 360ms var(--v20-control-ease),color 320ms ease,border-color 360ms ease,opacity 220ms ease!important;
}
.gt15-actions a:hover,.gt15-bridge-grid a:hover,.arrow-link:hover{box-shadow:none!important}
.gt15-actions a:focus-visible,.gt15-bridge-grid a:focus-visible,.arrow-link:focus-visible,
.theme-toggle:focus-visible{
  outline:2px solid var(--signal);
  outline-offset:3px;
}

/* Internal route arrows travel in the direction of travel. */
.gt15-actions a span,.gt15-bridge-grid a span,.arrow-link span{
  display:inline-grid!important;
  place-items:center;
  width:1.05em;
  min-width:1.05em;
  line-height:1;
  transform:none!important;
  opacity:.88;
  transition:transform 460ms var(--v20-control-ease),opacity 260ms ease!important;
}
.gt15-actions a:hover span,.gt15-bridge-grid a:hover span,
.arrow-link:not([target="_blank"]):hover span{
  transform:translateX(4px)!important;
  opacity:1;
}
/* External-link arrow follows its own north-east direction. */
.arrow-link[target="_blank"]:hover span{
  transform:translate(3px,-3px)!important;
  opacity:1;
}

/* Primary hero control remains signal-led rather than flashing white. */
.gt15-actions a:first-child:hover{
  background:color-mix(in srgb,var(--signal) 88%,white 12%)!important;
  border-color:color-mix(in srgb,var(--signal) 88%,white 12%)!important;
  color:#102015!important;
}
.gt15-actions a:not(:first-child):hover{
  background:rgba(244,246,239,.10)!important;
  border-color:rgba(244,246,239,.72)!important;
  color:var(--h-hero)!important;
}
.gt15-bridge-grid a:hover,.arrow-link:hover{
  background:var(--ink)!important;
  color:var(--bg)!important;
  border-color:var(--ink)!important;
}

/* Theme switch keeps the radial page transition, while the control itself stays calm. */
.theme-toggle{
  box-shadow:none!important;
  transition:background-color 340ms var(--v20-control-ease),color 300ms ease,border-color 340ms ease,opacity 200ms ease!important;
}
.theme-toggle:hover{box-shadow:none!important}

@media(max-width:820px){
  :root{--v20-header-h:64px}
  .site-header{padding-inline:15px!important}
  .home-v16 .gt15-hero{min-height:calc(100svh - var(--v20-header-h))!important}
  .gt15-hero-inner{padding-top:48px!important}
  .page-hero{padding-top:64px!important}
  .legal-header{padding-top:52px!important}
  .site-nav{top:var(--v20-header-h)!important;background:var(--bg)!important}
  .site-nav a{padding:3px 0!important}
  .site-nav a::after{display:none!important}
}

@media(prefers-reduced-motion:reduce){
  .site-header,.site-nav a::after,.gt15-actions a,.gt15-bridge-grid a,.arrow-link,.gt15-actions a span,.gt15-bridge-grid a span,.arrow-link span{transition:none!important}
}

/* ======================================================================
   GreenTrust v21 — responsive system
   Preserve v20 art direction; make every layout intentional from 320px+
   ====================================================================== */
:root{
  --v21-gutter:48px;
}

html,body{max-width:100%;overflow-x:clip}
main,section,.shell,.wrap,.page-hero,.tech-layout,.founders,.company-story-grid,.company-vision,.update-entry{min-width:0}
h1,h2,h3{overflow-wrap:normal;text-wrap:balance}
p{overflow-wrap:anywhere;text-wrap:pretty}
img{height:auto}

/* Fluid shell: generous on desktop, never cramped on intermediate widths. */
.shell,.wrap{width:min(1380px,calc(100% - (var(--v21-gutter) * 2)))}

/* Large but not cinema-wide screens. */
@media(max-width:1240px){
  :root{--v21-gutter:32px}
  .site-header{padding-inline:32px!important}
  .gt15-hero-main{gap:clamp(40px,5.5vw,72px)}
  .gt15-position-copy{gap:clamp(38px,5vw,72px)}
  .gt15-bridge-grid{gap:clamp(44px,6vw,76px)}
  .tech-articles article{gap:28px}
  .update-entry>div:last-child{gap:44px}
}

/* Tablet landscape / compact laptop. */
@media(max-width:1024px){
  :root{--v21-gutter:27px}
  .site-header{padding-inline:27px!important}

  .home-v16 .gt15-hero{background:#0d3022!important}
  html[data-theme="dark"] .home-v16 .gt15-hero{background:#091f16!important}
  .home-v16 .gt15-hero::before,.home-v16 .gt15-hero::after{display:none!important}
  .gt15-hero-inner{min-height:calc(100svh - var(--v20-header-h));padding-top:44px!important;padding-bottom:26px}
  .gt15-display-brand{font-size:clamp(62px,9vw,88px)}
  .gt15-hero-main{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:36px;padding:52px 0 58px}
  .gt15-hero h1{font-size:clamp(52px,7vw,70px)}
  .gt15-intro{max-width:360px}

  .gt15-position{padding:104px 0 110px}
  .gt15-position-grid,.gt15-section-head{grid-template-columns:1.6fr 8.4fr;gap:34px}
  .gt15-position-copy{grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr);gap:38px}
  .gt15-principle-list{margin-left:calc((100% + 34px) * .16)}
  .gt15-principle-list article{padding-inline:26px;min-height:320px}
  .gt15-principle-list article::after{left:26px;right:26px}
  .gt15-technology-bridge{padding:94px 0 100px}
  .gt15-bridge-grid{grid-template-columns:1.25fr .75fr;gap:42px}

  .page-hero{grid-template-columns:1.6fr 6.4fr 2fr;gap:28px!important;padding-bottom:68px}
  .page-hero h1{font-size:clamp(48px,6.8vw,68px)}
  .tech-layout{grid-template-columns:1.6fr 8.4fr;gap:34px;padding-bottom:96px}
  .tech-articles article{grid-template-columns:2fr 3fr 5fr;gap:24px}
  .tech-close-grid{grid-template-columns:1.6fr 6.4fr 2fr;gap:28px}

  .founders{gap:20px;padding-bottom:96px}
  .founder-meta{grid-template-columns:1fr 1.6fr;gap:20px}
  .company-story-grid{grid-template-columns:1.6fr 5.4fr 3fr;gap:34px}
  .company-vision{grid-template-columns:1.6fr 6.4fr 2fr;gap:28px}
  .update-entry{grid-template-columns:1.6fr 8.4fr;gap:34px}
  .update-entry>div:last-child{grid-template-columns:1fr 1fr;gap:34px}

  .footer-top{grid-template-columns:7fr 5fr;gap:36px}
}

/* Tablet portrait and mobile navigation. */
@media(max-width:820px){
  :root{--v21-gutter:20px;--v20-header-h:64px}
  .shell,.wrap{width:calc(100% - (var(--v21-gutter) * 2))}
  .site-header{height:var(--v20-header-h)!important;padding-inline:var(--v21-gutter)!important;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}
  .brand{min-width:0}.brand-name{font-size:14px}.brand-ai{font-size:8px}
  .header-actions{gap:9px}.theme-toggle{min-width:52px;min-height:36px;padding:0 9px}.menu-toggle{display:block;min-width:38px;min-height:38px;padding:8px}

  .site-nav{
    position:fixed!important;
    z-index:99;
    top:var(--v20-header-h)!important;
    left:0!important;right:0!important;
    max-height:calc(100dvh - var(--v20-header-h));
    overflow-y:auto;
    padding:18px var(--v21-gutter) 24px!important;
    gap:0!important;
    background:var(--bg)!important;
    border-bottom:1px solid var(--line)!important;
    box-shadow:0 24px 50px color-mix(in srgb,var(--ink) 8%,transparent);
  }
  .site-nav a{width:100%;min-height:50px;display:flex;align-items:center;padding:0!important;border-bottom:1px solid var(--line);font-size:16px!important;font-weight:540}
  .site-nav a:last-child{border-bottom:0}.site-nav a::after{display:none!important}

  .home-v16 .gt15-hero{min-height:auto!important}
  .gt15-hero-inner{min-height:calc(100svh - var(--v20-header-h));padding-top:34px!important;padding-bottom:20px!important}
  .gt15-display-brand{font-size:clamp(54px,11vw,74px)!important}
  .gt15-hero-main{grid-template-columns:1fr;gap:30px;padding:44px 0 40px}
  .gt15-hero h1{max-width:720px;font-size:clamp(48px,9vw,66px);line-height:.95}
  .gt15-intro{max-width:620px;padding-top:17px}.gt15-intro>p{max-width:560px;margin-bottom:24px}
  .gt15-actions{display:flex;gap:9px}.gt15-actions a{min-height:44px}
  .gt15-bottomline{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.gt15-bottomline p{padding-right:14px}

  .gt15-position{padding:84px 0 92px}
  .gt15-position-grid,.gt15-section-head{grid-template-columns:1fr;gap:22px}
  .gt15-position-copy{grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:30px}
  .gt15-position h2{font-size:clamp(38px,6vw,48px)}
  .gt15-section-head{padding:72px 0 30px}.gt15-section-head h2{font-size:clamp(34px,5.4vw,44px)}
  .gt15-principle-list{margin-left:0;border-left:0;grid-template-columns:repeat(3,minmax(0,1fr))}
  .gt15-principle-list article{min-height:300px;padding:24px 22px 28px}
  .gt15-principle-list article:first-child{padding-left:0}.gt15-principle-list article:last-child{padding-right:0}
  .gt15-principle-list article::after{left:22px;right:22px;bottom:22px}.gt15-principle-list article:first-child::after{left:0}.gt15-principle-list article:last-child::after{right:0}
  .gt15-principle-list h3{font-size:20px}.gt15-principle-list p{font-size:12.5px}
  .gt15-technology-bridge{padding:78px 0 86px}.gt15-bridge-grid{grid-template-columns:1fr;gap:32px}.gt15-bridge-grid>div:last-child{max-width:620px;justify-self:start;padding-top:22px}

  .page-hero{display:grid!important;grid-template-columns:1fr!important;gap:0!important;padding:58px 0 50px!important;align-items:start}
  .page-kicker{margin-bottom:24px}.page-hero h1{margin:0 0 24px!important;font-size:clamp(44px,8.6vw,60px)!important;line-height:.96}.page-lead{max-width:640px;padding-top:16px}
  .tech-layout{display:block;padding:16px 0 78px}
  .tech-index{position:static;display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:8px 0 19px;margin-bottom:4px;border-bottom:1px solid var(--line);scrollbar-width:none}
  .tech-index::-webkit-scrollbar{display:none}.tech-index a{flex:0 0 auto;scroll-snap-align:start;padding:6px 0;font-size:10px;white-space:nowrap}.tech-index a.active::before{width:12px;margin-right:6px}
  .tech-articles article{grid-template-columns:1fr 1.15fr;column-gap:28px;row-gap:14px;padding:32px 0 38px}
  .tech-articles h2{grid-column:1;font-size:27px}.tech-principle{grid-column:2;margin:0}.tech-articles article>p:last-child{grid-column:2;font-size:13px}
  .tech-close{padding:66px 0}.tech-close-grid{display:grid;grid-template-columns:1fr;gap:0}.tech-close h2{margin:20px 0 18px;font-size:clamp(37px,6.4vw,48px)}.tech-close p:last-child{max-width:580px}

  .founders{grid-template-columns:1fr;gap:58px;padding:34px 0 78px}.founder{max-width:680px}.founder figure{aspect-ratio:5/5.8}.founder-meta{display:grid;grid-template-columns:minmax(145px,.38fr) minmax(0,.62fr);gap:24px}.founder-meta>p{margin-top:0}
  .company-story{padding:70px 0}.company-story-grid{display:grid;grid-template-columns:1fr;gap:0}.company-story h2{margin:22px 0 24px;font-size:clamp(36px,6vw,46px)}.company-story-grid>div{max-width:650px}
  .company-facts{padding:24px 0 58px}.company-facts>div{grid-template-columns:minmax(115px,.28fr) minmax(0,.72fr);gap:22px;padding:16px 0}
  .company-vision{display:grid;grid-template-columns:1fr;padding:66px 0 78px;gap:0}.company-vision h2{grid-column:1;margin:22px 0 28px;font-size:clamp(38px,6.5vw,50px)}.company-vision .arrow-link{grid-column:1;justify-self:start}

  .updates-list{padding:14px 0 72px}.update-entry{display:grid;grid-template-columns:minmax(105px,.24fr) minmax(0,.76fr);gap:26px;padding:28px 0 34px}.update-entry>div:last-child{display:block}.update-entry h2{font-size:clamp(25px,4.2vw,30px)}.update-entry p{margin-top:14px}.updates-follow{justify-content:flex-start;padding-bottom:76px}

  .footer-top{grid-template-columns:1fr;gap:36px;padding:54px 0 46px}.footer-wordmark{font-size:clamp(42px,9vw,58px)}.footer-links{max-width:520px;grid-template-columns:1fr 1fr;gap:24px}.footer-links a{min-height:30px;display:flex;align-items:center}
  .footer-bottom{grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:0;padding:18px 0 26px}.footer-cookie-button{justify-self:start;text-align:left}

  .legal-header{padding-top:52px!important}
  .legal-page .page-hero,.cookie-policy-page .page-hero{padding:52px 0 40px!important}
  .legal-page .page-hero h1,.cookie-policy-page .page-hero h1{font-size:clamp(38px,8vw,52px)!important}
  .legal-page .legal-layout,.cookie-policy-page .policy-layout{padding:22px 0 70px!important}
  .legal-page .legal-toc,.cookie-policy-page .policy-toc{margin-left:calc(var(--v21-gutter) * -1)!important;margin-right:calc(var(--v21-gutter) * -1)!important;padding:0 var(--v21-gutter) 18px!important;scrollbar-width:none!important}
  .legal-page .legal-toc::-webkit-scrollbar,.cookie-policy-page .policy-toc::-webkit-scrollbar{display:none}
  .legal-page .legal-content,.cookie-policy-page .policy-content{max-width:none;min-width:0}

  .cookie-banner{left:var(--v21-gutter)!important;right:var(--v21-gutter)!important;bottom:max(12px,env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important}
}

/* Phones. */
@media(max-width:640px){
  :root{--v21-gutter:15px}
  body{font-size:14px}
  .site-header{padding-inline:var(--v21-gutter)!important}
  .brand img{width:23px;height:23px}.brand-name{font-size:13px}.theme-toggle{min-width:50px;font-size:9px}.menu-toggle{min-width:36px}

  .gt15-hero-inner{padding-top:28px!important;padding-bottom:18px!important}
  .gt15-display-brand{font-size:clamp(48px,14vw,62px)!important;letter-spacing:-.07em}
  .gt15-display-brand span{font-size:8px;margin-left:.55em}
  .gt15-hero-main{padding:36px 0 34px;gap:24px}
  .gt15-hero h1{font-size:clamp(41px,11.6vw,54px);letter-spacing:-.06em}
  .gt15-intro>p{font-size:14px;line-height:1.62;margin-bottom:22px}
  .gt15-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.gt15-actions a{width:100%;justify-content:space-between;padding-inline:13px;min-width:0}
  .gt15-bottomline{grid-template-columns:1fr}.gt15-bottomline p{padding:10px 0!important;border-top:1px solid var(--h-hero-line);border-left:0!important}.gt15-bottomline p:first-child{padding-top:12px!important}

  .gt15-position{padding:72px 0 78px}.gt15-position-copy{grid-template-columns:1fr;gap:22px}.gt15-position h2{font-size:clamp(34px,9vw,42px)}.gt15-position-copy>p{font-size:14px}
  .gt15-section-head{padding:64px 0 24px}.gt15-section-head h2{font-size:clamp(32px,8.3vw,40px)}
  .gt15-principle-list{grid-template-columns:1fr}.gt15-principle-list article,.gt15-principle-list article:first-child,.gt15-principle-list article:last-child{min-height:auto;padding:24px 0 32px;border-left:0;border-bottom:1px solid var(--line)}.gt15-principle-list article:last-child{border-bottom:0}.gt15-principle-list article::after{display:none}.gt15-principle-list article>span{margin-bottom:36px}.gt15-principle-list h3{margin:0 0 10px;font-size:21px}.gt15-principle-list p{max-width:460px;padding-bottom:0;font-size:13px}
  .gt15-technology-bridge{padding:68px 0 74px}.gt15-bridge-grid h2{font-size:clamp(35px,9vw,44px);margin-top:20px}.gt15-bridge-grid p{font-size:13.5px}.gt15-bridge-grid a,.arrow-link{max-width:100%;min-height:44px!important}

  .page-hero{padding:48px 0 44px!important}.page-kicker{margin-bottom:20px}.page-hero h1{font-size:clamp(39px,10.7vw,50px)!important;margin-bottom:21px!important}.page-lead{font-size:13.5px;line-height:1.66}
  .tech-layout{padding-top:10px}.tech-index{margin-inline:calc(var(--v21-gutter) * -1);padding-left:var(--v21-gutter);padding-right:var(--v21-gutter)}
  .tech-articles article{display:block;padding:27px 0 32px}.tech-articles h2{margin:0 0 12px;font-size:26px}.tech-principle{margin:0 0 12px;font-size:15px}.tech-articles article>p:last-child{font-size:13px}.tech-close{padding:58px 0}.tech-close h2{font-size:clamp(34px,9vw,42px)}

  .founders{gap:50px;padding-top:28px}.founder figure{aspect-ratio:4/4.8}.founder-meta{display:block;padding-top:16px}.founder-meta h2{font-size:21px}.founder-meta>p{margin-top:14px;font-size:13px}
  .company-story{padding:60px 0}.company-story h2{font-size:clamp(34px,9vw,42px)}
  .company-facts{padding-bottom:50px}.company-facts>div{grid-template-columns:1fr;gap:4px;padding:15px 0}.company-facts strong{overflow-wrap:anywhere}
  .company-vision{padding:58px 0 68px}.company-vision h2{font-size:clamp(35px,9.2vw,44px)}

  .updates-list{padding-top:8px}.update-entry{display:block;padding:25px 0 30px}.update-meta{display:flex;gap:12px;margin-bottom:15px}.update-entry h2{font-size:clamp(25px,7vw,30px)}.update-entry p{font-size:13px}

  .footer-top{padding:48px 0 40px}.footer-wordmark{font-size:clamp(40px,12vw,52px)}.footer-links{grid-template-columns:1fr 1fr;gap:18px}.footer-bottom{font-size:9px}

  .cookie-banner{padding:14px!important;gap:13px!important}.cookie-banner p{font-size:10.5px}.cookie-actions{grid-template-columns:1fr 1fr!important}.cookie-button{min-height:42px!important;white-space:normal}
  .legal-page .legal-content p,.legal-page .legal-content li,.cookie-policy-page .policy-content p,.cookie-policy-page .policy-content li{font-size:13px!important;line-height:1.7!important}
  .legal-page .legal-content h2,.cookie-policy-page .policy-content h2{font-size:24px!important}
  .policy-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* Very small phones: no squeezed two-column controls. */
@media(max-width:430px){
  :root{--v21-gutter:12px}
  .header-actions{gap:6px}.brand{gap:7px}.brand-ai{display:none}.theme-toggle{min-width:47px;padding-inline:7px}.menu-toggle{width:34px;min-width:34px}
  .gt15-display-brand{font-size:clamp(45px,14.5vw,56px)!important}
  .gt15-hero h1{font-size:clamp(38px,11.8vw,47px)}
  .gt15-actions{grid-template-columns:1fr}.gt15-actions a{min-height:46px}
  .gt15-position h2{font-size:32px}.gt15-section-head h2{font-size:31px}.gt15-bridge-grid h2{font-size:34px}
  .page-hero h1{font-size:clamp(36px,11vw,44px)!important}
  .footer-links{grid-template-columns:1fr 1fr}.footer-bottom{grid-template-columns:1fr 1fr;gap:9px 12px}
  .cookie-actions{grid-template-columns:1fr!important}
}

/* Short landscape devices: content wins over viewport-height theatre. */
@media(max-width:900px) and (max-height:650px) and (orientation:landscape){
  .home-v16 .gt15-hero,.gt15-hero-inner{min-height:auto!important}
  .gt15-hero-inner{padding-top:28px!important;padding-bottom:20px!important}
  .gt15-display-brand{font-size:54px!important}
  .gt15-hero-main{padding:26px 0 30px;grid-template-columns:1.25fr .75fr;gap:34px}
  .gt15-hero h1{font-size:46px}.gt15-intro>p{margin-bottom:16px}.gt15-bottomline{grid-template-columns:repeat(3,1fr)}.gt15-bottomline p{border-top:1px solid var(--h-hero-line)!important}
  .site-nav{max-height:calc(100dvh - var(--v20-header-h));overflow-y:auto}
}

/* Touch devices should not inherit desktop-only hover theatrics. */
@media(hover:none){
  .founder:hover figure img{transform:scale(1.001)!important}
  .gt15-actions a:hover span,.gt15-bridge-grid a:hover span,.arrow-link:hover span{transform:none!important}
  .gt15-actions a:first-child:hover{background:var(--signal)!important;border-color:var(--signal)!important;color:#102015!important}
  .gt15-actions a:not(:first-child):hover{background:transparent!important;border-color:rgba(244,246,239,.48)!important;color:var(--h-hero)!important}
  .gt15-bridge-grid a:hover,.arrow-link:hover{background:transparent!important;color:var(--ink)!important;border-color:var(--line-strong)!important}
}

/* Notched phones / installed web app. */
@supports(padding:max(0px)){
  @media(max-width:820px){
    .site-header{padding-left:max(var(--v21-gutter),env(safe-area-inset-left))!important;padding-right:max(var(--v21-gutter),env(safe-area-inset-right))!important}
    .site-nav{padding-left:max(var(--v21-gutter),env(safe-area-inset-left))!important;padding-right:max(var(--v21-gutter),env(safe-area-inset-right))!important}
  }
}

/* v21.1 responsive corrections: reset desktop grid placement on stacked heroes. */
@media(max-width:820px){
  body:not(.legal-page):not(.cookie-policy-page) .page-hero>.page-kicker,
  body:not(.legal-page):not(.cookie-policy-page) .page-hero>h1,
  body:not(.legal-page):not(.cookie-policy-page) .page-hero>.page-lead{
    grid-column:1!important;
    width:auto!important;
  }
  .tech-articles article{display:grid!important}
}
@media(max-width:640px){
  .tech-articles article{display:block!important}
}

/* v23 · Research --------------------------------------------------------- */
.research-hero{padding-bottom:92px}
.research-overview{display:grid;grid-template-columns:2fr 7.2fr 2.8fr;gap:32px;padding:0 0 58px;border-top:1px solid var(--line)}
.research-count-block{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding-top:27px;font:560 10px/1.35 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.research-count{font-family:var(--display);font-size:52px;line-height:.92;letter-spacing:-.06em;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.research-overview-copy{grid-column:2 / 4;display:grid;grid-template-columns:5.3fr 4.7fr;gap:clamp(42px,7vw,110px);padding-top:29px}
.research-overview-copy .section-index{margin:0;font:560 9px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.research-overview-copy>p:last-child{margin:0;max-width:480px;font-size:14px;line-height:1.72;color:var(--text)}
.research-list{padding-bottom:110px;border-top:1px solid var(--line)}
.research-entry{display:grid;grid-template-columns:2fr 10fr;gap:48px;padding:35px 0 39px;border-bottom:1px solid var(--line)}
.research-entry-meta{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding-top:3px;font:550 9px/1.45 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.research-entry-number{color:var(--ink)}
.research-entry-status{margin-top:9px;padding:4px 7px;border:1px solid var(--line-strong);border-radius:999px;font-size:8px;color:var(--accent);background:var(--accent-soft)}
.research-entry-content{display:grid;grid-template-columns:minmax(0,5.7fr) minmax(260px,4.3fr);column-gap:clamp(44px,7vw,108px);row-gap:22px}
.research-entry h2{margin:0;font-size:clamp(27px,2.4vw,38px);line-height:1.02;letter-spacing:-.05em;font-weight:520}
.research-entry h2 a{color:inherit;text-decoration:none}
.research-entry h2 a:hover{color:var(--accent)}
.research-entry-content>p{margin:2px 0 0;font-size:13px;line-height:1.72;color:var(--text);max-width:500px}
.research-entry-footer{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding-top:4px}
.research-topics{display:flex;flex-wrap:wrap;gap:6px}
.research-topics span{padding:4px 7px;border:1px solid var(--line);border-radius:999px;font:540 8px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.research-read-link{display:inline-flex;align-items:center;gap:14px;white-space:nowrap;color:var(--ink);text-decoration:none;font-size:11px;font-weight:620}
.research-read-link span{display:inline-block;transition:transform 300ms var(--ease)}
.research-read-link:hover span{transform:translateX(3px)}
.research-empty{padding:42px 0 94px;margin:0;color:var(--muted);font-size:13px}
.research-method{padding:108px 0 116px}
.research-method-grid{display:grid;grid-template-columns:2fr 6.4fr 3.6fr;gap:48px;align-items:start}
.research-method-grid .section-index{margin:7px 0 0}
.research-method-grid h2{margin:0;font-size:clamp(42px,4vw,62px);line-height:.98;letter-spacing:-.058em;font-weight:500}
.research-method-grid>div{padding-top:7px}
.research-method-grid>div p{margin:0 0 20px;color:var(--on-dark-muted);font-size:14px;line-height:1.72}

.research-note{padding-top:1px}
.research-note-hero{padding-top:126px;padding-bottom:78px;border-bottom:1px solid var(--line)}
.research-back{display:inline-flex;align-items:center;gap:12px;margin-bottom:62px;color:var(--muted);text-decoration:none;font:560 9px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.research-back span{transition:transform 300ms var(--ease)}
.research-back:hover{color:var(--ink)}
.research-back:hover span{transform:translateX(-3px)}
.research-note-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:28px;color:var(--muted);font:560 9px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.research-note-meta span:first-child{color:var(--ink)}
.research-note-hero h1{max-width:1040px;margin:0;font-size:clamp(50px,6.2vw,92px);line-height:.91;letter-spacing:-.067em;font-weight:500}
.research-note-deck{max-width:700px;margin:39px 0 0;font-size:clamp(17px,1.55vw,21px);line-height:1.48;letter-spacing:-.018em;color:var(--text)}
.research-note-byline{display:flex;flex-wrap:wrap;align-items:center;gap:9px 24px;margin-top:42px;padding-top:19px;border-top:1px solid var(--line);font:560 9px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.research-note-byline strong{margin-left:auto;padding:5px 8px;border:1px solid var(--line-strong);border-radius:999px;color:var(--accent);font-size:8px;font-weight:600;background:var(--accent-soft)}
.research-note-layout{display:grid;grid-template-columns:2.4fr 7.7fr 1.9fr;gap:48px;padding-top:60px;padding-bottom:124px}
.research-note-aside{grid-column:1;position:sticky;top:96px;align-self:start;padding-right:12px}
.research-note-status{padding:18px 0 21px;border-top:2px solid var(--accent);border-bottom:1px solid var(--line)}
.research-note-status>span{font:620 8px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.research-note-status p{margin:12px 0 0;font-size:11px;line-height:1.58;color:var(--muted)}
.research-note-aside nav{display:flex;flex-direction:column;padding-top:20px}
.research-note-aside nav a{padding:7px 0;color:var(--muted);text-decoration:none;font-size:10px}
.research-note-aside nav a:hover{color:var(--ink)}
.research-article-body{grid-column:2;max-width:800px}
.research-article-body section{padding:0 0 76px;margin-bottom:74px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.research-section-label{margin:0 0 26px;color:var(--accent);font:600 9px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.11em}
.research-article-body h2{max-width:720px;margin:0 0 27px;font-size:clamp(31px,3.15vw,46px);line-height:1;letter-spacing:-.052em;font-weight:510}
.research-article-body p{max-width:680px;margin:0 0 21px;font-size:15px;line-height:1.78;color:var(--text)}
.research-article-body .research-abstract{max-width:760px;font-size:clamp(19px,1.75vw,24px);line-height:1.5;letter-spacing:-.02em;color:var(--ink)}
.research-protocol{display:grid;grid-template-columns:1fr 1fr;margin-top:38px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.research-protocol>div{min-height:190px;padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.research-protocol span{display:block;margin-bottom:40px;color:var(--muted);font:560 9px/1 var(--mono)}
.research-protocol strong{display:block;margin-bottom:9px;font-size:15px;font-weight:600}
.research-protocol p{margin:0;font-size:12px;line-height:1.62}
.research-table-wrap{overflow-x:auto;margin-top:34px;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}
.research-table{width:100%;border-collapse:collapse;min-width:590px}
.research-table th,.research-table td{padding:15px 16px 15px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.research-table th{color:var(--muted);font:600 8px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.research-table td:first-child{width:27%;font-weight:580;color:var(--ink)}
.research-table td{font-size:12px;line-height:1.62;color:var(--text)}
.research-article-body blockquote{margin:37px 0 0;padding:23px 0 0;border-top:2px solid var(--accent);font-size:clamp(22px,2.2vw,31px);line-height:1.25;letter-spacing:-.035em;font-weight:500;color:var(--ink)}
.research-citation{padding-top:2px}
.research-citation>p:nth-child(2){max-width:680px;margin:0 0 26px;font-size:12px;line-height:1.65;color:var(--muted)}

@media(max-width:980px){
  .research-overview{grid-template-columns:1.6fr 8.4fr;gap:32px}.research-overview-copy{grid-column:2;grid-template-columns:1fr;gap:16px}
  .research-entry{grid-template-columns:1.6fr 8.4fr;gap:32px}.research-entry-content{grid-template-columns:1fr 1fr;column-gap:42px}
  .research-method-grid{grid-template-columns:1.5fr 5.5fr 3fr;gap:34px}
  .research-note-layout{grid-template-columns:2.2fr 7.8fr;gap:42px}.research-article-body{grid-column:2}
}
@media(max-width:720px){
  .research-hero{padding-bottom:60px}
  .research-overview{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-bottom:45px}.research-count{font-size:44px}.research-overview-copy{grid-column:2}.research-overview-copy>p:last-child{font-size:13px}
  .research-list{padding-bottom:76px}.research-entry{display:block;padding:26px 0 30px}.research-entry-meta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px 12px;margin-bottom:22px}.research-entry-status{margin-top:0;justify-self:end}.research-entry-content{display:block}.research-entry h2{font-size:28px}.research-entry-content>p{margin-top:15px}.research-entry-footer{margin-top:25px;align-items:flex-start}.research-topics{max-width:70%}
  .research-method{padding:76px 0 82px}.research-method-grid{display:block}.research-method-grid h2{margin:22px 0 30px;font-size:36px}.research-method-grid>div{padding:0}
  .research-note-hero{padding-top:102px;padding-bottom:55px}.research-back{margin-bottom:44px}.research-note-meta{gap:7px 13px}.research-note-hero h1{font-size:clamp(43px,12vw,60px);line-height:.94}.research-note-deck{font-size:17px;margin-top:28px}.research-note-byline{margin-top:32px}.research-note-byline strong{margin-left:0}
  .research-note-layout{display:block;padding-top:32px;padding-bottom:84px}.research-note-aside{position:static;padding:0 0 46px}.research-note-aside nav{display:none}.research-article-body{max-width:none}.research-article-body section{padding-bottom:54px;margin-bottom:52px}.research-article-body h2{font-size:32px}.research-article-body p{font-size:14px}.research-article-body .research-abstract{font-size:18px}.research-protocol{grid-template-columns:1fr}.research-protocol>div{min-height:0}.research-protocol span{margin-bottom:28px}.research-article-body blockquote{font-size:24px}
}
@media(max-width:430px){
  .research-overview{grid-template-columns:1fr;gap:18px}.research-count-block,.research-overview-copy{grid-column:1}.research-count-block{padding-top:22px;flex-direction:row;align-items:baseline;gap:10px}.research-count{font-size:38px}
  .research-entry-meta{grid-template-columns:auto 1fr}.research-entry-status{grid-column:1;margin-top:3px;justify-self:start}.research-entry-content>p{font-size:12.5px}.research-entry-footer{display:block}.research-topics{max-width:none;margin-bottom:24px}
  .research-note-meta{display:grid;grid-template-columns:auto 1fr}.research-note-byline{display:grid;grid-template-columns:1fr}.research-note-byline strong{justify-self:start}
}

/* ======================================================================
   GreenTrust v24 — scroll choreography
   Quiet, editorial motion: no floating UI, no heavy parallax.
   ====================================================================== */
:root{
  --v24-scroll-ease:cubic-bezier(.16,1,.3,1);
  --v24-scroll-duration:760ms;
}

/* JS adds these classes only after the observer is ready, so content never
   depends on animation to remain visible. */
.gt-scroll-copy{
  transition:opacity var(--v24-scroll-duration) ease,
             transform var(--v24-scroll-duration) var(--v24-scroll-ease),
             letter-spacing var(--v24-scroll-duration) var(--v24-scroll-ease),
             color 360ms ease;
}
.gt-scroll-copy:not(.is-scroll-seen){
  opacity:.56;
  transform:translate3d(0,7px,0);
}
.gt-scroll-copy.is-scroll-seen{opacity:1;transform:none}

.gt-scroll-meta{
  transition:opacity 620ms ease,transform 720ms var(--v24-scroll-ease);
}
.gt-scroll-meta:not(.is-scroll-seen){opacity:.48;transform:translate3d(-5px,0,0)}
.gt-scroll-meta.is-scroll-seen{opacity:1;transform:none}

/* Existing editorial rules remain visible; a second hairline completes over
   them as the item enters the reading zone. */
.gt-scroll-rule{position:relative}
.gt-scroll-rule::after{
  content:"";
  position:absolute;
  z-index:2;
  left:0;right:0;bottom:-1px;
  height:1px;
  pointer-events:none;
  background:color-mix(in srgb,var(--ink) 36%,var(--line));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 980ms var(--v24-scroll-ease);
}
.gt-scroll-rule.is-scroll-seen::after{transform:scaleX(1)}

/* Major sections breathe in without translating the entire layout. */
.gt-scroll-stage{
  --gt-stage-opacity:.72;
  transition:opacity 780ms ease,filter 900ms ease;
}
.gt-scroll-stage:not(.is-scroll-seen){opacity:var(--gt-stage-opacity);filter:saturate(.94)}
.gt-scroll-stage.is-scroll-seen{opacity:1;filter:none}

/* Founder photography gets a restrained editorial reveal. */
.founder.gt-scroll-image figure{clip-path:inset(0 0 5% 0);transition:clip-path 960ms var(--v24-scroll-ease)}
.founder.gt-scroll-image figure img{transform:scale(1.028);transition:transform 1100ms var(--v24-scroll-ease),filter 600ms ease}
.founder.gt-scroll-image.is-scroll-seen figure{clip-path:inset(0)}
.founder.gt-scroll-image.is-scroll-seen figure img{transform:scale(1)}
.founder.gt-scroll-image.is-scroll-seen:hover figure img{transform:scale(1.012)}

/* Current-section indicators on long-form pages now morph instead of snapping. */
.research-note-aside nav a,.tech-index a{
  position:relative;
  transition:color 380ms ease,opacity 380ms ease,transform 520ms var(--v24-scroll-ease)!important;
}
.research-note-aside nav a::before{
  content:"";
  position:absolute;
  left:-13px;top:50%;
  width:4px;height:4px;border-radius:999px;
  background:var(--signal);
  opacity:0;
  transform:translateY(-50%) scale(.2);
  transition:opacity 300ms ease,transform 520ms var(--v24-scroll-ease);
}
.research-note-aside nav a.is-active{color:var(--ink);transform:translateX(3px)}
.research-note-aside nav a.is-active::before{opacity:1;transform:translateY(-50%) scale(1)}

/* Dark sections receive a barely perceptible light sweep tied to entry, not
   pointer movement. It keeps the surface alive without becoming an effect. */
.dark-surface.gt-scroll-stage{position:relative;isolation:isolate;overflow:hidden}
.dark-surface.gt-scroll-stage::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-15% -8%;
  pointer-events:none;
  background:radial-gradient(70% 70% at 18% 28%,rgba(255,255,255,.045),transparent 72%);
  opacity:0;
  transform:translate3d(-2%,1%,0);
  transition:opacity 1100ms ease,transform 1400ms var(--v24-scroll-ease);
}
.dark-surface.gt-scroll-stage.is-scroll-seen::after{opacity:1;transform:none}

/* Dynamic Research entries use the same choreography as server-rendered content. */
.research-entry.gt-scroll-stage .research-entry-content{
  transition:opacity 720ms ease,transform 780ms var(--v24-scroll-ease);
}
.research-entry.gt-scroll-stage:not(.is-scroll-seen) .research-entry-content{opacity:.62;transform:translate3d(0,6px,0)}
.research-entry.gt-scroll-stage.is-scroll-seen .research-entry-content{opacity:1;transform:none}

/* Footer arrives as one quiet closing movement. */
.site-footer.gt-scroll-stage:not(.is-scroll-seen){--gt-stage-opacity:.82}

@media(max-width:820px){
  .gt-scroll-copy:not(.is-scroll-seen){transform:translate3d(0,5px,0)}
  .gt-scroll-meta:not(.is-scroll-seen){transform:translate3d(-3px,0,0)}
  .dark-surface.gt-scroll-stage::after{inset:-8% -20%}
}

@media(prefers-reduced-motion:reduce){
  .gt-scroll-copy,.gt-scroll-meta,.gt-scroll-stage,.gt-scroll-rule,
  .founder.gt-scroll-image figure,.founder.gt-scroll-image figure img,
  .research-note-aside nav a,.research-note-aside nav a::before{
    opacity:1!important;transform:none!important;filter:none!important;
    transition:none!important;clip-path:none!important;
  }
  .gt-scroll-rule::after{transform:scaleX(1)!important;transition:none!important}
  .dark-surface.gt-scroll-stage::after{display:none!important}
}

/* v25 — one active-state language ----------------------------------------
   Dots communicate navigation/current-reading state everywhere. Rules are
   structural separators only; active items never turn into bars or shift. */
.site-nav a.active::after{display:block!important}

.tech-index a,
.research-note-aside nav a,
.legal-nav a,
.legal-toc a,
.policy-toc a{
  position:relative;
  padding-left:13px!important;
  transform:none!important;
  transition:color 360ms ease,opacity 360ms ease!important;
}
.tech-index a::before,
.research-note-aside nav a::before,
.legal-nav a::before,
.legal-toc a::before,
.policy-toc a::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:0!important;top:50%!important;
  width:4px!important;height:4px!important;
  border:0!important;border-radius:50%!important;
  background:var(--signal)!important;
  opacity:0!important;
  transform:translateY(-50%) scale(.35)!important;
  transition:opacity 260ms ease,transform 420ms var(--v24-scroll-ease)!important;
}
.tech-index a.active::before,
.tech-index a.is-active::before,
.research-note-aside nav a.active::before,
.research-note-aside nav a.is-active::before,
.legal-nav a.active::before,
.legal-nav a.is-active::before,
.legal-toc a.active::before,
.legal-toc a.is-active::before,
.policy-toc a.active::before,
.policy-toc a.is-active::before{
  opacity:1!important;
  transform:translateY(-50%) scale(1)!important;
}
.tech-index a.active,
.tech-index a.is-active,
.research-note-aside nav a.active,
.research-note-aside nav a.is-active,
.legal-nav a.active,
.legal-nav a.is-active,
.legal-toc a.active,
.legal-toc a.is-active,
.policy-toc a.active,
.policy-toc a.is-active{
  color:var(--ink)!important;
  transform:none!important;
}


/* ======================================================================
   GreenTrust v26 — Research publication typesetting
   LaTeX via KaTeX + BibTeX-backed citations and bibliography.
   ====================================================================== */
.research-equation{
  margin:34px 0 36px;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  color:var(--ink);
  font:500 14px/1.75 var(--mono);
  white-space:pre-wrap;
}
.research-equation .katex-display{
  margin:0;
  padding:2px 0;
  overflow-x:auto;
  overflow-y:hidden;
  text-align:left;
}
.research-equation .katex-display>.katex{
  display:inline-block;
  min-width:max-content;
  text-align:left;
  font-size:1.08em;
}
.research-article-body .katex{color:inherit}
.research-article-body .katex-display{color:var(--ink)}
.research-article-body .katex-error{color:var(--accent)!important;font:500 12px/1.5 var(--mono)}

.research-cite{font-style:normal;white-space:nowrap;color:var(--muted)}
.research-cite a{color:var(--accent);text-decoration:none;font:620 .78em/1 var(--mono);vertical-align:.12em}
.research-cite a:hover{text-decoration:underline;text-underline-offset:3px}
.research-cite-missing{font-style:normal;color:var(--accent);font:560 10px/1.2 var(--mono)}

.research-bibliography-intro code{
  padding:2px 5px;
  border:1px solid var(--line);
  border-radius:4px;
  font:530 .86em/1 var(--mono);
  color:var(--ink);
  background:var(--surface);
}
.research-bibliography{
  list-style:none;
  margin:34px 0 0;
  padding:0;
  border-top:1px solid var(--line);
}
.research-reference{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:18px;
  margin:0;
  padding:21px 0 23px;
  border-bottom:1px solid var(--line);
  scroll-margin-top:112px;
}
.research-reference-index{padding-top:3px;color:var(--muted);font:570 9px/1.35 var(--mono)}
.research-reference-body{display:flex;flex-direction:column;gap:5px;min-width:0}
.research-reference-authors{font-size:12px;line-height:1.55;color:var(--text)}
.research-reference-title{font-size:14px;line-height:1.5;font-weight:580;color:var(--ink)}
.research-reference-title a{color:inherit;text-decoration:none}
.research-reference-title a:hover{color:var(--accent)}
.research-reference-details{font:520 9px/1.5 var(--mono);letter-spacing:.015em;color:var(--muted)}

.research-bibtex{
  margin-top:30px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.research-bibtex summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:17px 0;
  cursor:pointer;
  list-style:none;
  color:var(--ink);
  font:590 10px/1.3 var(--mono);
  text-transform:uppercase;
  letter-spacing:.075em;
}
.research-bibtex summary::-webkit-details-marker{display:none}
.research-bibtex summary span{font-size:16px;font-weight:400;transition:transform 360ms var(--ease)}
.research-bibtex[open] summary span{transform:rotate(45deg)}
.research-bibtex-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:3px 0 15px;
}
.research-bibtex-toolbar button,.research-bibtex-toolbar a,.research-citation-button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:0 12px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  text-decoration:none;
  cursor:pointer;
  font:590 9px/1 var(--mono);
  letter-spacing:.025em;
  transition:border-color 300ms ease,background-color 300ms ease,color 300ms ease,opacity 300ms ease;
}
.research-bibtex-toolbar button:hover,.research-bibtex-toolbar a:hover,.research-citation-button:hover{
  border-color:var(--ink);
  background:var(--ink);
  color:var(--bg);
}
.research-bibtex-toolbar button[data-state="copied"],.research-citation-button[data-state="copied"]{
  border-color:var(--accent);
  color:var(--accent);
  background:var(--accent-soft);
}
.research-bibtex pre{
  max-height:390px;
  margin:0 0 20px;
  padding:17px 18px;
  overflow:auto;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--text);
  white-space:pre;
  tab-size:2;
}
.research-bibtex code{font:500 10px/1.65 var(--mono)}
.research-citation-actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 25px}
.research-citation>.research-read-link{margin-top:4px}

@media(max-width:720px){
  .research-equation{margin:27px 0 30px;padding:19px 0;font-size:12px}
  .research-equation .katex-display>.katex{font-size:.94em}
  .research-reference{grid-template-columns:38px minmax(0,1fr);gap:11px;padding:18px 0 20px}
  .research-reference-authors{font-size:11.5px}.research-reference-title{font-size:13px}
  .research-bibtex pre{margin-inline:0;padding:14px;font-size:9px}
}

@media(prefers-reduced-motion:reduce){
  .research-bibtex summary span,.research-bibtex-toolbar button,.research-bibtex-toolbar a,.research-citation-button{transition:none!important}
}

/* ======================================================================
   v27 — single palette, accurate content hierarchy, controlled imagery
   The two-tone hero block is removed (including its vertical divider).
   ====================================================================== */
:root{
  color-scheme:light;
  --bg:#e9eeeb;
  --surface:#dfe6e1;
  --surface-2:#d6ded8;
  --ink:#172922;
  --text:#46564f;
  --muted:#66766e;
  --line:#cbd5cd;
  --line-strong:#abbab0;
  --accent:#24503d;
  --accent-strong:#183e30;
  --accent-soft:#d3e1d7;
  --on-accent:#f5f5eb;
  --header:rgba(233,238,235,.95);
  --signal:#b7dd99;
  --gt-paper:var(--bg);--gt-cream:var(--bg);--gt-sand:var(--surface-2);
  --gt-mist:var(--surface);--gt-ink:var(--ink);--gt-copy:var(--text);
  --gt-faint:var(--muted);--gt-line:var(--line);--gt-soft-line:var(--line);
  --gt-forest:var(--accent);--gt-accent:var(--accent);
}
html{color-scheme:light; background:var(--bg)}
body{background:var(--bg)}
.home-v16{--h-green:#173b2e;--h-green-2:#173b2e;--h-hero:#f1f4ed;--h-hero-muted:#c7d5ca;--h-hero-line:rgba(241,246,237,.19)}
.home-v16 .gt15-hero,
.home-v16 .gt15-hero:where(:hover,:focus-within){background:#173b2e!important;isolation:isolate}
.home-v16 .gt15-hero::after,.home-v16 .gt15-hero::before{display:none!important;content:none!important}
.home-v16 .gt15-header:not(.scrolled):not(.menu-open){background:#173b2e!important}
.home-v16 .gt15-hero-main{grid-template-columns:minmax(0,1.22fr) minmax(310px,.78fr);gap:clamp(40px,5vw,88px)}
.gt15-hero h1{font-size:clamp(48px,5vw,76px);max-width:820px;overflow-wrap:normal}
.gt15-intro{max-width:500px;min-width:0}
.gt15-intro>p{font-size:clamp(14px,1.05vw,16px)!important;color:#e0e9e1!important;line-height:1.72}
.gt15-bottomline p:first-child{color:var(--h-hero)!important}
.home-v16 .gt15-hero .gt15-display-brand{color:#f1f4ed}
.gt15-display-brand span{color:#c5e2af}
.site-nav a.active::after{background:var(--signal)!important}
.site-nav a:hover{color:var(--ink)}
/* Keep controls aligned now that the theme switch has been retired. */
.site-header .header-actions{gap:0}
/* A stronger editorial rather than empty/oversized founder gallery. */
.founders{
  width:min(1070px,calc(100% - 96px));
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(36px,6vw,96px);
  padding-top:34px;
  padding-bottom:92px;
}
.founder figure{
  width:min(100%,325px);
  height:380px;
  aspect-ratio:auto!important;
  margin:0;
  background:#cad7cd;
}
.founder figure img,
.founder.gt-scroll-image figure img{
  object-position:center 28%;
  filter:saturate(1.15) contrast(1.045) brightness(1.015)!important;
}
.founder-meta{display:block!important;padding-top:19px}
.founder-meta>div{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.founder-meta h2{font-size:23px}
.founder-meta>p{max-width:395px;margin:18px 0 0;font-size:13px;line-height:1.76}
.founder-social{display:inline-flex;align-items:center;gap:15px;text-decoration:none;margin-top:14px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font:550 11px/1.2 var(--mono);transition:border-color .25s,color .25s}
.founder-social:hover{border-color:var(--ink);color:var(--accent)}
.founder-social span{transition:transform .35s var(--v20-control-ease)}
.founder-social:hover span{transform:translate(2px,-2px)}
/* Keep mobile rhythm intentional and avoid introducing another breakpoint split. */
@media(max-width:980px){
  .home-v16 .gt15-hero-main{grid-template-columns:1fr;gap:24px}
  .gt15-intro{max-width:640px}
  .founders{width:calc(100% - 64px);gap:42px}
  .founder figure{height:345px;max-width:290px}
}
@media(max-width:640px){
  .founders{grid-template-columns:1fr;width:calc(100% - 30px);gap:52px;padding-top:23px;padding-bottom:67px}
  .founder{max-width:100%}
  .founder figure{height:clamp(275px,90vw,365px);width:min(100%,300px)}
  .gt15-hero h1{font-size:clamp(39px,10.8vw,54px)}
  .gt15-intro{max-width:100%}
  .gt15-intro>p{font-size:14px!important}
}
@media(max-width:430px){.founders{width:calc(100% - 24px)}}
@media(prefers-reduced-motion:reduce){.founder-social span{transition:none}}
