/* Guester Axis · global sheet: fonts, tokens, reset, header, buttons, footer.
   Page sheets (home.css, demo.css, founding.css, journal.css, article.css) build on this.
   Rules: no font-size below var(--fs-micro); interactive targets ≥ 44px on touch. */
/* Root-absolute font URLs: the liquid-glass capture resolves @font-face sources against the document, not the sheet. */
@font-face{font-family:Satoshi;src:url('/wp-content/themes/guester-axis/assets/fonts/Satoshi-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url('/wp-content/themes/guester-axis/assets/fonts/Satoshi-Medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Satoshi Fallback';src:local('Arial');size-adjust:96%;ascent-override:96%;descent-override:24%;line-gap-override:0%}
:root{--ink:#161719;--paper:#fff;--surface:#f4f5f6;--muted:#60646b;--muted-strong:#5a5f66;--line:#dfe1e4;--line-strong:#80868f;--inverse-muted:#b5b8bf;--inverse-line:#7c828c;--fs-micro:11px;--fs-small:12px;--fs-control:13px;--fs-body:16px;--ease:cubic-bezier(.16,1,.3,1);--radius:16px;--radius-control:8px;--header-h:76px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px;overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:Satoshi,'Satoshi Fallback',Arial,sans-serif;font-size:var(--fs-body);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
button{cursor:pointer;background:none;border:0;padding:0}
img,video{max-width:100%;height:auto;vertical-align:middle}
svg{display:block}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{font-weight:500}
h1,h2{text-wrap:balance}
ul,ol{margin:0;padding:0}
button,a,summary{-webkit-tap-highlight-color:transparent}
::selection{background:#dadcdf;color:var(--ink)}
[hidden]{display:none!important}
:where(button,a,summary,[tabindex]):focus-visible{outline:2px solid #111;outline-offset:4px;box-shadow:0 0 0 6px rgba(255,255,255,.85);border-radius:4px}
.gax-inverse :where(button,a,summary,[tabindex]):focus-visible{outline-color:#fff;box-shadow:0 0 0 6px rgba(0,0,0,.6)}
.wrap{max-width:1376px;margin:0 auto;padding-left:48px;padding-right:48px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gax-skip{position:fixed;left:16px;top:-100px;padding:12px 20px;background:var(--ink);color:#fff;z-index:10000;border-radius:var(--radius-control)}
.gax-skip:focus{top:12px}
main:focus{outline:none}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background-color .3s}
/* Reserve the actual header height before enhancement reparents it into main.
   Fixed positioning preserves its viewport position without moving main's box. */
html.js-motion body::before{content:'';display:block;height:var(--gax-header-space,calc(var(--header-h) + 1px))}
html.js-motion .site-header{position:fixed;left:0;right:0}
.site-header.is-scrolled{border-color:#eceef0;box-shadow:0 4px 20px rgba(0,0,0,.025)}
/* Scrolled header: frosted glass everywhere; with WebGL the liquid-glass canvas (assets/js/vendor/liquidglass.js) replaces the paper. */
@supports((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
	.site-header.is-scrolled{background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4)}
}
.site-header.has-liquid-glass{border-bottom-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.site-header.has-liquid-glass.is-scrolled{background:transparent;border-bottom-color:rgba(255,255,255,.55)}
.site-header>canvas{opacity:0;transition:opacity .35s}
.site-header.is-scrolled>canvas{opacity:1}
/* Light glass material: a thin white veil above the refraction keeps the ink legible over dark sections. */
.site-header.has-liquid-glass::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.46));pointer-events:none;opacity:0;transition:opacity .35s}
.site-header.has-liquid-glass.is-scrolled{box-shadow:0 10px 30px rgba(0,0,0,.08)}
.site-header.has-liquid-glass.is-scrolled::before{opacity:1}
.site-header .nav-shell,.site-header .mobile-nav{position:relative;z-index:1}
.site-header.has-liquid-glass .mobile-nav{background:rgba(255,255,255,.82)}
/* The glass root is <main>; the library disables selection on it, so hand it back to the content. */
main.has-liquid-glass-root>:not(.site-header){user-select:text;-webkit-user-select:text}
.admin-bar .site-header{top:32px}
.nav-shell{max-width:1376px;padding:16px 48px;display:flex;align-items:center;gap:32px;margin:0 auto}
.brand{flex-shrink:0;display:inline-flex;align-items:center;min-height:44px}
.brand img{width:151px;height:auto;display:block}
.desktop-nav{display:flex;gap:28px;margin:auto;font-size:14px}
.desktop-nav a,.login-link{display:inline-flex;align-items:center;min-height:44px;transition:color .2s}
.desktop-nav a:hover,.login-link:hover{color:var(--muted-strong)}
.desktop-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--line-strong)}
.header-actions{display:flex;gap:24px;align-items:center;font-size:14px}
.login-link span{margin-left:8px}
.menu-toggle{display:none;width:44px;height:44px;padding:10px;border-radius:var(--radius-control)}
.menu-toggle span{display:block;background:var(--ink);height:1.5px;margin:5px 0;transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.mobile-nav{padding:0 24px 16px;border-bottom:1px solid var(--line)}
.mobile-nav a{display:flex;align-items:center;min-height:48px;padding:6px 0;font-size:18px}

/* ---------- controls ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:0 22px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:var(--radius-control);font-size:15px;font-weight:500;line-height:1;white-space:nowrap;transition:background .2s,box-shadow .3s,transform .3s var(--ease)}
.button:hover{background:#303236;box-shadow:0 5px 14px rgba(0,0,0,.13);transform:translateY(-2px)}
.button:active{transform:translateY(0)}
.button-small{min-height:44px;padding:0 17px;gap:16px;font-size:var(--fs-control)}
.button-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.button-ghost:hover{background:var(--surface);box-shadow:none}
.button-arrow{font-size:21px;line-height:1;transition:transform .4s var(--ease)}
/* The hover nudge follows the glyph: forward for →, outward for ↗, down for ↓. */
.button:hover .button-arrow{transform:translateX(3px)}
.button:hover .button-arrow.arrow-out,.text-link:hover span.arrow-out{transform:translate(2px,-2px)}
.button:hover .button-arrow.arrow-down,.text-link:hover span.arrow-down{transform:translateY(3px)}
.text-link{display:inline-flex;align-items:center;gap:15px;min-height:44px;font-size:14px;font-weight:500}
.text-link span{font-size:21px;transition:transform .3s var(--ease)}
.text-link:hover span{transform:translateX(3px)}
.text-link.inverse{color:#fff}
.section-label{display:block;font-size:var(--fs-small);font-weight:500;margin-bottom:27px}
/* Inline Phosphor icons (inc/icons.php) size themselves; they sit on the text baseline of their label. */
.gax-icon{display:inline-block;vertical-align:middle;flex-shrink:0}
.lede{font-size:18px;line-height:1.6;color:var(--muted);max-width:52ch}
.page-head{padding-top:56px}
.page-head h1{font-size:clamp(2.5rem, 1.6rem + 3.4vw, 4.35rem);letter-spacing:-.04em;line-height:1.04;max-width:18ch}
.page-head .lede{margin-top:24px}
h2{font-size:clamp(2.5rem,4.2vw,3.6rem);line-height:1.09;letter-spacing:-.04em}
h2 .l2,h2 .l3,h2 .dim{display:block}
h2 .dim{color:#7c8087}
.rule{height:1px;background:var(--line)}

/* ---------- footer ---------- */
.site-footer{padding-bottom:28px}
.footer-top{display:flex;align-items:center;padding-top:36px;border-top:1px solid var(--line);gap:64px}
.footer-top>p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}
.footer-top>nav{margin-left:auto;display:flex;gap:27px;font-size:var(--fs-small)}
.footer-top a,.footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
.footer-top>nav a,.footer-bottom>nav a{padding-inline:8px;margin-inline:-8px}
.footer-top a:hover,.footer-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;align-items:center;gap:25px;color:var(--muted);font-size:var(--fs-micro);margin-top:34px}
.footer-bottom>nav{display:flex;gap:20px}
.footer-bottom>.footer-top-link{margin-left:auto}

/* ---------- breakpoints ---------- */
@media(max-width:1199px){
	.wrap{padding-left:36px;padding-right:36px}
	.nav-shell{padding-left:36px;padding-right:36px;gap:22px}
	.desktop-nav{gap:20px;font-size:var(--fs-small)}
	.header-actions{gap:18px}
	.brand img{width:135px}
}
@media(max-width:959px){
	.desktop-nav{display:none}
	.header-actions{margin-left:auto}
	.menu-toggle{display:block}
	.nav-shell{gap:20px}
	.footer-top{gap:35px}
	.footer-top>nav{gap:20px;font-size:var(--fs-micro)}
	.footer-top>p{font-size:var(--fs-micro)}
}
@media(max-width:639px){
	html{scroll-padding-top:90px}
	.wrap{padding-left:24px;padding-right:24px}
	.nav-shell{padding:16px 24px;gap:12px}
	.brand img{width:130px}
	.header-actions{gap:8px}
	.header-actions .login-link{display:none}
	.header-actions .button-small{font-size:var(--fs-control);min-height:44px;padding:0 14px;gap:10px}
	.button-small .button-arrow{font-size:16px}
	.page-head{padding-top:36px}
	.lede{font-size:16px}
	.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;padding-top:29px;align-items:center}
	.footer-top .brand img{width:125px}
	.footer-top>p{justify-self:end;text-align:right}
	.footer-top>nav{grid-column:1/-1;margin-left:0;gap:24px}
	.footer-bottom{gap:18px;flex-wrap:wrap;margin-top:20px}
	.footer-bottom>nav{gap:16px}
	.footer-bottom>.footer-top-link{margin-left:0}
	.site-footer{padding-bottom:26px}
	.admin-bar .site-header{top:46px}
}
@media(max-width:360px){
	.nav-shell{padding-left:18px;padding-right:18px}
	.wrap{padding-left:20px;padding-right:20px}
	.brand img{width:120px}
}
.admin-bar{scroll-padding-top:124px}
@media(max-width:639px){.admin-bar{scroll-padding-top:136px}}
@media(max-width:639px){body.gax-native-preview{padding-top:45px}.gax-native-preview .site-header{top:45px}.gax-native-preview{scroll-padding-top:130px}}

/* ---------- reveal + motion preferences ---------- */
@media(prefers-reduced-motion:no-preference){
	html.js-motion [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
	html.js-motion [data-reveal].is-in{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Language links share the existing header rather than adding a second navigation row. */
.language-switch{display:flex;align-items:center;gap:2px;font-size:12px;flex-shrink:0}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:8px;color:var(--muted-strong)}
.language-switch a[aria-current="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.language-switch a:hover{background:var(--surface);color:var(--ink)}
.language-switch--mobile{justify-content:flex-start;border-top:1px solid var(--line);margin-top:8px}
.header-actions{gap:16px}.desktop-nav{gap:22px}.nav-shell{gap:24px}
@media(min-width:960px) and (max-width:1199px){.desktop-nav{gap:14px}.header-actions{gap:10px}.nav-shell{gap:16px}}
@media(max-width:959px){.language-switch--desktop{display:none}}

/* Native links remain usable when enhancement is unavailable. */
@media(max-width:959px){
 html:not(.js-enabled) .menu-toggle{display:none}
 html:not(.js-enabled) .mobile-nav[hidden]{display:block!important}
}
