/* 사십야계 — 포스터 톤(노랑·파랑·빨강·크림) 레트로 80s
   성능: 배경 블러 금지, scrub 은 y/x/opacity 만, will-change 남발 금지 */
:root{
  --y:#E8C65C; --y2:#DDB548; --y3:#F3DA87;
  --b:#2448A0; --b2:#173275; --r:#B5392C; --r2:#8E2A20;
  --c:#EFE8D8; --c2:#E4DAC4; --ink:#151515; --paper:#FFFBEF;
  --line:2.5px solid var(--ink);
  --sh:6px 6px 0 var(--ink);
  --disp:"Black Han Sans","Pretendard",sans-serif;
  --head:"Do Hyeon","Black Han Sans",sans-serif;
  --body:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --mx:clamp(16px,4vw,48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{font-family:var(--body);color:var(--ink);background:var(--y);line-height:1.7;word-break:keep-all;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--mx)}
.disp{font-family:var(--disp);font-weight:400;letter-spacing:-.01em;line-height:1.15}

/* 망점 질감 (고정 배경 아님 — 스크롤 시 재계산 없음) */
.dots{background-image:radial-gradient(rgba(120,80,0,.13) 1.1px,transparent 1.3px);background-size:7px 7px}

/* ── 상단 바 ── */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  height:60px;padding:0 var(--mx);background:var(--y);border-bottom:var(--line)}
.top .brand{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-size:22px;color:var(--b)}
.top .brand small{font-family:var(--disp);font-size:14px;color:var(--r)}
.top nav{display:flex;gap:4px}
.top nav a{padding:8px 12px;font-weight:700;font-size:15px;border-radius:999px}
.top nav a:hover,.top nav a[aria-current]{background:var(--ink);color:var(--y)}
.dday{font-family:var(--disp);font-size:15px;background:var(--r);color:#fff;padding:6px 12px;border-radius:999px;border:var(--line);white-space:nowrap}
.burger{display:none;width:44px;height:44px;border:var(--line);border-radius:10px;background:var(--paper);box-shadow:3px 3px 0 var(--ink)}
.burger i{display:block;width:18px;height:2.5px;background:var(--ink);margin:3px auto}
.mnav{display:none}

/* ── 히어로 ── */
.hero{position:relative;min-height:100svh;padding:80px var(--mx) 0;overflow:hidden;
  background:radial-gradient(ellipse at 50% 46%,var(--y3) 0,var(--y) 52%,var(--y2) 100%)}
.rays{position:absolute;left:50%;top:44%;width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;pointer-events:none;
  background:repeating-conic-gradient(rgba(255,255,255,.16) 0 6deg,transparent 6deg 15deg);
  -webkit-mask:radial-gradient(circle,#000 0,#000 25%,transparent 62%);mask:radial-gradient(circle,#000 0,#000 25%,transparent 62%);
  animation:spin 140s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hero .dots{position:absolute;inset:0;pointer-events:none}
.hero-in{display:grid;grid-template-columns:1fr minmax(0,auto) 1fr;align-items:end;gap:24px;max-width:1500px;margin:0 auto;min-height:calc(100svh - 80px)}
.tagline{position:absolute;top:96px;left:0;right:0;text-align:center;font-family:var(--disp);color:var(--r);font-size:clamp(18px,2.2vw,30px);animation:fadeD .8s .1s backwards}
.hero-info{padding:0 0 9vh;animation:fadeU .9s 1.4s backwards}
.hanja{font-family:var(--disp);color:var(--r);font-size:clamp(30px,3.4vw,48px);line-height:1}
.hero-info .when{margin-top:14px;font-family:var(--disp);color:var(--b2);font-size:clamp(18px,1.75vw,28px);line-height:1.35;white-space:nowrap}
.hero-info .free{display:inline-block;margin-top:14px;font-weight:800;background:var(--ink);color:var(--y);padding:4px 12px;border-radius:6px}
.cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.btn{color:var(--ink);display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:16px;padding:13px 20px;border:var(--line);border-radius:12px;background:var(--paper);box-shadow:4px 4px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn.blue{background:var(--b);color:#fff}
.btn.red{background:var(--r);color:#fff}

.stage-wrap{align-self:center;padding-top:40px}
.stage{position:relative;width:min(46vw,calc((100svh - 150px) * .864),640px);aspect-ratio:520/602}
.stage img{position:absolute;max-width:none;height:auto;user-select:none;-webkit-user-drag:none}
/* 등장 (첫 화면은 CSS 애니메이션 — 라이브러리 기다리지 않음) */
.logo-g{position:absolute;inset:0;animation:bob 3.2s 2s ease-in-out infinite}
.L-logo_sa,.L-logo_sip,.L-logo_ya,.L-logo_gye{animation:drop .7s cubic-bezier(.3,1.6,.5,1) backwards}
.L-logo_sa{animation-delay:.25s}.L-logo_sip{animation-delay:.4s}.L-logo_ya{animation-delay:.55s}.L-logo_gye{animation-delay:.7s}
@keyframes drop{0%{transform:translateY(-140%);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.2%)}}
.L-ribbon{animation:unroll .8s 1s cubic-bezier(.2,.8,.2,1) backwards}
@keyframes unroll{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}
.man-g{position:absolute;inset:0;animation:rise .9s .9s cubic-bezier(.2,.9,.3,1.15) backwards}
@keyframes rise{from{transform:translateY(18%);opacity:0}to{transform:none;opacity:1}}
.L-bellows{transform-origin:0 50%;animation:squeeze 1.5s ease-in-out infinite}
.L-handle{animation:pull 1.5s ease-in-out infinite}
@keyframes squeeze{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.88)}}
@keyframes pull{0%,100%{transform:translateX(0)}50%{transform:translateX(-20.8%)}}
.L-head{transform-origin:50% 92%;animation:nod 1.5s ease-in-out infinite}
@keyframes nod{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg) translateY(1.5%)}}
.L-foot{transform-origin:18% 88%;animation:tap .75s ease-in-out infinite}
@keyframes tap{0%,100%{transform:rotate(0)}50%{transform:rotate(-7deg)}}
.notes{position:absolute;left:78%;top:24%;width:20%;height:30%;pointer-events:none}
.notes b{position:absolute;bottom:0;font-family:var(--disp);color:var(--b);font-size:clamp(18px,2.4vw,34px);opacity:0;animation:note 3s linear infinite}
.notes b:nth-child(2){left:40%;color:var(--r);animation-delay:1s}
.notes b:nth-child(3){left:75%;animation-delay:2s}
@keyframes note{0%{transform:translate(0,0);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translate(30px,-170px);opacity:0}}

.girl{position:absolute;right:0;bottom:0;z-index:1;width:min(31vw,470px,calc(66svh * .78));animation:slideL 1s 1.6s cubic-bezier(.2,.9,.3,1.1) backwards}
.girl>img{width:100%;height:auto;animation:sway 4s 2.6s ease-in-out infinite}
@keyframes slideL{from{transform:translateX(110%)}to{transform:none}}
@keyframes sway{0%,100%{transform:none}50%{transform:translateY(-1.2%)}}
.burst{position:absolute;left:0;top:45%;width:51%;aspect-ratio:1;animation:stamp .5s 2.4s cubic-bezier(.3,1.8,.5,1) backwards}
.burst>div{width:100%;height:100%;animation:wob 2.4s 3s ease-in-out infinite}
.burst svg{width:100%;height:100%}
@keyframes stamp{from{transform:scale(2.4);opacity:0}to{transform:none;opacity:1}}
@keyframes wob{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(6deg) scale(1.06)}}
.cheers{position:absolute;left:22%;top:6%;font-family:var(--disp);color:var(--r);font-size:clamp(20px,2.4vw,34px);opacity:0;animation:cheer 4s 3s ease-in-out infinite}
@keyframes cheer{0%,60%,100%{opacity:0;transform:translateY(10px)}68%,88%{opacity:1;transform:none}}
@keyframes fadeU{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeD{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

/* ── 흐르는 띠 ── */
.band{background:var(--c);border-top:var(--line);border-bottom:var(--line);overflow:hidden;padding:14px 0;position:relative;z-index:2}
.band .row{display:flex;width:max-content;animation:marq 32s linear infinite}
.band .row span{font-family:var(--disp);font-size:clamp(26px,3.6vw,46px);padding-right:36px;white-space:nowrap;color:var(--b)}
.band .row span em{font-style:normal;color:var(--r)}
.band.alt{background:var(--b)}.band.alt .row{animation-direction:reverse;animation-duration:40s}
.band.alt .row span{color:var(--y);font-size:clamp(18px,2.2vw,26px)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ── 숫자 띠 ── */
.facts{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:var(--line);background:var(--paper)}
.facts div{padding:22px 10px;text-align:center;border-right:var(--line)}
.facts div:last-child{border-right:0}
.facts b{display:block;font-family:var(--disp);font-size:clamp(28px,3.4vw,44px);color:var(--b);line-height:1.1}
.facts span{font-weight:700;font-size:14px}

/* ── 섹션 공통 ── */
.sec{padding:clamp(70px,10vw,130px) 0;position:relative}
.sec.cream{background:var(--c)}
.sec.paper{background:var(--paper)}
.sec.blue{background:var(--b);color:#fff}
.eyebrow{display:inline-block;font-family:var(--disp);font-size:14px;letter-spacing:.14em;color:#fff;background:var(--r);padding:4px 12px;border-radius:999px;border:var(--line)}
.h2{font-family:var(--head);letter-spacing:-.005em;font-size:clamp(34px,5.2vw,68px);line-height:1.12;margin:16px 0 18px;color:var(--b)}
.sec.blue .h2{color:var(--y)}
.h2 em{font-style:normal;color:var(--r)}
.lead{font-size:clamp(17px,1.5vw,20px);max-width:720px}
.rv{opacity:0;transform:translateY(30px);transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1)}
.rv.on{opacity:1;transform:none}

/* ── 도로 → 야장 (고정 스크롤 장면) ── */
.road{height:340vh;position:relative;background:var(--ink)}
.road .stick{position:sticky;top:0;height:100svh;overflow:hidden}
.road canvas{position:absolute;inset:0;width:100%;height:100%}
.road .panel{position:absolute;left:var(--mx);bottom:6vh;width:min(420px,calc(100% - 2*var(--mx)));background:var(--paper);border:var(--line);border-radius:16px;box-shadow:var(--sh);padding:20px 22px}
.road .clock{font-family:var(--disp);font-size:44px;color:var(--r);line-height:1}
.road ol{list-style:none;margin-top:12px}
.road li{padding:8px 0 8px 14px;border-left:4px solid var(--c2);opacity:.38;transition:opacity .3s,border-color .3s}
.road li.on{opacity:1;border-color:var(--r)}
.road li b{display:block;font-size:17px}
.road li span{font-size:14.5px;display:none}
.road li.on span{display:block}
.road .bar{position:absolute;left:0;right:0;top:0;height:6px;background:rgba(255,255,255,.15)}
.road .bar i{display:block;height:100%;width:100%;background:var(--y);transform:translateX(-100%)}
.road .title{position:absolute;right:var(--mx);top:90px;text-align:right;color:#fff;font-family:var(--disp);font-size:clamp(26px,3.6vw,52px);line-height:1.15;text-shadow:3px 3px 0 var(--ink)}

/* ── 40의 흐름 ── */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.card{background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--sh);padding:24px}
.flow .card .n{font-family:var(--disp);font-size:56px;line-height:1;color:var(--y2);-webkit-text-stroke:2px var(--ink)}
.flow .card small{display:block;font-family:var(--disp);letter-spacing:.14em;color:var(--r);margin-top:8px}
.flow .card h3{font-family:var(--disp);font-size:26px;color:var(--b);margin:4px 0 8px;font-weight:400}
.steps40{display:flex;align-items:flex-end;gap:3px;height:120px;margin-top:46px}
.steps40 i{flex:1;background:var(--ink);opacity:.15;border-radius:2px 2px 0 0;transition:opacity .25s,background .25s}
.steps40 i.on{opacity:1;background:var(--b)}
.steps40 i.on:nth-child(10n){background:var(--r)}
.count40{font-family:var(--disp);font-size:clamp(60px,10vw,140px);color:var(--b);line-height:1;-webkit-text-stroke:3px var(--ink);text-align:right}

/* ── 먹거리 ── */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 24px}
.chip{font-weight:800;padding:9px 16px;border:var(--line);border-radius:999px;background:var(--paper);box-shadow:3px 3px 0 var(--ink)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--y)}
.vendors{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.v{position:relative;display:flex;gap:14px;align-items:flex-start;background:var(--paper);border:var(--line);border-radius:16px;box-shadow:5px 5px 0 var(--ink);padding:18px;transition:transform .2s}
.v:hover{transform:translate(-2px,-3px)}
.v .ic{flex:0 0 58px;height:58px;border-radius:50%;background:var(--y);border:var(--line);display:grid;place-items:center}
.v .ic svg{width:34px;height:34px}
.v h3{font-size:18px;font-weight:900;line-height:1.3}
.v .menu{font-family:var(--disp);color:var(--b);font-size:18px;line-height:1.35;margin:4px 0}
.v p{font-size:14px;color:#4a4334}
.v .bd{position:absolute;right:-8px;top:-12px;background:var(--r);color:#fff;font-weight:800;font-size:12.5px;padding:3px 10px;border-radius:999px;border:2px solid var(--ink);transform:rotate(4deg)}
.v.hide{display:none}
.vnote{margin-top:18px;font-size:14px;color:#5a5140}

/* ── 프로그램 ── */
.progs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.prog{background:var(--paper);color:var(--ink);border:var(--line);border-radius:18px;box-shadow:6px 6px 0 #0b1a45;padding:24px;position:relative;overflow:hidden}
.prog .tag{font-family:var(--disp);font-size:13px;letter-spacing:.16em;color:var(--r)}
.prog h3{font-family:var(--disp);font-weight:400;font-size:26px;color:var(--b);margin:6px 0 8px}
.lp{position:absolute;right:-26px;bottom:-26px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,var(--r) 0 14%,var(--ink) 15% 17%,#2a2a2a 18% 100%);
  box-shadow:inset 0 0 0 6px #222,inset 0 0 0 14px #333,inset 0 0 0 22px #222;animation:spin 3s linear infinite;opacity:.9}

/* ── 이용 방법 ── */
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px;counter-reset:h}
.how .card{counter-increment:h}
.how .card:before{content:counter(h,decimal-leading-zero);font-family:var(--disp);font-size:40px;color:var(--r);display:block;line-height:1}
.how h3{font-size:20px;margin:8px 0 4px}

/* ── 오시는 길 ── */
.dir{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;margin-top:36px;align-items:stretch}
.ticket{background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--sh);padding:28px;position:relative}
.ticket dl{display:grid;grid-template-columns:92px 1fr;gap:12px 14px}
.ticket dt{font-weight:900;color:var(--r)}
.ticket dd{font-weight:700}
.mapcard{background:var(--b);color:#fff;border:var(--line);border-radius:18px;box-shadow:var(--sh);padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.mapcard .big{font-family:var(--disp);font-size:clamp(34px,4vw,54px);line-height:1.1;color:var(--y)}

/* ── 보도 ── */
.press{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:36px}
.pr{display:block;background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--sh);padding:24px;transition:transform .2s}
.pr:hover{transform:translate(-2px,-3px)}
.pr .m{font-weight:900;color:var(--r)}
.pr h3{font-size:20px;line-height:1.4;margin:8px 0}
.pr.main{grid-row:span 2;background:var(--y3)}
.pr.main h3{font-family:var(--disp);font-weight:400;font-size:clamp(24px,2.6vw,34px);color:var(--b)}
.pr .go{display:inline-block;margin-top:10px;font-weight:800;border-bottom:2px solid}

/* ── FAQ ── */
.faq{margin-top:30px;display:grid;gap:12px}
.faq details{background:var(--paper);border:var(--line);border-radius:14px;box-shadow:4px 4px 0 var(--ink)}
.faq summary{cursor:pointer;list-style:none;padding:18px 52px 18px 20px;font-weight:900;font-size:17px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:18px;top:12px;font-family:var(--disp);font-size:28px;color:var(--r)}
.faq details[open] summary:after{content:"−"}
.faq details p{padding:0 20px 18px}

/* ── 서브페이지 ── */
.sub-hero{position:relative;padding:120px 0 70px;overflow:hidden;border-bottom:var(--line);background:radial-gradient(ellipse at 80% 60%,var(--y3),var(--y) 60%)}
.sub-hero .en{font-family:var(--disp);letter-spacing:.2em;color:var(--r)}
.sub-hero h1{font-family:var(--head);font-weight:400;font-size:clamp(40px,6.4vw,84px);line-height:1.1;color:var(--b);margin:12px 0 18px;white-space:pre-line;animation:fadeU .8s .1s both}
.sub-hero .lead{animation:fadeU .8s .3s both}
.sub-hero .mini{position:absolute;right:max(var(--mx),calc((100vw - 1180px)/2));bottom:-6px;width:min(30vw,300px);opacity:.98}
.sub-hero .mini .stage{width:100%}
.crumb{font-size:14px;font-weight:700;margin-bottom:10px}
.crumb a{border-bottom:1.5px solid}
.article{max-width:820px}
.article h2{font-family:var(--head);font-weight:400;font-size:clamp(28px,3.4vw,40px);color:var(--b);margin:56px 0 14px}
.article h2:first-child{margin-top:0}
.article p{font-size:17.5px;margin-bottom:14px}
.infobox{margin-top:50px;background:var(--b);color:#fff;border:var(--line);border-radius:18px;box-shadow:var(--sh);padding:26px}
.infobox dl{display:grid;grid-template-columns:96px 1fr;gap:10px 14px}
.infobox dt{color:var(--y);font-weight:900}
.related{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:24px}
.related a{background:var(--paper);border:var(--line);border-radius:12px;box-shadow:3px 3px 0 var(--ink);padding:14px 16px;font-weight:800}
.related a small{display:block;font-weight:600;color:var(--r)}

/* ── 푸터 ── */
.foot{background:var(--ink);color:#d8d0bd;padding:56px 0 120px;font-size:14.5px}
.foot .logo{font-family:var(--disp);font-size:34px;color:var(--y)}
.foot .org{display:flex;flex-wrap:wrap;gap:8px 22px;margin:16px 0}
.foot .org b{color:#fff}
.foot a{border-bottom:1px solid #777}

/* ── 모바일 하단 2버튼 ── */
.mbar{display:none}

/* ── 인트로 영상 ── */
.intro{position:fixed;inset:0;z-index:100;background:var(--y);display:grid;place-items:center;transition:opacity .6s}
.intro video{width:100%;height:100%;object-fit:contain}
.intro.out{opacity:0;pointer-events:none}
.intro-on .hero *{animation-play-state:paused!important}
.intro .skip{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));font-weight:900;padding:10px 16px;border:var(--line);border-radius:999px;background:var(--paper);box-shadow:3px 3px 0 var(--ink)}
.intro .snd{position:absolute;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));font-weight:900;padding:10px 16px;border:var(--line);border-radius:999px;background:var(--ink);color:var(--y)}

@media (max-width:1100px){
  .top nav{display:none}
  .burger{display:block}
  .mnav{position:fixed;inset:60px 0 auto 0;z-index:49;background:var(--paper);border-bottom:var(--line);padding:10px var(--mx) 18px;flex-direction:column}
  .mnav.open{display:flex}
  .mnav a{padding:13px 4px;font-weight:800;font-size:18px;border-bottom:1.5px dashed var(--c2)}
  .flow{grid-template-columns:repeat(2,1fr)}
  .progs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .top{height:56px}.mnav{top:56px}
  .top .brand{font-size:20px}
  .hero{padding-top:66px}
  .hero-in{display:flex;flex-direction:column;align-items:center;min-height:calc(100svh - 66px);gap:0}
  .tagline{position:relative;top:0;font-size:clamp(14px,4.3vw,19px);margin-top:4px}
  .stage-wrap{position:relative;padding-top:10px;order:1;width:100%;display:flex;justify-content:center}
  .hero-info{order:2}
  .stage{width:min(84vw,calc((100svh - 300px) * .864))}
  .hero-info{padding:4px 0 26px;align-self:flex-start;width:100%;animation-delay:.9s}
  .hanja{font-size:30px}
  .hero-info .when{font-size:19px;margin-top:6px}
  .hero-info .free{margin-top:8px}
  .cta{margin-top:14px}.cta .btn{padding:11px 15px;font-size:15px}
  .girl{right:calc(var(--mx) * -1);bottom:-4px;width:min(42vw,210px)}
  .facts{grid-template-columns:repeat(3,1fr)}
  .facts div:nth-child(3){border-right:0}
  .facts div:nth-child(n+4){border-top:var(--line)}
  .facts div:nth-child(5){grid-column:span 2;border-right:0}
  .road{height:300vh}
  .road .title{top:76px;left:var(--mx);right:var(--mx);text-align:left}
  .road .panel{bottom:calc(84px + env(safe-area-inset-bottom));padding:16px 18px}
  .road .clock{font-size:30px}
  .road ol{margin-top:4px}.road li:not(.on){display:none}
  .flow,.progs,.how,.dir,.press{grid-template-columns:1fr}
  .pr.main{grid-row:auto}
  .steps40{height:80px;gap:2px}
  .sub-hero{padding:96px 0 200px}
  .sub-hero .mini{width:46vw;right:16px}
  .mbar{display:grid;grid-template-columns:1fr .8fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--y);border-top:var(--line)}
  .mbar a{text-align:center;font-weight:900;padding:12px 6px;border:var(--line);border-radius:12px;background:var(--paper);box-shadow:3px 3px 0 var(--ink)}
  .mbar a.b{background:var(--b);color:#fff}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}
  .rv{opacity:1;transform:none}
}
