/* marquee */
.marquee{background:var(--black);color:var(--paper);padding:1.05rem 0;overflow:hidden;white-space:nowrap}
.marquee .track{display:inline-flex;gap:3rem;animation:mq 26s linear infinite;padding-right:3rem}
.marquee span{font-weight:600;font-size:1.05rem;letter-spacing:.12em;text-transform:uppercase;display:inline-flex;align-items:center;gap:3rem}
.marquee span i{font-style:normal;font-family:var(--jp);color:var(--accent-soft);font-size:.95rem}
.marquee span em{font-style:italic;font-weight:300;color:var(--d-num);letter-spacing:.2em}
@keyframes mq{to{transform:translateX(-50%)}}

/* manifesto */
.manifesto{background:var(--paper);padding:clamp(100px,14vw,220px) var(--pad);position:relative;overflow:clip}
.kicker{display:flex;align-items:center;gap:1rem;font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--fog-dark);margin-bottom:clamp(60px,9vw,140px)}
.kicker::before{content:"";width:44px;height:1px;background:var(--accent)}
.kicker .jp{font-family:var(--jp);color:var(--accent)}
.manifesto h2{font-weight:300;text-transform:uppercase;letter-spacing:-.06em;line-height:.92;font-size:clamp(2.8rem,8vw,8.2rem);max-width:14ch;position:relative;z-index:2}
.manifesto h2 .w{display:inline-block}
.manifesto h2 .accent{color:var(--accent)}
.manifesto .cols{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(40px,8vw,140px);margin-top:clamp(60px,9vw,130px);align-items:start}
.manifesto .cols .big{font-size:clamp(1.05rem,1.35vw,1.35rem);line-height:1.5;max-width:520px}
.manifesto .cols .small{color:var(--fog-dark);font-size:.92rem;line-height:1.7;max-width:360px}
.kanji-bg{position:absolute;top:6%;right:1vw;font-family:var(--jp);font-size:clamp(9rem,24vw,22rem);line-height:1;color:transparent;-webkit-text-stroke:1px var(--fog);user-select:none;pointer-events:none;z-index:1}
@media(max-width:880px){.manifesto .cols{grid-template-columns:1fr}}

/* giant scroller */
.giant{overflow:clip;padding:clamp(40px,7vw,110px) 0;border-top:1px solid var(--fog);background:var(--field)}
.giant-track{white-space:nowrap;display:flex;align-items:center;gap:clamp(2rem,5vw,5rem);will-change:transform}
.giant-track span{font-weight:300;font-size:clamp(5rem,14vw,15rem);line-height:1;letter-spacing:-.06em;text-transform:uppercase;color:transparent;-webkit-text-stroke:1px var(--fog-dark)}
.giant-track span.fill{color:var(--olive);-webkit-text-stroke:0;opacity:.9}
.giant-track i{font-style:normal;font-family:var(--jp);font-size:clamp(2.4rem,7vw,7rem);color:var(--signal-red)}

/* journey */
.journey{background:var(--field);padding:clamp(90px,12vw,170px) var(--pad) clamp(70px,9vw,130px);border-top:1px solid var(--fog)}
.j-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(50px,7vw,90px)}
.j-head h3{font-weight:300;text-transform:uppercase;letter-spacing:-.055em;line-height:.9;font-size:clamp(2.4rem,6vw,5.6rem)}
.j-head p{max-width:340px;font-size:.92rem;color:var(--fog-dark);line-height:1.7}
.jmap{position:relative;height:62vh;min-height:400px}
.jmap svg{position:absolute;inset:0;width:100%;height:100%}
.jpoint{position:absolute;transform:translate(-50%,-50%);z-index:3}
.jpoint .dot{width:13px;height:13px;border-radius:50%;margin-bottom:.7rem;position:relative}
.jpoint .dot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid currentColor;opacity:.5;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{from{transform:scale(.5);opacity:.8}to{transform:scale(1.6);opacity:0}}
.jpoint h4{font-weight:600;font-size:1.1rem;letter-spacing:-.01em;text-transform:uppercase}
.jpoint small{display:block;font-size:.78rem;color:var(--fog-dark);margin:.15rem 0}
.jpoint .coords{font-size:.68rem;letter-spacing:.18em;color:var(--fog-dark)}
.j-tokyo{top:16%;left:10%;color:var(--accent)}
.j-tokyo .dot{background:var(--accent)}
.j-riyadh{bottom:6%;right:6%;color:var(--olive);transform:translate(50%,-50%);text-align:right}
.j-riyadh .dot{background:var(--olive);margin-left:auto}
.j-mid{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--fog-dark)}
.j-mid .km{font-weight:300;font-style:italic;font-size:clamp(1.4rem,3vw,2.4rem);letter-spacing:.06em;color:var(--ink)}
.j-mid small{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase}
@media(min-width:881px) and (max-width:920px){.j-riyadh{right:2%;transform:none}}
