.story-body { background: var(--bg); }
.story { max-width: 980px; margin: 0 auto; padding: 0 16px 60px; }
.story-hero { position: relative; height: min(58vh, 520px); margin: 0 -16px; }
.story-hero #smap { position: absolute; inset: 0; }
.story-hero .ttl { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 500; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.55); pointer-events: none; }
.story-hero .ttl h1 { font-size: clamp(24px, 5vw, 40px); line-height: 1.1; }
.story-hero .ttl .sub { opacity: .92; margin-top: 4px; }
.story-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(transparent, rgba(0,0,0,.45)); z-index: 450; pointer-events: none; }
.story section { margin-top: 26px; }
.story h2 { font-size: 18px; margin-bottom: 10px; }
.story .big-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-top: 16px; }
.story .big-kpis .kpi .v { font-size: 26px; }
.story .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.story .gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; cursor: zoom-in; display: block; }
.story .foot { margin-top: 40px; text-align: center; color: var(--muted); font-size: 12px; }
.story .day { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border); }
.recap-big { font-size: clamp(40px, 9vw, 84px); font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--accent); }
.recap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.recap-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 16px; }
.recap-card .l { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.recap-card .v { font-size: 28px; font-weight: 750; margin: 4px 0; font-variant-numeric: tabular-nums; }
.recap-card .s { color: var(--muted); font-size: 13px; }
.lb { position: fixed; inset: 0; background: rgba(0,0,0,.9); z-index: 4000; display: grid; place-items: center; padding: 12px; cursor: zoom-out; }
.lb img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 6px; }
