@import "fonts.css";
@import "rubrica-tokens.css";
:root{--rb-soft:#596171}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--rb-paper);color:var(--rb-ink);font:400 16px/1.6 var(--rb-sans);-webkit-font-smoothing:antialiased}
a{color:var(--rb-navy);text-decoration:none;border-bottom:1px solid var(--rb-hairline);transition:color var(--rb-dur) var(--rb-ease),border-color var(--rb-dur) var(--rb-ease)}
a:hover{color:var(--rb-redpen);border-color:var(--rb-redpen)}
h1,h2,h3{font-family:var(--rb-serif);color:var(--rb-navy);font-weight:600;margin:0;text-wrap:balance}
h1{font-size:clamp(38px,5.4vw,64px);line-height:1.06;letter-spacing:-.015em}
h2{font-size:clamp(28px,3.4vw,40px);line-height:1.15;letter-spacing:-.01em}
h3{font-family:var(--rb-sans);font-size:17px;font-weight:600;line-height:1.35}
p{margin:0;text-wrap:pretty}
.wrap{max-width:var(--rb-container-max);margin:0 auto;padding:0 28px}
.eyebrow{font:600 12px/1 var(--rb-sans);letter-spacing:var(--rb-tracking-wider);text-transform:uppercase;color:var(--rb-soft)}
.eyebrow.red{color:var(--rb-redpen)}
.lede{font-size:19px;line-height:1.6;color:var(--rb-ink);max-width:36em}
.muted{color:var(--rb-soft)}
.mono{font-family:var(--rb-mono);letter-spacing:.06em}
.small{font-size:13.5px;line-height:1.55}
/* masthead */
.mast{position:sticky;top:0;z-index:20;background:rgba(250,248,242,.86);backdrop-filter:var(--rb-frost);-webkit-backdrop-filter:var(--rb-frost);border-bottom:var(--rb-rule-masthead)}
.mast .wrap{display:flex;align-items:center;gap:32px;height:64px}
.wordmark{display:flex;align-items:center;border:0;font:700 23px/1 var(--rb-serif);color:var(--rb-navy)}
.wordmark:hover{color:var(--rb-navy)}
.wordmark img{width:28px;height:28px;margin-right:10px}
.wordmark .dot{color:var(--rb-redpen)}
.mast nav{display:flex;gap:26px;margin-left:auto;align-items:center}
.mast nav a:not(.btn){border:0;font:500 12.5px/1 var(--rb-sans);letter-spacing:var(--rb-tracking-wide);text-transform:uppercase;color:var(--rb-soft);padding:6px 0}
.mast nav a:not(.btn):hover{color:var(--rb-navy)}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rb-navy);border-radius:var(--rb-radius-sm);padding:12px 20px;font:600 15px/1 var(--rb-sans);background:var(--rb-navy);color:#fff;transition:background var(--rb-dur-fast) var(--rb-ease),border-color var(--rb-dur-fast) var(--rb-ease),color var(--rb-dur-fast) var(--rb-ease),transform var(--rb-dur-fast)}
.btn:hover{background:var(--rb-redpen);border-color:var(--rb-redpen);color:#fff}
.btn:active{transform:translateY(1px)}
.btn.outline{background:transparent;color:var(--rb-navy)}
.btn.outline:hover{background:var(--rb-navy);border-color:var(--rb-navy);color:#fff}
.btn.sm{padding:9px 14px;font-size:13.5px}
.btn.light{background:#fff;border-color:#fff;color:var(--rb-navy)}
.btn.light:hover{background:var(--rb-redpen);border-color:var(--rb-redpen);color:#fff}
.btn.ghost-light{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.btn.ghost-light:hover{background:#fff;border-color:#fff;color:var(--rb-navy)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* cards + badges */
.card{background:var(--rb-card);border:1px solid var(--rb-hairline);border-radius:var(--rb-radius-lg);box-shadow:var(--rb-shadow)}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--rb-radius-pill);padding:4px 10px;font:600 12px/1.2 var(--rb-sans);white-space:nowrap}
.badge.green{background:var(--rb-green-bg);color:var(--rb-green)}
.badge.amber{background:var(--rb-amber-bg);color:#765711}
.badge.loc{background:transparent;color:var(--rb-navy);box-shadow:inset 0 0 0 1px var(--rb-navy)}
.badge.red{background:var(--rb-red-bg);color:var(--rb-red)}
.badge.navy{background:var(--rb-blue-light);color:var(--rb-navy)}
/* exam row (static recreation of ExamCard) */
.exam{position:relative;display:grid;grid-template-columns:minmax(0,130px) auto minmax(60px,1fr) 34px;gap:16px;align-items:center;padding:14px 18px;background:var(--rb-card);border:1px solid var(--rb-hairline);border-radius:var(--rb-radius-lg);box-shadow:var(--rb-shadow-sm)}
.exam.boundary{background:linear-gradient(135deg,var(--rb-amber-bg),var(--rb-card) 55%)}
.exam.flagged{background:linear-gradient(135deg,var(--rb-red-bg),var(--rb-card) 55%)}
.exam .id{font:500 13px/1 var(--rb-mono);letter-spacing:.06em;color:var(--rb-ink)}
.exam .pts{font:700 24px/1 var(--rb-serif);color:var(--rb-navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.exam .pts small{font:400 12px var(--rb-sans);color:var(--rb-soft)}
.exam .bar{position:relative;height:6px;border-radius:3px;background:#ece8dd}
.exam .bar i{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--rb-navy)}
.exam .bar b{position:absolute;top:-3px;bottom:-3px;width:1px;background:rgba(35,48,61,.22)}
.exam .ltr{font:700 20px/1 var(--rb-serif);color:var(--rb-navy);text-align:right}
.exam .note{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
/* ledger table */
.ledger{width:100%;border-collapse:collapse}
.ledger th{text-align:left;font:600 11.5px/1 var(--rb-sans);letter-spacing:var(--rb-tracking-wider);text-transform:uppercase;color:var(--rb-soft);padding:0 0 12px;border-bottom:1px solid var(--rb-hairline)}
.ledger td{padding:14px 16px 14px 0;border-bottom:1px solid rgba(35,48,61,.08);vertical-align:top}
.ledger tr:last-child td{border-bottom:0}
/* sections */
section{scroll-margin-top:80px}
.sec{padding:104px 0;border-top:1px solid var(--rb-hairline)}
.sec-head{display:grid;gap:16px;max-width:720px;margin-bottom:48px}
/* contact + footer */
.foot{border-top:var(--rb-rule-masthead);padding:56px 0 48px;font-size:13.5px;color:var(--rb-soft)}
.foot .cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px}
.foot h4{margin:0 0 12px;font:600 11.5px/1 var(--rb-sans);letter-spacing:var(--rb-tracking-wider);text-transform:uppercase;color:var(--rb-navy)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot .legal{margin-top:40px;padding-top:24px;border-top:1px solid var(--rb-hairline);display:grid;gap:10px;font-size:12.5px;line-height:1.6;max-width:880px}
.mast nav a.on{color:var(--rb-navy);box-shadow:inset 0 -2px 0 var(--rb-redpen)}
/* subpages */
.page-head{padding:80px 0 56px;border-bottom:1px solid var(--rb-hairline)}
.page-head .in{display:grid;gap:20px;max-width:800px}
.doc{display:grid;grid-template-columns:200px minmax(0,1fr);gap:64px;padding:64px 0 104px}
.toc{position:sticky;top:100px;display:grid;gap:12px;align-content:start}
.toc a{border:0;font-size:14px;color:var(--rb-soft)}
.toc a:hover{color:var(--rb-redpen)}
.toc a.on{color:var(--rb-navy);font-weight:600}
.prose{max-width:720px}
.prose h2{font-size:28px;margin:64px 0 16px;scroll-margin-top:90px}
.prose h2:first-child{margin-top:0}
.prose h3{margin:28px 0 8px}
.prose p,.prose li{font-size:16.5px;line-height:1.7}
.prose p+p{margin-top:14px}
.prose ul{padding-left:20px;margin:14px 0;display:grid;gap:8px}
.callout{margin:24px 0;padding:20px 24px;background:var(--rb-blue-light);border-radius:var(--rb-radius-md);font-size:15px}
.next{margin-top:64px;padding-top:28px;border-top:1px solid var(--rb-hairline);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
/* boundary diagram */
.bnd{display:grid;grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);align-items:stretch}
.bnd .col{display:grid;gap:12px;align-content:start}
.bnd .col h3{font-family:var(--rb-serif);font-size:22px;color:var(--rb-navy);margin:0 0 6px}
.bnd .item{padding:16px 18px;background:var(--rb-card);border:1px solid var(--rb-hairline);border-radius:var(--rb-radius-md);font-weight:500;color:var(--rb-navy);display:flex;justify-content:space-between;gap:12px}
.bnd .col.local .item{background:linear-gradient(135deg,var(--rb-blue-light),var(--rb-card) 70%)}
.bnd .line{position:relative;display:grid;justify-items:center}
.bnd .line::before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:3px double var(--rb-navy)}
.bnd .line span{position:relative;align-self:center;background:var(--rb-paper);padding:10px 0;font:600 11px/1.3 var(--rb-sans);letter-spacing:var(--rb-tracking-wider);text-transform:uppercase;color:var(--rb-navy);writing-mode:vertical-rl;transform:rotate(180deg)}
.bnd.bnd3{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr) minmax(0,1fr)}
.bnd3 .col.acts{margin-left:24px;padding-left:24px;border-left:1px dashed var(--rb-hairline)}
.bnd3 .col.acts .item{background:transparent;border-style:dashed;font-weight:400;color:var(--rb-ink)}
.fine{margin-top:24px;font-size:13.5px;color:var(--rb-soft);max-width:52em}
/* faq */
.faq{display:grid;border-bottom:1px solid var(--rb-hairline)}
.faq details{scroll-margin-top:90px;border-top:1px solid var(--rb-hairline);padding:22px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;font:600 18px/1.4 var(--rb-sans);color:var(--rb-navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 24px/1 var(--rb-sans);color:var(--rb-soft)}
.faq details[open] summary::after{content:"\2212"}
.faq summary:hover{color:var(--rb-redpen)}
.faq details p{margin-top:12px;max-width:44em;font-size:16px}
/* menu, skip link, focus */
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:44px;padding:0 14px;font:600 12.5px/1 var(--rb-sans);letter-spacing:var(--rb-tracking-wide);text-transform:uppercase;color:var(--rb-navy);border:1px solid var(--rb-hairline);border-radius:var(--rb-radius-sm);background:var(--rb-card)}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{border-color:var(--rb-navy)}
.menu-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:230px;display:grid;padding:8px;background:var(--rb-card);border:1px solid var(--rb-hairline);border-radius:var(--rb-radius-lg);box-shadow:var(--rb-shadow-lg)}
.menu-panel a{border:0;padding:13px 12px;font-size:15px;font-weight:500;border-radius:var(--rb-radius-sm)}
.menu-panel a:hover{background:var(--rb-paper)}
.menu-panel a.on{background:var(--rb-blue-light);font-weight:600}
.skip{position:absolute;left:-9999px;top:12px;z-index:50;background:var(--rb-navy);color:#fff;border:0;padding:10px 16px;border-radius:var(--rb-radius-sm);font-weight:600}
.skip:focus{left:16px;color:#fff}
:focus-visible{outline:2px solid var(--rb-navy);outline-offset:3px;border-radius:2px}
.btn:focus-visible{outline-offset:2px}
.addr{font-size:14px;color:var(--rb-soft);user-select:all}
/* motion */
@media (prefers-reduced-motion:no-preference){.rise{animation:rb-rise var(--rb-dur-slow) var(--rb-ease) both}.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.16s}.rise.d3{animation-delay:.24s}}
@media (max-width:1000px){.bnd,.bnd.bnd3{grid-template-columns:1fr;gap:28px}.bnd3 .col.acts{margin:0;padding:0;border:0}.bnd .line{height:40px}.bnd .line::before{left:0;right:0;top:50%;bottom:auto;border-left:0;border-top:3px double var(--rb-navy)}.bnd .line span{writing-mode:horizontal-tb;transform:none;padding:0 12px}}
@media (max-width:900px){.doc{grid-template-columns:minmax(0,1fr);gap:32px}.toc{position:static;display:flex;flex-wrap:wrap;gap:8px 20px}}
@media (max-width:860px){.mast nav a.hide-sm{display:none}.mast nav{gap:18px}.menu{display:block}.mast .wrap{gap:12px}.foot .cols{grid-template-columns:repeat(2,minmax(0,1fr))}.sec{padding:72px 0}.page-head{padding:56px 0 40px}}
@media (max-width:560px){.wrap{padding:0 20px}.mast nav a:not(.btn){display:none}.exam{grid-template-columns:minmax(0,1fr) auto 30px}.exam .bar{display:none}}
