/* open.com.im — the almanac sheet.
   One stylesheet, hand written: no framework, no webfont service, no font
   file. Requests to another host, total: 1 — Google Analytics 4, property
   G-5LH2S5YD0V, this almanac's own id, counting page views. An almanac that
   spends three sheets counting other people's registers should be willing to
   say what it counts itself, so that is the figure, and the disclosure page
   carries the long version. Measured with the tag refused, 2026-09-23: 1 h1,
   20 links, 4,669 characters, every table and every SVG chart drawn, this
   sheet applied, window.gtag undefined. Requests needed to read this site: 0.
   Class convention for this site: o_ prefix, snake_case, single underscore for
   parts (o_sheet_row), trailing -alt for variants (o_fig-alt). Nothing here is
   shared with any other site and nothing is copied from labs.llc.
   Motion: this site has none. No keyframes, no transitions, no smooth scroll. */

/* ---------- 1. ground ---------- */
:root{
  --o_pap:#f7f5f0; --o_card:#fffdf9; --o_ink:#16191d; --o_ink2:#474d54;
  --o_rule:#d9d3c5; --o_acc:#1b574e; --o_hot:#8a3b1e; --o_wash:#eeebe2;
  --o_r1:#1b574e; --o_r2:#47857a; --o_r3:#86b3a6; --o_r4:#c3d6d0; --o_r5:#8a3b1e;
  --o_onr1:#ffffff; --o_stripink:#f2efe8;
  --o_grot:"Helvetica Neue",Helvetica,Arial,"Liberation Sans","Nimbus Sans",sans-serif;
  --o_fig:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"DejaVu Sans Mono",monospace;
  --o_meas:74rem; --o_wide:104rem;
}
@media (prefers-color-scheme:dark){
  :root{
    --o_pap:#14161a; --o_card:#1b1f24; --o_ink:#edebe6; --o_ink2:#a9b0b4;
    --o_rule:#333a40; --o_acc:#79c3b1; --o_hot:#e2926b; --o_wash:#1f242a;
    --o_r1:#79c3b1; --o_r2:#4e9486; --o_r3:#37685f; --o_r4:#27423d; --o_r5:#e2926b;
    --o_onr1:#0d1114; --o_stripink:#f2efe8;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--o_pap); color:var(--o_ink);
  font:400 1.0625rem/1.62 var(--o_grot);
  font-variant-numeric:tabular-nums lining-nums;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{transition:none !important} }

/* ---------- 2. rhythm ---------- */
.o_measure{max-width:var(--o_meas); margin:0 auto; padding:0 1rem}
.o_canvas{max-width:var(--o_wide); margin:0 auto; padding:0 1rem}
.o_skip{position:absolute; left:-9999px; top:0; background:var(--o_ink); color:var(--o_pap); padding:.6rem 1rem; z-index:9}
.o_skip:focus{left:0}

/* ---------- 3. type scale (13 / 15 / 17 / 21 / 27 / 38 / 56 / 78) ---------- */
.o_t13{font-size:.8125rem} .o_t15{font-size:.9375rem} .o_t21{font-size:1.3125rem}
h1,h2,h3,h4{font-weight:700; letter-spacing:-.022em; line-height:1.1; margin:0}
h1{font-size:clamp(2.375rem,5.4vw,4.875rem)}
h2{font-size:clamp(1.6875rem,3vw,2.375rem); margin-top:3.2rem}
h3{font-size:1.3125rem; margin-top:2.2rem; letter-spacing:-.012em}
p{margin:0 0 1.15rem}
a{color:var(--o_acc); text-underline-offset:.16em; text-decoration-thickness:.07em}
a:hover{color:var(--o_hot)}
:focus-visible{outline:3px solid var(--o_hot); outline-offset:2px; border-radius:1px}
strong{font-weight:700}
abbr{text-decoration:none; border-bottom:1px dotted var(--o_ink2)}

/* ---------- 4. masthead + datum strip ---------- */
.o_mast{border-bottom:1px solid var(--o_rule); background:var(--o_card)}
.o_mast_in{display:flex; flex-wrap:wrap; gap:.65rem 1.4rem; align-items:baseline; padding:.95rem 1rem}
.o_mast_name{font:700 1.0625rem/1 var(--o_grot); letter-spacing:.1em; text-transform:uppercase; color:var(--o_ink); text-decoration:none}
.o_mast_name:hover{color:var(--o_hot)}
.o_mast_tag{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.06em; color:var(--o_ink2); text-transform:uppercase}
.o_mast_nav{margin-left:auto; display:flex; gap:1.1rem; font-size:.9375rem}
.o_mast_nav a{color:var(--o_ink2); text-decoration:none}
.o_mast_nav a:hover,.o_mast_nav a[aria-current]{color:var(--o_hot); text-decoration:underline}

.o_strip{background:#16191d; color:var(--o_stripink); font-family:var(--o_fig); font-size:.75rem; letter-spacing:.045em}
.o_strip_in{display:flex; flex-wrap:wrap; gap:.3rem 1.6rem; padding:.55rem 1rem; text-transform:uppercase}
.o_strip b{font-weight:400; color:#b9c8c3}
@media (prefers-color-scheme:dark){ .o_strip{background:#0b0d10} }

/* ---------- 5. the opening plate ---------- */
.o_plate{padding:3.4rem 0 2.2rem; border-bottom:1px solid var(--o_rule)}
.o_kicker{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--o_hot); margin:0 0 1rem}
.o_lede{font-size:clamp(1.125rem,1.7vw,1.3125rem); line-height:1.52; color:var(--o_ink2); max-width:56ch; margin-top:1.4rem}
.o_byline{font-family:var(--o_fig); font-size:.8125rem; color:var(--o_ink2); margin-top:1.6rem; letter-spacing:.02em}

/* ---------- 6. the body measure ---------- */
.o_body{padding-top:2.4rem; padding-bottom:1rem}
.o_body p,.o_body ul,.o_body ol{max-width:62ch}
.o_body h2,.o_body h3{max-width:26ch}
.o_body ul{padding-left:1.15rem; margin:0 0 1.15rem}
.o_body li{margin-bottom:.5rem}
.o_pull{border-left:3px solid var(--o_acc); padding:.15rem 0 .15rem 1.1rem; margin:1.9rem 0; font-size:1.3125rem; line-height:1.44; max-width:46ch; color:var(--o_ink)}
.o_pull cite{display:block; font:400 .8125rem/1.5 var(--o_fig); font-style:normal; color:var(--o_ink2); margin-top:.6rem}

/* ---------- 7. figure plates (full bleed on the wide canvas) ---------- */
.o_fig{margin:2.6rem 0; border-top:2px solid var(--o_ink); border-bottom:1px solid var(--o_rule); padding:1rem 0 1.1rem; background:var(--o_card)}
.o_fig_no{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--o_hot)}
.o_fig_ttl{font-size:1.3125rem; font-weight:700; letter-spacing:-.012em; margin:.3rem 0 .15rem}
.o_fig_sub{font-family:var(--o_fig); font-size:.8125rem; color:var(--o_ink2); margin:0 0 1rem; max-width:80ch; line-height:1.55}
.o_fig svg{display:block; width:100%; height:auto}
.o_fig_note{font-family:var(--o_fig); font-size:.75rem; color:var(--o_ink2); margin:.85rem 0 0; line-height:1.6; max-width:92ch}
.o_svg_lab{font:400 12px var(--o_fig); fill:var(--o_ink2)}
.o_svg_num{font:400 12px var(--o_fig); fill:var(--o_ink); font-variant-numeric:tabular-nums}
.o_svg_big{font:700 15px var(--o_grot); fill:var(--o_ink)}
.o_svg_on{font:400 12px var(--o_fig); fill:var(--o_onr1); font-variant-numeric:tabular-nums}
.o_svg_rule{stroke:var(--o_rule); stroke-width:1}

/* ---------- 8. shots ---------- */
.o_shot{margin:2.6rem 0}
.o_shot img{display:block; width:100%; height:auto; border:1px solid var(--o_rule); background:var(--o_card)}
.o_shot figcaption{font-family:var(--o_fig); font-size:.8125rem; line-height:1.6; color:var(--o_ink2); margin-top:.7rem; max-width:88ch}

/* ---------- 9. sheets (tables) ---------- */
.o_sheet_wrap{overflow-x:auto; margin:2rem 0; border-top:2px solid var(--o_ink); border-bottom:1px solid var(--o_rule)}
.o_sheet{border-collapse:collapse; width:100%; font-family:var(--o_fig); font-size:.8125rem}
.o_sheet caption{caption-side:top; text-align:left; font-family:var(--o_fig); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--o_hot); padding:.75rem 0 .6rem}
.o_sheet th,.o_sheet td{padding:.5rem .85rem; text-align:left; border-bottom:1px solid var(--o_rule); vertical-align:top}
.o_sheet thead th{font-weight:700; color:var(--o_ink); border-bottom:1px solid var(--o_ink); white-space:nowrap}
.o_sheet tbody tr:last-child td{border-bottom:0}
.o_sheet .o_num{text-align:right; white-space:nowrap}
.o_sheet tbody tr:nth-child(even){background:var(--o_wash)}
.o_sheet_note{font-family:var(--o_fig); font-size:.75rem; color:var(--o_ink2); margin:.7rem 0 0}

/* ---------- 10. figure blocks (key numbers) ---------- */
.o_keys{display:grid; grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr)); gap:1px; background:var(--o_rule); border:1px solid var(--o_rule); margin:2.2rem 0}
.o_keys_cell{background:var(--o_card); padding:1rem 1.05rem}
.o_keys_k{font-family:var(--o_fig); font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--o_ink2); margin:0}
.o_keys_v{font:700 1.875rem/1.05 var(--o_grot); font-variant-numeric:tabular-nums; letter-spacing:-.03em; margin:.45rem 0 .25rem}
.o_keys_n{font-family:var(--o_fig); font-size:.75rem; color:var(--o_ink2); margin:0; line-height:1.5}

/* ---------- 11. the fault box (every post names one) ---------- */
.o_fault{border:2px solid var(--o_hot); background:var(--o_card); padding:1.2rem 1.3rem; margin:2.6rem 0; max-width:66ch}
.o_fault_h{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--o_hot); margin:0 0 .6rem}
.o_fault p:last-child{margin-bottom:0}

/* ---------- 12. the contents rows (front page + desk index) ---------- */
.o_row{display:grid; grid-template-columns:7.5rem 1fr; gap:.5rem 1.6rem; border-top:1px solid var(--o_rule); padding:1.5rem 0}
.o_row:last-of-type{border-bottom:1px solid var(--o_rule)}
.o_row_no{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--o_ink2); padding-top:.5rem}
.o_row_ttl{font-size:clamp(1.3125rem,2.2vw,1.6875rem); font-weight:700; letter-spacing:-.02em; margin:0 0 .5rem}
.o_row_ttl a{color:var(--o_ink); text-decoration:none}
.o_row_ttl a:hover{color:var(--o_hot); text-decoration:underline}
.o_row_sum{max-width:62ch; margin:0 0 .8rem; color:var(--o_ink2)}
.o_row_figs{display:flex; flex-wrap:wrap; gap:.35rem .5rem; margin:0; padding:0; list-style:none}
.o_row_figs li{font-family:var(--o_fig); font-size:.75rem; border:1px solid var(--o_rule); padding:.22rem .5rem; color:var(--o_ink2); background:var(--o_card)}
@media (max-width:40rem){ .o_row{grid-template-columns:1fr} .o_row_no{padding-top:0} }

/* ---------- 13. colophon ---------- */
.o_colophon{border-top:2px solid var(--o_ink); margin-top:4rem; padding:2.2rem 0 3rem; background:var(--o_card)}
.o_colophon p{font-size:.9375rem; color:var(--o_ink2); max-width:70ch}
.o_colophon_h{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--o_ink); margin:0 0 .8rem}
.o_colophon_links{font-family:var(--o_fig); font-size:.8125rem; display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; margin:1.1rem 0 0; padding:0; list-style:none}

/* ---------- 14. crumbs ---------- */
.o_crumbs{font-family:var(--o_fig); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--o_ink2); padding:1.1rem 0 0; margin:0}
.o_crumbs a{color:var(--o_ink2)}
.o_crumbs a:hover{color:var(--o_hot)}
