:root{color-scheme:dark;--bg:#071827;--surface:#102b42;--surface2:#14364d;--line:#2c5368;--text:#f4fbfd;--muted:#a7c4d2;--slow:#6ee7db;--fast:#f3b477}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 50% -15%,#164360,var(--bg) 55%);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.65}
button,input{font:inherit}
button{cursor:pointer}
a{color:#8cece2}
.page{width:min(1160px,calc(100% - 36px));margin:auto}
.site-header{height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{color:#fff;text-decoration:none;font-size:19px;font-weight:900;letter-spacing:-.04em}
.brand span{color:#91b6c5;font-size:12px;font-weight:700;letter-spacing:0}
.header-tag{border:1px solid #477184;border-radius:999px;padding:5px 12px;color:#b4f0e8;font-size:10px;font-weight:900;letter-spacing:.13em}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:54px 50px 50px;border:1px solid #477188;border-radius:24px;background:#102c45 url('/img/typhoon/slow-fast-typhoon.jpg') center 43%/cover no-repeat}
.hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(5,20,36,.98),rgba(6,26,43,.87) 49%,rgba(6,26,43,.25))}
.eyebrow{margin:0;color:#80e7db;font-size:11px;font-weight:900;letter-spacing:.19em}
.hero h1{max-width:800px;margin:13px 0 12px;font-size:clamp(35px,5.2vw,62px);line-height:1.18;letter-spacing:-.065em}
.hero h1 em{color:#a5fff1;font-style:normal}
.hero p:last-child{max-width:650px;margin:0;color:#d4e8ec;font-size:14px}
.answer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0;padding:21px 28px;border:1px solid #4d938e;border-left:5px solid var(--slow);border-radius:17px;background:linear-gradient(110deg,#144748,#113047)}
.kicker,.section-head>span,.explainer>div>span{color:#87e8dc;font-size:11px;font-weight:900;letter-spacing:.12em}
.answer h2{margin:4px 0;color:#fff;font-size:clamp(22px,3vw,31px);letter-spacing:-.04em}
.answer h2 strong{color:#96fff1}
.answer p{margin:0;color:#c2dde2;font-size:12px}
.answer-icon{font-size:50px;line-height:1;opacity:.75}
.controls,.scene-panel,.chart-panel{margin-top:18px;border:1px solid var(--line);border-radius:20px;background:var(--surface);overflow:hidden}
.controls{padding:23px 27px 21px}
.section-head{padding:0 0 16px}
.section-head h2{margin:3px 0 0;font-size:22px;letter-spacing:-.04em}
.section-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.speed-controls,.detail-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.control{min-width:0;padding:17px 19px;border:1px solid #3a6173;border-radius:15px;background:#15374d}
.control label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:#e0eff1;font-size:13px;font-weight:800}
.control strong{font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap}
.slow-control strong{color:var(--slow)}
.fast-control strong{color:var(--fast)}
.control input[type=range]{display:block;width:100%;margin:13px 0 4px;accent-color:var(--slow)}
.fast-control input[type=range]{accent-color:var(--fast)}
.range-ends{display:flex;justify-content:space-between;color:#88aabd;font-size:10px}
.details{margin-top:17px;border-top:1px solid #3b5b6d;padding-top:13px}
.details summary{width:max-content;color:#bce9e3;font-size:12px;font-weight:800;cursor:pointer}
.detail-controls{margin-top:13px}
.detail-controls .control{background:#102f45}
.details>p{margin:9px 0 0;color:#8fb2be;font-size:11px}
.scene-panel .section-head,.chart-panel .section-head{padding:20px 25px 9px}
#scene{display:block;width:100%;height:auto;padding:0 16px}
.row-bg{fill:#0b2438}
.route{stroke:#507c8b;stroke-width:3;stroke-dasharray:9 10}
.band{stroke-width:2}
.slow-band{fill:#1c8d92;fill-opacity:.8;stroke:#72eee0}
.fast-band{fill:#ad6970;fill-opacity:.83;stroke:#ffc28a}
.rain-texture{fill:url(#rainPattern)}
.town-line{stroke:#e6f2e4;stroke-opacity:.6;stroke-width:3;stroke-dasharray:6 8}
.town{fill:#fff9d0;stroke:#12475a;stroke-width:4}
.row-label{fill:#d5e9ef;font-size:23px;font-weight:900}
.town-label{fill:#fff9d0;font-size:20px;font-weight:900}
.scene-note{fill:#8fb6c4;font-size:16px;font-weight:700}
.transport{padding:7px 25px 22px}
.transport label{display:flex;justify-content:space-between;color:#cbe6e8;font-size:12px;font-weight:800}
.transport label strong{color:#a1fff0;font-size:17px;font-variant-numeric:tabular-nums}
.transport input[type=range]{display:block;width:100%;margin:14px 0 17px;accent-color:var(--slow)}
.buttons{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.buttons button{padding:9px 14px;border:1px solid #6ad5cc;border-radius:10px;background:#86eadd;color:#0a3040;font-size:12px;font-weight:900}
.buttons button+button{background:transparent;color:#c4e5e3}
.buttons span{margin-left:auto;color:#89acb7;font-size:11px}
.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.result{padding:21px 25px;border:1px solid #416a78;border-radius:17px;background:#112e46}
.slow-result{border-top:4px solid var(--slow)}
.fast-result{border-top:4px solid var(--fast)}
.result>span{display:block;color:#bed6dd;font-size:12px;font-weight:800}
.result>span b{font-variant-numeric:tabular-nums}
.result>strong{display:block;margin:0;color:#fff;font-size:31px;font-variant-numeric:tabular-nums;letter-spacing:-.05em}
.result p{margin:0 0 9px;color:#d4e5e8;font-size:13px}
.result p b{color:#fff;font-size:19px;font-variant-numeric:tabular-nums}
.result small{display:inline-block;padding:4px 9px;border-radius:999px;background:#214658;color:#c6e9e7;font-size:11px;font-variant-numeric:tabular-nums}
.chart-panel{padding-bottom:14px}
.chart-key{display:flex;gap:20px;padding:0 25px 1px;color:#cce0e5;font-size:12px;font-weight:800}
.chart-key span{display:flex;align-items:center;gap:7px}
.chart-key i{display:inline-block;width:12px;height:12px;border-radius:50%}
.slow-dot{background:var(--slow)}
.fast-dot{background:var(--fast)}
#rainChart{display:block;width:100%;height:auto;padding:0 10px}
.grid-line{fill:none;stroke:#355369;stroke-width:2;stroke-dasharray:5 8}
.axis{fill:none;stroke:#6994a4;stroke-width:3}
.axis-label,.tick-label{fill:#9fbdc8;font-size:17px;font-weight:700}
.slow-line,.fast-line{fill:none;stroke-width:6;stroke-linejoin:round;stroke-linecap:round}
.slow-line{stroke:var(--slow)}
.fast-line{stroke:var(--fast)}
.slow-point{fill:#e4fffa;stroke:var(--slow);stroke-width:5}
.fast-point{fill:#fff3e3;stroke:var(--fast);stroke-width:5}
.explainer{display:grid;grid-template-columns:260px 1fr;gap:30px;margin:37px 0;padding:26px 28px;border-top:1px solid #406174;border-bottom:1px solid #406174}
.explainer h2{margin:7px 0;font-size:28px;line-height:1.28;letter-spacing:-.05em}
.explainer p{margin:0 0 13px;color:#c6dbe2;font-size:13px}
.explainer .formula{display:inline-block;padding:10px 13px;border:1px solid #478287;border-radius:10px;color:#b3fbef;font-size:13px;font-weight:900}
.explainer .safety{color:#decdb2;font-size:11px}
.explainer .source{font-size:11px}
footer{display:flex;justify-content:space-between;gap:18px;padding:0 0 33px;color:#8baab8;font-size:11px}
footer a{text-decoration:none;font-weight:800}
@media(max-width:700px){.page{width:calc(100% - 24px)}.site-header{height:60px}.brand{font-size:17px}.brand span{font-size:10px}.header-tag{font-size:8px}.hero{padding:30px 23px 32px;border-radius:18px}.hero:before{background:linear-gradient(90deg,rgba(5,20,36,.97),rgba(6,26,43,.78))}.hero h1{font-size:clamp(32px,8vw,42px)}.hero p:last-child{font-size:12px}.answer{padding:17px 18px}.answer-icon{display:none}.controls{padding:19px 17px}.speed-controls,.detail-controls,.result-grid{grid-template-columns:1fr;gap:10px}.control{padding:14px 15px}.control label{font-size:12px}.control strong{font-size:18px}.section-head h2{font-size:19px}.scene-panel .section-head,.chart-panel .section-head{padding:17px 18px 8px}.transport{padding:4px 18px 19px}.result-grid{margin-top:10px}.result{padding:15px 19px}.result>strong{font-size:26px}.explainer{display:block;padding:22px 8px}.explainer h2{font-size:24px;margin-bottom:15px}.explainer .formula{font-size:11px}.buttons span{width:100%;margin-left:0}footer{display:block}footer span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
