/* 2026-09-30: readable copy, recovered character frames, and a visible ghost race. */
.anime-world {
  --brand-blue:#132A35; --brand-red:#B3261E; --brand-ink:#132A35;
  --brand-paper:#FFFDF7; --brand-white:#FFFDF7; --brand-lime:#F6C928;
  --paper:#FFFDF7; --ink:#132A35; --coral:#B3261E; --blue:#132A35; --lime:#F6C928;
}
.anime-world .site-header { height:76px; background:#FFFDF7; border-bottom:1px solid #132a3520; }
.anime-world .site-header.is-scrolled { height:68px; background:#fffdf7f5; }
.anime-world .brand-mark { fill:#B3261E; }
.anime-world .ride-hero {
  display:grid; grid-template-columns:46% 54%; align-items:center; min-height:0;
  height:clamp(620px,53vw,820px); padding:76px 0 0; background:#FFFDF7; isolation:isolate;
}
.anime-world .ride-hero::before,.anime-world .ride-hero::after { display:none; }
.anime-world .hero-copy { position:relative; z-index:3; padding:40px 0 60px clamp(24px,5vw,80px); }
.anime-world .hero-kicker { margin:0 0 28px; font-size:10px; letter-spacing:.12em; color:#132A35; }
.anime-world .hero-kicker>span:first-child { display:inline-flex; align-items:center; gap:8px; }
.anime-world .hero-kicker .live-dot { background:#B3261E; animation:none; }
.anime-world .ride-hero .hero-title { display:block; height:auto; margin:0; padding:0; line-height:1.3; }
.anime-world .hero-jp { display:block; font-size:clamp(32px,3.6vw,58px); margin:0; color:#132A35; letter-spacing:-.06em; }
.anime-world .hero-final { display:block; font-size:clamp(44px,5vw,80px); margin:0; line-height:1.3; letter-spacing:-.07em; }
.anime-world .hero-final em { color:#B3261E; font-style:normal; text-shadow:none; }
.anime-world .hero-bottom { position:static; max-width:none; margin:25px 0 0; display:block; }
.anime-world .hero-bottom p { margin:0 0 24px; font-size:15px; line-height:1.95; color:#132A35; }
.anime-world .hero-actions { display:flex; align-items:flex-start; flex-direction:column; gap:10px; }
.anime-world .hero-actions>a:first-child { min-height:50px; padding:15px 22px; display:inline-flex; gap:30px; align-items:center; font-size:13px; background:#F6C928; color:#132A35; border:1px solid #F6C928; }
.anime-world .hero-contact-link { min-height:44px; padding:12px 0; background:transparent; border:0; color:#132A35; text-decoration:underline; text-underline-offset:5px; font-size:12px; }
.anime-world .ride-hero .rider-scene {
  position:absolute!important; top:76px!important; right:0!important; bottom:0!important; left:39%!important;
  width:61%!important; height:calc(100% - 76px)!important; margin:0!important; z-index:1; overflow:hidden; border:0; border-radius:0; transform:none; animation:none; background:#FFFDF7;
}
.anime-world .rider-scene::before { display:none; }
.anime-world .rider-scene::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(90deg,#FFFDF7 0%,#fffdf7c9 8%,#fffdf740 20%,transparent 35%); }
.anime-world .scene-riders { position:absolute; inset:0; width:100%; height:100%; max-height:none; object-fit:cover; object-position:72% center; mask-image:none; transform:none; animation:none!important; filter:none; }
.hero-riders-fallback { position:absolute; bottom:1%; right:0; width:88%; height:70%; object-fit:contain; }
.rider-scene.motion-ready .hero-riders-fallback { display:none; }
.anime-world .hero-layer-stage { inset:0; width:100%; height:100%; background:none; }
.anime-world .hero-layer-stage .actor[data-actor="0"] { left:31%; bottom:1%; height:68%; }
.anime-world .hero-layer-stage .actor[data-actor="1"] { left:60%; bottom:9%; height:52%; }
.anime-world .hero-layer-stage .actor[data-actor="2"] { left:82%; bottom:45%; height:17%; }
.anime-world .ride-hero>.motion-toggle { position:absolute; z-index:5; right:22px; bottom:18px; padding:10px 14px; min-height:42px; border:1px solid #132a3540; background:#fffdf7f5; color:#132A35; font-size:11px; text-decoration:none; border-radius:4px; }
.anime-world .ride-story { height:auto; background:#132A35; color:#FFFDF7; }
.anime-world .story-sticky { position:relative; top:0; min-height:0; padding:76px 5vw 54px; display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; overflow:visible; }
.anime-world .story-heading { align-self:center; }
.anime-world .story-heading .eyebrow { color:#F6C928; font-size:10px; letter-spacing:.1em; }
.anime-world .story-heading h2 { margin:25px 0 22px; font-size:clamp(29px,3.2vw,50px); line-height:1.45; letter-spacing:-.05em; }
.anime-world .story-heading h2 em { color:#F6C928; }
.anime-world .story-heading p { color:#FFFDF7; font-size:14px; line-height:1.9; }
.story-product-link { display:inline-flex; gap:25px; border-bottom:1px solid #fffdf770; min-height:44px; align-items:center; font-size:12px; margin-top:12px; }
.race-demo { align-self:center; border:1px solid #fffdf739; border-radius:8px; padding:20px 22px 12px; background:#fffdf706; }
.race-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; font-size:11px; font-weight:700; letter-spacing:.08em; }
.demo-label { color:#FFFDF7; font-size:10px; font-weight:400; letter-spacing:0; }
.race-course { position:relative; width:100%; aspect-ratio:5/3; margin:14px 0 0; }
.race-course>svg { display:block; width:100%; height:100%; overflow:visible; }
.race-road-edge { fill:none; stroke:#fffdf738; stroke-width:88; vector-effect:non-scaling-stroke; stroke-linecap:round; }
.race-road { fill:none; stroke:#132A35; stroke-width:85; vector-effect:non-scaling-stroke; stroke-linecap:round; }
.race-centerline { fill:none; stroke:#fffdf780; stroke-width:1; stroke-dasharray:5 9; }
.race-trail { fill:none; stroke:#F6C928; stroke-width:2.5; stroke-dasharray:1; stroke-dashoffset:1; }
.race-checkpoints { fill:#FFFDF7; stroke:#132A35; stroke-width:3; }
.race-map-labels { fill:#FFFDF7; font-size:11px; font-family:inherit; letter-spacing:1px; }
.race-rider { position:absolute; width:48px; height:48px; transform:translate(-50%,-50%); z-index:3; will-change:left,top; }
.race-avatar { width:48px; height:48px; display:block; border:3px solid #F6C928; border-radius:50%; overflow:hidden; background:#FFFDF7; box-shadow:0 3px 8px #0003; }
.race-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.racer-arisa .race-avatar { border-color:#B3261E; }
.race-bubble { position:absolute; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%); min-width:38px; padding:4px 7px; text-align:center; background:#FFFDF7; color:#132A35; border-radius:5px; font-size:10px; line-height:1.3; white-space:nowrap; }
.race-bubble::after { content:''; position:absolute; top:100%; left:calc(50% - 4px); border:4px solid transparent; border-top-color:#FFFDF7; }
.racer-arisa .race-bubble { top:calc(100% + 7px); bottom:auto; }
.racer-arisa .race-bubble::after { top:auto; bottom:100%; border-top-color:transparent; border-bottom-color:#FFFDF7; }
.race-rider.is-leading .race-bubble { font-weight:700; }
.race-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; border-top:1px solid #fffdf738; padding-top:12px; font-size:11px; }
.race-legend>span { display:flex; align-items:center; gap:6px; }
.race-legend i { width:7px; height:7px; border-radius:50%; background:#F6C928; }
.race-legend .legend-arisa { background:#B3261E; outline:1px solid #fffdf770; }
.race-legend button { margin-left:auto; border:1px solid #fffdf750; border-radius:3px; background:none; color:#FFFDF7; font-size:11px; min-height:40px; padding:8px 10px; cursor:pointer; }
.race-heading .demo-label { margin-left:auto; }
.race-info { position:relative; letter-spacing:0; font-weight:400; }
.race-info summary { cursor:pointer; list-style:none; display:grid; place-items:center; min-width:32px; min-height:32px; font-size:16px; }
.race-info summary::-webkit-details-marker { display:none; }
.race-info p { position:absolute; z-index:10; top:100%; right:0; width:230px; max-width:70vw; padding:14px; margin:6px 0 0; background:#FFFDF7; color:#132A35; border-radius:4px; font-size:12px; line-height:1.8; box-shadow:0 5px 20px #0003; }
.anime-world .journey-steps { margin:10px 0 0; gap:28px; }
.anime-world .journey-steps article { opacity:1; border-color:#fffdf745; transform:none; padding-top:18px; }
.anime-world .journey-steps span { color:#F6C928; }
.anime-world .journey-steps h3 { margin:12px 0 6px; font-size:17px; font-weight:700; color:#FFFDF7; }
.anime-world .journey-steps p { margin:0; font-size:12px; color:#FFFDF7; }
.anime-world .philosophy { border-top:8px solid #B3261E; }
.anime-world .team { background:#F6C928; }
.anime-world .contact { background:#132A35; }
.anime-world .adventure-speech { color:#132A35; background:#FFFDF7; border-color:#132A35; box-shadow:none; opacity:1; translate:none; }
.anime-world .adventure-speech::after { background:#FFFDF7; border-color:#132A35; }
.anime-world .adventure-speech small { color:#132A35; }
.anime-world .adventure-speech.iroha small { color:#B3261E; }
.anime-world .adventure-speech span { font-size:clamp(12px,1.3vw,19px); }
.anime-world .lab-stage .actor[data-actor="0"] { height:70%; bottom:1%; }
.anime-world .lab-stage .actor[data-actor="1"] { height:59%; bottom:1%; }
.anime-world .lab-stage .adventure-speech { top:3%; }
.anime-world .lab-stage .adventure-speech.iroha { top:3%; }
.anime-world .quest-mascot { animation:mascot-drift 4s ease-in-out infinite!important; }
@keyframes mascot-drift { 50% { translate:0 -7px; } }
.motion-paused .quest-mascot,.page-hidden .quest-mascot,[data-motion-out] .quest-mascot { animation-play-state:paused!important; }
.anime-world [data-motion-toggle]:focus-visible { outline:3px solid #F6C928; outline-offset:4px; }
.anime-world [data-motion-toggle]:disabled { cursor:default; opacity:.85; }
@media(max-width:1000px) {
  .anime-world .ride-hero { grid-template-columns:50% 50%; height:640px; }
  .anime-world .hero-copy { padding-left:28px; }
  .anime-world .hero-jp { font-size:34px; }
  .anime-world .hero-final { font-size:46px; }
  .anime-world .hero-bottom p { font-size:13px; }
  .anime-world .story-sticky { grid-template-columns:1fr 1.1fr; gap:26px; padding-inline:28px; }
  .race-demo { padding:18px 16px 12px; }
  .race-rider,.race-avatar { width:40px; height:40px; }
}
@media(max-width:700px) {
  .anime-world .site-header { height:64px; padding-inline:22px; }
  .anime-world .ride-hero { display:flex; flex-direction:column; justify-content:flex-start; height:auto; padding:64px 0 0; min-height:0; }
  .anime-world .hero-copy { width:100%; padding:30px 24px 24px; }
  .anime-world .hero-kicker { font-size:8px; margin:0 0 18px; }
  .anime-world .ride-hero .hero-title { height:auto; margin:0; }
  .anime-world .hero-jp { font-size:clamp(27px,7.4vw,44px); line-height:1.25; }
  .anime-world .hero-final { font-size:clamp(38px,10.3vw,60px); line-height:1.3; }
  .anime-world .hero-bottom { margin:15px 0 0; }
  .anime-world .hero-bottom p { font-size:14px; line-height:1.8; margin:0 0 15px; max-width:none; }
  .anime-world .hero-actions { flex-direction:row; align-items:center; gap:18px; width:100%; }
  .anime-world .hero-actions>a:first-child { padding:12px 14px; min-height:46px; font-size:11px; gap:14px; }
  .anime-world .hero-contact-link { font-size:10px; white-space:nowrap; }
  .anime-world .ride-hero .rider-scene { position:relative!important; inset:auto!important; width:100%!important; height:auto!important; aspect-ratio:1.6; margin:0!important; flex:none; }
  .anime-world .rider-scene::after { background:linear-gradient(180deg,#FFFDF7,transparent 22%); }
  .anime-world .scene-riders { object-position:center 67%; }
  .anime-world .hero-layer-stage { inset:0; height:100%; }
  .anime-world .hero-layer-stage .actor[data-actor="0"] { left:40%; height:80%; bottom:0; }
  .anime-world .hero-layer-stage .actor[data-actor="1"] { left:66%; height:63%; bottom:3%; }
  .anime-world .hero-layer-stage .actor[data-actor="2"] { left:84%; height:21%; bottom:53%; }
  .anime-world .ride-hero>.motion-toggle { bottom:10px; left:12px; right:auto; padding:8px 10px; min-height:38px; font-size:10px; }
  .anime-world .story-sticky { display:grid; grid-template-columns:1fr; padding:44px 24px 34px; gap:30px; }
  .anime-world .story-heading h2 { font-size:30px; margin:20px 0 16px; }
  .anime-world .story-heading p { font-size:14px; }
  .race-demo { padding:17px 16px 12px; margin:0 -8px; }
  .race-course { margin-top:24px; margin-bottom:8px; }
  .race-rider,.race-avatar { width:34px; height:34px; }
  .race-avatar { border-width:2px; }
  .race-bubble { font-size:9px; bottom:calc(100% + 4px); padding:3px 5px; }
  .racer-arisa .race-bubble { top:calc(100% + 4px); }
  .race-legend { gap:10px; font-size:10px; }
  .race-legend button { font-size:10px; padding:8px; }
  .anime-world .journey-steps { grid-template-columns:1fr 1fr; gap:24px 16px; margin:0; }
  .anime-world .journey-steps h3 { font-size:14px; }
  .anime-world .journey-steps p { font-size:11px; }
  .anime-world .adventure-speech span { font-size:11px; line-height:1.5; }
  .anime-world .adventure-speech { padding:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .anime-world .quest-mascot { animation:none!important; }
  .anime-world [data-reveal] { opacity:1!important; transform:none!important; }
}

#ride-story { scroll-margin-top:68px; }
@media(max-width:700px) { .race-road-edge { stroke-width:80; } .race-road { stroke-width:77; } }
body.motion-paused *::before,body.motion-paused *::after,
body.page-hidden *::before,body.page-hidden *::after,
[data-motion-out]::before,[data-motion-out]::after,
[data-motion-out] *::before,[data-motion-out] *::after { animation-play-state:paused!important; }
