:root{--bg: #0d1218;--surface: #181f26;--surface-2: #252c34;--surface-warm: var( --surface-2 );--fg: #eef2f7;--fg-2: #cbd2d9;--muted: #8f9aa4;--meta: #7d8792;--border: #323940;--border-soft: #21272d;--accent: #b6ea3a;--accent-on: var(--bg);--accent-hover: #9fce22;--accent-active: #8eba10;--accent-ink: #517000;--accent-ink-hover: #425d00;--success: #4ac06c;--warn: #f9ad26;--danger: #f45249;--danger-ink: #c2181d;--el-air: #64c4f0;--el-land: #d58b4b;--el-water: #14bbc2;--el-ice: #a3dce7;--font-display: "Big Shoulders Display", "Barlow Condensed", "Arial Narrow", sans-serif;--font-body: "Barlow", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 20px;--text-xl: 26px;--text-2xl: 34px;--text-3xl: 46px;--text-4xl: 64px;--text-5xl: 88px;--leading-body: 1.55;--leading-tight: 1.15;--leading-numeric: 1.3;--tracking-display: -.015em;--tracking-eyebrow: .06em;--tracking-button: .02em;--numeric: tabular-nums;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-20: 80px;--section-y-desktop: 96px;--section-y-tablet: 56px;--section-y-phone: 40px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 9999px;--elev-flat: none;--elev-ring: 0 0 0 var(--hairline) var(--border);--elev-raised: 0 0 0 var(--hairline) var(--border), 0 12px 32px rgb(0 0 0 / .55);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--motion-fast: .14s;--motion-base: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--container-max: 1200px;--container-gutter-desktop: 24px;--container-gutter-tablet: 16px;--container-gutter-phone: 12px;--bg-rgb: 13, 18, 24;--fg-rgb: 238, 242, 247;--hairline: 1px}[data-surface=reading]{--bg: #f3f5f8;--surface: #ffffff;--surface-2: #eaedf1;--surface-warm: var(--surface-2);--fg: #1c2229;--fg-2: #2f3841;--muted: #555f69;--meta: var(--muted);--border: #d5d8db;--border-soft: #e6e9ec;--bg-rgb: 243, 245, 248;--fg-rgb: 28, 34, 41;--accent: var(--accent-ink);--accent-on: #ffffff;--accent-hover: var(--accent-ink-hover);--accent-active: var(--accent-ink-hover);--danger: var(--danger-ink);--elev-ring: 0 0 0 var(--hairline) var(--border);--elev-raised: 0 0 0 var(--hairline) var(--border), 0 8px 24px rgba(var(--fg-rgb), .1);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent-ink);background:var(--bg);color:var(--fg)}:root,[data-bs-theme=dark]{--bs-body-bg: var(--bg);--bs-body-bg-rgb: var(--bg-rgb);--bs-body-color: var(--fg);--bs-body-color-rgb: var(--fg-rgb);--bs-emphasis-color: var(--fg);--bs-emphasis-color-rgb: var(--fg-rgb);--bs-secondary-color: var(--muted);--bs-tertiary-color: var(--meta);--bs-secondary-bg: var(--surface);--bs-tertiary-bg: var(--surface-2);--bs-heading-color: var(--fg);--bs-card-bg: var(--surface);--bs-border-color: var(--border);--bs-border-color-translucent: rgba(var(--fg-rgb), .12);--bs-border-width: var(--hairline);--bs-border-radius-sm: var(--radius-sm);--bs-border-radius: var(--radius-md);--bs-border-radius-lg: var(--radius-lg);--bs-border-radius-xl: var(--radius-lg);--bs-border-radius-xxl: var(--radius-lg);--bs-border-radius-pill: var(--radius-pill);--bs-link-color: var(--fg);--bs-link-color-rgb: var(--fg-rgb);--bs-link-hover-color: var(--fg);--bs-link-hover-color-rgb: var(--fg-rgb);--bs-link-decoration: underline;--bs-font-sans-serif: var(--font-body);--bs-font-monospace: var(--font-mono);--bs-body-font-family: var(--font-body);--bs-body-font-size: var(--text-base);--bs-body-line-height: var(--leading-body);--bs-code-color: var(--fg-2);--bs-success: var(--success);--bs-warning: var(--warn);--bs-danger: var(--danger);--bs-primary: var(--accent);--bs-focus-ring-width: 3px;--bs-focus-ring-opacity: 1;--bs-focus-ring-color: var(--accent)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}.form-range::-webkit-slider-runnable-track{background-color:var(--border)}.form-range::-moz-range-track{background-color:var(--border)}.form-range::-webkit-slider-thumb{background-color:var(--fg)}.form-range::-moz-range-thumb{background-color:var(--fg)}.form-range::-webkit-slider-thumb:active{background-color:var(--fg-2)}.form-range::-moz-range-thumb:active{background-color:var(--fg-2)}.form-range:focus::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.form-range:focus::-moz-range-thumb{box-shadow:var(--focus-ring)}.navbar-toggler-icon{background-image:none;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") center / 100% 100% no-repeat;mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") center / 100% 100% no-repeat}.btn:focus-visible,.nav-link:focus-visible,.navbar-toggler:focus-visible,.dropdown-item:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus-ring)}.nav-pills{--bs-nav-pills-link-active-bg: var(--accent);--bs-nav-pills-link-active-color: var(--accent-on);--bs-nav-pills-border-radius: var(--radius-sm)}.accordion{--bs-accordion-bg: var(--surface);--bs-accordion-btn-bg: var(--surface);--bs-accordion-btn-color: var(--fg);--bs-accordion-border-color: var(--border);--bs-accordion-border-radius: var(--radius-md);--bs-accordion-active-bg: var(--surface-2);--bs-accordion-active-color: var(--fg);--bs-accordion-btn-focus-box-shadow: var(--focus-ring)}.accordion-button:after{background-image:none;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center / 100% 100% no-repeat;mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center / 100% 100% no-repeat}.fc .btn-primary{--bs-btn-bg: var(--surface);--bs-btn-color: var(--fg);--bs-btn-border-color: var(--border);--bs-btn-hover-bg: var(--surface-2);--bs-btn-hover-color: var(--fg);--bs-btn-hover-border-color: var(--border);--bs-btn-active-bg: var(--accent);--bs-btn-active-color: var(--accent-on);--bs-btn-active-border-color: var(--accent);--bs-btn-disabled-bg: var(--surface);--bs-btn-disabled-color: var(--muted);--bs-btn-disabled-border-color: var(--border)}.fc{--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--surface-2);--fc-neutral-text-color: var(--muted);--fc-border-color: var(--border);--fc-today-bg-color: rgba(var(--fg-rgb), .06);--fc-highlight-color: rgba(var(--fg-rgb), .08);--fc-now-indicator-color: var(--fg);--fc-event-bg-color: color-mix( in oklab, var(--el, var(--el-air)) 18%, var(--surface) );--fc-event-border-color: var(--el, var(--el-air));--fc-event-text-color: var(--fg);--fc-more-link-bg-color: var(--surface-2);--fc-more-link-text-color: var(--fg);--fc-list-event-hover-bg-color: var(--surface-2)}.fc .fc-daygrid-week-number:not([href]){color:var(--fc-neutral-text-color)}.fc .fc-event.is-confirmed{--fc-event-bg-color: color-mix(in oklab, var(--success) 18%, var(--surface));--fc-event-border-color: var(--success)}.fc .fc-h-event:not(.is-confirmed){border-style:dashed}.pagination{--bs-pagination-bg: var(--surface);--bs-pagination-color: var(--fg);--bs-pagination-border-color: var(--border);--bs-pagination-hover-bg: var(--surface-2);--bs-pagination-hover-color: var(--fg);--bs-pagination-hover-border-color: var(--border);--bs-pagination-focus-bg: var(--surface-2);--bs-pagination-focus-color: var(--fg);--bs-pagination-focus-box-shadow: var(--focus-ring);--bs-pagination-active-bg: var(--accent);--bs-pagination-active-color: var(--accent-on);--bs-pagination-active-border-color: var(--accent);--bs-pagination-disabled-bg: var(--surface);--bs-pagination-disabled-color: var(--muted);--bs-pagination-disabled-border-color: var(--border)}.od-btn-primary{--bs-btn-bg: var(--accent);--bs-btn-color: var(--accent-on);--bs-btn-border-color: var(--accent);--bs-btn-hover-bg: var(--accent-hover);--bs-btn-hover-color: var(--accent-on);--bs-btn-hover-border-color: var(--accent-hover);--bs-btn-active-bg: var(--accent-active);--bs-btn-active-color: var(--accent-on);--bs-btn-active-border-color: var(--accent-active);--bs-btn-disabled-bg: var(--surface-2);--bs-btn-disabled-color: var(--meta);--bs-btn-disabled-border-color: var(--border);--bs-btn-border-radius: var(--radius-sm);--bs-btn-padding-y: 10px;--bs-btn-padding-x: 18px;--bs-btn-font-family: var(--font-display);--bs-btn-font-weight: 600;min-height:44px;letter-spacing:var(--tracking-button)}.od-btn-secondary{--bs-btn-bg: transparent;--bs-btn-color: var(--fg);--bs-btn-border-color: var(--border);--bs-btn-hover-bg: var(--surface-2);--bs-btn-hover-color: var(--fg);--bs-btn-hover-border-color: var(--muted);--bs-btn-active-bg: var(--surface-2);--bs-btn-active-color: var(--fg);--bs-btn-border-radius: var(--radius-sm);--bs-btn-padding-y: 10px;--bs-btn-padding-x: 18px;--bs-btn-font-family: var(--font-display);--bs-btn-font-weight: 600;min-height:44px;letter-spacing:var(--tracking-button)}.od-btn-ghost{--bs-btn-bg: transparent;--bs-btn-color: var(--fg);--bs-btn-border-color: transparent;--bs-btn-hover-bg: var(--surface-2);--bs-btn-hover-color: var(--fg);--bs-btn-hover-border-color: transparent;--bs-btn-active-bg: var(--surface-2);--bs-btn-active-color: var(--fg);--bs-btn-border-radius: var(--radius-sm);--bs-btn-padding-y: 10px;--bs-btn-padding-x: 18px;--bs-btn-font-family: var(--font-display);--bs-btn-font-weight: 600;min-height:44px;letter-spacing:var(--tracking-button)}.od-eyebrow,.od-label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--muted)}.od-label{display:block;margin-block-end:var(--space-2)}.od-input{width:100%;min-height:44px;padding:10px 12px;background:var(--surface);border:var(--hairline) solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--motion-fast) var(--ease-standard)}.od-input::placeholder{color:var(--meta)}.od-input:hover{border-color:var(--muted)}.od-input:focus,.od-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.od-input-num{font-family:var(--font-mono);font-variant-numeric:var(--numeric)}.od-input-invalid,.od-input-invalid:hover{border-color:var(--danger)}.od-input:disabled{background:var(--surface-2);color:var(--meta);cursor:not-allowed}.od-select{position:relative;display:block}.od-select>select{appearance:none;background-image:none;padding-inline-end:36px}.od-select:after{content:"";position:absolute;inset-inline-end:14px;inset-block-start:50%;width:12px;height:12px;margin-block-start:-6px;pointer-events:none;background-color:var(--muted);-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center / 100% 100% no-repeat;mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e") center / 100% 100% no-repeat}.od-select:has(>select:disabled):after{background-color:var(--meta)}.od-select:has(>select[multiple]):after,.od-select:has(>select[size]:not([size="1"])):after{display:none}.od-select>select[multiple],.od-select>select[size]:not([size="1"]){padding-inline-end:12px}.od-help{margin:var(--space-2) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.od-help-error{color:var(--danger)}.od-readout{font-family:var(--font-mono);font-variant-numeric:var(--numeric);font-size:var(--text-2xl);line-height:var(--leading-numeric);color:var(--fg)}.od-readout .od-unit{font-size:var(--text-sm);color:var(--muted);margin-inline-start:var(--space-2)}.od-readout--danger{color:var(--danger)}.od-band{display:flex;gap:2px;margin-block-start:var(--space-4)}.od-band>span{flex:1;height:6px;border-radius:2px;background:var(--border);transition:background-color var(--motion-fast) var(--ease-standard)}.od-band[data-band="1"]>span:nth-child(-n+1),.od-band[data-band="2"]>span:nth-child(-n+2),.od-band[data-band="3"]>span:nth-child(-n+3),.od-band[data-band="4"]>span:nth-child(-n+4){background:var(--el, var(--el-air))}@media(prefers-reduced-motion:reduce){.od-band>span{transition:none}}.od-tag{display:inline-flex;align-items:center;padding:3px 10px;border:var(--hairline) solid var(--el, var(--border));border-radius:var(--radius-pill);color:var(--el, var(--muted));background:transparent;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.od-el-air{--el: var(--el-air)}.od-el-land{--el: var(--el-land)}.od-el-water{--el: var(--el-water)}.od-el-ice{--el: var(--el-ice)}.od-status{display:inline-flex;align-items:center;gap:var(--space-2);padding:3px 10px;border:var(--hairline) solid currentColor;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.od-status--live{color:var(--success)}.od-status--soon{color:var(--warn)}.od-status--lapsed{color:var(--danger)}.od-skip-link{position:fixed;inset-block-start:var(--space-3);inset-inline-start:var(--space-3);z-index:1090;padding:10px 14px;border:var(--hairline) solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--fg);font-family:var(--font-display);font-weight:600;text-decoration:none}.od-alert{--od-alert-state: var(--muted);display:grid;grid-template-columns:3px minmax(0,1fr);gap:var(--space-4);margin-block:var(--space-4);padding:var(--space-4) var(--space-5);border:var(--hairline) solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg)}.od-alert:before{content:"";border-radius:var(--radius-pill);background:var(--od-alert-state)}.od-alert__content{margin:0}.od-alert__label{display:block;margin:0 0 var(--space-1);color:var(--od-alert-state);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.od-alert__list{margin:0;padding-inline-start:var(--space-5)}.od-alert--debug,.od-alert--info{--od-alert-state: var(--muted)}.od-alert--success{--od-alert-state: var(--success)}.od-alert--warning{--od-alert-state: var(--warn)}.od-alert--error{--od-alert-state: var(--danger)}.od-error-summary:focus{outline:none;box-shadow:var(--focus-ring)}[data-surface=reading]{--bs-body-bg: var(--bg);--bs-body-color: var(--fg);--bs-secondary-color: var(--muted);--bs-secondary-bg: var(--surface);--bs-tertiary-bg: var(--surface-2);--bs-card-bg: var(--surface);--bs-border-color: var(--border);--bs-emphasis-color: var(--fg);--bs-heading-color: var(--fg);--bs-link-color: var(--fg);--bs-link-hover-color: var(--fg);--bs-focus-ring-color: var(--accent-ink)}[data-surface=reading] .od-btn-primary{--bs-btn-bg: var(--accent-ink);--bs-btn-color: var(--accent-on);--bs-btn-border-color: var(--accent-ink);--bs-btn-hover-bg: var(--accent-ink-hover);--bs-btn-hover-color: var(--accent-on);--bs-btn-hover-border-color: var(--accent-ink-hover);--bs-btn-active-bg: var(--accent-ink-hover);--bs-btn-active-color: var(--accent-on)}body{font-family:var(--font-body)}h1,h2,h3,h4,h5,h6,.navbar-brand{font-family:var(--font-display)}.od-readout,td.od-num,output{font-family:var(--font-mono);font-variant-numeric:var(--numeric)}.od-social a{color:var(--muted);display:inline-flex;transition:color var(--motion-fast) var(--ease-standard)}.od-social a:hover,.od-social a:focus-visible{color:var(--accent)}@media(prefers-reduced-motion:reduce){.od-social a{transition:none}}.od-foot__title{margin-bottom:var(--space-3)}.od-foot__link{color:var(--fg-2);text-decoration:none;transition:color var(--motion-fast) var(--ease-standard)}.od-foot__link:hover,.od-foot__link:focus-visible{color:var(--accent);text-decoration:underline}@media(prefers-reduced-motion:reduce){.od-foot__link{transition:none}}.od-foot__mark,.navbar-brand .od-mark{width:28px;height:28px}
