
@property --bg{syntax:'<color>';inherits:true;initial-value:#FFFCF5}
@property --fg{syntax:'<color>';inherits:true;initial-value:#1E0A0B}
@property --head{syntax:'<color>';inherits:true;initial-value:#1E0A0B}
:root{--paper:#FFFCF5;--ink:#1E0A0B;--crim:#B81319;--sky:#ED1B24;--mint:#BFE3D6;--mintd:#4FA98B;--blue:#2F6FD0;--bluel:#D6E8FB;--happi:#FFC72C;
--disp:'M PLUS Rounded 1c',system-ui,sans-serif;--sans:'Noto Sans JP',system-ui,sans-serif;--mono:'IBM Plex Mono',monospace;--script:'Kaushan Script',cursive;--w:1180px;--ease:cubic-bezier(.22,.8,.24,1);transition:--bg .7s ease,--fg .7s ease,--head .7s ease}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--sans);font-size:16px;line-height:1.7;background:var(--bg);color:var(--fg);transition:background-color .7s ease,color .7s ease}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:var(--disp);font-weight:900;color:var(--head);line-height:1.1;letter-spacing:-.01em}
h2{font-size:clamp(34px,5vw,62px)}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px}
.sec{padding:clamp(64px,8vw,104px) 0;position:relative}
.chip{display:inline-flex;align-items:center;gap:6px;border:3px solid var(--ink);border-radius:99px;padding:5px 16px;font-weight:800;font-size:14px;background:#fff;color:var(--ink);font-family:var(--disp)}
.chip.m{font-family:var(--mono);font-weight:600;font-size:13px}
.chip.y{background:var(--happi)}
.eyebrow{display:inline-block;margin-bottom:16px}
.hl{display:inline-block;background:var(--happi);color:var(--ink);border:3px solid var(--ink);border-radius:14px;padding:0 .18em;transform:rotate(-2deg);box-shadow:4px 4px 0 var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:12px 28px;border-radius:14px;font-family:var(--disp);font-weight:800;font-size:17px;text-decoration:none;border:3px solid var(--ink);background:var(--crim);color:#fff;box-shadow:4px 4px 0 var(--ink);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.y{background:var(--happi);color:var(--ink)}.btn.w{background:#fff;color:var(--ink)}
:focus-visible{outline:4px solid var(--blue);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:10px 16px;z-index:200;border:3px solid var(--ink)}.skip:focus{left:8px}
.js .rv{opacity:0;transform:translateY(36px) scale(.97);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.l{transform:translateX(-50px) rotate(-3deg)}.js .rv.r{transform:translateX(50px) rotate(3deg)}
.js .rv.in.l,.js .rv.in.r{transform:none}
.mv{transform:translate3d(var(--px,0),var(--py,0),0) rotate(var(--rot,0deg)) scale(var(--sc,1));will-change:transform}
/* header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:100;background:#fff;border-bottom:3px solid var(--ink)}
.hdr .wrap{display:flex;align-items:center;gap:20px;height:74px;max-width:1320px}
.logo{display:flex;align-items:center;text-decoration:none}.logo img{width:52px;height:52px}
.nav{display:flex;gap:4px;margin-left:10px}
.nav a{padding:9px 14px;text-decoration:none;font-weight:700;font-size:15px;border-radius:10px;color:var(--ink);border:2px solid transparent;transition:border-color .2s,background .2s}
.nav a:hover{background:var(--happi);border-color:var(--ink)}
.soc{display:flex;gap:2px;margin-left:auto}.soc a{width:44px;height:44px;display:grid;place-items:center;color:var(--ink);border-radius:10px;transition:background .2s}.soc a:hover{background:var(--mint)}.soc svg{width:21px;height:21px}
.reg{position:relative}.reg .btn{min-height:46px;padding:8px 20px;font-size:16px}
.menu{position:absolute;right:0;top:calc(100% + 14px);background:#fff;border:3px solid var(--ink);border-radius:16px;box-shadow:6px 6px 0 var(--ink);padding:8px;width:280px;animation:pop .22s var(--ease)}
.menu[hidden]{display:none}
.menu a{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-radius:10px;text-decoration:none;font-weight:700;min-height:46px;font-family:var(--disp)}
.menu a:hover{background:var(--happi)}.menu a small{font:500 12px var(--sans);color:#6b5855}
@keyframes pop{from{opacity:0;transform:translateY(-8px) scale(.96)}}
#menuBtn{display:none;width:46px;height:46px;border:3px solid var(--ink);border-radius:12px;background:#fff;cursor:pointer;color:var(--ink)}
#sbar{position:absolute;left:0;bottom:-3px;height:5px;width:100%;background:var(--crim);transform-origin:left;transform:scaleX(0)}
/* hero */
.hero{min-height:100svh;padding:100px 0 150px;display:flex;align-items:center;position:relative;overflow:hidden}
.hero .gar{position:absolute;left:0;top:76px;width:100%;height:150px;z-index:1;pointer-events:none}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:center;position:relative;z-index:2;padding-top:56px}
.hero h1{font-size:clamp(46px,6.2vw,88px)}
.lede{font-size:19px;max-width:500px;margin:18px 0 20px;font-weight:500}
.meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.cd{display:flex;gap:10px;margin-bottom:6px}
.cd div{border:3px solid var(--ink);background:#fff;border-radius:14px;padding:6px 10px;text-align:center;min-width:72px;box-shadow:4px 4px 0 var(--ink)}
.cd b{font:600 30px var(--mono);display:block;line-height:1.15;font-variant-numeric:tabular-nums}.cd span{font-size:10.5px;letter-spacing:.16em;font-weight:900}
.cdnote{font-size:13px;margin-bottom:22px;color:#4a3a3b}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.gate{position:relative;aspect-ratio:480/430;width:100%;max-width:540px;margin-left:auto}
.gate .sun{position:absolute;left:26%;top:31%;width:46%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid var(--ink);background:#fff;z-index:2}
.gate .sun img{width:106%;margin:-3% 0 0 -3%}
.ab{position:absolute;z-index:4}
.stk{border:3px solid var(--ink);border-radius:99px;padding:5px 16px;font:900 15px var(--disp);box-shadow:3px 3px 0 var(--ink);white-space:nowrap}
.fl{animation:flt 4.5s ease-in-out infinite alternate}
@keyframes flt{from{transform:translateY(-6px) rotate(-2deg)}to{transform:translateY(8px) rotate(2deg)}}
.sw{transform-box:fill-box;transform-origin:50% 0;animation:sway 3.6s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
.ground{position:absolute;left:0;right:0;bottom:0;height:96px;background:var(--mint);border-top:3px solid var(--ink);z-index:1}
.ground .seg{position:absolute;left:0;right:0;bottom:0;height:34px;background-image:url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2220%22%20viewBox%3D%220%200%2040%2020%22%3E%3Crect%20width%3D%2240%22%20height%3D%2220%22%20fill%3D%22%23BFE3D6%22/%3E%3Cg%20fill%3D%22%23BFE3D6%22%20stroke%3D%22%234FA98B%22%20stroke-width%3D%221.3%22%3E%3Cg%20id%3D%22w%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2220%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2215%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2210%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%225%22/%3E%3C/g%3E%3Cuse%20href%3D%22%23w%22%20x%3D%22-20%22%20y%3D%2210%22/%3E%3Cuse%20href%3D%22%23w%22%20x%3D%2220%22%20y%3D%2210%22/%3E%3C/g%3E%3C/svg%3E');background-size:40px 20px;background-position:calc(var(--p,0)*-300px) 0;border-top:3px solid var(--ink)}
.ground .rail{position:absolute;left:0;right:0;bottom:36px;height:6px;background:var(--ink);opacity:.8}
.ground .train{position:absolute;bottom:42px;width:260px;animation:run 22s linear infinite;left:-300px}
.bout{position:absolute;bottom:40px;left:-340px;width:250px;height:125px;animation:run 34s linear infinite}
.bout .w{position:absolute;bottom:0;width:120px;transform-origin:50% 100%}
.bout .w1{left:0;animation:shoveA 1.3s ease-in-out infinite alternate}
.bout .w2{right:0;transform:scaleX(-1);animation:shoveB 1.3s ease-in-out infinite alternate}
@keyframes shoveA{from{transform:translateX(-6px) rotate(-3deg)}to{transform:translateX(12px) rotate(4deg)}}
@keyframes shoveB{from{transform:scaleX(-1) translateX(12px) rotate(4deg)}to{transform:scaleX(-1) translateX(-6px) rotate(-3deg)}}
.bout .dust{position:absolute;bottom:-4px;left:50%;width:70px;height:26px;margin-left:-35px;animation:dust 1.3s ease-out infinite}
@keyframes dust{0%{opacity:0;transform:scale(.4)}40%{opacity:.8}100%{opacity:0;transform:scale(1.3) translateY(-6px)}}
.sumo{display:block;width:100%;height:auto;overflow:visible}
.lgL,.lgR{transform-box:fill-box;transform-origin:50% 0}
.shk .lgL{animation:shikoL 2.4s ease-in-out infinite}.shk .lgR{animation:shikoR 2.4s ease-in-out infinite}
.shk{animation:rock 2.4s ease-in-out infinite;transform-origin:50% 100%}
@keyframes rock{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-3px) rotate(-2.2deg)}75%{transform:translateX(3px) rotate(2.2deg)}}
@keyframes shikoL{0%,55%,100%{transform:none}12%,30%{transform:translateY(-9px) rotate(-7deg)}}
@keyframes shikoR{0%,50%,100%{transform:none}62%,80%{transform:translateY(-9px) rotate(7deg)}}
@keyframes bobb{0%,100%{transform:translateY(0)}25%,70%{transform:translateY(2px)}}
@keyframes run{to{transform:translateX(calc(100vw + 340px))}}
/* hero festival scene */
.scene{position:absolute;left:0;right:0;bottom:96px;height:210px;pointer-events:none;z-index:0}
.scene .fuji{position:absolute;right:6%;bottom:0;width:min(560px,46vw);opacity:.9}
.scene .trow{position:absolute;left:3%;bottom:0;width:min(520px,40vw)}
.crowd{position:absolute;bottom:40px;left:-640px;display:flex;gap:46px;align-items:flex-end;animation:run 70s linear infinite;z-index:1}
.crowd.c2{animation-delay:-34s}
.pp{width:44px;flex:none;animation:step .62s ease-in-out infinite alternate;transform-origin:50% 100%}
.pp:nth-child(2n){animation-delay:-.3s}.pp:nth-child(3n){animation-delay:-.15s;margin-left:14px}
.pp svg{display:block;width:100%;overflow:visible}
@keyframes step{from{transform:translateY(0) rotate(-1.2deg)}to{transform:translateY(-3px) rotate(1.2deg)}}
.cranes{position:absolute;inset:80px 0 auto 0;height:230px;pointer-events:none;z-index:1;overflow:hidden}
.crane{position:absolute;left:-90px;width:46px;animation:fly var(--t,46s) linear infinite;animation-delay:var(--d,0s)}
.crane svg{display:block;width:100%;animation:bob 2.6s ease-in-out infinite alternate}
.crane .wg{transform-box:fill-box;transform-origin:50% 100%;animation:flap .9s ease-in-out infinite alternate}
@keyframes fly{to{transform:translateX(calc(100vw + 180px))}}
@keyframes bob{from{transform:translateY(-10px) rotate(-4deg)}to{transform:translateY(10px) rotate(3deg)}}
@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(.55)}}
.parade{position:absolute;bottom:40px;left:-1560px;display:flex;gap:30px;align-items:flex-end;animation:marchp 72s linear infinite;z-index:2}
@keyframes marchp{to{transform:translateX(calc(100vw + 1700px))}}
.parade .pp{width:58px;position:relative}
.parade.hold{animation-play-state:paused}
.parade .pp[data-name]:after{content:attr(data-name);position:absolute;left:50%;top:-30px;transform:translate(-50%,6px) scale(.8);background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:99px;padding:1px 10px;font:900 12px var(--disp);white-space:nowrap;opacity:0;transition:opacity .2s,transform .25s var(--ease);box-shadow:2px 2px 0 var(--ink);pointer-events:none}
.parade .pp.wave[data-name]:after{opacity:1;transform:translate(-50%,0) scale(1)}
.parade .pp.wave{animation:hop .5s ease-in-out infinite alternate}
@keyframes hop{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-6px) rotate(2deg)}}
.parade .hand{display:none;position:absolute;right:-4px;top:34px;width:9px;height:26px;border-radius:6px;background:#F4CBA2;border:2px solid var(--ink);transform-origin:50% 100%}
.parade .pp.wave .hand{display:block;animation:wv .38s ease-in-out infinite alternate}
@keyframes wv{from{transform:rotate(-28deg) translateY(-20px)}to{transform:rotate(26deg) translateY(-20px)}}.parade .chr{display:block;width:100%;height:auto;overflow:visible}.parade img.chr{width:auto;height:118px}
/* ticket stats */
.tix{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tk{background:#fff;border:3px solid var(--ink);border-radius:16px;padding:22px 20px 18px;position:relative;box-shadow:5px 5px 0 var(--ink)}
.tk:before,.tk:after{content:"";position:absolute;top:calc(50% - 11px);width:22px;height:22px;border-radius:50%;background:var(--bg);border:3px solid var(--ink);transition:background-color .7s}
.tk:before{left:-13px}.tk:after{right:-13px}
.tk .mono{font:600 11px var(--mono);letter-spacing:.14em;color:#6b5855}
.tk b{display:block;font:900 clamp(40px,5vw,62px)/1 var(--disp);margin:6px 0 2px;font-variant-numeric:tabular-nums}
.tk span{font-weight:700}
.tk.hot{background:var(--happi)}
/* zones */
.zones{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.zone{border:3px solid var(--ink);border-radius:20px;padding:24px;min-height:220px;text-decoration:none;position:relative;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:6px 6px 0 var(--ink);overflow:hidden;color:var(--ink);background:var(--c);transition:transform .3s var(--ease),box-shadow .3s}
.zone:hover{transform:translate(-3px,-5px) rotate(-1deg);box-shadow:10px 11px 0 var(--ink)}
.zone .k{position:absolute;right:16px;top:8px;font:900 78px/1 var(--sans);opacity:.92}
.zone h3{font-size:28px;color:inherit}.zone p{font-size:15px;font-weight:500;max-width:240px}
.zone.l{color:#fff}.zone.l h3{color:#fff}
.zone .go{position:absolute;left:24px;top:22px;font:700 11px var(--mono);letter-spacing:.12em;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:99px;padding:2px 10px}
/* ten years */
.pin{height:340vh;position:relative}
.pin .stick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.pin .wrap{width:100%}
.pin .sub{color:var(--fg);font-size:18px;max-width:560px;margin-top:10px}
.line{position:relative;margin:70px 0 0;height:120px}
.line .rail{position:absolute;left:0;right:0;top:78px;height:10px;background:#fff;border:3px solid var(--ink);border-radius:8px;opacity:.95}
.line .done{position:absolute;left:0;top:78px;height:10px;width:calc(var(--p,0)*100%);background:var(--happi);border:3px solid var(--ink);border-radius:8px}
.sts{position:absolute;left:0;right:0;top:70px;display:flex;justify-content:space-between}
.st{width:26px;height:26px;border-radius:50%;background:#fff;border:4px solid var(--ink);position:relative;transition:background .3s,transform .3s var(--ease)}
.st i{position:absolute;top:36px;left:50%;transform:translateX(-50%);font:600 12px var(--mono);font-style:normal;color:#fff}
.st.on{background:var(--happi);transform:scale(1.2)}
.st:last-child.on{background:var(--sky)}
.trainrun{position:absolute;top:-52px;left:0;width:124px;transform:translateX(calc(var(--p,0)*var(--tw,0px)))}
.cards{position:relative;height:170px;margin-top:26px}
.ec{position:absolute;inset:0;display:flex;align-items:center;gap:28px;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:20px;box-shadow:7px 7px 0 var(--ink);padding:22px 30px;opacity:0;transform:translateY(24px) rotate(1deg);transition:opacity .4s var(--ease),transform .4s var(--ease);pointer-events:none}
.ec.on{opacity:1;transform:none;pointer-events:auto}
.ec .n{font:900 76px/1 var(--disp);color:var(--blue)}.ec h3{font-size:28px;color:var(--ink)}.ec small{font:600 12px var(--mono);letter-spacing:.14em;color:#6b5855;display:block}
.ec.now{background:var(--crim);color:#fff}.ec.now .n,.ec.now h3,.ec.now small{color:#fff}
.pin .cl{position:absolute;color:rgba(255,255,255,.22)}.pin .cl svg{width:100%}
/* timetable */
.board{background:#0f0607;border:3px solid #fff;border-radius:20px;padding:26px 28px;font-family:var(--mono);box-shadow:8px 8px 0 var(--crim);margin-top:34px}
.row{display:grid;grid-template-columns:110px 1fr 160px 130px;gap:14px;padding:14px 0;border-bottom:1px solid #3a2a2c;font-size:16px;align-items:center}
.row.h{font-size:12px;letter-spacing:.18em;color:#a89290}.row:last-child{border:0}
.row .t{color:var(--happi);font-weight:600}
.st2{display:inline-block;padding:3px 12px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.08em}
.ok{background:#1d4d3c;color:#9af0cc}.bd{background:var(--happi);color:var(--ink);animation:blink 1.4s steps(2) infinite}.dl{background:#4a1214;color:#ffb3b6}
@keyframes blink{50%{opacity:.45}}
.glow{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(237,27,36,.5),transparent 68%);pointer-events:none}
/* biz tickets */
.big2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:40px}
.tc{background:#fff;border:3px solid var(--ink);border-radius:22px;display:grid;grid-template-columns:1fr 150px;box-shadow:8px 8px 0 var(--ink);overflow:hidden;transition:transform .3s var(--ease)}
.tc:hover{transform:translateY(-6px) rotate(-.6deg)}
.tc .a{padding:28px}.tc .mono{font:600 11px var(--mono);letter-spacing:.14em;color:#6b5855}
.tc h3{font-size:32px;margin:8px 0 10px;color:var(--ink)}.tc p{font-size:15px;margin-bottom:18px}
.tc .b{border-left:3px dashed var(--ink);background:var(--c);display:grid;place-items:center;text-decoration:none;color:#fff;font:900 20px var(--disp);text-align:center;padding:14px;writing-mode:vertical-rl}
.tc .b:hover{filter:brightness(1.08)}
.logos{overflow:hidden;margin-top:56px;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:18px 0;background:#fff}
.logos div{display:flex;gap:16px;width:max-content;animation:slide 34s linear infinite}
.logos span{width:170px;height:60px;border:3px solid var(--ink);border-radius:12px;display:grid;place-items:center;font:800 12px var(--disp);letter-spacing:.1em;background:var(--paper)}
@keyframes slide{to{transform:translateX(-50%)}}.logos:hover div{animation-play-state:paused}
/* cosplay */
.ichi{position:absolute;left:0;right:0;height:46px;background:conic-gradient(#1E0A0B 25%,#FFC72C 0 50%,#1E0A0B 0 75%,#FFC72C 0) 0 0/46px 46px;background-position:calc(var(--p,0)*-260px) 0;border-block:3px solid var(--ink)}
.polas{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.pola{background:#fff;border:3px solid var(--ink);padding:12px 12px 44px;box-shadow:6px 6px 0 var(--ink);position:relative;transform:rotate(var(--r))}
.pola .im{aspect-ratio:3/4;border:3px solid var(--ink);background:linear-gradient(135deg,var(--a),var(--b))}
.pola span{position:absolute;left:14px;bottom:10px;font:800 14px var(--disp)}
.pola:nth-child(2){margin-top:34px}.pola:nth-child(4){margin-top:24px}
.js .pola.rv.in{transform:rotate(var(--r))}.js .pola.rv.in:hover{transform:rotate(0) scale(1.05)}
.pola{transition:transform .35s var(--ease)}.pola:hover{transform:rotate(0) scale(1.05);z-index:3}
/* news */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}
.card{background:#fff;border:3px solid var(--ink);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink);display:block;box-shadow:6px 6px 0 var(--ink);transition:transform .3s var(--ease),box-shadow .3s}
.card:hover{transform:translate(-3px,-5px);box-shadow:10px 11px 0 var(--ink)}
.card .im{height:160px;border-bottom:3px solid var(--ink);background:var(--c);position:relative;overflow:hidden}
.card .im:after{content:"";position:absolute;inset:0;background-image:url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2220%22%20viewBox%3D%220%200%2040%2020%22%3E%3Crect%20width%3D%2240%22%20height%3D%2220%22%20fill%3D%22transparent%22/%3E%3Cg%20fill%3D%22transparent%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.3%22%3E%3Cg%20id%3D%22w%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2220%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2215%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%2210%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%225%22/%3E%3C/g%3E%3Cuse%20href%3D%22%23w%22%20x%3D%22-20%22%20y%3D%2210%22/%3E%3Cuse%20href%3D%22%23w%22%20x%3D%2220%22%20y%3D%2210%22/%3E%3C/g%3E%3C/svg%3E');background-size:40px 20px;opacity:.22}
.card .tx{padding:20px}.card h3{font-size:22px;margin:10px 0;color:var(--ink)}.card .dt{font:500 13px var(--mono);color:#6b5855}
/* social */
.social{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;margin-top:38px}
.yt{border:3px solid var(--ink);border-radius:20px;aspect-ratio:16/9;background:linear-gradient(135deg,var(--blue),#1E0A0B);position:relative;display:grid;place-items:center;box-shadow:7px 7px 0 var(--ink);overflow:hidden}
.yt:before{content:"";position:absolute;right:12%;top:14%;width:26%;aspect-ratio:1;border-radius:50%;background:var(--sky)}
.yt button{position:relative;width:88px;height:88px;border-radius:50%;border:3px solid var(--ink);background:var(--happi);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .2s}
.yt button:hover{transform:scale(1.1) rotate(-6deg)}.yt svg{width:36px;height:36px;margin-left:5px}
.yt em{position:absolute;left:18px;bottom:12px;color:#fff;font-style:normal;font-size:14px}
.ig{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ig a{aspect-ratio:1;border:3px solid var(--ink);border-radius:14px;background:linear-gradient(135deg,var(--a),var(--b));transition:transform .25s var(--ease);box-shadow:3px 3px 0 var(--ink)}.ig a:hover{transform:rotate(-4deg) scale(1.07)}
.handle{margin-top:16px;font:800 18px var(--disp)}
/* join */
.join{background:var(--crim);color:#fff;text-align:center;overflow:hidden}
.join h2{color:#fff;font-size:clamp(42px,7vw,96px)}
.join p{max-width:560px;margin:14px auto 30px;font-size:19px}
.join .cta{justify-content:center}.join .stk{position:absolute}
/* footer */
.ftr{background:var(--ink);color:#eadedb;padding:60px 0 28px;border-top:3px solid var(--ink);position:relative}
.ftr:before{content:"";position:absolute;left:0;right:0;top:-3px;height:34px;background:conic-gradient(#1E0A0B 25%,#FFC72C 0 50%,#1E0A0B 0 75%,#FFC72C 0) 0 0/34px 34px;border-block:3px solid var(--ink);transform:translateY(-100%)}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.ftr h4{font:900 15px var(--disp);color:#fff;letter-spacing:.14em;margin-bottom:12px}
.ftr a{display:block;text-decoration:none;padding:5px 0}.ftr a:hover{color:#fff;text-decoration:underline}
.nl{display:flex;gap:8px;margin-top:12px}.nl input{flex:1;min-height:48px;border-radius:12px;border:3px solid #fff;background:transparent;color:#fff;padding:0 16px;font:inherit}.nl input::placeholder{color:#b8a8a5}
.legal{margin-top:44px;padding-top:20px;border-top:2px solid #4a3a3b;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#b8a8a5}.legal a{display:inline;margin-right:16px}
.nav a,.reg .btn{white-space:nowrap}@media(max-width:1180px){.nav{gap:2px;margin-left:4px}.nav a{padding:9px 9px;font-size:14px}.soc a{width:38px}.hdr .wrap{gap:12px}}@media(max-width:980px){.nav,.soc{display:none}.nav.open{display:flex;flex-direction:column;position:fixed;left:0;right:0;top:74px;background:#fff;padding:14px 24px 22px;border-bottom:3px solid var(--ink);margin:0}
 #menuBtn{display:block;margin-left:auto}.hdr .wrap{gap:10px}
 .hero .wrap,.social,.big2{grid-template-columns:1fr}.gate{max-width:440px;margin:30px auto 0}
 .zones,.news{grid-template-columns:1fr 1fr}.tix,.polas{grid-template-columns:1fr 1fr}.fg{grid-template-columns:1fr 1fr}.row{grid-template-columns:90px 1fr 100px}.row>:nth-child(3){display:none}}
@media(max-width:800px){.pin{height:auto;padding:70px 0}.pin .stick{position:static;height:auto}.line{display:none}.cards{height:auto;display:grid;gap:14px}.ec{position:static;opacity:1;transform:none;pointer-events:auto}}
@media(max-width:640px){.zones,.news{grid-template-columns:1fr}.tix{gap:22px 14px}.tc{grid-template-columns:1fr}.tc .b{writing-mode:horizontal-tb;border-left:0;border-top:3px dashed var(--ink)}.fg{grid-template-columns:1fr}.hero h1{font-size:46px}.cd div{min-width:60px}.cd b{font-size:24px}.logo img{width:46px;height:46px}.hdr .btn{padding:8px 14px}.polas{grid-template-columns:1fr 1fr;gap:14px}.row{grid-template-columns:72px 1fr}.row>:nth-child(4){display:none}.hero .gar{height:100px}.ground .train{width:170px}}
@media(prefers-reduced-motion:reduce){.parade{left:8%}.crowd{left:12%}.crane{left:30%}*{animation:none!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.js .rv{opacity:1;transform:none}.ground .train{left:20%}}
