@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&family=Space+Mono:wght@400;700&display=swap");
@font-face { font-family:"M PLUS 1"; src:url("./assets/fonts/mplus1-vf-subset.woff2") format("woff2"); font-weight:100 900; font-display:swap; }

:root {
  --ink: #0b0c0c;
  --ink-2: #151717;
  --paper: #f0efe8;
  --paper-2: #dcdcd2;
  --lime: #dfff32;
  --cyan: #35e9ff;
  --purple: #8d66ff;
  --orange: #ff7145;
  --line: rgba(11,12,12,.16);
  --white-line: rgba(255,255,255,.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Inter", "M PLUS 1", "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
[id] { scroll-margin-top: 88px; }
::selection { color: var(--ink); background: var(--lime); }

.noise { position: fixed; inset: 0; z-index: 100; pointer-events: none; opacity: .025; background-image: repeating-linear-gradient(0deg,transparent 0 2px,#fff 3px),repeating-linear-gradient(90deg,transparent 0 4px,#000 5px); background-size:7px 7px,11px 11px; }
.scroll-progress { position: fixed; z-index: 110; inset: 0 0 auto; height: 3px; background: rgba(255,255,255,.1); }.scroll-progress i { display: block; width: 0; height: 100%; background: var(--lime); box-shadow: 0 0 14px var(--lime); }

.nav { position: fixed; z-index: 80; top: 18px; left: 3vw; right: 3vw; height: 62px; padding: 0 9px 0 18px; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(255,255,255,.18); border-radius: 4px; color: #fff; background: rgba(7,8,9,.64); backdrop-filter: blur(20px); transition: .3s; }
.nav.scrolled { top: 8px; background: rgba(7,8,9,.9); box-shadow: 0 16px 50px rgba(0,0,0,.18); }
.logo { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.logo-bolt { width: 23px; height: 32px; display: grid; place-items: center; overflow: visible; background: transparent; clip-path: none; }
.logo-type { font: 900 18px/.85 "Inter", sans-serif; letter-spacing: -1.2px; transform: skew(-6deg); }.logo-type em { color: var(--lime); font-style: normal; }
.nav-links { display: flex; align-items: center; gap: clamp(14px,1.8vw,30px); margin-left: auto; margin-right: clamp(14px,2vw,32px); }.nav-links a,.mini-link { position: relative; font: 700 9px/1 "Space Mono", monospace; letter-spacing: .08em; color: rgba(255,255,255,.64); transition: .2s; }.nav-links a:after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--lime); transition:.25s; }.nav-links a:hover { color:#fff; }.nav-links a:hover:after { right:0; }
.nav-actions { display: flex; align-items: center; gap: 20px; }.mini-link:hover { color: var(--lime); }.nav-cta { min-width: 220px; height: 44px; padding: 0 12px; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-content:center; column-gap:10px; background:var(--lime); color:var(--ink); font:800 9px "Space Mono",monospace; clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px); transition:.22s; }.nav-cta:hover { background:#fff; }.nav-cta small { grid-column:1; margin-top:2px; font:700 7px "M PLUS 1",sans-serif; opacity:.55; }.nav-cta span { grid-column:2; grid-row:1 / 3; align-self:center; font-size:18px; }
.menu { display:none; width:42px; height:42px; border:1px solid var(--white-line); background:transparent; }.menu span { display:block; width:18px; height:1px; margin:6px auto; background:#fff; transition:.25s; }

.hero { min-height: 780px; height: 100svh; max-height: 1050px; position: relative; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background:var(--ink); }
.hero-media,.hero-shade,.hero-grid { position:absolute; inset:0; }.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 55%; filter:saturate(.78) contrast(1.08) brightness(.76); transform:scale(1.025); animation:heroDrift 16s ease-in-out infinite alternate; }
.hero-shade { background:linear-gradient(90deg,rgba(4,5,7,.95) 0%,rgba(4,5,7,.65) 34%,rgba(4,5,7,.02) 72%),linear-gradient(0deg,rgba(4,5,7,.82),transparent 45%),linear-gradient(180deg,rgba(4,5,7,.45),transparent 25%); }
.hero-grid { opacity:.18; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(90deg,#000,transparent 72%); }
.hero-content { position:relative; z-index:3; width:100%; padding:150px 6vw 8vh; }
.live-label { width:max-content; margin-bottom:30px; padding:9px 12px; display:flex; gap:8px; align-items:center; border:1px solid rgba(223,255,50,.35); background:rgba(11,12,12,.4); color:var(--lime); font:700 8px "Space Mono",monospace; letter-spacing:.13em; }.live-label i { width:6px; height:6px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px var(--lime); animation:pulse 1.5s infinite; }.live-label span { margin-left:8px; color:rgba(255,255,255,.35); }.live-label [data-release-copy="heroStatus"] { margin-left:0; color:inherit; }
.hero-kicker { margin:0 0 14px; color:rgba(255,255,255,.65); font:700 10px "Space Mono",monospace; letter-spacing:.18em; }
.hero h1 { margin:0; max-width:1100px; font-size:clamp(72px,10.1vw,174px); font-weight:900; font-style:italic; line-height:.76; letter-spacing:-.09em; text-transform:uppercase; }.hero h1 span { display:block; }.hero h1 .outline { margin-left:5vw; color:transparent; -webkit-text-stroke:1.5px rgba(255,255,255,.8); text-shadow:0 20px 80px rgba(0,0,0,.25); }
.hero-bottom { max-width:1260px; margin-top:45px; display:flex; align-items:end; justify-content:space-between; gap:45px; }.hero-bottom > p { max-width:720px; margin:0; font-size:13px; line-height:1.9; color:rgba(255,255,255,.7); }.hero-bottom strong { display:inline-block; margin-bottom:4px; color:#fff; font-size:clamp(17px,1.5vw,23px); line-height:1.35; font-weight:800; letter-spacing:-.035em; }
.hero-buttons { display:flex; gap:10px; }.button { min-height:62px; padding:12px 20px; display:inline-flex; align-items:center; justify-content:space-between; gap:25px; border:1px solid transparent; font-size:12px; font-weight:800; transition:.25s; clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px); }.button small { display:block; font:700 7px "Space Mono",monospace; letter-spacing:.12em; opacity:.55; }.button > span { font-size:20px; }.button-primary { min-width:245px; color:var(--ink); background:var(--lime); }.button-primary:hover { background:#fff; transform:translateY(-3px); }.button-glass { min-width:135px; color:#fff; border-color:rgba(255,255,255,.34); background:rgba(0,0,0,.18); backdrop-filter:blur(10px); }.button-glass:hover { border-color:var(--lime); color:var(--lime); }
.hud { position:absolute; z-index:4; padding:15px; border:1px solid rgba(255,255,255,.24); background:rgba(7,9,12,.58); backdrop-filter:blur(13px); font-family:"Space Mono",monospace; }.hud-quest { top:24%; right:4.5vw; width:265px; transform:rotate(1.5deg); }.hud-quest > div { display:flex; justify-content:space-between; color:rgba(255,255,255,.48); font-size:7px; }.hud-quest > div i { color:var(--lime); font-style:normal; }.hud-quest strong { display:block; margin:12px 0; font-size:12px; }.hud-quest p { height:3px; margin:0 0 8px; background:rgba(255,255,255,.15); }.hud-quest p b { display:block; width:var(--value); height:100%; background:var(--lime); box-shadow:0 0 10px var(--lime); }.hud-quest small { color:rgba(255,255,255,.42); font-size:7px; }
.hud-speed { right:15vw; bottom:15vh; min-width:150px; }.hud-speed span { display:block; color:rgba(255,255,255,.48); font-size:7px; letter-spacing:.12em; }.hud-speed strong { font-size:40px; line-height:1; letter-spacing:-.08em; }.hud-speed small { color:var(--lime); font-size:7px; margin-left:6px; }
.hero-coordinate { position:absolute; z-index:4; top:22%; left:2vw; color:rgba(255,255,255,.35); font:7px/1.8 "Space Mono",monospace; letter-spacing:.12em; writing-mode:vertical-rl; }.scroll-cue { position:absolute; z-index:4; right:3vw; bottom:4vh; display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.5); font:7px "Space Mono",monospace; letter-spacing:.15em; transform:rotate(90deg); transform-origin:right; }.scroll-cue i { width:55px; height:1px; background:rgba(255,255,255,.32); overflow:hidden; }.scroll-cue i:after { content:""; display:block; width:18px; height:1px; background:var(--lime); animation:scrollLine 1.8s infinite; }

.ticker { overflow:hidden; padding:19px 0; color:var(--ink); background:var(--lime); border-block:1px solid var(--ink); }.ticker > div { width:max-content; display:flex; align-items:center; gap:28px; animation:ticker 28s linear infinite; }.ticker span { font-size:24px; font-weight:900; font-style:italic; letter-spacing:-.07em; }.ticker i { font-style:normal; font-size:22px; }
.section { padding:120px 6vw; }.section-label { display:flex; align-items:center; gap:11px; color:rgba(11,12,12,.5); font:700 9px "Space Mono",monospace; letter-spacing:.16em; }.section-label span { width:29px; height:29px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:7px; }.section-label.light { color:rgba(255,255,255,.48); }

.manifesto { position:relative; min-height:780px; display:flex; flex-direction:column; justify-content:space-between; background:var(--paper); }.manifesto:after { content:"ϟ"; position:absolute; right:5vw; top:23%; color:rgba(11,12,12,.035); font:900 360px/1 sans-serif; }.manifesto-copy { position:relative; z-index:2; max-width:1180px; margin-top:100px; }.manifesto-copy > p,.micro { margin:0 0 18px; color:rgba(11,12,12,.42); font:700 9px "Space Mono",monospace; letter-spacing:.14em; }.manifesto h2 { margin:0; font-size:clamp(46px,6vw,96px); line-height:1.06; letter-spacing:-.075em; }.manifesto h2 em { color:transparent; font-style:normal; -webkit-text-stroke:1.5px var(--ink); }
.manifesto-foot { position:relative; z-index:2; display:grid; grid-template-columns:1fr repeat(3,auto); align-items:end; gap:4vw; border-top:1px solid var(--line); padding-top:25px; }.manifesto-foot > p { max-width:570px; margin:0; color:rgba(11,12,12,.6); font-size:13px; line-height:2; }.stat { min-width:120px; }.stat strong { display:block; font-size:54px; line-height:1; letter-spacing:-.07em; }.stat span { display:block; margin-top:8px; color:rgba(11,12,12,.5); font:700 8px/1.5 "Space Mono",monospace; }

.bento { color:#fff; background:var(--ink); }.section-top { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:60px; }.section-top h2 { margin:30px 0 0; font-size:clamp(56px,7.5vw,120px); line-height:.82; letter-spacing:-.08em; font-style:italic; }.section-top > p { max-width:420px; margin:0; color:rgba(255,255,255,.48); font-size:12px; line-height:2; }.section-top > p strong { display:block; margin-bottom:18px; color:#fff; font-size:clamp(19px,1.7vw,25px); line-height:1.35; letter-spacing:-.045em; }.section-top > p span { display:block; }
.core-summary { width:min(100%,470px); padding:24px 0 2px 25px; border-left:1px solid rgba(223,255,50,.42); }
.core-summary > strong { display:block; margin-bottom:20px; color:#fff; font-size:clamp(19px,1.7vw,25px); line-height:1.35; letter-spacing:-.045em; }
.core-summary ul { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.core-summary li { position:relative; padding-left:17px; color:rgba(255,255,255,.76); font-size:12px; font-weight:700; line-height:1.65; }
.core-summary li:before { content:""; position:absolute; left:0; top:.75em; width:5px; height:5px; background:var(--lime); transform:rotate(45deg); }
.core-summary p { margin:22px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.46); font-size:11px; line-height:1.9; }
.availability-chip { display:inline-flex; margin:26px 0 0; padding:8px 11px; border:1px solid rgba(223,255,50,.48); color:var(--lime); background:rgba(223,255,50,.04); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.demo-disclaimer { display:block; width:max-content; max-width:100%; margin-top:10px; color:rgba(255,255,255,.38); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.core-demo-note { margin-top:16px; margin-left:auto; }
.bento-grid { min-height:1080px; display:grid; grid-template-columns:1.22fr .78fr; grid-template-rows:1fr .82fr; gap:12px; }.tile { position:relative; min-height:400px; overflow:hidden; border:1px solid var(--white-line); background:var(--ink-2); }.tile-no { position:absolute; z-index:4; top:20px; left:20px; color:rgba(255,255,255,.55); font:700 8px "Space Mono",monospace; letter-spacing:.12em; }.tile img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1); }.tile:hover img { transform:scale(1.035); }.tile-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,7,7,.92),transparent 68%); }.tile-copy { position:absolute; z-index:3; left:30px; right:30px; bottom:30px; }.tile-copy small { color:var(--lime); font:700 8px "Space Mono",monospace; letter-spacing:.13em; }.tile-copy h3 { margin:9px 0 0; font-size:clamp(26px,2.7vw,44px); line-height:1.05; letter-spacing:-.065em; }.tile-copy p { max-width:380px; margin:12px 0 0; color:rgba(11,12,12,.62); font-size:11px; line-height:1.7; }.tile:not(.tile-lime) .tile-copy p { color:rgba(255,255,255,.62); }.map-pin { position:absolute; z-index:4; right:28px; top:28px; width:62px; height:62px; display:grid; place-items:center; text-align:center; border-radius:50%; color:var(--ink); background:var(--lime); font:900 8px/1.2 "Space Mono",monospace; transform:rotate(9deg); animation:float 2.4s ease-in-out infinite alternate; }
.tile-lime { color:var(--ink); background:var(--lime); }.tile-lime .tile-no { color:rgba(11,12,12,.5); }.tile-copy.dark small { color:rgba(11,12,12,.5); }.xp-ring { width:min(56%,260px); aspect-ratio:1; position:absolute; left:50%; top:42%; transform:translate(-50%,-50%); border-radius:50%; background:conic-gradient(var(--ink) 0 78%,rgba(11,12,12,.13) 78%); }.xp-ring:before { content:""; position:absolute; inset:13px; border-radius:50%; background:var(--lime); }.xp-ring span { position:absolute; inset:0; z-index:2; display:flex; flex-wrap:wrap; align-content:center; align-items:baseline; justify-content:center; column-gap:4px; font:700 12px "Space Mono",monospace; }.xp-ring span small { flex-basis:100%; margin-bottom:7px; text-align:center; font:700 6px "Space Mono",monospace; letter-spacing:.14em; opacity:.55; }.xp-ring b { font:900 70px/1 "Inter",sans-serif; letter-spacing:-.1em; }
.tile-black { background:#0a0b0b; }.ghost-lines { position:absolute; inset:0; overflow:hidden; opacity:.32; }.ghost-lines i { position:absolute; top:-10%; bottom:-10%; width:1px; background:linear-gradient(transparent,var(--cyan),transparent); transform:rotate(35deg); box-shadow:0 0 20px var(--cyan); }.ghost-lines i:nth-child(1){left:30%}.ghost-lines i:nth-child(2){left:54%}.ghost-lines i:nth-child(3){left:76%}.ghost-score { position:absolute; top:20%; left:50%; transform:translateX(-50%); text-align:center; font-family:"Space Mono",monospace; }.ghost-score span,.ghost-score small { display:block; color:rgba(255,255,255,.42); font-size:8px; }.ghost-score b { display:block; margin:8px 0; color:var(--cyan); font-size:38px; letter-spacing:-.08em; text-shadow:0 0 30px rgba(53,233,255,.22); }.tile-map img { filter:saturate(.7) contrast(1.05); }.tile-map:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,9,9,.32),rgba(8,9,9,.72)); }.tile-map .tile-copy { right:220px; }.collection-card { position:absolute; z-index:3; right:24px; bottom:24px; width:170px; padding:18px; color:var(--ink); background:rgba(240,239,232,.9); backdrop-filter:blur(12px); }.collection-card small,.collection-card span { display:block; font:700 7px "Space Mono",monospace; color:rgba(11,12,12,.52); }.collection-card strong { display:block; margin:8px 0; font-size:56px; line-height:.9; letter-spacing:-.1em; }

.world-record { min-height:860px; position:relative; isolation:isolate; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:7vw; overflow:hidden; color:#fff; background:#0b0c0c; }
.record-media,.record-shade,.record-grid { position:absolute; inset:0; width:100%; height:100%; }
.record-media { z-index:-3; object-fit:cover; object-position:center 54%; filter:grayscale(.75) contrast(1.16) brightness(.48); }
.record-shade { z-index:-2; background:linear-gradient(90deg,rgba(7,8,8,.97) 0%,rgba(7,8,8,.82) 45%,rgba(7,8,8,.28) 100%),linear-gradient(0deg,rgba(7,8,8,.82),transparent 60%); }
.record-grid { z-index:-1; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(90deg,#000,transparent 86%); }
.record-copy { position:relative; z-index:2; max-width:760px; }
.record-status { width:max-content; max-width:100%; margin:38px 0 24px; padding:10px 12px; display:flex; flex-wrap:wrap; gap:7px 16px; align-items:center; border:1px solid rgba(255,59,48,.65); color:#ff655d; background:rgba(255,59,48,.08); font-family:"Space Mono",monospace; font-weight:700; letter-spacing:.11em; }
.record-status span { font-size:8px; }.record-status small { color:rgba(255,255,255,.5); font-size:7px; }
.record-copy h2 { margin:0; font-size:clamp(70px,8.8vw,144px); font-style:italic; line-height:.77; letter-spacing:-.09em; }.record-copy h2 em { color:transparent; font-style:inherit; -webkit-text-stroke:1.5px #ff3b30; text-shadow:0 0 50px rgba(255,59,48,.16); }
.record-copy > strong { display:block; margin:42px 0 20px; font-size:clamp(29px,3.6vw,54px); line-height:1.14; letter-spacing:-.06em; }
.record-copy > p:not(.record-note) { max-width:620px; margin:0 0 12px; color:rgba(255,255,255,.68); font-size:13px; line-height:1.9; }
.record-button { width:min(100%,340px); margin-top:28px; color:#fff; background:#e52b22; }.record-button:hover { color:var(--ink); background:#fff; transform:translateY(-3px); }
.record-button > b { font-size:12px; font-weight:800; }
.record-copy .record-note { max-width:700px; margin:24px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.42); font-size:9px; line-height:1.8; }
.record-hud { position:relative; z-index:2; width:min(100%,430px); justify-self:end; padding:30px; border:1px solid rgba(255,255,255,.28); background:rgba(7,8,8,.7); backdrop-filter:blur(20px); box-shadow:0 35px 90px rgba(0,0,0,.38); transform:rotate(1.5deg); font-family:"Space Mono",monospace; }
.record-hud:before { content:""; position:absolute; inset:-9px 9px 9px -9px; z-index:-1; border:1px solid rgba(255,59,48,.45); pointer-events:none; }
.record-hud > span,.record-hud > small { display:block; color:rgba(255,255,255,.42); font-size:7px; letter-spacing:.13em; }.record-hud > small { margin-top:7px; color:#ff655d; }
.record-hud > strong { display:block; margin:38px 0 12px; color:#fff; font-size:clamp(52px,6vw,86px); line-height:.9; letter-spacing:-.1em; }
.record-hud > div:not(.record-meta) { display:flex; justify-content:space-between; align-items:center; }.record-hud > div b { color:rgba(255,255,255,.36); font-size:7px; }.record-hud > div em { color:#ff655d; font-size:11px; font-style:normal; font-weight:700; }
.record-hud > p { height:4px; margin:22px 0 28px; background:rgba(255,255,255,.15); }.record-hud > p i { display:block; width:var(--value); height:100%; background:#ff3b30; box-shadow:0 0 18px rgba(255,59,48,.75); }
.record-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:20px; border-top:1px solid rgba(255,255,255,.16); }.record-hud .record-meta span { color:rgba(255,255,255,.55); font-size:7px; letter-spacing:.08em; }.record-hud .record-meta span:nth-child(2) { text-align:center; }.record-hud .record-meta span:last-child { text-align:right; }

.ride-together { min-height:760px; position:relative; display:flex; align-items:center; overflow:hidden; padding:120px 8vw; color:#fff; background:var(--ink); }
.together-media,.together-shade { position:absolute; inset:0; width:100%; height:100%; }
.together-media { object-fit:cover; object-position:center 52%; filter:saturate(.7) contrast(1.08); }
.together-shade { background:linear-gradient(90deg,rgba(6,7,7,.94) 0%,rgba(6,7,7,.76) 48%,rgba(6,7,7,.16) 100%),linear-gradient(0deg,rgba(6,7,7,.62),transparent 55%); }
.together-copy { position:relative; z-index:2; width:min(700px,65vw); }
.development-chip { display:inline-flex; margin:45px 0 22px; padding:8px 11px; border:1px solid rgba(223,255,50,.45); color:var(--lime); background:rgba(11,12,12,.5); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.together-copy h2 { margin:0 0 30px; font-size:clamp(50px,6.4vw,102px); line-height:.95; letter-spacing:-.075em; }
.together-copy p { max-width:590px; margin:0 0 14px; color:rgba(255,255,255,.68); font-size:13px; line-height:2; }
.together-copy > small { display:block; margin-top:30px; color:rgba(255,255,255,.45); font:700 8px "Space Mono",monospace; letter-spacing:.12em; }
.together-copy .community-note { max-width:590px; margin:24px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.48); font-size:10px; line-height:1.9; }

.play { background:var(--paper); }.play-layout { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; align-items:center; }.play-copy { padding-top:90px; }.play-copy h2 { margin:0; font-size:clamp(48px,5.4vw,86px); line-height:1; letter-spacing:-.075em; }.play-copy h2 em { color:var(--purple); font-style:normal; }.play-copy > p:not(.micro):not(.play-ja-title) { max-width:500px; margin:28px 0 50px; color:rgba(11,12,12,.58); font-size:13px; line-height:2; }.play-ja-title { margin:0 0 16px; color:var(--ink); font-size:clamp(20px,2vw,28px); font-weight:800; line-height:1.3; letter-spacing:-.045em; }.steps { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }.steps li { display:grid; grid-template-columns:40px 1fr auto; align-items:center; gap:16px; min-height:86px; border-bottom:1px solid var(--line); cursor:pointer; transition:.25s; }.steps li:hover,.steps li.active { padding-left:14px; background:var(--ink); color:#fff; }.steps li:focus-visible { outline:3px solid var(--purple); outline-offset:2px; }.steps li > b { color:rgba(11,12,12,.35); font:700 9px "Space Mono",monospace; }.steps li:hover > b,.steps li.active > b { color:var(--lime); }.steps li span { font-size:12px; }.steps li strong { display:block; margin-bottom:5px; font:800 10px "Space Mono",monospace; letter-spacing:.08em; }.steps li > i { padding:7px 9px; border:1px solid currentColor; color:rgba(11,12,12,.42); font:700 7px "Space Mono",monospace; font-style:normal; }.steps li:hover > i,.steps li.active > i { color:var(--lime); }
.demo-stage { min-height:780px; position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at center,rgba(141,102,255,.16),transparent 42%); }.demo-stage:before { content:""; position:absolute; left:50%; top:50%; width:420px; height:420px; transform:translate(-50%,-50%); border-radius:50%; background:var(--purple); filter:blur(120px); opacity:.12; }.demo-orbit { position:absolute; width:680px; height:260px; border:1px solid rgba(11,12,12,.16); border-radius:50%; transform:rotate(-24deg); }.orbit-two { width:360px; height:690px; transform:rotate(36deg); border-color:rgba(141,102,255,.26); }.phone-shell { position:relative; z-index:2; width:320px; height:665px; padding:9px; overflow:hidden; border:1px solid #62656a; border-radius:48px; background:#070809; box-shadow:0 55px 100px rgba(18,16,33,.25),inset 0 0 0 2px #26272a; transform:rotate(3deg); }.phone-speaker { position:absolute; z-index:3; top:17px; left:50%; width:100px; height:24px; transform:translateX(-50%); border-radius:18px; background:#060707; }.phone-shell iframe { width:100%; height:100%; border:0; border-radius:39px; background:#111; }.demo-chip { position:absolute; z-index:4; min-width:150px; padding:15px 18px; border:1px solid rgba(11,12,12,.18); background:rgba(255,255,255,.75); backdrop-filter:blur(15px); box-shadow:0 15px 55px rgba(22,22,32,.12); font-family:"Space Mono",monospace; }.demo-chip span { display:block; color:rgba(11,12,12,.43); font-size:7px; letter-spacing:.13em; }.demo-chip b { font-size:26px; letter-spacing:-.07em; }.demo-chip b small { font-size:8px; margin-left:4px; }.chip-a { left:3%; top:25%; }.chip-b { right:2%; bottom:26%; }.chip-b b { color:var(--purple); }.demo-caption { position:absolute; bottom:25px; left:50%; width:100%; transform:translateX(-50%); display:flex; justify-content:center; align-items:center; gap:10px; color:rgba(11,12,12,.47); font:700 7px "Space Mono",monospace; letter-spacing:.1em; }.demo-caption i { width:6px; height:6px; border-radius:50%; background:var(--purple); box-shadow:0 0 10px var(--purple); }.demo-caption a { margin-left:16px; color:var(--ink); }

.app-preview { width:100%; height:100%; padding:18px 17px 14px; overflow:hidden; border-radius:39px; color:#eef3f3; background:linear-gradient(165deg,#1b252a,#0a0d0f 52%); font-family:"Inter",sans-serif; }
.preview-label { width:max-content; margin:0 auto 3px; padding:4px 7px; border:1px solid rgba(223,255,50,.28); color:var(--lime); font:700 5px "Space Mono",monospace; letter-spacing:.08em; }
.app-status { height:29px; display:flex; justify-content:space-between; align-items:center; padding-inline:5px; color:rgba(255,255,255,.54); font:700 7px "Space Mono",monospace; }
.app-head { height:50px; display:flex; align-items:center; justify-content:space-between; }.app-head > span { font-size:15px; font-weight:900; font-style:italic; letter-spacing:-.07em; }.app-head > span b { color:var(--lime); }.app-head > i { width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:50%; color:var(--lime); font-style:normal; }
.app-welcome small { display:block; color:rgba(255,255,255,.38); font:700 6px "Space Mono",monospace; letter-spacing:.13em; }.app-welcome strong { display:block; margin-top:5px; font-size:19px; letter-spacing:-.06em; }
.app-quest { margin-top:16px; padding:14px; display:flex; justify-content:space-between; align-items:center; border:1px solid rgba(223,255,50,.3); border-radius:13px; background:linear-gradient(135deg,rgba(223,255,50,.12),rgba(223,255,50,.03)); }.app-quest div span,.app-quest div small { display:block; color:rgba(255,255,255,.45); font:700 6px "Space Mono",monospace; letter-spacing:.1em; }.app-quest div b { display:block; margin:5px 0; font-size:10px; }.app-quest > i { width:47px; height:47px; display:grid; place-items:center; border-radius:50%; color:var(--ink); background:var(--lime); text-align:center; font:900 7px/1.2 "Space Mono",monospace; font-style:normal; }
.app-map { height:210px; position:relative; margin-top:13px; overflow:hidden; border-radius:15px; background:#151c1f; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:22px 22px; }.map-road { position:absolute; display:block; border:1px solid rgba(255,255,255,.11); border-radius:50%; }.road-a { width:330px; height:60px; left:-50px; top:60px; transform:rotate(23deg); }.road-b { width:260px; height:110px; left:40px; top:42px; transform:rotate(-40deg); }.road-c { width:180px; height:250px; left:70px; top:-20px; transform:rotate(60deg); }.app-route { position:absolute; width:170px; height:100px; left:55px; top:48px; border-left:4px solid var(--cyan); border-bottom:4px solid var(--cyan); border-radius:0 0 0 55px; transform:rotate(-16deg); filter:drop-shadow(0 0 5px rgba(53,233,255,.65)); }.route-start,.route-end { position:absolute; z-index:2; display:grid; place-items:center; border-radius:50%; }.route-start { width:9px; height:9px; left:55px; top:65px; background:#fff; box-shadow:0 0 0 4px rgba(255,255,255,.15); }.route-end { width:27px; height:27px; right:53px; bottom:43px; color:var(--ink); background:var(--lime); font:900 13px sans-serif; font-style:normal; box-shadow:0 0 0 5px rgba(223,255,50,.12); }.map-label { position:absolute; left:12px; bottom:11px; color:rgba(255,255,255,.36); font:700 6px "Space Mono",monospace; letter-spacing:.08em; }.map-label b { color:#fff; margin-left:6px; }
.app-stats { display:grid; grid-template-columns:repeat(3,1fr); margin-top:13px; padding-block:11px; border-block:1px solid rgba(255,255,255,.1); }.app-stats > div { text-align:center; border-right:1px solid rgba(255,255,255,.08); }.app-stats > div:last-child { border:0; }.app-stats small { display:block; color:rgba(255,255,255,.35); font:700 5px "Space Mono",monospace; }.app-stats b { display:inline-block; margin-top:4px; font-size:20px; letter-spacing:-.08em; }.app-stats span { color:var(--lime); font:700 5px "Space Mono",monospace; margin-left:3px; }.app-start { width:100%; height:48px; margin-top:13px; border:0; border-radius:4px; color:var(--ink); background:var(--lime); font:900 8px "Space Mono",monospace; letter-spacing:.05em; }.app-start:disabled { opacity:.82; cursor:not-allowed; }.app-start span { margin-right:8px; }.app-tabs { height:35px; display:flex; align-items:end; justify-content:space-around; }.app-tabs i { width:14px; height:3px; border-radius:4px; background:rgba(255,255,255,.18); }.app-tabs i.active { width:26px; background:var(--lime); }

.character-section { min-height:900px; position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; overflow:hidden; padding:120px 8vw; color:#fff; background:var(--purple); }.character-bg { position:absolute; left:-2vw; top:5%; color:rgba(11,12,12,.1); font:900 clamp(150px,22vw,350px)/.68 "Inter",sans-serif; letter-spacing:-.11em; }.character-copy { position:relative; z-index:3; max-width:570px; }.character-copy .micro { margin-top:55px; color:rgba(255,255,255,.48); }.micro-ja { margin:0 0 15px; color:#fff; font-size:clamp(20px,2vw,28px); font-weight:800; line-height:1.3; letter-spacing:-.045em; }.character-copy h2 { margin:0; font-size:clamp(52px,6vw,94px); line-height:.96; letter-spacing:-.075em; }.character-copy > p:not(.micro):not(.micro-ja) { max-width:500px; color:rgba(255,255,255,.7); font-size:13px; line-height:2; }.tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:28px; }.tags span { padding:9px 11px; border:1px solid rgba(255,255,255,.3); font:700 8px "Space Mono",monospace; }.character-art { min-height:650px; position:relative; display:grid; place-items:center; }.character-art img { position:relative; z-index:2; width:min(78%,540px); max-height:700px; object-fit:contain; filter:drop-shadow(0 35px 45px rgba(17,9,44,.25)); }.character-halo { position:absolute; width:min(75%,520px); aspect-ratio:1; border:1px solid rgba(255,255,255,.28); border-radius:50%; box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.02); }.character-halo:before,.character-halo:after { content:""; position:absolute; left:50%; top:-15%; width:1px; height:130%; background:rgba(255,255,255,.22); }.character-halo:after { transform:rotate(90deg); }.level-card { position:absolute; z-index:3; right:2%; bottom:8%; min-width:180px; padding:17px; color:var(--ink); background:var(--lime); transform:rotate(-3deg); }.level-card span,.level-card small { display:block; font:700 7px "Space Mono",monospace; }.level-card strong { display:block; margin:7px 0; font-size:23px; letter-spacing:-.06em; }

.principles { background:var(--paper); }.principles-head { display:grid; grid-template-columns:1fr .5fr; gap:70px; align-items:end; margin:70px 0; }.principles-head h2 { margin:0; font-size:clamp(66px,9vw,145px); line-height:.75; letter-spacing:-.09em; }.principles-head h2 em { color:transparent; font-style:normal; -webkit-text-stroke:1.5px var(--ink); }.principles-intro strong { display:block; margin-bottom:20px; font-size:clamp(21px,2.1vw,31px); line-height:1.28; letter-spacing:-.045em; }.principles-intro p { max-width:350px; margin:0; color:rgba(11,12,12,.58); font-size:12px; line-height:2; }.principle-list { border-top:1px solid var(--line); }.principle-list article { min-height:145px; display:grid; grid-template-columns:80px .7fr 1fr 40px; align-items:center; gap:24px; border-bottom:1px solid var(--line); transition:.3s; }.principle-list article:hover { padding-inline:20px; color:var(--paper); background:var(--ink); }.principle-list b { color:rgba(11,12,12,.35); font:700 9px "Space Mono",monospace; }.principle-list article:hover b { color:var(--lime); }.principle-list h3 { margin:0; font-size:34px; letter-spacing:-.06em; }.principle-list p { color:rgba(11,12,12,.55); font-size:12px; }.principle-list article:hover p { color:rgba(255,255,255,.55); }.principle-list span { font-size:24px; }

.coming { color:#fff; background:#111313; border-top:1px solid var(--white-line); }
.coming-head { display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:80px; margin-bottom:65px; }
.coming-head h2 { margin:45px 0 0; font-size:clamp(58px,7.7vw,122px); font-style:italic; line-height:.82; letter-spacing:-.085em; }
.coming-intro strong { display:block; font-size:clamp(24px,2.5vw,36px); line-height:1.15; letter-spacing:-.055em; }
.coming-intro p { margin:25px 0 0; color:rgba(255,255,255,.55); font-size:12px; line-height:2; }
.coming-intro .coming-next { margin-top:28px; color:var(--lime); font-size:clamp(22px,2.3vw,34px); }
.coming-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.future-card { min-height:540px; position:relative; display:flex; flex-direction:column; padding:32px; overflow:hidden; border:1px solid var(--white-line); background:linear-gradient(145deg,#181b1b,#0c0d0d); }
.future-card:before { content:""; position:absolute; width:240px; height:240px; right:-110px; top:-110px; border:1px solid rgba(223,255,50,.14); border-radius:50%; box-shadow:0 0 0 45px rgba(223,255,50,.025),0 0 0 90px rgba(223,255,50,.018); }
.future-no { color:rgba(255,255,255,.35); font:700 8px "Space Mono",monospace; }
.future-status { width:max-content; margin:40px 0 22px; padding:8px 10px; display:flex; flex-direction:column; gap:4px; border:1px solid currentColor; font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.future-status b { font:inherit; }.future-status span { font-size:6px; letter-spacing:.08em; opacity:.72; }
.status-closed { color:var(--cyan); }.status-private { color:var(--orange); }.status-plan { color:var(--lime); }.status-dev { color:var(--cyan); }.status-concept { color:#bca8ff; }
.future-card h3 { min-height:1em; margin:0 0 36px; font-size:clamp(34px,4vw,64px); line-height:.9; letter-spacing:-.07em; }
.future-card strong { display:block; margin-top:auto; font-size:21px; line-height:1.28; letter-spacing:-.045em; }
.future-card p { margin:18px 0 0; color:rgba(255,255,255,.52); font-size:11px; line-height:1.9; }
.future-notes { margin-top:28px; padding-top:22px; border-top:1px solid var(--white-line); color:rgba(255,255,255,.4); font-size:10px; line-height:1.8; }
.future-notes p { margin:4px 0; }
.voice-rd { margin-top:12px; padding:30px 32px; display:grid; grid-template-columns:.55fr 1fr 1fr; gap:36px; align-items:center; border:1px solid rgba(141,102,255,.5); background:linear-gradient(120deg,rgba(141,102,255,.16),rgba(11,12,12,.5)); }
.voice-rd > div span,.voice-rd > div small { display:block; font-family:"Space Mono",monospace; font-weight:700; letter-spacing:.12em; }.voice-rd > div span { color:#c8b8ff; font-size:9px; }.voice-rd > div small { margin-top:7px; color:rgba(255,255,255,.44); font-size:7px; }.voice-rd strong { font-size:clamp(19px,2vw,29px); line-height:1.3; letter-spacing:-.045em; }.voice-rd p { margin:0; color:rgba(255,255,255,.52); font-size:11px; line-height:1.9; }

.quote-section { min-height:700px; position:relative; display:grid; place-items:center; overflow:hidden; text-align:center; color:#fff; background:var(--ink); }.quote-section > p { position:relative; z-index:2; margin:0; font-size:clamp(64px,9vw,145px); font-weight:900; font-style:italic; line-height:.82; letter-spacing:-.09em; }.quote-section em { color:var(--lime); font-style:inherit; }.quote-section > span { position:absolute; bottom:70px; z-index:2; color:rgba(255,255,255,.45); font:700 8px "Space Mono",monospace; letter-spacing:.12em; }.route-line-art { position:absolute; inset:0; opacity:.32; }.route-line-art:before { content:""; position:absolute; width:70vw; height:150px; left:15vw; top:45%; border-top:3px solid var(--cyan); border-radius:50%; transform:rotate(-9deg); box-shadow:0 -5px 25px rgba(53,233,255,.25); }.route-line-art i { position:absolute; width:10px; height:10px; border-radius:50%; background:var(--lime); box-shadow:0 0 16px var(--lime); }.route-line-art i:nth-child(1){left:18%;top:48%}.route-line-art i:nth-child(2){left:40%;top:38%}.route-line-art i:nth-child(3){left:65%;top:43%}.route-line-art i:nth-child(4){left:82%;top:35%}

.faq { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; background:var(--paper); }.faq-head h2 { margin:70px 0 30px; font-size:clamp(58px,7.2vw,116px); line-height:.8; letter-spacing:-.09em; }.faq-head > p { max-width:350px; color:rgba(11,12,12,.55); font-size:12px; line-height:2; }.faq-list { padding-top:10px; border-top:1px solid var(--line); }.faq-list details { border-bottom:1px solid var(--line); }.faq-list summary { min-height:95px; display:grid; grid-template-columns:45px 1fr 30px; align-items:center; gap:15px; list-style:none; cursor:pointer; font-size:14px; font-weight:700; }.faq-list summary::-webkit-details-marker { display:none; }.faq-list summary span { color:rgba(11,12,12,.35); font:700 8px "Space Mono",monospace; }.faq-list summary i { width:28px; height:28px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-style:normal; transition:.25s; }.faq-list details[open] summary i { color:var(--paper); background:var(--ink); transform:rotate(45deg); }.faq-list details p { max-width:650px; margin:-5px 40px 30px 60px; color:rgba(11,12,12,.56); font-size:12px; line-height:1.9; }.faq-list details p a { color:var(--ink); font-weight:800; text-decoration:underline; text-underline-offset:3px; }

.final-cta { min-height:820px; position:relative; display:grid; place-items:center; overflow:hidden; text-align:center; background:var(--lime); }.final-grid { position:absolute; inset:-20%; opacity:.15; transform:perspective(800px) rotateX(65deg); background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px); background-size:70px 70px; mask-image:radial-gradient(circle,#000,transparent 65%); }.final-copy { position:relative; z-index:2; padding:100px 20px; }.live-label.dark { margin-inline:auto; color:var(--ink); border-color:rgba(11,12,12,.28); background:rgba(255,255,255,.14); }.live-label.dark i { background:var(--ink); box-shadow:none; }.final-copy > p { margin:30px 0 15px; font:700 9px "Space Mono",monospace; letter-spacing:.15em; }.final-copy h2 { margin:0 0 45px; font-size:clamp(62px,8.5vw,136px); line-height:.88; letter-spacing:-.09em; }.final-copy h2 em { color:transparent; font-style:normal; -webkit-text-stroke:2px var(--ink); }.button-dark { min-width:300px; color:#fff; background:var(--ink); margin-bottom:20px; }.button-dark:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(11,12,12,.2); }.final-copy > small { display:block; color:rgba(11,12,12,.48); font:700 7px "Space Mono",monospace; }.final-badge { position:absolute; right:6vw; top:18%; width:108px; height:108px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; transform:rotate(9deg); animation:float 2.4s ease-in-out infinite alternate; }.final-badge span { position:absolute; top:11px; font-size:18px; }.final-badge b { margin-top:11px; font-size:15px; line-height:.85; letter-spacing:-.06em; }.final-badge small { position:absolute; bottom:10px; font:700 6px "Space Mono",monospace; }

footer { min-height:190px; padding:45px 5vw; display:grid; grid-template-columns:1fr 1fr 1.4fr auto; gap:30px; align-items:center; color:#fff; background:var(--ink); border-top:1px solid var(--white-line); }.logo + p { margin:0; color:rgba(255,255,255,.48); font:700 8px/1.7 "Space Mono",monospace; letter-spacing:.1em; }.logo + p span { color:var(--lime); }.site-footer{}.logo-type{}.footer{} footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:22px; } footer nav a { color:rgba(255,255,255,.48); font:700 8px "Space Mono",monospace; } footer nav a:hover { color:var(--lime); } footer > small { color:rgba(255,255,255,.3); font:700 7px/1.7 "Space Mono",monospace; text-align:right; }

.reveal { opacity:0; transform:translateY(30px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1); }.reveal.is-visible { opacity:1; transform:none; }
@keyframes heroDrift { to { transform:scale(1.07) translateX(-.7%); } }
@keyframes pulse { 50% { opacity:.35; transform:scale(.75); } }
@keyframes scrollLine { from { transform:translateX(-20px); } to { transform:translateX(58px); } }
@keyframes ticker { to { transform:translateX(-50%); } }
@keyframes float { to { transform:translateY(-9px) rotate(5deg); } }

.logo-bolt { width:23px; height:32px; display:grid; place-items:center; overflow:visible; border-radius:0; background:transparent; clip-path:none; }
.logo-bolt img { width:100%; max-width:none; height:100%; object-fit:contain; object-position:center; filter:invert(92%) sepia(78%) saturate(748%) hue-rotate(23deg) brightness(108%) contrast(102%); }
.ticker i.ticker-bolt { width:22px; height:34px; flex:0 0 22px; display:grid; place-items:center; overflow:visible; font-size:0; }
.ticker-bolt img { width:100%; max-width:none; height:100%; display:block; object-fit:contain; object-position:center; }
.manifesto:after { content:""; width:360px; height:400px; background:url("./assets/pedalquest-lightning-transparent.png?v=20260722-2") center / contain no-repeat; opacity:.035; }
.route-end { overflow:hidden; }.route-end img { width:100%; max-width:none; height:100%; object-fit:contain; object-position:center; }
.final-badge span { width:27px; height:29px; display:grid; place-items:center; overflow:hidden; }.final-badge span img { width:100%; max-width:none; height:100%; object-fit:contain; object-position:center; }

.ride-stories { color:#fff; background:#101111; border-top:1px solid var(--white-line); }
.stories-head { display:flex; justify-content:space-between; align-items:end; gap:70px; margin-bottom:58px; }
.stories-head h2 { margin:42px 0 0; max-width:980px; font-size:clamp(54px,7.4vw,118px); font-style:italic; line-height:.83; letter-spacing:-.085em; }
.stories-intro { max-width:420px; }.stories-intro strong { display:block; margin-bottom:20px; font-size:clamp(21px,2.1vw,31px); line-height:1.3; letter-spacing:-.045em; }.stories-intro p { margin:0; color:rgba(255,255,255,.5); font-size:12px; line-height:2; }
.stories-grid { height:1050px; display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:repeat(8,1fr); gap:12px; }
.story-shot { position:relative; min-width:0; min-height:0; margin:0; overflow:hidden; border:1px solid var(--white-line); background:#202323; }
.story-shot:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,6,6,.84),transparent 55%); pointer-events:none; }
.story-shot img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .5s; }
.story-shot:hover img { transform:scale(1.035); filter:saturate(1.08); }
.story-shot figcaption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; }
.story-shot figcaption span,.story-shot figcaption small { display:block; color:rgba(255,255,255,.52); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.story-shot figcaption strong { display:block; margin:8px 0 5px; font-size:clamp(20px,2.2vw,34px); line-height:1.15; letter-spacing:-.055em; }
.story-shot-main { grid-column:1 / 8; grid-row:1 / 6; }.story-shot-main img { object-position:62% center; }
.story-shot-tall { grid-column:8 / 13; grid-row:1 / 9; }.story-shot-tall img { object-position:center; }
.story-shot-small { grid-row:6 / 9; }.shot-map { grid-column:1 / 4; }.shot-detail { grid-column:4 / 8; }
.shot-detail img { object-position:75% 60%; transform:scale(1.04); }.shot-detail:hover img { transform:scale(1.08); }
.stories-note { margin:20px 0 0; color:rgba(255,255,255,.34); font:700 7px "Space Mono",monospace; letter-spacing:.14em; text-align:right; }

.quote-section { isolation:isolate; background:#0a0b0b; }
.quote-media,.quote-shade { position:absolute; inset:0; width:100%; height:100%; }
.quote-media { z-index:-3; object-fit:cover; object-position:65% center; filter:saturate(.72) contrast(1.08); }
.quote-shade { z-index:-2; background:linear-gradient(90deg,rgba(7,8,8,.82),rgba(7,8,8,.36)),linear-gradient(0deg,rgba(7,8,8,.68),transparent 55%); }
.route-line-art { z-index:-1; }
.faq-visual { position:relative; aspect-ratio:4 / 3; margin:45px 0 0; overflow:hidden; background:#ddd; }
.faq-visual img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }.faq-visual:hover img { transform:scale(1.035); }
.faq-visual figcaption { position:absolute; left:12px; bottom:12px; padding:8px 10px; color:#fff; background:rgba(11,12,12,.72); backdrop-filter:blur(10px); font:700 7px "Space Mono",monospace; letter-spacing:.1em; }

.product-gallery { margin-top:120px; padding:clamp(28px,4.5vw,72px); color:#fff; background:#0a0b0b; border:1px solid rgba(11,12,12,.12); box-shadow:0 30px 90px rgba(11,12,12,.12); }
.product-gallery-head { display:flex; justify-content:space-between; align-items:end; gap:70px; margin-bottom:48px; }
.product-gallery-head .micro { margin:0 0 24px; color:var(--lime); }
.product-gallery-head h3 { margin:0; font-size:clamp(52px,6.5vw,102px); font-style:italic; line-height:.82; letter-spacing:-.085em; }
.product-gallery-head h3 em { color:var(--lime); font-style:inherit; }
.product-gallery-head > p { max-width:410px; margin:0; color:rgba(255,255,255,.48); font-size:12px; line-height:2; }
.product-world-visual { position:relative; aspect-ratio:1611 / 976; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.16); background:#05080b; box-shadow:0 28px 80px rgba(0,0,0,.35); }
.product-world-visual:before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(0deg,rgba(3,5,7,.92) 0%,rgba(3,5,7,.08) 48%),linear-gradient(90deg,rgba(3,5,7,.28),transparent 62%); pointer-events:none; }
.product-world-visual:after { content:"DEVELOPMENT BUILD / PREVIEW"; position:absolute; z-index:3; top:20px; left:22px; padding:9px 11px; color:var(--lime); border:1px solid rgba(200,255,0,.48); background:rgba(4,7,9,.72); backdrop-filter:blur(12px); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.product-world-visual img { width:100%; height:100%; display:block; object-fit:cover; transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .6s; }
.product-world-visual:hover img { transform:scale(1.018); filter:saturate(1.08) contrast(1.02); }
.product-world-visual figcaption { position:absolute; z-index:3; left:34px; right:240px; bottom:32px; }
.product-world-visual figcaption span,.product-world-visual figcaption small { display:block; color:rgba(255,255,255,.58); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.product-world-visual figcaption span { color:var(--lime); }
.product-world-visual figcaption strong { display:block; margin:11px 0 8px; font-size:clamp(25px,3.2vw,50px); line-height:1.02; letter-spacing:-.06em; }
.product-world-status { position:absolute; z-index:3; right:22px; bottom:26px; min-width:170px; padding:15px 16px; border:1px solid rgba(255,255,255,.18); background:rgba(5,8,10,.72); backdrop-filter:blur(15px); }
.product-world-status i { width:7px; height:7px; display:inline-block; margin-right:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px var(--lime); animation:pulse 1.8s infinite; }
.product-world-status span,.product-world-status b { font:700 7px "Space Mono",monospace; letter-spacing:.12em; }.product-world-status span { color:rgba(255,255,255,.45); }.product-world-status b { display:block; margin:7px 0 0 16px; color:#fff; font-size:10px; }
.product-world-meta { display:grid; grid-template-columns:repeat(4,1fr); margin-top:10px; border:1px solid rgba(255,255,255,.12); }
.product-world-meta > div { min-height:105px; padding:20px; border-right:1px solid rgba(255,255,255,.12); }.product-world-meta > div:last-child { border-right:0; }
.product-world-meta small,.product-world-meta span { display:block; color:rgba(255,255,255,.42); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.product-world-meta strong { display:block; margin:12px 0 5px; color:var(--lime); font-size:clamp(21px,2.2vw,34px); line-height:.9; letter-spacing:-.055em; }
.product-gallery-note { margin:18px 0 0; color:rgba(255,255,255,.34); font:700 7px/1.8 "Space Mono",monospace; letter-spacing:.1em; text-align:right; }

.character-art img.dynamic-rider { width:min(96%,650px); max-height:810px; transform:translateY(4%); filter:drop-shadow(0 45px 50px rgba(17,9,44,.34)); }

.story-share { min-height:560px; padding:95px 7vw; display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:8vw; color:#fff; background:#0a0b0b; border-block:1px solid var(--white-line); }
.story-share-copy { max-width:620px; }
.story-share-copy .micro { margin:42px 0 18px; color:var(--lime); }
.story-share-copy h2 { margin:0; font-size:clamp(42px,5vw,78px); line-height:.96; letter-spacing:-.075em; }
.story-share-copy > p:not(.micro) { max-width:550px; margin:22px 0 0; color:rgba(255,255,255,.58); font-size:12px; line-height:2; }
.share-console { padding:12px; border:1px solid rgba(255,255,255,.2); background:linear-gradient(145deg,#171a1a,#090a0a); box-shadow:0 30px 70px rgba(0,0,0,.32); transform:rotate(1deg); }
.share-console-head { min-height:48px; padding:0 14px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--white-line); font:700 8px "Space Mono",monospace; letter-spacing:.13em; }
.share-console-head small { color:var(--lime); line-height:1.55; text-align:right; }
.share-console-grid { display:grid; grid-template-columns:1fr 1fr; }
.share-console-grid > div { min-height:135px; padding:21px; border-right:1px solid var(--white-line); border-bottom:1px solid var(--white-line); }
.share-console-grid > div:nth-child(2n) { border-right:0; }.share-console-grid > div:nth-last-child(-n+2) { border-bottom:0; }
.share-console-grid small,.share-console-grid span { display:block; color:rgba(255,255,255,.36); font:700 7px "Space Mono",monospace; letter-spacing:.11em; }
.share-console-grid strong { display:block; margin:26px 0 7px; font-size:clamp(17px,2vw,28px); letter-spacing:-.055em; }
.share-console > p { margin:0; padding:16px 14px 4px; color:rgba(255,255,255,.48); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.share-console > p i { width:7px; height:7px; display:inline-block; margin-right:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px var(--lime); }

.trust-supplement { margin-top:74px; padding-top:42px; border-top:1px solid var(--line); }
.trust-supplement-head { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:28px; }
.trust-supplement-head .micro { margin:0 0 13px; color:rgba(11,12,12,.48); }
.trust-supplement-head h3 { margin:0; font-size:clamp(31px,3.7vw,58px); line-height:1; letter-spacing:-.07em; }
.trust-availability { width:max-content; padding:8px 10px; color:rgba(11,12,12,.52); border:1px solid var(--line); font:700 7px "Space Mono",monospace; letter-spacing:.08em; }
.trust-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.trust-card { min-height:315px; display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); background:rgba(255,255,255,.28); }
.trust-card > span { color:rgba(11,12,12,.48); font:700 8px "Space Mono",monospace; letter-spacing:.13em; }
.trust-card h4 { margin:28px 0 18px; font-size:clamp(22px,2.3vw,34px); line-height:1.16; letter-spacing:-.055em; }
.trust-card p { max-width:560px; margin:0; color:rgba(11,12,12,.58); font-size:11px; line-height:1.9; }
.trust-card small { display:block; margin-top:auto; padding-top:24px; color:rgba(11,12,12,.4); font:700 7px/1.8 "Space Mono",monospace; }
.live-map-grid { position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px); background-size:45px 45px; transform:rotate(-5deg) scale(1.15); }

.featured-quests { display:grid; gap:18px; margin:0 0 18px; }
.featured-quest { min-height:790px; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; overflow:hidden; border:1px solid rgba(255,255,255,.18); background:#0a0b0b; }
.featured-visual,.featured-copy { min-width:0; }
.featured-copy { padding:clamp(35px,5vw,78px); display:flex; flex-direction:column; justify-content:center; }
.featured-kicker { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:18px; }
.featured-kicker > span { color:rgba(255,255,255,.38); font:700 7px "Space Mono",monospace; letter-spacing:.13em; }
.featured-kicker .future-status { margin:0; }
.general-release { width:max-content; margin:0 0 45px; padding:7px 9px; color:rgba(255,255,255,.45); border:1px solid rgba(255,255,255,.2); font:700 6px "Space Mono",monospace; letter-spacing:.11em; }
.featured-copy .micro { margin:0 0 14px; color:var(--lime); }
.featured-copy h3 { margin:0 0 34px; font-size:clamp(52px,6vw,96px); line-height:.83; letter-spacing:-.08em; }
.featured-copy > strong { display:block; font-size:clamp(28px,3vw,46px); line-height:1.05; letter-spacing:-.06em; }
.featured-copy > p:not(.micro) { margin:24px 0 0; color:rgba(255,255,255,.56); font-size:12px; line-height:2; }
.featured-subcopy { display:block; margin-top:24px; max-width:540px; color:#fff; font-size:17px; line-height:1.55; letter-spacing:-.035em; }
.featured-note { display:block; margin-top:28px; color:rgba(255,255,255,.34); font:700 7px/1.8 "Space Mono",monospace; }
.featured-visual { display:grid; place-items:center; padding:clamp(20px,3vw,44px); background:linear-gradient(145deg,#181b1b,#080909); }
.live-meet-demo { width:100%; min-height:620px; display:grid; grid-template-rows:auto 1fr auto auto; border:1px solid rgba(255,255,255,.2); background:#0a0c0c; box-shadow:0 35px 80px rgba(0,0,0,.42); transform:rotate(-1deg); }
.live-meet-demo-head { min-height:68px; padding:0 18px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--white-line); }
.live-meet-demo-head div { display:flex; align-items:center; gap:8px; }.live-meet-demo-head i { width:8px; height:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 12px var(--lime); }.live-meet-demo-head span,.live-meet-demo-head small,.live-meet-demo-head b { font:700 7px "Space Mono",monospace; letter-spacing:.12em; }.live-meet-demo-head small { color:rgba(255,255,255,.38); }.live-meet-demo-head b { color:var(--lime); }
.live-meet-map { position:relative; min-height:360px; overflow:hidden; background:radial-gradient(circle at 60% 45%,rgba(53,233,255,.1),transparent 35%),#121515; }
.live-map-road { position:absolute; height:5px; border-block:1px solid rgba(255,255,255,.2); background:#252929; }.road-one { width:110%; left:-8%; top:49%; transform:rotate(-14deg); }.road-two { width:90%; left:17%; top:48%; transform:rotate(41deg); }
.live-map-path { position:absolute; width:76%; height:45%; left:7%; top:27%; border:3px solid var(--cyan); border-left-color:transparent; border-radius:50%; transform:rotate(-11deg); filter:drop-shadow(0 0 7px rgba(53,233,255,.6)); }
.rider-marker { position:absolute; display:grid; grid-template-columns:16px auto; column-gap:7px; align-items:center; color:#fff; font:700 6px "Space Mono",monospace; letter-spacing:.08em; }
.rider-marker i { grid-row:1 / 3; width:16px; height:16px; border:4px solid #0a0c0c; border-radius:50%; background:var(--lime); box-shadow:0 0 13px var(--lime); }.rider-marker small { color:rgba(255,255,255,.45); }.rider-one { left:28%; top:58%; }.rider-two { left:61%; top:30%; }.rider-two i { background:var(--cyan); box-shadow:0 0 13px var(--cyan); }.rider-three { right:8%; bottom:17%; }.rider-three i { background:#bca8ff; box-shadow:0 0 13px #bca8ff; }
.meet-point { position:absolute; left:49%; top:16%; width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--orange); border-radius:50% 50% 50% 0; transform:rotate(-45deg); color:var(--orange); background:rgba(8,10,10,.85); font:700 5px/1.2 "Space Mono",monospace; text-align:center; }.meet-point::first-line { transform:rotate(45deg); }
.privacy-zone-mini { position:absolute; left:10px; bottom:10px; padding:10px; border:1px solid rgba(255,113,69,.42); background:rgba(8,10,10,.82); }.privacy-zone-mini span,.privacy-zone-mini b { display:block; font:700 6px "Space Mono",monospace; letter-spacing:.08em; }.privacy-zone-mini span { color:var(--orange); }.privacy-zone-mini b { margin-top:5px; color:rgba(255,255,255,.58); }
.live-meet-panel { display:grid; grid-template-columns:1.2fr .8fr .9fr auto; border-top:1px solid var(--white-line); }
.live-meet-panel > div { min-height:82px; padding:15px; border-right:1px solid var(--white-line); }
.live-meet-panel small,.live-meet-panel strong { display:block; font:700 6px "Space Mono",monospace; letter-spacing:.09em; }.live-meet-panel small { color:rgba(255,255,255,.38); }.live-meet-panel strong { margin-top:12px; font-size:8px; }
.live-meet-panel button { min-width:112px; padding:0 14px; color:#fff; border:0; background:#d84336; font:700 7px "Space Mono",monospace; letter-spacing:.08em; opacity:1; }
.live-meet-demo-foot { min-height:38px; padding:0 14px; display:flex; justify-content:space-between; align-items:center; color:rgba(255,255,255,.35); border-top:1px solid var(--white-line); font:700 6px "Space Mono",monospace; letter-spacing:.1em; }
.next-rider-feature { min-height:0; display:block; padding:clamp(38px,5vw,78px); }
.next-rider-head { display:grid; grid-template-columns:1.35fr .65fr; align-items:end; gap:7vw; margin-bottom:48px; }
.next-rider-head .featured-kicker { margin-bottom:38px; }
.next-rider-head .micro { margin:0 0 15px; color:var(--lime); }
.next-rider-head h3 { margin:0; max-width:930px; font-size:clamp(62px,7.4vw,118px); line-height:.8; letter-spacing:-.085em; }
.next-rider-head > strong { display:block; padding-bottom:5px; font-size:clamp(27px,3vw,45px); line-height:1.1; letter-spacing:-.06em; }
.next-rider-feature .featured-visual { display:block; width:100%; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.next-rider-feature .product-world-visual:after,.next-rider-feature .product-world-status { display:none; }
.next-rider-feature .product-world-visual figcaption { right:34px; }
.next-rider-feature .product-world-visual figcaption strong { font-size:clamp(28px,4vw,62px); }
.next-rider-feature .product-world-meta > div { min-height:100px; padding:18px; }
.next-rider-feature .product-world-meta strong { font-size:clamp(17px,2vw,30px); }
.next-rider-foot { display:flex; justify-content:space-between; align-items:flex-start; gap:40px; padding-top:25px; }
.next-rider-foot p { margin:0; color:#fff; font-size:clamp(16px,1.6vw,24px); font-weight:800; letter-spacing:-.04em; }
.next-rider-foot small { max-width:620px; color:rgba(255,255,255,.34); font:700 7px/1.8 "Space Mono",monospace; text-align:right; }
.compact-quests { grid-template-columns:repeat(3,1fr); }
.compact-quests .future-card { min-height:500px; }
.future-layer { width:max-content; margin-top:20px; padding:7px 8px; color:var(--orange); border:1px solid rgba(255,113,69,.45); font:700 6px "Space Mono",monospace; letter-spacing:.1em; }

/* Product-map refinement: core entrances, post-ride hierarchy and community preview. */
.core-experience-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.core-card { position:relative; min-width:0; min-height:720px; display:flex; align-items:flex-end; overflow:hidden; padding:28px; border:1px solid var(--white-line); background:#111313; }
.core-card > img,.core-card-shade { position:absolute; inset:0; width:100%; height:100%; }
.core-card > img { object-fit:cover; filter:saturate(.82) contrast(1.08) brightness(.76); transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.core-card:hover > img { transform:scale(1.035); }
.core-card-shade { background:linear-gradient(0deg,rgba(5,7,7,.96) 0%,rgba(5,7,7,.72) 48%,rgba(5,7,7,.12) 82%); }
.core-card-head { position:absolute; z-index:4; top:24px; left:24px; right:24px; display:flex; justify-content:space-between; gap:18px; color:rgba(255,255,255,.62); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.core-card-head small { color:var(--lime); font:inherit; text-align:right; }
.core-card-copy { position:relative; z-index:3; width:100%; }
.core-card-copy h3 { margin:0 0 20px; font-size:clamp(27px,2.5vw,42px); line-height:1.06; letter-spacing:-.065em; }
.core-card-copy p { max-width:520px; margin:9px 0 0; color:rgba(255,255,255,.62); font-size:11px; line-height:1.85; }
.feature-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:25px; }
.feature-tags span { padding:7px 8px; color:var(--lime); border:1px solid rgba(223,255,50,.42); background:rgba(6,8,8,.34); font:700 6px "Space Mono",monospace; letter-spacing:.08em; }
.core-card-indoor { color:var(--ink); background:var(--lime); }
.core-card-indoor .core-card-head { color:rgba(11,12,12,.56); }
.core-card-indoor .core-card-head small { color:var(--ink); }
.core-card-indoor .core-card-copy p { color:rgba(11,12,12,.64); }
.dark-tags span { color:var(--ink); border-color:rgba(11,12,12,.42); background:rgba(255,255,255,.13); }
.indoor-hud { position:absolute; top:95px; left:50%; width:calc(100% - 56px); transform:translateX(-50%); color:rgba(11,12,12,.55); font:700 7px "Space Mono",monospace; letter-spacing:.12em; }
.indoor-hud > div { margin-top:12px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.indoor-hud > div:before { content:""; grid-column:1; grid-row:1; height:4px; background:rgba(11,12,12,.16); }
.indoor-hud i { grid-column:1; grid-row:1; width:var(--level); height:4px; background:var(--ink); }
.indoor-hud b { grid-column:2; grid-row:1; font-size:48px; line-height:.8; letter-spacing:-.1em; }
.indoor-hud small { grid-column:1 / -1; font:inherit; text-align:right; }
.core-card-rival { background:radial-gradient(circle at 62% 26%,rgba(53,233,255,.1),transparent 34%),#090a0a; }
.core-card-rival .ghost-score { top:22%; }

.after-ride { margin-top:96px; padding-top:55px; border-top:1px solid rgba(255,255,255,.18); }
.after-ride-head { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:35px; }
.after-ride-head .micro { color:var(--lime); }
.after-ride-head h3 { margin:0; font-size:clamp(38px,5vw,74px); line-height:1.02; letter-spacing:-.07em; }
.after-ride-head > p { max-width:520px; margin:0; color:rgba(255,255,255,.5); font-size:11px; line-height:1.9; }
.after-ride-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.after-card { min-height:340px; display:flex; flex-direction:column; padding:25px; border:1px solid var(--white-line); background:linear-gradient(145deg,#181a1a,#0d0e0e); transition:transform .25s,border-color .25s; }
.after-card:hover { transform:translateY(-4px); border-color:rgba(223,255,50,.48); }
.after-card > span,.after-card > small { color:rgba(255,255,255,.4); font:700 7px "Space Mono",monospace; letter-spacing:.11em; }
.after-card > strong { margin:45px 0 18px; font-size:clamp(20px,1.8vw,29px); line-height:1.2; letter-spacing:-.05em; }
.after-card > p { margin:0; color:rgba(255,255,255,.55); font-size:10px; line-height:1.85; }
.after-card > small { margin-top:auto; padding-top:25px; color:var(--lime); }

.connect-explore { color:#fff; background:#0b0c0c; }
.connect-hero { position:relative; min-height:650px; display:flex; align-items:flex-end; overflow:hidden; border:1px solid var(--white-line); }
.connect-hero > img,.connect-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.connect-hero > img { object-fit:cover; object-position:center 48%; filter:saturate(.72) contrast(1.1) brightness(.66); transition:transform .9s cubic-bezier(.2,.8,.2,1); }
.connect-hero:hover > img { transform:scale(1.025); }
.connect-hero-shade { background:linear-gradient(0deg,rgba(5,7,7,.97) 0%,rgba(5,7,7,.72) 50%,rgba(5,7,7,.05) 88%),linear-gradient(90deg,rgba(5,7,7,.65),transparent 70%); }
.connect-hero-copy { position:relative; z-index:2; width:100%; padding:clamp(30px,5vw,75px); }
.connect-hero-copy .development-chip { margin-top:26px; }
.connect-hero-copy .micro { margin:35px 0 17px; color:var(--lime); line-height:1.6; }
.connect-hero-copy h2 { max-width:1050px; margin:0; font-size:clamp(42px,6vw,90px); line-height:1; letter-spacing:-.075em; }
.connect-hero-copy > p:last-child { max-width:620px; margin:25px 0 0; color:rgba(255,255,255,.58); font-size:11px; line-height:1.9; }
.connect-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.connect-card { min-height:380px; display:flex; flex-direction:column; padding:28px; border:1px solid var(--white-line); background:linear-gradient(145deg,#171919,#0b0c0c); }
.connect-card > span { color:var(--lime); font:700 7px "Space Mono",monospace; letter-spacing:.13em; }
.connect-card h3 { margin:55px 0 18px; font-size:clamp(25px,2.3vw,38px); line-height:1.12; letter-spacing:-.06em; }
.connect-card p { margin:0; color:rgba(255,255,255,.55); font-size:10px; line-height:1.85; }
.connect-card ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.connect-card li { position:relative; padding-left:17px; color:rgba(255,255,255,.65); font-size:10px; line-height:1.65; }
.connect-card li:before { content:""; position:absolute; left:0; top:.65em; width:6px; height:6px; background:var(--lime); transform:rotate(45deg); }
.connect-card .feature-tags { margin-top:auto; padding-top:25px; }
.connect-card-share { background:linear-gradient(145deg,rgba(141,102,255,.18),#0b0c0c 60%); }
.rider-stats { max-width:580px; }

.status-development { color:var(--lime); }
.status-planning { color:#ffb35c; }
.voice-rd { grid-template-columns:1fr 1fr; align-items:stretch; padding:0; gap:0; }
.voice-rd > div { padding:30px 32px; }
.voice-rd > div + div { border-left:1px solid rgba(141,102,255,.35); }
.voice-rd strong { display:block; margin:28px 0 16px; }
.featured-quest.next-rider-feature { min-height:790px; display:grid; grid-template-columns:1fr 1fr; padding:0; }
.next-rider-feature .featured-copy { display:flex; padding:clamp(35px,5vw,78px); }
.next-rider-visual { align-content:center; grid-template-rows:auto auto; }
.next-rider-feature .product-world-visual { width:100%; }
.next-rider-feature .product-world-visual figcaption { left:24px; right:24px; bottom:24px; }
.next-rider-feature .product-world-meta { grid-template-columns:1fr 1fr; width:100%; }
.next-rider-feature .product-world-meta > div { min-height:82px; padding:14px; border-bottom:1px solid rgba(255,255,255,.12); }
.next-rider-feature .product-world-meta > div:nth-child(2n) { border-right:0; }
.next-rider-feature .product-world-meta > div:nth-last-child(-n+2) { border-bottom:0; }
.next-rider-feature .product-world-meta strong { font-size:clamp(16px,1.5vw,24px); }
.live-meet-demo { grid-template-rows:auto 1fr auto; }

@media (max-width: 1180px) {
  .nav-links { display:none; }.menu { display:block; }.nav.is-open { height:auto; min-height:425px; align-items:flex-start; padding-top:14px; }.nav.is-open .nav-links { position:absolute; inset:70px 15px 15px; display:grid; align-content:start; gap:0; }.nav.is-open .nav-links a { padding:15px 0; border-top:1px solid var(--white-line); }.nav.is-open .menu span:first-child { transform:translateY(3.5px) rotate(45deg); }.nav.is-open .menu span:last-child { transform:translateY(-3.5px) rotate(-45deg); }.hero h1 { font-size:clamp(70px,12vw,125px); }.hud-speed { right:5vw; }.section { padding:100px 4.5vw; }.bento-grid { min-height:950px; }.play-layout { grid-template-columns:1fr 1fr; gap:4vw; }.character-section { padding-inline:5vw; }.principles-head { grid-template-columns:1fr .6fr; }.coming-head { gap:45px; }
  .story-share { padding-inline:4.5vw; gap:4vw; }
  .featured-quest { min-height:720px; }.featured-copy { padding:42px; }.live-meet-demo { min-height:560px; }.next-rider-feature { min-height:0; }
  .live-meet-panel { grid-template-columns:1fr 1fr; }.live-meet-panel > div:nth-child(2) { border-right:0; }.live-meet-panel button { min-height:54px; grid-column:1 / -1; }
  .compact-quests { grid-template-columns:1fr 1fr; }.compact-quests .future-card:last-child { grid-column:1 / -1; }
}

@media (max-width: 780px) {
  .nav { top:10px; left:12px; right:12px; }.nav-actions { display:none; }.nav.is-open { min-height:425px; }
  .hero { min-height:900px; height:auto; align-items:flex-end; }.hero-media img { object-position:62% center; }.hero-shade { background:linear-gradient(0deg,rgba(4,5,7,.96) 0%,rgba(4,5,7,.45) 72%,rgba(4,5,7,.6)); }.hero-content { padding:125px 20px 65px; }.hero h1 { font-size:clamp(60px,19vw,100px); line-height:.8; }.hero h1 .outline { margin-left:0; }.hero-bottom { margin-top:35px; align-items:flex-start; flex-direction:column; gap:28px; }.hero-buttons { width:100%; }.button-primary { flex:1; min-width:0; }.hud-quest,.hud-speed,.hero-coordinate,.scroll-cue { display:none; }
  .ticker span { font-size:19px; }.section { padding:78px 20px; }.manifesto { min-height:800px; }.manifesto-copy { margin-top:80px; }.manifesto h2 { font-size:45px; }.manifesto-foot { grid-template-columns:repeat(3,1fr); gap:35px 14px; }.manifesto-foot > p { grid-column:1 / -1; }.stat { min-width:0; }.stat strong { font-size:42px; }.stat span { font-size:6px; }
  .section-top { align-items:flex-start; flex-direction:column; gap:28px; }.section-top h2 { margin-top:35px; font-size:58px; }.bento-grid { min-height:0; display:block; }.tile { min-height:560px; margin-bottom:10px; }.tile-lime,.tile-black { min-height:520px; }.tile-map { min-height:520px; }.tile-map .tile-copy { right:30px; }.collection-card { width:135px; right:20px; top:65px; bottom:auto; padding:13px; }.collection-card strong { font-size:42px; }
  .world-record { min-height:0; display:block; padding-block:90px; }.record-media { object-position:64% center; }.record-shade { background:linear-gradient(0deg,rgba(7,8,8,.97) 0%,rgba(7,8,8,.76) 76%,rgba(7,8,8,.58)); }.record-copy h2 { font-size:clamp(64px,17vw,100px); }.record-copy > strong { margin-top:34px; }.record-hud { width:calc(100% - 8px); margin:70px 0 0 8px; justify-self:auto; transform:none; }
  .story-share { min-height:0; display:block; padding:85px 20px; }.share-console { margin-top:55px; transform:none; }.share-console-grid > div { min-height:115px; }.share-console-grid strong { margin-top:21px; }
  .ride-together { min-height:760px; align-items:flex-end; padding:90px 20px 75px; }.together-shade { background:linear-gradient(0deg,rgba(6,7,7,.96),rgba(6,7,7,.38) 75%); }.together-copy { width:100%; }.together-copy h2 { font-size:52px; }.development-chip { margin-top:35px; }
  .play-layout { display:block; }.play-copy { padding-top:70px; }.play-copy h2 { font-size:50px; }.demo-stage { min-height:760px; margin:40px -20px -40px; }.phone-shell { width:280px; height:610px; }.demo-orbit { width:500px; }.chip-a { left:4px; }.chip-b { right:4px; }
  .product-gallery { margin:95px -20px -78px; padding:70px 20px 55px; border-inline:0; }.product-gallery-head { align-items:flex-start; flex-direction:column; gap:28px; }.product-gallery-head h3 { font-size:55px; }.product-world-visual figcaption { left:20px; right:20px; bottom:22px; }.product-world-status { top:14px; right:14px; bottom:auto; min-width:0; }.product-world-meta { grid-template-columns:1fr 1fr; }.product-world-meta > div { min-height:95px; }.product-world-meta > div:nth-child(2) { border-right:0; }.product-world-meta > div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.12); }.product-gallery-note { text-align:left; }
  .character-section { min-height:1100px; grid-template-columns:1fr; padding:85px 20px 30px; }.character-copy h2 { font-size:52px; }.character-art { min-height:680px; }.character-art img { width:min(93%,440px); }.character-art img.dynamic-rider { width:min(112%,560px); max-height:700px; }.level-card { right:0; }.principles-head { display:block; }.principles-head h2 { font-size:76px; margin-bottom:30px; }.principle-list article { grid-template-columns:35px 1fr 25px; min-height:130px; gap:12px; }.principle-list article p { grid-column:2; margin-top:-25px; }.principle-list article > span { grid-column:3; grid-row:1; }.principle-list h3 { font-size:28px; }
  .trust-supplement { margin-top:58px; padding-top:34px; }.trust-supplement-head { align-items:flex-start; flex-direction:column; gap:20px; }.trust-card-grid { grid-template-columns:1fr; }.trust-card { min-height:300px; }
  .coming-head { display:block; }.coming-intro { margin-top:45px; }.coming-grid { grid-template-columns:1fr; }.future-card,.future-card:last-child { grid-column:auto; min-height:470px; }.voice-rd { grid-template-columns:1fr; gap:22px; padding:26px; }.quote-section { min-height:590px; }.quote-section > p { font-size:72px; }.faq { display:block; }.faq-head { margin-bottom:60px; }.faq-head h2 { font-size:72px; margin-block:55px 25px; }.faq-list summary { min-height:85px; }.final-cta { min-height:700px; }.final-copy h2 { font-size:64px; }.final-badge { right:-18px; top:9%; width:85px; height:85px; } footer { grid-template-columns:1fr 1fr; } footer nav { justify-content:flex-start; } footer > small { text-align:left; }
  .featured-quests { gap:12px; }.featured-quest { min-height:0; display:flex; flex-direction:column; }.featured-copy { display:contents; }.featured-kicker { order:1; margin:0; padding:55px 20px 0; flex-direction:column; }.general-release { order:2; margin:18px 20px 35px; }.featured-copy .micro { order:3; margin:0 20px 14px; }.featured-copy h3 { order:4; margin:0 20px 26px; font-size:clamp(52px,15vw,84px); }.featured-copy > strong { order:5; margin:0 20px 35px; font-size:34px; }.featured-visual { order:6; padding:20px; }.featured-copy > p:not(.micro) { order:7; margin:36px 20px 0; }.featured-subcopy { order:8; margin:24px 20px 0; }.featured-note { order:9; margin:28px 20px 55px; }.live-meet-demo { min-height:610px; transform:none; }.compact-quests,.compact-quests .future-card:last-child { grid-template-columns:1fr; grid-column:auto; }
  .next-rider-feature { display:flex; padding:52px 20px; }.next-rider-head { order:1; display:block; margin-bottom:35px; }.next-rider-head .featured-kicker { margin-bottom:34px; padding:0; }.next-rider-head .micro { margin-bottom:13px; }.next-rider-head h3 { font-size:clamp(52px,14vw,82px); }.next-rider-head > strong { margin-top:35px; font-size:32px; }.next-rider-feature .featured-visual { order:2; padding:0; }.next-rider-feature .product-world-visual figcaption { right:20px; }.next-rider-foot { order:3; display:block; padding-top:24px; }.next-rider-foot small { display:block; margin-top:18px; text-align:left; }
}

@media (max-width: 480px) {
  .hero { min-height:1050px; }.hero-buttons { flex-direction:column; }.button { width:100%; }.button-glass { min-height:54px; }.hero-kicker { font-size:8px; }.manifesto h2 { font-size:39px; }.tile { min-height:510px; }.tile-copy { left:22px; right:22px; bottom:24px; }.tile-copy h3 { font-size:30px; }.tile-copy p { font-size:10px; }.record-status { width:100%; align-items:flex-start; flex-direction:column; }.record-copy h2 { font-size:56px; }.record-copy > strong { font-size:30px; }.record-hud { padding:22px; }.record-hud > strong { font-size:52px; }.ride-together { min-height:800px; }.together-copy h2 { font-size:43px; }.demo-chip { min-width:118px; padding:11px 12px; }.phone-shell { width:260px; height:575px; }.app-preview { padding:13px 12px 10px; }.app-map { height:170px; }.app-status { height:22px; }.app-head { height:42px; }.app-quest { margin-top:10px; padding:10px; }.app-stats { margin-top:8px; padding-block:7px; }.app-start { height:40px; margin-top:8px; }.app-tabs { height:25px; }.product-gallery-head h3 { font-size:47px; }.product-world-visual:after { top:10px; left:10px; }.product-world-visual figcaption span,.product-world-visual figcaption small { font-size:6px; }.product-world-visual figcaption strong { font-size:22px; }.product-world-status { display:none; }.product-world-meta strong { font-size:23px; }.character-copy h2 { font-size:45px; }.coming-head h2 { font-size:47px; }.future-card { min-height:450px; padding:23px; }.quote-section > p { font-size:58px; }.faq-list summary { grid-template-columns:34px 1fr 28px; gap:10px; font-size:12px; }.faq-list details p { margin:0 0 28px 44px; } footer { grid-template-columns:1fr; text-align:left; } footer nav { gap:15px; }
  .story-share-copy h2 { font-size:40px; }.share-console-grid { grid-template-columns:1fr; }.share-console-grid > div,.share-console-grid > div:nth-child(2n) { min-height:100px; border-right:0; border-bottom:1px solid var(--white-line); }.share-console-grid > div:last-child { border-bottom:0; }.share-console-grid strong { margin:16px 0 6px; }
  .trust-supplement-head h3 { font-size:34px; }.trust-availability { max-width:100%; line-height:1.5; }.trust-card { min-height:0; padding:22px; }.trust-card h4 { margin-top:24px; font-size:25px; }.trust-card small { margin-top:25px; }
  .featured-kicker { padding-top:42px; }.featured-copy h3 { font-size:48px; }.featured-copy > strong { font-size:29px; }.featured-visual { padding:10px; }.live-meet-demo { min-height:560px; }.live-meet-demo-head { padding-inline:10px; }.live-meet-demo-head small { display:none; }.live-meet-map { min-height:300px; }.live-meet-panel { grid-template-columns:1fr; }.live-meet-panel > div,.live-meet-panel > div:nth-child(2) { min-height:65px; border-right:0; border-bottom:1px solid var(--white-line); }.rider-marker { transform:scale(.85); transform-origin:left center; }.next-rider-feature .product-world-meta strong { font-size:16px; }.next-rider-feature .product-world-meta > div { padding:11px; }.next-rider-feature .product-world-visual figcaption strong { font-size:20px; }.next-rider-head .featured-kicker { padding-top:0; }.next-rider-head h3 { font-size:46px; }.next-rider-head > strong { font-size:28px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }.reveal { opacity:1; transform:none; } }

@media (max-width:780px) {
  .stories-head { align-items:flex-start; flex-direction:column; gap:28px; }.stories-head h2 { margin-top:34px; font-size:55px; }
  .stories-intro { max-width:520px; }
  .stories-grid { height:auto; display:block; }.story-shot { height:440px; margin-bottom:10px; }.story-shot-tall { height:620px; }.story-shot-small { height:330px; }
  .story-shot figcaption strong { font-size:25px; }.stories-note { text-align:left; line-height:1.7; }
  .quote-media { object-position:70% center; }.quote-shade { background:linear-gradient(0deg,rgba(7,8,8,.8),rgba(7,8,8,.22)),linear-gradient(90deg,rgba(7,8,8,.75),transparent); }
  .faq-visual { margin-top:35px; }
  .core-experience-grid { grid-template-columns:1fr; }
  .core-card { min-height:650px; padding:24px; }
  .core-card-head { top:22px; left:22px; right:22px; }
  .core-card-copy h3 { font-size:36px; }
  .after-ride { margin-top:72px; padding-top:42px; }
  .after-ride-head { align-items:flex-start; flex-direction:column; gap:25px; }
  .after-ride-grid { grid-template-columns:1fr 1fr; }
  .after-card { min-height:310px; }
  .connect-hero { min-height:720px; }
  .connect-hero-copy { padding:35px 24px; }
  .connect-hero-copy h2 { font-size:48px; }
  .connect-grid { grid-template-columns:1fr; }
  .connect-card { min-height:330px; }
  .featured-quest.next-rider-feature { min-height:0; display:flex; flex-direction:column; padding:0; }
  .featured-quest.next-rider-feature .featured-copy { display:contents; }
  .featured-quest.next-rider-feature .next-rider-visual { order:6; padding:20px; }
  .next-rider-feature .product-world-visual figcaption { left:20px; right:20px; }
  .voice-rd > div + div { border-left:0; border-top:1px solid rgba(141,102,255,.35); }
}

@media (max-width:480px) {
  .stories-head h2 { font-size:45px; }.stories-intro strong { font-size:22px; }.story-shot { height:370px; }.story-shot-tall { height:520px; }.story-shot-small { height:330px; }
  .core-card { min-height:620px; padding:22px; }
  .core-card-head { align-items:flex-start; flex-direction:column; gap:7px; }
  .core-card-head small { text-align:left; }
  .core-card-copy h3 { font-size:31px; }
  .core-card-copy p { font-size:10px; }
  .indoor-hud { top:112px; width:calc(100% - 44px); }
  .after-ride-head h3 { font-size:39px; }
  .after-ride-grid { grid-template-columns:1fr; }
  .after-card { min-height:280px; }
  .after-card > strong { margin-top:38px; font-size:25px; }
  .connect-hero { min-height:760px; }
  .connect-hero-copy h2 { font-size:7.5vw; line-height:1.08; }
  .connect-card { min-height:310px; padding:24px; }
  .connect-card h3 { margin-top:45px; font-size:30px; }
  .voice-rd > div { padding:25px 22px; }
  .next-rider-feature .product-world-meta strong { font-size:15px; }
}

/* Pre-publication acceptance fixes: safe desktop bounds, real screens and readable body copy. */
.nav,
.hero-content,
.section,
.character-section,
.final-cta,
footer { max-width:100%; }

.hero-media,
.play { overflow:hidden; }

.nav > *,
.nav-links,
.nav-actions,
.hero-bottom > *,
.hero-buttons > *,
.manifesto-foot > *,
.section-top > *,
.core-experience-grid > *,
.after-ride-grid > *,
.connect-grid > *,
.trust-card-grid > *,
.play-layout > *,
.featured-quest > * { min-width:0; }

.nav-actions { flex:0 1 220px; min-width:0; }
.nav-cta { width:100%; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.hero-bottom { width:100%; max-width:100%; }
.hero-cta-block { flex:0 1 430px; min-width:0; }
.hero-buttons { min-width:0; flex-wrap:wrap; justify-content:flex-end; }
.button { min-width:0; max-width:100%; }
.button-glass { flex:0 1 auto; }
.cta-coming-note { margin:11px 0 0; color:rgba(255,255,255,.66); font-size:12px; font-weight:700; line-height:1.55; text-align:right; }

.manifesto-foot { grid-template-columns:minmax(0,1fr) repeat(3,minmax(100px,120px)); gap:clamp(20px,3vw,44px); }
.stat { min-width:0; }
.core-card-head,
.core-card-copy,
.after-card,
.connect-card,
.trust-supplement-head,
.trust-card { max-width:100%; }
.core-card-copy h3,
.after-card > strong,
.connect-card h3,
.trust-card h4,
.trust-availability { overflow-wrap:anywhere; word-break:normal; }
.feature-tags { max-width:100%; }

.actual-app-preview { padding:0; background:#edf4f7; }
.actual-app-preview > img { width:100%; height:100%; object-fit:cover; object-position:center top; border-radius:39px; }
.demo-caption { flex-wrap:wrap; padding-inline:15px; text-align:center; line-height:1.5; }
.demo-caption span { color:rgba(11,12,12,.66); font-family:"M PLUS 1",sans-serif; letter-spacing:0; }

.after-card,
.connect-card { position:relative; overflow:hidden; }
.actual-screen-mini { position:absolute; z-index:2; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.32); border-radius:12px; background:#edf4f7; box-shadow:0 18px 35px rgba(0,0,0,.28); }
.actual-screen-mini img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.actual-screen-mini figcaption { position:absolute; left:5px; right:5px; bottom:5px; padding:5px 6px; color:#fff; background:rgba(7,9,9,.82); font:700 5px/1.3 "Space Mono",monospace; letter-spacing:.06em; text-align:center; }
.actual-profile-screen { top:68px; right:16px; width:82px; height:178px; }
.after-card-screen > strong,
.after-card-screen > p,
.after-card-screen > small { max-width:calc(100% - 94px); }
.actual-explore-screen { top:76px; right:20px; width:105px; height:228px; }
.connect-card-screen h3,
.connect-card-screen ul { max-width:calc(100% - 128px); }

.trust-supplement { margin-top:48px; padding-top:24px; }
.trust-supplement-head { gap:28px; margin-bottom:14px; }
.trust-supplement-head .micro { margin-bottom:9px; }
.trust-supplement-head h3 { font-size:clamp(28px,3vw,44px); line-height:1.02; }
.trust-availability { width:auto; max-width:min(100%,260px); padding:7px 9px; line-height:1.45; text-align:right; white-space:normal; }
.trust-card { min-height:205px; padding:21px 22px; }
.trust-card h4 { margin:18px 0 12px; font-size:clamp(21px,1.9vw,28px); line-height:1.18; }
.trust-card p { max-width:620px; }

.final-coming-note { margin:14px 0 0; color:rgba(11,12,12,.68); text-align:center; }

.hero-bottom > p,
.manifesto-foot > p,
.core-summary li,
.core-summary p,
.core-card-copy p,
.after-ride-head > p,
.after-card > p,
.play-copy > p:not(.micro):not(.play-ja-title),
.record-copy > p:not(.record-note),
.connect-hero-copy > p:last-child,
.connect-card p,
.connect-card li,
.character-copy > p:not(.micro):not(.micro-ja),
.principles-intro p,
.principle-list p,
.trust-card p,
.coming-intro p,
.featured-copy > p:not(.micro),
.future-card p,
.voice-rd p,
.faq-head > p,
.faq-list details p { font-size:15px; line-height:1.8; }

.core-card-copy p,
.after-ride-head > p,
.after-card > p,
.connect-hero-copy > p:last-child,
.connect-card p,
.connect-card li,
.featured-copy > p:not(.micro),
.future-card p,
.voice-rd p { color:rgba(255,255,255,.7); }

.manifesto-foot > p,
.play-copy > p:not(.micro):not(.play-ja-title),
.principles-intro p,
.principle-list p,
.trust-card p,
.faq-head > p,
.faq-list details p { color:rgba(11,12,12,.7); }

@media (min-width:1181px) and (max-width:1500px) {
  .nav { left:30px; right:30px; }
  .nav-links { gap:clamp(10px,1.25vw,19px); margin-right:18px; }
  .nav-links a { font-size:8px; }
  .nav-actions { flex-basis:205px; }
  .nav-cta { font-size:8px; }
  .hero-content,
  .section { padding-left:max(54px,5vw); padding-right:max(54px,5vw); }
  .core-card { padding:24px; }
  .core-card-head { left:20px; right:20px; }
  .after-card { padding:22px; }
  .connect-card { padding:24px; }
}

@media (max-width:780px) {
  .hero-cta-block,
  .hero-buttons { width:100%; }
  .hero-buttons { justify-content:flex-start; }
  .cta-coming-note { font-size:14px; text-align:left; }
  .manifesto-foot { grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px 14px; }
  .actual-profile-screen { top:65px; right:18px; width:92px; height:200px; }
  .after-card-screen > strong,
  .after-card-screen > p,
  .after-card-screen > small { max-width:calc(100% - 108px); }
  .actual-explore-screen { top:65px; right:18px; width:98px; height:213px; }
  .connect-card-screen h3,
  .connect-card-screen ul { max-width:calc(100% - 116px); }
  .trust-supplement { margin-top:42px; padding-top:22px; }
  .trust-supplement-head { gap:16px; margin-bottom:12px; }
  .trust-supplement-head h3 { font-size:34px; }
  .trust-availability { text-align:left; }
  .trust-card { min-height:0; padding:20px; }
  .trust-card h4 { margin:16px 0 10px; font-size:24px; }
  .final-coming-note { text-align:center; }
  .hero-bottom > p,
  .manifesto-foot > p,
  .core-summary li,
  .core-summary p,
  .core-card-copy p,
  .after-ride-head > p,
  .after-card > p,
  .play-copy > p:not(.micro):not(.play-ja-title),
  .record-copy > p:not(.record-note),
  .connect-hero-copy > p:last-child,
  .connect-card p,
  .connect-card li,
  .character-copy > p:not(.micro):not(.micro-ja),
  .principles-intro p,
  .principle-list p,
  .trust-card p,
  .coming-intro p,
  .featured-copy > p:not(.micro),
  .future-card p,
  .voice-rd p,
  .faq-head > p,
  .faq-list details p { font-size:14px; line-height:1.8; }
}

@media (max-width:480px) {
  .manifesto { overflow:hidden; }
  .actual-profile-screen { width:88px; height:191px; }
  .after-card-screen > strong,
  .after-card-screen > p,
  .after-card-screen > small { max-width:calc(100% - 102px); }
  .actual-explore-screen { width:94px; height:204px; }
  .connect-card-screen h3,
  .connect-card-screen ul { max-width:calc(100% - 110px); }
}

/* Final public-beta information hierarchy. */
.nav-cta > b { grid-column:1; grid-row:1; font:inherit; }
.hero-cta-block { flex-basis:400px; }
.hud-speed { right:4.5vw; bottom:26vh; }

.beta-info {
  position:relative;
  z-index:2;
  scroll-margin-top:120px;
  padding:18px max(20px,6vw);
  color:#fff;
  background:var(--ink);
  border-block:1px solid var(--white-line);
}
.beta-info-inner {
  width:min(100%,1540px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(165px,.72fr) minmax(220px,.9fr) minmax(280px,1.2fr) minmax(230px,1fr);
  border:1px solid var(--white-line);
  background:rgba(255,255,255,.015);
}
.beta-info-inner > * {
  min-width:0;
  min-height:94px;
  padding:18px 22px;
  display:flex;
  justify-content:center;
  flex-direction:column;
  border-right:1px solid var(--white-line);
}
.beta-info-inner > *:last-child { border-right:0; }
.beta-info-date span,
.beta-info-founders > span,
.beta-info-login small {
  color:var(--lime);
  font:700 8px/1.3 "Space Mono",monospace;
  letter-spacing:.14em;
}
.beta-info-date strong {
  margin-top:7px;
  font:800 clamp(24px,2.1vw,34px)/1 "Inter",sans-serif;
  letter-spacing:-.055em;
}
.beta-info-facts { gap:10px; }
.beta-info-facts span {
  position:relative;
  padding-left:15px;
  font-size:14px;
  font-weight:800;
  line-height:1.35;
}
.beta-info-facts span:before {
  content:"";
  position:absolute;
  left:0;
  top:.48em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--lime);
  box-shadow:0 0 10px rgba(223,255,50,.55);
}
.beta-info-founders p {
  margin:9px 0 0;
  color:rgba(255,255,255,.72);
  font-size:14px;
  font-weight:700;
  line-height:1.55;
}
.beta-info-login {
  position:relative;
  padding-right:54px;
  color:#fff;
  background:rgba(255,255,255,.03);
  transition:.25s;
}
.beta-info-login strong {
  margin-top:8px;
  font-size:15px;
  line-height:1.35;
}
.beta-info-login > span {
  position:absolute;
  right:22px;
  top:50%;
  color:var(--lime);
  font-size:20px;
  transform:translateY(-50%);
}
.beta-info-login:hover { color:var(--ink); background:var(--lime); }
.beta-info-login:hover small,
.beta-info-login:hover > span { color:var(--ink); }

.stories-head { display:block; }
.stories-intro { max-width:560px; margin-top:26px; }
.stories-intro p {
  margin:0;
  color:rgba(255,255,255,.9);
  font-size:20px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:-.025em;
}

.hero-copy-mobile,
.beta-founders-mobile,
.final-world-mobile { display:none; }
.final-copy h2 .final-line { display:block; }
.final-copy h2 .final-world-mobile { display:none; }

@media (max-width:1180px) {
  .beta-info { padding-inline:4.5vw; }
  .beta-info-inner { grid-template-columns:1fr 1fr; }
  .beta-info-inner > * { border-bottom:1px solid var(--white-line); }
  .beta-info-inner > *:nth-child(2n) { border-right:0; }
  .beta-info-inner > *:nth-last-child(-n+2) { border-bottom:0; }
}

@media (max-width:780px) {
  .hero { min-height:820px; }
  .hero-content { padding-bottom:54px; }
  .hero-cta-block { flex-basis:auto; }
  .hero-bottom { margin-top:28px; gap:22px; }
  .beta-info {
    scroll-margin-top:90px;
    padding:12px;
  }
  .beta-info-inner > * {
    min-height:112px;
    padding:16px;
  }
  .beta-info-date strong { font-size:27px; }
  .beta-info-facts { gap:8px; }
  .beta-info-facts span,
  .beta-info-founders p { font-size:13px; }
  .beta-info-login { padding-right:42px; }
  .beta-info-login strong { font-size:14px; }
  .beta-info-login > span { right:15px; }
  .stories-intro { margin-top:22px; }
  .stories-intro p { font-size:16px; line-height:1.5; }
}

@media (max-width:480px) {
  .hero {
    min-height:820px;
    max-height:none;
  }
  .hero-content { padding:105px 20px 40px; }
  .hero h1 { font-size:clamp(58px,18vw,84px); }
  .hero-bottom > p { line-height:1.7; }
  .hero-buttons { gap:8px; }
  .beta-info-inner > * { min-height:118px; padding:15px; }
  .beta-info-date strong { font-size:24px; }
  .beta-info-facts span,
  .beta-info-founders p { font-size:12px; }
  .beta-info-login strong { font-size:13px; }

  .hero-copy-desktop,
  .beta-founders-desktop,
  .final-world-desktop { display:none; }
  .hero-copy-mobile,
  .beta-founders-mobile,
  .final-world-mobile,
  .mobile-copy-group,
  .mobile-copy-line { display:block; }
  .final-copy h2 .final-world-mobile { display:block; }
  .mobile-copy-group + .mobile-copy-group { margin-top:8px; }
  .hero-copy-mobile .mobile-copy-line,
  .beta-founders-mobile .mobile-copy-line,
  .final-copy h2 .final-line { white-space:nowrap; }
  .beta-founders-mobile { font-size:11.5px; line-height:1.55; }
  .final-copy h2 {
    font-size:clamp(43px,11.7vw,46px);
    line-height:.98;
    letter-spacing:-.075em;
  }
}

/* ============================================================
   LP情報圧縮（2026-07-25） — 追加コンポーネント
   ============================================================ */

/* HOW TO PLAY: モバイル専用の短縮見出し */
.play-title-mobile { display:none; }
.play-title-desktop { display:inline; }

/* BUILT DIFFERENT: 「設計思想」と「安心設計」を2つの塊に見せる */
.principles-block-label {
  margin:26px 0 10px; font-family:inherit; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; opacity:.5;
}
.principles .trust-supplement { margin-top:34px; padding-top:26px; border-top:1px solid var(--line); }

/* CONNECT & EXPLORE: 補助機能のラベル行 */
.connect-more { list-style:none; margin:14px 0 0; padding:0; display:grid; gap:1px; background:var(--white-line); border:1px solid var(--white-line); }
.connect-more li { background:var(--ink); display:flex; align-items:baseline; gap:14px; padding:14px 16px; flex-wrap:wrap; }
.connect-more b { font-size:11px; letter-spacing:.16em; color:var(--lime); flex:0 0 132px; }
.connect-more span { font-size:12.5px; line-height:1.6; opacity:.78; }

/* COMING QUESTS / FAQ: 折りたたみ */
.other-quests, .faq-more { border:1px solid var(--white-line); margin-top:14px; }
.faq-more { border-color:var(--line); }
.other-quests > summary, .faq-more > summary {
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:12px;
  padding:16px 18px; font-size:12px; letter-spacing:.14em;
}
.other-quests > summary::-webkit-details-marker, .faq-more > summary::-webkit-details-marker { display:none; }
.other-quests > summary b { color:var(--lime); }
.other-quests > summary span, .faq-more > summary { opacity:.82; }
.other-quests > summary i, .faq-more > summary i { margin-left:auto; font-style:normal; opacity:.6; }
.other-quests[open] > summary i, .faq-more[open] > summary i { transform:rotate(45deg); }
.other-quests-list { list-style:none; margin:0; padding:0 18px 18px; display:grid; gap:1px; }
.other-quests-list li { padding:16px 0; border-top:1px solid var(--white-line); }
.other-quests-list h3 { margin:8px 0 4px; font-size:17px; letter-spacing:.02em; }
.other-quests-list p { margin:0; font-size:12.5px; line-height:1.65; opacity:.72; }
.other-quests .future-notes { margin:0; padding:14px 18px 18px; font-size:10.5px; line-height:1.7; opacity:.45; }
.faq-more-list { padding:0 0 6px; }

/* PQ WORLD RECORD: 注記を展開式に */
.record-note-details { margin-top:14px; }
.record-note-details > summary { cursor:pointer; font-size:10.5px; opacity:.55; list-style:none; }
.record-note-details > summary::-webkit-details-marker { display:none; }
.record-note-details .record-note { margin-top:8px; }

/* FINAL CTA: 主導線＋副導線 */
.final-buttons { display:flex; flex-wrap:wrap; gap:10px; }
.button-ghost-dark { background:transparent; border:1px solid rgba(11,12,12,.35); color:var(--ink); }

/* 無効化されたCTA（URL未設定時） */
.button[aria-disabled="true"] { opacity:.45; pointer-events:none; }

@media (max-width:780px) {
  .play-title-mobile { display:inline; }
  .play-title-desktop { display:none; }
  .connect-more b { flex:0 0 100%; }
  .final-buttons { flex-direction:column; align-items:stretch; }

  /* ---- モバイル横スワイプ（peek + スナップ + ドット） ---- */
  [data-carousel] {
    display:flex !important;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
    height:auto !important;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    gap:10px;
    padding:0 16px 4px;
    margin:0 -16px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  [data-carousel]::-webkit-scrollbar { display:none; }
  [data-carousel] > * {
    flex:0 0 84%;
    scroll-snap-align:center;
    margin-bottom:0 !important;
    min-width:0;
  }
  [data-carousel="stories"] > * { height:340px !important; }
  [data-carousel] > *:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }

  .carousel-dots { display:flex; justify-content:center; gap:7px; margin-top:14px; padding:0; list-style:none; }
  .carousel-dots button {
    width:7px; height:7px; padding:0; border:0; border-radius:50%;
    background:currentColor; opacity:.28; cursor:pointer;
    transition:opacity .2s ease, transform .2s ease;
  }
  .carousel-dots button[aria-current="true"] { opacity:1; transform:scale(1.45); }
  .carousel-hint { margin:10px 0 0; text-align:center; font-size:10.5px; letter-spacing:.14em; opacity:.45; }
}

@media (prefers-reduced-motion:reduce) {
  [data-carousel] { scroll-behavior:auto; }
  .carousel-dots button { transition:none; }
}

/* モバイル縦高の圧縮（セクション余白・大型ビジュアルの上限） */
@media (max-width:780px) {
  .section { padding-top:52px !important; padding-bottom:52px !important; }
  .bento, .coming, .principles, .play, .manifesto, .connect-explore,
  .ride-stories, .faq, .world-record { padding-top:52px !important; padding-bottom:52px !important; }

  .core-card { padding-top:16px; padding-bottom:16px; }
  .core-card > img { max-height:190px; object-fit:cover; }

  .principle-list article { padding-top:10px; padding-bottom:10px; }
  .principles-head { margin-bottom:6px; }

  .featured-quest { margin-bottom:18px; }
  .live-meet-demo { max-height:400px; }
  .featured-visual img { max-height:300px; object-fit:cover; }

  .demo-stage { max-height:560px; }
  .demo-stage .phone-shell { transform:scale(.86); transform-origin:top center; }

  .stories-head { margin-bottom:10px; }
  .after-ride { padding-top:34px; }
}

@media (max-width:780px) {
  [data-carousel="featured"] > * { flex:0 0 88%; }
  [data-carousel="featured"] .featured-quest { margin-bottom:0; }
}

@media (max-width:780px) {
  .button b { line-height:1.45; }
}

/* ライダー能力パネル（カウントアップ・デモ表示） */
.rider-stat-panel { margin-top:22px; max-width:420px; }
.rider-stat-note { margin:0 0 10px; font-size:10px; letter-spacing:.2em; opacity:.55; }
.rider-stat-list { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.rider-stat-list li { display:grid; grid-template-columns:64px 1fr 32px; align-items:center; gap:10px; }
.rider-stat-list b { font-size:11.5px; font-weight:600; letter-spacing:.04em; }
.rider-stat-list i { height:5px; background:rgba(255,255,255,.22); border-radius:99px; overflow:hidden; }
.rider-stat-list i span { display:block; height:100%; width:0; border-radius:99px; background:var(--lime); transition:width .9s cubic-bezier(.22,.9,.3,1); }
.rider-stat-list em { font-style:normal; font-size:14px; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }
@media (prefers-reduced-motion:reduce) { .rider-stat-list i span { transition:none; } }
@media (max-width:780px) { .rider-stat-list li { grid-template-columns:58px 1fr 28px; } }

/* ライダープロフィール：EXPと得意地形（本番アプリの構成に準拠） */
.rider-exp { display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:10px; margin:0 0 14px; }
.rider-exp b { font-size:15px; font-weight:800; letter-spacing:.02em; }
.rider-exp i { height:5px; background:rgba(255,255,255,.22); border-radius:99px; overflow:hidden; }
.rider-exp i span { display:block; height:100%; width:0; border-radius:99px; background:#fff; transition:width .9s cubic-bezier(.22,.9,.3,1); }
.rider-exp em { font-style:normal; font-size:11px; letter-spacing:.08em; opacity:.8; font-variant-numeric:tabular-nums; }
.rider-terrain-label { margin:16px 0 7px; font-size:10px; letter-spacing:.2em; opacity:.55; }
.rider-terrain { display:flex; flex-wrap:wrap; gap:5px; }
.rider-terrain span { flex:1 1 auto; text-align:center; padding:5px 9px; border:1px solid rgba(255,255,255,.34); border-radius:99px; font-size:10.5px; opacity:.5; }
.rider-terrain span.on { background:var(--lime); border-color:var(--lime); color:var(--ink); opacity:1; font-weight:700; }
@media (prefers-reduced-motion:reduce) { .rider-exp i span { transition:none; } }

/* ============================================================
   実アプリ埋め込み（ライダープロフィール）
   ============================================================ */
.app-live { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:18px; }
.app-live-phone {
  position:relative; width:100%; max-width:340px; aspect-ratio:9/19;
  background:#F2F8FB; border:9px solid #16181a; border-radius:38px;
  box-shadow:0 24px 60px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.08);
  overflow:hidden;
}
.app-live-notch { position:absolute; top:0; left:50%; transform:translateX(-50%); width:34%; height:20px; background:#16181a; border-radius:0 0 12px 12px; z-index:20; pointer-events:none; }
.app-live-screen { position:absolute; inset:0; overflow:hidden; border-radius:28px; }

/* 本番アプリの配色トークン（src/style.css より。埋め込み枠内にのみ適用） */
.app-live-screen {
  --sora-bg:#F2F8FB; --sora-bg-dip:#E7F1F7; --sora-card:#FFFFFF; --sora-card-soft:#FAFDFE;
  --sora-ink:#132A35; --sora-ink-sub:#55707D; --sora-ink-faint:#8FA6B0;
  --sora-bolt:#E92828; --sora-bolt-deep:#C61F1F; --sora-bolt-soft:#FDE8E8;
  --sora-go:#14935B; --sora-go-soft:#DFF3E9;
  --sora-danger:#DC2F2F; --sora-danger-soft:#FBE4E4; --sora-danger-muted:#9B5C62;
}
/* position:fixed のオーバーレイを枠内へ閉じ込める */
.app-live-screen #riderProfileOverlay { position:absolute; inset:0; z-index:1; }
.app-live-screen #riderProfileOverlay .rp-av-menu,
.app-live-screen #riderProfileOverlay .rp-crop-menu,
.app-live-screen #riderProfileOverlay .rp-toast { position:absolute; }
.app-live-cap { display:flex; align-items:center; gap:8px; margin:0; font-size:10px; letter-spacing:.14em; opacity:.62; }
.app-live-cap i { width:6px; height:6px; border-radius:50%; background:var(--lime); }
.app-live-cap span { letter-spacing:normal; opacity:.8; }

@media (max-width:780px) { .app-live-phone { max-width:290px; } }

/* アプリは論理幅390px前提。フレーム内幅に合わせて等比縮小し、横切れを防ぐ */
.app-live-screen { --app-w:390; --app-scale:1; }
.app-live-screen #riderProfileOverlay {
  width:calc(var(--app-w) * 1px);
  height:calc(var(--app-w) * 1px * 19 / 9);
  transform-origin:top left;
  transform:scale(var(--app-scale));
  inset:auto; top:0; left:0;
}

/* アバター：ふぁんとむちゃんの顔イラストを枠に寄せて収める。
   元画像はJPEGで透過を持てないため、背景（室内）が枠外へ出るまで寄せて実質的に消す。
   胸元のロゴと帽子の文字は、この寄りと46x54pxの表示サイズで判読されない。 */
.app-live-screen #riderProfileOverlay #rpAvatar {
  background-size:auto 145%;
  background-position:50% 28%;
  background-repeat:no-repeat;
  background-color:#EAF2F7;
}

/* サイコン埋め込み：phone-shell 内で本番レイアウトを等比縮小して表示 */
#cycloMount { position:relative; overflow:hidden; background:#0b0e12; }
#cycloMount .cyclo-stage { pointer-events:auto; }

/* サイコン埋め込み枠：LP側のカード装飾を継承させず、アプリのCSSを素で効かせる */
.cyclo-embed-frame { position:relative; width:100%; height:100%; overflow:hidden; border-radius:39px; background:#F2F8FB; }
.cyclo-embed-frame .cyclo-stage { pointer-events:auto; }

/* ============================================================
   デザイン微調整（CEOレビュー 2026-07-25）
   ============================================================ */

/* [1][17] 大型イタリック見出しの字が衝突する。
   letter-spacing:-.09em は900italicには詰めすぎで、ID / UR / RD が重なる。
   -.045em まで戻すと詰まった印象は保ったまま衝突が消える。 */
.hero h1 { letter-spacing:-.045em; }
.quote-section > p { letter-spacing:-.045em; }
.final-copy h2 { letter-spacing:-.05em; }

/* [18] BRAND QUOTE の副コピーが小さく、離れすぎ。
   grid+place-items:center のまま2行が別々に中央寄せされ、間が開いていた。
   行を内容サイズに固定し、まとまりとして中央へ置く。 */
.quote-section { grid-auto-rows:min-content; align-content:center; row-gap:22px; }
.quote-section > span { position:relative; bottom:auto;
  color:rgba(255,255,255,.8); font:700 13px "Space Mono",monospace; letter-spacing:.2em; }

/* [19] FINAL CTA バッジの稲妻が下で切れる（27x29 + overflow:hidden で見切れ） */
.final-badge span { width:32px; height:36px; overflow:visible; top:9px; }

/* [20] PC: FINAL CTA のボタンが左寄せになっている。
   中央寄せ＋2つの高さを揃え、日付テキストとの間隔も確保する。 */
.final-buttons { justify-content:center; align-items:stretch; margin-bottom:22px; }
.final-copy .button-dark { margin-bottom:0; }
.final-buttons .button { min-height:62px; }

/* [3] THE IDEA: スマホでラベルと本文の間が186pxも空いていた */
@media (max-width:780px) {
  .manifesto { padding-top:44px !important; padding-bottom:44px !important; }
  .manifesto .section-label { margin-bottom:0; }
  .manifesto-copy { margin-top:26px; }
  .manifesto-foot { margin-top:26px; }
}

/* [6] CORE EXPERIENCES: スマホでカードが縦長すぎる（620px）。
   ヘッダーとHUDは絶対配置なので min-height を0にすると重なる。
   500pxまでの圧縮に留める。 */
@media (max-width:780px) {
  .core-card { min-height:500px; padding:20px; }
  .core-card-copy h3 { margin-bottom:8px; }
  .core-card-copy p { margin:0 0 10px; }
}

/* [7] AFTER THE RIDE: ライブ埋め込みが最も高く、4枚すべてが891pxへ引き延ばされていた。
   埋め込み端末を小さくして、カード全体の高さを揃えたまま圧縮する。 */
@media (max-width:780px) {
  .after-card .app-live-phone { max-width:186px; }
  .after-card .app-live { margin-top:12px; gap:8px; }
  .after-card .app-live-cap { font-size:9px; }
}

/* [2] HERO スマホ: PC版と同じ画像を狭い幅で切り出しているため、
   右側のデジタル世界（最も色が出ている部分）が画面外に落ちていた。
   切り出しを右へ寄せ、ライダーを保ったまま彩度を回復させる。 */
@media (max-width:780px) {
  .hero-media img { object-position:80% center; }
  /* 背景が明るくなるぶん、コピーの可読性を確保する */
  .hero-shade { background:linear-gradient(0deg,rgba(4,5,7,.97) 0%,rgba(4,5,7,.52) 68%,rgba(4,5,7,.55)); }
}

/* [13] 「開催概要を見る」がFAQへ飛んでいた。セクション内で開く形へ変更。 */
.record-brief { margin-top:18px; border:1px solid rgba(255,255,255,.22); border-radius:2px; }
.record-brief > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:12px;
  padding:14px 16px; font-size:11px; letter-spacing:.14em; }
.record-brief > summary::-webkit-details-marker { display:none; }
.record-brief > summary b { color:#ff5a4d; }
.record-brief > summary span { opacity:.8; letter-spacing:normal; font-size:12px; }
.record-brief > summary i { margin-left:auto; font-style:normal; opacity:.6; }
.record-brief[open] > summary i { transform:rotate(45deg); }
.record-brief-list { list-style:none; margin:0; padding:0 16px 16px; display:grid; gap:1px; }
.record-brief-list li { display:grid; grid-template-columns:76px 1fr; gap:12px; align-items:baseline;
  padding:11px 0; border-top:1px solid rgba(255,255,255,.14); }
.record-brief-list b { font-size:10.5px; letter-spacing:.1em; color:#ff5a4d; }
.record-brief-list span { font-size:12.5px; line-height:1.65; opacity:.82; }
@media (max-width:780px) { .record-brief-list li { grid-template-columns:64px 1fr; gap:10px; } }

/* ============================================================
   [9][10][11] HOW TO PLAY → BETA INFO を1つの章として構成し直す
   ============================================================ */

/* [9] PC: 左テキストと右端末の余白がバラバラだった。
   列を揃え、端末を2行ぶんに通してから、ステップを左下へ落とす。 */
.play-layout { grid-template-columns:1fr 1fr; gap:5vw 6vw; align-items:start; }
.play-copy { padding-top:0; }
.play-layout > .demo-stage { grid-column:2; grid-row:1 / span 2; align-self:stretch; }
.play-layout > .steps { grid-column:1; grid-row:2; align-self:start; }

/* [10] スマホ: 端末画像が最後に来て順番が不自然だった。
   タイトル → 端末 → OPEN/CHOOSE の順に組み替える。 */
@media (max-width:780px) {
  .play-layout { display:flex; flex-direction:column; gap:0; }
  .play-layout > .play-copy  { order:1; }
  .play-layout > .demo-stage { order:2; min-height:0; margin:22px -20px; }
  .play-layout > .steps      { order:3; margin-top:4px; }
}

/* [11] BETA INFO が唐突に現れる。HOW TO PLAY の締めの帯として連続させる。 */
.play { padding-bottom:0 !important; }
.beta-info { padding-top:0; }
.beta-info-inner { position:relative; }
.beta-info-lead {
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  margin:0; padding:34px 0 22px;
  border-top:1px solid var(--line);
}
.beta-info-lead { justify-content:center; text-align:center; border-top-color:var(--white-line); }
.beta-info-lead b { font-size:11px; letter-spacing:.2em; color:var(--lime); }
.beta-info-lead span { font-size:clamp(19px,2.4vw,27px); font-weight:800; letter-spacing:-.04em; color:#fff; }
.beta-info-date strong { font-size:clamp(36px,4.6vw,54px) !important; letter-spacing:-.05em; }
@media (max-width:780px) {
  .beta-info-lead { padding:26px 0 18px; }
  .beta-info-date strong { font-size:34px !important; }
}

/* [8] スマホ: 見出しが「スマホひとつ / で、」と助詞の手前で割れる。
   行ごとに nowrap を効かせ、収まるサイズまで落とす。 */
@media (max-width:780px) {
  .play-copy h2 { font-size:clamp(32px,8.6vw,40px); line-height:1.12; }
  .play-title-mobile { display:block; }
  .play-title-mobile,
  .play-title-mobile em { white-space:nowrap; }
}

/* [8] PC: 「始まりは、それだ / け。」と割れる。行ごとに nowrap を効かせる。 */
.play-copy h2 { font-size:clamp(38px,4.1vw,58px); line-height:1.14; }
.play-title-desktop, .play-title-desktop em { white-space:nowrap; }

/* [4][5] 改行位置。日本語見出しが語中で折れるため、句読点の直後で折る指定を入れる。
   PCでは不要なので、スマホ幅でだけ改行として効かせる。 */
.br-sp { display:none; }
@media (max-width:780px) { .br-sp { display:block; } }

/* [14] CONNECT: 全画面画像のあとに「05 CONNECT & EXPLORE」が来て間延びしていた。
   ラベルと見出しを画像の中へ寄せ、画像下の余白を詰める。 */
@media (max-width:780px) {
  .connect-hero { margin-bottom:0; }
  .connect-hero-copy { padding-bottom:22px; }
  .connect-explore .connect-grid { margin-top:16px; }
}

/* [15] 「横にスワイプ」の表示がカードから離れて見えた。
   カードのすぐ下に、ドットと同じ行へ寄せる。 */
.carousel-hint { margin:8px 0 0; font-size:10px; letter-spacing:.1em; opacity:.4; }
.carousel-dots { margin-top:10px; }
@media (max-width:780px) {
  .carousel-dots { margin-top:10px; gap:6px; }
  .carousel-dots + .carousel-hint { margin-top:6px; }
}

/* [16] TRUST, BUILT IN. が素っ気なかった。
   安全側の話なので派手にはせず、罫線と番号で「設計の裏側」らしい構造を与える。 */
.trust-card-grid { counter-reset:trust; }
.trust-card { position:relative; padding:22px 20px 20px; border:1px solid var(--line);
  background:linear-gradient(160deg, rgba(11,12,12,.03), transparent 60%); }
.trust-card::before { counter-increment:trust; content:counter(trust,decimal-leading-zero);
  position:absolute; top:16px; right:18px; font:700 10px "Space Mono",monospace; opacity:.32; }
.trust-card::after { content:""; position:absolute; left:0; top:0; width:3px; height:34px; background:var(--ink); opacity:.55; }
.trust-card span { display:inline-block; margin-bottom:10px; padding:3px 9px;
  border:1px solid var(--line); border-radius:99px; font-size:9.5px; letter-spacing:.14em; }
.trust-card h4 { margin:0; line-height:1.45; }
.trust-supplement-head { margin-bottom:16px; }
@media (max-width:780px) { .trust-card { padding:18px 16px 16px; } }

/* ラベルのピルが親のstretchで横いっぱいに伸びていた */
.trust-card { display:block; }
.trust-card span { width:auto; align-self:flex-start; }

/* [3] THE IDEA: min-height:800px の flex が余白を分配し、
   ラベルと本文の間に154pxの空白を作っていた。
   高さを内容に合わせ、要素間の分配をやめる。 */
@media (max-width:780px) {
  .manifesto { min-height:0; justify-content:flex-start; }
  .manifesto-foot { margin-top:34px; }
}

/* ============================================================
   [A1] HERO スマホ：文字は全て画像の上に載せる（PC版と同じ考え方）。
   contain だと絵が16:9の帯にしかならず外側が黒く余るので、
   枠を低く（16:10相当）してから cover。これなら絵が全面を埋め、
   かつ切り取り量が浅いので構図（人物・海・空・ポータル）が残る。
   ============================================================ */
@media (max-width:780px) {
  .hero { min-height:600px; height:auto; }
  .hero-media { overflow:hidden; }
  .hero-media img { width:100%; height:100%; object-fit:cover; object-position:66% 42%; transform:none; }
  .hero-shade { background:linear-gradient(0deg,rgba(4,5,7,.93) 0%,rgba(4,5,7,.62) 40%,rgba(4,5,7,.22) 72%,rgba(4,5,7,.34) 100%); }
  .hero-content { position:relative; padding:22px 20px 34px; }
  .hero h1 { font-size:clamp(38px,11.4vw,54px); }
  .hero-bottom > p strong { font-size:clamp(19px,5.4vw,23px); }
  .hero-copy-mobile { font-size:13px; line-height:1.8; }
  .hero-kicker { font-size:8px; }
  .live-label { margin-bottom:10px; }
  .hero-bottom { margin-top:18px; }
}

/* ============================================================
   第2回指摘（CEO 2026-07-25）A. 崩れ・見切れ
   ============================================================ */

/* [A2] ティッカー：文字が画面の端で唐突に切れて「壊れている」ように見える。
   帯（ライム）はそのままに、中の文字だけを両端でフェードさせ、
   流れている途中であることが分かる切り口へ変える。 */
.ticker { position:relative; }
.ticker:before, .ticker:after {
  content:""; position:absolute; z-index:2; top:0; bottom:0; width:clamp(44px,14vw,86px);
  pointer-events:none;
}
.ticker:before { left:0;  background:linear-gradient(90deg,var(--lime) 12%,rgba(223,255,50,0)); }
.ticker:after  { right:0; background:linear-gradient(270deg,var(--lime) 12%,rgba(223,255,50,0)); }

/* [A3] CORE スマホ：INDOOR のタグが6個あり、5個＋1個で改行して
   KOSOREN だけが取り残されていた。3列グリッドにして 3＋3 で揃える。 */
@media (max-width:780px) {
  .core-card-indoor .feature-tags { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .core-card-indoor .feature-tags span { padding:7px 4px; text-align:center; }
}

/* [A4] HOW TO PLAY：demo-stage に overflow:hidden と max-height があり、
   中央の紫のぼかし円が枠で断ち切られて直線の境目になっていた。
   枠の内側で完全に消えるグラデーションへ差し替える。 */
.demo-stage { background:radial-gradient(58% 46% at 50% 46%,rgba(141,102,255,.17),transparent 72%); }
.demo-stage:before { width:340px; height:340px; opacity:.10; }
@media (max-width:780px) {
  .demo-stage:before { width:240px; height:240px; filter:blur(90px); }
}

/* [A4-2] スマホで ACTUAL BUILD チップの「PUBLIC」が枠からはみ出し、
   「BETA」と重なっていた。文字を枠に収まるサイズへ。 */
@media (max-width:780px) {
  .demo-chip { min-width:0; padding:10px 11px; }
  .demo-chip b { font-size:17px; line-height:1.05; }
  .demo-chip b small { display:block; margin-left:0; font-size:7px; letter-spacing:.12em; }
  .chip-a { left:10px; }
  .chip-b { right:10px; }
}

/* [A5] HOW TO PLAY：READY / SELECT / GO! のバッジが行の右端に密着し、
   枠線が切れて見えていた。行の左右に余白を持たせる。 */
.steps li { padding-right:14px; }
.steps li:hover, .steps li.active { padding-left:14px; }

/* [A7] COMING QUESTS スマホ：.live-meet-demo に min-height:610px と
   max-height:400px が同時に効き、中身（マップ＋パネル）が枠の外へあふれて
   下の本文と重なっていた。高さの指定をやめ、中身なりの高さにする。 */
@media (max-width:780px) {
  .live-meet-demo { min-height:0; max-height:none; height:auto; }
  .live-meet-map { min-height:250px; }
  .live-meet-panel > div { min-height:0; padding:12px 14px; }
  .live-meet-panel strong { margin-top:8px; }
  .live-meet-panel button { min-height:46px; }
}

/* [A8] FINAL CTA：バッジがライムの上にライン1本の丸で、稲妻も文字も同じ黒。
   稲妻が字と同化して読めないので、丸を黒で塗り、稲妻だけライムへ抜く。 */
.final-badge { color:#fff; border-color:var(--ink); background:var(--ink);
  box-shadow:0 18px 40px rgba(11,12,12,.28); }
.final-badge b { color:#fff; }
.final-badge small { color:rgba(255,255,255,.55); }
.final-badge span img {
  filter:invert(.92) sepia(.78) saturate(7.48) hue-rotate(23deg) brightness(1.08) contrast(1.02);
}
@media (max-width:780px) {
  /* 画面外へ半分はみ出していたので、内側へ収める */
  .final-badge { right:16px; top:6%; width:78px; height:78px; }
  .final-badge b { font-size:12px; margin-top:9px; }
  .final-badge span { width:26px; height:29px; top:8px; }
  .final-badge small { font-size:5px; bottom:8px; }
}

/* ============================================================
   第2回指摘 B. レイアウト・間延び
   ============================================================ */

/* [B2] AFTER THE RIDE：実機埋め込みのカードが一番高く、
   4枚すべてがその高さへ引き伸ばされていた（PC 873px / スマホ 934px）。
   端末を小さくし、カードの下限も下げる。 */
.after-card .app-live-phone { max-width:150px; }
.after-card > strong { margin-top:32px; }
.after-card { min-height:300px; }
.after-card .app-live { margin-top:14px; }
/* 1024px前後では4列のままカードが225pxまで細り、高さが800pxへ伸びていた */
@media (min-width:781px) and (max-width:1100px) {
  .after-ride-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:780px) {
  .after-card { min-height:0; padding:22px; }
  .after-card > strong { margin:26px 0 14px; }
  .after-card .app-live-phone { max-width:140px; }
  .after-card .app-live { margin-top:10px; gap:6px; }
  .after-card > small { padding-top:16px; }
}

/* [B3] HOW TO PLAY の枠が「そして、始まる日。」に貼り付いて見えた。
   章はつなげたまま、区切りの呼吸を戻す。 */
.beta-info-lead { padding-top:58px; }
@media (max-width:780px) { .beta-info-lead { padding-top:40px; } }

/* [B4] PQ WORLD RECORD スマホ：覆いが濃すぎて背景写真が消え、文字だけに見えていた。
   写真が読める濃度まで戻し、文字側は下からのグラデーションで守る。 */
@media (max-width:780px) {
  .record-shade { background:linear-gradient(180deg,rgba(6,7,8,.62) 0%,rgba(6,7,8,.34) 38%,rgba(6,7,8,.82) 100%); }
  .record-media { object-position:62% center; opacity:.9; }
}

/* [B5] CONNECT：画像が縦長（スマホ760px / PC650px）で、上半分が空の空になっていた。
   高さを詰め、ライダーが写る位置で切り出す。 */
.connect-hero { min-height:0; }
.connect-hero > img { max-height:520px; object-fit:cover; object-position:center 62%; }
@media (max-width:780px) {
  .connect-hero { min-height:0; }
  .connect-hero > img { max-height:430px; object-position:center 68%; }
}

/* [B6] ALTER EGO スマホ：min-height:1100px が余白を作り、
   キャラが画面のはるか下、前後に空の紫が広がっていた。中身なりの高さへ。 */
@media (max-width:780px) {
  .character-section { min-height:0; padding:52px 20px 40px; }
  .character-copy .micro { margin-top:26px; }
  .character-art { min-height:0; margin-top:6px; }
  .character-art img.dynamic-rider { width:min(104%,470px); max-height:520px; transform:none; }
  .character-halo { width:min(88%,360px); }
  .level-card { right:0; bottom:2%; min-width:0; padding:14px 15px; }
  .level-card strong { font-size:19px; }
}

/* [D3] ALTER EGO スマホ：PLAY YOUR WAY をコピーの後ろではなく、
   キャラクターの背面へ回す。 */
@media (max-width:780px) {
  .character-bg { left:50%; top:auto; bottom:8%; transform:translateX(-50%);
    text-align:center; color:rgba(11,12,12,.13); font-size:clamp(96px,30vw,150px); }
}

/* [B7] COMING QUESTS：「まだ完成していない。」の前後が空きすぎていた。 */
@media (max-width:780px) {
  .coming-head { gap:0; }
  .coming-head h2 { margin-bottom:0; }
  .coming-intro { margin-top:28px; }
  .coming-intro p { margin-top:14px; }
  .featured-quests { margin-top:28px; }
}

/* [B8] BRAND QUOTE：縦幅が700pxあり、コピーに対して間が開いていた。 */
.quote-section { min-height:560px; }
.quote-section > span { bottom:auto; }
@media (max-width:780px) { .quote-section { min-height:400px; } }

/* ============================================================
   第2回指摘 C. 改行（日本語が語中・助詞の手前で折れる）
   ============================================================ */

/* [C2][C4] スワイプするカードが画面幅の84%しかなく、
   「自分らしい情報を選 / び、」のように助詞だけが落ちていた。
   カード幅を広げ、見出しは1行に収まるサイズへ。 */
@media (max-width:780px) {
  [data-carousel="after-ride"] > *,
  [data-carousel="connect"] > * { flex-basis:90%; }
  .connect-card h3 { font-size:24px; margin-top:40px; }
  .after-card > strong { font-size:23px; }

  /* 実機画面を右側に置くための逃げ幅（PC用）がスマホでも効いていて、
     RIDER PROFILE と EXPLORE の見出しだけが極端に細くなっていた。
     スマホでは端末画像を見出しの下へ回し、見出しは全幅を使う。 */
  .after-card-screen > strong,
  .after-card-screen > p,
  .after-card-screen > small { max-width:100%; }
  .connect-card-screen h3,
  .connect-card-screen ul { max-width:100%; }
  .connect-card-screen { min-height:400px; }
  .actual-explore-screen { top:auto; bottom:18px; right:16px; }
}

/* [C5] ALTER EGO PC：「…育てていく。」の最後の4文字だけが2行目へ落ちていた。
   コピー側の列を2pxぶん広げて1行に収める（文字サイズは変えない）。 */
@media (min-width:781px) {
  .character-section { grid-template-columns:1.24fr .76fr; }
  .character-copy { max-width:640px; }
  .character-copy > p:not(.micro):not(.micro-ja) { max-width:640px; }
}

/* ============================================================
   第2回指摘 D. デザイン判断
   ============================================================ */

/* [D1] THE IDEA：背景の稲妻が opacity:.035 でほぼ見えず、章が平坦だった。
   稲妻をマスクにして赤で抜き、∞ も赤へ。ここが「まだ完成していない世界」の入口になる。 */
:root { --red:#ff4a35; }
.manifesto:after {
  width:min(46vw,520px); height:min(52vw,580px);
  background:none; background-color:var(--red); opacity:.15;
  -webkit-mask:url("./assets/pedalquest-lightning-transparent.png?v=20260722-2") center / contain no-repeat;
  mask:url("./assets/pedalquest-lightning-transparent.png?v=20260722-2") center / contain no-repeat;
}
.stat-infinity strong { color:var(--red); }
.stat-infinity span { color:rgba(11,12,12,.62); }
@media (max-width:780px) {
  .manifesto:after { right:-6vw; top:auto; bottom:16%; width:62vw; height:66vw; opacity:.11; }
}

/* [D2] START HERE：ここが最重要の着地点なので、日付を主役に組み直す。
   ・PC は日付の列を広くとり、ライムで見出し級の存在感へ
   ・スマホは日付を1行まるごと使う（34pxが半分の枠に収まらず、
     「2026.08.08」が枠の外へずれていた＝A6の原因） */
.beta-info-inner { border:1px solid var(--white-line); }
.beta-info-inner > * { border-color:var(--white-line); }
.beta-info-date { background:linear-gradient(140deg,rgba(223,255,50,.10),transparent 62%); }
.beta-info-date strong { color:var(--lime); }
@media (min-width:781px) {
  .beta-info-inner { grid-template-columns:1.4fr .9fr 1.1fr 1.1fr; }
}
@media (max-width:780px) {
  .beta-info-inner { grid-template-columns:1fr; }
  .beta-info-inner > * { border-right:0; border-bottom:1px solid var(--white-line); }
  .beta-info-inner > *:last-child { border-bottom:0; }
  .beta-info-inner > * { min-height:0; padding:18px 16px; }
  .beta-info-date { display:flex; flex-direction:column; align-items:center;
    gap:8px; padding:22px 15px; text-align:center; }
  .beta-info-date strong { font-size:clamp(38px,11vw,46px) !important; line-height:1; }
  .beta-info-facts { justify-content:center; }
  .beta-info-login { padding-right:42px; }
}

/* [D4] TRUST：「遊びを支える、見えない設計。」が見出し級の大きさで、
   安全・復元という補助情報が章の主役に見えていた。補足の位置へ下げる。 */
.trust-supplement-head { display:flex; align-items:baseline; gap:14px 18px; flex-wrap:wrap; }
.trust-supplement-head > div { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.trust-supplement-head .micro { margin:0; }
.trust-supplement-head h3 { margin:0; font-size:15px; font-weight:700;
  line-height:1.5; letter-spacing:-.02em; color:rgba(11,12,12,.62); }
.trust-supplement-head h3 br { display:none; }
.trust-availability { margin-left:auto; }
@media (max-width:780px) {
  .trust-supplement-head { gap:10px; }
  .trust-supplement-head h3 { font-size:13.5px; }
  .trust-availability { margin-left:0; }
}

/* [D5] FOOTER：4カラムに要素が並ぶだけで、区切りも階層もなかった。
   ロゴ＋タグラインの列と、リンク／著作権の列に分け、罫線で締める。 */
/* 埋め込んだ実アプリ画面の中にも <footer> があるため、ページ末尾のものだけへ当てる */
body > footer { align-items:start; gap:34px 40px; padding:52px 5vw 40px; }
body > footer .logo { align-self:center; }
body > footer nav { justify-content:flex-end; gap:26px; }
body > footer nav a { position:relative; padding-bottom:4px; letter-spacing:.12em; transition:color .2s; }
body > footer nav a:after { content:""; position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--lime); transition:right .25s ease; }
body > footer nav a:hover:after { right:0; }
body > footer > small { align-self:center; }
@media (max-width:1024px) {
  body > footer { grid-template-columns:1fr 1fr; gap:26px 30px; }
  body > footer nav { justify-content:flex-start; }
}
@media (max-width:780px) {
  body > footer { grid-template-columns:1fr; gap:0; padding:44px 20px 34px; }
  body > footer .logo { margin-bottom:22px; }
  body > footer .logo + p { padding-bottom:22px; border-bottom:1px solid var(--white-line); }
  body > footer nav { display:grid; grid-template-columns:1fr 1fr; gap:0; }
  body > footer nav a { padding:15px 0; border-bottom:1px solid var(--white-line); font-size:9px; }
  body > footer > small { padding-top:22px; }
}

/* [D6] FINAL CTA：ボタンの下に200px以上の空白が残っていた。 */
@media (max-width:780px) {
  .final-cta { min-height:0; }
  .final-copy { padding:78px 20px 72px; }
}

/* ============================================================
   第3回指摘（CEO 2026-07-25 / 2巡目）
   ============================================================ */

/* [3-1] HERO スマホ：タイトルがナビの裏に潜り、要素が下半分に固まっていた。
   タイトルは左上（ナビの下）へ置き、コピーとCTAは下端へ寄せて、
   あいだの余白を絵（ライダー・光跡・ポータル）に譲る。 */
@media (max-width:780px) {
  .hero { align-items:stretch; min-height:690px; }
  .hero-content { display:flex; flex-direction:column; padding:104px 20px 30px; }
  .hero-bottom { margin-top:auto; padding-top:34px; }
  /* 上（タイトル）と下（コピー・CTA）を守り、中央は絵を見せる */
  .hero-shade { background:linear-gradient(180deg,
    rgba(4,5,7,.76) 0%, rgba(4,5,7,.34) 30%,
    rgba(4,5,7,.34) 46%, rgba(4,5,7,.76) 62%, rgba(4,5,7,.96) 100%); }
}

/* [3-2] THE IDEA：背景の稲妻は赤より黒のほうがブランドに合うとの判断。
   ∞のみ赤のアクセントとして残す。 */
.manifesto:after { background-color:var(--ink); opacity:.055; }

/* [3-3] HOW TO PLAY：見出しだけ他章より小さく見えていた（34px / 他章は45〜47px）。
   1行の nowrap を保てる上限まで上げる。 */
@media (max-width:780px) {
  .play-copy h2 { font-size:clamp(36px,10.6vw,44px); }
}

/* [3-4][4-6] HOW TO PLAY スマホ：装飾の楕円（demo-orbit）が枠の上下・左右で
   断ち切られ、そこが「画像の切り替わり」に見えていた。
   線は残したいので、消すのではなく端をフェードさせて境目を無くす。 */
@media (max-width:780px) {
  .demo-stage { max-height:none; }
  .demo-orbit { display:block; }
  .orbit-one { -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%);
               mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%); }
  .orbit-two { -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
               mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%); }
  /* ぼかし円が枠の下端で切れて、うっすら帯に見えていた */
  .demo-stage:before { width:180px; height:180px; filter:blur(70px); }
}

/* [3-5] 01〜04のステップ。
   ・01が初期状態で黒く「押した状態」に見えていた → HTMLの active を外した
   ・active行だけ padding-left:14px で番号がずれ、行が左右に泳いでいた
   ・最後の行の罫線と START HERE の罫線が近く、くっついて見えていた */
@media (max-width:780px) {
  .steps li,
  .steps li:hover,
  .steps li.active { padding-left:0; padding-right:12px; }
  .steps li { grid-template-columns:30px 1fr auto; gap:12px; min-height:78px; }
  .steps li > i { padding:7px 10px; }
  .play-layout > .steps { margin-bottom:26px; }
  .beta-info-lead { padding-top:46px; }
}

/* [3-6] START HERE：日付を中央に置いたので、他の枠も中央で揃える。 */
@media (max-width:780px) {
  .beta-info-inner > * { text-align:center; }
  /* 箇条書きは行ごとに中央寄せすると点の位置がずれるので、
     ブロックだけを中央に置いて中身は左揃えにする */
  .beta-info-facts { display:flex; flex-direction:column; align-items:center; gap:8px; }
  .beta-info-founders,
  .beta-info-login { display:flex; flex-direction:column; align-items:center; gap:8px; }
  .beta-info-login { padding:18px 16px; }
  /* 矢印が単独で1行に落ちて浮くので、文末に付ける */
  .beta-info-login > span { display:none; }
  .beta-info-login strong:after { content:" ↗"; margin-left:4px; color:var(--lime); }
}

/* [3-8] ALTER EGO：PLAY YOUR WAY が3行でキャラと真正面に重なり読めなかった。
   1行の帯にして下へ回し、車輪の後ろを横切る背景ワードマークにする。 */
@media (max-width:780px) {
  /* 1行の帯だと車輪とレベルカードに食われて読めないので、
     元の3行スタックに戻し、キャラの左上（空いている側）へ寄せる。 */
  .character-bg { left:-3vw; top:44%; bottom:auto; transform:none;
    text-align:left; white-space:normal;
    font-size:min(17vw,74px); line-height:.78; letter-spacing:-.06em;
    color:rgba(11,12,12,.17); }
  .character-bg br { display:block; }
}

/* [3-9] COMING QUESTS 02：章の見出しと画像内の見出しで同じ話が二度出て、
   文字だらけに見えていた。画像内はステータス表示だけに絞る。 */
.next-rider-visual .product-world-visual figcaption strong,
.next-rider-visual .product-world-visual figcaption small { display:none; }
.next-rider-visual .product-world-visual figcaption { padding-bottom:14px; }

/* [3-10] 「他に4つのクエストが動き出しています」が語中で折れていた。
   スマホでは見出しと説明を積み、説明に全幅を渡す。 */
@media (max-width:780px) {
  .other-quests > summary, .faq-more > summary { position:relative; padding-right:44px;
    flex-direction:column; align-items:flex-start; gap:6px; }
  .other-quests > summary i, .faq-more > summary i { position:absolute; right:18px; top:50%;
    margin-left:0; transform:translateY(-50%); }
  .other-quests[open] > summary i, .faq-more[open] > summary i { transform:translateY(-50%) rotate(45deg); }
  .other-quests > summary span { letter-spacing:normal; }
}

/* [3-11] FINAL CTA：スマホだけ「さあ、／現実世界を／プレイしよう。」の3行になっていた。
   PCと同じ2行に戻し、1行で収まるサイズへ。 */
@media (max-width:780px) {
  .final-copy h2 { font-size:clamp(36px,11.4vw,50px); }
  .final-copy h2 .final-world-desktop { display:inline; }
  .final-copy h2 .final-world-mobile { display:none; }
  .final-copy h2 .final-line { white-space:nowrap; }
}

/* [3-12] FINAL CTA バッジ：丸が小さく、社名と稲妻がつぶれて読めなかった。
   丸を大きくし、稲妻と字を一段上げる。 */
.final-badge { width:124px; height:124px; }
.final-badge span { width:36px; height:40px; top:13px; }
.final-badge b { margin-top:16px; font-size:17px; }
.final-badge small { bottom:12px; font-size:6.5px; }
@media (max-width:780px) {
  /* 上端に寄せるとナビの裏に潜るので、少し下げる */
  .final-badge { right:10px; top:9%; width:88px; height:88px; }
  .final-badge span { width:28px; height:32px; top:10px; }
  .final-badge b { margin-top:12px; font-size:13px; }
  .final-badge small { bottom:8px; font-size:5.5px; }
}

/* ============================================================
   第4回指摘（CEO 2026-07-25 / 3巡目）
   ============================================================ */

/* [4-1] HERO スマホ：タイトルをもっと大きく。
   コピー（現実の道を〜／PEDAL QUESTは〜）はタイトルの直下に置き、
   ボタンだけを下端へ落として、あいだを絵に譲る。 */
@media (max-width:780px) {
  .hero { min-height:760px; }
  /* アウトライン側は線幅のぶん字が太く、14.6vwだと REAL WORLD. が2行に割れる */
  .hero h1 { font-size:clamp(40px,13.5vw,62px); line-height:.82; }
  .hero-kicker { margin-bottom:10px; }
  .hero-bottom { flex:1; display:flex; flex-direction:column;
    margin-top:26px; padding-top:0; gap:0; }
  .hero-bottom > p { margin:0; }
  .hero-bottom strong { margin-bottom:10px; font-size:clamp(19px,5.6vw,24px); }
  .hero-cta-block { margin-top:auto; padding-top:34px; }
}

/* [4-2] HERO/FINAL のボタン。小さなラベルと本文と矢印が1行に泳いでいて
   主役に見えていなかった。
   ラベルを上段へ抜き、本文を左に据え、矢印は円のノブにして
   「押せる面」であることを形で示す。 */
.hero-buttons .button,
.final-buttons .button {
  display:flex; flex-wrap:wrap; align-items:center;
  justify-content:flex-start; gap:2px 14px;
  min-height:70px; padding:13px 14px 13px 22px;
  letter-spacing:-.01em; text-align:left;
}
.hero-buttons .button small,
.final-buttons .button small { flex:1 0 100%; order:1; margin-bottom:2px; opacity:.62; }
.hero-buttons .button b,
.final-buttons .button b { order:2; flex:1; font-size:15px; line-height:1.35; }
.hero-buttons .button > span,
.final-buttons .button > span {
  order:3; flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center;
  border-radius:50%; font-size:16px; line-height:1; transition:transform .25s ease;
}
.hero-buttons .button-primary > span { color:var(--lime); background:var(--ink); }
.hero-buttons .button-glass > span { color:#fff; border:1px solid rgba(255,255,255,.42); }
.final-buttons .button-dark > span { color:var(--ink); background:var(--lime); }
.final-buttons .button-ghost-dark > span { color:var(--ink); border:1px solid rgba(11,12,12,.4); }
.hero-buttons .button:hover > span,
.final-buttons .button:hover > span { transform:translateX(3px); }
.hero-buttons .button-glass { border-color:rgba(255,255,255,.46); background:rgba(4,5,7,.42); }
@media (max-width:780px) {
  .hero-buttons { flex-direction:column; gap:10px; }
  .hero-buttons .button { width:100%; min-height:74px; }
  .final-buttons .button { min-width:0; width:100%; }
}
@media (min-width:781px) {
  .hero-buttons .button { width:100%; }
}

/* [4-3] THE IDEA 本文は「一つの体験〜」から改行（HTML側で <br>）。
   スマホでも同じ位置で折る。 */
.manifesto-foot > p br { display:inline; }

/* [4-4] START HERE：8月8日までのカウントダウン。
   日付の下に置き、数字は等幅で桁が動かないようにする。 */
.beta-start-time { margin:10px 0 0; color:rgba(255,255,255,.62);
  font:700 10px "Space Mono",monospace; letter-spacing:.1em; }
/* （枠の見た目は [6-4] で組み直したため、ここは開始時刻の行だけ残す） */

/* [4-5] 実機埋め込み：ノッチが画面上端を覆い、
   「ライダープロフィール」の見出しが隠れて黒く潰れていた。
   画面の内容をノッチの下から始める。 */
.app-live-screen { inset:20px 0 0; }

/* [4-7] HOW TO PLAY のステップ：番号が左端、バッジが右端で
   あいだが空き、表全体が左に寄って見えていた。中央のまとまりへ。 */
@media (max-width:780px) {
  /* 番号とバッジは列で揃えたまま、本文を行の中央へ置く */
  .steps li { grid-template-columns:30px 1fr auto; gap:10px; padding-inline:12px; }
  .steps li span { text-align:center; }
}

/* [4-9] COMING QUESTS：スワイプする2枚が1227px（画面1.4枚ぶん）あり、
   1枚を見るのにスクロールが要る状態だった。見出し・余白・デモ枠を詰める。 */
@media (max-width:780px) {
  .featured-kicker { padding-top:34px; }
  .featured-copy h3 { font-size:clamp(44px,12.5vw,66px); margin-bottom:18px; }
  .featured-copy > strong { font-size:28px; margin-bottom:22px; }
  .featured-copy > p:not(.micro) { margin-top:22px; }
  .featured-subcopy { margin-top:16px; }
  .featured-note { margin:18px 20px 32px; }
  .featured-visual { padding:14px; }
  .live-meet-demo-head { min-height:52px; }
  .live-meet-map { min-height:196px; }
  .live-meet-panel > div { padding:10px 12px; }
  .live-meet-panel strong { margin-top:6px; }
  .live-meet-panel button { min-height:42px; }
  .next-rider-head h3 { font-size:clamp(44px,12.5vw,66px); }
  .next-rider-feature { padding-block:34px; }
  .next-rider-feature .product-world-meta > div { padding:9px 11px; }
  .next-rider-feature .product-world-meta strong { font-size:15px; }
}

/* [4-10] FINAL CTA バッジ：稲妻と社名が重なっていた。
   稲妻・社名・年号を縦に積み、重なりをなくす。 */
.final-badge { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
.final-badge span { position:static; top:auto; }
.final-badge b { margin-top:0; }
.final-badge small { position:static; bottom:auto; }
@media (max-width:780px) {
  .final-badge { width:96px; height:96px; gap:2px; }
  .final-badge span { width:26px; height:30px; }
  .final-badge b { font-size:12.5px; }
  .final-badge small { font-size:5.5px; }
}

/* ============================================================
   第5回指摘（CEO 2026-07-25 / 4巡目）
   ============================================================ */

/* [5-1] HERO スマホ：ボタンが全幅で絵のライダーを覆っていた。
   幅を約6割に絞って左へ寄せ、右側に絵の抜けを残す。 */
@media (max-width:780px) {
  .hero-buttons { align-items:flex-start; }
  .hero-buttons .button { width:min(64%,244px); min-height:70px; padding-left:18px; }
  .hero-buttons .button b { font-size:13.5px; }
  .hero-buttons .button > span { width:34px; height:34px; font-size:15px; }
  .hero-cta-block { padding-top:28px; }
}

/* [5-2] HOW TO PLAY スマホ：端末の下（キャプションの下）で背景が切り替わって
   見えていた。枠の下端を紙色へ溶かして、境目を消す。 */
@media (max-width:780px) {
  .demo-stage { position:relative; }
  .demo-stage:after {
    content:""; position:absolute; left:0; right:0; bottom:0; height:120px;
    z-index:1; pointer-events:none;
    background:linear-gradient(180deg,rgba(240,239,232,0),var(--paper) 78%);
  }
  /* キャプションは溶かし込みより手前に置く */
  .demo-caption { z-index:3; }
  /* ぼかし円が枠の端に届かないところまで縮める */
  .demo-stage:before { width:120px; height:120px; filter:blur(50px); }
}

/* [5-3] HOW TO PLAY のステップ：文字を中央にするのではなく、
   表そのものを一回り小さくして中央へ置く。バッジ幅も揃えて右端を通す。 */
@media (max-width:780px) {
  .play-layout > .steps { max-width:330px; margin-inline:auto; }
  .steps li { grid-template-columns:26px 1fr auto; gap:10px; padding-inline:0; }
  .steps li span { text-align:left; }
  .steps li > i { min-width:62px; text-align:center; }
}

/* [5-4] は [6-4] のカウントダウン組み直しに統合 */

/* [5-5] CONNECT：見出しが「走った記録を共有 / し、」と割れていた。
   指定の改行位置で収まるサイズへ。 */
@media (max-width:780px) {
  #connect-title { font-size:clamp(24px,7.2vw,30px); }
  /* 3行目「外部共有は、β期間中に段階的に公開します。」が3pxはみ出して折れていた */
  .connect-hero-copy p[data-release-copy] { font-size:13px; }
}

/* [5-6] ALTER EGO：PLAY YOUR WAY を元の字組み（大きく・詰めて・薄く）へ戻す。
   位置だけキャラの左上に置く。 */
@media (max-width:780px) {
  .character-bg { left:-4vw; top:42%; bottom:auto; transform:none;
    text-align:left; white-space:normal;
    font-size:min(23vw,110px); line-height:.68; letter-spacing:-.11em;
    color:rgba(11,12,12,.13); }
  .character-bg br { display:block; }
}

/* [5-7] COMING QUESTS：カードごとの※注意書きをやめ、
   セクションの末尾に1つへまとめた。 */
.quests-note { margin:18px 0 0; color:rgba(255,255,255,.3);
  font-size:9.5px; line-height:1.75; }
@media (max-width:780px) { .quests-note { margin-top:14px; font-size:8.5px; } }

/* [5-8] FINAL CTA バッジ：稲妻と社名が重なったままだった。
   原因は img の height:100% が効かず、素材の縦横比（680:1040）のまま
   枠より9px高く描かれて、下の社名へはみ出していたこと。
   枠を素材の比率に合わせ、間隔も確保する。 */
.final-badge { gap:11px; }
.final-badge span { width:28px; height:43px; overflow:visible; }
.final-badge span img { width:100%; height:auto; object-fit:contain; }
@media (max-width:780px) {
  .final-badge { gap:9px; }
  .final-badge span { width:22px; height:34px; }
  .final-badge b { font-size:11.5px; line-height:1.05; }
  .final-badge small { font-size:5px; }
}

/* [5-9] RIDE STORIES：4枚を340pxの横スワイプに押し込めていたため、
   写真が切り取られて「素材集」に見えていた。
   スマホでは1枚ずつ全幅の縦積みにして、キャプションを写真の中へ置く。
   走った道が記憶になる、という章の主張を写真そのもので出す。 */
@media (max-width:780px) {
  .ride-stories [data-carousel="stories"] { display:block !important;
    overflow:visible !important; scroll-snap-type:none !important; padding:0 !important; }
  .ride-stories [data-carousel="stories"] > * { display:block; width:auto !important;
    height:auto !important; flex:none !important; margin:0 0 12px !important;
    scroll-snap-align:none; }
  .ride-stories [data-carousel="stories"] > *:last-child { margin-bottom:0 !important; }
  .ride-stories .carousel-dots, .ride-stories .carousel-hint { display:none !important; }
  /* 素材ごとに縦横比が違うので、切り取り位置を1枚ずつ合わせる。
     4/5で統一すると横位置の写真が空だけになってしまう。 */
  .story-shot { position:relative; margin:0; aspect-ratio:16/10; overflow:hidden; }
  .story-shot img { width:100%; height:100%; object-fit:cover; object-position:center 56%; }
  .story-shot-tall { aspect-ratio:3/4; }
  .story-shot-tall img { object-position:center 42%; }
  .shot-map img, .shot-detail img { object-position:center center; }
  .story-shot figcaption { position:absolute; inset:auto 0 0; z-index:2;
    padding:76px 20px 22px; text-align:left;
    background:linear-gradient(0deg,rgba(6,7,8,.88) 0%,rgba(6,7,8,.55) 46%,transparent 100%); }
  .story-shot figcaption span { display:block; margin-bottom:9px;
    color:var(--lime); font:700 8px "Space Mono",monospace; letter-spacing:.16em; }
  .story-shot figcaption strong { display:block; color:#fff;
    font-size:23px; line-height:1.35; letter-spacing:-.04em; }
  .story-shot figcaption small { display:block; margin-top:9px;
    color:rgba(255,255,255,.6); font:700 8px "Space Mono",monospace; letter-spacing:.14em; }
}

/* ============================================================
   第6回指摘（CEO 2026-07-26 / 5巡目）
   ============================================================ */

/* [6-1] スワイプの気づき。案内がカードの後ろにあり、
   1枚（500px超）スクロールするまでスワイプできると分からなかった。
   案内をカードの前へ出し（JS側）、次の1枚がはっきり覗く幅にする。 */
.carousel-hint i { font-style:normal; color:var(--lime); margin-right:6px; }
@media (max-width:780px) {
  .carousel-hint { margin:0 0 12px; text-align:left; opacity:.7; font-size:11px; }
  .carousel-dots + .carousel-hint { display:none; }
  [data-carousel="after-ride"] > *,
  [data-carousel="connect"] > * { flex-basis:85%; }
  [data-carousel="featured"] > * { flex-basis:85%; }
  /* 覗いている次の1枚の縁を見えるようにする */
  .after-card, .connect-card, .featured-quest { border-color:rgba(255,255,255,.26); }
}

/* [6-2] 取り消し：一覧の頭の操作案内は文字が増えるだけだったので削除 */

/* [6-3] HOW TO PLAY スマホ：端末の下と一覧のあいだに罫線が1本入り、
   そこが「画像の切れ目」に見えていた。罫線をやめ、溶かし込みを深くする。 */
@media (max-width:780px) {
  .steps { border-top:0; }
  .demo-stage:after { height:190px;
    background:linear-gradient(180deg,rgba(240,239,232,0),rgba(240,239,232,.72) 46%,var(--paper) 88%); }
  .play-layout > .demo-stage { margin-bottom:0; }
  .play-layout > .steps { margin-top:4px; }
}

/* [6-4] START HERE：カウントダウンは残り日数を主役にして、
   時・分・秒を3つの枠でその下へ。 */
.beta-countdown { display:block; width:100%; margin-top:14px; }
.cd-days { margin:0 0 10px; display:flex; align-items:baseline; justify-content:center; gap:10px; }
.cd-days b { color:var(--lime); font:700 clamp(52px,11vw,74px)/1 "Space Mono",monospace;
  font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.cd-days small { color:var(--lime); font:700 11px "Space Mono",monospace; letter-spacing:.18em; }
.cd-rest { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;
  max-width:300px; margin-inline:auto; }
.cd-rest > div { padding:9px 6px 8px; border:1px solid rgba(223,255,50,.3);
  background:rgba(223,255,50,.06); text-align:center; }
.cd-rest b { display:block; color:#fff; font:700 19px/1 "Space Mono",monospace;
  font-variant-numeric:tabular-nums; }
.cd-rest small { display:block; margin-top:5px; color:rgba(255,255,255,.45);
  font:700 7px "Space Mono",monospace; letter-spacing:.14em; }
.beta-countdown[data-state="live"] { opacity:.4; }

/* [6-5] ALTER EGO：能力タグを本文へ寄せ、PLAY YOUR WAY と重ならない位置へ。 */
@media (max-width:780px) {
  .character-copy .rider-stats { margin-top:16px; }
  .character-bg { top:48%; }
}

/* [6-6] RIDE STORIES：ただ縦に並べただけに見えていた。
   1枚目を大きく、以降を少し小さくして「入口 → 続き」のリズムを作り、
   写真ごとに番号の罫と余白を持たせて、並びを意図のあるものにする。 */
@media (max-width:780px) {
  .story-shot { aspect-ratio:5/4; }
  .story-shot-main { aspect-ratio:4/5; }
  .story-shot-tall { aspect-ratio:1/1; }
  .ride-stories [data-carousel="stories"] > * { margin-bottom:6px !important; }
  .story-shot figcaption { padding:64px 18px 18px; }
  .story-shot figcaption span { position:relative; padding-left:34px; margin-bottom:7px; }
  .story-shot figcaption span:before { content:""; position:absolute; left:0; top:50%;
    width:24px; height:1px; background:var(--lime); }
  .story-shot-main figcaption strong { font-size:26px; }
  .story-shot figcaption strong { font-size:20px; }
}

/* [6-7] PC HERO：本文が小さく、見出しに対して弱かった。 */
@media (min-width:781px) {
  .hero-bottom strong { font-size:clamp(21px,1.9vw,30px); margin-bottom:8px; }
  .hero-bottom > p { font-size:clamp(14px,1.15vw,17px); line-height:1.95; }
}

/* [6-8] ティッカー：PCで端の文字が唐突に切れて見えていた。
   フェードの幅を画面幅に応じて広げる。 */
.ticker:before, .ticker:after { width:clamp(44px,10vw,190px); }

/* [6-9] THE IDEA：画面幅によって「数字を記録するだけじゃな／い。」と
   1文字だけ落ちることがあった。PCでは行を折らない。 */
@media (min-width:781px) {
  .manifesto h2 { white-space:nowrap; font-size:clamp(40px,5.4vw,96px); }
}

/* [6-10] HOW TO PLAY PC：コピーと一覧のあいだが空き、
   一覧の下は次章とくっついていた。上を詰めて、下に呼吸を作る。 */
@media (min-width:1025px) {
  .play-layout { row-gap:24px; }
  .play-layout > .steps { margin-top:0; margin-bottom:44px; }
}

/* [6-11] FOOTER：文字が小さすぎて読めなかった。 */
body > footer .logo + p { font-size:11px; line-height:1.8; letter-spacing:.06em; }
body > footer nav a { font-size:11px; letter-spacing:.1em; }
body > footer > small { font-size:10px; line-height:1.8; }
@media (max-width:780px) {
  body > footer nav a { font-size:11.5px; }
  body > footer > small { font-size:10px; }
}

/* ============================================================
   第7回指摘（CEO 2026-07-26 / 6巡目）
   ============================================================ */

/* [7-1] HERO スマホ：ボタンが下に落ちすぎて、下端に張り付いて見えた。 */
@media (max-width:780px) {
  .hero-content { padding-bottom:66px; }
  .hero-cta-block { padding-top:24px; }
}

/* [7-2] HERO PC：コピーが右のCTAと横並びで、見出しとの関係が切れていた。
   見出し → コピー → CTA の縦一列にする。
   縦に積むぶん塊が高くなるので、下揃えのまま見出しが上へ上がる。 */
@media (min-width:781px) {
  .hero-content { padding-top:120px; }
  .hero-bottom { flex-direction:column; align-items:flex-start; gap:0; margin-top:38px; }
  .hero-bottom > p { max-width:640px; }
  .hero-cta-block { flex:none; width:min(430px,52vw); margin-top:32px; }
  .hero-buttons { justify-content:flex-start; }
}

/* [7-3] START HERE：日付とカウントダウンを1段目に通し、
   その下に「登録不要」「FOUNDERS PASS」「INVITED LOGIN」の3つを並べる。 */
@media (min-width:781px) {
  .beta-info-inner { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .beta-info-date {
    grid-column:1 / -1;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:6px; padding:30px 24px 32px; text-align:center;
    border-right:0; border-bottom:1px solid var(--white-line);
  }
  .beta-info-date strong { font-size:clamp(46px,5.6vw,72px) !important; }
  .beta-info-date .beta-start-time { margin-top:8px; }
  .beta-countdown { max-width:520px; margin-inline:auto; }
  .beta-info-facts,
  .beta-info-founders,
  .beta-info-login { border-right:1px solid var(--white-line); border-bottom:0; }
  .beta-info-login { border-right:0; }
  .beta-info-facts { justify-content:center; }
}

/* [8-1] 8/8を迎えたときのカウントダウン枠。
   0が4つ並んだままだと壊れて見えるので、公開中の表示へ差し替える。 */
.beta-countdown[data-state="live"] { opacity:1; }
.cd-live { margin:0; display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:18px 16px; border:1px solid var(--lime); background:rgba(223,255,50,.1);
  color:var(--lime); font:700 clamp(26px,7vw,38px)/1 "Space Mono",monospace; letter-spacing:.06em; }
.cd-live i { width:11px; height:11px; border-radius:50%; background:var(--lime);
  box-shadow:0 0 0 0 rgba(223,255,50,.55); animation:cdPulse 1.8s ease-out infinite; }
.cd-live span { color:#fff; font:700 12px "Space Mono",monospace; letter-spacing:.1em; }
@keyframes cdPulse { to { box-shadow:0 0 0 14px rgba(223,255,50,0); } }
@media (prefers-reduced-motion:reduce) { .cd-live i { animation:none; } }

/* [8-2] COMING QUESTS の注意書きは OTHER COMING QUESTS の下へ移した */
.quests-note { margin-top:16px; }

/* ============================================================
   第9回指摘（CEO 2026-07-26 / 7巡目）
   ============================================================ */

/* [9-1] HERO スマホ：ボタンをもう少しだけ上へ。 */
@media (max-width:780px) { .hero-content { padding-bottom:88px; } }

/* ============================================================
   第10回指摘（CEO 2026-07-26 / 8巡目）
   ============================================================ */

/* [10-1] HERO スマホ：説明文が3行にならなかった原因は align-items:end。
   縦並びにしたのに交差軸の指定が残っていて、段落が内容幅へ縮み、
   1行目が折り返していた。左揃え・全幅に戻し、各行は折らない。 */
@media (max-width:780px) {
  .hero-bottom { align-items:flex-start; }
  .hero-bottom > p { width:100%; }
  .hero-copy-mobile .mobile-copy-line { display:block; white-space:nowrap; }
}

/* [10-2] HERO スマホ：CTAをもう少し上へ、幅も少し短く。 */
@media (max-width:780px) {
  .hero-content { padding-bottom:106px; }
  .hero-buttons .button { width:min(58%,222px); min-height:66px; }
  .hero-buttons .button b { font-size:13px; }
  .hero-buttons .button > span { width:31px; height:31px; font-size:14px; }
}

/* [10-3] HOW TO PLAY：端末の下に黒い帯が出ていた。
   アプリのレイアウトが枠いっぱいまで無いぶん、埋め込み枠の地色
   （#0b0e12）が見えていた。アプリの背景色に合わせ、中身を上下中央へ。 */
#cycloMount { background:#F2F8FB; display:flex; flex-direction:column; justify-content:center; }

/* [10-4] カウントダウン：日付はライムへ戻し、残り日数の数字を
   オレンジにして一番目立たせる。 */
.beta-info-date strong { color:var(--lime); }
.beta-info-date { background:linear-gradient(140deg,rgba(223,255,50,.10),transparent 62%); }
.cd-days b { color:var(--orange); text-shadow:0 0 34px rgba(255,113,69,.35); }
.cd-days small { color:var(--orange); }
.cd-rest > div { border-color:rgba(255,113,69,.28); background:rgba(255,113,69,.06); }

/* [10-5] COMING QUESTS：2枚の説明文が本文としては大きかった。 */
@media (max-width:780px) {
  .featured-copy > p:not(.micro) { font-size:12.5px; line-height:1.85; }
  .next-rider-head + p, .next-rider-feature .featured-copy > p:not(.micro) { font-size:12.5px; }
}

/* [10-6] NEXT RIDER GAME の4つの枠をさらに詰める。 */
@media (max-width:780px) {
  .next-rider-feature .product-world-meta > div { padding:6px 10px 5px; }
  .next-rider-feature .product-world-meta strong { font-size:13px; margin:1px 0 0; }
  .next-rider-feature .product-world-meta small,
  .next-rider-feature .product-world-meta span { font-size:8px; }
}

/* ============================================================
   第11回指摘（CEO 2026-07-26 / 9巡目）
   ============================================================ */

/* [11-1] PC で左右に動いて黒い帯（htmlの地色）が見えていた。
   はみ出す装飾（HERO画像のscale、ティッカーの帯など）は各枠で
   clip済みだが、環境によっては横スクロールが発生するため蓋をする。 */
html { overflow-x:hidden; }

/* [11-2] HERO スマホ：CTAをさらに上へ。 */
@media (max-width:780px) { .hero-content { padding-bottom:128px; } }

/* [11-3] カウントダウン：色を変えるのは残り日数の「数字」だけ。
   ラベルと時分秒の枠は元の落ち着いた側へ戻す。 */
.cd-days small { color:rgba(255,255,255,.7); }
.cd-rest > div { border-color:rgba(223,255,50,.28); background:rgba(223,255,50,.05); }

/* [11-4] HOW TO PLAY：サイコンのタブ（クラシック等）が端末の角で
   切れていた。角の丸みの内側へ入るよう、上と左右に余白を作る。 */
#cycloMount { padding:16px 8px 0; }

/* ============================================================
   第14回指摘（CEO 2026-07-26 / 10巡目）
   ============================================================ */

/* [14-1] HOW TO PLAY：アプリ画面の .cyclo-stage は inset:0 の絶対配置で、
   枠のpaddingを無視して端まで描かれていた（＝タブが角の丸みに食われる）。
   拡大率で内側へ入れ、少し下げて上下のバランスを取る。 */
/* 画面は等倍のまま、ベゼルを厚くして角の丸みを弱め、
   タブが角に食われないようにする。 */
#cycloMount { padding:0; }
.demo-stage .phone-shell { padding:13px; }
.demo-stage .cyclo-embed-frame { border-radius:26px; }
/* [16-1] 端末枠の比率を、埋め込みが使う仮想端末（390×844）に合わせる。
   枠の比率が違うと、中身が高さ基準で縮んで左右に余白が残っていた。
   比率を合わせれば中身が枠いっぱいに収まり、実機の見え方と一致する。 */
.demo-stage .phone-shell { height:auto; }
.demo-stage .cyclo-embed-frame { height:auto; aspect-ratio:390 / 844; }

/* [16-2] 端末の背景（demo-stage）と左のコピー側で地の見え方が分かれ、
   枠の縁で背景が切れて見えていた。装飾の線は全幅で端をぼかし、
   PCでは枠の左右も紙色へ溶かして境目を消す。 */
.orbit-one { -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%);
             mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 78%,transparent 100%); }
.orbit-two { -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);
             mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%); }
.demo-stage:before { width:min(46%,300px); height:min(46%,300px); filter:blur(90px); opacity:.10; }
@media (min-width:781px) {
  .demo-stage { overflow:visible; }
  .demo-stage:after {
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:linear-gradient(90deg,var(--paper) 0,rgba(240,239,232,0) 18%,
      rgba(240,239,232,0) 82%,var(--paper) 100%);
  }
  .demo-stage > .phone-shell, .demo-stage > .demo-chip, .demo-stage > .demo-caption { z-index:2; }
}

/* [15-1] カウントダウンは計器風の枠をやめ、前の形へ戻す。 */
.beta-countdown { display:block; width:100%; max-width:none; margin:14px 0 0;
  padding:0; border:0; background:none; }
.beta-countdown:before, .beta-countdown:after { content:none; }
.cd-days { margin:0 0 10px; gap:10px; }
.cd-days b { font-size:clamp(52px,11vw,74px); line-height:1; letter-spacing:-.04em; }
.cd-days small { font-size:11px; letter-spacing:.18em; color:rgba(255,255,255,.7); }
.cd-rest { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;
  max-width:300px; margin-inline:auto; border-top:0; padding-top:0; }
.cd-rest > div { padding:9px 6px 8px; border:1px solid rgba(223,255,50,.28);
  background:rgba(223,255,50,.05); text-align:center; }
.cd-rest > div + div:before { content:none; }
.cd-rest b { display:block; color:#fff; font-size:19px; line-height:1; }
.cd-rest small { display:block; margin-top:5px; }
@media (max-width:780px) { .cd-rest b { font-size:19px; } }

/* [15-2] 端末画面のズレ。アプリの .cyclo-stage は幅161pxで枠(200px)を
   埋めず、左端に寄っていた。左右中央へ。角の丸みも枠と揃える。 */
/* アプリ側が inline で width:390px / transform-origin:left top / left:0 を
   書き込むため、CSSからは !important で上書きして中央へ寄せる。
   390pxは埋め込みの仮想端末幅（mount側の固定値）。 */
#cycloMount .cyclo-stage {
  left:50% !important;
  margin-left:-195px !important;
  margin-right:0 !important;
  transform-origin:50% 0 !important;
  /* [17-1] クラシック表示はアプリ側の縦844px分を埋めきらず、
     画面の下だけが白く空いていた。枠は実機の比率のまま、
     中身を下へずらして上下の余白を分け合う。 */
  top:15% !important;
}
.demo-stage .cyclo-embed-frame { border-radius:35px; }

/* [15-3] ナビ：メニューが折りたたみのとき、PUBLIC BETAのボタンが
   ロゴとハンバーガーの中間に浮いていた。右端のメニュー横へ寄せる。 */
.nav-actions { margin-left:auto; }
@media (min-width:1181px) { .nav-actions { margin-left:0; } }

/* [15-4] START HERE：PC で「登録不要」と FOUNDERS PASS のあいだの
   縦罫が消えていた（既存の nth-child(2n) 指定に負けていた）。 */
@media (min-width:781px) {
  .beta-info-inner > .beta-info-facts,
  .beta-info-inner > .beta-info-founders { border-right:1px solid var(--white-line); }
  .beta-info-inner > .beta-info-login { border-right:0; }
}

/* [14-2] 取り消し：計器風の枠は不採用。カウントダウンは [15-1] の形へ戻した。 */

/* [12-1] 端末画面の下の黒い箱の正体。
   LP側の素の `footer { min-height:190px; background:var(--ink) }` が、
   埋め込んだアプリの中の <footer>（強度グラフの凡例）にも当たっていた。
   埋め込み枠の中では、LPのフッター指定を全て打ち消す。 */
#cycloMount footer,
.cyclo-embed-frame footer,
.app-live-screen footer {
  min-height:0; padding:0; margin:0; display:revert; gap:0;
  grid-template-columns:none; align-items:initial; text-align:initial;
  color:inherit; background:transparent; border-top:0;
}
#cycloMount footer > small,
.app-live-screen footer > small { color:inherit; font:inherit; text-align:initial; }

/* [11-6] PC ではカルーセルではなく通常のグリッドなので、
   スワイプの案内とドットは要らない。
   （ドットのスタイル自体がスマホ用のメディアクエリ内にあるため、
     PCでは素の <ul> ＝ 黒い点の箇条書きとして出ていた） */
@media (min-width:781px) {
  .carousel-hint, .carousel-dots { display:none !important; }
}

/* [11-7] HERO：主CTAの文字をもう一段大きく。 */
.hero-buttons .button-primary b { font-size:17px; }
@media (max-width:780px) {
  .hero-buttons .button-primary b { font-size:15.5px; }
}

/* [11-5] NEXT RIDER GAME の4枠：内側の余白が広く、
   1枠が縦に伸びていた。行間ごと詰めてすっきりさせる。 */
.next-rider-feature .product-world-meta > div { padding:10px 12px; }
.next-rider-feature .product-world-meta small { margin:0; line-height:1.2; }
.next-rider-feature .product-world-meta strong { margin:3px 0 1px; line-height:1.05; }
.next-rider-feature .product-world-meta span { line-height:1.2; }
@media (max-width:780px) {
  .next-rider-feature .product-world-meta > div { padding:7px 9px; }
  .next-rider-feature .product-world-meta small { font-size:7.5px; letter-spacing:.08em; }
  .next-rider-feature .product-world-meta strong { font-size:12.5px; margin:2px 0 0; }
  .next-rider-feature .product-world-meta span { font-size:8px; }
}

/* [9-2] 取り消し：日付はライムのまま。色を変えるのは残り日数の側（[10-4]）。 */

/* [9-3] NOW LIVE の枠から、そのまま遊びに行けるようにする。 */
.cd-live-cta { display:inline-flex; align-items:center; gap:8px; margin-top:12px;
  padding:13px 22px; color:var(--ink); background:var(--lime);
  font:800 14px/1 "Inter",sans-serif; letter-spacing:-.01em;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:transform .2s ease; }
.cd-live-cta:hover { transform:translateY(-2px); }
.cd-live-cta span { font-size:16px; }

/* [9-4] ALTER EGO：素材が1024x1536なので、3倍密度の端末では
   370px表示だと1110px相当になり拡大されて粗く見えていた。
   等倍を超えない幅に収める（根本的には素材の高解像度版が要る）。 */
@media (max-width:780px) {
  .character-art img.dynamic-rider { width:min(92%,340px); max-height:460px; }
}

/* [9-5] COMING QUESTS：2枚のカードで中身の始まる高さが違っていた。
   LIVE MEET はキッカーの上に34px、NEXT RIDER GAME はカード自体に34pxで、
   基準がずれていた。両方をカード内の同じ位置から始める。 */
@media (max-width:780px) {
  .featured-kicker { padding-top:30px; }
  .next-rider-feature { padding-block:0; }
  .next-rider-head { padding:30px 20px 0; }
  .next-rider-foot { padding:0 20px 30px; }
}

/* [9-6] NEXT RIDER GAME の4つの枠が縦に間延びしていた。 */
@media (max-width:780px) {
  .next-rider-feature .product-world-meta { gap:1px; }
  .next-rider-feature .product-world-meta > div { padding:8px 11px 7px; }
  .next-rider-feature .product-world-meta strong { font-size:14px; margin:2px 0 1px; }
  .next-rider-feature .product-world-meta small,
  .next-rider-feature .product-world-meta span { font-size:8.5px; }
}

/* [7-4] THE IDEA 本文：1100px前後で本文の列が240pxまで細り、
   「…過去の記録／も、」と助詞だけが落ちていた。本文を1行ぶん通す。 */
@media (min-width:781px) and (max-width:1100px) {
  .manifesto-foot { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .manifesto-foot > p { grid-column:1 / -1; margin-bottom:26px; }
}

/* [3-13] PQ WORLD RECORD：「開催概要を見る」（内容なりの幅）と
   その下の CHALLENGE BRIEF（ブロック＝全幅）で端が揃っていなかった。
   同じ幅の縦積みに揃える。 */
.record-copy .record-button { width:100%; max-width:430px; }
.record-copy .record-brief { max-width:430px; }

/* [3-14] FOUNDERS PASS：「コードがあれば全部無料」「無くても遊べる」が
   別々の文で書かれていて関係が読み取れなかった。対比の2行にする。 */
.beta-founders-compare { display:grid; gap:7px; }
.beta-founders-compare .founders-row { display:block; font-size:12.5px; line-height:1.6; }
.beta-founders-compare .founders-row b {
  display:inline-block; margin-right:9px; padding:2px 8px;
  color:var(--ink); background:var(--lime); border-radius:2px;
  font:700 9.5px "Space Mono",monospace; letter-spacing:.08em; vertical-align:2px;
}
.beta-founders-compare .founders-row:last-of-type b { color:var(--lime); background:transparent;
  border:1px solid rgba(223,255,50,.5); }
.beta-founders-compare small { display:block; margin-top:2px;
  color:rgba(255,255,255,.45); font:700 9px "Space Mono",monospace; letter-spacing:.08em; }
@media (max-width:780px) {
  .beta-founders-compare { justify-items:center; text-align:center; }
  .beta-founders-compare .founders-row { font-size:12px; }
}
