/* Tool pages — Storm tracker + Avalanche sheet.  Values: docs/ops/DESIGN.md (via DIGEST).  Radius scale 999 / 14 / 8 only. */
.omtb-tool {
  --ink: #0A0A0A; --ink-warm: #140D0A; --bone: #EDE7D8; --ember: #FF5B04; --ember-text: #FF7D11; --teal: #34978F;
  --petrol: #11292A; --petrol-deep: #1A4E50; --gold: #E0AA37; --red: #A83A28; --red-light: #D66552; --violet: #7C6BA6; --sage: #7F9080;
  --r-ctl: 999px; --r-panel: 14px; --r-tip: 8px;
  --line: color-mix(in srgb, var(--bone) 14%, transparent); --mute: color-mix(in srgb, var(--bone) 62%, transparent);
  --panel: color-mix(in srgb, var(--bone) 5%, var(--ink));
  --display: 'Hanken Grotesk', system-ui, sans-serif; --body: 'Instrument Sans', system-ui, sans-serif;
  background: var(--ink); color: var(--bone); font-family: var(--body); font-size: 16px; line-height: 1.55;
  padding: clamp(28px, 5vw, 72px) clamp(16px, 4vw, 56px) 72px; box-sizing: border-box; -webkit-font-smoothing: antialiased;
}
.omtb-tool *, .omtb-tool *::before, .omtb-tool *::after { box-sizing: border-box; }
.omtb-tool-main { background: #0A0A0A; padding-top: 88px; min-height: 100vh; }
body.omtb-tool-page { background: #0A0A0A; }
.omtb-tool > * { max-width: 1320px; margin-left: auto; margin-right: auto; }
.omtb-tool.is-loading .omtb-pit__body, .omtb-tool.is-loading .omtb-avy__side { opacity: .55; transition: opacity .15s; }

.omtb-label, .omtb-tool__eyebrow, .omtb-field > span { font: 600 11px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.omtb-tool__nav { display: flex; gap: 8px; margin: 0 0 28px; }
.omtb-tool__nav a { font: 600 13px var(--display); color: var(--bone); text-decoration: none; border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 0 16px; height: 40px; display: inline-flex; align-items: center; }
.omtb-tool__nav a[aria-current="page"] { background: var(--bone); color: var(--ink); border-color: var(--bone); }
.omtb-tool__nav a:hover { border-color: color-mix(in srgb, var(--bone) 50%, transparent); }
.omtb-xlink { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font: 600 13px var(--display); color: var(--ember-text); text-decoration: none; }
.omtb-xlink:hover { text-decoration: underline; }
.omtb-xcard__line { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; }
.omtb-xcard p { margin: 0 0 8px; font-size: 14.5px; color: var(--mute); }
.omtb-xcard p.omtb-xcard__h { color: var(--bone); font: 600 16px/1.4 var(--body); }
[data-avy-pack] { order: 5; }
.omtb-tool__eyebrow { color: var(--ember-text); margin: 0 0 14px; display: flex; align-items: center; gap: 10px; }
.omtb-tool__beta { color: var(--mute); border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 4px 9px; font-size: 10px; }
.omtb-tool__title { font: 800 clamp(34px, 5.2vw, 68px)/1.02 var(--display); letter-spacing: -.028em; margin: 0 0 14px; color: var(--bone); }
.omtb-tool__lede { max-width: 62ch; color: var(--mute); margin: 0 0 26px; font-size: 17px; }
.omtb-tool__controls { display: flex; flex-wrap: wrap; gap: 14px; }
.omtb-field { display: flex; flex-direction: column; gap: 8px; }
.omtb-field select { appearance: none; -webkit-appearance: none; background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23EDE7D8' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;
  color: var(--bone); border: 1px solid var(--line); border-radius: var(--r-ctl); height: 44px; padding: 0 40px 0 18px; font: 500 15px var(--body); min-width: 220px; cursor: pointer; }
.omtb-field select:focus-visible, .omtb-lrow:focus-visible, .omtb-btn:focus-visible, .omtb-seg button:focus-visible, .omtb-prob:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 2px; }
.omtb-tool__source { color: var(--mute); font-size: 13px; margin-top: 36px; }
.omtb-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-panel); padding: 24px; }
.omtb-card + .omtb-card { margin-top: 16px; }
.omtb-card__h { font: 700 20px/1.2 var(--display); letter-spacing: -.01em; margin: 0 0 14px; color: var(--bone); }
.omtb-muted { color: var(--mute); }
.omtb-btn { background: transparent; color: var(--bone); border: 1px solid color-mix(in srgb, var(--bone) 40%, transparent); border-radius: var(--r-ctl); height: 44px; padding: 0 22px; font: 600 14px var(--display); cursor: pointer; }
.omtb-btn:hover { border-color: var(--ember-text); color: var(--ember-text); }
.omtb-empty { border: 1px dashed var(--line); border-radius: var(--r-panel); padding: 40px 28px; text-align: left; }
.omtb-empty__h { font: 700 22px/1.25 var(--display); margin: 0 0 8px; }
.omtb-empty p { margin: 0 0 16px; color: var(--mute); } .omtb-empty p.omtb-empty__h { color: var(--bone); }

/* ───────────── Storm tracker ───────────── */
.omtb-pit__season { margin-top: 40px; position: relative; }
.omtb-pit__seasonhead { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.omtb-pit__asof { font: 700 18px var(--display); color: var(--bone); }
.omtb-pit__chart { position: relative; }
.omtb-pit__chart svg { width: 100%; height: 150px; display: block; overflow: visible; }
.omtb-pit__area { fill: color-mix(in srgb, var(--teal) 22%, transparent); }
.omtb-pit__line { fill: none; stroke: var(--teal); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.omtb-pit__storm { stroke: var(--bone); stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; opacity: .8; }
.omtb-pit__cursor { stroke: var(--ember); stroke-width: 2; vector-effect: non-scaling-stroke; }
.omtb-pit__mon { display: none; }
.omtb-pit__months { position: relative; height: 18px; margin-top: 4px; }
.omtb-pit__months span { position: absolute; top: 0; font: 600 10.5px var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
.omtb-pit__peak { position: absolute; top: -2px; left: 0; font: 600 11px var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--mute); }
.omtb-pit__range { position: absolute; left: 0; right: 0; top: 28px; width: 100%; height: 150px; margin: 0; opacity: 0; cursor: ew-resize; }
.omtb-pit__range:focus-visible + .omtb-pit__hint { color: var(--ember-text); }
.omtb-pit__hint { color: var(--mute); font-size: 13px; margin: 10px 0 0; }

.omtb-pit__body { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, .7fr); gap: 32px; margin-top: 36px; align-items: start; }
.omtb-pit__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--r-panel); margin-bottom: 24px; }
.omtb-stat { padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; border-left: 1px solid var(--line); }
.omtb-stat:first-child { border-left: 0; }
.omtb-stat b { font: 800 clamp(18px, 2vw, 26px)/1.1 var(--display); letter-spacing: -.02em; }

.omtb-pit__profile { position: relative; display: grid; grid-template-columns: clamp(170px, 40%, 380px) 64px minmax(0, 1fr); align-items: start; }
.omtb-pit__profile > .omtb-empty { grid-column: 1 / -1; }
.omtb-wall { grid-column: 1; }
.omtb-wall svg { display: block; overflow: visible; }
.omtb-pit__profile { padding-top: 8px; }
.omtb-leaders { position: absolute; top: 0; pointer-events: none; overflow: visible; }
.omtb-leaders path { fill: none; stroke: color-mix(in srgb, var(--bone) 30%, transparent); stroke-width: 1; }
.omtb-lrows { grid-column: 3; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.omtb-lrow { border: 1px solid var(--line); border-radius: var(--r-panel); padding: 14px 16px; cursor: pointer; background: transparent; transition: border-color .15s, background .15s; }
.omtb-lrow:hover, .omtb-lrow.is-open { border-color: color-mix(in srgb, var(--bone) 40%, transparent); background: var(--panel); }
.omtb-lrow__main { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 10px; }
.omtb-lrow__date { font: 700 19px/1.2 var(--display); letter-spacing: -.01em; }
.omtb-lrow__thick { font: 600 13px var(--display); color: var(--mute); white-space: nowrap; }
.omtb-lrow__meta { margin: 4px 0 0; color: var(--mute); font-size: 14.5px; }
.omtb-lrow__wind { color: var(--bone); }
.omtb-lrow__why { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14.5px; }
.omtb-lrow.is-open .omtb-lrow__why { display: block; }
.omtb-lrow__why p { margin: 0 0 8px; } .omtb-lrow__why p:last-child { margin: 0; }
.omtb-lrow__dens { color: var(--mute); }
.omtb-iface, .omtb-basetag { display: inline-flex; align-items: center; gap: 8px; font: 600 11px/1.2 var(--display); letter-spacing: .08em; text-transform: uppercase; border-radius: var(--r-ctl); padding: 6px 11px; border: 1px solid var(--line); color: var(--mute); }
.omtb-iface::before { content: ''; width: 14px; height: 0; border-top: 2px solid currentColor; }
.omtb-iface--c0::before, .omtb-iface--c1::before { display: none; }
.omtb-wl__base { letter-spacing: .14em; }
.omtb-iface--c2 { color: var(--gold); border-color: color-mix(in srgb, var(--gold) 45%, transparent); }
.omtb-iface--c3 { color: var(--red-light); border-color: color-mix(in srgb, var(--red-light) 50%, transparent); }
.omtb-iface--c3::before { border-top-style: dotted; border-top-width: 3px; }
.omtb-basetag { margin-top: 10px; color: var(--ink); background: var(--bone); border-color: var(--bone); }
.omtb-basetag--weak { background: var(--red-light); border-color: var(--red-light); }
.omtb-basetag--suspect { background: var(--gold); border-color: var(--gold); }
.omtb-basetag--trace { background: transparent; color: var(--bone); border-color: color-mix(in srgb, var(--bone) 40%, transparent); }

.omtb-q--cold-smoke { fill: var(--bone); background: var(--bone); }
.omtb-q--light { fill: color-mix(in oklab, var(--bone) 74%, var(--teal)); background: color-mix(in oklab, var(--bone) 74%, var(--teal)); }
.omtb-q--average { fill: color-mix(in oklab, var(--bone) 44%, var(--teal)); background: color-mix(in oklab, var(--bone) 44%, var(--teal)); }
.omtb-q--dense { fill: color-mix(in oklab, var(--teal) 70%, var(--petrol)); background: color-mix(in oklab, var(--teal) 70%, var(--petrol)); }
.omtb-q--wet { fill: var(--violet); background: var(--violet); }
.omtb-wghost { fill: color-mix(in srgb, var(--ember) 8%, transparent); stroke: var(--ember-text); stroke-width: 1.5; stroke-dasharray: 5 5; }
.omtb-lrow--in { border-style: dashed; border-color: color-mix(in srgb, var(--ember-text) 55%, transparent); cursor: default; }
.omtb-lrow--in:hover { background: transparent; border-color: color-mix(in srgb, var(--ember-text) 55%, transparent); }
.omtb-iface--in { color: var(--ember-text); border-color: color-mix(in srgb, var(--ember-text) 50%, transparent); }
.omtb-iface--in::before { border-top-style: dashed; }
.omtb-wl__grain { pointer-events: none; }
.omtb-wall pattern circle { fill: #0A0A0A; fill-opacity: .2; }
.omtb-wl__bg { fill: color-mix(in srgb, var(--bone) 5%, transparent); }
.omtb-wl.is-hi .omtb-wl__bar { stroke: var(--ember); stroke-width: 2; }
.omtb-wl__t { font: 700 11px var(--display); letter-spacing: .06em; text-transform: uppercase; text-anchor: end; fill: var(--ink); }
.omtb-wl__t.is-dark { fill: var(--bone); }
.omtb-waxis { stroke: var(--line); stroke-width: 1; }
.omtb-ramp { width: 44px; height: 14px; display: inline-block; background: linear-gradient(90deg, #EDE7D8, color-mix(in oklab, #EDE7D8 22%, #1A4E50)); border: 1px solid var(--line); }
.omtb-wsurf { stroke: var(--bone); stroke-width: 2; }
.omtb-wif { stroke: var(--ink); stroke-width: 1.5; }
.omtb-wif--c1 { stroke: var(--ink); stroke-width: 1.5; }
.omtb-wif--c2 { stroke: var(--gold); stroke-width: 4; }
.omtb-wif--c3 { stroke: var(--red-light); stroke-width: 3; stroke-dasharray: 2 5; stroke-linecap: round; }
.omtb-wgrain { fill: var(--red-light); }
.omtb-wtick { stroke: var(--mute); stroke-width: 1; }
.omtb-wnum { fill: var(--mute); font: 600 10.5px var(--display); text-anchor: end; letter-spacing: .04em; }
.omtb-wground { fill: var(--petrol); }
.omtb-wgl { fill: color-mix(in srgb, var(--bone) 70%, transparent); font: 600 10.5px var(--display); letter-spacing: .14em; }
.omtb-pit__legend { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 0; margin: 28px 0 0; color: var(--mute); font-size: 13px; }
.omtb-pit__legend li { display: flex; align-items: center; gap: 8px; }
.omtb-sw { width: 14px; height: 14px; display: inline-block; }
.omtb-ln { width: 22px; height: 0; display: inline-block; border-top: 4px solid var(--gold); }
.omtb-ln--c3 { border-top: 4px dotted var(--red-light); }

.omtb-think__head { font: 700 22px/1.25 var(--display); letter-spacing: -.012em; margin: 0 0 18px; }
.omtb-think__pts { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.omtb-pt { display: grid; grid-template-columns: 12px 1fr; gap: 14px; }
.omtb-pt i { width: 10px; height: 10px; border-radius: var(--r-ctl); margin-top: 7px; background: var(--mute); }
.omtb-pt--bad i { background: var(--red-light); } .omtb-pt--warn i { background: var(--gold); } .omtb-pt--good i { background: var(--teal); }
.omtb-pt b { font: 700 16px/1.3 var(--display); display: block; margin-bottom: 3px; }
.omtb-pt p { margin: 0; color: var(--mute); font-size: 14.5px; }
.omtb-think__wh { margin: 24px 0 10px; }
.omtb-think__watch { margin: 0; padding-left: 18px; font-size: 14.5px; color: var(--bone); } .omtb-think__watch li { margin-bottom: 4px; }
.omtb-think__note { margin: 12px 0 0; font-size: 14.5px; color: var(--bone); }
.omtb-think__disc { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--mute); font-size: 13px; }
.omtb-log { list-style: none; margin: 0; padding: 0; }
.omtb-pit__log { margin-top: 32px; }
.omtb-log__r { display: grid; grid-template-columns: 1.15fr .6fr 1.25fr auto; gap: 10px; padding: 11px 0; border-top: 1px solid var(--line); font-size: 14px; align-items: baseline; }
.omtb-log__r:first-child { border-top: 0; padding-top: 0; }
.omtb-log__d { font: 600 14.5px var(--display); } .omtb-log__n { font-weight: 600; } .omtb-log__m, .omtb-log__s { color: var(--mute); }
.omtb-log__s { font-size: 12.5px; text-align: right; }
.omtb-log__r.is-gone .omtb-log__d, .omtb-log__r.is-gone .omtb-log__n { color: var(--mute); }

/* ───────────── Avalanche sheet ───────────── */
.omtb-tool__controls { align-items: flex-end; }
.omtb-field input[type="date"] { background: var(--panel); color: var(--bone); border: 1px solid var(--line); border-radius: var(--r-ctl); height: 44px; padding: 0 18px; font: 500 15px var(--body); color-scheme: dark; min-width: 180px; }
.omtb-avy__mapwrap { position: relative; }
.omtb-avy__note { position: absolute; left: 12px; top: 12px; right: 60px; margin: 0; max-width: 520px; background: var(--ink); border: 1px solid var(--line); border-radius: var(--r-tip); padding: 10px 14px; font: 600 13.5px/1.4 var(--display); color: var(--bone); pointer-events: none; }
.omtb-avy__note:empty { display: none; }
.omtb-avy__note small { display: block; font: 500 13px/1.45 var(--body); color: color-mix(in srgb, var(--bone) 82%, transparent); margin-top: 4px; }
.omtb-avy__note small b { color: var(--bone); font-weight: 600; }
.omtb-avy__warn { color: var(--bone); font-weight: 600; flex-basis: 100%; }
.omtb-avy__map .maplibregl-ctrl-group { background: var(--ink); border: 1px solid var(--line); border-radius: var(--r-tip); box-shadow: none; overflow: hidden; }
.omtb-avy__map .maplibregl-ctrl-group button { background-color: var(--ink); width: 36px; height: 36px; }
.omtb-avy__map .maplibregl-ctrl-group button + button { border-top: 1px solid var(--line); }
.omtb-avy__map .maplibregl-ctrl-group button .maplibregl-ctrl-icon { filter: invert(1) sepia(.2) brightness(.95); }
.omtb-avy__map .maplibregl-ctrl-scale { background: color-mix(in srgb, var(--ink) 80%, transparent); color: var(--bone); border-color: var(--bone); font: 600 10.5px var(--display); letter-spacing: .06em; }
.omtb-avy__map .maplibregl-ctrl-attrib { background: color-mix(in srgb, var(--ink) 85%, transparent); color: var(--mute); }
.omtb-avy__map .maplibregl-ctrl-attrib a { color: var(--bone); }
.omtb-avy__map .maplibregl-ctrl-attrib-button { filter: invert(1); }
.omtb-bandset { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; color: var(--mute); align-items: center; }
.omtb-bandset label { display: inline-flex; align-items: center; gap: 8px; }
.omtb-bandset input { width: 84px; height: 36px; background: var(--ink); color: var(--bone); border: 1px solid var(--line); border-radius: var(--r-tip); padding: 0 8px; font: 600 14px var(--display); }
.omtb-bandset p { flex-basis: 100%; margin: 0; }
.omtb-avy__meta { color: var(--mute); font-size: 13px; margin: 14px 0 0; }
.omtb-avy__body { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: 28px; margin-top: 36px; align-items: start; }
.omtb-avy__mapcol { position: sticky; top: 96px; }
.omtb-avy__map { height: min(76vh, 860px); min-height: 440px; background: var(--petrol); border: 1px solid var(--line); border-radius: var(--r-panel); overflow: hidden; }
.omtb-avy__map .maplibregl-ctrl-attrib { font-size: 10px; }
.omtb-avy__mapbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 14px; }
.omtb-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.omtb-seg button { background: transparent; color: var(--bone); border: 1px solid var(--line); border-radius: var(--r-ctl); height: 40px; padding: 0 16px; font: 600 13px var(--display); cursor: pointer; }
.omtb-seg button[aria-pressed="true"] { background: var(--bone); color: var(--ink); border-color: var(--bone); }
.omtb-check { display: inline-flex; align-items: center; gap: 9px; font-size: 14px; color: var(--mute); cursor: pointer; min-height: 40px; }
.omtb-check input { accent-color: var(--ember); width: 17px; height: 17px; }
.omtb-avy__key { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; color: var(--mute); font-size: 13px; }
.omtb-avy__key span { display: inline-flex; align-items: center; gap: 7px; }
.omtb-avy__key i { width: 14px; height: 14px; display: inline-block; border: 1px solid color-mix(in srgb, var(--bone) 25%, transparent); }
.omtb-dtable { display: grid; grid-template-columns: minmax(0, 1.2fr) 1fr 1fr; gap: 6px 8px; align-items: stretch; }
.omtb-dtable.is-one { grid-template-columns: minmax(0, 1.2fr) 1fr; }
.omtb-dtable > .omtb-label { padding-bottom: 4px; }
.omtb-dtable__b { font: 700 14.5px/1.25 var(--display); align-self: center; }
.omtb-dtable__b small { display: block; font: 500 12.5px var(--body); color: var(--mute); margin-top: 2px; }
.omtb-dchip { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border-radius: var(--r-tip); font: 700 13px/1.15 var(--display); color: #0A0A0A; min-height: 48px; }
.omtb-dchip b { font: 800 21px var(--display); }
.omtb-dchip.d0 { background: color-mix(in srgb, var(--bone) 12%, var(--ink)); color: var(--mute); }
.omtb-dchip.d1 { background: #50B848; } .omtb-dchip.d2 { background: #FFF200; } .omtb-dchip.d3 { background: #F7941E; }
.omtb-dchip.d4 { background: #ED1C24; color: #0A0A0A; } .omtb-dchip.d5 { background: #231F20; color: #fff; outline: 1px solid #ED1C24; outline-offset: -1px; }
.omtb-avy__bands { margin: 14px 0 0; color: var(--mute); font-size: 13px; }
.omtb-prob { display: grid; grid-template-columns: 96px 1fr; gap: 16px; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-panel); cursor: pointer; background: transparent; color: inherit; width: 100%; text-align: left; font: inherit; }
.omtb-prob + .omtb-prob { margin-top: 10px; }
.omtb-prob[aria-pressed="true"] { border-color: var(--ember-text); background: color-mix(in srgb, var(--ember) 7%, var(--ink)); }
.omtb-prob h3 { font: 700 18px/1.2 var(--display); margin: 0 0 6px; }
.omtb-prob dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; font-size: 13.5px; }
.omtb-prob dt { color: var(--mute); } .omtb-prob dd { margin: 0; text-transform: capitalize; }
.omtb-rose { width: 96px; height: 96px; display: block; }
.omtb-rose path { fill: color-mix(in srgb, var(--bone) 11%, var(--ink)); stroke: var(--ink); stroke-width: 1; }
.omtb-rose path.on { fill: var(--bone); }
.omtb-rose text { fill: var(--mute); font: 600 9px var(--display); text-anchor: middle; }
.omtb-prob__disc { grid-column: 1 / -1; display: none; font-size: 14.5px; color: var(--bone); border-top: 1px solid var(--line); padding-top: 12px; }
.omtb-prob[aria-pressed="true"] .omtb-prob__disc { display: block; }
.omtb-prob__disc p { margin: 0 0 8px; }
.omtb-notes__bl { font: 600 17px/1.45 var(--body); margin: 0 0 14px; }
.omtb-notes p { margin: 0 0 10px; font-size: 14.5px; color: var(--mute); }
.omtb-notes a { color: var(--ember-text); }
.omtb-notes__more { margin: 4px 0 14px; }
.omtb-notes__more summary { cursor: pointer; font: 600 13px var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--bone); padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); list-style: none; display: flex; justify-content: space-between; }
.omtb-notes__more summary::-webkit-details-marker { display: none; }
.omtb-notes__more summary::after { content: '+'; font-size: 18px; line-height: 1; }
.omtb-notes__more[open] summary::after { content: '–'; }
.omtb-notes__more[open] summary { margin-bottom: 12px; }
.omtb-avy__pop { font: 500 13px/1.45 'Instrument Sans', system-ui, sans-serif; color: #EDE7D8; }
.omtb-avy__pop b { font: 700 14.5px 'Hanken Grotesk', system-ui, sans-serif; display: block; margin-bottom: 3px; }
.omtb-avy__map .maplibregl-popup-content { background: #0A0A0A; border: 1px solid #EDE7D8; border-radius: 8px; padding: 12px 30px 12px 14px; box-shadow: none; }
.omtb-avy__map .maplibregl-popup-anchor-bottom .maplibregl-popup-tip, .omtb-avy__map .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip, .omtb-avy__map .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { border-top-color: #EDE7D8; }
.omtb-avy__map .maplibregl-popup-anchor-top .maplibregl-popup-tip, .omtb-avy__map .maplibregl-popup-anchor-top-left .maplibregl-popup-tip, .omtb-avy__map .maplibregl-popup-anchor-top-right .maplibregl-popup-tip { border-bottom-color: #EDE7D8; }
.omtb-avy__map .maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: #EDE7D8; }
.omtb-avy__map .maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: #EDE7D8; }
.omtb-sw5 { background: repeating-conic-gradient(#ED1C24 0% 25%, #231F20 0% 50%) 0 0 / 7px 7px; }
.omtb-avy__map .maplibregl-popup-close-button { color: #EDE7D8; font-size: 18px; width: 28px; height: 28px; }

@media (max-width: 1099px) {
  .omtb-pit__body { grid-template-columns: minmax(0, 1fr); }
  .omtb-pit__body { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  .omtb-pit__wallcol, .omtb-pit__side { display: contents; }
  .omtb-pit__stats { order: 1; } .omtb-pit__profile { order: 2; } .omtb-pit__legend { order: 3; }
  .omtb-pit__think { order: 4; margin-top: 32px; } [data-pit-avy] { order: 5; } .omtb-pit__log { order: 6; margin-top: 16px; }

}
@media (max-width: 640px) {
  .omtb-tool-main { padding-top: 64px; }
  .omtb-field, .omtb-field select { width: 100%; min-width: 0; }
  .omtb-pit__stats { grid-template-columns: repeat(2, 1fr); }
  .omtb-stat:nth-child(3) { border-left: 0; } .omtb-stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .omtb-pit__profile { grid-template-columns: 104px 16px minmax(0, 1fr); }
  .omtb-lrow { padding: 12px; } .omtb-lrow__date { font-size: 17px; }
  .omtb-iface, .omtb-basetag { border-radius: var(--r-tip); }
  .omtb-iface__pre { display: none; }
  .omtb-wl__t { font-size: 10px; letter-spacing: .02em; }
  .omtb-pit__seasonhead { flex-direction: column; gap: 6px; align-items: flex-start; }
  .omtb-pit__profile.is-phone .omtb-wall { position: sticky; top: var(--omtb-stick, 76px); align-self: start; }
  .omtb-pit__profile.is-phone .omtb-leaders { display: none; }
  .omtb-pit__profile.is-phone .omtb-lrows { min-height: 0; justify-content: flex-start; }
  .omtb-lrow.is-near { border-color: var(--ember-text); }
  .omtb-lrow__main { flex-direction: column; gap: 2px; }
  .omtb-log__r { grid-template-columns: auto 1fr; gap: 4px 12px; } .omtb-log__d { grid-column: 1 / 2; } .omtb-log__s { grid-column: 2; grid-row: 1; } .omtb-log__n { grid-column: 1; grid-row: 2; } .omtb-log__m { grid-column: 2; grid-row: 2; }
  .omtb-card { padding: 18px; }
  .omtb-prob { grid-template-columns: 80px 1fr; } .omtb-rose { width: 80px; height: 80px; }
  .omtb-dtable, .omtb-dtable.is-one { grid-template-columns: 1fr 1fr; }
  .omtb-dtable > span:first-child { display: none; }
  .omtb-dtable__b { grid-column: 1 / -1; margin-top: 8px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
  .omtb-dtable__b small { margin: 0; }
  .omtb-avy__note { position: static; max-width: none; margin-top: 10px; background: var(--panel); }
}
@media (prefers-reduced-motion: reduce) { .omtb-tool * { transition: none !important; } }

/* below the floating-sheet width the avalanche page stacks: notes, danger, map, problems, snowpack */
@media (max-width: 1099px) {
  .omtb-avy__body { display: flex; flex-direction: column; gap: 16px; align-items: stretch; }
  .omtb-avy__side { display: contents; }
  .omtb-avy__side .omtb-card { margin-top: 0; }
  [data-avy-notes] { order: 1; } [data-avy-danger] { order: 2; } .omtb-avy__mapcol { order: 3; position: static; } [data-avy-problems] { order: 4; }
  .omtb-avy__map { height: 64vh; }
}
/* desktop: the map is the page; the sheet floats over its right side */
@media (min-width: 1100px) {
  .omtb-avy > .omtb-avy__body { max-width: none; margin-inline: calc(clamp(16px, 4vw, 56px) * -1); display: block; position: relative; margin-top: 32px; }
  .omtb-avy__mapcol { position: static; }
  .omtb-avy__map { height: max(640px, calc(100vh - 120px)); border-radius: 0; border-left: 0; border-right: 0; }
  /* the sheet owns an opaque column down the map's right edge: nothing of the map shows through or beside it */
  .omtb-avy__side { position: absolute; top: 0; right: 0; width: 442px; height: max(640px, calc(100vh - 120px)); overflow-y: auto; overscroll-behavior: contain;
    background: var(--ink); border-left: 1px solid var(--line); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 16px 12px 0 16px;
    scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--bone) 55%, transparent) var(--ink); }
  .omtb-avy__side::-webkit-scrollbar { width: 8px; } .omtb-avy__side::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--bone) 55%, transparent); border-radius: 999px; }
  .omtb-avy__side::after { content: 'Scroll for problems and notes'; position: sticky; bottom: 0; display: flex; align-items: flex-end; justify-content: center; height: 72px; margin-top: -8px; padding-bottom: 12px;
    background: linear-gradient(to bottom, transparent, var(--ink) 62%); font: 600 10.5px var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--bone); pointer-events: none; }
  .omtb-avy__map .maplibregl-ctrl-bottom-right { right: 442px; }
  .omtb-avy.has-no-problems .omtb-avy__side::after { content: 'Scroll for notes'; }
  .omtb-avy .omtb-avy__side.at-end::after { content: ''; background: none; }
  .omtb-avy__side .omtb-card { background: var(--panel); padding: 20px; }
  .omtb-avy__mapbar, .omtb-avy__key { padding-inline: clamp(16px, 4vw, 56px); max-width: calc(1320px + 2 * clamp(16px, 4vw, 56px)); margin-inline: auto; }
  .omtb-avy__note { left: 16px; top: 16px; right: auto; width: min(520px, calc(100% - 490px)); }
}

/* ═════════════════════ 2026-11-13 lift: theme, notice, how-to-read, sources, fewer boxes ═════════════════════
 * Light mode is the site's PAPER register (DESIGN.md): Bone ground, Ink type, Signal Red eyebrow.  It works by
 * swapping the two tokens every other colour here is mixed from.  Snow stays pale in both modes (--snow): on
 * paper it is white with a hairline edge; the map has its own light / dark (avy-sheet.js). */
html[data-omtb-theme="light"] .omtb-tool { --ink: #EDE7D8; --bone: #0A0A0A; --ember-text: #A83A28; --panel: color-mix(in srgb, #0A0A0A 5%, #EDE7D8); --gold: #8A6410; --red-light: #A83A28; }
html[data-omtb-theme="light"] .omtb-tool-main, html[data-omtb-theme="light"] body.omtb-tool-page { background: #EDE7D8; }
html[data-omtb-theme="light"] .omtb-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%230A0A0A' stroke-width='1.5'/%3E%3C/svg%3E"); }
html[data-omtb-theme="light"] .omtb-field input[type="date"] { color-scheme: light; }
/* specimens stay dark */
.omtb-avy__mapwrap { --ink: #0A0A0A; --bone: #EDE7D8; --gold: #E0AA37; --red-light: #D66552; --ember-text: #FF7D11; --line: color-mix(in srgb, #EDE7D8 14%, transparent); --mute: color-mix(in srgb, #EDE7D8 62%, transparent); --panel: color-mix(in srgb, #EDE7D8 5%, #0A0A0A); }
html[data-omtb-theme="light"] .omtb-dchip.d0 { color: var(--bone); }
html[data-omtb-theme="light"] .omtb-basetag { color: #EDE7D8; background: #0A0A0A; border-color: #0A0A0A; }
html[data-omtb-theme="light"] .omtb-basetag--weak { background: #A83A28; border-color: #A83A28; }
html[data-omtb-theme="light"] .omtb-basetag--suspect { background: #E0AA37; border-color: #E0AA37; color: #0A0A0A; }
html[data-omtb-theme="light"] .omtb-basetag--trace { background: transparent; color: #0A0A0A; }
html[data-omtb-theme="light"] .omtb-rose path { fill: color-mix(in srgb, #0A0A0A 10%, #EDE7D8); stroke: #EDE7D8; }
html[data-omtb-theme="light"] .omtb-rose path.on { fill: #0A0A0A; }
html[data-omtb-theme="light"] .omtb-pt--good i { background: #1A4E50; }

/* nav + toggle */
.omtb-tool__nav { align-items: center; flex-wrap: wrap; }
.omtb-tool__nav a.omtb-tool__crumb { border: 0; padding: 0 6px 0 0; font-weight: 700; }
.omtb-tool__nav a.omtb-tool__crumb::after { content: '/'; margin-left: 12px; color: var(--mute); font-weight: 400; }
.omtb-theme { margin-left: auto; display: inline-flex; border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 3px; gap: 2px; }
.omtb-theme button { background: transparent; border: 0; color: var(--mute); font: 600 12px var(--display); letter-spacing: .04em; height: 32px; padding: 0 14px; border-radius: var(--r-ctl); cursor: pointer; }
.omtb-theme button[aria-pressed="true"] { background: var(--bone); color: var(--ink); }
.omtb-theme button:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 2px; }

/* head: air, one soft field bloom, larger type */
.omtb-tool__head { position: relative; isolation: isolate; padding-bottom: 8px; }
.omtb-tool { overflow-x: clip; }
.omtb-tool__head::before { content: ''; position: absolute; z-index: -1; inset: -140px 0 auto 0; height: 520px; pointer-events: none;
  background: radial-gradient(42% 60% at 78% 40%, color-mix(in srgb, #7C6BA6 46%, transparent), transparent 70%), radial-gradient(38% 55% at 18% 62%, color-mix(in srgb, #34978F 30%, transparent), transparent 72%);
  filter: blur(60px); opacity: .55; }
html[data-omtb-theme="light"] .omtb-tool__head::before { opacity: .28; }
.omtb-tool__title { font-size: clamp(40px, 6.4vw, 92px); letter-spacing: -.035em; margin-bottom: 18px; }
.omtb-tool__lede { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.45; color: color-mix(in srgb, var(--bone) 82%, transparent); max-width: 46ch; margin-bottom: 28px; }

/* the notice: body-size, cannot be missed, not an alarm */
.omtb-notice { border-left: 3px solid var(--ember-text); background: color-mix(in srgb, var(--bone) 6%, transparent); padding: 16px 20px; margin: 0 0 28px; max-width: 78ch; }
.omtb-notice p { margin: 0; font: 400 16px/1.55 var(--body); color: var(--bone); }
.omtb-notice strong { font: 700 16px var(--display); letter-spacing: -.005em; }
.omtb-notice a { color: var(--ember-text); font-weight: 600; white-space: nowrap; }
.omtb-tool sup, .omtb-ast { color: var(--ember-text); font-weight: 700; font-size: .8em; margin-left: 1px; }

/* how to read: three plain steps */
.omtb-howto { list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.omtb-howto li { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 20px 24px 20px 0; }
.omtb-howto li + li { border-left: 1px solid var(--line); padding-left: 24px; }
.omtb-howto__n { font: 800 28px/1 var(--display); color: var(--ember-text); letter-spacing: -.03em; }
.omtb-howto b { font: 700 16px/1.3 var(--display); display: block; margin-bottom: 4px; }
.omtb-howto p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--mute); }

/* fewer boxes: the reading column is type on the ground, ruled, not carded */
.omtb-pit__think { background: none; border: 0; border-radius: 0; padding: 0; }
.omtb-pit__think .omtb-card__h, .omtb-pit__log .omtb-card__h, [data-pit-avy] .omtb-card__h { font: 600 11px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--ember-text); margin-bottom: 14px; }
.omtb-think__head { font-size: clamp(22px, 2vw, 30px); line-height: 1.2; letter-spacing: -.02em; margin-bottom: 24px; }
.omtb-pt b { font-size: 17px; } .omtb-pt p { font-size: 15px; line-height: 1.55; }
[data-pit-avy], .omtb-pit__log { background: none; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 24px 0 0; margin-top: 28px; }
.omtb-pit__stats { border: 0; border-radius: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.omtb-stat { padding: 18px 20px 18px 0; } .omtb-stat + .omtb-stat { padding-left: 20px; }
.omtb-stat b { font-size: clamp(22px, 2.4vw, 34px); }
.omtb-lrow { border: 0; border-radius: 0; border-top: 1px solid var(--line); padding: 16px 4px 16px 0; background: none; }
.omtb-lrow:first-child { border-top: 0; }
.omtb-lrow:hover, .omtb-lrow.is-open { background: none; border-color: var(--line); }
.omtb-lrow:hover .omtb-lrow__date, .omtb-lrow.is-open .omtb-lrow__date { color: var(--ember-text); }
.omtb-lrow--in { border: 1px dashed color-mix(in srgb, var(--ember-text) 55%, transparent); border-radius: var(--r-panel); padding: 14px 16px; }
.omtb-lrow__date { font-size: 22px; }
.omtb-lrows { gap: 0; }
.omtb-lrow.is-near { border-color: var(--line); } .omtb-lrow.is-near .omtb-lrow__date { color: var(--ember-text); }

/* sources */
.omtb-sources { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--line); }
.omtb-sources__h { font: 600 11px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--ember-text); margin: 0 0 16px; }
.omtb-sources ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 40px; }
.omtb-sources li { display: flex; flex-direction: column; gap: 3px; }
.omtb-sources a { color: var(--bone); font: 600 15px/1.35 var(--display); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--bone) 35%, transparent); text-underline-offset: 3px; }
.omtb-sources a:hover { color: var(--ember-text); }
.omtb-sources li span { color: var(--mute); font-size: 13.5px; line-height: 1.45; }
.omtb-sources__foot { margin: 22px 0 0; max-width: 86ch; font-size: 14px; line-height: 1.55; color: var(--bone); }
.omtb-avy > .omtb-sources { margin-top: 40px; }

/* the Snow page */
.omtb-snow__doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 12px; }
.omtb-door { display: flex; flex-direction: column; gap: 14px; padding: 36px 40px 36px 0; color: var(--bone); text-decoration: none; }
.omtb-door + .omtb-door { border-left: 1px solid var(--line); padding-left: 40px; }
.omtb-door__now { font: 700 clamp(22px, 2.3vw, 32px)/1.2 var(--display); letter-spacing: -.02em; }
.omtb-door p { margin: 0; color: var(--mute); font-size: 16px; line-height: 1.55; max-width: 44ch; }
.omtb-door__go { font: 600 14px var(--display); color: var(--ember-text); margin-top: auto; padding-top: 10px; }
.omtb-door:hover .omtb-door__now { color: var(--ember-text); }
.omtb-door:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 4px; }

@media (max-width: 760px) {
  .omtb-howto { grid-template-columns: 1fr; }
  .omtb-howto li, .omtb-howto li + li { border-left: 0; padding: 16px 0; } .omtb-howto li + li { border-top: 1px solid var(--line); }
  .omtb-sources ul, .omtb-snow__doors { grid-template-columns: 1fr; }
  .omtb-door, .omtb-door + .omtb-door { padding: 28px 0; border-left: 0; } .omtb-door + .omtb-door { border-top: 1px solid var(--line); }
  .omtb-theme { margin-left: 0; }
  .omtb-notice { padding: 14px 16px; }
  .omtb-stat, .omtb-stat + .omtb-stat { padding: 14px 12px 14px 0; }
  .omtb-pit__stats { border-radius: 0; }
}

/* map light / dark + the last-rated fallback note */
.omtb-avy__mapwrap.is-maplight { --ink: #EDE7D8; --bone: #0A0A0A; --line: color-mix(in srgb, #0A0A0A 18%, transparent); --mute: color-mix(in srgb, #0A0A0A 62%, transparent); --panel: color-mix(in srgb, #0A0A0A 5%, #EDE7D8); --ember-text: #A83A28; }
.omtb-avy__mapwrap.is-maplight .maplibregl-ctrl-group button .maplibregl-ctrl-icon { filter: none; }
.omtb-avy__mapwrap.is-maplight .maplibregl-ctrl-attrib-button { filter: none; }
.omtb-mapopts { display: inline-flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.omtb-theme--map { margin-left: 0; }
.omtb-fallback { border-left: 3px solid var(--ember-text); background: color-mix(in srgb, var(--bone) 6%, transparent); padding: 12px 14px; margin: 0 0 16px; font-size: 14.5px; line-height: 1.5; }
.omtb-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--ember-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* storm tracker visuals in light mode (Carter 2026-11-14: "Visuals on Storm Tracker are still dark in light mode") */
.omtb-tool { --snow: #EDE7D8; --snow-deep: #1A4E50; }
html[data-omtb-theme="light"] .omtb-tool { --snow: #FFFFFF; --snow-deep: #1A4E50; }
.omtb-wl__t { fill: #0A0A0A; } .omtb-wl__t.is-dark { fill: #EDE7D8; }
.omtb-wgl { fill: color-mix(in srgb, #EDE7D8 78%, transparent); }
html[data-omtb-theme="light"] .omtb-wl__bar { stroke: color-mix(in srgb, #0A0A0A 28%, transparent); stroke-width: 1; }
html[data-omtb-theme="light"] .omtb-wl__bg { fill: color-mix(in srgb, #0A0A0A 6%, transparent); }
html[data-omtb-theme="light"] .omtb-wif { stroke: #EDE7D8; }
html[data-omtb-theme="light"] .omtb-wif--c2 { stroke: #B8860B; } html[data-omtb-theme="light"] .omtb-wif--c3 { stroke: #A83A28; }
html[data-omtb-theme="light"] .omtb-wsurf { stroke: #0A0A0A; }
html[data-omtb-theme="light"] .omtb-pit__area { fill: color-mix(in srgb, #1A4E50 20%, transparent); }
html[data-omtb-theme="light"] .omtb-pit__line { stroke: #1A4E50; }
html[data-omtb-theme="light"] .omtb-ramp { background: linear-gradient(90deg, #FFFFFF, color-mix(in oklab, #FFFFFF 22%, #1A4E50)); }

/* ═════════════ 2026-11-14 hierarchy: one way out first, one visual, everything else steps down ═════════════ */
.omtb-outs { margin: 0 0 22px; }
.omtb-outs__l { display: block; font: 600 12px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); margin-bottom: 12px; }
.omtb-outs__row { display: flex; flex-wrap: wrap; gap: 10px; }
.omtb-out { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 60px; padding: 10px 20px 10px 22px; border-radius: var(--r-ctl);
  border: 1px solid color-mix(in srgb, var(--bone) 34%, transparent); color: var(--bone); text-decoration: none; font: 700 16px/1.15 var(--display); letter-spacing: -.005em; }
.omtb-out small { display: block; font: 500 12.5px/1.2 var(--body); color: var(--mute); margin-top: 3px; letter-spacing: 0; }
.omtb-out i { font: 400 20px/1 var(--display); font-style: normal; }
.omtb-out:hover { border-color: var(--ember-text); color: var(--ember-text); }
.omtb-out:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 3px; }
.omtb-out--primary { background: var(--bone); color: var(--ink); border-color: var(--bone); min-height: 64px; font-size: 18px; padding-left: 26px; }
.omtb-out--primary small { color: color-mix(in srgb, var(--ink) 70%, transparent); }
.omtb-out--primary:hover { background: var(--ember-text); border-color: var(--ember-text); color: #0A0A0A; }
.omtb-out--primary:hover small { color: #0A0A0A; }
/* the notice steps down a size now that the way out leads; it is still body text and above the fold */
.omtb-notice { padding: 13px 18px; margin-bottom: 26px; max-width: 86ch; }
.omtb-notice p { font-size: 15px; line-height: 1.5; }
.omtb-notice strong { font-size: 15px; }
/* how-to sits with the visual it explains, as its caption */
.omtb-pit__wallcol .omtb-howto, .omtb-avy__mapcol .omtb-howto { margin: 22px 0 0; border-bottom: 0; }
.omtb-pit__wallcol .omtb-howto li, .omtb-avy__mapcol .omtb-howto li { padding-top: 16px; padding-bottom: 8px; }
.omtb-pit__wallcol .omtb-howto__n, .omtb-avy__mapcol .omtb-howto__n { font-size: 20px; }
.omtb-avy__mapcol .omtb-howto { padding-inline: clamp(16px, 4vw, 56px); max-width: calc(1320px + 2 * clamp(16px, 4vw, 56px)); margin-inline: auto; }
/* secondary numbers are secondary */
.omtb-stat b { font-size: clamp(18px, 1.7vw, 24px); }
.omtb-stat { padding-top: 14px; padding-bottom: 14px; }
.omtb-pit__season { margin-top: 28px; }
/* Snow page: one action, then the doors */
.omtb-start { margin: 6px 0 4px; }
.omtb-start__h { font: 800 clamp(26px, 3vw, 44px)/1.1 var(--display); letter-spacing: -.025em; margin: 0 0 18px; }
.omtb-then { font: 600 12px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); margin: 48px auto 0; }
.omtb-snow .omtb-notice { margin-top: 36px; }
.omtb-people { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); }
.omtb-people ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 40px; }
.omtb-people li { display: flex; flex-direction: column; gap: 3px; }
.omtb-people a { color: var(--bone); font: 700 18px/1.3 var(--display); text-decoration: none; }
.omtb-people a:hover { color: var(--ember-text); }
.omtb-people li span { color: var(--mute); font-size: 14.5px; }
/* the footer is its own region: a clear end to the tool, on these pages */
.omtb-tool-main { padding-bottom: 0; }
.omtb-tool { padding-bottom: 96px; }
.omtb-tool-main::after { content: ''; display: block; height: 14px; background: repeating-linear-gradient(90deg, transparent, transparent); border-top: 1px solid color-mix(in srgb, #EDE7D8 26%, transparent); box-shadow: 0 -1px 0 #0A0A0A; }
html[data-omtb-theme="light"] .omtb-tool-main::after { border-top: 0; height: 0; }
@media (max-width: 760px) {
  .omtb-out { width: 100%; }
  .omtb-people ul { grid-template-columns: 1fr; }
}

/* less empty air above the title, so the visual starts sooner */
.omtb-tool { padding-top: clamp(20px, 2.4vw, 36px); }
.omtb-tool-main { padding-top: 72px; }
.omtb-tool__nav { margin-bottom: 22px; }
.omtb-tool__title { font-size: clamp(38px, 5.4vw, 76px); margin-bottom: 14px; }
.omtb-tool__lede { margin-bottom: 22px; }
.omtb-notice { margin-bottom: 22px; }

/* ═════════════ critic round 8 ═════════════ */
.omtb-stale { font: 600 12px var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--ember-text); margin-left: 8px; }
/* 3. everything sits on the one column */
.omtb-tool > .omtb-notice { max-width: 1320px; margin-left: auto; margin-right: auto; }
.omtb-tool > .omtb-notice p { max-width: 86ch; }
.omtb-avy__mapcol .omtb-howto { padding-inline: 0; max-width: none; margin-inline: max(clamp(16px, 4vw, 56px), calc((100% - 1320px) / 2)); }
/* 7. round = choose, square = go (the home page's rule): actions are blocks, not pills */
.omtb-out { border-radius: var(--r-tip); }
/* fewer capsules: a layer's surface call is a typed label, not a chip */
.omtb-iface { border: 0; padding: 0; border-radius: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; line-height: 1.5; }
.omtb-iface::before { align-self: center; }
.omtb-lrow--in .omtb-iface { padding: 0; }
.omtb-tool__beta { border: 0; padding: 0; }
/* 5. the layer choice sits above the map it changes */
.omtb-avy__mapcol { display: flex; flex-direction: column; }
.omtb-avy__mapbar { order: -1; margin: 0 auto 14px; width: 100%; }
/* 6. the forecast's words lead the rail; this page's estimate follows, a size down */
.omtb-pit__side > [data-pit-avy] { border-top: 0; padding-top: 0; margin-top: 0; margin-bottom: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
[data-pit-avy] .omtb-xcard__h { font: 700 clamp(20px, 1.8vw, 26px)/1.25 var(--display); letter-spacing: -.015em; color: var(--bone); }
.omtb-think__head { font-size: clamp(18px, 1.5vw, 22px); }
@media (max-width: 1099px) {
  .omtb-pit__wallcol .omtb-howto { order: 3; }
  [data-pit-avy] { order: 4; margin-top: 32px; } .omtb-pit__think { order: 5; margin-top: 0; }
}
@media (max-width: 640px) {
  .omtb-iface { border-radius: 0; }
  .omtb-pit__wallcol .omtb-howto li { padding-right: 0; }
}

@media (min-width: 1100px) { .omtb-avy__mapbar { padding-right: calc(442px + clamp(16px, 4vw, 56px)); } }

/* ═════════════ MTB Flow pages (the tools as blocks on a real page) ═════════════ */
body.omtb-tool-page--flow .frame-zero-main { background: #0A0A0A; padding-top: 72px; padding-bottom: 0; min-height: 100vh; }
html[data-omtb-theme="light"] body.omtb-tool-page--flow .frame-zero-main { background: #EDE7D8; }
.omtb-tool--open { padding-bottom: 0; }
.omtb-tool--part { padding-top: 0; padding-bottom: 0; }
.omtb-tool--part > .omtb-notice { margin-top: 36px; margin-bottom: 0; }
.omtb-tool--part > .omtb-howto { margin-top: 36px; }
.omtb-tool:has(+ .frame-comments), .omtb-tool--part:last-child { padding-bottom: 64px; }
.omtb-editnote { font: 600 12px/1.4 var(--display); color: var(--mute); border: 1px dashed var(--line); border-radius: var(--r-tip); padding: 10px 14px; margin-bottom: 18px; }
/* the comment thread, on the tool's column and in its colours */
body.omtb-tool-page .frame-comments {
  --frame-fg1: #EDE7D8; --frame-fg3: color-mix(in srgb, #EDE7D8 62%, transparent); --frame-border: color-mix(in srgb, #EDE7D8 16%, transparent); --frame-accent: #FF7D11;
  box-sizing: border-box; background: #0A0A0A; color: var(--frame-fg1); font-family: 'Instrument Sans', system-ui, sans-serif;
  padding: 0 max(clamp(16px, 4vw, 56px), calc((100% - 1320px) / 2)) 96px;
}
body.omtb-tool-page .frame-comments::before { content: ''; display: block; border-top: 1px solid var(--frame-border); margin-bottom: 40px; }
body.omtb-tool-page .frame-comments > * { max-width: 760px; }
body.omtb-tool-page .frame-comments__heading { font: 800 clamp(24px, 2.6vw, 34px)/1.1 'Hanken Grotesk', system-ui, sans-serif; letter-spacing: -.01em; color: var(--frame-fg1); }
body.omtb-tool-page .frame-comments__count { color: var(--frame-fg3); font-weight: 600; }
html[data-omtb-theme="light"] body.omtb-tool-page .frame-comments {
  --frame-fg1: #0A0A0A; --frame-fg3: color-mix(in srgb, #0A0A0A 62%, transparent); --frame-border: color-mix(in srgb, #0A0A0A 20%, transparent); --frame-accent: #A83A28; background: #EDE7D8;
}
html[data-omtb-theme="light"] body.omtb-tool-page .frame-comments .wpd-editor-buttons svg, html[data-omtb-theme="light"] body.omtb-tool-page .frame-comments .wpd-editor-buttons i, html[data-omtb-theme="light"] body.omtb-tool-page .frame-comments .wmu-add-image { filter: none; }
/* wpDiscuz inside the tool column: on the left edge, no white editor, type in the page's colour */
body.omtb-tool-page .frame-comments #comments { margin: 0; max-width: 760px; }
body.omtb-tool-page .frame-comments #wpdcom { margin: 0; max-width: 100%; color: var(--frame-fg1); }
body.omtb-tool-page .frame-comments #wpdcom .ql-container { background: transparent !important; border-color: var(--frame-border) !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-editor.ql-blank::before { color: var(--frame-fg3); }
body.omtb-tool-page .frame-comments #wpdcom .wpd-thread-head .wpd-thread-info,
body.omtb-tool-page .frame-comments #wpdcom .wpd-thread-info .wpdtc,
body.omtb-tool-page .frame-comments #wpdcom .wpd-sbs-title,
body.omtb-tool-page .frame-comments #wpdcom .wpd-sbs-toggle i { color: var(--frame-fg1) !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-thread-head { border-bottom-color: var(--frame-border); }
body.omtb-tool-page .frame-comments { padding-bottom: 40px; }
.omtb-tool:has(+ style + .frame-comments) { padding-bottom: 64px; }
/* buttons are the MTB Flow button (.mf-btn); the tools only seat it */
.omtb-tool .omtb-flowbtn { align-self: flex-end; cursor: pointer; }
.omtb-tool .omtb-flowbtn[data-prev], .omtb-tool .omtb-flowbtn[data-avy-example] { margin-top: 14px; }

/* ═════════════ critic round 9 (the Flow pages) ═════════════ */
/* 6. air between the site bar and the tool nav */
.omtb-tool-main, body.omtb-tool-page--flow .frame-zero-main { padding-top: 88px; }
/* 8. the phone column sits on the site gutter, so page, header mark and footer share one edge */
@media (max-width: 760px) {
  .omtb-tool { padding-left: var(--site-gut, 20px); padding-right: var(--site-gut, 20px); }
  body.omtb-tool-page .frame-comments { padding-left: var(--site-gut, 20px); padding-right: var(--site-gut, 20px); }
}
/* 1, 3, 4, 7. the comment form belongs to the page: site faces, page colours, no stock chrome */
body.omtb-tool-page .frame-comments #comments, body.omtb-tool-page .frame-comments > * { max-width: 660px; }
body.omtb-tool-page .frame-comments #wpdcom, body.omtb-tool-page .frame-comments #wpdcom *:not(i):not([class*="fa-"]):not(svg):not(path) { font-family: 'Instrument Sans', system-ui, sans-serif !important; font-style: normal !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-editor.ql-blank::before { font-style: normal !important; font-family: 'Instrument Sans', system-ui, sans-serif !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-avatar, body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpd-avatar { display: none !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpd-form-foot, body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpd-textarea-wrap, body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpd-form-row { margin-left: 0 !important; padding-left: 0 !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form-wrap, body.omtb-tool-page .frame-comments #wpdcom .wpd-form, body.omtb-tool-page .frame-comments #wpdcom .wpd-form-row, body.omtb-tool-page .frame-comments #wpdcom .wpd-textarea-wrap, body.omtb-tool-page .frame-comments #wpdcom .wpd-editor-char-counter, body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar { background: transparent !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-login a, body.omtb-tool-page .frame-comments #wpdcom .wpd-auth a, body.omtb-tool-page .frame-comments #wpdcom a { color: var(--frame-accent) !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-editor, body.omtb-tool-page .frame-comments #wpdcom .ql-editor.ql-blank::before { font-size: 16px !important; left: 14px; }
body.omtb-tool-page .frame-comments #wpdcom .ql-container, body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar, body.omtb-tool-page .frame-comments #wpdcom input[type="text"], body.omtb-tool-page .frame-comments #wpdcom input[type="email"], body.omtb-tool-page .frame-comments #wpdcom input[type="url"] { border: 1px solid var(--frame-border) !important; border-radius: 8px !important; box-shadow: none !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar { border-top: 0 !important; border-radius: 0 0 8px 8px !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-container { border-radius: 8px 8px 0 0 !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar button svg, body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar .wmu-add i, body.omtb-tool-page .frame-comments #wpdcom .wpd-field-icon i { color: var(--frame-fg3) !important; fill: var(--frame-fg3) !important; filter: none !important; opacity: 1 !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar .ql-stroke { stroke: var(--frame-fg3) !important; }
body.omtb-tool-page .frame-comments #wpdcom .ql-toolbar .ql-fill { fill: var(--frame-fg3) !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form-col-right .wpd-field-group-title, body.omtb-tool-page .frame-comments #wpdcom .wpd-form-foot .wpd-field-notification-types, body.omtb-tool-page .frame-comments #wpdcom .wc-field-submit .wpd_label, body.omtb-tool-page .frame-comments #wpdcom .wc-field-submit label.wpd_label { border: 0 !important; background: transparent !important; }
body.omtb-tool-page .frame-comments #wpdcom .wc-field-submit .wpd_label__check i, body.omtb-tool-page .frame-comments #wpdcom .wc-field-submit .wpd_label i { color: var(--frame-fg3) !important; background: transparent !important; border: 1px solid var(--frame-border) !important; border-radius: 8px !important; }
body.omtb-tool-page .frame-comments #wpdcom .wc-field-submit input[type="submit"], body.omtb-tool-page .frame-comments #wpdcom .wpd-prim-button {
  font: 700 12px/1 'Hanken Grotesk', system-ui, sans-serif !important; letter-spacing: .14em !important; text-transform: uppercase !important;
  background: var(--frame-fg1) !important; color: var(--c-ground, #0A0A0A) !important; border: 0 !important; border-radius: 999px !important; height: 44px !important; padding: 0 22px !important; box-shadow: none !important; text-shadow: none !important;
}
html[data-omtb-theme="light"] body.omtb-tool-page .frame-comments { --c-ground: #EDE7D8; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-thread-head .wpd-thread-info { border-bottom-color: var(--frame-accent) !important; }
body.omtb-tool-page .frame-comments--empty #wpd-threads { display: none !important; }
body.omtb-tool-page .frame-comments { padding-bottom: 56px; }
/* round 9 re-check: no slab behind the editor, the Subscribe rule in the page's rule colour, the form fills its column on a phone */
body.omtb-tool-page .frame-comments #wpdcom .wpd-field-comment, body.omtb-tool-page .frame-comments #wpdcom .wpdiscuz-textarea-wrap { background: transparent !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form-head { border-bottom-color: var(--frame-border) !important; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpdiscuz-textarea-wrap, body.omtb-tool-page .frame-comments #wpdcom .wpd-form .wpd-form-foot { margin-right: 0 !important; padding-right: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
body.omtb-tool-page .frame-comments #wpdcom .wpd-form { padding-right: 0 !important; }

/* ── Tire pressure planner (2026-11-14) ─────────────────────────────────────────────────────────── */
.omtb-tire__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px 14px; margin-top: 28px; max-width: 980px; }
.omtb-tire__grid .omtb-field select, .omtb-tire__grid .omtb-field input { width: 100%; min-width: 0; }
.omtb-tire__grid .omtb-field input { background: var(--panel); color: var(--bone); border: 1px solid var(--line); border-radius: var(--r-ctl); height: 44px; padding: 0 18px; font: 500 15px var(--body); }
.omtb-tire__grid .omtb-field input:focus-visible { outline: 2px solid var(--ember-text); outline-offset: 2px; }
.omtb-tire__out { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 36px; max-width: 640px; }
.omtb-tire__card { border: 1px solid var(--line); border-radius: 18px; padding: 20px 22px 18px; background: var(--panel); }
.omtb-tire__card span { display: block; font: 600 12px var(--display); letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.omtb-tire__card b { display: block; font: 800 clamp(52px, 9vw, 84px)/1 var(--display); letter-spacing: -.02em; margin: 8px 0 6px; font-variant-numeric: tabular-nums; }
.omtb-tire__card b::after { content: ' psi'; font: 600 16px var(--display); letter-spacing: 0; opacity: .7; }
.omtb-tire__card small { font: 500 14px var(--body); opacity: .75; }
.omtb-tire__why { max-width: 640px; margin-top: 28px; }
.omtb-tire__why p { margin: 0 0 10px; opacity: .8; }
.omtb-tire__why ul { margin: 0; padding: 0; list-style: none; }
.omtb-tire__why li { padding: 9px 0; border-top: 1px solid var(--line); font-size: 15px; font-variant-numeric: tabular-nums; }
.omtb-tire__tune { max-width: 640px; margin-top: 28px; }
.omtb-tire__tune p { margin: 0 0 8px; }
.omtb-tire .omtb-notice { max-width: 640px; margin-top: 28px; }
