/* NETAJ — shared inner-page styles (Editorial Industrial system) */
:root{
  --ink:#0A0F0C; --ink-soft:#131815; --ink-700:#2A312E; --ink-500:#5A615E; --ink-300:#9DA39F;
  --bone:#F7F7F3; --bone-warm:#ECECE6; --bone-deep:#DEDED7; --paper:#FBFBF7;
  --green:#3A884A; --green-light:#609C68; --green-deep:#2A6438; --green-darker:#1A3F22;
  --green-fog:rgba(58,136,74,.10);
  --rule-ink:rgba(10,15,12,.14); --rule-bone:rgba(255,255,255,.10);
  --serif:"Fraunces","Iowan Old Style",Georgia,serif;
  --sans:"Geist",ui-sans-serif,system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(20px,4vw,56px); --max:1320px;
}
*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--bone);font-size:16px;line-height:1.55;font-feature-settings:"ss01","tnum";-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--green);color:var(--bone)}
img{max-width:100%;display:block}a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);position:relative}

/* Type */
.display-xl{font-family:var(--serif);font-weight:400;font-size:clamp(56px,9vw,124px);line-height:.96;letter-spacing:-.035em;font-variation-settings:"opsz" 144}
.display-l{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,84px);line-height:1.02;letter-spacing:-.025em;font-variation-settings:"opsz" 144}
.display-m{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.4vw,60px);line-height:1.08;letter-spacing:-.018em;font-variation-settings:"opsz" 144}
.lede{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(20px,1.9vw,26px);line-height:1.45;letter-spacing:-.005em;font-variation-settings:"opsz" 36;color:var(--ink-700)}
em.serif{font-style:italic;font-family:var(--serif);font-weight:400;color:var(--ink)}
em.brand{font-style:italic;font-family:var(--serif);font-weight:400;color:var(--green-deep);font-variation-settings:"opsz" 60}
.chapter{display:flex;align-items:baseline;gap:18px;font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-500);margin-bottom:32px}
.chapter .sect{font-family:var(--serif);font-style:italic;font-weight:300;font-size:18px;letter-spacing:0;color:var(--green);transform:translateY(2px)}
.chapter .num{color:var(--green-deep);font-weight:600}
.chapter .em{color:var(--ink);font-weight:600}
.chapter .rule{flex:1;height:1px;background:var(--rule-ink);margin-left:8px}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter);background:transparent;color:var(--bone);transition:background 360ms,color 360ms,border-color 360ms;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(247,247,243,.94);color:var(--ink);border-color:var(--rule-ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.nav .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;line-height:0}
.nav .brand img{height:56px;width:auto;transition:filter 360ms}
@media(max-width:680px){.nav .brand img{height:44px}}
.nav:not(.scrolled) .brand img{filter:brightness(0) invert(1)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:30px;align-items:center}
.nav ul a{text-decoration:none;color:inherit;font-family:var(--mono);font-weight:500;font-size:15px;letter-spacing:.10em;text-transform:uppercase;opacity:1;position:relative;padding:6px 0}
.nav ul a:hover{opacity:1}
.nav ul a:hover::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--green)}
.nav ul li.current a{opacity:1;color:var(--green)}
.nav ul li.current a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--green)}
.nav .lang{font-family:var(--mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;padding-left:24px;margin-left:6px;border-left:1px solid currentColor;opacity:1}
.nav .lang span.active{color:var(--green);font-weight:600}.nav .lang span:not(.active){opacity:.55}
.nav .has-dd{position:relative}
/* Invisible bridge between trigger and panel — fixes hover-disappear bug when moving cursor down */
.nav .has-dd::after{content:"";position:absolute;top:100%;left:-12px;right:-12px;height:22px;background:transparent;pointer-events:none}
.nav .has-dd:hover::after,.nav .has-dd:focus-within::after,.nav .has-dd.open::after{pointer-events:auto}
/* Trigger arrow indicator */
.nav .has-dd > a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:8px;transition:transform .25s,border-color .25s;opacity:.7}
.nav .has-dd:hover > a::after,.nav .has-dd.open > a::after{transform:translateY(1px) rotate(-135deg);opacity:1}
.nav .dd-panel{position:absolute;right:0;top:calc(100% + 22px);width:380px;max-width:calc(100vw - 32px);background:var(--bone);color:var(--ink);border:1px solid var(--rule-ink);box-shadow:0 30px 80px -30px rgba(10,15,12,.45),0 1px 0 var(--green);padding:8px;opacity:0;pointer-events:none;transform:translateY(-10px) scale(.97);transform-origin:top right;transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1)}
.nav .has-dd:hover .dd-panel,.nav .has-dd.open .dd-panel,.nav .has-dd:focus-within .dd-panel{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.nav .dd-panel a{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;text-decoration:none;color:var(--ink);opacity:1;letter-spacing:0;text-transform:none;font-family:var(--sans);font-size:14px;border-bottom:1px solid var(--rule-ink);transition:background .2s,padding-left .2s}
.nav .dd-panel a:last-child{border-bottom:0}
.nav .dd-panel a:hover{background:var(--bone-warm);padding-left:22px}
.nav .dd-panel a:hover::after{display:none}
.nav .dd-num{font-family:var(--mono);font-size:11px;color:var(--green-deep);letter-spacing:.1em;padding-top:3px;min-width:30px}
.nav .dd-text{display:flex;flex-direction:column;gap:2px}
.nav .dd-name{font-family:var(--serif);font-size:18px;font-variation-settings:"opsz" 36;letter-spacing:-.01em}
.nav .dd-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500)}
.nav .hamburger{display:none;width:38px;height:38px;border:1px solid currentColor;background:transparent;cursor:pointer;align-items:center;justify-content:center;gap:4px;flex-direction:column}
.nav .hamburger span{width:16px;height:1px;background:currentColor;transition:transform .25s,opacity .25s}
.nav.menu-open .hamburger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav.menu-open .hamburger span:nth-child(2){opacity:0}
.nav.menu-open .hamburger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media(max-width:980px){
  .nav{padding:14px var(--gutter)}
  .nav .hamburger{display:flex}
  .nav .brand img{height:42px}
  .nav ul{position:fixed;top:58px;left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;padding:24px var(--gutter) 48px;gap:0;background:var(--bone);color:var(--ink);border-top:1px solid var(--rule-ink);transform:translateY(-110%);transition:transform .4s cubic-bezier(.16,1,.3,1);overflow-y:auto}
  .nav.menu-open ul{transform:translateY(0)}
  .nav ul li{width:100%;border-bottom:1px solid var(--rule-ink)}
  .nav ul li:last-child{border-bottom:0}
  .nav ul a{display:block;padding:18px 0;font-family:var(--serif)!important;font-size:24px!important;font-weight:400!important;letter-spacing:-.01em!important;text-transform:none!important;line-height:1.2}
  .nav ul a:hover::after{display:none}
  .nav .has-dd{position:static}
  .nav .has-dd::after{display:none}
  .nav .has-dd > a::after{display:none}
  .nav .has-dd > a{position:relative}
  .nav .has-dd > a::before{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:24px;font-weight:300}
  .nav .has-dd.open > a::before{content:"−"}
  .nav .has-dd .dd-panel{position:static;width:100%;max-width:none;transform:none;opacity:0;box-shadow:none;padding:0 0 16px;border:0;background:transparent;max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,padding .35s ease}
  .nav .has-dd.open .dd-panel{opacity:1;pointer-events:auto;max-height:600px}
  .nav .dd-panel a{padding:14px 16px;border-bottom:1px solid var(--rule-ink);background:var(--bone-warm);margin-bottom:1px}
  .nav .dd-panel a:last-child{margin-bottom:0}
  .nav .dd-panel a:hover{padding-left:22px}
  .nav .dd-name{font-size:17px}
  .nav .dd-sub{font-size:10px}
  .nav .lang{border-left:0!important;padding-left:0!important;margin-left:0!important;padding:18px 0}
}

/* Page hero */
.page-hero{min-height:80vh;background:var(--ink);color:var(--bone);display:flex;align-items:flex-end;padding:140px 0 80px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.045) 1px,transparent 1px);background-size:140px 140px;mask-image:radial-gradient(ellipse at 50% 60%,#000 30%,transparent 90%);-webkit-mask-image:radial-gradient(ellipse at 50% 60%,#000 30%,transparent 90%)}
.page-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 80% 30%,rgba(58,136,74,.16) 0%,transparent 70%)}
.page-hero .wrap{position:relative;z-index:2}
.page-hero .hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:24px;color:rgba(247,247,243,.78);margin-bottom:48px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.page-hero .hero-meta .star{color:var(--green-light)}
.page-hero .hero-meta .pipe{width:28px;height:1px;background:rgba(247,247,243,.4)}
.page-hero h1{margin:0 0 28px;max-width:18ch}
.page-hero h1 em{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--green-light)}
.page-hero .hero-sub{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(20px,2.2vw,28px);color:rgba(247,247,243,.85);max-width:42ch;margin:0;font-variation-settings:"opsz" 60}

/* Sections */
.sec{padding:120px 0;border-top:1px solid var(--rule-ink)}
.sec.dark{background:var(--ink);color:var(--bone);border-top:1px solid var(--ink)}
.sec.dark .chapter{color:var(--ink-300)}
.sec.dark .chapter .em{color:var(--bone)}
.sec.dark .chapter .rule{background:var(--rule-bone)}
.sec.paper{background:var(--paper)}
.asym{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:880px){.asym{grid-template-columns:3fr 9fr;gap:80px;align-items:start}}
.asym .aside{position:sticky;top:120px}
.body-text p{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--ink-700);max-width:62ch;margin:0 0 18px}
.body-text p.serif-lead{font-family:var(--serif);font-weight:300;font-size:clamp(22px,2.4vw,30px);line-height:1.42;letter-spacing:-.012em;color:var(--ink);max-width:34ch;font-variation-settings:"opsz" 60;margin-bottom:24px}
.body-text p.serif-lead em{font-style:italic;color:var(--green-deep)}
.sec.dark .body-text p{color:rgba(247,247,243,.78)}
.sec.dark .body-text p.serif-lead{color:var(--bone)}
.sec.dark .body-text p.serif-lead em{color:var(--green-light)}
.aside-meta{font-family:var(--mono);color:var(--ink-500);font-size:13px;letter-spacing:.04em}

/* Closing pull */
.pull{background:var(--ink);color:var(--bone);padding:140px 0 130px;text-align:center;border-top:1px solid var(--ink);overflow:hidden;position:relative}
.pull::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(58,136,74,.10) 0%,transparent 65%)}
.pull .glyph{font-family:var(--serif);font-style:italic;font-weight:300;font-size:96px;line-height:1;color:var(--green-light);margin-bottom:24px;font-variation-settings:"opsz" 144;display:inline-block}
.pull h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,4.6vw,64px);line-height:1.1;letter-spacing:-.02em;margin:0 auto 24px;max-width:24ch;font-variation-settings:"opsz" 144}
.pull h2 em{font-style:italic;color:var(--green-light)}
.pull p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:rgba(247,247,243,.78);max-width:54ch;margin:0 auto 36px;font-variation-settings:"opsz" 36}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid currentColor;transition:background .25s,color .25s,border-color .25s}
.btn svg{width:14px;height:14px;transition:transform .25s}
.btn:hover svg{transform:translateX(4px)}
.btn.primary{background:var(--green);color:var(--bone);border-color:var(--green)}
.btn.primary:hover{background:var(--green-light);border-color:var(--green-light)}
.btn.ghost{background:transparent;color:var(--bone);border-color:rgba(247,247,243,.5)}
.btn.ghost:hover{border-color:var(--bone);background:rgba(247,247,243,.08)}
.btn.outline-ink{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.outline-ink:hover{background:var(--ink);color:var(--bone)}

/* Footer */
.footer{background:var(--ink);color:var(--bone);padding:80px 0 36px;border-top:1px solid var(--ink)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:48px;border-bottom:1px solid var(--rule-bone);padding-bottom:48px;margin-bottom:32px}
@media(min-width:880px){.footer-grid{grid-template-columns:5fr 7fr;gap:60px}}
.footer-mast img{height:54px;width:auto;margin-bottom:28px;filter:brightness(0) invert(1)}
@media(max-width:680px){.footer-mast img{height:44px}}
.footer-mast .tag{font-family:var(--serif);font-style:italic;font-weight:300;font-size:22px;line-height:1.3;color:var(--bone);font-variation-settings:"opsz" 60;max-width:22ch;margin:0 0 24px}
.footer-mast .tag em{font-style:italic;color:var(--green-light)}
.footer-mast .addr{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;line-height:1.7;color:var(--ink-300)}
.footer-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
@media(min-width:680px){.footer-cols{grid-template-columns:repeat(4,1fr)}}
.footer-col h4{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--green-light);margin:0 0 16px;font-weight:600}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:8px}
.footer-col a{color:var(--bone);text-decoration:none;opacity:.8;font-size:13.5px}
.footer-col a:hover{opacity:1;color:var(--green-light)}
.footer-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-300)}
.footer-base .certs span{color:var(--green-light)}
.footer-base .lang span.active{color:var(--green-light);font-weight:600}

/* Reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
