/* Sideline Sky. Identity "Dusk": paper + ink, dusk indigo sky with an apricot horizon, lilac haze, lightning violet.
   Type: Familjen Grotesk (display), Geist (text), Geist Mono (numbers). No inline styles anywhere (CSP style-src 'self'). */
@font-face { font-family: "Familjen Grotesk"; src: url(fonts/familjen-grotesk-var.woff2) format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Geist"; src: url(fonts/geist-var.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url(fonts/geist-mono-var.woff2) format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --paper: #FBF8F3; --paper2: #F3EEE6; --card: #FFFFFF; --ink: #17142B; --ink2: #4D4868; --ink3: #6E6A86; --line: #E4DED3;
  --dusk: #1F1B4D; --dusk2: #2D2770; --dusk3: #463A8C; --lilac: #C9C3F2; --haze: #EAE6FB; --apricot: #FFB067; --coral: #F0705A; --violet: #7B6CFF;
  --l1: #2E8B57; --l2: #E3B505; --l3: #E57A1F; --l4: #C8372D; --l5: #121212;
  --f-d: "Familjen Grotesk", "Helvetica Neue", Arial, sans-serif; --f-t: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif; --f-m: "Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --r: 14px; --r-lg: 22px; --shadow: 0 1px 2px rgba(23, 20, 43, .06), 0 10px 30px -12px rgba(23, 20, 43, .22);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 17px/1.6 var(--f-t); font-feature-settings: "ss01"; overflow-x: hidden; }
img, svg { max-width: 100%; }
a { color: var(--dusk3); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--dusk); }
:focus-visible { outline: 3px solid var(--violet); outline-offset: 2px; border-radius: 6px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--apricot); color: var(--ink); padding: 8px 14px; border-radius: 8px; z-index: 50; }
.skip:focus { left: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gl { width: 1.1em; height: 1.1em; vertical-align: -0.18em; flex: none; }
.wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.block { padding-top: 28px; padding-bottom: 28px; }
.muted { color: var(--ink3); }
.paused-note { margin: 6px 0 0; font-size: 13px; line-height: 1.4; color: var(--ink); background: var(--paper2); border-left: 3px solid var(--ink3); padding: 6px 10px; border-radius: 6px; }
.fine { font-size: 14px; color: var(--ink3); line-height: 1.55; }
.hint { font-weight: 400; color: var(--ink3); font-size: 14px; }

/* ---------- header ---------- */
.top { background: var(--dusk); color: var(--paper); position: sticky; top: 0; z-index: 20; box-shadow: 0 1px 0 rgba(255, 255, 255, .06); }
.top-in { max-width: 1180px; margin: 0 auto; padding: 12px 28px; display: flex; align-items: center; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--paper); text-decoration: none; font: 700 21px/1 var(--f-d); letter-spacing: -.01em; }
.brand:hover { color: #fff; }
.brand .mark { width: 34px; height: 34px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12); border-radius: 11px; }
.brand-word em { font-style: normal; color: var(--apricot); }
.seg { display: flex; gap: 4px; padding: 4px; margin: 0 auto; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); border-radius: 999px; }
.seg a { color: var(--lilac); text-decoration: none; font: 500 15px/1 var(--f-t); padding: 9px 16px; border-radius: 999px; white-space: nowrap; }
.seg a:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.seg a[aria-current="page"] { background: var(--paper); color: var(--dusk); }
.top-cta { display: inline-flex; align-items: center; gap: 8px; background: var(--apricot); color: var(--ink); text-decoration: none; font: 600 15px/1 var(--f-t); padding: 11px 16px; border-radius: 999px; white-space: nowrap; }
.top-cta:hover { background: #FFC184; color: var(--ink); }

/* ---------- buttons ---------- */
.go-btn, .ghost-btn, .storm-btn, .danger-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 600 16px/1.1 var(--f-t); border-radius: 12px; padding: 13px 20px; text-decoration: none; cursor: pointer; border: 0; }
.go-btn { background: var(--dusk); color: #fff; }
.go-btn:hover { background: var(--dusk2); color: #fff; }
.ghost-btn { background: transparent; color: var(--dusk); box-shadow: inset 0 0 0 1.5px var(--dusk); }
.ghost-btn:hover { background: var(--haze); color: var(--dusk); }
.storm-btn { background: var(--violet); color: #fff; box-shadow: 0 10px 30px -10px rgba(123, 108, 255, .8); }
.storm-btn:hover { background: #6A5AF2; }
.storm-btn.big { font-size: 20px; padding: 22px 28px; border-radius: 18px; width: 100%; max-width: 560px; }
.danger-btn { background: var(--l4); color: #fff; }
.linkish { background: none; border: 0; padding: 0; font: inherit; color: var(--dusk3); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.linkish.danger { color: var(--l4); }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

/* ---------- type ---------- */
.display { font: 700 clamp(44px, 6.4vw, 84px)/.98 var(--f-d); letter-spacing: -.035em; margin: 0 0 22px; }
.h1 { font: 700 clamp(34px, 4.4vw, 56px)/1.04 var(--f-d); letter-spacing: -.03em; margin: 0 0 14px; }
.h2 { font: 700 clamp(26px, 2.6vw, 36px)/1.1 var(--f-d); letter-spacing: -.02em; margin: 0 0 14px; }
.h3 { font: 700 21px/1.2 var(--f-d); margin: 0 0 8px; }
.eyebrow { font: 600 13px/1.2 var(--f-m); letter-spacing: .08em; text-transform: uppercase; color: var(--dusk3); margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.lede { font-size: 19px; line-height: 1.6; color: var(--ink2); max-width: 760px; margin: 0; }
.sub { color: var(--ink2); margin: -4px 0 16px; }
.meta { font: 400 14px/1.6 var(--f-m); color: var(--ink2); margin: 4px 0; }

/* ---------- home hero ---------- */
.hero { position: relative; color: var(--paper); background: linear-gradient(180deg, #17133F 0%, #241E5C 34%, #4A3A86 62%, #9A5C86 84%, #E98B6A 100%); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 50% at 78% 100%, rgba(255, 176, 103, .55), transparent 70%), radial-gradient(1.5px 1.5px at 12% 18%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 32% 9%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 54% 22%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 71% 12%, #fff 50%, transparent 51%), radial-gradient(1.5px 1.5px at 88% 26%, #fff 50%, transparent 51%); opacity: .9; pointer-events: none; }
.hero-in { position: relative; max-width: 1180px; margin: 0 auto; padding: 84px 28px 110px; display: grid; grid-template-columns: 1.08fr .92fr; gap: 56px; align-items: center; }
.hero .eyebrow { color: var(--apricot); }
.hero .lede { color: #E4E0F7; }
.glow { color: var(--apricot); }
.horizon { position: absolute; left: 0; right: 0; bottom: 0; height: 22px; background: linear-gradient(180deg, transparent, var(--paper)); }
.find { margin-top: 30px; }
.find-label { display: block; font: 600 13px/1 var(--f-m); letter-spacing: .08em; text-transform: uppercase; color: var(--lilac); margin-bottom: 10px; }
.find-row { display: flex; gap: 10px; flex-wrap: wrap; }
.find-row input { flex: 1 1 240px; min-width: 0; }
.hero .find-row input { background: rgba(255, 255, 255, .97); border-color: transparent; font-size: 18px; padding: 16px 18px; }
.hero .go-btn { background: var(--apricot); color: var(--ink); padding: 16px 22px; }
.hero .go-btn:hover { background: #FFC184; }
.hero .ghost-btn { color: var(--paper); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); }
.hero .ghost-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.find-note { font-size: 14px; color: var(--lilac); margin: 12px 0 0; }
.find-note a { color: #fff; }

.skycard { margin: 0; background: var(--card); color: var(--ink); border-radius: var(--r-lg); padding: 24px 24px 20px; box-shadow: 0 30px 80px -30px rgba(10, 6, 40, .7), 0 0 0 1px rgba(255, 255, 255, .25); }
.skycard-tag { display: inline-block; font: 600 12px/1 var(--f-m); letter-spacing: .06em; text-transform: uppercase; background: var(--haze); color: var(--dusk3); padding: 7px 10px; border-radius: 999px; margin: 0 0 16px; }
.skycard-top { display: flex; justify-content: space-between; gap: 16px; }
.skycard-k { margin: 0; color: var(--ink3); font-size: 14px; }
.skycard-num { margin: 2px 0 4px; font: 600 64px/1 var(--f-t); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.skycard-num span { font-size: 22px; color: var(--ink3); margin-left: 4px; letter-spacing: 0; }
.skycard-sub { margin: 0; color: var(--ink2); font-size: 15px; }
.skycard-sun { width: 84px; height: 84px; border-radius: 50%; flex: none; background: radial-gradient(circle at 50% 50%, #FFD29A 0 38%, var(--apricot) 39% 52%, rgba(255, 176, 103, .25) 53% 70%, transparent 71%); }
.ribbon { list-style: none; margin: 22px 0 14px; padding: 0; display: grid; grid-template-columns: repeat(14, 1fr); gap: 4px; align-items: end; height: 150px; }
.ribbon li { display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; height: 100%; }
.ribbon .bar { display: block; border-radius: 6px 6px 3px 3px; background: currentColor; min-height: 6px; }
.ribbon .t { font: 500 11px/1 var(--f-m); color: var(--ink3); text-align: center; margin-top: 6px; }
.ribbon li.lv1 { color: var(--l1); } .ribbon li.lv2 { color: var(--l2); } .ribbon li.lv3 { color: var(--l3); } .ribbon li.lv4 { color: var(--l4); } .ribbon li.lv5 { color: var(--l5); }
.bh0 { height: 4%; } .bh1 { height: 5%; } .bh2 { height: 10%; } .bh3 { height: 15%; } .bh4 { height: 20%; } .bh5 { height: 25%; } .bh6 { height: 30%; } .bh7 { height: 35%; } .bh8 { height: 40%; } .bh9 { height: 45%; } .bh10 { height: 50%; }
.bh11 { height: 55%; } .bh12 { height: 60%; } .bh13 { height: 65%; } .bh14 { height: 70%; } .bh15 { height: 75%; } .bh16 { height: 80%; } .bh17 { height: 85%; } .bh18 { height: 90%; } .bh19 { height: 95%; } .bh20 { height: 100%; }
.skycard-best { display: flex; gap: 10px; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 14px; font-size: 15px; color: var(--ink2); }
.skycard-best .gl { color: var(--dusk3); margin-top: 3px; }

/* level chips */
.lv { display: inline-block; font: 600 13px/1 var(--f-m); padding: 5px 9px; border-radius: 999px; white-space: nowrap; }
.lv1 .lv, .lv.lv1 { background: var(--l1); color: #fff; }
.lv.lv2 { background: var(--l2); color: var(--ink); }
.lv.lv3 { background: var(--l3); color: var(--ink); }
.lv.lv4 { background: var(--l4); color: #fff; }
.lv.lv5 { background: var(--l5); color: #fff; }

/* ---------- home sections ---------- */
.calls { padding: 72px 0 40px; }
.calls-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px; }
.call { background: var(--card); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow); display: flex; flex-direction: column; border-top: 5px solid var(--l3); }
.call-sky { border-top-color: var(--dusk3); }
.call-clock { border-top-color: var(--violet); }
.call h3 { font: 700 28px/1 var(--f-d); margin: 6px 0 12px; }
.call p { margin: 0 0 16px; color: var(--ink2); }
.call-ico { margin: 0; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--paper2); color: var(--dusk); }
.call-ico .gl { width: 24px; height: 24px; }
.more { margin-top: auto; font-weight: 600; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }

.ladder { padding: 48px 0; background: var(--dusk); color: var(--paper); }
.ladder .h2 { color: #fff; }
.ladder-head { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: end; margin-bottom: 28px; }
.ladder-head p { margin: 0; color: var(--lilac); }
.ladder-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.rung-col { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--r-lg); padding: 20px; }
.rung-name { font: 700 22px/1 var(--f-d); margin: 0 0 4px; color: #fff; }
.rung-hint { margin: 0 0 14px; color: var(--lilac); font-size: 14px; }
.rungs { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.rungs li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 14px; border-radius: 10px; font: 500 15px/1.2 var(--f-m); }
.rungs li.lv1 { background: var(--l1); color: #fff; } .rungs li.lv2 { background: var(--l2); color: var(--ink); } .rungs li.lv3 { background: var(--l3); color: var(--ink); } .rungs li.lv4 { background: var(--l4); color: #fff; } .rungs li.lv5 { background: #000; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.rung-l { font-family: var(--f-t); font-weight: 600; }
.ladder .fine { color: var(--lilac); margin-top: 20px; }

.plans { padding: 72px 0 36px; }
.plans-lede { color: var(--ink2); max-width: 720px; margin: 0 0 26px; }
.plan-grid { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 18px; align-items: stretch; }
.plan { background: var(--card); border-radius: var(--r-lg); padding: 26px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.plan-plus { background: linear-gradient(170deg, var(--dusk) 0%, #3B3080 100%); color: var(--paper); border: 0; transform: translateY(-8px); }
.plan-name { font: 700 22px/1.1 var(--f-d); margin: 0 0 10px; }
.plan-price { margin: 0 0 16px; color: var(--ink2); }
.plan-plus .plan-price { color: var(--lilac); }
.plan-price .amt { font: 600 38px/1 var(--f-t); color: var(--ink); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.plan-plus .plan-price .amt { color: #fff; }
.plan-price .or { margin: 0 4px; }
.plan ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.plan li { padding-left: 24px; position: relative; font-size: 15px; }
.plan li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 12px; height: 7px; border-left: 2px solid var(--l1); border-bottom: 2px solid var(--l1); transform: rotate(-45deg); }
.plan-plus li::before { border-color: var(--apricot); }
.preview-note { display: flex; gap: 12px; align-items: flex-start; background: var(--haze); color: var(--ink); border-radius: var(--r); padding: 16px 18px; margin: 22px 0 0; }
.preview-note .gl { color: var(--dusk3); margin-top: 4px; }

.isnot { padding: 36px 0 72px; }
.isnot-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; }
.isnot ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.isnot li { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px; color: var(--ink2); }
.isnot li strong { color: var(--ink); }

/* ---------- inner pages ---------- */
.pagehead { padding: 56px 0 34px; border-bottom: 1px solid var(--line); background: var(--paper2); }
.pagehead-sky { background: linear-gradient(180deg, #17133F 0%, #2D2770 70%, #4A3A86 100%); color: var(--paper); border-bottom: 0; }
.pagehead-sky .eyebrow { color: var(--apricot); }
.pagehead-sky .lede, .pagehead-sky .meta { color: #DAD5F3; }
.pagehead-sky .linkish { color: #fff; }
.pagehead-sky .stale { color: var(--apricot); }
.pagehead-storm { background: radial-gradient(70% 90% at 85% 10%, rgba(123, 108, 255, .45), transparent 60%), linear-gradient(180deg, #120E30, #221A52); color: var(--paper); border-bottom: 0; }
.pagehead-storm .eyebrow { color: var(--lilac); }
.pagehead-storm .lede { color: #DAD5F3; }
.prose { max-width: 860px; }
.prose p, .prose li { color: var(--ink2); }
.prose .h2 { margin-top: 30px; }
.callout { background: #FFF4E6; border-left: 4px solid var(--l3); padding: 14px 18px; border-radius: 0 var(--r) var(--r) 0; color: var(--ink) !important; }
.qa dt { font: 700 19px/1.3 var(--f-d); margin-top: 18px; }
.qa dd { margin: 6px 0 0; color: var(--ink2); max-width: 820px; }
.ticks { padding-left: 20px; display: grid; gap: 10px; }
.steps { padding-left: 22px; display: grid; gap: 10px; }

/* forms */
label { display: block; font-weight: 600; font-size: 15px; margin: 0 0 6px; }
input, select { font: 400 17px/1.3 var(--f-t); color: var(--ink); background: var(--card); border: 1.5px solid #CFC8BC; border-radius: 12px; padding: 13px 14px; width: 100%; max-width: 100%; }
input:focus, select:focus { border-color: var(--violet); outline: none; box-shadow: 0 0 0 3px rgba(123, 108, 255, .25); }
fieldset { border: 0; padding: 0; margin: 18px 0 0; min-width: 0; }
legend { font-weight: 600; font-size: 15px; margin-bottom: 8px; padding: 0; }
.stack { display: grid; gap: 12px; }
.stack label { margin-bottom: -4px; }
.narrow { max-width: 620px; }
.row3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.row3 label { margin: 0; }
.row3 select { margin-top: 6px; }
.check { display: flex; gap: 10px; align-items: center; font-weight: 400; }
.check input { width: auto; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { margin: 0; cursor: pointer; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip span { display: inline-block; padding: 10px 14px; border-radius: 999px; border: 1.5px solid #CFC8BC; font-weight: 500; background: var(--card); }
.chip input:checked + span { background: var(--dusk); border-color: var(--dusk); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--violet); outline-offset: 2px; }
.custom-b { margin-top: 12px; font-weight: 500; }
.custom-b input { margin-top: 6px; max-width: 320px; display: block; }
.err { color: #8E1F16; background: #FCE9E6; border-radius: 10px; padding: 10px 14px; margin: 8px 0; }
.err.big { font-size: 17px; padding: 14px 18px; }
.note { background: #E8F4EC; color: #12442A; border-radius: 10px; padding: 12px 16px; margin: 0 0 16px; }
.checkform { background: var(--card); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow); border: 1px solid var(--line); }
.cf-win { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.cf-win summary { cursor: pointer; font-weight: 600; color: var(--dusk3); }
.win-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.win-grid label { margin: 0; font-weight: 500; }
.win-grid select { margin-top: 6px; }

/* results */
.result-head .h1 { margin-bottom: 8px; }
.alerts-wrap { margin-top: 20px; }
.alertband { display: flex; gap: 12px; align-items: flex-start; border-radius: var(--r); padding: 14px 18px; margin: 0; }
.alertband ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.alertband.is-on { background: #FDE8E4; color: #5A140D; border: 1px solid #F3B9AE; }
.alertband.is-on .gl { color: var(--l4); margin-top: 3px; }
.alertband.is-none { background: var(--paper2); color: var(--ink2); }
.alertband.is-unknown { background: #FFF4E6; color: #5A3A0D; }
.until { color: var(--ink3); font-size: 14px; }
.nowgrid { margin-bottom: 8px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 20px; margin-top: 20px; }
.nowcard { border-radius: var(--r-lg); padding: 26px; color: #fff; background: var(--ink); }
.nowcard.lvbg1 { background: linear-gradient(160deg, #237048, var(--l1)); }
.nowcard.lvbg2 { background: linear-gradient(160deg, #C99F00, var(--l2)); color: var(--ink); }
.nowcard.lvbg3 { background: linear-gradient(160deg, #C9620F, var(--l3)); color: var(--ink); }
.nowcard.lvbg4 { background: linear-gradient(160deg, #9E2219, var(--l4)); }
.nowcard.lvbg5 { background: linear-gradient(160deg, #000, #2A2A2A); }
.nc-k { margin: 0; font: 600 13px/1 var(--f-m); letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.nc-num { font: 600 78px/1 var(--f-t); letter-spacing: -.035em; margin: 14px 0 8px; font-variant-numeric: tabular-nums; }
.nc-num span { font-size: 18px; letter-spacing: 0; margin-left: 8px; opacity: .85; }
.nc-lv { margin: 0; font-weight: 600; font-size: 18px; }
.nc-note { margin: 10px 0 0; font-size: 14px; opacity: .85; }
.nowstats { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nowstats div { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; }
.nowstats dt { font-size: 14px; color: var(--ink3); display: flex; gap: 6px; align-items: center; }
.nowstats dd { margin: 4px 0 0; font: 600 20px/1.2 var(--f-t); font-variant-numeric: tabular-nums; }
.hib { display: inline-block; font: 600 12px/1 var(--f-t); background: #FFF0DD; color: #7A3E00; padding: 4px 8px; border-radius: 999px; vertical-align: 3px; }
.days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 10px; }
.daycard { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; min-width: 0; }
.dc-day { margin: 0; font: 700 18px/1 var(--f-d); }
.dc-day span { font: 400 13px/1 var(--f-m); color: var(--ink3); }
.dc-peak { font: 600 30px/1 var(--f-t); margin: 12px 0 8px; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.dc-peak small { font-size: 14px; color: var(--ink3); }
.daycard.is-partial { border-style: dashed; background: var(--paper2); }
.daycard.is-partial .dc-peak { color: var(--ink2); }
.dc-part { margin: 8px 0 0; font-size: 12px; line-height: 1.35; color: var(--ink2); }
.dc-lv { margin: 0 0 8px; font-size: 13px; color: var(--ink3); }
.dc-row { margin: 2px 0; font-size: 13px; color: var(--ink2); }
.dc-hours { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 4px; }
.dc-hours .lv { font-size: 11px; padding: 4px 6px; }
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r); border: 1px solid var(--line); background: var(--card); }
/* v1.1.1 (SFPC-3): the wrapper is a keyboard-focusable region (tabindex="0"): same focus ring as the rest of the site, own corner radius */
.tbl-wrap:focus-visible { outline: 3px solid var(--violet); outline-offset: 2px; border-radius: var(--r); }
.data { width: 100%; border-collapse: collapse; font-size: 15px; }
.data th, .data td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.data thead th { font: 600 12px/1.2 var(--f-m); letter-spacing: .05em; text-transform: uppercase; color: var(--ink3); background: var(--paper2); }
.data tbody tr:last-child th, .data tbody tr:last-child td { border-bottom: 0; }
.data .num { font-family: var(--f-t); font-variant-numeric: tabular-nums; }
.data .strong { font-weight: 600; }
.data .warn { color: var(--l4); font-weight: 600; }
.data td.muted { white-space: normal; }
.logt td { white-space: normal; min-width: 60px; }
.dayhours { margin: 0 0 10px; }
.dayhours summary { cursor: pointer; font: 700 19px/1.3 var(--f-d); padding: 10px 0; }
.planstrip { display: flex; gap: 24px; align-items: center; justify-content: space-between; background: var(--haze); border-radius: var(--r-lg); padding: 24px 28px; margin-top: 12px; margin-bottom: 12px; max-width: 1124px; }
.planstrip p { margin: 0; color: var(--ink2); }
.planstrip > a { flex: none; white-space: nowrap; }
.ps-k { font: 700 20px/1.2 var(--f-d); color: var(--ink) !important; margin-bottom: 6px !important; display: flex; gap: 8px; align-items: center; }

/* lightning clock */
.clockhead { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: start; }
.clockform { background: rgba(255, 255, 255, .97); color: var(--ink); border-radius: var(--r-lg); padding: 24px; display: grid; gap: 10px; box-shadow: 0 30px 80px -30px rgba(10, 6, 40, .8); }
.clockform label { margin: 4px 0 0; }
.clockform-btns { display: grid; gap: 10px; margin-top: 8px; }
.clockpage { color: var(--paper); text-align: center; padding: 56px 0 64px; background: radial-gradient(60% 70% at 50% 0%, rgba(123, 108, 255, .35), transparent 70%), linear-gradient(180deg, #120E30, #1F1B4D); }
.clockpage.is-hold { background: radial-gradient(60% 80% at 50% 0%, rgba(123, 108, 255, .65), transparent 70%), linear-gradient(180deg, #1A0F3F, #2A1863); }
.clockpage.is-waited { background: radial-gradient(60% 70% at 50% 0%, rgba(46, 139, 87, .5), transparent 70%), linear-gradient(180deg, #0F2A20, #173B2C); }
.clock-in { display: flex; flex-direction: column; align-items: center; }
.clockpage .eyebrow { color: var(--lilac); justify-content: center; }
.clock-pill { display: inline-block; margin: 6px 0 0; font: 600 14px/1 var(--f-m); letter-spacing: .1em; text-transform: uppercase; padding: 9px 16px; border-radius: 999px; background: rgba(255, 255, 255, .12); }
.is-hold .clock-pill { background: var(--violet); }
.is-waited .clock-pill { background: var(--l1); }
.clock-time { font: 600 clamp(88px, 18vw, 200px)/1 var(--f-m); letter-spacing: -.05em; margin: 18px 0 10px; font-variant-numeric: tabular-nums; }
.clock-line { max-width: 640px; color: #E4E0F7; font-size: 18px; margin: 0 0 26px; }
.clock-line strong { color: #fff; }
.press { width: 100%; display: flex; justify-content: center; }
.clock-msg { margin: 14px 0 0; color: var(--apricot); }
.clock-share { display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; align-items: start; }
.share label { font-weight: 500; color: var(--ink2); display: flex; gap: 8px; }
.copyrow { display: flex; gap: 8px; }
.copyrow input { font-family: var(--f-m); font-size: 14px; }
.presslog ol { margin: 0; padding-left: 20px; font-family: var(--f-m); font-size: 15px; display: grid; gap: 4px; }

/* desk */
.ds-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ds-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow); }
.ds-card p { color: var(--ink2); }
.ds-price { margin-top: 20px; color: var(--ink2); }
.sec-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }
.sec-head .h2 { margin: 0; }
.sec-head p { margin: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.empty { background: var(--card); border: 1.5px dashed #CFC8BC; border-radius: var(--r); padding: 18px; color: var(--ink2); }
.sessions { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sess { display: grid; grid-template-columns: 150px 1fr 1.3fr auto; gap: 18px; align-items: center; background: var(--card); border: 1px solid var(--line); border-left: 6px solid var(--line); border-radius: var(--r); padding: 14px 18px; }
.sess p { margin: 0; }
.lvedge1 { border-left-color: var(--l1); } .lvedge2 { border-left-color: var(--l2); } .lvedge3 { border-left-color: var(--l3); } .lvedge4 { border-left-color: var(--l4); } .lvedge5 { border-left-color: var(--l5); }
.sw-day { font: 700 18px/1.1 var(--f-d); }
.sw-time { font: 500 14px/1.3 var(--f-m); color: var(--ink2); }
.sess-name { font-weight: 600; }
.sess-act { display: flex; gap: 12px; align-items: center; }
.sess-act form { margin: 0; }
.venues { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.venues li { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px; }
.venues p { margin: 0; }
.v-name { font-weight: 600; display: flex; gap: 6px; align-items: center; }
.v-act { display: flex; gap: 14px; margin-top: 8px !important; }
.v-act form { margin: 0; }
.deskfoot { display: flex; gap: 22px; flex-wrap: wrap; border-top: 1px solid var(--line); }
.deskfoot form { margin: 0; }

/* ---------- footer ---------- */
.foot { background: #110E2C; color: #BDB7DE; margin-top: 40px; }
.foot-in { max-width: 1180px; margin: 0 auto; padding: 44px 28px 36px; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 36px; font-size: 14px; }
.foot-word { display: flex; gap: 10px; align-items: center; font: 700 19px/1 var(--f-d); color: #fff; margin: 0 0 12px; }
.foot-word .mark { width: 28px; height: 28px; }
.foot p { margin: 0 0 10px; }
.foot-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; align-content: start; }
.foot a { color: #E4E0F7; }
.powered a { color: var(--apricot); font-weight: 600; }
.is-error .foot { margin-top: 60px; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .hero-in { grid-template-columns: 1fr; gap: 40px; padding-top: 60px; }
  .sess { grid-template-columns: 130px 1fr; }
  .sess-fc, .sess-act { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .top-in { flex-wrap: wrap; gap: 10px 16px; padding: 10px 16px; }
  .seg { order: 3; width: 100%; margin: 0; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .seg::-webkit-scrollbar { display: none; }
  .seg a { padding: 9px 13px; font-size: 14px; }
  .top-cta { margin-left: auto; padding: 9px 13px; font-size: 14px; }
  .wrap { padding: 0 16px; }
  .calls-grid, .ladder-grid, .plan-grid, .ladder-head, .isnot-in, .nowgrid, .clockhead, .clock-share, .ds-grid, .venues { grid-template-columns: 1fr; }
  .ladder-head { gap: 12px; }
  .plan-plus { transform: none; }
  .win-grid { grid-template-columns: 1fr 1fr; }
  .foot-in { grid-template-columns: 1fr; padding: 32px 16px; gap: 22px; }
  .planstrip { flex-direction: column; align-items: flex-start; padding: 20px; }
  .days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  body { font-size: 16px; }
  .brand { font-size: 19px; }
  .brand .mark { width: 30px; height: 30px; }
  .top-cta .gl { display: none; }
  .hero-in { padding: 44px 16px 80px; }
  .display { font-size: 44px; }
  .lede { font-size: 17px; }
  .skycard { padding: 18px 16px; }
  .skycard-num { font-size: 52px; }
  .skycard-sun { width: 60px; height: 60px; }
  .ribbon { gap: 2px; height: 120px; }
  .ribbon .t { font-size: 9px; }
  .row3 { grid-template-columns: 1fr; }
  .nowstats div { padding: 10px 12px; }
  .nowstats dd { font-size: 16px; }
  .nc-num { font-size: 60px; }
  .sess { grid-template-columns: 1fr; gap: 8px; }
  .checkform { padding: 16px; }
  .find-row .go-btn, .find-row .ghost-btn { flex: 1 1 auto; }
  .storm-btn.big { font-size: 18px; padding: 20px 16px; }
}

/* ---------- print ---------- */
@media print {
  .top, .foot, .checkform, .planstrip, .actions, .deskfoot, .sess-act, .press, .clock-share .share, .linkish, .find, .seg { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .pagehead, .pagehead-sky { background: #fff !important; color: #000 !important; padding: 0 0 8pt; }
  .pagehead-sky .lede, .pagehead-sky .meta, .pagehead-sky .eyebrow { color: #000 !important; }
  .dayhours { break-inside: avoid; }
  .dayhours:not([open]) > *:not(summary) { display: block; }
  .tbl-wrap { overflow: visible; border: 0; }
  .data th, .data td { padding: 3pt 5pt; }
  .lv { border: 1px solid #000; }
}

/* ---------- v1.1.0: AdEngine banner (adengine.us) ----------
   One labelled slot between the main content and the night footer, on public pages only (the controllers opt in). The
   label, the reserved height and the vertical space are all on the <ins>, so when tag.js (or ae-size.js) hides a slot it
   cannot fill, the label and the space go with it, and the empty landmark goes too (:has). 110px = 16px label + 4px gap +
   90px banner; 270px on phones (300x250). Pages end on a .block's 28px padding, so the <ins> adds 24px above; its 56px below
   collapses with the footer's own 40px top margin (56px in all).
   display stays in this file and is never !important: tag.js hides a slot with style.display='none'. */
.ae-slot { padding: 0 28px; }
.ae-slot ins.adengine { display: block; max-width: 728px; min-height: 110px; margin: 24px auto 56px; text-align: center; text-decoration: none; }
.ae-slot ins.adengine::before { content: "Advertisement"; display: block; margin-bottom: 4px; font: 600 11px/16px var(--f-m); letter-spacing: .08em; text-transform: uppercase; color: var(--ink3); }
.ae-slot ins.adengine a { display: inline-block; vertical-align: top; }
.ae-slot:has(> ins.adengine[style*="none"]) { display: none; }
@media (max-width: 767px) { .ae-slot { padding: 0 16px; } .ae-slot ins.adengine { max-width: 300px; min-height: 270px; margin: 16px auto 40px; } }
@media print { .ae-slot { display: none; } }
