*{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#10233f;background:#f5f7fa}body{margin:0}a{color:inherit}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid #dfe5ec;backdrop-filter:blur(10px)}.header-inner{width:min(1180px,calc(100% - 32px));height:72px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#0b2d57;color:#fff;font-weight:800}.brand strong{display:block}.brand small{display:block;color:#6b7788;font-size:11px;margin-top:2px}.nav{display:flex;gap:4px}.nav a{text-decoration:none;padding:10px 12px;border-radius:8px;font-size:14px}.nav a:hover{background:#eef3f8}.menu-button{display:none;border:0;background:transparent;font-size:22px}.hero{background:linear-gradient(135deg,#071d38 0%,#0d396b 65%,#15538c 100%);color:white;padding:72px 0}.hero.compact{padding:54px 0}.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:56px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:800;color:#3c79b4;text-transform:uppercase;margin:0 0 10px}.hero .eyebrow{color:#9cc8ef}.hero h1{font-size:clamp(32px,4vw,56px);line-height:1.14;margin:0;letter-spacing:-.03em}.hero.compact h1{font-size:clamp(30px,4vw,46px)}.lead{color:#d9e6f3;line-height:1.9;font-size:17px;max-width:760px}.location-box{background:white;color:#10233f;padding:22px;border-radius:16px;box-shadow:0 16px 45px rgba(0,0,0,.18)}.location-box label{font-weight:800;display:block;margin-bottom:8px}.location-box select{width:100%;padding:13px;border:1px solid #cfd8e4;border-radius:10px;background:white;font-size:16px}.location-box small{display:block;color:#758295;margin-top:10px;line-height:1.5}.page-stack{padding:38px 0 72px}.section{margin:0 0 34px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.section-head h2{margin:0;font-size:26px}.source-chip{font-size:12px;background:#e9f2fb;color:#174d7e;border-radius:999px;padding:7px 10px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{background:white;border:1px solid #e0e6ed;border-radius:14px;padding:20px}.metric span{display:block;color:#6d7989;font-size:13px}.metric strong{display:block;font-size:27px;margin-top:6px}.note{font-size:12px;color:#738094}.forecast-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.forecast-card,.panel,.verify-row{background:white;border:1px solid #dfe6ee;border-radius:15px;padding:20px;box-shadow:0 4px 16px rgba(20,42,67,.04)}.forecast-card.official{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:5px solid #235d94}.forecast-card h3{font-size:17px;margin:0 0 4px}.forecast-card small{color:#748094}.mini-metrics{display:flex;gap:20px;flex-wrap:wrap}.forecast-values{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid #e9edf2}.forecast-values span{font-size:12px;color:#788595;display:block}.forecast-values strong{font-size:18px;display:block;margin-top:4px}.skill-box{margin-top:16px;border-radius:12px;background:#f1f5f9;padding:13px;display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center}.skill-box strong{font-size:24px}.skill-box small{grid-column:1/-1}.empty{background:#fff;border:1px dashed #bdc8d5;border-radius:14px;padding:26px;color:#687789}.verification-list{display:grid;gap:10px}.verify-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.verify-row>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.verify-row span{font-size:13px;color:#657487}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.badge-hit{background:#e8f7ed;color:#176c37}.badge-miss{background:#fdebec;color:#9c2530}.badge-neutral{background:#eef1f4;color:#697482}.content-grid,.intro-grid,.source-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding-top:34px;padding-bottom:60px}.panel h2{margin:0 0 10px;font-size:20px}.panel p{line-height:1.8;color:#526174}.muted{color:#7c8794!important}.system-alert{background:#fff0d7;border-bottom:1px solid #e7be73;color:#704710;padding:11px 20px;text-align:center;font-size:13px}.button{display:inline-block;text-decoration:none;background:#fff;color:#0e355f;padding:10px 16px;border-radius:9px;font-weight:800;margin-top:12px}footer{background:#071a30;color:#dce6ef;padding:30px 0}footer .wrap{display:flex;justify-content:space-between;gap:20px;font-size:13px}footer span{color:#9fb1c4}
@media(max-width:800px){.header-inner{height:62px}.menu-button{display:block}.nav{display:none;position:absolute;left:16px;right:16px;top:62px;background:white;border:1px solid #dce3eb;border-radius:12px;padding:8px;box-shadow:0 12px 30px rgba(0,0,0,.12);flex-direction:column}.nav.open{display:flex}.hero{padding:46px 0}.hero-grid{grid-template-columns:1fr;gap:24px}.metrics{grid-template-columns:repeat(2,1fr)}.forecast-grid,.content-grid,.intro-grid,.source-list{grid-template-columns:1fr}.forecast-values{grid-template-columns:repeat(2,1fr)}.forecast-card.official,.verify-row{align-items:flex-start;flex-direction:column}.section-head{align-items:flex-start;flex-direction:column}.mini-metrics{gap:10px}footer .wrap{flex-direction:column}}
.typhoon-page{padding-top:34px}.cyclone-selector form{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #dfe6ee;border-radius:14px;padding:16px}.cyclone-selector label{font-weight:800}.cyclone-selector select{min-width:260px;max-width:100%;padding:10px 12px;border:1px solid #cfd8e4;border-radius:9px;background:#fff}.small-strong{font-size:17px!important}.typhoon-map{height:520px;background:#dfe8ef;border:1px solid #ccd7e1;border-radius:16px;overflow:hidden}.track-legend{display:flex;gap:10px 16px;flex-wrap:wrap;margin-top:12px;font-size:12px}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-item i{display:inline-block;width:18px;height:4px;border-radius:10px}.cyclone-track-cards{display:grid;gap:14px}.track-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.track-card-head h3{margin:0 0 4px}.track-card-head small{color:#748094}.track-type{font-size:11px;font-weight:800;border-radius:999px;padding:5px 9px;background:#edf1f5}.track-type.official{background:#e8f2fc;color:#164f82}.track-type.model{background:#f0eefa;color:#59469a}.track-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;margin-top:14px;min-width:700px}.data-table th,.data-table td{text-align:left;padding:11px 10px;border-bottom:1px solid #e6ebf0;font-size:13px;white-space:nowrap}.data-table th{color:#647386;font-size:12px;background:#f8fafc}.data-table td small{color:#7b8795}.source-status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.source-status-grid h3{margin:0 0 8px}.source-status-grid p{margin:8px 0}.leaflet-container{font-family:inherit}
@media(max-width:800px){.typhoon-map{height:400px}.source-status-grid{grid-template-columns:1fr}.cyclone-selector form{align-items:stretch;flex-direction:column}.cyclone-selector select{width:100%}.cyclone-metrics{grid-template-columns:1fr 1fr}.track-card-head{flex-direction:column}}
.section-copy{margin:8px 0 0;max-width:820px;color:#66768a;line-height:1.75;font-size:14px}.comparison-section{margin-top:0}.comparison-grid{align-items:stretch}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.compare-card{min-height:290px}.waiting-card{border-style:dashed}.preparing-card{background:#fbfcfe}.preparing-copy{margin-top:22px;padding:20px;border-radius:12px;background:#f5f7fa;color:#657487;line-height:1.7}.official-weather-text{margin-top:16px;font-weight:800;font-size:17px;line-height:1.6}.text-strong{font-size:16px!important}.three-values{grid-template-columns:repeat(3,1fr)}.official-verify{border-left:5px solid #235d94}.observation-reference{margin-top:46px;padding-top:28px;border-top:1px solid #dfe6ee}.compact-metrics .metric{padding:16px}.compact-metrics .metric strong{font-size:23px}
@media(max-width:800px){.three-values{grid-template-columns:1fr 1fr}.compare-card{min-height:0}.card-top{gap:8px}.section-copy{font-size:13px}}

/* v0.9 visual refresh */
.hero-showdown{position:relative;isolation:isolate;overflow:hidden;background:#08284a;padding:76px 0 72px}
.hero-showdown::before{content:"";position:absolute;inset:0;z-index:-2;background-image:url('/assets/img/forecast-showdown-hero.svg');background-size:cover;background-position:center 42%}
.hero-showdown::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,20,39,.7) 0%,rgba(3,20,39,.44) 48%,rgba(3,20,39,.18) 100%)}
.hero-showdown .hero-grid{min-height:330px}
.hero-showdown .lead{text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hero-showdown h1{text-shadow:0 3px 18px rgba(0,0,0,.38)}
.hero-showdown .location-box{box-shadow:0 22px 60px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.52)}
.comparison-section>.section-head{margin-bottom:18px}
.status-hint{display:flex;align-items:center;gap:8px;margin:12px 0 0;color:#6c7c8e;font-size:12px}
.comparison-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.comparison-grid .forecast-card{padding:17px;min-width:0}
.comparison-grid .forecast-card h3{font-size:15px;line-height:1.45}
.comparison-grid .forecast-card small{font-size:11px;line-height:1.5}
.comparison-grid .forecast-values{grid-template-columns:repeat(2,1fr);gap:8px}
.comparison-grid .forecast-values strong{font-size:16px}
.comparison-grid .skill-box{padding:11px}
.comparison-grid .skill-box strong{font-size:20px}
.comparison-grid .preparing-copy{margin-top:16px;padding:15px;font-size:13px}
.section.private-section{background:linear-gradient(180deg,#f0f7fd 0%,#edf5fb 100%);border:1px solid #dbe9f5;border-radius:18px;padding:22px 20px}
.private-section .section-head{margin-bottom:14px}
.private-section .forecast-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.private-section .forecast-card{padding:16px;min-height:0}
.private-section .forecast-card h3{font-size:15px;line-height:1.4}
.private-compact{box-shadow:none;background:rgba(255,255,255,.9)}
.private-preparing-text{margin:14px 0 0;color:#637488;font-size:12px;line-height:1.7}
.private-section .badge{white-space:nowrap}
@media(max-width:1180px){.comparison-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.private-section .forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.hero-showdown{padding:48px 0}.hero-showdown::before{background-position:61% center}.hero-showdown::after{background:linear-gradient(180deg,rgba(3,20,39,.64),rgba(3,20,39,.46))}.hero-showdown .hero-grid{min-height:0}.comparison-grid,.private-section .forecast-grid{grid-template-columns:1fr}.status-hint{align-items:flex-start}.private-section{padding:18px 14px}}


/* v0.10 layout hotfix: keep JMA card readable and make Typhoon link prominent */
.nav .typhoon-link{font-size:16px;font-weight:800;padding:11px 18px;background:#e9f2fb;color:#0b4276;border:1px solid #cfe0ef}
.nav .typhoon-link:hover{background:#dcecf9}
.comparison-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.comparison-grid .jma-card{display:block;align-items:initial;justify-content:initial}
.comparison-grid .jma-card .card-top{display:flex}
@media(max-width:1180px){.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.nav .typhoon-link{font-size:16px;padding:12px 14px}.comparison-grid{grid-template-columns:1fr}}

/* v0.14 audited verification ranking + private-provider notice + bottom ad slot */
.verification-section .verification-list{gap:12px}
.verify-row{position:relative}
.verify-row.verify-winner{border-color:#b8d4ee;box-shadow:0 8px 24px rgba(35,93,148,.10)}
.verify-main{min-width:320px}
.daily-rank{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:6px 10px;border-radius:999px;background:#eef2f6;color:#586779;font-size:12px;font-weight:800;white-space:nowrap}
.daily-rank.rank-first{background:#e7f1fb;color:#0d4e86;border:1px solid #c8def1}
.daily-rank.official-rank{background:#e8f7ed;color:#176c37;min-width:82px}
.verify-metrics{justify-content:flex-end!important}
.ranking-wait-note{margin:10px 2px 0;color:#6f7e90;font-size:12px;line-height:1.6}
.bottom-ad-section{margin-top:42px;padding-top:22px;border-top:1px solid #dfe6ee}
.ad-label{margin:0 0 8px;color:#8a95a3;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.bottom-ad-slot{min-height:96px;border:1px dashed #cfd8e3;border-radius:14px;background:#f8fafc;display:grid;place-items:center;color:#9aa5b2;font-size:12px;text-align:center;padding:14px}
@media(max-width:800px){.verify-main{min-width:0}.verify-metrics{justify-content:flex-start!important}.daily-rank{min-width:62px}.bottom-ad-slot{min-height:90px}}

.verify-row.verify-missing{background:#fbfcfe;border-style:dashed}.verify-row.verify-missing .verify-metrics span{color:#7b8795}


/* v0.17 yesterday-issued-today vs current observation + JMA change history */
.today-reality-section{padding:24px 0 6px}
.today-reality-grid{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,2.28fr);gap:16px;align-items:start}
.current-weather-card{background:linear-gradient(160deg,#0c315b 0%,#125486 100%);color:#fff;border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(13,54,91,.14);position:sticky;top:88px}
.current-weather-card .eyebrow{color:#a9d3f4;margin-bottom:5px}
.current-weather-card h3{font-size:20px;margin:0}
.current-weather-card .badge-hit{background:#dff5e7;color:#176c37}
.current-temp{margin-top:22px;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.17)}
.current-temp span,.current-weather-values span{display:block;color:#c9ddee;font-size:12px}
.current-temp strong{display:block;font-size:42px;line-height:1.05;margin-top:6px}
.current-weather-values{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:15px}
.current-weather-values strong{display:block;font-size:16px;margin-top:4px}
.current-weather-card .note{color:#c8d9e8;line-height:1.65;margin-bottom:0}
.compact-empty{padding:18px;margin-top:18px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35);color:#e4edf5}
.yesterday-today-forecasts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.today-forecast-card{padding:16px;min-height:0}
.today-forecast-card .forecast-values{margin-top:13px;padding-top:12px}
.today-forecast-card .preparing-copy{margin-top:13px;padding:13px}
.today-progress-note{margin:12px 0 0;font-size:12px;line-height:1.7;color:#69788a}
.jma-history-section{background:#fff;border:1px solid #dfe6ee;border-radius:18px;padding:20px}
.jma-history-list{display:grid;gap:9px}
.jma-history-card{display:grid;grid-template-columns:92px 1fr;gap:15px;align-items:center;border:1px solid #e1e7ee;border-radius:13px;padding:14px 16px;background:#fbfcfe}
.jma-history-card.latest{border-color:#9ec4e7;background:#f2f8fd}
.jma-history-time strong{font-size:22px;display:block;color:#184f7e}
.jma-history-time span{font-size:11px;color:#718096}
.jma-history-weather>strong{font-size:15px;line-height:1.5}
.jma-history-weather>div{display:flex;gap:15px;flex-wrap:wrap;margin-top:6px;color:#66768a;font-size:12px}
@media(max-width:1000px){.today-reality-grid{grid-template-columns:1fr}.current-weather-card{position:static}.yesterday-today-forecasts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.yesterday-today-forecasts{grid-template-columns:1fr}.current-weather-values{grid-template-columns:repeat(3,1fr)}.jma-history-card{grid-template-columns:72px 1fr;padding:12px}.jma-history-time strong{font-size:19px}}
@media(max-width:480px){.current-weather-values{grid-template-columns:1fr 1fr}.jma-history-card{grid-template-columns:1fr}.jma-history-weather>div{gap:8px 12px}}
