.lab-hero{max-width:900px;margin:30px 0}
.lab-hero h1{font-size:clamp(28px,4vw,48px);line-height:1.15;overflow-wrap:anywhere}
.lab-hero p{line-height:1.7}
.lab-eyebrow{color:var(--accent);font-size:13px;letter-spacing:.06em}
.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.lab-card,.lab-brief,.lab-pane{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:24px;color:var(--text);min-width:0}
.lab-card{display:flex;flex-direction:column;gap:12px}
.lab-card h2{font-size:23px;line-height:1.35;margin:0}
.lab-card h2 a{color:var(--text)}
.lab-card p{margin:0;line-height:1.65}
.lab-card-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:15px}
.lab-badge{color:var(--accent);font-size:14px}
.lab-button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--bg)!important;border:1px solid var(--accent);border-radius:0;padding:11px 16px;font:12px/1.6 var(--mono);text-transform:uppercase;cursor:pointer;text-decoration:none;min-height:44px}
.lab-secondary{background:var(--surface);color:var(--text)!important;border-color:var(--line)}
.lab-button:disabled{opacity:.55;cursor:wait}
.lab-button:hover{background:#e5ff8b;border-color:#e5ff8b;color:var(--bg)!important}
.lab-progress{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.lab-progress progress{accent-color:var(--accent);width:240px;max-width:100%}
.lab-brief{margin:22px 0}
.lab-brief h2,.lab-pane h2{font-size:19px;margin:0 0 12px}
.lab-brief li{padding:4px 0;line-height:1.6}
.lab-brief details{border-top:1px solid var(--line);padding:12px 0 0;margin-top:12px}
.lab-brief summary{cursor:pointer;color:var(--accent);min-height:30px}
.lab-brief p{line-height:1.65;overflow-wrap:anywhere}
.lab-workspace{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.lab-pane{padding:18px}
.lab-pane h2{font:14px ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.lab-muted{font-size:12px;color:var(--muted);line-height:1.6}
.lab-editor{position:relative;height:400px;background:var(--bg);border:1px solid var(--line);border-radius:0;overflow:hidden}
.lab-editor pre,.lab-editor textarea{box-sizing:border-box;position:absolute;inset:0;width:100%;height:100%;margin:0!important;padding:16px!important;border:0!important;font:14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace!important;white-space:pre!important;tab-size:2;letter-spacing:normal;text-align:left;background:transparent!important;border-radius:0!important}
.lab-editor pre{pointer-events:none;color:var(--text);overflow:hidden}
.lab-editor code{font:inherit;background:transparent;padding:0}
.lab-editor textarea{resize:none;color:transparent!important;caret-color:var(--accent);-webkit-text-fill-color:transparent;overflow:auto}
.lab-editor textarea::selection{background:#d4ff3540}
.lab-editor:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.lab-token-comment{color:var(--muted)}
.lab-token-key{color:#8ddcfc}
.lab-token-path{color:#e7c685}
.lab-token-value{color:var(--accent)}
.lab-output{height:400px;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:0;padding:16px;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);margin:0}
.lab-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.lab-command{display:flex;gap:10px;margin-top:8px}
.lab-command input,.lab-report input{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:0;padding:12px;font:inherit}
.lab-command input:focus,.lab-report input:focus{outline:2px solid var(--accent);outline-offset:2px}
.lab-report{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}
.lab-report label{display:grid;gap:8px;font-size:14px}
.lab-checks{list-style:none;padding:0}
.lab-checks li{border-bottom:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}
.lab-pass{color:var(--accent)}
.lab-fail{color:#ffb4a8}
.lab-stage{padding:16px;border-left:3px solid var(--accent);background:var(--surface);color:var(--text)}
.lab-risk{display:grid;gap:12px;margin-top:22px}
.lab-risk meter{width:100%;height:16px}
.lab-button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#lab-status{color:var(--muted);min-height:24px}
@media(max-width:800px){.lab-grid,.lab-workspace,.lab-report{grid-template-columns:1fr}
.lab-pane,.lab-card,.lab-brief{padding:16px}
.lab-editor{height:340px}
.lab-output{height:300px}
.lab-command{flex-wrap:wrap}
.lab-command input{flex:1 1 180px}
}
@media(forced-colors:active){.lab-editor textarea{-webkit-text-fill-color:CanvasText;color:CanvasText!important}
.lab-editor pre{visibility:hidden}
}

/* Keep form controls readable under the site's shared form rules. */
.page-content .lab-button{background:var(--accent);border-color:var(--accent);color:var(--bg)!important}
.page-content .lab-button.lab-secondary{background:var(--surface);border-color:var(--line);color:var(--accent)!important}
.page-content .lab-output{background:var(--bg);color:var(--text)}
.page-content .lab-editor pre{background:transparent;border:0}
.page-content .lab-editor code{color:var(--text)}

.page-content .lab-output{white-space:pre-wrap;padding:16px;font-size:13px;overflow-wrap:anywhere}

.email-glossary{display:grid;grid-template-columns:180px 1fr;gap:16px}
.email-glossary dt{font-family:ui-monospace,monospace;color:#8ddcfc;overflow-wrap:anywhere}
.email-glossary dd{margin:0;line-height:1.7}
.page-content .email-raw{height:560px;margin-top:20px}
.page-content .email-case{height:auto;max-height:330px;margin:15px 0}
.email-fieldset{min-width:0}
.email-fieldset legend{padding:0 10px;font-size:20px;font-weight:600}
.email-answers{grid-template-columns:1fr}
.email-answers label{line-height:1.6}
.page-content .email-answers select{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--text);font:inherit}
.email-answers input{min-height:48px}
.email-answers select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.page-content [data-header-filter][aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}
#email-form,#email-theory,#email-evidence,#email-cases,#email-checklist{scroll-margin-top:110px}
@media(max-width:650px){.email-glossary{grid-template-columns:1fr;gap:6px}
.email-glossary dd{margin-bottom:14px}
.page-content .email-raw{height:440px}
}

.email-selection{display:none}
@media(max-width:650px){.email-selection{display:block;color:var(--muted);font-size:14px;line-height:1.6;font-weight:400;overflow-wrap:anywhere}
.email-selection:empty{display:none}
}


/* Public catalogue shares the simulator's visual language. */
.relax-section{margin-block:64px;scroll-margin-top:110px}
.relax-section__heading{max-width:760px;margin-bottom:28px}
.relax-section__heading h2{font-size:clamp(2rem,1.5rem + 2vw,3rem);letter-spacing:-.045em;margin:12px 0}
.relax-section__heading>p:last-child{color:var(--muted);line-height:1.7}
.relax-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}
.relax-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--surface)}
.relax-card__image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#101820;border-bottom:1px solid var(--line)}
.relax-card__body{display:flex;flex-direction:column;flex:1;gap:16px;padding:24px}
.relax-card__body .lab-eyebrow{margin:0}
.relax-card__body h3{margin:0;font-size:24px;line-height:1.3;overflow-wrap:anywhere}
.relax-card__body>p:not(.lab-eyebrow){margin:0;color:var(--muted);line-height:1.7}
.relax-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:auto;padding-top:12px}
.relax-card__source{color:var(--muted);font:12px/1.7 var(--mono)}
.relax-section a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

.sandbox-landing .lab-catalog{scroll-margin-top:110px}

.sandbox-landing .lab-card h3{font-size:23px;line-height:1.35;margin:0;overflow-wrap:anywhere}

.sandbox-landing .lab-card p{margin:0}

.sandbox-landing .lab-topic{color:var(--muted);font-size:14px}

.sandbox-landing .lab-button{max-width:100%;box-sizing:border-box;text-align:center;white-space:normal}

.sandbox-landing .lab-card-bottom{align-items:flex-start;flex-direction:column}

.sandbox-landing :is(a,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}

.lab-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}


/* Public catalogue follows the visual system of the main page. */
.sandbox-landing .lab-hero{position:relative;max-width:none;margin:32px 0 48px;padding:clamp(32px,6vw,72px);overflow:hidden;background:var(--surface);border:1px solid var(--line)}


.sandbox-landing .lab-hero>*{position:relative}
.sandbox-landing .lab-hero h1{max-width:860px;font-size:clamp(34px,5vw,62px);letter-spacing:-.045em}
.sandbox-landing .lab-hero>p:not(.lab-eyebrow){max-width:720px;margin-top:24px;font-size:17px}
.sandbox-landing .lab-eyebrow{color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}

.sandbox-landing .lab-brief{margin:28px 0;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:0}
.sandbox-landing .lab-brief h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.04em}
.sandbox-landing .lab-brief p{max-width:900px}
.sandbox-landing .lab-brief details{border-color:var(--line)}
.sandbox-landing .lab-brief summary{color:var(--text);font-weight:550}

.sandbox-landing .lab-catalog{margin-block:64px}
.sandbox-landing .lab-catalog>h2{font-size:clamp(28px,3.1vw,44px);letter-spacing:-.045em;margin-bottom:32px}
.sandbox-landing .lab-grid{gap:16px}
.sandbox-landing .lab-card{position:relative;gap:15px;padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:0;transition:background .2s ease,border-color .2s ease}
.sandbox-landing .lab-card:hover{background:var(--surface);border-color:var(--accent)}
.sandbox-landing .lab-card h3{font-size:25px;letter-spacing:-.035em}
.sandbox-landing .lab-card p{color:var(--muted)}
.sandbox-landing .lab-topic{color:var(--accent);font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.sandbox-landing .lab-card-bottom{align-items:flex-start;gap:20px;padding-top:22px;border-top:1px solid var(--line)}
.sandbox-landing .lab-badge{color:var(--muted);font-size:12px}
.sandbox-landing .lab-button{min-height:48px;padding:12px 16px;border:1px solid var(--accent);border-radius:0;background:var(--accent);color:var(--bg)!important;font-size:13px}
.sandbox-landing .lab-button:hover{filter:none;background:#e5ff8b;color:var(--bg)!important}
.sandbox-landing .lab-secondary{background:transparent;color:var(--accent)!important;border-color:var(--line)}
.sandbox-landing .lab-secondary:hover{background:var(--surface);color:var(--text)!important}

@media(max-width:800px){.sandbox-landing .lab-hero{padding:32px 24px;margin-bottom:36px}
.sandbox-landing .lab-brief,.sandbox-landing .lab-card{padding:24px}
.sandbox-landing .lab-catalog{margin-block:48px}
.sandbox-landing .lab-card{min-height:0}
}

@media(prefers-reduced-motion:reduce){.sandbox-landing .lab-card{transition:none}
}


/* The same surfaces, type and controls as the home page. */
.lab-hero { max-width:1000px; margin:0 0 40px }

.lab-hero h1 { font-size:clamp(32px,4.5vw,58px); font-weight:750; text-transform:uppercase; margin-block:16px 24px }

.lab-hero > a { color:var(--muted); font:12px/1.7 var(--mono) }

.lab-hero > p:not(.lab-eyebrow):not(.lab-badge) { max-width:850px; color:var(--muted) }

.lab-eyebrow { font-family:var(--mono); text-transform:uppercase; margin-top:24px }

.lab-badge { font:12px/1.8 var(--mono) }

.lab-brief { padding:32px; margin-block:24px }

.page-content .lab-brief h2 { font-size:clamp(22px,2.5vw,30px); text-transform:uppercase; margin:0 0 20px }

.lab-pane { padding:24px }

.page-content .lab-pane h2 { font:14px/1.7 var(--mono); margin:0 0 12px }

.lab-workspace { gap:24px; grid-template-columns:repeat(2,minmax(0,1fr)) }

.lab-muted,.lab-checks { color:var(--muted) }

.lab-brief summary { padding-block:8px; min-height:44px; font-weight:500 }

.lab-editor,.lab-output { border-color:var(--line); background:var(--bg) }

.lab-editor pre,.lab-editor textarea { font-family:var(--mono)!important }

.lab-output { font-family:var(--mono) }

.page-content .lab-button { font-family:var(--mono); border-radius:0; min-height:48px; max-width:100%; white-space:normal; overflow-wrap:anywhere }

.page-content .lab-button:hover { background:#e5ff8b; border-color:#e5ff8b; color:var(--bg)!important }

.page-content .lab-button.lab-secondary { background:transparent; color:var(--accent)!important; border-color:var(--line) }

.page-content .lab-button.lab-secondary:hover { background:var(--accent); border-color:var(--accent); color:var(--bg)!important }

.lab-button:disabled:hover { background:var(--accent); border-color:var(--accent) }

.page-content [data-header-filter][aria-pressed=true] { color:var(--accent)!important; border-color:var(--accent); box-shadow:inset 0 -2px var(--accent) }

.lab-card h2 a:hover { color:var(--accent) }

.lab-card-bottom { border-top:1px solid var(--line) }

.lab-report label,.email-fieldset legend { color:var(--text) }

.email-glossary dt { color:var(--accent); font-family:var(--mono) }

.lab-stage { font-family:var(--mono); font-size:14px }

#lab-status,#email-status { color:var(--muted); overflow-wrap:anywhere }

@media(max-width:800px) {
  .lab-workspace { grid-template-columns:minmax(0,1fr); gap:20px }

  .lab-brief,.lab-pane,.lab-card { padding:20px }

  .lab-hero h1 { font-size:clamp(30px,8vw,42px) }

  .lab-actions .lab-button { flex:1 1 180px }

}
