/* Impacter Professional Learning · shared shell
   Language borrowed from the Decision Record PDF: navy bands with a blue→coral rule, two-line headlines
   (ink + coral), marker evidence in competency colors, numbered notes with color bars, filled pages. */
@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=DM+Mono:wght@400;500&display=swap");
:root{
  --night:#0E1C33; --ink:var(--surface-inverse-deep); --ink-2:var(--surface-inverse); --blue:var(--color-primary);
  --coral:var(--color-coral); --sky:var(--color-light-blue); --paper:var(--color-paper); --cream:#FFFDF6;
  --grit:var(--comp-grit); --purpose:var(--comp-purpose); --growth:var(--comp-growth-mindset);
  --mk-grit:rgba(232,190,70,.62); --mk-purpose:rgba(243,113,99,.42); --mk-growth:rgba(111,183,111,.45); --mk-blue:rgba(99,142,197,.38);
  --ease:cubic-bezier(.2,.8,.2,1); --gut:clamp(16px,4vw,64px); --max:1280px;
  --hand:"Caveat",cursive; --mono:"DM Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--paper);color:#16191d;font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;letter-spacing:-.025em;text-wrap:balance}
h1 span,h2 span,h3 span.l{display:block}
a{color:inherit}
button{font:inherit;cursor:pointer;color:inherit}
.coral{color:var(--coral)}
.sky{color:var(--sky)}
.tab{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.eb{font:700 11px/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0 0 16px;display:block}
.eb.light{color:var(--sky)}
.lede{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--fg-2);max-width:640px;margin:22px 0 0}
.on-dark .lede,.band .lede{color:rgba(255,255,255,.74)}
.hand{font-family:var(--hand);font-weight:700}

/* ---------- running head ---------- */
.rh{position:fixed;inset:0 0 auto;z-index:60;height:66px;display:flex;align-items:center;gap:24px;padding:0 var(--gut);
  background:rgba(14,28,51,.9);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);color:#fff}
.rh::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--coral));transform-origin:0 50%;transform:scaleX(var(--p,0))}
.rh-logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.rh-logo img{height:30px;display:block}
.rh-logo span{font:700 10px var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--sky);padding-left:14px;border-left:1px solid rgba(255,255,255,.18);line-height:1.35}
.rh-nav{margin-left:auto;display:flex;gap:2px}
.rh-nav a{position:relative;padding:9px 12px;border-radius:999px;font:600 13px var(--font-display);text-decoration:none;color:rgba(255,255,255,.66);transition:color .25s,background .25s}
.rh-nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.rh-nav a.on{color:#fff;background:rgba(255,255,255,.12)}
.rh-nav a i{font:500 9.5px var(--font-body);font-style:normal;opacity:.55;margin-right:5px;letter-spacing:.08em}
.rh-burger{display:none;margin-left:auto;border:0;background:rgba(255,255,255,.1);width:42px;height:42px;border-radius:12px}
.rh-burger span{display:block;width:18px;height:2px;margin:4px auto;background:#fff;border-radius:2px;transition:transform .3s}
.rh-open .rh-burger span:first-child{transform:translateY(3px) rotate(45deg)}
.rh-open .rh-burger span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* framework glyph: Listen · Notice · Decide */
.lnd{display:inline-flex;align-items:center;gap:8px;font:700 11px var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.lnd b{display:inline-flex;align-items:center;gap:7px;font-weight:700}
.lnd b::before{content:attr(data-n);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:10px;letter-spacing:0;background:var(--lnd-dot,var(--sky));color:var(--ink)}
.lnd em{font-style:normal;opacity:.4}

/* ---------- band: the PDF page header ---------- */
.band{position:relative;background:var(--ink);color:#fff;padding:150px 0 72px;overflow:hidden}
.band::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--blue),var(--coral))}
.band .grid-bg{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent,#000 70%)}
.band-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px}
.band-top .folio{font:500 12px var(--mono);color:rgba(255,255,255,.5)}
.band h1{font-size:clamp(40px,6vw,86px);line-height:.98;color:#fff}
.band-plate{position:absolute;right:0;top:0;bottom:0;width:46%;background-size:cover;background-position:center;mask-image:linear-gradient(90deg,transparent,#000 40%)}
.band-plate::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,41,74,.2),rgba(21,41,74,.55))}
.band .wrap{position:relative;z-index:1}
.band-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.band-meta a,.band-meta span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);font:600 13px var(--font-display);text-decoration:none;color:#fff;transition:background .25s}
.band-meta a:hover{background:rgba(255,255,255,.16)}

/* ---------- section scaffolding ---------- */
.sec{position:relative;padding:clamp(80px,10vw,140px) 0}
.sec-head{display:grid;grid-template-columns:1fr minmax(0,.9fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.sec-head h2{font-size:clamp(34px,4.4vw,62px);line-height:1.02;color:var(--ink-2)}
.sec-head .lede{margin:0}
.on-dark{background:var(--ink);color:#fff}
.on-dark .sec-head h2{color:#fff}
.on-sky{background:linear-gradient(180deg,var(--surface-blue-low),#e8f0f7)}
.on-cream{background:var(--cream)}
.rule-num{font:500 12px var(--mono);color:var(--fg-3);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.rule-num::after{content:"";flex:1;height:1px;background:currentColor;opacity:.25}

/* ---------- markers: evidence that pops ---------- */
.mk{--m:var(--mk-grit);color:inherit;padding:0 .08em;margin:0 -.04em;border-radius:.18em .42em .3em .5em;
  background-image:linear-gradient(100deg,transparent 0 .25em,var(--m) .4em calc(100% - .35em),transparent 100%);
  background-size:var(--mw,100%) 70%;background-position:0 72%;background-repeat:no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  transition:background-size .9s var(--ease)}
.mk.grit{--m:var(--mk-grit)}.mk.purpose{--m:var(--mk-purpose)}.mk.growth{--m:var(--mk-growth)}.mk.blue{--m:var(--mk-blue)}
.mk.pending{--mw:0%}

/* ---------- plates (synthetic imagery, always tagged) ---------- */
.plate{position:relative;margin:0;border-radius:22px;overflow:hidden;background:var(--ink)}
.plate img{display:block;width:100%;height:100%;object-fit:cover}
.plate .tag,.tag-ill,figure .tag{position:absolute;z-index:2;left:14px;bottom:14px;font:600 10px var(--font-body);letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;border-radius:999px;background:rgba(14,28,51,.62);color:rgba(255,255,255,.85);backdrop-filter:blur(6px)}

/* ---------- avatars: circle crops with headroom ---------- */
.av{--s:64px;position:relative;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;flex:none;background:radial-gradient(circle at 50% 35%,#e9f1f8,#cfdeec)}
.av img{position:absolute;left:50%;top:var(--top,14%);width:var(--w,108%);transform:translateX(-50%);height:auto;max-width:none}

/* ---------- buttons, chips ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;padding:15px 24px;background:var(--ink-2);color:#fff;font:700 14.5px var(--font-display);text-decoration:none;transition:transform .3s var(--ease),background .3s,box-shadow .3s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(21,41,74,.5)}
.btn.light{background:#fff;color:var(--ink)}
.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor;color:var(--ink-2)}
.on-dark .btn.ghost,.band .btn.ghost,.hero .btn.ghost,.close .btn.ghost{color:#fff}
.btn.coral{background:var(--coral)}
.btn svg{width:16px;height:16px}
.chip{display:inline-flex;align-items:center;gap:7px;font:700 10.5px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--blue))}

/* ---------- footer ---------- */
.foot{background:var(--night);color:rgba(255,255,255,.7);padding:72px 0 40px;position:relative}
.foot::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--blue),var(--coral))}
.foot-grid{display:grid;grid-template-columns:1.2fr 2fr;gap:60px}
.foot h3{font-size:30px;line-height:1.1;color:#fff}
.foot-toc{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
.foot-toc a{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed rgba(255,255,255,.14);text-decoration:none;font:600 14.5px var(--font-display);color:#fff}
.foot-toc a i{font:500 12px var(--mono);font-style:normal;color:rgba(255,255,255,.4)}
.foot-toc a:hover{color:var(--sky)}
.foot-base{display:flex;justify-content:space-between;gap:20px;margin-top:56px;font-size:12.5px;color:rgba(255,255,255,.45)}

/* ---------- modal viewer: nobody leaves the page ---------- */
.mv{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:4vh 3vw;background:rgba(10,20,36,.72);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .35s}
.mv.open{opacity:1;pointer-events:auto}
.mv-box{width:min(1280px,100%);height:min(860px,92vh);background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transform:translateY(18px) scale(.985);transition:transform .45s var(--ease);box-shadow:0 40px 100px -20px rgba(0,0,0,.5)}
.mv.open .mv-box{transform:none}
.mv-bar{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;background:var(--ink);color:#fff}
.mv-bar b{font:700 14px var(--font-display);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mv-bar span{font:400 12px var(--mono);color:rgba(255,255,255,.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}
.mv-bar a,.mv-bar button{border:0;border-radius:999px;padding:8px 14px;background:rgba(255,255,255,.1);font:600 12.5px var(--font-display);color:#fff;text-decoration:none}
.mv iframe{flex:1;border:0;width:100%;background:#fff}
.mv-fallback{flex:1;display:grid;place-items:center;text-align:center;padding:40px;background:var(--surface-blue-low)}
.mv-fallback img{max-height:56vh;border-radius:12px;box-shadow:var(--shadow-lg);margin-bottom:22px}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (max-width:1100px){
  .rh-logo span{display:none}
  .rh-nav a i{display:none}
  .rh-nav a{padding:8px 9px;font-size:12.5px}
}
@media (max-width:900px){
  .rh-burger{display:block}
  .rh-nav{position:fixed;left:0;right:0;top:66px;flex-direction:column;gap:0;padding:12px var(--gut) 24px;background:rgba(14,28,51,.97);transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s}
  .rh-open .rh-nav{transform:none;opacity:1;pointer-events:auto}
  .rh-nav a{padding:14px 4px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.08);font-size:17px}
  .rh-nav a i{display:inline}
  .sec-head{grid-template-columns:1fr}
  .band{padding:120px 0 56px}
  .band-plate{width:100%;opacity:.35;mask-image:none}
  .foot-grid,.foot-toc{grid-template-columns:1fr}
  .foot-base{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

/* Talk With Our PD Team */
.rh-talk{margin-left:12px;border:0;padding:10px 16px;border-radius:999px;background:var(--coral);color:#fff;font:700 13px var(--font-display);white-space:nowrap}
.foot-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.foot .btn.ghost{color:#fff}
.iq{position:fixed;inset:0;z-index:95;pointer-events:none}
.iq-scrim{position:absolute;inset:0;background:rgba(10,20,36,.55);opacity:0;transition:opacity .4s}
.iq-panel{position:absolute;top:0;right:0;bottom:0;width:min(640px,100%);margin:0;background:var(--paper);overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .55s var(--ease),visibility 0s .55s}
.iq.open{pointer-events:auto}.iq.open .iq-scrim{opacity:1}
.iq.open .iq-panel{transform:none;visibility:visible;transition:transform .55s var(--ease);box-shadow:-30px 0 80px -30px rgba(0,0,0,.4)}
.iq-x{position:absolute;right:16px;top:16px;z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:16px}
.iq-head{position:relative;background:var(--ink);color:#fff;padding:34px 32px 26px}
.iq-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--blue),var(--coral))}
.iq-head .eb{color:var(--sky)}
.iq-head h2{font-size:38px;line-height:1;color:#fff}
.iq-head p{margin:12px 0 0;font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.75)}
.iq-body,.iq-done{padding:24px 32px 34px}
.iq-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.iq label{display:flex;flex-direction:column;gap:6px;font:700 10.5px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.iq input,.iq select,.iq textarea{font:600 15px var(--font-display);padding:11px 13px;border-radius:11px;border:0;box-shadow:inset 0 0 0 1.5px #d6dee7;background:#fff;color:var(--ink-2);text-transform:none;letter-spacing:0}
.iq textarea{font-weight:500;line-height:1.5;resize:vertical}
.iq input:focus,.iq select:focus,.iq textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--blue)}
.iq fieldset{border:0;margin:0 0 14px;padding:0}
.iq legend{font:700 10.5px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}
.iq-chips{display:flex;flex-wrap:wrap;gap:6px}
.iq-chips button{border:0;padding:8px 12px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1.5px #dbe2ea;font:600 12.5px var(--font-display);color:var(--fg-2);transition:all .2s}
.iq-chips button b{font:500 11px var(--mono);color:var(--coral);margin-right:6px}
.iq-chips button.on{background:var(--ink-2);color:#fff;box-shadow:none}
.iq-chips button.on b{color:var(--sky)}
.iq-msg{margin-top:4px}
.iq-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.iq-err{min-height:20px;margin:10px 0 0;font-size:13.5px;color:#C2410C}
.iq-err a{color:var(--ink-2)}
.iq-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px}
.iq-foot span{font-size:12.5px;color:var(--fg-3)}
.iq-done{text-align:left;animation:wipe2 .5s var(--ease)}
@keyframes wipe2{from{opacity:0;transform:translateY(10px)}}
.iq-check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--growth);color:#fff;font-size:30px;margin-bottom:16px}
.iq-done h3{font-size:28px;color:var(--ink-2)}
.iq-done p{font-size:15.5px;line-height:1.6;color:var(--fg-2)}
.iq-prev{padding:10px 12px;border-radius:10px;background:#FFF1A8;font-size:13px!important}
@media (max-width:1180px){.rh-nav{gap:2px}.rh-nav a{padding-inline:10px}}
@media (max-width:900px){.rh-talk{margin-left:auto;padding:9px 13px;font-size:12px}.rh-burger{margin-left:8px}}
@media (max-width:600px){.iq-row{grid-template-columns:1fr}.iq-body,.iq-done{padding:20px}}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:600 12.5px var(--font-display);color:rgba(255,255,255,.6)}
.crumbs a{color:var(--sky);text-decoration:none}.crumbs a:hover{color:#fff}
.crumbs i{font-style:normal;opacity:.5}
.part-of.light{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding:18px 22px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px #e6e0cc}
.part-of.light small{display:block;font:700 10.5px var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.part-of.light b{font:700 18px var(--font-display);color:var(--ink-2)}
.part-of.light>div:last-child{display:flex;gap:10px}

/* ---------- bottom dock ----------
   globalnav.js injects the main site's own header (.nav pill, mega panel, mobile drawer) and footer, untouched.
   Professional Learning moves to a floating dock at the bottom of the screen, like an app's tab bar.
   It steps aside for the footer (which has its own links) and for the Activities audio player. */
.has-globalnav{scroll-padding-top:96px}
.has-globalnav .rh{top:auto;bottom:22px;left:50%;right:auto;transform:translateX(-50%);width:auto;max-width:calc(100% - 24px);height:auto;padding:6px;gap:2px;border-radius:999px;
  background:rgba(14,28,51,.9);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);
  box-shadow:0 20px 44px -14px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.1);transition:opacity .3s,transform .35s var(--ease)}
.has-globalnav .rh::after,.has-globalnav .rh-logo,.has-globalnav .rh-burger{display:none!important}
.has-globalnav .rh-nav{position:static;display:flex;flex-direction:row;margin:0;gap:2px;padding:0;background:none;opacity:1;transform:none;pointer-events:auto}
.has-globalnav .rh-nav a{padding:10px 16px;border-radius:999px;border:0;font:500 13.5px var(--font-body);color:rgba(255,255,255,.75);white-space:nowrap}
.has-globalnav .rh-nav a i{display:none}
.has-globalnav .rh-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.has-globalnav .rh-nav a.on{background:#fff;color:var(--night);font-weight:600}
.has-globalnav .rh-talk{margin:0 0 0 6px;padding:10px 16px;font-size:13px}
.has-globalnav.at-foot .rh,.has-globalnav:has(.mini.on) .rh{opacity:0;transform:translate(-50%,24px);pointer-events:none}
.has-globalnav .nav ul,.has-globalnav #mega-panel ul,.has-globalnav #nav-drawer ul{list-style:none;margin:0;padding:0}
.has-globalnav .nav-links a{white-space:nowrap}
.has-globalnav #nav-drawer h2{font-family:inherit;letter-spacing:normal;text-wrap:wrap}
.has-globalnav #nav-drawer h2 span:not(.nd-chev){display:inline}
@media (max-width:1180px){.has-globalnav .tray{bottom:92px}}
@media (max-width:900px){
  .has-globalnav .rh{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));transform:none;max-width:none;padding:5px}
  .has-globalnav.at-foot .rh,.has-globalnav:has(.mini.on) .rh{transform:translateY(24px)}
  .has-globalnav .rh-nav{width:100%;justify-content:space-between}
  .has-globalnav .rh-nav{gap:0}
  .has-globalnav .rh-nav a{flex:1 1 auto;text-align:center;padding:10px 4px;font-size:12px;letter-spacing:-.01em}
  .has-globalnav .rh-talk{display:none}
  .has-globalnav .tray{bottom:76px}
}
@media (max-width:360px){.has-globalnav .rh-nav a{padding:10px 2px;font-size:11px}}
.has-globalnav .band{padding-top:150px}
@media (max-width:900px){.has-globalnav .band{padding-top:130px}}
/* main site footer: PD's list styles must not indent its columns; floating buttons step aside once it's on screen */
.footer-m ul{list-style:none;margin:0;padding:0}
.tray{transition:opacity .3s,transform .3s}
.at-foot .tray{opacity:0;transform:translateY(16px);pointer-events:none}
