/* Legion resources publication: shared hub and Read-mode article system. */
.resource-page,
.article-page{background:var(--bg);color:var(--text)}
.resource-page a,
.article-page a{text-underline-offset:3px}
.resource-page button,
.article-page button,
.resource-page input{font:inherit}
.resource-page :focus-visible,
.article-page :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.resource-container{width:min(100% - 48px,var(--maxw));margin-inline:auto}
.resource-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:10px 16px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-btn);color:var(--text-strong)}
.resource-skip:focus{left:12px;top:12px}

/* Hub */
.resource-hero{padding:clamp(76px,11vw,142px) 0 72px;border-bottom:1px solid var(--border)}
.resource-hero__inner{max-width:820px}
.resource-hero h1{max-width:12ch;font-size:clamp(2.75rem,7vw,5.75rem);line-height:1.02;letter-spacing:-.038em;text-wrap:balance}
.resource-hero p{max-width:62ch;margin-top:24px;font-size:clamp(1.08rem,1.8vw,1.28rem);line-height:1.58;color:var(--text-muted);text-wrap:pretty}
.resource-standard{display:flex;gap:12px;align-items:flex-start;margin-top:30px;padding-top:22px;border-top:1px solid var(--border);font-size:.92rem;color:var(--text-muted)}
.resource-standard strong{color:var(--text-strong);font-weight:600}
.resource-standard__mark{flex:0 0 9px;width:9px;height:9px;margin-top:.4em;border:1px solid var(--accent);border-radius:50%}
.resource-section{padding:clamp(56px,8vw,88px) 0;border-bottom:1px solid var(--border)}
.resource-section__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:36px;align-items:end;margin-bottom:34px}
.resource-section__head h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.06;letter-spacing:-.03em;text-wrap:balance}
.resource-section__head p{color:var(--text-muted);max-width:48ch;justify-self:end}
.resource-feature{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);border:1px solid var(--border);border-radius:var(--r-card-lg);overflow:hidden;background:var(--surface-1)}
.resource-feature__copy{padding:clamp(32px,5vw,64px)}
.resource-feature h2{max-width:13ch;font-size:clamp(2.15rem,4vw,4rem);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
.resource-feature h2 a{text-decoration:none}
.resource-feature h2 a:hover{text-decoration:underline}
.resource-feature__copy>p{max-width:52ch;margin-top:22px;font-size:1.08rem;color:var(--text-muted)}
.resource-feature__art{position:relative;min-height:360px;background:var(--surface-2) url('hero-light.webp') 58% center/cover no-repeat;isolation:isolate}
.resource-feature__art:after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--surface-2) 34%,transparent)}
:root[data-theme="dark"] .resource-feature__art{background-image:url('hero-dark.webp')}
.resource-meta{display:flex;flex-wrap:wrap;gap:7px 16px;margin:20px 0;color:var(--text-muted);font-size:.9rem}
.resource-meta span+span:before{content:"·";margin-right:16px;color:var(--border-strong)}
.resource-primary-link{display:inline-flex;gap:8px;align-items:center;color:var(--accent-ink);font-weight:600;text-decoration:none}
.resource-primary-link:hover{text-decoration:underline}
.resource-useful{display:grid;grid-template-columns:1.2fr .8fr;border-top:1px solid var(--border)}
.resource-useful article{padding:30px 30px 30px 0;border-bottom:1px solid var(--border)}
.resource-useful article+article{padding-left:30px;border-left:1px solid var(--border)}
.resource-useful h3{max-width:18ch;font-size:clamp(1.55rem,2.5vw,2.2rem);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
.resource-useful h3 a{text-decoration:none}
.resource-useful h3 a:hover{text-decoration:underline}
.resource-useful article>p{max-width:50ch;margin-top:14px;color:var(--text-muted)}
.resource-discovery{padding:clamp(24px,4vw,36px);border:1px solid var(--border);border-radius:var(--r-card-lg);background:var(--surface-1)}
.resource-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding-bottom:24px;border-bottom:1px solid var(--border)}
.resource-search label{display:grid;gap:8px;color:var(--text-strong);font-weight:600}
.resource-search input{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--r-btn);background:var(--bg);color:var(--text);font-weight:400}
.resource-search input::placeholder{color:var(--text-muted)}
.resource-filter-groups{display:grid;gap:16px;margin-top:22px}
.resource-filter-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.resource-filter-label{width:76px;color:var(--text-muted);font-size:.88rem}
.resource-filter,.resource-reset{min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-pill);background:transparent;color:var(--text);cursor:pointer}
.resource-filter:hover,.resource-reset:hover{border-color:var(--border-strong);color:var(--text-strong)}
.resource-filter[aria-pressed="true"]{border-color:var(--accent);color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 7%,transparent)}
.resource-results{margin-top:18px;color:var(--text-muted);font-size:.92rem}
.resource-empty{display:none;margin-top:24px;padding:22px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1)}
.resource-empty.is-visible{display:block}
.resource-empty p{margin-bottom:14px}
.resource-archive{margin-top:28px;border-top:1px solid var(--border)}
.resource-row{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(190px,.45fr);gap:28px;padding:30px 0;border-bottom:1px solid var(--border)}
.resource-row[hidden]{display:none}
.resource-row__type{color:var(--accent-ink);font-family:var(--font-mono);font-size:.78rem;line-height:1.45}
.resource-row h3{font-size:clamp(1.35rem,2.2vw,1.8rem);line-height:1.15;letter-spacing:-.024em}
.resource-row h3 a{text-decoration:none}
.resource-row h3 a:hover{text-decoration:underline}
.resource-row__outcome{max-width:58ch;margin-top:10px;color:var(--text-muted)}
.resource-row dl{display:grid;gap:7px;color:var(--text-muted);font-size:.88rem}
.resource-row dl div{display:grid;grid-template-columns:74px 1fr;gap:8px}
.resource-row dt{color:var(--text-strong);font-weight:600}
.resource-row dd{margin:0}
.resource-row__markdown{display:inline-block;margin-top:14px;color:var(--accent-ink);font-size:.88rem}
.resource-bridge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center;padding:clamp(30px,5vw,56px);border:1px solid var(--border);border-radius:var(--r-card-lg);background:var(--surface-1)}
.resource-bridge h2{max-width:16ch;font-size:clamp(2rem,4vw,3.35rem);line-height:1.05;letter-spacing:-.03em;text-wrap:balance}
.resource-bridge p{max-width:54ch;margin-top:16px;color:var(--text-muted)}

/* Long-form article */
.reading-progress{position:fixed;inset:0 auto auto 0;z-index:90;width:100%;height:2px;transform:scaleX(0);transform-origin:left;background:var(--accent);pointer-events:none}
.article-header{padding:clamp(58px,9vw,112px) 0 48px;border-bottom:1px solid var(--border)}
.article-header__inner{max-width:930px;margin-inline:auto}
.article-breadcrumbs{display:flex;flex-wrap:wrap;gap:7px;color:var(--text-muted);font-size:.88rem}
.article-breadcrumbs a{color:var(--accent-ink)}
.article-kicker{margin-top:22px;color:var(--accent-ink);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em}
.article-header h1{max-width:18ch;margin-top:30px;font-size:clamp(2.6rem,6vw,5.15rem);line-height:1.01;letter-spacing:-.038em;text-wrap:balance}
.article-standfirst{max-width:65ch;margin-top:25px;font-size:clamp(1.12rem,2vw,1.35rem);line-height:1.58;color:var(--text-muted);text-wrap:pretty}
.article-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:24px;color:var(--text-muted);font-size:.92rem}
.article-meta span+span:before{content:"·";margin-right:18px;color:var(--border-strong)}
.article-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.article-action{min-height:42px;padding:9px 13px;border:1px solid var(--border);border-radius:var(--r-btn);background:transparent;color:var(--text-strong);cursor:pointer;text-decoration:none}
.article-action:hover{border-color:var(--accent);color:var(--accent-ink)}
.article-copy-status{min-height:1.5em;margin-top:10px;color:var(--text-muted);font-size:.88rem}
.article-shell{padding:clamp(48px,8vw,92px) 0}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,240px);gap:clamp(44px,6vw,88px);align-items:start;max-width:1080px;margin-inline:auto}
.article-main{min-width:0;max-width:760px}
.article-rail{position:sticky;top:104px;align-self:start}
.article-toc{padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.article-toc h2{margin:0 0 12px;font-size:.9rem;color:var(--text-strong);font-family:var(--font-sans);font-weight:600}
.article-toc ol{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.article-toc a{display:block;color:var(--text-muted);font-size:.87rem;line-height:1.35;text-decoration:none}
.article-toc a:hover,.article-toc a[aria-current="location"]{color:var(--accent-ink)}
.article-toc-mobile{display:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.article-toc-mobile summary{padding:14px 0;color:var(--text-strong);font-weight:600;cursor:pointer}
.article-toc-mobile .article-toc{border:0;padding:0 0 18px}
.article-summary{padding:clamp(22px,4vw,32px);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1);margin-bottom:46px}
.article-summary h2{margin:0 0 14px;font-size:1.35rem}
.article-summary ul,.article-summary ol{margin:0;padding-left:1.25rem}
.article-summary li+li{margin-top:8px}
.article-main>section{scroll-margin-top:100px}
.article-main h2{margin:64px 0 18px;font-size:clamp(1.8rem,3.4vw,2.65rem);line-height:1.08;letter-spacing:-.03em;text-wrap:balance}
.article-main h3{margin:34px 0 12px;font-size:clamp(1.2rem,2vw,1.45rem);line-height:1.2;letter-spacing:-.018em}
.article-main p,.article-main li{font-size:1.04rem;line-height:1.72}
.article-main p{margin:0 0 19px}
.article-main ul,.article-main ol{margin:0 0 24px;padding-left:1.35rem}
.article-main li+li{margin-top:9px}
.article-main strong{color:var(--text-strong);font-weight:600}
.article-main a{color:var(--accent-ink)}
.article-main table{width:100%;margin:26px 0 32px;border-collapse:collapse;font-size:.95rem}
.article-main th,.article-main td{padding:13px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.article-main th{color:var(--text-strong);font-weight:600;background:var(--surface-2)}
.article-callout,.callout{margin:30px 0;padding:22px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1)}
.article-callout h3,.callout h3{margin-top:0}
.article-flow{display:grid;gap:0;margin:30px 0;border-top:1px solid var(--border)}
.article-flow>*{padding:16px 0;border-bottom:1px solid var(--border)}
.article-flow strong{display:block;margin-bottom:5px}
.signal-flow,.role-flow,.article-diagram{margin:30px 0;padding:22px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1)}
.signal-flow figcaption,.role-flow figcaption,.article-diagram figcaption{margin-bottom:16px;color:var(--text-muted);font-size:.9rem}
.signal-flow ol,.role-flow ol,.article-diagram ol{display:grid;gap:0;list-style:none;margin:0;padding:0}
.signal-flow li,.role-flow li,.article-diagram li{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1fr);gap:18px;margin:0;padding:13px 0;border-top:1px solid var(--border);font-size:.95rem;line-height:1.5}
.signal-flow span,.role-flow span{color:var(--text-muted)}
.source-notes,.related-resources{margin-top:64px;padding-top:30px;border-top:1px solid var(--border)}
.source-notes h2,.related-resources h2{margin-top:0}
.source-notes ol{font-size:.93rem;color:var(--text-muted)}
.related-resources ul{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;padding:0}
.related-resources a{display:block;height:100%;padding:18px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1);color:var(--text-strong);text-decoration:none}
.related-resources a:hover{border-color:var(--accent);color:var(--accent-ink)}
.article-cta{margin-top:54px;padding:clamp(26px,4vw,38px);border:1px solid var(--border);border-radius:var(--r-card-lg);background:var(--surface-1)}
.article-cta h2{margin-top:0;max-width:17ch}
.article-cta p{max-width:55ch;color:var(--text-muted)}

@media(max-width:900px){
  .resource-section__head{grid-template-columns:1fr}.resource-section__head p{justify-self:start}
  .resource-feature{grid-template-columns:1fr}.resource-feature__art{min-height:240px;order:-1}
  .article-layout{grid-template-columns:1fr;gap:30px}.article-rail{display:none}.article-toc-mobile{display:block;margin-bottom:34px}
}
@media(max-width:760px){
  .resource-container{width:min(100% - 36px,var(--maxw))}
  .resource-useful{grid-template-columns:1fr}.resource-useful article,.resource-useful article+article{padding:26px 0;border-left:0}
  .resource-search{grid-template-columns:1fr}.resource-row{grid-template-columns:1fr;gap:14px}
  .resource-row dl{grid-template-columns:1fr 1fr}.resource-bridge{grid-template-columns:1fr}
  .article-header h1{font-size:clamp(2.45rem,11vw,4rem)}
  .related-resources ul{grid-template-columns:1fr}
}
@media(max-width:420px){
  .resource-container{width:min(100% - 28px,var(--maxw))}
  .resource-hero{padding-top:66px}.resource-feature__copy{padding:26px 22px}.resource-feature__art{min-height:190px}
  .resource-discovery{padding:20px 16px}.resource-filter-label{width:100%}.resource-row dl{grid-template-columns:1fr}
  .article-header{padding-top:48px}.article-actions{display:grid}.article-action{width:100%;justify-content:center;text-align:center}
  .article-main p,.article-main li{font-size:1rem}.article-main table{display:block;overflow-x:auto}
  .signal-flow li,.role-flow li,.article-diagram li{grid-template-columns:1fr;gap:4px}
}
@media(max-width:340px){
  .resource-page .nav,.article-page .nav{padding-inline:9px}
  .resource-page .nav__inner,.article-page .nav__inner{gap:10px;padding-left:14px}
  .resource-page .nav__cta,.article-page .nav__cta{gap:6px}
  .resource-page .navmb__panel,.article-page .navmb__panel{width:min(264px,calc(100vw - 28px))}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reading-progress{display:none}.resource-page *, .article-page *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
