:root{--paper:#f1f4f8;--ink:#0a0a0a;--red:#e1251b;--yellow:#ffe14a;--head:Impact,"Arial Black","Archivo Black",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden;line-height:1.45}
a{color:inherit;text-decoration:none}
.speed{position:fixed;inset:0;z-index:-2;background:repeating-conic-gradient(from 0deg at 78% 28%,#0a0a0a0d 0 3deg,transparent 3deg 9deg)}
.dots{position:fixed;top:0;right:0;width:55vw;height:100vh;z-index:-1;background:radial-gradient(var(--ink) 2px,transparent 2.3px) 0 0/16px 16px;opacity:.55;-webkit-mask-image:linear-gradient(to left,#000,transparent);mask-image:linear-gradient(to left,#000,transparent)}
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px clamp(18px,5vw,60px);background:linear-gradient(var(--paper),#f1f4f8cc 70%,transparent)}
.logo{background:var(--ink);color:var(--paper);padding:6px 14px;font-weight:900;letter-spacing:.2em;font-size:1.05rem}
.nav nav{display:flex;gap:22px;font-weight:800;text-transform:uppercase;font-size:.85rem;letter-spacing:.06em}
.nav nav a{position:relative}.nav nav a:after{content:"";position:absolute;left:0;bottom:-3px;height:3px;width:0;background:var(--red);transition:width .25s}.nav nav a:hover:after{width:100%}
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:110px clamp(18px,5vw,60px) 60px}
.sun{position:absolute;right:clamp(-120px,6vw,120px);top:14vh;width:min(36vw,460px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff5a4d,var(--red) 55%,#b81810);border:6px solid var(--ink);transition:transform .15s ease-out;will-change:transform;animation:pulse 6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 18px #e1251b22}}
.hero-copy{position:relative;z-index:2;max-width:880px}
.kana{color:var(--red);font-weight:800;letter-spacing:.18em;margin-bottom:12px}
h1{font-family:var(--head);font-weight:900;text-transform:uppercase;line-height:.88;letter-spacing:-.02em;font-size:clamp(3.6rem,13vw,9.5rem)}
h1 span{display:inline-block}
.l1,.l2{animation:rise .7s both}.l2{animation-delay:.12s}
h1 .win{display:block;margin-top:.1em;background:var(--red);color:var(--paper);padding:0 .15em;transform:rotate(-2deg);transform-origin:left;width:fit-content;animation:slam .6s .3s both cubic-bezier(.2,1.6,.4,1);font-size:.82em}
@keyframes rise{from{transform:translateY(40px);opacity:0}}
@keyframes slam{from{transform:rotate(-8deg) scale(1.4);opacity:0}}
.sub{margin:28px 0 28px;font-size:clamp(1.05rem,2.2vw,1.35rem);max-width:520px}
.cta{display:inline-flex;gap:10px;align-items:center;background:var(--ink);color:var(--paper);padding:16px 28px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;box-shadow:6px 6px 0 var(--red);transition:transform .15s,box-shadow .15s}
.cta:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--red)}.cta:active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--red)}
.cta.alt{background:var(--yellow);color:var(--ink);border:4px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
.marquee{background:var(--ink);color:var(--paper);overflow:hidden;transform:rotate(-1.5deg);margin:0 -20px;border-block:4px solid var(--red)}
.track{display:flex;gap:28px;width:max-content;padding:14px 0;font-family:var(--head);font-size:1.8rem;animation:slide 22s linear infinite}
.track b{color:var(--red)}
@keyframes slide{to{transform:translateX(-50%)}}
section{padding:90px clamp(18px,5vw,60px)}
h2{font-family:var(--head);text-transform:uppercase;font-size:clamp(2.6rem,7vw,5rem);line-height:.95;margin-bottom:36px}
h2 em{font-style:normal;background:var(--red);color:var(--paper);padding:0 .15em;display:inline-block;transform:rotate(-2deg)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:28px;max-width:1200px}
.card{position:relative;display:block;min-height:260px;background:#fff;border:5px solid var(--ink);padding:24px;box-shadow:8px 8px 0 var(--ink);transition:box-shadow .2s,background .2s;transform-style:preserve-3d;will-change:transform}
.card:hover{box-shadow:14px 14px 0 var(--red)}
.card .num{position:absolute;right:16px;top:10px;font-family:var(--head);font-size:2.6rem;color:var(--red)}
.card h3{font-family:var(--head);text-transform:uppercase;font-size:2.2rem;margin:34px 0 10px;transform:translateZ(40px)}
.card p{max-width:30ch;transform:translateZ(20px)}
.tag{position:absolute;left:24px;bottom:20px;font-weight:900;text-transform:uppercase;font-size:.85rem;letter-spacing:.06em;border-bottom:3px solid var(--red)}
.tag.soon{border-color:#999;color:#555}
.c2{background:var(--yellow)}
.ghost{background:transparent;border-style:dashed;box-shadow:none}
.about{display:flex;justify-content:center}
.panel{max-width:760px;background:var(--ink);color:var(--paper);padding:clamp(24px,5vw,56px);border:5px solid var(--ink);box-shadow:10px 10px 0 var(--red);transform-style:preserve-3d}
.panel h2{color:var(--yellow);margin-bottom:18px}.panel p{font-size:1.15rem;margin-bottom:14px}.by b{color:var(--yellow)}
.contact{text-align:left}
footer{padding:30px;text-align:center;font-weight:800;text-transform:uppercase;font-size:.8rem;letter-spacing:.12em;border-top:4px solid var(--ink)}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .6s,transform .35s,box-shadow .2s,background .2s}.reveal.in{opacity:1;transform:none}
@media (max-width:760px){
 .nav nav{gap:14px;font-size:.7rem}
 .hero{align-items:flex-end;padding-top:100px;min-height:92vh}
 .sun{right:-90px;top:90px;width:300px}
 .dots{width:100vw;opacity:.35}
 h1{font-size:clamp(3.4rem,19vw,6rem)}
 .card{min-height:220px}
 section{padding:70px 18px}
 .marquee{margin:0 -10px}.track{font-size:1.4rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media (max-width:760px){
 .logo{letter-spacing:.12em;padding:5px 10px;font-size:.9rem}
 .sun{right:-70px;top:84px;width:230px}
 h1 .win{font-size:.58em;margin-top:.18em}
 .hero-copy{margin-top:230px}
 .hero{align-items:flex-start}
}
.card{padding-bottom:70px}
.card h3{font-size:clamp(1.25rem,1.9vw,2.2rem)}
.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

.vision{max-width:1000px}
.lead{font-size:clamp(1.1rem,2.2vw,1.45rem);max-width:640px;margin-bottom:26px}
.vision .lead{border-left:8px solid var(--red);padding-left:20px}
.role{font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--red);margin-bottom:14px!important}
.panel .kana{margin-bottom:6px}
.links{display:flex;flex-wrap:wrap;gap:20px;margin-top:22px}
.join{display:flex;justify-content:center}
.slab{max-width:900px;background:var(--yellow);border:5px solid var(--ink);box-shadow:10px 10px 0 var(--ink);padding:clamp(24px,5vw,56px);transform-style:preserve-3d}
.slab p{font-size:1.15rem;margin-bottom:24px;max-width:56ch}
.building .card{min-height:230px;padding-bottom:24px}
footer{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}
footer nav{display:flex;gap:20px}
footer p{width:100%;text-align:center}
@media (max-width:760px){.nav nav{gap:10px;font-size:.62rem}.nav nav a:nth-child(n){white-space:nowrap}footer{justify-content:center}}
