.sub{overflow:hidden;max-height:0;opacity:0;transition:max-height .35s var(--ease),opacity .25s}
.nav.past .sub{max-height:64px;opacity:1}
.sub-in{display:flex;align-items:center;gap:8px 28px;padding-block:6px 10px;overflow-x:auto;scrollbar-width:none}
.sub-in::-webkit-scrollbar{display:none}
.sub-name{display:flex;align-items:center;gap:12px;font-weight:700;white-space:nowrap;padding-right:8px}
.sub a{position:relative;white-space:nowrap;font-size:14px;font-weight:600;color:var(--navy-500);text-decoration:none;padding:8px 14px;border-radius:999px;transition:background .2s,color .2s}
.sub a:hover{background:var(--paper);color:var(--navy-900)}
.sub a.on{background:var(--navy-900);color:var(--white)}
.rate{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;white-space:nowrap}
.rate i{width:8px;height:8px;border-radius:999px;flex:none}
.r-Strong{color:var(--mint-700)}
.d-Strong{background:var(--mint-600)}
.r-Moderate{color:var(--navy-500)}
.d-Moderate{background:var(--navy-300)}
.r-Contested{color:var(--amber-text)}
.d-Contested{background:var(--amber)}
.r-Framework{color:var(--mauve-700)}
.d-Framework{background:var(--mauve-300)}
.top{overflow-x:clip;background:radial-gradient(720px 520px at 82% 60%,rgba(217,255,234,.95) 0%,rgba(217,255,234,0) 70%),linear-gradient(180deg,var(--white) 0%,var(--white) 60%,var(--chalk) 100%);margin-top:-80px;padding-top:80px}
.hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:48px 72px;padding-block:48px 104px}
.hero-copy{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:22px}
h1{font-size:clamp(40px,5.6vw,76px);line-height:1.04;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}
.principle{font-size:clamp(22px,2.4vw,30px);line-height:1.35;max-width:620px}
.tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tagl{font-size:14px;font-weight:600;border-radius:999px;padding:8px 16px;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s,background .2s}
.tagl:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(6,24,38,.12)}
.tagl.cat{color:var(--mauve-700);background:var(--mauve-50)}
.tagl.area{color:var(--white);background:var(--navy-900)}
.tagl.area:hover{background:var(--navy-700)}
/* The evidence panel itself is in /css/panel.css. Here: its place in the hero, and the settle as the page opens. */
.hero .panel-wrap{flex:1 1 340px;min-width:0;max-width:420px;animation:settle .8s var(--ease) both}
.hero .panel{height:100%}
@keyframes settle{from{transform:translateY(14px) rotate(1.2deg)}to{transform:none}}
@media (min-width:980px){
  .hero{flex-wrap:nowrap;column-gap:clamp(140px,13vw,172px)}
}
.sec{display:flex;flex-wrap:wrap;gap:28px 80px;padding-block:64px}
.sec-h{flex:1 1 240px;min-width:0;max-width:300px;display:flex;flex-direction:column;gap:10px}
.sec-h h2{font-size:clamp(24px,2.6vw,32px);line-height:1.2;font-weight:700;letter-spacing:-.01em}
.sec-h .reviewed{margin:0;font-size:14px;color:var(--grey-500)}
.sec-b{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:20px}
.route{display:flex;flex-wrap:wrap;gap:28px 0}
.step{flex:1 1 96px;min-width:0;display:flex;flex-direction:column;gap:16px;text-decoration:none}
.step .rail{display:flex;align-items:center;height:28px}
.step .dot{flex:none;border-radius:999px;transition:transform .3s var(--ease),box-shadow .3s,background .3s,border-color .3s}
.step .line{flex-grow:1;height:2px;background:var(--navy-100);transition:background .3s}
.step:last-child .line{display:none}
.step .lab{display:flex;flex-direction:column;gap:2px;padding-right:8px}
.step .nm{font-size:16px;font-weight:700;line-height:1.25;transition:color .2s}
.step .st{font-size:13px;color:var(--navy-500)}
.step.main .dot{width:16px;height:16px;background:var(--mint-400);box-shadow:0 0 0 6px var(--mint-50)}
.step.main .st{font-weight:700;color:var(--mint-700)}
.step.also .dot{width:14px;height:14px;background:var(--navy-900)}
.step.none .dot{width:14px;height:14px;background:var(--white);border:2px solid var(--grey-300)}
.step.none .nm{color:var(--grey-500);font-weight:500}
.step.none .st{color:var(--grey-500)}
.step:hover .dot{transform:scale(1.3)}
.step.also:hover .dot{box-shadow:0 0 0 6px var(--mint-50)}
.step:hover .nm{color:var(--mint-700)}
.step:hover .line{background:var(--navy-900)}
.note{font-size:16px;color:var(--navy-500)}
.tactics{list-style:none;padding:0;display:flex;flex-direction:column}
.tactics li{position:relative;display:flex;align-items:flex-start;gap:14px;padding:16px 14px;margin-inline:-14px;border-radius:16px;font-size:18px;line-height:1.55;transition:background .2s}
.tactics li::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:1px;background:var(--offwhite)}
.tactics li:last-child::after{display:none}
.tactics li:hover{background:var(--paper)}
.tick{flex:none;width:24px;height:24px;margin-top:2px;border-radius:999px;display:grid;place-items:center;background:var(--mint-50);color:var(--mint-700);transition:transform .3s var(--ease),background .2s,color .2s}
.tactics li:hover .tick{transform:scale(1.15);background:var(--mint-400);color:var(--navy-900)}
.tactics li.avoid .tick{background:var(--mauve-50);color:var(--mauve-700)}
.tactics li.avoid:hover .tick{background:var(--mauve-500);color:var(--white)}
.tactics li.avoid b{color:var(--mauve-700)}
.pull{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(24px,2.8vw,34px);line-height:1.32}
.pull mark{background:var(--mint-300);color:inherit;padding:0 8px;border-radius:10px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.found{font-size:18px;line-height:1.7;color:var(--navy-500);max-width:640px}
.refs{display:flex;flex-direction:column}
.ref{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px 32px;padding:20px 16px;margin-inline:-16px;border-radius:18px;text-decoration:none;transition:background .2s,box-shadow .2s,transform .2s var(--ease)}
.ref::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:var(--offwhite);transition:opacity .2s}
.ref:last-child::after{display:none}
.ref:hover{background:var(--paper);box-shadow:var(--shadow-soft);transform:translateY(-2px)}
.ref:hover::after{opacity:0}
.ref .m{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:4px}
.ref .au{font-size:17px;font-weight:700;line-height:1.4}
.ref .ti{font-size:16px;line-height:1.55;color:var(--navy-500)}
.ref .jo{font-size:14px;color:var(--grey-500)}
.ref .kind{font-size:12px;font-weight:700;color:var(--mint-700);background:var(--mint-50);border-radius:999px;padding:2px 10px;margin-left:10px;white-space:nowrap}
.ref .go{font-size:14px;font-weight:700;color:var(--mint-700);white-space:nowrap;padding-top:3px}
.ref:hover .go .arr{transform:translate(3px,-3px)}
.caution-row{padding-block:40px 88px}
.caution{flex:999 1 520px;min-width:0;background:var(--amber-50);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:10px}
.caution .lab{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--amber-text)}
.caution .lab i{width:8px;height:8px;border-radius:999px;background:var(--amber)}
.caution p{font-size:17px;line-height:1.65}
.caution small{font-size:14px;color:var(--amber-text)}
.rel{background:linear-gradient(180deg,var(--chalk) 0%,var(--white) 50%,var(--chalk) 100%)}
.rel .wrap{padding-block:56px 120px;display:flex;flex-direction:column;gap:40px}
.rel-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px}
.rel-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.15;font-weight:700;letter-spacing:-.01em}
.cards{display:flex;flex-wrap:wrap;gap:24px}
.card{flex:1 1 300px;min-width:0;background:var(--paper);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-soft);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.card .hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.card .t{font-size:24px;line-height:1.25;font-weight:700}
.card .p{font-size:16px;line-height:1.65;color:var(--navy-500);flex-grow:1}
.card .ap{font-size:14px;color:var(--grey-500)}
.card .ap b{color:var(--navy-900);font-weight:600}
.card .go{font-size:15px;font-weight:700;color:var(--mint-700);padding-top:10px}
.card:hover .go .arr{transform:translateX(5px)}
.back{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-bottom:28px;border-bottom:1px solid var(--offwhite)}
.back a.b{font-size:16px;font-weight:700;color:var(--navy-900);padding:10px 0;text-decoration:none;display:inline-flex;gap:8px}
.back a.b:hover .arr{transform:translateX(-5px)}
.back span{font-size:15px;color:var(--grey-500)}
@media (max-width:860px){
  .hero{padding-block:24px 64px}
  /* The route runs down the page on phones, dots joined, as on the homepage */
  .route{flex-direction:column;flex-wrap:nowrap;gap:0}
  .step{flex:none;flex-direction:row;gap:14px;min-height:56px}
  .step .rail{flex-direction:column;width:16px;height:auto;flex:none;padding-top:3px}
  .step .line{width:2px;height:auto;margin-top:4px;min-height:20px}
  .step .lab{flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;flex-grow:1;padding:0 0 18px}
  .sec{padding-block:44px}
}
.principle .it{color:var(--mint-700)}
/* Keeps the heading clear of the header and section bar when the bar's link jumps here */
.rel{scroll-margin-top:76px}
.rel-copy{display:flex;flex-direction:column;gap:12px;max-width:640px}
.rel-head .textlink{padding:12px 0}
/* Hero chip linking down to insights about or mentioning this principle */
.tagl.ins{display:inline-flex;align-items:center;gap:8px;color:var(--mint-700);background:var(--mint-50)}
.tagl.ins:hover{background:var(--mint-300);color:var(--navy-900)}
