/* Core 3 approved shared design, production-scoped. */
/* ====================================================================
   Laser Workbench — house system, core-site batch
   Identical tokens, type and grid to Prototypes 01–07. Nothing here is
   new; the three pages in this batch add only the components their own
   jobs need, below the shared block.
   ==================================================================== */
.core3-page{
  --paper:#F6F5F1; --ink:#162321; --text:#263230; --muted:#56625F; --rule:#CCD3CE; --rule-soft:#E1E5E0;
  --teal:#0F4C47; --orange:#E07A3F; --orange-ink:#A24A18;
  --band:#ECEEE8; --form:#FFFFFF;
  --serif:"Source Serif 4","Source Serif Pro","Charter","Bitstream Charter","Cambria",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans","Segoe UI","Helvetica Neue",Arial,system-ui,sans-serif;
  --main:680px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) .core3-page{
    --paper:#141D1B; --ink:#EEF1EC; --text:#D6DCD7; --muted:#9BA7A3; --rule:#3A4744; --rule-soft:#27322F;
    --teal:#86C7BD; --orange:#F0935B; --orange-ink:#F2A574; --band:#1A2422; --form:#1B2624;
  }
}
html[data-theme="dark"] .core3-page{
  --paper:#141D1B; --ink:#EEF1EC; --text:#D6DCD7; --muted:#9BA7A3; --rule:#3A4744; --rule-soft:#27322F;
  --teal:#86C7BD; --orange:#F0935B; --orange-ink:#F2A574; --band:#1A2422; --form:#1B2624;
}
.core3-page *,.core3-page *::before,.core3-page *::after{box-sizing:inherit}
html .core3-page{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 24px);-webkit-text-size-adjust:100%}
.core3-page{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.62;font-optical-sizing:auto;font-kerning:normal;text-rendering:optimizeLegibility}
.core3-page a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--teal) 45%,transparent)}
.core3-page a:hover{text-decoration-color:currentColor}
.core3-page :focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}
.core3-page .skip{position:absolute;left:-9999px}
.core3-page .skip:focus{position:static;display:inline-block;margin:10px 20px;font-family:var(--sans);font-size:14px}

/* ---- header / footer stand-ins, unchanged from Prototypes 03–07 ---- */
.core3-page .site-head{border-bottom:1px solid var(--rule-soft)}
.core3-page .site-head__in{max-width:1232px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;font-family:var(--sans)}
.core3-page .site-head__mark{font-weight:600;color:var(--teal);text-decoration:none;font-size:17px;letter-spacing:-.005em}
.core3-page .site-head__mark span{font-weight:400}
.core3-page .site-head__menu{font-size:14px;color:var(--ink);text-decoration:none}
.core3-page .site-foot{border-top:1px solid var(--rule-soft);font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted);margin-top:64px}
.core3-page .site-foot__in{max-width:1232px;margin:0 auto;padding:36px 20px 48px;display:grid;gap:28px;grid-template-columns:1fr}
.core3-page .site-foot h2{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);margin:0 0 8px}
.core3-page .site-foot ul{list-style:none;margin:0;padding:0}
.core3-page .site-foot li{margin:0 0 5px}
.core3-page .site-foot a{color:var(--muted)}
.core3-page .site-foot__brand strong{display:block;color:var(--teal);font-weight:600;font-size:16px;margin-bottom:4px}
.core3-page .site-foot__legal{grid-column:1/-1;border-top:1px solid var(--rule-soft);padding-top:16px;font-size:13px}
@media (min-width:720px){.core3-page .site-foot__in{grid-template-columns:2fr 1fr 1fr 1fr}}

/* ---- grid ---- */
.core3-page .feature{display:grid;grid-template-columns:[full-start] minmax(20px,1fr) [main-start] minmax(0,var(--main)) [main-end] minmax(20px,1fr) [full-end]}
.core3-page .feature > *{grid-column:main}

/* ---- opening ---- */
.core3-page .opening{padding:40px 0 4px}
.core3-page .rubric{font-style:italic;font-size:17px;color:var(--orange-ink);margin:0 0 12px}
.core3-page h1{font-weight:700;font-variation-settings:"opsz" 60;color:var(--ink);font-size:clamp(38px,8.6vw,70px);line-height:1.03;letter-spacing:-.022em;margin:0 0 20px;text-wrap:balance}
.core3-page .standfirst{font-size:clamp(20px,4.4vw,24px);line-height:1.4;color:var(--ink);margin:0 0 20px;max-width:42ch}
.core3-page .byline{font-family:var(--sans);font-size:14px;line-height:1.55;color:var(--muted);margin:0;padding-top:12px;border-top:1px solid var(--rule);max-width:64ch}
.core3-page .byline strong{color:var(--ink);font-weight:600}
@media (min-width:1100px){
  .core3-page .opening,.core3-page .body,.core3-page .wide{grid-column:full;width:1100px;justify-self:center}
  .core3-page .opening{padding-top:72px}
  .core3-page .opening .lead{display:grid;grid-template-columns:1fr 340px;column-gap:56px;align-items:start}
  .core3-page .opening .byline{border-top:1px solid var(--rule);padding-top:10px}
  .core3-page .body > *{max-width:var(--main)}
}

/* ---- body ---- */
.core3-page .body{padding-top:26px}
.core3-page .body p{margin:0 0 1.05em}
.core3-page h2{font-weight:700;color:var(--ink);font-size:clamp(25px,5.4vw,33px);line-height:1.14;letter-spacing:-.012em;margin:2em 0 .5em;font-variation-settings:"opsz" 40;text-wrap:balance}
.core3-page h3{font-weight:700;color:var(--ink);font-size:clamp(20px,4.2vw,23px);line-height:1.2;margin:1.8em 0 .35em;letter-spacing:-.008em}
.core3-page .opener{font-size:clamp(19px,3.8vw,21px);line-height:1.45;color:var(--ink)}
.core3-page sup.ref{font-family:var(--sans);font-size:.62em;line-height:0;font-weight:500;margin-left:.08em;vertical-align:.62em}
.core3-page sup.ref a{text-decoration:none;color:var(--teal);padding:0 .08em}

/* ---- sources, shared ---- */
.core3-page .sources{margin-top:56px;padding-top:18px;border-top:1.5px solid var(--ink)}
.core3-page .sources h2{font-size:22px;margin:0 0 6px}
.core3-page .sources__note{font-family:var(--sans);font-size:13.5px;color:var(--muted);margin:0 0 14px}
.core3-page .notes{list-style:none;counter-reset:n;margin:0;padding:0;font-family:var(--sans);font-size:14.5px;line-height:1.5}
.core3-page .notes li{counter-increment:n;position:relative;padding:0 0 12px 34px}
.core3-page .notes li::before{content:counter(n);position:absolute;left:0;top:0;width:24px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--teal)}
.core3-page .notes li:target{background:color-mix(in srgb,var(--orange) 12%,transparent)}
.core3-page .notes .kind{color:var(--muted)}
.core3-page .colophon{font-family:var(--sans);font-size:14px;color:var(--muted);margin:20px 0 0}

@media (min-width:720px){.core3-page{font-size:19px}}

/* ---- print: drop the furniture, keep the article ---- */
.core3-page @media print{
  .site-head,.site-foot,.skip{display:none!important}
  .feature{display:block}
  .wide{width:auto}
  body{font-size:10.5pt;background:#fff;color:#000}
  h1{font-size:24pt}
  h2{font-size:14pt;margin:16pt 0 4pt}
  h3{font-size:12pt}
  a{color:#000;text-decoration:none}
  .notes a[href]::after{content:" (" attr(href) ")";font-size:8pt;word-break:break-all}
  h2,h3{break-after:avoid}
  .body p,.notes li,.rt__item,.vocab tr{break-inside:avoid}
  p{orphans:2;widows:2}
  @page{size:A4;margin:14mm}
}

/* ============ Home: the route ============ */
.core3-page .arm{margin:2.6em 0 0}
.core3-page .arm__h{font-weight:700;color:var(--ink);font-size:clamp(23px,5vw,29px);line-height:1.15;letter-spacing:-.012em;margin:0 0 .15em}
.core3-page .arm__s{font-family:var(--sans);font-size:14.5px;color:var(--muted);margin:0 0 .2em}
.core3-page .rt{list-style:none;counter-reset:stop;margin:1em 0 0;padding:0}
.core3-page .rt__item{counter-increment:stop;padding:1.5em 0;border-top:1px solid var(--rule-soft)}
.core3-page .rt li:first-child{border-top:1.5px solid var(--ink)}
.core3-page .rt li:last-child{border-bottom:1px solid var(--rule-soft)}
.core3-page .rt__h{display:flex;align-items:baseline;gap:.6em;margin:0 0 .4em}
.core3-page .rt__h::before{content:counter(stop);font-family:var(--sans);font-weight:600;font-size:13px;color:var(--orange-ink);flex:0 0 auto;min-width:1.1em;font-variant-numeric:tabular-nums}
.core3-page .rt__n{font-weight:700;font-size:clamp(20px,4.4vw,25px);line-height:1.2;color:var(--ink);letter-spacing:-.01em;margin:0;font-variation-settings:"opsz" 32}
.core3-page .rt__n a{color:inherit;text-decoration-color:color-mix(in srgb,var(--teal) 42%,transparent)}
.core3-page .rt__n a:hover{color:var(--teal)}
.core3-page .rt__item p{margin:0 0 .5em;padding-left:1.7em}
.core3-page .rt__item p:last-child{margin-bottom:0}
.core3-page .rt__give{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted)}
.core3-page .rt__give b{color:var(--orange-ink);font-weight:600}
@media (max-width:460px){.core3-page .rt__item p{padding-left:0}}

/* ============ Home: the builder, given proper room ============ */
.core3-page .tool{grid-column:full;background:var(--band);margin:3em 0 0;padding:38px 20px 34px}
.core3-page .tool__in{max-width:1040px;margin:0 auto}
@media (max-width:859px){.core3-page .tool__in{max-width:var(--main)}}
.core3-page .tool__h{font-weight:700;color:var(--ink);font-size:clamp(24px,5.2vw,31px);line-height:1.15;letter-spacing:-.014em;margin:0 0 .4em;max-width:20ch}
.core3-page .tool__grid{display:grid;gap:26px}
@media (min-width:860px){.core3-page .tool__grid{grid-template-columns:1fr 380px;column-gap:52px;align-items:start}}
.core3-page .tool__grid p{margin:0 0 .9em;max-width:52ch}
.core3-page .tool__go{font-family:var(--sans);font-size:16px;font-weight:600;margin:.4em 0 0}
.core3-page .out{background:var(--form);border:1px solid var(--rule);padding:20px 22px 22px}
.core3-page .out__k{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;padding-bottom:9px;border-bottom:1.5px solid var(--ink)}
.core3-page .bl{padding:9px 0;border-bottom:1px solid var(--rule-soft)}
.core3-page .bl b{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--teal);margin-bottom:2px}
.core3-page .bl span{font-size:16px;line-height:1.45;color:var(--ink)}
.core3-page .out__k--2{margin:16px 0 0;padding-bottom:0;border-bottom:0;border-top:1.5px solid var(--ink);padding-top:10px}
.core3-page .ask{padding:4px 0 0}
.core3-page .ask b{display:block;font-size:16px;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:2px}
.core3-page .ask span{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--muted)}

/* ============ Home: what this is, and isn't ============ */
.core3-page .plain{margin-top:2.8em;padding-top:20px;border-top:1.5px solid var(--ink)}
.core3-page .plain h2{margin-top:0;font-size:clamp(23px,4.8vw,28px)}
.core3-page .plain .lede{font-size:clamp(19px,3.8vw,21px);line-height:1.4;color:var(--ink);margin:0 0 .8em}

/* ============ About: the shelf ============ */
.core3-page .shelf{list-style:none;margin:1em 0 0;padding:0;font-family:var(--sans);font-size:15.5px;line-height:1.5}
.core3-page .shelf li{padding:.7em 0;border-bottom:1px solid var(--rule-soft);display:grid;gap:2px}
.core3-page .shelf li:first-child{border-top:1px solid var(--rule-soft)}
.core3-page .shelf a{font-weight:600}
.core3-page .shelf span{color:var(--muted);font-size:14px}

/* ============ About: the limits ============ */
.core3-page .limit{margin:1.3em 0 1.5em;padding-left:20px;border-left:2px solid var(--orange)}
.core3-page .limit p{margin:0 0 .7em}
.core3-page .limit p:last-child{margin:0}
.core3-page .limit b{color:var(--ink)}

.core3-page .standards{list-style:none;margin:1em 0 0;padding:0;font-family:var(--sans);font-size:15.5px}
.core3-page .standards li{padding:.45em 0;border-bottom:1px solid var(--rule-soft)}
.core3-page .standards li:first-child{border-top:1px solid var(--rule-soft)}

/* ============ Compare: the worked field ============ */
.core3-page .case{grid-column:full;width:min(100% - 32px,1060px);justify-self:center;margin:2em 0 1.4em}
.core3-page .case table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14.5px;line-height:1.5;text-align:left}
.core3-page .case th{font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:0 14px 7px 0;vertical-align:bottom}
.core3-page .case td{border-bottom:1px solid var(--rule-soft);padding:13px 14px 13px 0;vertical-align:top;color:var(--text)}
.core3-page .case td:first-child{color:var(--ink);font-weight:600}
.core3-page .case .q{color:var(--ink)}
.core3-page .case .where{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.core3-page .case caption{caption-side:bottom;font-size:13.5px;line-height:1.55;color:var(--muted);text-align:left;padding-top:12px}
@media (max-width:719px){
  /* flex, not block: display:block on a table drops caption-side:bottom */
.core3-page .case table{display:flex;flex-direction:column}
  .core3-page .case thead{display:none}
  .core3-page .case tbody,.core3-page .case tr{display:block}
  .core3-page .case caption{order:99}
  .core3-page .case tr{border-bottom:1px solid var(--rule);padding:12px 0 4px}
  .core3-page .case td{display:block;border:0;padding:0 0 9px}
  .core3-page .case td:first-child{font-size:19px;font-family:var(--serif)}
  .core3-page .case td::before{content:attr(data-h);display:block;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .core3-page .case td:first-child::before{content:none}
}

/* ============ Compare: the vocabulary ============ */
.core3-page .vocab{grid-column:full;width:min(100% - 32px,1060px);justify-self:center;margin:1.6em 0 1.2em}
.core3-page .vocab table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5;text-align:left}
.core3-page .vocab th{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:0 16px 7px 0;vertical-align:bottom}
.core3-page .vocab td{border-bottom:1px solid var(--rule-soft);padding:13px 16px 13px 0;vertical-align:top}
.core3-page .vocab td:first-child{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--teal);white-space:nowrap}
.core3-page .vocab td.never{color:var(--orange-ink)}
.core3-page .vocab caption{caption-side:bottom;font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--muted);text-align:left;padding-top:12px}
@media (max-width:719px){
  .core3-page .vocab table{display:flex;flex-direction:column}
  .core3-page .vocab thead{display:none}
  .core3-page .vocab tbody,.core3-page .vocab tr{display:block}
  .core3-page .vocab caption{order:99}
  .core3-page .vocab tr{border-bottom:1px solid var(--rule);padding:11px 0 4px}
  .core3-page .vocab td{display:block;border:0;padding:0 0 7px}
  .core3-page .vocab td:first-child{font-size:16px}
}

/* ============ Compare: the correction notice ============ */
.core3-page .corr{margin:1.6em 0;padding:16px 18px;background:color-mix(in srgb,var(--orange) 10%,transparent);border-left:3px solid var(--orange)}
.core3-page .corr p{margin:0 0 .6em;font-size:16.5px;line-height:1.55}
.core3-page .corr p:last-child{margin:0}
.core3-page .corr b{color:var(--ink)}
.core3-page .corr__k{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-ink);display:block;margin-bottom:4px}

/* Production integration adaptations: retain visible links and map print chrome classes. */
.core3-page a{text-decoration-line:underline}
@media print{.site-header,.site-footer,.lw-consent{display:none!important}}
