/* Hawaii Hurricane Archive — static reference pages.
   style.css styles the one-screen app and pins the viewport (overflow:hidden),
   which an article page must not inherit. These pages share the app's palette
   but scroll like a document, so they carry their own sheet. */

:root{
  --ink:#070c14;
  --ink-2:#0d1522;
  --panel:#111c2c;
  --line:#22344b;
  --line-soft:#1a2939;
  --text:#e8eef6;
  --dim:#93a6bd;
  --dimmer:#6b7f97;
  --accent:#48d0c8;
  --accent-warm:#ffb03a;
  --danger:#ff6b5e;

  /* Saffir-Simpson */
  --c-td:#68b3e8;
  --c-ts:#2fe0cf;
  --c-1:#fff49a;
  --c-2:#ffdb63;
  --c-3:#ffab3d;
  --c-4:#ff7a35;
  --c-5:#ff5364;

  --r:14px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}

*{box-sizing:border-box}
html{background:var(--ink)}
body{
  margin:0;padding:0;
  background:var(--ink);
  color:var(--text);
  font:400 16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.018em}
a{color:var(--accent)}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;
    stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── top bar, same shape as the app's ─────────────────── */
.topbar{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:10px 16px;min-height:56px;
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(180deg,#101d2f,#0b1421);
}
.brand{display:flex;align-items:center;gap:11px;min-width:0;
  color:inherit;text-decoration:none}
.brand .spin{font-size:24px;line-height:1;
  filter:drop-shadow(0 0 14px rgba(72,208,200,.42))}
.brand strong{font-size:18px;font-weight:650;letter-spacing:-.018em;white-space:nowrap}
.disclaim{margin:0 0 0 auto;font-size:13px;color:var(--dim);text-align:right}
.disclaim strong{color:var(--text)}

/* ── the article column ───────────────────────────────── */
.page{max-width:760px;margin:0 auto;padding:28px 20px 64px}
.crumbs{font-size:13px;color:var(--dimmer);margin:0 0 18px}
.crumbs a{color:var(--dim);text-decoration:none}
.crumbs a:hover{color:var(--accent)}

.page h1{font-size:clamp(28px,5vw,40px);line-height:1.12;margin:0 0 10px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.chip{font:600 12.5px/1 var(--mono);letter-spacing:.02em;
  padding:7px 10px;border-radius:999px;
  border:1px solid var(--line);color:var(--dim);white-space:nowrap}
.chip.cat{color:var(--ink);border:0}
.chip.cat-td{background:var(--c-td)} .chip.cat-ts{background:var(--c-ts)}
.chip.cat-1{background:var(--c-1)}  .chip.cat-2{background:var(--c-2)}
.chip.cat-3{background:var(--c-3)}  .chip.cat-4{background:var(--c-4)}
.chip.cat-5{background:var(--c-5)}
.chip.live{background:var(--danger);border:0;color:#fff}

.lead{font-size:18px;color:var(--text);margin:0 0 22px}

.live-note{
  border:1px solid var(--danger);border-radius:var(--r);
  padding:12px 16px;margin:0 0 22px;font-size:14.5px;color:var(--text);
  background:rgba(255,107,94,.08);
}

.cta{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--accent);color:var(--ink);
  font-weight:650;text-decoration:none;
  padding:12px 18px;border-radius:11px;margin:0 0 30px;
}
.cta:hover{filter:brightness(1.08)}
.cta svg{width:1.05em;height:1.05em}

.hero{margin:0 0 30px}
.hero img{width:100%;height:auto;display:block;border-radius:var(--r);
  border:1px solid var(--line-soft)}
.hero figcaption{font-size:12.5px;color:var(--dimmer);margin-top:8px}

/* ── facts ────────────────────────────────────────────── */
.facts{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:10px;margin:0 0 34px;
}
.facts>div{background:var(--ink-2);border:1px solid var(--line-soft);
  border-radius:11px;padding:13px 15px;min-width:0}
.facts dt{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--dimmer);margin:0 0 4px}
.facts dd{margin:0;font-size:15.5px;font-weight:600}
.facts dd small{font-weight:400;color:var(--dim)}

.page section{margin:0 0 34px}
.page h2{font-size:21px;margin:0 0 10px}
.page section p{margin:0 0 12px;color:var(--text)}
.page section p:last-child{margin-bottom:0}

table.errs{border-collapse:collapse;font-size:14.5px;margin-top:6px}
table.errs th,table.errs td{padding:7px 14px 7px 0;text-align:left;
  border-bottom:1px solid var(--line-soft)}
table.errs th{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--dimmer);font-weight:600}
table.errs td{font-family:var(--mono)}

/* ── storm lists (related, and the /storms/ hub) ──────── */
.storm-list{list-style:none;margin:0;padding:0;
  border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden}
.storm-list li{border-bottom:1px solid var(--line-soft)}
.storm-list li:last-child{border-bottom:0}
.storm-list a{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:2px 14px;align-items:center;
  padding:11px 15px;text-decoration:none;color:inherit;
  background:var(--ink-2);
}
.storm-list a:hover{background:var(--panel)}
.storm-list .nm{font-weight:650;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.storm-list .nm small{color:var(--dimmer);font-weight:400;margin-left:7px}
.storm-list .at{grid-row:span 2;font:600 13px var(--mono);color:var(--dim);
  text-align:right;white-space:nowrap}
.storm-list .sub{grid-column:1;font-size:13px;color:var(--dimmer);min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.hub-decade{margin:34px 0 10px;font-size:17px;color:var(--dim)}
.note{font-size:12.5px;color:var(--dimmer);margin:8px 0 0}

.pn{display:flex;gap:12px;justify-content:space-between;margin:0 0 34px}
.pn a{flex:1;min-width:0;text-decoration:none;color:inherit;
  border:1px solid var(--line-soft);border-radius:var(--r);
  padding:11px 15px;background:var(--ink-2)}
.pn a:hover{background:var(--panel)}
.pn .dir{display:block;font-size:11.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--dimmer);margin-bottom:3px}
.pn .to{font-weight:650}
.pn a.next{text-align:right}

/* ── analysis articles ────────────────────────────────── */
.chart{margin:0 0 10px;border:1px solid var(--line-soft);border-radius:var(--r);
  background:var(--ink-2);padding:18px 18px 12px}
.chart .scroll{overflow-x:auto}
/* the base sheet sizes every svg as a 1em icon; a chart is not an icon */
.chart svg{display:block;width:auto;height:auto;max-width:100%;
  stroke:none;stroke-width:0}
.chart svg.wide{max-width:none}  /* the season strip scrolls at natural size */
.chart figcaption{font-size:12.5px;color:var(--dimmer);margin:10px 0 0}
.leg{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--dim);
  margin:0 0 12px}
.leg span{display:inline-flex;align-items:center;gap:7px}
.leg i{width:12px;height:12px;border-radius:3px;display:inline-block}
details.data{margin:0 0 34px;font-size:13.5px;color:var(--dim)}
details.data summary{cursor:pointer;color:var(--dimmer)}
details.data table{border-collapse:collapse;margin-top:10px}
details.data th,details.data td{padding:5px 14px 5px 0;text-align:left;
  border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:12.5px}
details.data th{font-family:inherit;text-transform:uppercase;letter-spacing:.05em;
  font-size:11px;color:var(--dimmer)}

/* ── guides ───────────────────────────────────────────── */
ol.tline{list-style:none;margin:0 0 12px;padding:0 0 0 26px;position:relative}
ol.tline::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;
  width:2px;background:var(--line)}
ol.tline li{position:relative;padding:0 0 22px}
ol.tline li:last-child{padding-bottom:0}
ol.tline li::before{content:"";position:absolute;left:-24px;top:5px;
  width:10px;height:10px;border-radius:50%;
  background:var(--accent);border:3px solid var(--ink)}
ol.tline .when{display:block;font:600 12px var(--mono);letter-spacing:.04em;
  text-transform:uppercase;color:var(--dimmer);margin-bottom:2px}
ol.tline strong{color:var(--text)}

ul.kit{list-style:none;margin:0 0 8px;padding:0}
ul.kit li{position:relative;padding:4px 0 4px 30px}
ul.kit li::before{content:"";position:absolute;left:2px;top:9px;
  width:13px;height:13px;border-radius:4px;border:1.5px solid var(--dim)}
ul.kit li strong{color:var(--text)}

/* ── footer ───────────────────────────────────────────── */
.foot{border-top:1px solid var(--line-soft);margin-top:44px;padding-top:22px}
.foot p{font-size:13px;color:var(--dimmer);margin:0 0 10px}
.foot p strong{color:var(--dim)}

@media (max-width:560px){
  .disclaim{margin-left:0;text-align:left}
  .pn{flex-direction:column}
  .pn a.next{text-align:left}
}
