/* ============================================================
   glenrose.ae — site stylesheet (extracted from home.html etalon)
   Architecture: ITCSS layers · BEM naming
   Namespaces: o- objects · c- components · u- utilities
               is-/has- states · m- motion hooks
   ============================================================ */

/* 0. FONTS (self-hosted, latin subsets) ---------------------- */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-sans-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* IBM Plex Sans normal 400/500/600 — one variable file (wght) */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-sans-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-sans-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-sans-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-serif-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-serif-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src:url('/assets/fonts/ibm-plex-serif-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src:url('/assets/fonts/source-serif-4-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Source Serif 4 normal 400/600 — one variable file (opsz,wght) */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:url('/assets/fonts/source-serif-4-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src:url('/assets/fonts/source-serif-4-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 1. SETTINGS ------------------------------------------------ */
:root{
  color-scheme:light only; /* site is light by design — do not remove */
  --burgundy:#4A121A; --accent:#7A2029;
  --gold:#A98A58; --gold-light:#BDA77F; --bronze:#8C6D3F;
  --bronze-text:#81643A; /* bronze for text/text labels on light: 4.81:1 ivory, 4.52:1 ivory-2; --bronze stays for lines/graphics/focus */
  --ivory:#F5EFE4; --ivory-2:#F0E8D9;
  --ink:#1F1A17; --muted:#6B6058; --rule:#D9CDB8;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  /* fluid type scale 375->1600px; bounds and intercept in rem only (user zoom, A11y) */
  --step-0: clamp(1rem,      0.9522rem + 0.2041vw, 1.1562rem);  /* body        16 -> 18.5 */
  --step-1: clamp(1.0312rem, 0.9452rem + 0.3673vw, 1.3125rem);  /* lede        16.5 -> 21 */
  --step-2: clamp(1.3125rem, 1.1977rem + 0.4898vw, 1.6875rem);  /* h3 practice 21 -> 27 */
  --step-3: clamp(1.5rem,    1.3087rem + 0.8163vw, 2.125rem);   /* h2 sect     24 -> 34 */
  --step-4: clamp(1.5625rem, 1.3329rem + 0.9796vw, 2.3125rem);  /* statement   25 -> 37 */
  --step-5: clamp(2.0625rem, 1.5842rem + 2.0408vw, 3.625rem);   /* h1          33 -> 58 */
  --rail:40px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --nav-nudge:0px;   /* fine-tune nav baseline onto ROSE */
  --lang-nudge:0px;  /* fine-tune EN top onto GLEN */
}
html{scroll-padding-top:11rem} /* tallest sticky masthead below 1024px: 112+1+mnav ~172px (E2) */
@media (min-width:1024px){ html{scroll-padding-top:8.5rem} } /* desktop masthead 112px + air */
html.vA{--serif:'IBM Plex Serif',Georgia,serif}
html.vC{--serif:'Source Serif 4',Georgia,serif}
@media (min-width:900px){ :root{--rail:88px} }

/* 2. GENERIC / BASE ------------------------------------------ */
*{box-sizing:border-box}
html{overflow-x:hidden} /* not on body: any non-visible overflow on an ancestor breaks position:sticky (D1/B7) */
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased}
body.has-open-menu{overflow:hidden}
html.has-open-menu{overflow:hidden} /* the document scroller is html, not body — both must lock */
::selection{background:var(--burgundy);color:var(--ivory)}
a:focus-visible,button:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
p a{color:var(--burgundy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--gold);transition:color .35s ease}
p a:hover{color:var(--accent)}
svg path{shape-rendering:geometricPrecision}

/* 3. OBJECTS ------------------------------------------------- */
/* o-wrap: document column */
.o-wrap{max-width:660px;margin:0 auto;padding:0 20px}
@media (min-width:900px){ .o-wrap{max-width:clamp(45rem,32.14rem + 22.86vw,55rem);padding:0 32px} } /* 720@900 -> 843@1440 -> 880@1600 */
/* o-rule: hairline divider; full-bleed — final decision, dev toggle ?rule=content removed 2026-07-16 */
.o-rule-band{width:100%}
.o-rule{height:1px;background:var(--gold);width:100%;transform-origin:left}
/* o-rail: indented page — the left rail is the template signature */
.o-rail{position:relative;padding-left:var(--rail)}
.o-rail__label{position:absolute;left:5px;top:7px;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--mono);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze-text);white-space:nowrap;pointer-events:none}
.o-rail__label--dark{color:var(--gold-light)}

/* 4. COMPONENTS ---------------------------------------------- */
/* c-skip: skip-to-content link (component; kept first — first focusable on page) */
.c-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--burgundy);color:var(--ivory);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:12px 18px;text-decoration:none}
.c-skip:focus{left:0}
/* c-masthead. NB: longhand padding only — shorthand would kill .o-wrap side padding.
   Sticky + headroom: site.js toggles is-hidden (scroll down hides, scroll up shows);
   without JS the header is simply sticky and always visible */
.c-masthead{position:sticky;top:0;z-index:60;background:var(--ivory)}
html.js .c-masthead.is-hidden{transform:translateY(-100%)}
.c-masthead__inner{display:flex;justify-content:space-between;align-items:stretch;gap:18px;padding-top:24px;padding-bottom:16px} /* 24+60+16=100 mobile, 24+72+16=112 desktop: rule lands on x4 CSS px for dpr 1.25/1.5 */
.c-masthead__brand{display:block;flex:none}
.c-masthead__logo{height:60px;width:auto;display:block} /* integer height puts the gold rule on a whole CSS px (D1) */
@media (min-width:900px){ .c-masthead__logo{height:72px} }
.c-masthead__aside{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}
.c-masthead__langbar{display:flex;justify-content:flex-end;transform:translateY(var(--lang-nudge))}
.c-lang{font-family:var(--mono);font-size:10.5px;line-height:1;letter-spacing:.18em;color:var(--bronze-text)}
/* c-nav: desktop primary nav, baseline sits on ROSE */
.c-nav{display:flex;align-items:baseline;flex-wrap:nowrap;transform:translateY(var(--nav-nudge))}
.c-nav__link{font-family:var(--mono);font-size:11px;line-height:1;letter-spacing:.03em;word-spacing:-.22em;text-transform:uppercase;color:var(--burgundy);text-decoration:none;white-space:nowrap;transition:color .3s ease}
.c-nav__dot{font-family:var(--mono);font-size:11px;line-height:1;color:var(--gold);margin:0 10px}
.c-nav__link:hover{color:var(--accent)}
.c-nav__toggle{-webkit-appearance:none;appearance:none;background:none;border:0;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;line-height:1;letter-spacing:.03em;word-spacing:-.22em;text-transform:uppercase;color:var(--burgundy)}
.c-nav__chevron{width:8px;height:5px}
.c-navco.is-open .c-nav__chevron,.c-nav__toggle[aria-expanded="true"] .c-nav__chevron{transform:rotate(180deg)}
/* c-navco: desktop Company drop-down — in-flow accordion under the nav row, right-aligned */
.c-navco{display:none}
@media (min-width:1024px){
  .c-navco{display:grid;grid-template-rows:0fr}
  .c-navco.is-open{grid-template-rows:1fr}
  .c-navco__list{overflow:hidden;min-height:0;margin-left:auto;width:280px}
  .c-navco__link{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-family:var(--mono);font-size:10.5px;line-height:1;letter-spacing:.03em;word-spacing:-.22em;text-transform:uppercase;color:var(--burgundy);text-decoration:none;padding:15px 0 14px;border-bottom:1px solid var(--rule)}
  .c-navco__link:first-child{margin-top:10px;border-top:1px solid var(--rule)}
  .c-navco__path{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--bronze-text);text-transform:none}
}
/* c-burger: mobile trigger for c-menu */
.c-burger{display:none}
/* c-mnav: mobile nav row + inline Company accordion */
.c-mnav{display:none}
@media (max-width:1023px){
  .c-nav{display:none}
  /* 44px touch targets are painted via padding; negative margins keep the visual rhythm */
  .c-burger{display:inline-flex;align-items:center;justify-content:flex-end;-webkit-appearance:none;appearance:none;background:none;border:0;cursor:pointer;padding:6px 0 4px;min-height:44px;min-width:44px;margin:-6px 0}
  .c-burger__bars{position:relative;display:block;width:26px;height:11px}
  .c-burger__bars::before,.c-burger__bars::after{content:"";position:absolute;left:0;width:26px;height:1px;background:var(--burgundy)}
  .c-burger__bars::before{top:0}.c-burger__bars::after{top:10px}
  .c-mnav{display:block;padding-top:12px;padding-bottom:2px}
  .c-mnav__row{display:flex;align-items:baseline;flex-wrap:nowrap}
  .c-mnav__dot{font-family:var(--mono);font-size:10.5px;line-height:1;color:var(--gold);margin:0 6px}
  .c-mnav__dot--lead{margin:0 12px} /* separates Company from the rest of the row */
  .c-mnav__link,.c-mnav__toggle{font-family:var(--mono);font-size:10.5px;line-height:1;letter-spacing:.03em;word-spacing:-.22em;text-transform:uppercase;color:var(--burgundy);text-decoration:none;white-space:nowrap}
  .c-mnav__link{padding-top:17px;padding-bottom:17px} /* inline element: 44px hit area, no layout shift */
  .c-mnav__toggle{-webkit-appearance:none;appearance:none;background:none;border:0;cursor:pointer;padding:17px 0;margin:-17px 0;display:inline-flex;align-items:center;gap:5px}
  .c-mnav__chevron{width:8px;height:5px}
  .c-mnav.is-open .c-mnav__chevron{transform:rotate(180deg)}
  .c-mnav__panel{display:grid;grid-template-rows:0fr}
  .c-mnav.is-open .c-mnav__panel{grid-template-rows:1fr}
  .c-mnav__list{overflow:hidden;min-height:0}
  .c-mnav__sublink{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-family:var(--mono);font-size:9.5px;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:var(--burgundy);text-decoration:none;padding:18px 0 17px;border-bottom:1px solid var(--rule)}
  .c-mnav__sublink:first-child{margin-top:12px;border-top:1px solid var(--rule)}
  .c-mnav__path{font-size:9px;letter-spacing:.1em;color:var(--bronze-text);text-transform:none}
}
/* c-menu: mobile full-screen overlay.
   Base = fade only (reduced-motion tier); the -8px slide lives in MOTION layer.
   The overlay reuses the c-masthead construction (--inverted): logo, gold rule
   and EN keep their exact positions — only the colours invert (B4) */
.c-menu{position:fixed;inset:0;z-index:80;background:var(--burgundy);color:var(--ivory);opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s .5s;display:flex;flex-direction:column}
.c-menu.is-open{opacity:1;visibility:visible;transition:opacity .5s var(--ease)}
.c-masthead--inverted{position:static;background:transparent;flex:none}
.c-masthead--inverted .c-lang{color:var(--gold-light)}
.c-menu__inner{max-width:660px;margin:0 auto;padding:0 20px 40px;height:auto;flex:1;min-height:0;width:100%;display:flex;flex-direction:column}
.c-menu__close{-webkit-appearance:none;appearance:none;background:none;border:0;cursor:pointer;min-height:44px;margin:-6px 0;padding:0 2px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);display:inline-flex;align-items:center;gap:8px}
.c-menu__x{color:var(--gold-light);font-size:15px}
.c-menu__nav{display:flex;flex-direction:column;flex:1;justify-content:center;padding:12px 0}
.c-menu__link{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-family:var(--serif);font-weight:400;font-size:clamp(1.15rem,4.8vw,1.55rem);line-height:1.12;color:var(--ivory);text-decoration:none;padding-inline:0;padding-block:clamp(0.7rem,2.2dvh,1.45rem);border-bottom:1px solid rgba(189,167,127,.28)}
.c-menu__link>span:first-child{min-width:0}
.c-menu__path{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.16em;color:var(--gold-light);opacity:.8;align-self:center;flex:none;white-space:nowrap;margin-left:auto}
.c-menu__foot{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);opacity:.7;padding-top:14px}
/* c-hero */
.c-hero{padding-top:54px}
.c-hero__title{font-family:var(--serif);font-weight:600;color:var(--burgundy);font-size:var(--step-5);line-height:1.07;letter-spacing:-.005em;margin:0 0 26px;max-width:11em}
.c-hero__line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.c-hero__lede{font-size:var(--step-1);line-height:1.72;max-width:32em;margin:0}
/* c-button */
.c-button{-webkit-appearance:none;appearance:none;cursor:pointer;display:inline-flex;align-items:center;min-height:50px;margin-top:30px;padding:0 28px;background:var(--burgundy);color:var(--ivory);font-family:var(--sans);font-weight:500;font-size:15px;letter-spacing:.02em;text-decoration:none;border:1px solid var(--burgundy);transition:background-color .35s ease}
.c-button:hover{background:var(--accent)}
/* c-practice: services index */
.c-practice{margin-top:82px}
.c-practice__entry{padding:26px 0}
.c-practice__entry+.c-practice__entry{border-top:1px solid var(--rule)}
.c-practice__entry:first-of-type{padding-top:0}
.c-practice__title{font-family:var(--serif);font-weight:600;font-size:var(--step-2);line-height:1.25;margin:0 0 10px}
.c-practice__link{color:var(--burgundy);text-decoration:none;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 8px) no-repeat 0 100%/0 1px;padding-bottom:3px;transition:background-size .4s ease}
.c-practice__link:hover{background-size:100% 1px}
.c-practice__text{margin:0;max-width:34em}
/* c-passage: editorial section */
.c-passage{margin-top:84px}
.c-passage__title{font-family:var(--serif);font-weight:600;color:var(--burgundy);font-size:var(--step-3);line-height:1.2;margin:0 0 22px}
.c-passage__text{max-width:34em;margin:0 0 20px}
.c-passage__text:last-of-type{margin-bottom:0}
.c-passage__link{display:inline-block;margin-top:16px;color:var(--burgundy);font-weight:500;text-decoration:none;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 8px) no-repeat 0 100%/0 1px;padding:12px 0 3px;transition:background-size .4s ease}
.c-passage__link:hover{background-size:100% 1px}
/* c-statement: burgundy statement block (variant B execution) */
.c-statement{background:var(--burgundy);color:var(--ivory);margin-top:84px;padding-top:58px;padding-bottom:62px}
.c-statement__display{font-family:var(--serif);font-weight:600;color:var(--ivory);font-size:var(--step-4);line-height:1.18;margin:0 0 16px;max-width:15em}
.c-statement__text{color:var(--ivory);opacity:.92;max-width:36em;margin:0}
/* c-backmatter + c-contents: reference zone (variant C execution) */
.c-backmatter{margin-top:88px;background:var(--ivory-2)}
.c-contents{padding-top:52px;padding-bottom:12px}
.c-contents__label{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze-text);margin:0 0 6px}
.c-contents__list{list-style:none;margin:0;padding:0}
.c-contents__link{display:flex;justify-content:space-between;align-items:baseline;gap:14px;min-height:48px;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.c-contents__list li:first-child .c-contents__link{border-top:1px solid var(--rule)}
.c-contents__title{font-size:15.5px;font-weight:500;color:var(--ink)}
.c-contents__link:hover .c-contents__title{color:var(--accent)}
.c-contents__path{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--bronze-text)}
/* c-footer: burgundy colophon, on the document axis. TRUST/REGISTRY zone — stands still */
.c-footer{background:var(--burgundy);color:var(--ivory);padding-top:52px;padding-bottom:56px}
.c-footer__logo{width:104px;height:auto;display:block;margin-bottom:28px}
.c-footer__copyright{font-family:var(--mono);font-size:10px;line-height:1.6;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin:0 0 10px}
.c-footer__descriptor{font-size:11.5px;color:var(--gold-light);line-height:1.7;max-width:44em;margin:0}
.c-footer__links{display:flex;flex-wrap:wrap;gap:2px 4px;align-items:center;font-size:11.5px;margin:10px 0 18px}
.c-footer__link{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:var(--ivory);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--gold-light);transition:color .3s ease}
.c-footer__link:hover{color:var(--gold-light)}
.c-footer__link:first-child{padding-left:0}
.c-footer__dot{color:var(--gold-light);opacity:.7}
.c-footer__disclaimer{border-top:1px solid rgba(189,167,127,.3);padding-top:14px;font-size:11.5px;color:var(--gold-light);line-height:1.7;max-width:44em;margin:0}
/* c-kicker: mono line above/below a heading — sequence numbers, revision dates */
.c-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze-text);margin:0 0 10px}
.c-kicker--after{margin:18px 0 0}
/* c-passage--head: static page header for REGISTRY pages (no motion binds here) */
.c-passage--head{margin-top:0;padding-top:54px}
/* c-detail: key-value registry list (legal) */
.c-detail{margin:24px 0 0;max-width:38em}
.c-detail__row{display:grid;grid-template-columns:1fr;gap:2px 24px;padding:12px 0;border-bottom:1px solid var(--rule)}
.c-detail__row:first-child{border-top:1px solid var(--rule)}
@media (min-width:600px){ .c-detail__row{grid-template-columns:230px 1fr} }
.c-detail__key{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-text);margin:0;padding-top:3px}
.c-detail__val{margin:0}
/* c-passage__list: editorial list */
.c-passage__list{margin:0 0 20px;padding-left:1.15em;max-width:34em}
.c-passage__list li{margin:0 0 12px}
.c-passage__list li::marker{color:var(--bronze)}
/* c-contact-address: address element without UA italics */
.c-contact-address{font-style:normal}
/* c-form: contact form, document styling */
.c-form{margin-top:26px;max-width:34em}
.c-form__field{margin-bottom:18px}
.c-form__label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-text);margin-bottom:6px}
.c-form__input,.c-form__textarea{display:block;width:100%;background:transparent;border:1px solid var(--rule);border-radius:0;padding:12px 14px;font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--ink);min-height:48px}
.c-form__textarea{min-height:140px;resize:vertical}
.c-form__input:focus-visible,.c-form__textarea:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
.c-form__note{font-size:13.5px;color:var(--muted);margin-top:18px}
/* c-error: 404 page */
.c-error{padding-top:64px;padding-bottom:96px}
.c-error__code{font-family:var(--mono);font-size:11px;letter-spacing:.24em;color:var(--bronze-text);margin:0 0 18px;text-transform:uppercase}
.c-error__title{font-family:var(--serif);font-weight:600;color:var(--burgundy);font-size:var(--step-5);line-height:1.1;margin:0 0 22px;max-width:12em}
.c-error__text{max-width:32em;margin:0 0 28px}
.c-error__link{display:inline-block;color:var(--burgundy);font-weight:500;text-decoration:none;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 8px) no-repeat 0 100%/100% 1px;padding:2px 0 3px}
.c-error__link:hover{color:var(--accent)}

/* 5. UTILITIES ----------------------------------------------- */
.u-hidden{display:none!important}
.u-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 6. MOTION -------------------------------------------------- */
/* Two-tier policy (SPEC §7): default = full choreography, reduce = fade only.
   GSAP + ScrollTrigger (site.js) own all timing; CSS holds only pre-animation
   states so there is no flash before the first tween.
   html.motion-off — set by site.js when GSAP is unavailable or as a safety
   fallback: states switch off and content is fully visible (progressive
   degradation; no-JS pages never match html.js at all).
   Interaction transforms (overlay slide, chevron, accordion) stay CSS-driven
   and live only in the no-preference tier. */
@media (prefers-reduced-motion: no-preference){
  .c-masthead{transition:transform .35s var(--ease)} /* headroom slide, SPEC §7 tier 1 only */
  .c-menu{transform:translateY(-8px);transition:opacity .5s var(--ease),transform .5s var(--ease),visibility 0s .5s}
  .c-menu.is-open{transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .c-mnav__chevron{transition:transform .35s var(--ease)}
  .c-mnav__panel{transition:grid-template-rows .4s var(--ease)}
  .c-nav__chevron{transition:transform .35s var(--ease)}
  .c-navco{transition:grid-template-rows .4s var(--ease)}
  html.js .c-menu__link{opacity:0;transform:translateY(12px)}
  html.js .c-menu.is-open .c-menu__link{opacity:1;transform:none;transition:opacity .5s var(--ease) var(--d,0s),transform .5s var(--ease) var(--d,0s)}
  /* pre-animation states (GSAP animates to the resting values) */
  html.js:not(.motion-off) .c-masthead__logo,
  html.js:not(.motion-off) .c-masthead__aside,
  html.js:not(.motion-off) .c-mnav{opacity:0}
  html.js:not(.motion-off) .c-masthead .o-rule{transform:scaleX(0)}
  html.js:not(.motion-off) .c-hero .o-rail__label{opacity:0;transform:translateX(-12px)}
  html.js .c-hero__line span{display:block}
  html.js:not(.motion-off) .c-hero__line span{transform:translateY(112%)}
  html.js:not(.motion-off) .c-hero__lede{opacity:0;transform:translateY(12px)}
  html.js:not(.motion-off) .c-hero .c-button{opacity:0;transform:translateY(10px)}
  html.js:not(.motion-off) .m-rise{opacity:0;transform:translateY(14px)}
  html.js:not(.motion-off) .m-reveal{opacity:0;transform:translateY(20px)}
  html.js:not(.motion-off) [data-io] .o-rail__label{opacity:0;transform:translateX(-12px)}
  html.js:not(.motion-off) .c-backmatter .o-rule{transform:scaleX(0)}
}
@media (prefers-reduced-motion: reduce){
  /* fade-only tier: same narrative, no transform anywhere */
  html.js:not(.motion-off) .m-reveal,
  html.js:not(.motion-off) .m-rise,
  html.js:not(.motion-off) .c-hero__lede,
  html.js:not(.motion-off) .c-hero .c-button,
  html.js:not(.motion-off) .c-hero .o-rail__label,
  html.js:not(.motion-off) .c-hero--display .c-hero__title{opacity:0}
}

/* 7. PRINT --------------------------------------------------- */
@media print{
  *,*::before,*::after{opacity:1!important;transform:none!important;transition:none!important}
  body{background:#fff;color:#000}
  .c-skip,.c-burger,.c-mnav,.c-menu,.c-nav,.c-masthead__langbar,.c-button{display:none!important}
  .c-masthead{position:static}
  .c-statement,.c-footer{background:#fff;color:#000;border-top:1px solid #000;border-bottom:1px solid #000}
  .c-statement__display,.c-statement__text,.c-footer__copyright,.c-footer__descriptor,.c-footer__disclaimer{color:#000;opacity:1}
  .c-footer__link{color:#000}
  .c-backmatter{background:#fff}
  .c-contents{display:none}
  a{color:#000}
}
