.obs-hero { display:grid; grid-template-columns:1.3fr 1fr; gap:60px; padding:64px 0 44px; align-items:end; }
.obs-hero h1 { font-size:clamp(40px,5.6vw,78px); line-height:1.02; letter-spacing:-.065em; margin:18px 0 24px; max-width:14ch; }
.obs-deck { color:var(--muted); font-size:19px; max-width:48ch; }
.obs-status { border:1px solid var(--rule); border-top:4px solid #a26b2c; padding:24px; background:var(--field); }
.obs-status h2 { font-size:23px; letter-spacing:-.03em; margin:8px 0; }
.obs-status p { font-size:14px; }
.obs-status .kicker { font-size:11px; }
.obs-links { display:flex; flex-wrap:wrap; gap:16px 28px; padding:20px 0; border-block:1px solid var(--rule); font:12px/1.7 var(--mono); }
.obs-reading { max-width:1000px; font-size:16px; line-height:1.8; padding:30px 0 70px; }
.obs-reading h1 { font-size:clamp(34px,5vw,56px); line-height:1.1; letter-spacing:-.04em; }
.obs-reading h2 { margin:50px 0 18px; font-size:30px; line-height:1.2; letter-spacing:-.035em; }
.obs-reading h3 { margin-top:32px; font-size:22px; letter-spacing:-.025em; }
.obs-reading img { display:block; width:100%; height:auto; border:1px solid var(--rule); }
.obs-reading table { display:block; overflow-x:auto; border-collapse:collapse; font-size:13px; line-height:1.65; max-width:100%; margin:24px 0; }
.obs-reading td,.obs-reading th { padding:12px 16px; text-align:left; vertical-align:top; border:1px solid var(--rule); min-width:140px; }
.obs-reading th { background:var(--field); }
.obs-reading code { overflow-wrap:anywhere; font-size:.9em; }
.obs-reading pre { max-width:100%; overflow-x:auto; padding:18px; border:1px solid var(--rule); background:var(--field); font:12px/1.7 var(--mono); }
.obs-reading li { margin-bottom:10px; }
.obs-reading .toc { font-size:14px; padding:20px 26px; border:1px solid var(--rule); background:var(--field); }
.obs-reading .toc ul { list-style:none; padding-left:0; }
.obs-reading .toc ul ul { display:none; }
.obs-reading .toc li { margin:7px 0; }
.obs-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:24px 0; }
.obs-grid label { display:flex; flex-direction:column; gap:6px; font-size:14px; }
.obs-grid input { min-width:0; padding:10px; color:var(--ink); background:var(--paper); border:1px solid var(--rule-strong); border-radius:0; }
.obs-result { display:block; padding:24px; border:1px solid var(--rule-strong); background:var(--field); margin:24px 0; line-height:1.8; }
.obs-result[data-status='window-fails'],.obs-result[data-status='invalid'] { border-left:5px solid #aa4a32; }
.obs-result[data-status='window-fits'] { border-left:5px solid #587448; }
.obs-tools { display:flex; flex-wrap:wrap; gap:12px; }
.obs-origin { font:12px/1.7 var(--mono); }
.obs-fixtures { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:32px 0; }
.obs-fixtures figure { margin:0; }
.obs-fixtures video { width:100%; aspect-ratio:16/9; background:#eee; }
.obs-fixtures figcaption { font:12px/1.7 var(--mono); color:var(--muted); margin-top:8px; }
.obs-checklist { padding:22px; border:1px solid var(--rule); }
@media(max-width:800px) { .obs-hero { grid-template-columns:1fr; gap:18px; padding-top:36px; } .obs-hero h1 { max-width:16ch; } }
@media(max-width:540px) { .obs-grid,.obs-fixtures { grid-template-columns:1fr; } .obs-reading { font-size:15px; } .obs-reading h2 { font-size:26px; } .obs-status { padding:18px; } }
@media print {
  @page { size:auto; margin:12mm; }
  :root { --paper:#fff; --ink:#000; --muted:#333; --field:#fff; --rule:#aaa; color-scheme:light; }
  .study-strip,.public-header,.video-subnav,.video-footer,.obs-links,.obs-tools,.skip,dialog,.obs-hero,video { display:none!important; }
  .page-shell { padding:0; max-width:none; }
  .obs-reading { padding:0; max-width:none; font-size:10pt; line-height:1.35; }
  .obs-reading h1 { font-size:23pt; }
  .obs-reading h2 { font-size:13pt; margin:16px 0 6px; break-after:avoid; }
  .obs-reading h3 { font-size:12pt; margin-top:12px; }
  .obs-reading p { margin:7px 0; }
  .obs-reading li { margin:4px 0; }
  .obs-reading table { display:table; font-size:9pt; }
  .obs-reading tr,.obs-grid label { break-inside:avoid; }
  .obs-reading td,.obs-reading th { min-width:0; padding:5px; }
  .obs-grid { grid-template-columns:repeat(2,1fr); }
  .obs-grid input { border:1px solid #aaa; padding:4px; }
  .obs-result { padding:12px; }
}
