/* ============================================================================
   BIBIAM — COMPONENTS  ·  v1.0
   Reset + utilities + every reusable component. Built entirely on tokens.css.
   Link order in every page:
     <link rel="stylesheet" href="tokens.css">
     <link rel="stylesheet" href="components.css">
   ============================================================================ */

/* ---------- RESET / BASE --------------------------------------------------- */
*{box-sizing:border-box}
html,body{scroll-behavior:smooth;background-color:#00121A!important}
body{
  margin:0;background:var(--ink);color:var(--on-ink);
  font-family:var(--f-ui);font-size:var(--fs-body);line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;font-weight:400;letter-spacing:-.01em}
:focus-visible{outline:2px solid var(--brass-2);outline-offset:3px}

/* ---------- LAYOUT UTILITIES ---------------------------------------------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.section{padding-block:var(--space-section);position:relative}
.rule{height:1px;background:var(--line-d);border:0;margin:0}

/* tone surfaces (drop on a <section>) */
.paper{background:var(--paper);color:var(--on-paper)}
.paper-2{background:var(--paper-2);color:var(--on-paper)}
.paper .eyebrow,.paper-2 .eyebrow{color:var(--brass)}
.paper .muted,.paper-2 .muted{color:var(--on-paper-mute)}
.paper .rule,.paper-2 .rule{background:var(--line-l)}

/* ---------- TYPOGRAPHY UTILITIES ------------------------------------------ */
.lede{font-family:var(--f-disp);font-weight:700;line-height:var(--lh-display);letter-spacing:-.02em}
.h-l{font-size:var(--fs-h-l)}
.h-m{font-size:var(--fs-h-m)}
.muted{color:var(--on-ink-mute)}

/* eyebrow — mono label that opens most sections */
.eyebrow{
  font-family:var(--f-mono);font-size:var(--fs-eyebrow);font-weight:500;
  letter-spacing:var(--ls-mono);text-transform:uppercase;
  display:flex;align-items:center;gap:14px;color:var(--brass-2);
}
.eyebrow::before{content:"";width:30px;height:1px;background:currentColor;opacity:.6;flex:none}
.eyebrow .ix{color:inherit}

/* ---------- BUTTONS -------------------------------------------------------- */
.btns{display:flex;flex-wrap:wrap;gap:14px}
.btn{
  font-family:var(--f-ui);font-weight:600;font-size:var(--fs-small);letter-spacing:.02em;
  padding:15px 26px;border:1px solid var(--line-d-2);color:var(--on-ink);border-radius:var(--radius);
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;background:none;
  transition:background var(--t),color var(--t),border-color var(--t),transform var(--t);
}
.btn .arw{transition:transform var(--t)}
.btn:hover{transform:translateY(-1px)}
.btn:hover .arw{transform:translateX(4px)}
.btn-solid{background:var(--cta);border-color:var(--cta);color:var(--on-cta)}
.btn-solid:hover{background:var(--cta-hover);border-color:var(--cta-hover);color:var(--on-cta)}
.btn-ghost:hover{border-color:var(--on-ink)}
.paper .btn,.paper-2 .btn{color:var(--on-paper);border-color:var(--line-l-2)}
.paper .btn-ghost:hover,.paper-2 .btn-ghost:hover{border-color:var(--on-paper)}
.paper .btn-solid,.paper-2 .btn-solid{color:var(--on-cta)}

/* ---------- NAV ------------------------------------------------------------ */
.nav{position:fixed;inset:0 0 auto 0;z-index:var(--z-nav);border-bottom:1px solid transparent;
  transition:background var(--t),border-color var(--t),backdrop-filter var(--t)}
.nav.solid{background:rgba(0,18,26,.86);backdrop-filter:blur(14px);border-bottom-color:var(--line-d)}
.nav-in{max-width:var(--maxw);margin:0 auto;padding:18px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:baseline;gap:11px;letter-spacing:.02em}
.brand .mark{font-family:var(--f-disp);font-weight:700;font-size:24px;letter-spacing:.04em}
.brand .dot{width:6px;height:6px;background:var(--brass);display:inline-block;transform:translateY(-2px)}
.brand small{font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;color:var(--on-ink-mute);text-transform:uppercase}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:13.5px;font-weight:500;letter-spacing:.02em;color:var(--on-ink-mute);transition:color var(--t);position:relative;padding-block:6px}
.nav-links a:hover,.nav-links a.active{color:var(--on-ink)}
.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--brass-2);transition:width var(--t)}
.nav-links a:not(.nav-cta):hover::after,.nav-links a:not(.nav-cta).active::after{width:100%}
.nav-cta::after,.nav .nav-cta::after,.nav .nav-links a.nav-cta::after{display:none!important;content:none!important;width:0!important;height:0!important}
.nav-cta{font-size:13.5px;font-weight:600;padding:10px 18px;border:1px solid var(--line-d-2);transition:border-color var(--t),background var(--t)}
.nav-cta:hover{border-color:var(--brass-2);background:rgba(0,163,163,.12)}
.burger{display:none;background:none;border:0;color:var(--on-ink);cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0;transition:transform var(--t),opacity var(--t)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--ink);transform:translateY(-100%);
  transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;justify-content:flex-start;
  padding:calc(env(safe-area-inset-top, 0px) + 140px) var(--gut) calc(env(safe-area-inset-bottom, 0px) + 36px);
  gap:2px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mobile.open{transform:none}
.mobile a{font-family:var(--f-disp);font-size:clamp(20px, 5.5vw, 24px);font-weight:700;padding:10px 0;border-bottom:1px solid var(--line-d);color:var(--on-ink);transition:color var(--t),padding-left var(--t);flex-shrink:0}
.mobile a:hover,.mobile a:active{color:var(--brass-2);padding-left:6px}

/* ---------- SCROLL REVEAL -------------------------------------------------- */
.up,.reveal{opacity:0;transform:translateY(28px);transition:opacity var(--t-in),transform var(--t-in)}
.up.in,.reveal.in{opacity:1;transform:none}
/* stagger helpers for hero load */
.d1{transition-delay:.05s}.d2{transition-delay:.16s}.d3{transition-delay:.27s}.d4{transition-delay:.38s}.d5{transition-delay:.5s}

/* ---------- PAGE HERO (subpage template) ---------------------------------- */
.page-hero{position:relative;padding-top:clamp(140px,18vh,190px);padding-bottom:clamp(40px,5vw,64px);overflow:hidden;border-bottom:1px solid var(--line-d)}
.page-hero.no-border{border-bottom:0}
.page-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.45;
  background:linear-gradient(var(--line-d) 1px,transparent 1px) 0 0/100% 84px,linear-gradient(90deg,var(--line-d) 1px,transparent 1px) 0 0/84px 100%;
  -webkit-mask-image:radial-gradient(120% 100% at 88% 8%,#000,transparent 70%);mask-image:radial-gradient(120% 100% at 88% 8%,#000,transparent 70%)}
.page-hero .wrap{position:relative;z-index:2}
.page-hero .watermark{position:absolute;right:var(--gut);top:clamp(110px,14vh,150px);z-index:1;
  font-family:var(--f-disp);font-weight:700;font-size:clamp(120px,22vw,280px);line-height:1;color:var(--brass);opacity:.07;pointer-events:none;user-select:none}
.page-hero h1{font-family:var(--f-disp);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-size:var(--fs-page);max-width:16ch;margin-top:8px}
.page-hero .intro{max-width:58ch;font-size:var(--fs-body-lg);line-height:1.6;color:var(--on-ink-mute);margin-top:28px}
.page-hero .intro b{color:var(--on-ink);font-weight:500}

/* breadcrumb */
.crumb{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.1em;color:var(--on-ink-mute);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.crumb a:hover{color:var(--on-ink)}
.crumb .sep{color:var(--brass-2)}
.crumb .cur{color:var(--on-ink)}

/* ---------- HOMEPAGE HERO -------------------------------------------------- */
.hero{position:relative;padding-top:clamp(150px,20vh,210px);padding-bottom:clamp(72px,8vw,120px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background:linear-gradient(var(--line-d) 1px,transparent 1px) 0 0/100% 84px,linear-gradient(90deg,var(--line-d) 1px,transparent 1px) 0 0/84px 100%;
  -webkit-mask-image:radial-gradient(120% 90% at 78% 12%,#000,transparent 72%);mask-image:radial-gradient(120% 90% at 78% 12%,#000,transparent 72%)}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-family:var(--f-disp);font-weight:700;line-height:.98;letter-spacing:-.03em;font-size:var(--fs-display);max-width:14ch}
.hero h1 em{font-style:normal;color:var(--brass-2)}
.hero-sub{max-width:62ch;font-size:var(--fs-body-lg);line-height:1.55;color:var(--on-ink-mute);margin:34px 0 40px}
.hero-sub b{color:var(--on-ink);font-weight:500}

/* ---------- EDITORIAL (sticky label + body) ------------------------------- */
.editorial{display:grid;grid-template-columns:.32fr .68fr;gap:clamp(32px,6vw,90px);align-items:start}
.ed-label{position:sticky;top:120px}
.ed-body p{font-size:var(--fs-body-lg);line-height:1.62;margin:0 0 24px;max-width:60ch}
.ed-body p:first-child{font-family:var(--f-disp);font-weight:700;font-size:var(--fs-lead);line-height:1.35;color:var(--on-paper)}
.ed-body p:first-child::first-letter{color:var(--brass)}
.ed-body p b{font-weight:600}

/* ---------- FACTS STRIP ---------------------------------------------------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-d);border-block:1px solid var(--line-d)}
.fact{background:var(--ink);padding:clamp(30px,4vw,52px) clamp(20px,3vw,40px)}
.fact .n{font-family:var(--f-disp);font-weight:700;font-size:clamp(48px,7vw,86px);line-height:1;color:var(--on-ink)}
.fact .n em{font-style:normal;color:var(--brass-2)}
.fact .l{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-mute);margin-top:16px}

/* ---------- CARD GRID (generic 3-up, hairline-separated) ------------------ */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.grid-3.on-ink{background:var(--line-d);border-color:var(--line-d)}

/* article / listing card */
.card{background:var(--paper-card);padding:clamp(26px,2.6vw,34px);min-height:300px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.card:hover{background:var(--paper-2)}
.card .cat{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.card h3{font-family:var(--f-disp);font-weight:600;font-size:clamp(21px,2.1vw,26px);line-height:1.15;margin:16px 0 12px;transition:color var(--t)}
.card:hover h3{color:var(--brass)}
.card .dek{font-size:var(--fs-small);color:var(--on-paper-mute);line-height:1.55;margin:0}
.card .meta{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.05em;color:var(--on-paper-mute);margin-top:24px;padding-top:16px;border-top:1px solid var(--line-l);display:flex;gap:16px}
.card[hidden]{display:none}

/* principle / numbered card */
.prin{background:var(--paper-card);padding:clamp(26px,2.6vw,38px);transition:background var(--t)}
.prin:hover{background:var(--paper-2)}
.prin .ix{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.16em;color:var(--brass)}
.prin h3{font-family:var(--f-disp);font-size:clamp(21px,2.1vw,27px);font-weight:600;margin:16px 0 10px}
.prin p{font-size:var(--fs-small);color:var(--on-paper-mute);margin:0;line-height:1.55}

/* navigation / "explore" card (with go link) */
.navcard{background:var(--paper-2);padding:clamp(26px,2.6vw,40px);min-height:200px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.navcard:hover{background:var(--paper-card)}
.navcard .ix{font-family:var(--f-mono);font-size:var(--fs-eyebrow);color:var(--brass)}
.navcard h4{font-family:var(--f-disp);font-size:26px;font-weight:600;margin:18px 0 10px}
.navcard p{font-size:var(--fs-small);color:var(--on-paper-mute);margin:0 0 22px}
.navcard .go{font-weight:600;font-size:14px;display:inline-flex;gap:9px;align-items:center}
.navcard .go .arw{color:var(--brass);transition:transform var(--t)}
.navcard:hover .go .arw{transform:translateX(5px)}

/* dark tile (impact / structure) */
.tile{background:var(--ink-800);padding:30px;min-height:148px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.tile:hover{background:var(--ink-700)}
.tile .n{font-family:var(--f-mono);font-size:var(--fs-eyebrow);color:var(--brass-2);letter-spacing:.1em}
.tile h4{font-family:var(--f-disp);font-size:23px;font-weight:600}

/* ---------- CHIPS / STICKY FILTER BAR ------------------------------------- */
.toolbar{position:sticky;top:var(--nav-h);z-index:var(--z-subnav);background:var(--paper);border-block:1px solid var(--line-l)}
.toolbar-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;justify-content:space-between;gap:20px}
.filters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:14px 0}
.filters::-webkit-scrollbar{display:none}
.chip{flex:none;font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.06em;text-transform:uppercase;
  color:var(--on-paper-mute);background:none;border:1px solid transparent;border-radius:var(--radius);padding:9px 15px;cursor:pointer;white-space:nowrap;
  transition:color var(--t),background var(--t),border-color var(--t)}
.chip:hover{color:var(--on-paper)}
.chip.active{color:#FFFFFF;background:var(--brass);border-color:var(--brass)}
.count{font-family:var(--f-mono);font-size:var(--fs-eyebrow);color:var(--on-paper-mute);white-space:nowrap;flex:none}

/* ---------- FEATURED (editorial hero card, typographic cover) ------------- */
.featured{display:grid;grid-template-columns:1.05fr .95fr;background:var(--paper-card);border:1px solid var(--line-l)}
.feat-body{padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.feat-tag{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);display:flex;gap:12px;align-items:center}
.feat-tag .star{color:var(--brass-2)}
.feat-body h2{font-family:var(--f-disp);font-weight:600;line-height:1.08;letter-spacing:-.02em;font-size:clamp(28px,3.6vw,48px);margin:20px 0 16px}
.feat-body .dek{font-size:16.5px;color:var(--on-paper-mute);line-height:1.6;max-width:48ch}
.feat-meta{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.06em;color:var(--on-paper-mute);margin-top:28px;display:flex;gap:18px;flex-wrap:wrap}
.feat-read{margin-top:28px;font-weight:600;font-size:14px;display:inline-flex;gap:9px;align-items:center;width:fit-content}
.feat-read .arw{color:var(--brass);transition:transform var(--t)}
.featured:hover .feat-read .arw{transform:translateX(5px)}
.feat-cover{position:relative;background:var(--ink);border-left:1px solid var(--line-l);min-height:300px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.feat-cover::before{content:"";position:absolute;inset:0;opacity:.5;
  background:linear-gradient(var(--line-d) 1px,transparent 1px) 0 0/100% 46px,linear-gradient(90deg,var(--line-d) 1px,transparent 1px) 0 0/46px 100%;
  -webkit-mask-image:radial-gradient(80% 80% at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(80% 80% at 50% 40%,#000,transparent 75%)}
.feat-cover .glyph{position:relative;font-family:var(--f-disp);font-weight:700;font-size:clamp(90px,13vw,180px);color:var(--brass-2);line-height:1}
.feat-cover .issue{position:absolute;bottom:22px;left:24px;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;color:var(--on-ink-mute)}

/* ---------- STRUCTURE MAP -------------------------------------------------- */
.struct-top{display:flex;justify-content:center}
.struct-group{font-family:var(--f-disp);font-size:clamp(22px,2.4vw,30px);padding:16px 34px;border:1px solid var(--brass);color:var(--on-ink)}
.struct-spine{height:34px;width:1px;background:var(--line-d-2);margin:0 auto}
.struct-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.sc{background:var(--ink-800);padding:clamp(24px,2.6vw,34px);transition:background var(--t)}
.sc:hover{background:var(--ink-700)}
.sc .ix{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.14em;color:var(--brass-2)}
.sc h4{font-family:var(--f-disp);font-size:22px;font-weight:600;margin:12px 0 18px}
.sc ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-d)}
.sc li{padding:11px 0;font-size:14px;color:var(--on-ink-mute);border-bottom:1px solid var(--line-d)}
.sc li:last-child{border-bottom:0}

/* ---------- OPERATING-MODEL SPINE (animated process) ---------------------- */
.spine{position:relative}
.spine-line{position:absolute;left:0;right:0;top:18px;height:1px;background:var(--line-d)}
.spine-line::after{content:"";position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.5,0,.1,1)}
.spine.in .spine-line::after{transform:scaleX(1)}
.steps{display:grid;grid-template-columns:repeat(6,1fr);position:relative}
.step{padding-right:20px;opacity:0;transform:translateY(16px);transition:opacity var(--t),transform var(--t)}
.spine.in .step{opacity:1;transform:none}
.step .dot{width:11px;height:11px;border-radius:50%;background:var(--ink);border:1px solid var(--brass);position:relative;z-index:2;margin-bottom:26px;transition:background var(--t)}
.spine.in .step .dot{background:var(--brass)}
.step .k{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.12em;font-weight:600;color:var(--brass)}
.step h4{font-family:var(--f-disp);font-size:clamp(20px,2.1vw,26px);font-weight:600;margin:10px 0 8px}
.step p{font-size:13.5px;color:var(--on-ink-mute);line-height:1.5;margin:0;max-width:18ch}
.spine.in .step:nth-child(1){transition-delay:.10s}
.spine.in .step:nth-child(2){transition-delay:.25s}
.spine.in .step:nth-child(3){transition-delay:.40s}
.spine.in .step:nth-child(4){transition-delay:.55s}
.spine.in .step:nth-child(5){transition-delay:.70s}
.spine.in .step:nth-child(6){transition-delay:.85s}

/* ---------- QUOTE / MANIFESTO BAND ---------------------------------------- */
.quote{background:var(--ink-800);border-block:1px solid var(--line-d)}
.quote q{quotes:none;font-family:var(--f-disp);font-weight:700;line-height:1.18;letter-spacing:-.02em;font-size:var(--fs-quote);display:block;max-width:20ch;margin-top:34px}
.quote q b{font-weight:500;color:var(--brass-2)}
.quote .sig{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-mute);margin-top:30px}

/* ---------- TAG FIELD (industries etc.) ----------------------------------- */
.tags{display:flex;flex-wrap:wrap;gap:12px}
.tag{font-size:15px;font-weight:500;padding:14px 22px;border:1px solid var(--line-l);border-radius:var(--radius);
  transition:border-color var(--t),background var(--t),color var(--t)}
.tag:hover{border-color:var(--brass);background:var(--brass);color:#FFFFFF}
.tag .c{font-family:var(--f-mono);font-size:11px;color:var(--brass);margin-right:9px}
.tag:hover .c{color:#FFFFFF}

/* ---------- FORM / SUBSCRIBE ----------------------------------------------- */
.field{display:flex;gap:0;border:1px solid var(--line-d-2);background:var(--ink)}
.field input{flex:1;background:none;border:0;color:var(--on-ink);font-family:var(--f-ui);font-size:15px;padding:18px 20px}
.field input::placeholder{color:var(--on-ink-mute)}
.field input:focus{outline:none}
.field button{background:var(--brass);color:#FFFFFF;border:0;font-family:var(--f-ui);font-weight:600;font-size:14px;padding:0 26px;cursor:pointer;transition:background var(--t)}
.field button:hover{background:var(--brass-2)}
.field-note{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--on-ink-mute);margin-top:14px}

/* ---------- FOOTER (natural flow on deep ink band) ----------------------- */
.foot{background:var(--ink);border-top:1px solid var(--line-d);padding-block:clamp(64px,7vw,96px) 40px}
.foot-top{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:40px}
.foot-brand .mark{font-family:var(--f-disp);font-size:34px;font-weight:700;letter-spacing:.04em}
.foot-brand p{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-mute);margin:14px 0 0;max-width:24ch;line-height:2}
.fcol h5{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-2);margin:0 0 18px;font-weight:500}
.fcol a{display:block;font-size:14px;color:var(--on-ink-mute);padding:7px 0;transition:color var(--t)}
.fcol a:hover{color:var(--on-ink)}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:clamp(56px,6vw,80px);padding-top:26px;border-top:1px solid var(--line-d);font-size:12.5px;color:var(--on-ink-mute)}
.foot-bot .l{display:flex;gap:26px;flex-wrap:wrap}

/* ---------- RESPONSIVE (shared breakpoints) ------------------------------- */
@media(max-width:1000px){
  .nav-links{display:none}.burger{display:block}
  .editorial{grid-template-columns:1fr;gap:28px}
  .ed-label{position:static}
  .facts{grid-template-columns:1fr 1fr}
  .grid-3,.struct-cols{grid-template-columns:1fr}
  .featured{grid-template-columns:1fr}
  .feat-cover{border-left:0;border-top:1px solid var(--line-l);min-height:200px;order:-1}
  .steps{grid-template-columns:1fr 1fr;gap:34px 24px}
  .spine-line{display:none}.step{padding-right:0}
  .foot-top{grid-template-columns:1fr 1fr;gap:36px}
}
@media(max-width:560px){
  .facts{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .up,.reveal,.step{opacity:1;transform:none}
  .spine-line::after{transform:scaleX(1)}
}

/* ============================================================================
   PAGE COMPOSITES
   Full-section blocks used by Home / About / Insights. These compose the
   atoms above into the larger sections each page needs. Prefer the generic
   atoms (.grid-3, .card, .prin, .navcard, .tags, .field) for NEW pages; the
   blocks below are kept so existing pages render identically.
   ============================================================================ */

.h-xl{font-size:clamp(40px,6.6vw,86px)}

/* --- Home · hero acronym + tag row --- */
.hero-tag{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;margin-bottom:36px}
.hero-tag .eyebrow{gap:0}
.hero-tag .eyebrow::before{display:none}
.acro{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-d);margin-top:clamp(56px,7vw,90px)}
.acro div{padding:26px 26px 26px 0;border-right:1px solid var(--line-d)}
.acro div:last-child{border-right:0}
.acro .k{font-family:var(--f-disp);font-size:30px;color:var(--brass-2);letter-spacing:.06em}
.acro .v{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-mute);margin-top:8px}

/* --- Home · who-we-are (negation → affirmation) --- */
.who-grid{display:grid;grid-template-columns:.42fr .58fr;gap:clamp(36px,6vw,90px);align-items:start;margin-top:54px}
.nots{display:flex;flex-direction:column;gap:8px}
.nots .n{font-family:var(--f-disp);font-size:clamp(22px,2.5vw,30px);font-weight:700;color:var(--on-paper-mute);display:flex;align-items:center;gap:16px}
.nots .n s{text-decoration-thickness:1px;text-decoration-color:var(--line-l-2)}
.nots .n .x{font-family:var(--f-mono);font-size:13px;color:var(--brass)}
.who-aff{font-family:var(--f-disp);font-weight:700;line-height:1.2;letter-spacing:-.015em;font-size:clamp(26px,3.4vw,42px)}
.who-aff b{font-weight:500}

/* --- Home · philosophy --- */
.phil{font-family:var(--f-disp);font-weight:700;line-height:1.16;letter-spacing:-.02em;font-size:clamp(30px,4.8vw,62px);max-width:18ch;margin-top:44px}
.phil .accent{color:var(--brass-2)}
.phil-foot{margin-top:46px;max-width:56ch;font-size:18px;color:var(--on-ink-mute)}
.phil-foot b{color:var(--on-ink);font-weight:500}

/* --- Home · pillars (discipline card with capability list) --- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l);margin-top:54px}
.pillar{background:var(--paper-2);padding:clamp(28px,3vw,42px);transition:background var(--t)}
.pillar:hover{background:var(--paper-card)}
.pillar .ix{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;color:var(--brass)}
.pillar h3{font-family:var(--f-disp);font-size:clamp(24px,2.4vw,32px);font-weight:600;margin:20px 0 6px}
.pillar .thesis{font-family:var(--f-disp);font-style:normal;font-weight:700;font-size:18px;color:var(--on-paper-mute);margin-bottom:26px}
.pillar ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-l)}
.pillar li{padding:13px 0;font-size:14.5px;border-bottom:1px solid var(--line-l);display:flex;gap:12px;align-items:baseline}
.pillar li::before{content:"";width:5px;height:5px;background:var(--brass);flex:none;transform:translateY(7px)}

/* --- Home · capabilities lattice (signature) --- */
.lattice-wrap{margin-top:48px;display:grid;grid-template-columns:.34fr .66fr;gap:clamp(30px,5vw,70px);align-items:center}
.lattice-lead .h-l{margin-bottom:22px}
.lattice-svg{width:100%;height:auto;display:block}
.node{cursor:default;transform-box:fill-box;transform-origin:center}
.node circle{fill:var(--ink-700);stroke:var(--brass);stroke-width:1.4;transition:fill .35s,r .35s}
.node.hub circle{fill:var(--brass)}
.node text{fill:var(--on-ink-mute);font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.06em;transition:fill .35s}
.node.hub text{fill:var(--on-ink);font-family:var(--f-ui);font-size:12px;font-weight:600}
.node:hover circle,.node:focus-visible circle{fill:var(--brass)}
.node:hover text,.node:focus-visible text{fill:var(--brass-2)}
.edge{stroke:var(--line-d);stroke-width:1;transition:stroke .4s,stroke-width .4s}
.lattice-grid{display:none}
.lattice.in .node{animation:pop .6s var(--ease) backwards}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}

/* --- Home · operating-model header --- */
.om-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(44px,5vw,68px)}

/* --- Home · industries tag field (alias of .tags/.tag) --- */
.ind-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:46px}
.ind{font-size:15px;font-weight:500;padding:14px 22px;border:1px solid var(--line-l);transition:border-color var(--t),background var(--t),color var(--t)}
.ind:hover{border-color:var(--brass);background:var(--brass);color:#FFFFFF}
.ind .c{font-family:var(--f-mono);font-size:11px;color:var(--brass);margin-right:9px}
.ind:hover .c{color:#FFFFFF}

/* --- Home · impact (confidential) --- */
.impact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line-d);border:1px solid var(--line-d);margin-top:48px}
.imp{background:var(--ink-800);padding:30px;min-height:148px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.imp:hover{background:var(--ink-700)}
.imp .n{font-family:var(--f-mono);font-size:12px;color:var(--brass-2);letter-spacing:.1em}
.imp h4{font-family:var(--f-disp);font-size:23px;font-weight:600}
.confid{margin-top:34px;display:flex;align-items:center;gap:14px;font-size:14.5px;color:var(--on-ink-mute)}
.confid .lock{font-family:var(--f-mono);color:var(--brass-2);font-size:12px;letter-spacing:.1em;border:1px solid var(--line-d-2);padding:6px 11px}

/* --- Home · insights editorial index --- */
.insights{margin-top:48px;border-top:1px solid var(--line-l)}
.ins-row{display:grid;grid-template-columns:60px 1fr auto;gap:24px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line-l);transition:padding var(--t),background var(--t);cursor:pointer}
.ins-row:hover{padding-left:16px;background:var(--paper-card)}
.ins-row .c{font-family:var(--f-mono);font-size:13px;color:var(--brass)}
.ins-row .t{font-family:var(--f-disp);font-size:clamp(20px,2.2vw,28px);font-weight:600}
.ins-row .tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-paper-mute);padding:0;border:0;background:none}
.ins-row .tag:hover{background:none;color:var(--on-paper-mute)}
.ins-row .arw{transition:transform var(--t);color:var(--brass)}
.ins-row:hover .arw{transform:translateX(6px)}

/* --- Home · global vision --- */
.vision{background:var(--ink-800);border-block:1px solid var(--line-d)}
.vision .big{font-family:var(--f-disp);font-weight:700;line-height:1.14;letter-spacing:-.02em;font-size:clamp(30px,4.6vw,60px);max-width:20ch;margin-top:40px}
.vision .big b{font-weight:500;color:var(--on-ink)}
.vision .big span{color:var(--brass-2)}

/* --- Home · connect (4-up audience cards) --- */
.connect-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l);margin-top:48px}
.conn{background:var(--paper-2);padding:clamp(28px,2.8vw,40px);min-height:230px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.conn:hover{background:var(--paper-card)}
.conn .c{font-family:var(--f-mono);font-size:12px;color:var(--brass)}
.conn h4{font-family:var(--f-disp);font-size:26px;font-weight:600;margin:18px 0 10px}
.conn p{font-size:14px;color:var(--on-paper-mute);margin:0 0 22px}
.conn .go{font-weight:600;font-size:14px;display:inline-flex;gap:9px;align-items:center}
.conn .go .arw{transition:transform var(--t)}
.conn:hover .go .arw{transform:translateX(5px)}

/* --- About · principles wrapper + structure wrapper + explore --- */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l);margin-top:54px}
.struct{margin-top:54px}
.explore{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l);margin-top:48px}
.exp{background:var(--paper-2);padding:clamp(26px,2.6vw,36px);min-height:170px;display:flex;flex-direction:column;justify-content:space-between;transition:background var(--t)}
.exp:hover{background:var(--paper-card)}
.exp .ix{font-family:var(--f-mono);font-size:12px;color:var(--brass)}
.exp h4{font-family:var(--f-disp);font-size:23px;font-weight:600;margin:16px 0 0}
.exp .go{font-weight:600;font-size:13.5px;display:inline-flex;gap:9px;align-items:center;margin-top:18px;color:var(--on-paper)}
.exp .go .arw{color:var(--brass);transition:transform var(--t)}
.exp:hover .go .arw{transform:translateX(5px)}

/* --- About · CTA band --- */
.cta-band{background:var(--ink)}
.cta-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:30px}
.cta-in h2{max-width:16ch}

/* --- Insights · featured section + listing grid + empty state --- */
.featured-sec{background:var(--paper);color:var(--on-paper);padding-block:clamp(48px,6vw,84px)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.empty{padding:60px 0;text-align:center;color:var(--on-paper-mute);font-family:var(--f-mono);font-size:13px;letter-spacing:.06em}

/* --- Insights · subscribe band --- */
.sub{background:var(--ink-800);border-block:1px solid var(--line-d)}
.sub-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.sub h2{font-family:var(--f-disp);font-weight:700;line-height:1.1;letter-spacing:-.02em;font-size:clamp(28px,3.6vw,46px);max-width:14ch}
.sub p{color:var(--on-ink-mute);margin-top:18px;max-width:40ch}
.sub-form{display:flex;gap:0;border:1px solid var(--line-d-2);background:var(--ink)}
.sub-form input{flex:1;background:none;border:0;color:var(--on-ink);font-family:var(--f-ui);font-size:15px;padding:18px 20px}
.sub-form input::placeholder{color:var(--on-ink-mute)}
.sub-form input:focus{outline:none}
.sub-form button{background:var(--brass);color:#FFFFFF;border:0;font-family:var(--f-ui);font-weight:600;font-size:14px;padding:0 26px;cursor:pointer;transition:background var(--t)}
.sub-form button:hover{background:var(--brass-2)}
.sub-note{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--on-ink-mute);margin-top:14px}
.sub-done{color:var(--brass-2);font-size:15px;margin-top:14px;display:none}
.sub-done.show{display:block}

/* --- PAGE-COMPOSITE RESPONSIVE --- */
@media(max-width:1000px){
  .who-grid{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr}
  .lattice-wrap{grid-template-columns:1fr}
  .lattice-svg{display:none}
  .lattice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
  .lattice-grid div{background:var(--ink-800);padding:18px;font-size:14px;font-weight:500}
  .lattice-grid div .c{font-family:var(--f-mono);font-size:11px;color:var(--brass-2);display:block;margin-bottom:5px}
  .connect-grid{grid-template-columns:1fr 1fr}
  .principles{grid-template-columns:1fr}
  .explore{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .sub-in{grid-template-columns:1fr}
}
@media(max-width:560px){
  .acro{grid-template-columns:1fr}
  .acro div{border-right:0;border-bottom:1px solid var(--line-d);padding-right:0}
  .connect-grid{grid-template-columns:1fr}
  .ins-row{grid-template-columns:40px 1fr;gap:14px}
  .ins-row .tag{display:none}
  .cta-in{flex-direction:column;align-items:flex-start}
  .cards{grid-template-columns:1fr}
}

/* ============================================================================
   ADDED FOR FULL SITE (leadership team · contact form · split)
   ============================================================================ */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l);margin-top:48px}
.member{background:var(--paper-card);padding:clamp(26px,2.6vw,36px);transition:background var(--t)}
.member:hover{background:var(--paper-2)}
.member .avatar{width:60px;height:60px;border:1px solid var(--brass);display:flex;align-items:center;justify-content:center;font-family:var(--f-disp);font-size:24px;color:var(--brass);margin-bottom:22px}
.member .role{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.member h4{font-family:var(--f-disp);font-size:23px;font-weight:600;margin:12px 0 10px}
.member p{font-size:14px;color:var(--on-paper-mute);margin:0;line-height:1.55}

.form{display:flex;flex-direction:column;gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.form .frow{background:var(--ink)}
.form label{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-ink-mute);padding:16px 18px 0}
.form input,.form textarea{width:100%;background:none;border:0;color:var(--on-ink);font-family:var(--f-ui);font-size:16px;padding:8px 18px 16px;resize:vertical}
.form input:focus,.form textarea:focus{outline:none}
.form input::placeholder,.form textarea::placeholder{color:var(--on-ink-mute)}
.form-actions{display:flex;align-items:center;gap:18px;margin-top:22px;flex-wrap:wrap}
.form-msg{font-family:var(--f-mono);font-size:12px;color:var(--brass-2);display:none}
.form-msg.show{display:block}
.paper .form,.paper-2 .form{background:var(--line-l);border-color:var(--line-l)}
.paper .form .frow,.paper-2 .form .frow{background:var(--paper-card)}
.paper .form label,.paper-2 .form label{color:var(--on-paper-mute)}
.paper .form input,.paper .form textarea,.paper-2 .form input,.paper-2 .form textarea{color:var(--on-paper)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}

@media(max-width:1000px){.team{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr;gap:28px}}
@media(max-width:560px){.team{grid-template-columns:1fr}}

/* ============================================================================
   SEO / UX ENHANCEMENTS — skip link, anchor offset, back-to-top, print
   ============================================================================ */
html{scroll-padding-top:calc(var(--nav-h) + 18px)}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--brass);color:#FFFFFF;font-family:var(--f-ui);font-weight:600;font-size:14px;padding:12px 18px;border-radius:var(--radius)}
.skip:focus{left:8px}
main{display:block}
.to-top{position:fixed;right:22px;bottom:22px;z-index:55;width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--ink-700);color:var(--on-ink);border:1px solid var(--line-d-2);border-radius:var(--radius);cursor:pointer;font-size:18px;line-height:1;
  opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity var(--t),transform var(--t),background var(--t),border-color var(--t)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{border-color:var(--brass-2);background:var(--ink-600)}
@media print{.nav,.mobile,.to-top,.skip,.cta-band{display:none!important}body{background:#fff;color:#000}}

/* ============================================================================
   LIGHT-FIRST ECO THEME  (overrides — wins by source order)
   Flips the system to light-dominant with a teal-green accent. Deep teal-green
   is kept only for anchor bands (footer, vision, quote, CTA, subscribe) and for
   small contrast tiles. Change the palette in tokens.css, not here.
   ============================================================================ */

/* default surface is now light */
body{background:var(--paper);color:var(--on-paper)}
.muted{color:var(--on-paper-mute)}
.eyebrow{color:var(--brass)}                 /* accent labels deep on light */

/* buttons default sit on light */
.btn{color:var(--on-paper);border-color:var(--line-l-2)}
.btn-ghost:hover{border-color:var(--on-paper)}

/* NAV over light */
.nav.solid{background:rgba(243,246,247,.86);border-bottom-color:var(--line-l)}
.brand .mark{color:var(--on-paper)}
.brand small{color:var(--on-paper-mute)}
.nav-links a{color:var(--on-paper-mute)}
.nav-links a:hover,.nav-links a.active{color:var(--on-paper)}
.nav-cta{border-color:var(--line-l-2)}
.nav-cta:hover{border-color:var(--brass);background:rgba(0,163,163,.10)}
.burger{color:var(--on-paper)}
.mobile{background:var(--ink)}               /* mobile menu stays a deep panel */
.mobile a{color:var(--on-ink);border-bottom-color:var(--line-d)}

/* HERO + PAGE-HERO now light & airy */
.hero,.page-hero{color:var(--on-paper)}
.hero::before,.page-hero::before{
  background:linear-gradient(var(--line-l) 1px,transparent 1px) 0 0/100% 84px,
            linear-gradient(90deg,var(--line-l) 1px,transparent 1px) 0 0/84px 100%}
.hero h1 em{color:var(--brass)}
.hero-sub,.page-hero .intro{color:var(--on-paper-mute)}
.hero-sub b,.page-hero .intro b{color:var(--on-paper)}
.crumb{color:var(--on-paper-mute)}
.crumb .cur{color:var(--on-paper)}
.acro{border-top-color:var(--line-l)}
.acro div{border-right-color:var(--line-l)}
.acro .k{color:var(--brass)}
.acro .v{color:var(--on-paper-mute)}
.page-hero{border-bottom-color:var(--line-l)}

/* philosophy / operating spine / lattice on light */
.phil .accent{color:var(--brass)}
.phil-foot{color:var(--on-paper-mute)}
.phil-foot b{color:var(--on-paper)}
.spine-line{background:var(--line-l)}
.step p{color:var(--on-paper-mute)}
.edge{stroke:var(--line-l)}
.node circle{fill:#fff;stroke:var(--brass)}
.node.hub circle{fill:var(--brass)}
.node text{fill:var(--on-paper-mute)}
.node.hub text{fill:var(--on-paper)}
.node:hover text,.node:focus-visible text{fill:var(--brass)}

/* impact / structure on light (tiles stay deep) */
.confid{color:var(--on-paper-mute)}
.struct-group{color:var(--on-paper)}
.struct-spine{background:var(--line-l-2)}

/* ---- DEEP ANCHOR BANDS: force light text + accent ---- */
.foot,.vision,.quote,.cta-band,.sub{color:var(--on-ink)}
.foot .eyebrow,.vision .eyebrow,.quote .eyebrow,.cta-band .eyebrow,.sub .eyebrow{color:var(--brass-2)}
.cta-band .btn{color:var(--on-ink);border-color:var(--line-d-2)}
.cta-band .btn-ghost:hover{border-color:var(--on-ink)}
.cta-band .btn-solid{color:#FFFFFF;border-color:var(--brass)}
.vision .phil-foot{color:var(--on-ink-mute)}
.vision .phil-foot b{color:var(--on-ink)}

/* deep contrast tiles keep light text */
.fact,.tile,.imp,.sc{color:var(--on-ink)}

/* ============================================================================
   AVA EDUCATION — EXTENSIONS (thành viên hệ sinh thái BIBIAM)
   Chỉ dùng token từ tokens.css. Trang mới ghép từ các khối này + khối BIBIAM.
   ============================================================================ */

[hidden]{display:none!important}
/* safe-area + gutter */
.wrap{padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
.nav{padding-top:env(safe-area-inset-top,0px)}
.nav-in{padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}

/* reveal: luôn nhìn thấy khi đứng yên, chỉ trượt nhẹ */
.up,.reveal{opacity:1;transform:translateY(14px)}
.up.in,.reveal.in{transform:none}
.step{opacity:1;transform:none}

/* depth on hover */
.card,.navcard,.prin,.exp,.conn,.member,.prog{transition:box-shadow var(--t),transform var(--t),background var(--t)}
.card:hover,.navcard:hover,.prin:hover,.exp:hover,.conn:hover,.member:hover,.prog:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.btn-solid:hover{box-shadow:var(--shadow-teal)}
.paper-3{background:var(--paper-3);color:var(--on-paper)}
.paper-3 .eyebrow{color:var(--brass)}

/* brand lockup AVA */
.brand{align-items:center}
.brand .logo{width:40px;height:20px;flex:none}
.brand .mark{font-size:22px}
.foot-brand .logo{width:64px;height:32px;margin-bottom:14px;display:block}
.foot-eco{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-mute);border:1px solid var(--line-d-2);padding:8px 12px;border-radius:var(--radius)}
.foot-eco b{color:var(--on-ink);font-weight:500}
.foot-eco .dot{width:6px;height:6px;background:var(--brass-2);display:inline-block}
.foot-eco:hover{border-color:var(--brass-2)}

/* small utilities */
.mt-s{margin-top:18px}.mt-m{margin-top:clamp(28px,4vw,48px)}.mt-l{margin-top:clamp(40px,5vw,64px)}
.maxw-s{max-width:20ch}.maxw-m{max-width:28ch}.maxw-p{max-width:62ch}
.ital{font-family:var(--f-disp);font-style:normal;font-weight:600}
.accent{color:var(--brass)}
.mono{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.1em;text-transform:uppercase}
.body-lg{font-size:var(--fs-body-lg);line-height:1.6;color:var(--on-paper-mute);max-width:62ch}
.body-lg b{color:var(--on-paper);font-weight:600}
.bignum{font-family:var(--f-disp);font-weight:700;line-height:.85;font-size:clamp(110px,18vw,260px);letter-spacing:-.04em;color:var(--brass)}
.flag{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-small);color:var(--warn);background:var(--warn-bg);padding:12px 16px;border-radius:var(--radius);max-width:72ch}
.flag b{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;flex:none;padding-top:2px}
.btn-sm{padding:10px 16px;font-size:13px}
.btn-solid,.paper .btn-solid,.paper-2 .btn-solid{color:var(--on-cta)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.two-col>*{min-width:0}

/* hero AVA: logo lớn + cặp chữ */
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,80px);align-items:center}
.hero-grid>*{min-width:0}
.hero-mark{width:100%;max-width:420px;margin-inline:auto;display:block;filter:drop-shadow(0 30px 50px rgba(0,163,163,.18))}
@media(prefers-reduced-motion:no-preference){
  .hero-mark .p{animation:rise 1.1s var(--ease) both;transform-box:fill-box;transform-origin:center bottom}
  .hero-mark .p2{animation-delay:.12s}
  .hero-mark .v{animation:drop 1.1s .24s var(--ease) both;transform-box:fill-box;transform-origin:center top}
  @keyframes rise{from{transform:translateY(12px)}to{transform:none}}
  @keyframes drop{from{transform:translateY(-12px)}to{transform:none}}
}
.hero-cap{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--on-paper-mute);text-align:center;margin-top:16px}

/* chương trình */
.progs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.prog{background:var(--paper-card);padding:clamp(24px,2.6vw,34px);display:flex;flex-direction:column;gap:12px;min-width:0}
.prog[hidden]{display:none}
.prog .cat{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.prog h3{font-family:var(--f-disp);font-weight:600;font-size:clamp(22px,2.1vw,27px);line-height:1.15}
.prog p{font-size:var(--fs-small);color:var(--on-paper-mute);margin:0;line-height:1.55}
.prog dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:6px 0 0;padding-top:14px;border-top:1px solid var(--line-l);font-size:13.5px}
.prog dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-paper-mute);padding-top:2px}
.prog dd{margin:0;color:var(--on-paper)}
.prog .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px}
.prog .go{font-weight:600;font-size:14px;display:inline-flex;gap:9px;align-items:center;color:var(--on-paper)}
.prog .go .arw{color:var(--brass);transition:transform var(--t)}
.prog .go:hover .arw{transform:translateX(4px)}
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok);width:fit-content}
.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.mute{background:var(--paper-2);color:var(--on-paper-mute)}

/* lịch tuần */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.day{background:var(--paper-card);padding:16px 14px;min-height:150px;display:flex;flex-direction:column;gap:10px;min-width:0}
.day .dn{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-paper-mute)}
.day.today{background:var(--paper-2);box-shadow:inset 0 2px 0 var(--brass)}
.day.today .dn{color:var(--brass)}
.slot{border-left:2px solid var(--brass);padding:4px 0 4px 10px;font-size:13px;line-height:1.35}
.slot b{display:block;font-weight:600}
.slot span{color:var(--on-paper-mute);font-family:var(--f-mono);font-size:11px}
.slot a{color:var(--brass);font-weight:600;font-size:12px}
.day .empty-d{color:var(--line-l-2);font-size:13px}

/* tool shell */
.toolnav{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.toolnav button{background:var(--paper-card);border:0;text-align:left;padding:18px 20px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-family:var(--f-ui);color:var(--on-paper);transition:background var(--t)}
.toolnav button .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--brass)}
.toolnav button b{font-family:var(--f-disp);font-weight:600;font-size:20px;line-height:1.2}
.toolnav button span{font-size:13px;color:var(--on-paper-mute)}
.toolnav button:hover{background:var(--paper-2)}
.toolnav button[aria-selected="true"]{background:var(--ink);color:var(--on-ink)}
.toolnav button[aria-selected="true"] .k{color:var(--brass-2)}
.toolnav button[aria-selected="true"] span{color:var(--on-ink-mute)}
.tool{display:flex;flex-direction:column;gap:22px;margin-top:28px}
.box{background:var(--paper-card);border:1px solid var(--line-l);padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;gap:14px;min-width:0;border-radius:var(--radius)}
.box h3{font-family:var(--f-disp);font-weight:600;font-size:clamp(21px,2vw,26px);line-height:1.2}
.box .small,.small{font-size:13.5px;color:var(--on-paper-mute)}
.box-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.box-2>*{min-width:0}
.box-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.box-3>*{min-width:0}
.drawq{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--ink);color:var(--on-ink);padding:20px 24px;border-radius:var(--radius)}
.drawq .qq{font-family:var(--f-disp);font-style:normal;font-size:clamp(20px,2.3vw,26px);flex:1;min-width:220px;line-height:1.3}
.drawq .btn{color:var(--on-ink);border-color:var(--line-d-2)}

/* inputs (nền sáng) */
.inp,.sel,.ta{width:100%;min-width:0;font-family:var(--f-ui);font-size:16px;color:var(--on-paper);background:var(--paper-2);border:1px solid var(--line-l-2);border-radius:var(--radius);padding:12px 14px;transition:border-color var(--t)}
.inp:focus,.sel:focus,.ta:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--ok-bg)}
.ta{min-height:96px;resize:vertical}
.fld{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600;min-width:0}
.fld .h{font-weight:400;color:var(--on-paper-mute);font-size:13px}
.fld.full{grid-column:1/-1}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.fgrid .err{border-color:var(--bad)}
.addrow{display:flex;gap:10px}
.addrow .inp{flex:1}

/* chips / radio / scale */
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opts label{position:relative;border:1px solid var(--line-l-2);border-radius:999px;padding:8px 14px;font-weight:500;font-size:14px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;transition:all var(--t);background:var(--paper-card)}
.opts input{position:absolute;opacity:0;pointer-events:none}
.opts label:has(input:checked){border-color:var(--brass);background:var(--brass);color:#FFFFFF}
.opts label:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}
.qrow{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-l)}
.qrow:last-child{border-bottom:0}
.qrow p{margin:0;font-size:15.5px}
.qrow .opts label{border-radius:var(--radius);padding:7px 11px;font-size:13px}
.progress{height:4px;background:var(--paper-3);overflow:hidden}
.progress i{display:block;height:100%;background:var(--brass);transition:width .3s}

/* kết quả */
.bars{display:grid;gap:14px}
.bar-r{display:grid;grid-template-columns:minmax(120px,210px) 1fr 44px;gap:12px;align-items:center;font-size:14.5px}
.bar-r .track{position:relative;height:12px;background:var(--paper-3)}
.bar-r .fill{position:absolute;left:0;top:0;bottom:0;background:var(--brass)}
.bar-r .fill.warn{background:var(--warn)}.bar-r .fill.bad{background:var(--bad)}
.bar-r .self{position:absolute;top:-5px;bottom:-5px;width:3px;background:var(--on-paper);transform:translateX(-1.5px)}
.bar-r .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right;font-size:13px}
.score{font-family:var(--f-disp);font-weight:700;font-size:clamp(60px,8vw,96px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.score small{font-size:.28em;color:var(--on-paper-mute);letter-spacing:0}
.insight{display:grid;gap:10px}
.insight div{border-left:2px solid var(--brass);padding:3px 0 3px 14px}
.insight div.warn{border-color:var(--warn)}
.insight b{display:block;font-weight:600}
.insight span{color:var(--on-paper-mute);font-size:14px}
.keyrow{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--on-paper-mute)}
.cand{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--line-l);padding:10px 0}
.cand .nm{font-weight:600;overflow-wrap:anywhere}
.cand .tg{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tgl{border:1px solid var(--line-l-2);background:transparent;border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--on-paper-mute);font-family:var(--f-ui)}
.tgl[aria-pressed="true"]{color:#FFFFFF;background:var(--brass);border-color:var(--brass)}
.tgl.c2[aria-pressed="true"]{background:var(--ink-600);border-color:var(--ink-600)}
.tgl.c3[aria-pressed="true"]{background:var(--warn);border-color:var(--warn)}
.xbtn{border:0;background:none;color:var(--on-paper-mute);cursor:pointer;font-size:18px;padding:0 4px}
.venn{width:100%;max-width:400px;margin-inline:auto;display:block}
.region{border:1px solid var(--line-l);padding:12px 14px;border-radius:var(--radius)}
.region.core{border-color:var(--brass);background:var(--ok-bg)}
.region b{display:block;font-size:14.5px}
.region p{font-size:13.5px;color:var(--on-paper-mute);margin:2px 0 0}
.region .items{font-size:14px;font-weight:600;margin-top:4px}

/* thư viện học thuyết */
.theories{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.th{background:var(--paper-card);border:0;padding:22px;display:flex;flex-direction:column;gap:8px;text-align:left;cursor:pointer;font-family:var(--f-ui);color:var(--on-paper);min-width:0}
.th:hover{background:var(--paper-2)}
.th .grp{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.th h4{font-family:var(--f-disp);font-weight:600;font-size:21px;line-height:1.2}
.th .who{font-size:12.5px;color:var(--on-paper-mute);font-family:var(--f-mono)}
.th p{font-size:14px;color:var(--on-paper-mute);margin:0}
.th .more{display:none;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line-l)}
.th[aria-expanded="true"]{background:var(--paper-2);box-shadow:inset 0 2px 0 var(--brass)}
.th[aria-expanded="true"] .more{display:flex}
.th .more .ask{font-family:var(--f-disp);font-style:normal;font-size:17px;color:var(--on-paper)}
.th.own{background:var(--ink);color:var(--on-ink)}
.th.own .grp{color:var(--brass-2)}.th.own p,.th.own .who{color:var(--on-ink-mute)}
.th.own .more{border-top-color:var(--line-d)}.th.own .more .ask{color:var(--on-ink)}

/* scorecard */
.sc-rows{display:grid;gap:0}
.sc-row{display:grid;grid-template-columns:28px 1fr minmax(140px,240px) 64px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-l)}
.sc-row .ix{font-family:var(--f-mono);font-size:12px;color:var(--brass)}
.sc-row b{display:block;font-weight:600;font-size:15px}
.sc-row span{font-size:13px;color:var(--on-paper-mute)}
.sc-row input[type=range]{width:100%;accent-color:var(--brass)}
.sc-row .pts{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right;font-size:14px}
.sc-row .pts small{color:var(--on-paper-mute)}
.meter{height:14px;background:var(--paper-3);position:relative;overflow:hidden}
.meter i{position:absolute;inset:0 auto 0 0;background:var(--brass);transition:width .3s,background .3s}
.meter .tick{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--on-paper-mute)}

/* đồng hồ Trở Về Nhà */
.timer{display:grid;grid-template-columns:.9fr 1.1fr;gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.timer>*{min-width:0}
.timer .face{background:var(--ink);color:var(--on-ink);padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:14px}
.timer .now{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-2)}
.timer .clock{font-family:var(--f-disp);font-weight:700;font-size:clamp(64px,9vw,120px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.timer .stepname{font-family:var(--f-disp);font-size:clamp(24px,2.6vw,32px);line-height:1.15}
.timer .how{color:var(--on-ink-mute);font-size:14.5px}
.timer .ctrl{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}
.timer .ctrl .btn{color:var(--on-ink);border-color:var(--line-d-2)}
.timer .ctrl .btn-solid{border-color:var(--brass)}
.timer ol{list-style:none;margin:0;padding:0;background:var(--ink-800)}
.timer li{display:grid;grid-template-columns:76px 1fr;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-d);color:var(--on-ink-mute);font-size:14px;cursor:pointer}
.timer li .t{font-family:var(--f-mono);font-size:12px;font-variant-numeric:tabular-nums}
.timer li b{color:var(--on-ink);font-weight:500;display:block}
.timer li.on{background:var(--ink-600);box-shadow:inset 3px 0 0 var(--brass-2)}
.timer li.done{opacity:.5}
.timer .track{height:3px;background:var(--line-d)}
.timer .track i{display:block;height:100%;background:var(--brass-2);transition:width 1s linear}

/* ladder (Map to Success / con đường thầy) */
.ladder{display:grid;gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.rung{display:grid;grid-template-columns:110px 1fr 1.2fr;gap:20px;align-items:start;background:var(--paper-card);padding:20px 24px}
.rung>*{min-width:0}
.rung .lv{font-family:var(--f-disp);font-weight:700;font-size:30px;color:var(--brass);line-height:1}
.rung .lv small{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-paper-mute);margin-top:8px}
.rung h4{font-family:var(--f-disp);font-weight:600;font-size:22px}
.rung p{margin:4px 0 0;font-size:14px;color:var(--on-paper-mute)}
.rung.key{background:var(--paper-2);box-shadow:inset 3px 0 0 var(--brass)}

/* tables trong trang */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line-l);background:var(--paper-card)}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px}
.tbl th{text-align:left;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);font-weight:500;padding:14px 16px;border-bottom:2px solid var(--line-l-2);background:var(--paper-2)}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--line-l);vertical-align:top;line-height:1.5}
.tbl tr:last-child td{border-bottom:0}
.tbl td.k{font-weight:600;white-space:nowrap}
.tbl td.n{font-family:var(--f-mono);color:var(--brass);width:40px}

/* kim chỉ nam: TOC + đọc */
.charter{display:grid;grid-template-columns:260px 1fr;gap:clamp(30px,5vw,72px);align-items:start}
.charter>*{min-width:0}
.toc{position:sticky;top:calc(var(--nav-h) + 24px);display:flex;flex-direction:column;gap:14px}
.toc a{display:block;font-size:13.5px;color:var(--on-paper-mute);padding:5px 0 5px 12px;border-left:1px solid var(--line-l)}
.toc a:hover,.toc a.on{color:var(--on-paper);border-left-color:var(--brass)}
.toc .inp{font-size:14px}
.hit{background:var(--warn-bg);color:inherit}
.art-block[hidden]{display:none}
.commit{display:grid;grid-template-columns:40px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-l)}
.commit .ix{font-family:var(--f-mono);color:var(--brass)}
.commit p{margin:0}

/* ba khoảng cách nhìn (biểu tượng) */
.lens-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center}
.lens-wrap>*{min-width:0}
.lens{aspect-ratio:1/1;max-width:440px;width:100%;margin-inline:auto;border-radius:50%;background:radial-gradient(circle at 50% 45%,var(--ink-700),var(--ink) 70%);border:1px solid var(--line-d-2);display:grid;place-items:center;overflow:hidden;position:relative}
.lens svg{width:78%;overflow:visible}
.lens .zoom{transition:transform 1s var(--ease);transform-box:view-box;transform-origin:center}
.lens[data-d="gan"] .zoom{transform:scale(2.7) translate(22%,-6%)}
.lens[data-d="xa"] .zoom{transform:scale(.62) translateY(-6%)}
.lens .wings,.lens .court{opacity:0;transition:opacity .8s}
.lens[data-d="xa"] .wings,.lens[data-d="vua"] .court{opacity:1}
.lens .lbl{position:absolute;bottom:22px;left:0;right:0;text-align:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-ink-mute)}
.dtabs{display:flex;flex-direction:column;gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.dtab{text-align:left;background:var(--ink-800);border:0;padding:20px 22px;cursor:pointer;color:var(--on-ink-mute);font-family:var(--f-ui);display:flex;flex-direction:column;gap:6px;transition:background var(--t)}
.dtab .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.dtab h3{font-family:var(--f-disp);font-weight:600;font-size:22px;color:var(--on-ink)}
.dtab q{quotes:none;font-family:var(--f-disp);font-style:normal;font-size:16px}
.dtab[aria-selected="true"]{background:var(--ink-600)}
.dtab[aria-selected="true"] .k{color:var(--brass-2)}

/* hệ sinh thái BIBIAM */
.eco{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.eco>div{background:var(--ink-800);padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:10px;min-width:0}
.eco .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-2)}
.eco h4{font-family:var(--f-disp);font-weight:600;font-size:23px}
.eco p{margin:0;font-size:14px;color:var(--on-ink-mute)}
.eco .here{background:var(--ink-600);box-shadow:inset 0 2px 0 var(--brass-2)}

/* sơ đồ 3 tầng */
.tiers{display:grid;gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.tier{display:grid;grid-template-columns:140px 1fr;gap:20px;background:var(--paper-card);padding:22px 24px;align-items:center}
.tier .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.tier h4{font-family:var(--f-disp);font-weight:600;font-size:24px}
.tier p{margin:4px 0 0;font-size:14px;color:var(--on-paper-mute)}

/* chọn lối vào */
.finder{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.finder>*{background:var(--paper-card);padding:clamp(22px,3vw,36px);min-width:0;display:flex;flex-direction:column;gap:16px}
.finder .res{background:var(--paper-2)}
.finder .res h3{font-family:var(--f-disp);font-weight:600;font-size:clamp(24px,2.6vw,32px);line-height:1.15}

/* form đăng ký */
.switch{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-l-2);border-radius:var(--radius);overflow:hidden}
.switch button{border:0;background:var(--paper-card);padding:12px 18px;font-family:var(--f-ui);font-weight:600;font-size:14px;cursor:pointer;color:var(--on-paper-mute)}
.switch button+button{border-left:1px solid var(--line-l-2)}
.switch button[aria-selected="true"]{background:var(--brass);color:#FFFFFF}
.formcard{background:var(--paper-card);border:1px solid var(--line-l);padding:clamp(22px,3vw,36px);box-shadow:var(--shadow-sm)}
.form-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:6px}
.done{border:1px solid var(--brass);background:var(--paper-card);padding:32px;display:flex;flex-direction:column;gap:12px}

/* liên hệ có nút sao chép */
.contact-list{display:grid;gap:1px;background:var(--line-l);border:1px solid var(--line-l)}
.crow{display:grid;grid-template-columns:120px 1fr auto;gap:14px;align-items:center;background:var(--paper-card);padding:14px 18px}
.crow .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-paper-mute)}
.crow .v{font-weight:600;user-select:all;overflow-wrap:anywhere}
.copy{border:1px solid var(--line-l-2);background:none;border-radius:var(--radius);padding:6px 12px;font-family:var(--f-ui);font-size:12.5px;font-weight:600;cursor:pointer;color:var(--on-paper)}
.copy:hover{border-color:var(--brass);color:var(--brass)}

/* FAQ */
.faq{border-top:1px solid var(--line-l)}
.faq details{border-bottom:1px solid var(--line-l)}
.faq summary{cursor:pointer;list-style:none;padding:20px 0;display:flex;justify-content:space-between;gap:16px;font-family:var(--f-disp);font-size:clamp(19px,2vw,23px)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono);color:var(--brass);transition:transform var(--t)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 22px;color:var(--on-paper-mute);max-width:70ch}

/* HỎI AVA — dock + panel (Yedran) */
.ask-btn{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:58;display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--on-ink);border:1px solid var(--line-d-2);border-radius:999px;padding:12px 18px 12px 14px;font-family:var(--f-ui);font-weight:600;font-size:14px;cursor:pointer;box-shadow:var(--shadow-md)}
.ask-btn .pulse{width:9px;height:9px;border-radius:50%;background:var(--brass-2);box-shadow:0 0 0 0 rgba(63,224,208,.6)}
@media(prefers-reduced-motion:no-preference){.ask-btn .pulse{animation:pl 2.4s infinite}@keyframes pl{70%{box-shadow:0 0 0 10px rgba(63,224,208,0)}100%{box-shadow:0 0 0 0 rgba(63,224,208,0)}}}
.ask-btn:hover{border-color:var(--brass-2)}
.to-top{bottom:calc(84px + env(safe-area-inset-bottom,0px));right:calc(22px + env(safe-area-inset-right,0px))}
.ask{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:59;width:min(390px,calc(100vw - 36px));max-height:min(620px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--paper-card);border:1px solid var(--line-l-2);box-shadow:0 30px 60px -20px rgba(0,18,26,.35);border-radius:var(--radius);overflow:hidden}
.ask-hd{background:var(--ink);color:var(--on-ink);padding:16px 18px;display:flex;gap:12px;align-items:center}
.ask-hd b{display:block;font-family:var(--f-disp);font-weight:600;font-size:19px}
.ask-hd span{font-size:12.5px;color:var(--on-ink-mute)}
.ask-hd .x{margin-left:auto;background:none;border:0;color:var(--on-ink);font-size:22px;cursor:pointer;line-height:1}
.ask-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--paper-2)}
.msg{max-width:88%;padding:10px 13px;font-size:14.5px;line-height:1.5;border-radius:var(--radius)}
.msg.bot{background:var(--paper-card);border:1px solid var(--line-l);align-self:flex-start}
.msg.me{background:var(--brass);color:#FFFFFF;align-self:flex-end}
.msg a{color:var(--brass);font-weight:600}
.msg .src{display:block;margin-top:6px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;color:var(--on-paper-mute)}
.quick{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px;border-top:1px solid var(--line-l)}
.quick button{border:1px solid var(--line-l-2);background:var(--paper-card);border-radius:999px;padding:6px 11px;font-size:12.5px;cursor:pointer;font-family:var(--f-ui);color:var(--on-paper)}
.quick button:hover{border-color:var(--brass);color:var(--brass)}
.ask-in{display:flex;border-top:1px solid var(--line-l)}
.ask-in input{flex:1;border:0;padding:14px 16px;font-family:var(--f-ui);font-size:15px;background:var(--paper-card);color:var(--on-paper);min-width:0}
.ask-in input:focus{outline:none}
.ask-in button{border:0;background:var(--brass);color:#FFFFFF;font-weight:600;padding:0 18px;cursor:pointer;font-family:var(--f-ui)}
.ask-ft{padding:8px 16px;font-size:11.5px;color:var(--on-paper-mute);background:var(--paper-card);border-top:1px solid var(--line-l)}

/* AVA responsive */
@media(max-width:1000px){
  .hero-grid,.two-col,.lens-wrap,.box-2,.timer,.finder,.charter{grid-template-columns:1fr}
  .hero-mark{max-width:300px}
  .progs,.theories,.eco{grid-template-columns:1fr 1fr}
  .toolnav{grid-template-columns:1fr 1fr}
  .week{grid-template-columns:repeat(4,1fr)}
  .rung{grid-template-columns:90px 1fr}
  .rung>p:last-child{grid-column:2}
  .toc{position:static;flex-direction:row;flex-wrap:wrap}
  .toc nav{display:none}
}
@media(max-width:640px){
  .progs,.theories,.eco,.box-3,.toolnav{grid-template-columns:1fr}
  .week{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr}
  .qrow,.cand{grid-template-columns:1fr}
  .cand .tg{justify-content:flex-start}
  .bar-r{grid-template-columns:1fr 44px}.bar-r .nm{grid-column:1/-1}
  .sc-row{grid-template-columns:24px 1fr 56px}.sc-row input[type=range]{grid-column:2/4}
  .tier{grid-template-columns:1fr;gap:6px}
  .crow{grid-template-columns:1fr auto}.crow .k{grid-column:1/-1}
  .ask-btn .lbl{display:none}.ask-btn{padding:14px}
  .rung{grid-template-columns:1fr;gap:8px}.rung>p:last-child{grid-column:auto}
}
@media print{.ask-btn,.ask{display:none!important}}
/* lưới cố định số cột, co lại trên màn hình nhỏ */
.steps.s5,.principles.c5{grid-template-columns:repeat(5,1fr)}
.principles.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.steps.s5{grid-template-columns:1fr 1fr}.principles.c5,.principles.c4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps.s5,.principles.c5,.principles.c4{grid-template-columns:1fr}}

/* ============================================================================
   AVA · HỌC VIỆN — lối vào danh dự (hero tối, bầu trời sao, huy hiệu, thư mời)
   ============================================================================ */
/* thanh tiến độ cuộn trang */
.progress-line{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--brass);transition:width .1s linear}

/* nav trên hero tối (chỉ trang chủ, khi chưa cuộn) */
body.dark-top .nav:not(.solid) .brand .mark,body.dark-top .nav:not(.solid) .nav-links a:hover,body.dark-top .nav:not(.solid) .nav-links a.active{color:var(--on-ink)}
body.dark-top .nav:not(.solid) .brand small,body.dark-top .nav:not(.solid) .nav-links a{color:var(--on-ink-mute)}
/* body.dark-top .nav:not(.solid) .nav-cta removed to maintain solid cta */
body.dark-top .nav:not(.solid) .burger{color:var(--on-ink)}
body.dark-top .nav:not(.solid){--logo-cut:var(--ink)}

/* hero lối vào */
.gate{position:relative;background:var(--ink);color:var(--on-ink);overflow:hidden;padding-top:clamp(132px,17vh,180px);padding-bottom:clamp(56px,7vw,96px);isolation:isolate}
.gate canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.gate::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,var(--ink));z-index:-1;pointer-events:none}
.gate .eyebrow{color:var(--brass-2)}
.gate h1{font-family:var(--f-disp);font-weight:700;line-height:1.02;letter-spacing:-.03em;font-size:clamp(44px,6.4vw,96px);margin-top:22px}
.gate h1 em{font-style:normal;color:var(--brass-2)}
.gate .lead{max-width:56ch;font-size:var(--fs-body-lg);line-height:1.6;color:var(--on-ink-mute);margin:30px 0 38px}
.gate .lead b{color:var(--on-ink);font-weight:500}
.gate .btn{color:var(--on-ink);border-color:var(--line-d-2)}
.gate .btn-solid{border-color:var(--brass)}
.gate-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(30px,5vw,80px);align-items:center}
.gate-grid>*{min-width:0}
.gate .acro{border-top-color:var(--line-d)}
.gate .acro div{border-right-color:var(--line-d)}
.gate .acro .k{color:var(--brass-2)}
.gate .acro .v{color:var(--on-ink-mute)}

/* huy hiệu học viện */
.crest{width:100%;max-width:340px;margin-inline:auto;display:block;overflow:visible}
.crest .ring{fill:none;stroke:var(--brass-2);stroke-width:.8;opacity:.6}
.crest .ring2{fill:none;stroke:var(--brass-2);stroke-width:.4;opacity:.35}
.crest text{font-family:var(--f-mono);font-size:7.4px;letter-spacing:3.2px;fill:var(--on-ink-mute)}
.crest .yr{font-family:var(--f-disp);font-style:normal;font-size:11px;letter-spacing:2px;fill:var(--brass-2)}
@media(prefers-reduced-motion:no-preference){.crest .spin{transform-origin:100px 100px;animation:spin 90s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}}

/* đếm ngược buổi kế tiếp */
.next{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px 16px;border:1px solid var(--line-d-2);padding:10px 16px;border-radius:var(--radius);background:rgba(0,18,26,.55);backdrop-filter:blur(6px);margin-top:26px;font-size:13.5px}
.next .live{width:8px;height:8px;border-radius:50%;background:var(--brass-2);box-shadow:0 0 0 0 rgba(63,224,208,.6)}
@media(prefers-reduced-motion:no-preference){.next .live{animation:pl 2.4s infinite}}
.next .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-mute)}
.next b{font-weight:600;color:var(--on-ink)}
.next .cd{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--brass-2)}
.next a{color:var(--brass-2);font-weight:600}

/* công thức kiểu BIBIAM */
.formula{font-family:var(--f-disp);font-weight:700;font-size:clamp(30px,5vw,68px);line-height:1.1;letter-spacing:-.02em}
.formula .op{color:var(--brass);font-style:normal;padding:0 .12em}

/* hành trình ngôi sao 5T */
.ascent{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,70px);align-items:center}
.ascent>*{min-width:0}
.ascent svg{width:100%;height:auto;display:block;overflow:visible}
.ascent .path{fill:none;stroke:var(--line-l-2);stroke-width:1;stroke-dasharray:3 5}
.ascent .trail{fill:none;stroke:var(--brass);stroke-width:1.6;transition:stroke-dashoffset 1s var(--ease)}
.ascent .pt{cursor:pointer}
.ascent .pt circle{fill:var(--paper-card);stroke:var(--brass);stroke-width:1.4;transition:all .4s}
.ascent .pt.on circle,.ascent .pt.past circle{fill:var(--brass)}
.ascent .pt text{font-family:var(--f-disp);font-size:20px;fill:var(--on-paper)}
.ascent .pt .sm{font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;fill:var(--on-paper-mute)}
.ascent .pt:focus-visible circle{stroke-width:3}
.ascent .star{fill:var(--brass);transition:transform 1s var(--ease)}
.ascent-card .lv{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.ascent-card h3{font-family:var(--f-disp);font-weight:700;font-size:clamp(44px,6vw,80px);line-height:1;margin:10px 0 14px}
.ascent-card p{font-size:var(--fs-body-lg);color:var(--on-paper-mute);margin:0 0 12px;max-width:44ch}
.ascent-card .when{font-size:14px;color:var(--on-paper)}
.ascent-nav{display:flex;gap:8px;margin-top:22px}

/* thư mời nhập học */
.invite{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,70px);align-items:center}
.invite>*{min-width:0}
.letter{position:relative;background:var(--paper-card);color:var(--on-paper);padding:clamp(30px,5vw,60px);border:1px solid var(--line-l-2);box-shadow:0 40px 80px -40px rgba(0,18,26,.45);text-align:center;overflow:hidden}
.letter::before{content:"";position:absolute;inset:12px;border:1px solid var(--line-l);pointer-events:none}
.letter::after{content:"";position:absolute;inset:16px;border:1px solid var(--line-l);pointer-events:none}
.letter .crest{max-width:96px;margin-bottom:10px}
.letter .crest text{fill:var(--on-paper-mute)}.letter .crest .ring,.letter .crest .ring2{stroke:var(--brass)}.letter .crest .yr{fill:var(--brass)}
.letter .lt-k{font-family:var(--f-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.letter .lt-to{font-size:15px;color:var(--on-paper-mute);margin-top:20px}
.letter .lt-name{font-family:var(--f-disp);font-style:normal;font-weight:700;font-size:clamp(34px,5vw,58px);line-height:1.08;margin:8px 0 18px;overflow-wrap:anywhere}
.letter .lt-body{font-family:var(--f-disp);font-size:clamp(17px,1.7vw,20px);line-height:1.6;max-width:42ch;margin:0 auto}
.letter .lt-path{display:inline-block;margin-top:18px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;border-block:1px solid var(--line-l-2);padding:8px 14px}
.letter .lt-sig{display:flex;justify-content:space-between;gap:16px;margin-top:30px;padding-top:16px;border-top:1px solid var(--line-l);font-size:12.5px;color:var(--on-paper-mute);text-align:left}
.letter .lt-sig b{display:block;font-family:var(--f-disp);font-style:normal;font-size:17px;font-weight:600;color:var(--on-paper)}

/* số chạy */
.fact .n{font-variant-numeric:tabular-nums}

@media(max-width:1000px){.gate-grid,.ascent,.invite{grid-template-columns:1fr}.crest{max-width:220px}.gate .crest{order:-1}}
@media(max-width:560px){.next{font-size:13px}.letter .lt-sig{flex-direction:column}}
/* đếm ngược trên nền sáng */
.page-hero .next,.paper .next,.paper-2 .next{background:var(--paper-card);border-color:var(--line-l-2);color:var(--on-paper)}
.page-hero .next b,.paper .next b{color:var(--on-paper)}
.page-hero .next .k{color:var(--on-paper-mute)}
.page-hero .next .cd,.page-hero .next a{color:var(--brass)}

.page-hero h1{max-width:20ch}
/* dải thông báo (lấy từ Google Sheet · Cấu hình › Thông báo) */
.notice{display:flex;justify-content:center;align-items:center;gap:10px;background:var(--ink);color:var(--on-ink);font-size:13px;font-weight:500;padding:8px max(var(--gut),env(safe-area-inset-left,0px));text-align:center;line-height:1.4}
.notice .dot{width:6px;height:6px;border-radius:50%;background:var(--brass-2);flex:none}
.notice .arw{color:var(--brass-2);transition:transform var(--t)}
.notice:hover .arw{transform:translateX(4px)}
.empty{padding:40px;background:var(--paper-card);grid-column:1/-1}

/* ============================================================================
   ĐỒNG BỘ BIBIAM.COM · v2 — nav tối cố định, hero trang con tối, chữ Be Vietnam
   Pro đậm, nút xanh ngọc chữ tối, thẻ bo 12px. Ghi đè các quy tắc phía trên.
   ============================================================================ */
h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em}
h1 em,h2 em,h3 em,.lede em,.h-l em,.h-m em{font-style:normal;color:var(--brass)}
.gate h1 em,.hero h1 em,.page-hero h1 em,.dark h2 em{color:var(--brass-2)}
.lede,.h-l,.h-m{letter-spacing:-.025em}
.eyebrow{font-size:12.5px;letter-spacing:.14em}

/* nav: luôn tối như bibiam.com */
.nav,.nav.solid,body.dark-top .nav:not(.solid){background:rgba(0,18,26,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.nav .brand .mark,.nav .nav-links a:hover,.nav .nav-links a.active{color:var(--on-ink)}
.nav .brand small,.nav .nav-links a{color:var(--on-ink-mute)}
.nav .nav-links a{font-size:15px}
.nav .nav-links a.active{color:var(--brass-2)}
.nav .nav-links a.nav-cta,
.nav a.nav-cta,
.nav .nav-cta,
body.dark-top .nav:not(.solid) .nav-cta{background:var(--cta)!important;border-color:var(--cta)!important;color:var(--on-cta)!important;border-radius:8px;font-weight:600}
.nav .nav-links a.nav-cta:hover,
.nav a.nav-cta:hover,
.nav .nav-cta:hover,
body.dark-top .nav:not(.solid) .nav-cta:hover{background:var(--cta-hover)!important;border-color:var(--cta-hover)!important;color:var(--on-cta)!important}
.nav .nav-cta::after,.nav .nav-links a.nav-cta::after{display:none!important;content:none!important;width:0!important;height:0!important}
.nav .burger{color:var(--on-ink)}
.progress-line{background:var(--brass-2)}
.brand .logo{width:auto;height:26px}
.brand .mark{font-size:22px;letter-spacing:.06em}
.foot-brand .logo{width:auto;height:36px}
.hero-mark{width:100%;height:auto;max-width:440px;filter:drop-shadow(0 30px 60px rgba(0,163,163,.35))}

/* hero trang con: nền tối, lưới mờ, quầng sáng xanh — như bibiam.com */
.page-hero{background:radial-gradient(760px 420px at 88% 20%,rgba(0,163,163,.18),rgba(0,18,26,0) 70%),var(--ink);color:var(--on-ink);border-bottom:1px solid var(--line-d)}
.page-hero::before{background:linear-gradient(var(--line-d) 1px,transparent 1px) 0 0/100% 84px,linear-gradient(90deg,var(--line-d) 1px,transparent 1px) 0 0/84px 100%}
.page-hero .intro,.page-hero .crumb{color:var(--on-ink-mute)}
.page-hero .intro b,.page-hero .crumb .cur,.page-hero .crumb a:hover{color:var(--on-ink)}
.page-hero .crumb .sep,.page-hero .eyebrow{color:var(--brass-2)}
.page-hero .watermark{color:var(--brass-2);opacity:.06}
.page-hero .btn{color:var(--on-ink);border-color:var(--line-d-2)}
.page-hero .btn-solid{color:var(--on-cta);border-color:var(--cta)}
.page-hero .acro{border-top-color:var(--line-d)}
.page-hero .acro div{border-right-color:var(--line-d)}
.page-hero .acro .k{color:var(--brass-2)}
.page-hero .acro .v{color:var(--on-ink-mute)}

/* nút: cao ≥44px, bo 8px, chữ đậm */
.btn{border-radius:8px;min-height:48px;padding:13px 24px;font-size:15px;letter-spacing:0}
.btn-ghost,.btn:not(.btn-solid){background:transparent}
.gate .btn-solid{color:var(--on-cta);border-color:var(--cta)}

/* thẻ & khung: bo 12px như bibiam.com */
.card,.box,.navcard,.prin,.ask,.letter,.invite,.region,.quiz,.tool,.panel{border-radius:var(--radius-card)}
.foot{background:var(--ink);color:var(--on-ink)}
.gate h1{max-width:17ch;font-size:clamp(42px,5.6vw,84px);line-height:1.05}
.foot-brand .mark{white-space:nowrap}
.page-hero .next{background:rgba(10,34,42,.85);border-color:var(--line-d-2);color:var(--on-ink)}


/* ---------- OVERSCROLL EXTENSION FOR DEEP INK FOOTER & HEADER ------------ */
html {
  background-color: #00121A !important;
}
body {
  background-color: var(--paper);
}
/* The foot element extends infinitely downward using box-shadow so overscroll bounce is deep ink */
.foot {
  position: relative;
  background: rgba(0, 18, 26, 0.92) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid var(--line-d);
  box-shadow: 0 100vh 0 100vh rgba(0, 18, 26, 0.92);
}
