@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/bc-500.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/bc-600.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/bc-700.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/b-400.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/b-500.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/b-600.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:400;font-style:italic;font-display:swap;src:url(fonts/b-400i.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/rc-cyr-500.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/rc-cyr-600.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/rc-cyr-700.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/r-cyr-400.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/r-cyr-500.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/r-cyr-500.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow";font-weight:400;font-style:italic;font-display:swap;src:url(fonts/r-cyr-400i.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:local("Hiragino Sans W3"),local("HiraginoSans-W3"),local("Hiragino Kaku Gothic ProN W3"),local("HiraKakuProN-W3"),local("Yu Gothic Medium"),local("YuGothic-Medium"),local("Meiryo"),local("Noto Sans JP"),local("NotoSansJP-Regular");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:local("Hiragino Sans W6"),local("HiraginoSans-W6"),local("Hiragino Kaku Gothic ProN W6"),local("HiraKakuProN-W6"),local("Yu Gothic Bold"),local("YuGothic-Bold"),local("Meiryo Bold"),local("Noto Sans JP Bold"),local("NotoSansJP-Bold");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:local("Hiragino Sans W6"),local("HiraginoSans-W6"),local("Hiragino Kaku Gothic ProN W6"),local("HiraKakuProN-W6"),local("Yu Gothic Bold"),local("YuGothic-Bold"),local("Meiryo Bold"),local("Noto Sans JP Bold"),local("NotoSansJP-Bold");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:local("Hiragino Sans W3"),local("HiraginoSans-W3"),local("Hiragino Kaku Gothic ProN W3"),local("HiraKakuProN-W3"),local("Yu Gothic Medium"),local("YuGothic-Medium"),local("Meiryo"),local("Noto Sans JP"),local("NotoSansJP-Regular");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:local("Hiragino Sans W3"),local("HiraginoSans-W3"),local("Hiragino Kaku Gothic ProN W3"),local("HiraKakuProN-W3"),local("Yu Gothic Medium"),local("YuGothic-Medium"),local("Meiryo"),local("Noto Sans JP"),local("NotoSansJP-Regular");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:local("Hiragino Sans W6"),local("HiraginoSans-W6"),local("Hiragino Kaku Gothic ProN W6"),local("HiraKakuProN-W6"),local("Yu Gothic Bold"),local("YuGothic-Bold"),local("Meiryo Bold"),local("Noto Sans JP Bold"),local("NotoSansJP-Bold");unicode-range:U+3000-30FF,U+3400-4DBF,U+4E00-9FFF,U+FF00-FFEF}
:root{
  --ink:#141414; --ink2:#1d1d1d; --paper:#F6F4F0; --card:#ffffff; --line:#e3dfd8;
  --red:#CF2E21; --gold:#F2BE1A; --text:#1a1a1a; --muted:#5d5a55;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:17px/1.6 "Barlow",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--red)}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.bc{font-family:"Barlow Condensed",sans-serif}

/* nav */
header.nav{position:sticky;top:0;z-index:10;background:rgba(20,20,20,.96);backdrop-filter:blur(6px);border-bottom:1px solid #2a2a2a}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:"Barlow Condensed";font-weight:700;letter-spacing:1.5px;font-size:17px;line-height:1}
.brand img{width:34px;height:auto}
.brand small{display:block;font-size:11px;letter-spacing:2.5px;color:var(--gold);font-weight:600;margin-top:2px}
nav.links{display:flex;gap:22px}
nav.links a{color:#ddd;text-decoration:none;font-family:"Barlow Condensed";font-weight:600;letter-spacing:1.5px;font-size:15px;text-transform:uppercase}
nav.links a:hover,nav.links a.on{color:#fff;box-shadow:inset 0 -2px 0 var(--red)}
@media (max-width:640px){nav.links{gap:14px}nav.links a{font-size:13px;letter-spacing:1px}.brand span.t{display:none}}

/* hero */
.hero{background:var(--ink);color:#fff;padding:70px 0 80px;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero img.lion{width:100%;max-width:470px;margin-left:auto}
.lockup{font-family:"Barlow Condensed";font-weight:700;line-height:.9;letter-spacing:1px;margin:0}
.lockup .l1{display:block;font-size:clamp(46px,8vw,92px);color:#fff}
.lockup .l2{display:block;font-size:clamp(30px,5.2vw,60px);color:var(--red);letter-spacing:3px;margin-top:6px}
.lockup sup{font-size:.35em;vertical-align:top;position:relative;top:.3em;color:#fff;letter-spacing:0}
.defn{font-size:clamp(18px,2.1vw,22px);line-height:1.5;color:#e9e6e0;margin:26px 0 0;max-width:560px;border-left:3px solid var(--gold);padding-left:16px}
.ranges{margin-top:26px;font-family:"Barlow Condensed";font-weight:600;letter-spacing:4px;color:var(--gold);font-size:16px}
.ranges span{color:#666;margin:0 8px}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.btn{display:inline-block;padding:12px 22px;font-family:"Barlow Condensed";font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;font-size:15px;border:2px solid var(--red);background:var(--red);color:#fff}
.btn.ghost{background:transparent;border-color:#555;color:#fff}
.btn.soon{background:transparent;border-color:#bbb;color:var(--muted);cursor:default}
.dark .btn.soon{border-color:#555;color:#aaa}
.btn.dark{background:var(--ink);border-color:var(--ink)}
.btn:hover{filter:brightness(1.08)}
@media (max-width:820px){.hero{padding:44px 0 56px}.hero .wrap{grid-template-columns:1fr}.hero img.lion{max-width:300px;margin:0 auto;order:-1}}

/* sections */
section{padding:72px 0}
section.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
section.dark{background:var(--ink);color:#eee}
.kicker{font-family:"Barlow Condensed";font-weight:700;letter-spacing:3px;color:var(--red);font-size:14px;text-transform:uppercase;margin:0 0 6px}
h2{font-family:"Barlow Condensed";font-weight:700;font-size:clamp(32px,4.4vw,46px);line-height:1.05;margin:0 0 18px;letter-spacing:.5px}
h3{font-family:"Barlow Condensed";font-weight:700;font-size:24px;letter-spacing:.5px;margin:0 0 6px}
.lead{font-size:19px;color:var(--muted);max-width:720px}
.dark .lead{color:#bbb}
.grid{display:grid;gap:20px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
@media (max-width:820px){.g3,.g2{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);padding:26px;border-top:4px solid var(--red)}
.card p{margin:6px 0 0;color:var(--muted)}
.card .tag{font-family:"Barlow Condensed";font-weight:700;letter-spacing:2px;font-size:13px;color:var(--muted);text-transform:uppercase}
.dark .card{background:var(--ink2);border-color:#2c2c2c;border-top-color:var(--red)}
.dark .card p{color:#b5b5b5}
.code{display:grid;gap:10px;margin-top:24px}
.code p{margin:0;font-family:"Barlow Condensed";font-size:24px;font-weight:600;letter-spacing:.5px}
.code p::before{content:"";display:inline-block;width:18px;height:3px;background:var(--red);vertical-align:middle;margin-right:14px}
blockquote{margin:28px 0 0;font-size:20px;font-style:italic;color:inherit;opacity:.9}
blockquote cite{display:block;font-style:normal;font-size:14px;opacity:.7;margin-top:6px}

.city{background:var(--ink2);color:#fff;padding:26px;border:1px solid #2c2c2c}
.city .n{font-family:"Barlow Condensed";font-weight:700;font-size:30px;letter-spacing:1px}
.city .c{color:#aaa;font-size:15px}
.city .s{margin-top:14px;font-family:"Barlow Condensed";font-weight:700;letter-spacing:2.5px;color:var(--gold);font-size:14px}

/* lineage */
.lineage{display:grid;gap:18px}
.teacher{background:#fff;border:1px solid var(--line);padding:24px 26px}
.teacher h3 small{display:block;font-family:"Barlow";font-weight:500;font-size:15px;color:var(--muted);letter-spacing:0;margin-top:2px}
.teacher ul{margin:12px 0 0;padding:0;list-style:none}
.teacher li{padding:8px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}
.teacher li span.d{color:var(--muted);white-space:nowrap;font-size:15px}
@media (max-width:560px){.teacher li{flex-direction:column;gap:0}}
.coachhead{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.coachhead img{width:120px}
@media (max-width:560px){.coachhead{grid-template-columns:1fr}}

/* rules page */
.banner{background:#fff6dc;border:1px solid #f0d98a;padding:14px 18px;margin:0 0 30px;font-size:16px}
.banner b{color:#8a5a00}
.doc{max-width:820px}
.doc h2{margin-top:56px;padding-top:10px;border-top:3px solid var(--ink)}
.doc h2:first-child{margin-top:0}
.doc h3{margin-top:28px}
.doc table{width:100%;border-collapse:collapse;margin:14px 0;font-size:15.5px;background:#fff}
.doc th,.doc td{border:1px solid var(--line);padding:9px 11px;text-align:left;vertical-align:top}
.doc th{background:var(--ink);color:#fff;font-family:"Barlow Condensed";letter-spacing:1px;font-size:16px;font-weight:600}
.doc td:first-child{font-weight:600}
.doc .tbl{overflow-x:auto}
.doc .defn{color:var(--text);border-left-color:var(--red);font-size:20px;margin:18px 0}
.doc .ranges{color:var(--red)}
.doc .code p{font-size:21px}
.doc ul.check{list-style:none;padding:0}
.doc ul.check li::before{content:"✓";color:var(--red);font-weight:700;margin-right:10px}
.ur{display:inline-block;background:var(--gold);color:var(--ink);font-family:"Barlow Condensed";font-weight:700;font-size:12px;letter-spacing:1.5px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.toc{columns:2;gap:30px;padding:0;list-style:none;font-family:"Barlow Condensed";font-size:19px;font-weight:600}
.toc a{color:var(--text);text-decoration:none}
.toc a:hover{color:var(--red)}
@media (max-width:560px){.toc{columns:1}}

/* footer */
footer{background:var(--ink);color:#999;padding:40px 0;font-size:14px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
footer .tm{font-family:"Barlow Condensed";color:#fff;letter-spacing:2px;font-weight:700;font-size:16px}
footer a{color:#ccc}
.doc .teacher h3,.teacher h3{margin-top:0}
/* v2 additions */
a.card.link{text-decoration:none;color:inherit;display:block;transition:transform .15s}
a.card.link:hover{transform:translateY(-2px);border-top-color:var(--gold)}
.coach{margin-bottom:56px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.coach:last-of-type{border-bottom:0}
.chead{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;margin-bottom:22px}
.cphoto{width:120px;height:120px;object-fit:cover;border-radius:50%;background:var(--ink)}
.cphoto.logo{object-fit:contain;padding:14px}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pill{font-family:"Barlow Condensed";font-weight:600;letter-spacing:1px;font-size:14px;background:var(--ink);color:#fff;padding:3px 10px}
@media (max-width:560px){.chead{grid-template-columns:1fr}}
.video{position:relative;aspect-ratio:16/9;background:var(--ink)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video.empty{display:flex;align-items:center;justify-content:center;text-align:center;color:#aaa;font-family:"Barlow Condensed";letter-spacing:1.5px;border:1px solid #2c2c2c}
.video.empty b{color:#fff;font-size:22px}
.article p,.article li{font-size:18px}
.article h3{font-size:26px;margin-top:34px}
.byline{color:var(--muted);font-family:"Barlow Condensed";letter-spacing:1.5px;text-transform:uppercase;font-weight:600}
@media (max-width:700px){header.nav .wrap{gap:10px}nav.links{overflow-x:auto;white-space:nowrap;scrollbar-width:none;gap:14px}nav.links::-webkit-scrollbar{display:none}}
.doc .coach h2{border-top:0;padding-top:0;margin-top:0}
.creds li{font-size:17px;margin:8px 0}
/* v3: phone menu, safety */
.mnav{display:none}
.burger{display:none;cursor:pointer;padding:10px;margin-right:-10px}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}
footer .safety{flex-basis:100%;font-size:13px;color:#777;border-top:1px solid #2a2a2a;padding-top:16px;margin-top:6px}
.doc ol li{margin:6px 0}
@media (max-width:900px){
 .burger{display:block}
 header.nav .wrap{position:relative}
 nav.links{display:none!important;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:#141414;border-bottom:1px solid #2a2a2a;padding:6px 20px 14px;overflow:visible;white-space:normal}
 nav.links a{padding:12px 0;font-size:17px;letter-spacing:2px;border-top:1px solid #222}
 nav.links a:hover,nav.links a.on{box-shadow:none;color:var(--gold)}
 .mnav:checked ~ nav.links{display:flex!important}
 .brand span.t{display:block}
}
.approach{margin:26px 0 8px;background:var(--ink);color:#eee;padding:24px 28px;border-left:4px solid var(--red);max-width:760px}
.approach p:last-child{margin:0;font-size:19px;line-height:1.6}
.approach .kicker{color:var(--gold)}
h3.grouph{font-size:22px;margin:30px 0 0}
h3.grouph span{font-family:"Barlow";font-weight:500;font-size:15px;color:var(--muted);margin-left:10px;letter-spacing:0}
.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.g4{grid-template-columns:1fr}}

/* animated hero logo */
.logoanim{position:relative;width:100%;max-width:470px;margin-left:auto;aspect-ratio:640/589;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.logoanim img{position:absolute;inset:0;width:100%;height:100%;display:block}
.logoanim .la-final{opacity:0}
.logoanim .la-enso,.logoanim .la-lion{opacity:0}
.logoanim.run .la-enso{opacity:1}
.logoanim.run .la-lion{opacity:0;transform-origin:30% 85%}
.logoanim.leap .la-lion{animation:la-leap .62s cubic-bezier(.2,.9,.25,1.25) forwards}
.logoanim.roaring .la-final{animation:la-roar .6s ease-out}
.logoanim.done .la-final{opacity:1}
.logoanim.done .la-enso,.logoanim.done .la-lion{opacity:0}
@keyframes la-leap{0%{opacity:0;transform:translate(-30%,34%) scale(.55) rotate(-14deg)}35%{opacity:1}100%{opacity:1;transform:none}}
@keyframes la-roar{0%{transform:none}20%{transform:translate(1.2%,-.8%) scale(1.035)}40%{transform:translate(-.8%,.5%) scale(1.02)}60%{transform:translate(.6%,-.4%) scale(1.03)}100%{transform:none}}
.la-hint{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);font-family:"Barlow Condensed";letter-spacing:2px;font-size:13px;color:var(--gold);opacity:.75;white-space:nowrap;text-transform:uppercase;transition:opacity .4s}
.logoanim.heard .la-hint{opacity:0}
.logoanim:focus-visible{outline:2px solid var(--gold);outline-offset:6px;border-radius:50%}
@media (max-width:820px){.logoanim{max-width:300px;margin:0 auto 24px;order:-1}}
@media (prefers-reduced-motion:reduce){.logoanim .la-final{opacity:1}.logoanim .la-enso,.logoanim .la-lion{display:none}}

/* sound switch + kung fu yell hit effect */
.sndtoggle{position:fixed;right:16px;bottom:16px;z-index:50;width:44px;height:44px;border-radius:50%;border:1px solid #444;background:#161616;color:#fff;font-size:18px;line-height:1;cursor:pointer;opacity:.85;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.sndtoggle[aria-pressed=false]{opacity:.55}
.kiai-card{cursor:pointer}
.kiai-hit{animation:kiaihit .34s ease-out}
@keyframes kiaihit{0%{transform:scale(1)}25%{transform:scale(.95)}55%{transform:scale(1.04)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.kiai-hit{animation:none}}

/* umbrella class cards */
.card.umb ul.classes{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.card.umb ul.classes li{font-family:"Barlow Condensed";font-weight:600;letter-spacing:.5px;font-size:15px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#faf9f6;color:#222}
.card.umb ul.classes li.soon{color:#888;border-style:dashed;background:transparent}
.card.umb ul.classes li.soon span{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--red);margin-left:4px}
/* training log */
.muted-note{color:var(--muted);font-size:15px;margin:0 0 22px}
.tl-day{border:1px solid #e3ded6;border-left:4px solid var(--red);background:#fff;padding:18px 20px;margin:0 0 18px}
.tl-day header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.tl-day h3{margin:0;font-size:20px}
.tl-n{font-family:"Barlow Condensed";font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--red);font-size:15px}
.tl-arts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.tl-art{background:#141414;color:#fff;font-family:"Barlow Condensed";letter-spacing:1px;font-size:14px;padding:4px 10px}
.tl-art b{color:var(--gold);margin-left:4px}
.tl-who{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px}
.tl-who li span{color:var(--muted);font-size:14px}
.tl-who li.anon{color:var(--muted)}
.tl-ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:14px}
.tl-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
/* training log admin */
.adm{margin-top:40px;border-top:1px solid #e3ded6;padding-top:14px}
.adm-open{background:none;border:0;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline;padding:0}
.adm-box{margin-top:12px;background:#fff;border:1px solid #e3ded6;padding:16px}
.adm-box h3{margin:0 0 10px}.adm-box h4{margin:18px 0 8px}
.adm-box form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.adm-box input{flex:1;min-width:180px;padding:10px;border:1px solid #ccc;font-size:16px}
.adm-msg{font-size:14px;color:#2e7d32;min-height:1em}.adm-msg.bad{color:var(--red)}
.adm-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eee;font-size:14px;flex-wrap:wrap}
.adm-row span{flex:1;min-width:180px}.adm-row.hid{opacity:.55}
.adm-row img{width:64px;height:48px;object-fit:cover}
.adm-row button{border:0;background:var(--red);color:#fff;font-weight:700;padding:6px 12px;cursor:pointer}
.adm-row button.del{background:#fff;color:var(--red);border:2px solid var(--red)}
.adm-box form[hidden]{display:none}
.logoanim{cursor:default}
/* program pages */
a.card.umb{display:block;text-decoration:none;color:inherit;cursor:pointer}
a.card.umb .more{display:inline-block;margin-top:14px;font-family:"Barlow Condensed";font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--red);font-size:14px}
a.card.umb:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.card.sys{cursor:pointer;border-top:3px solid var(--red)}
.card.sys.soon{border-top-color:#bbb}
.card.sys h3 .tagsoon{display:inline-block;margin-left:8px;font-family:"Barlow Condensed";font-size:12px;letter-spacing:1.5px;text-transform:uppercase;background:#eee;color:#666;padding:2px 8px;vertical-align:middle}
/* intro: one elegant button; the lion appears when tapped */
.intro{position:fixed;inset:0;z-index:1000;background:#0d0d0d;display:flex;align-items:center;justify-content:center;text-align:center;transition:opacity .7s ease}
.intro.out{opacity:0}
.intro-in{position:relative;width:min(78vw,380px);aspect-ratio:640/589;display:flex;align-items:center;justify-content:center}
.intro .intro-logo{position:absolute;inset:0;max-width:none;margin:0;cursor:default}
.intro-ctl{position:relative;display:flex;flex-direction:column;align-items:center;transition:opacity .35s ease,transform .35s ease}
.intro-ctl.gone{opacity:0;transform:scale(.92);pointer-events:none}
.intro-go{position:relative;width:132px;height:132px;border-radius:50%;border:1px solid rgba(242,190,26,.75);background:transparent;color:#f3efe6;font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:16px;letter-spacing:5px;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.intro-go span{padding-left:5px}
.intro-go::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(242,190,26,.55);animation:intro-pulse 2.4s ease-out infinite}
.intro-go:hover,.intro-go:focus-visible{background:rgba(242,190,26,.1);border-color:var(--gold);color:#fff;outline:none}
@keyframes intro-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.45);opacity:0}}
.intro-quiet{margin-top:26px;background:none;border:0;color:#6f6a62;font-size:12px;letter-spacing:1.5px;cursor:pointer;font-family:inherit}
.intro-quiet:hover{color:#aaa}
html.intro-open,html.intro-open body{overflow:hidden}
@media (prefers-reduced-motion:reduce){.intro-go::after{animation:none}}
.intro[hidden]{display:none!important}
.intro.out{pointer-events:none}
/* QR codes page */
.qrcard{background:#fff;border:1px solid #e3ded6;border-top:4px solid var(--red);padding:22px;text-align:center}
.qrcard h3{margin:0 0 4px}.qrcard p{margin:0 0 14px;color:var(--muted)}
.qrimg{max-width:340px;margin:0 auto;background:#fff}.qrimg img,.qrimg svg{display:block;width:100%;height:auto}
.qrmain .qrimg{max-width:420px}
.qrcard .btns{justify-content:center;margin-top:18px}
button.btn{cursor:pointer}
.qrlock{margin-top:44px}.qrlock h3{margin:0 0 6px}
.qrlock form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.qrlock form[hidden]{display:none}
.qrlock input{flex:1;min-width:180px;padding:12px;border:1px solid #ccc;font-size:16px}
.qrgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:10px}
.qrbig{position:fixed;inset:0;z-index:200;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:16px}
.qrbig[hidden]{display:none}
.qrbigin{text-align:center;width:min(86vw,78vh)}
.qrbigin h2{margin:0 0 12px;font-size:clamp(22px,4vw,36px)}
.qrbigin img,.qrbigin svg{display:block;width:100%;height:auto}
.qrbigin p{color:var(--muted);margin:12px 0 0}
.qrtoast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;z-index:210}
.qrtoast[hidden]{display:none}
/* language menu */
.lang{position:relative;margin-left:auto;margin-right:14px}
.lang-btn{display:flex;align-items:center;gap:7px;background:none;border:1px solid #3a3a3a;color:#ddd;padding:6px 9px;cursor:pointer;font-family:"Barlow Condensed";font-weight:600;letter-spacing:1.5px;font-size:14px}
.lang-btn:hover{border-color:var(--gold);color:#fff}
.flag{width:24px;height:16px;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.25);flex:none}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:#141414;border:1px solid #333;min-width:170px;padding:6px 0;z-index:30;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.lang-menu[hidden]{display:none}
.lang-menu a{display:flex;align-items:center;gap:10px;padding:10px 14px;color:#ddd;text-decoration:none;font-size:16px}
.lang-menu a:hover,.lang-menu a.on{background:#222;color:#fff}
.lang-menu a.on{box-shadow:inset 3px 0 0 var(--red)}
@media (min-width:901px){.lang{order:3;margin-left:20px;margin-right:0}nav.links{margin-left:auto}}
nav.links a{white-space:nowrap}
/* translated pages: compact menu, phone-style menu until the labels fit */
html:not([lang=en]) header.nav .wrap{max-width:1240px}
html:not([lang=en]) nav.links{gap:14px}
html:not([lang=en]) nav.links a{letter-spacing:.5px;font-size:14px}
@media (max-width:1179px){
html[lang=ja] .burger{display:block}
html[lang=ja] header.nav .wrap{position:relative}
html[lang=ja] nav.links{display:none!important;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:#141414;border-bottom:1px solid #2a2a2a;padding:6px 20px 14px;overflow:visible;white-space:normal}
html[lang=ja] nav.links a{padding:12px 0;font-size:17px;letter-spacing:2px;border-top:1px solid #222}
html[lang=ja] nav.links a:hover,html[lang=ja] nav.links a.on{box-shadow:none;color:var(--gold)}
html[lang=ja] .mnav:checked ~ nav.links{display:flex!important}
html[lang=ja] .brand span.t{display:block}
html[lang=ja] .lang{order:0;margin-left:auto;margin-right:14px}
}
@media (max-width:1279px){
html[lang=es] .burger{display:block}
html[lang=es] header.nav .wrap{position:relative}
html[lang=es] nav.links{display:none!important;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:#141414;border-bottom:1px solid #2a2a2a;padding:6px 20px 14px;overflow:visible;white-space:normal}
html[lang=es] nav.links a{padding:12px 0;font-size:17px;letter-spacing:2px;border-top:1px solid #222}
html[lang=es] nav.links a:hover,html[lang=es] nav.links a.on{box-shadow:none;color:var(--gold)}
html[lang=es] .mnav:checked ~ nav.links{display:flex!important}
html[lang=es] .brand span.t{display:block}
html[lang=es] .lang{order:0;margin-left:auto;margin-right:14px}
html[lang=ru] .burger{display:block}
html[lang=ru] header.nav .wrap{position:relative}
html[lang=ru] nav.links{display:none!important;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:#141414;border-bottom:1px solid #2a2a2a;padding:6px 20px 14px;overflow:visible;white-space:normal}
html[lang=ru] nav.links a{padding:12px 0;font-size:17px;letter-spacing:2px;border-top:1px solid #222}
html[lang=ru] nav.links a:hover,html[lang=ru] nav.links a.on{box-shadow:none;color:var(--gold)}
html[lang=ru] .mnav:checked ~ nav.links{display:flex!important}
html[lang=ru] .brand span.t{display:block}
html[lang=ru] .lang{order:0;margin-left:auto;margin-right:14px}
}
.brand{flex:none}
@media (min-width:901px) and (max-width:1100px){html[lang=en] nav.links{gap:13px}html[lang=en] nav.links a{letter-spacing:.8px;font-size:14px}html[lang=en] .lang{margin-left:14px}html[lang=en] .lang-btn span{display:none}}
/* secure admin login + article publishing */
.auth{display:grid;gap:12px;max-width:420px}
.auth label,.artform label{display:grid;gap:4px;font-size:14px;font-weight:600;color:var(--muted)}
.auth input,.artform input,.artform textarea{padding:11px;border:1px solid #ccc;font:inherit;font-size:16px;font-weight:400;color:var(--text);background:#fff}
.a-hc{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}
.a-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.a-img{display:inline-block;width:220px;height:70px;border:1px solid #ddd;background:#f4f1ea}
.a-img img{display:block}.a-img i{display:block;padding:24px;color:#999}
.a-new{background:none;border:0;color:var(--red);text-decoration:underline;cursor:pointer;font-size:14px;padding:0}
.a-code{max-width:220px;letter-spacing:6px;font-size:22px!important;text-align:center}
.a-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.auth .btn{justify-self:start}
.artform{display:grid;gap:14px;max-width:760px}
.artform textarea{resize:vertical;line-height:1.5}
.artform code,.muted-note code{background:#eee;padding:1px 5px;font-size:13px}
.artpreview{border:1px dashed #bbb;padding:18px;margin-top:18px;background:#fff}
.art-thumb{width:calc(100% + 0px);height:170px;object-fit:cover;display:block;margin:-6px 0 12px}
.art-cover{width:100%;max-height:520px;object-fit:cover;display:block;margin:10px 0 24px}
.adm-row a{color:var(--red);font-size:14px}
.qrauth{margin-top:12px}
.adm-box form.auth,.adm-box form.artform,.qrlock form.auth{display:grid;flex-wrap:nowrap;align-items:stretch}
.adm-box form.auth input,.adm-box form.artform input,.adm-box form.artform textarea,.qrlock form.auth input{flex:none;min-width:0;width:100%}
.adm-box form.auth .a-code,.qrlock form.auth .a-code{width:220px}
.adm-box form.artform input[type=file]{padding:8px;background:#fafafa}
#admchg input{margin-bottom:6px}
.phform{margin:22px 0 10px;padding:16px;background:#faf8f4;border:1px solid #eee}
.phform h4{margin:0}
.adm-box form.phform input[type=date]{max-width:220px}
/* events */
.evmap{height:440px;border:1px solid #e3ded6;background:#e9e6e0;position:relative;z-index:0;isolation:isolate}
@media (max-width:640px){.evmap{height:320px}}
.evmap .leaflet-tile-pane{filter:grayscale(.85) brightness(1.04)}
.evlegend{display:flex;flex-wrap:wrap;gap:14px;margin:12px 0 4px;font-size:14px;color:var(--muted)}
.evlegend span{display:flex;align-items:center;gap:6px}
.evlegend i{width:14px;height:14px;border-radius:50%;display:inline-block}
.evlegend i.o{border:3px dashed #CF2E21;background:#fff;width:10px;height:10px}
.evlegend i.g{border:3px solid #888;background:#fff;width:10px;height:10px}
.evfilters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px}
.evfilters button{border:2px solid var(--ink);background:#fff;padding:7px 14px;font-family:"Barlow Condensed";font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;font-size:14px}
.evfilters button.on{background:var(--ink);color:#fff}
.evh{margin-top:36px}
.evlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.ev-card{background:#fff;border:1px solid #e3ded6;border-top:4px solid var(--red);display:flex;flex-direction:column}
.ev-card.ev-past{opacity:.75;border-top-color:#999}
.ev-card.ev-hl{box-shadow:0 0 0 3px var(--gold)}
.ev-img{width:100%;height:180px;object-fit:cover;display:block}
.ev-body{padding:18px}
.ev-body h3{margin:10px 0 4px}
.ev-tags{display:flex;gap:6px;flex-wrap:wrap}
.ev-type{color:#fff;font-family:"Barlow Condensed";font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;padding:3px 9px}
.ev-st{font-family:"Barlow Condensed";font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;padding:2px 8px;border:2px solid var(--ink)}
.ev-st.ev-proposed{border-style:dashed;color:var(--muted);border-color:var(--muted)}
.ev-st.ev-confirmed{background:#2E7D32;border-color:#2E7D32;color:#fff}
.ev-st.ev-cancelled{background:#999;border-color:#999;color:#fff;text-decoration:line-through}
.ev-when{font-weight:600;margin:0}.ev-where{color:var(--muted);margin:2px 0 0}
.ev-desc{margin-top:10px;font-size:15px}.ev-desc p{margin:0 0 8px}
.ev-body .btn{margin-top:10px}
.evrow2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.evrow2{grid-template-columns:1fr}}
.artform select{padding:11px;border:1px solid #ccc;font:inherit;font-size:16px;background:#fff}
.artform label.chk{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text)}
.artform label.chk input{width:auto}
.adm-box form.artform label.chk input{width:auto}
a.city{text-decoration:none;display:block;transition:transform .15s}
a.city:hover{transform:translateY(-2px);border-color:var(--gold)}
/* home banner */
.hbanner{background:var(--gold);color:var(--ink)}
.hbanner .wrap{display:flex;align-items:center;gap:14px;padding:10px 20px;font-size:15px}
.hbanner #hbtext{flex:1}
.hbanner a{color:var(--ink);font-weight:700;white-space:nowrap}
.hbanner button{background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--ink);padding:0 4px}
.hbanner[hidden]{display:none}
/* intro v2: lion eyes in the darkness, lightning, then the logo */
#logoanim{cursor:pointer}
.intro{background:#050505}
.intro-eyes{display:block;width:min(84vw,380px);padding:24px 10px;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:0;animation:ie-in 2.4s ease-out .5s forwards}
.intro-eyes:focus,.intro-eyes:focus-visible{outline:none}
.intro-hint{margin:4px 0 0;color:#5f5a52;font-family:"Barlow Condensed",sans-serif;font-size:13px;letter-spacing:4px;text-transform:uppercase;opacity:0;animation:ie-in 1.2s ease-out 2.6s forwards}
@keyframes ie-in{to{opacity:1}}
.intro-ctl.gone .intro-eyes,.intro-ctl.gone .intro-hint{animation:none;opacity:0;transition:opacity .2s}
.credits{font-size:12px;color:#8a857c;margin-top:6px}.credits a{color:inherit}


.intro-eyes canvas{display:block;width:100%;aspect-ratio:2.4/1}
.intro-eyes{width:min(92vw,520px);padding:0;animation:ie-in 1s ease-out .2s forwards}
/* lightning canvas */
.fx-cv{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:1100}
/* Jun Fan JKD salute: red ink ensō; Freestyle JKD: the lion */
.salute-host{position:relative;isolation:isolate}
.enso-fx{position:absolute;top:50%;left:50%;height:104%;aspect-ratio:640/589;transform:translate(-50%,-50%);pointer-events:none;z-index:-1;opacity:.42;transition:opacity .9s ease}
.enso-fx img{width:100%;height:100%;display:block}
.enso-fx.out{opacity:0}
.roar-fx{position:absolute;inset:0;background:rgba(12,12,14,.86);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;animation:roar-veil 1.6s ease forwards}
.roar-fx img{height:92%;width:auto;animation:roar-pop 1.6s cubic-bezier(.2,.9,.25,1.2) forwards}
@keyframes roar-veil{0%{opacity:0}10%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes roar-pop{0%{transform:scale(.6) rotate(-6deg)}22%{transform:scale(1.06)}32%{transform:scale(1)}100%{transform:scale(1)}}
.card .cq{display:block;margin-top:10px;font-style:italic;color:#555}
/* five-element button effects (small, silent, inside the card) */
.el-fx{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.el-fire{background:linear-gradient(to top,rgba(232,96,28,.28),rgba(242,190,26,.08) 45%,transparent 75%);animation:el-fade .8s ease-out forwards}
.el-fire i{position:absolute;bottom:-6px;width:5px;height:5px;border-radius:50%;background:#f39a2b;box-shadow:0 0 6px #f2be1a;animation:el-ember .75s ease-out forwards}
@keyframes el-ember{0%{transform:translate(0,0);opacity:1}100%{transform:translate(var(--dx),-120px);opacity:0}}
.el-earth i{position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:#8b7b66;animation:el-dust .7s ease-out forwards}
@keyframes el-dust{0%{transform:translate(0,0);opacity:.9}100%{transform:translate(var(--dx),-22px);opacity:0}}
.el-wind i{position:absolute;left:-60%;width:60%;height:2px;background:linear-gradient(90deg,transparent,rgba(120,120,120,.75),transparent);transform:rotate(-14deg);animation:el-wind .5s ease-in forwards}
.el-wind i:first-child{top:38%}.el-wind i:last-child{top:58%;animation-delay:.08s}
@keyframes el-wind{to{left:120%}}
.el-water i{position:absolute;left:0;top:0;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(60,120,170,.55);border-radius:50%;animation:el-ripple .8s ease-out forwards}
.el-water i:last-child{animation-delay:.14s}
@keyframes el-ripple{to{transform:scale(18);opacity:0}}
@keyframes el-fade{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.el-fx{display:none}}
/* easter egg: lions of other colors */
#logoanim img{transition:filter .4s ease}
#logoanim.egg-gold img{filter:sepia(1) saturate(4) hue-rotate(-12deg) brightness(1.05)}
#logoanim.egg-crimson img{filter:brightness(.62) sepia(1) saturate(14) hue-rotate(-38deg)}
#logoanim.egg-jade img{filter:sepia(1) saturate(3) hue-rotate(95deg)}
#logoanim.egg-steel img{filter:sepia(1) saturate(2.2) hue-rotate(175deg)}
#logoanim.egg-shadow img{filter:brightness(.3) contrast(1.3) drop-shadow(0 0 8px #cf2e21)}
/* arcade display fonts (SIL Open Font License) */
@font-face{font-family:"Press Start 2P";font-display:swap;src:url(fonts/ps2p-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Press Start 2P";font-display:swap;src:url(fonts/ps2p-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Press Start 2P";font-display:swap;src:url(fonts/ps2p-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Bungee";font-display:swap;src:url(fonts/bungee.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bungee";font-display:swap;src:url(fonts/bungee-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Bungee Shade";font-display:swap;src:url(fonts/bungee-shade.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Monoton";font-display:swap;src:url(fonts/monoton.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Monoton";font-display:swap;src:url(fonts/monoton-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Black Ops One";font-display:swap;src:url(fonts/blackops.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Russo One";font-display:swap;src:url(fonts/russo-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Russo One";font-display:swap;src:url(fonts/russo-ext.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Russo One";font-display:swap;src:url(fonts/russo-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Dela Gothic One";font-display:swap;src:url(fonts/dela-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cinzel Decorative";font-weight:900;font-display:swap;src:url(fonts/cinzel-900.woff2) format("woff2")}

/* ===== v38: lion-inside-ensō logo, rank colours, ensō taps, new intro ===== */
.logoanim{aspect-ratio:1/1}
.logoanim .lg{position:absolute;inset:0;display:block;pointer-events:none}
.lg-disc{border-radius:50%;inset:1.5%!important;background:var(--disc,transparent);transition:background-color .45s ease}
.lg-ol{-webkit-mask:url(img/enso-outline-mask.png) center/contain no-repeat;mask:url(img/enso-outline-mask.png) center/contain no-repeat;background:var(--ol,transparent)}
.lg-ens{-webkit-mask:url(img/enso-mask.png) center/contain no-repeat;mask:url(img/enso-mask.png) center/contain no-repeat;background:var(--ens,#CF2E21);transition:background-color .2s ease}
.lg-lion{-webkit-mask:url(img/lion-mask.png) center/contain no-repeat;mask:url(img/lion-mask.png) center/contain no-repeat;background:var(--lion,#F4EFE4);transition:background-color .45s ease}
.logoanim.hop .lg-lion{animation:lg-hop .55s cubic-bezier(.2,.9,.25,1.2)}
@keyframes lg-hop{0%{transform:none}35%{transform:translateY(-4%) scale(1.03)}70%{transform:translateY(.6%)}100%{transform:none}}
.logoanim.reward .lg-lion{animation:la-roar .7s ease-out 2}
.rankcap{min-height:1.5em;margin:10px 0 0;text-align:center;font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;font-size:15px;color:var(--gold);text-transform:uppercase;opacity:0;transition:opacity .35s ease}
.rankcap.on{opacity:.9}
.rankcap b{color:#fff;font-weight:600}
.herologo{display:flex;flex-direction:column;align-items:center}
@media (max-width:820px){.herologo{order:-1}.herologo .logoanim{margin-bottom:6px}}
.rankreward{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);z-index:1200;background:#141414;color:#f3efe6;border:1px solid var(--gold);padding:16px 18px;max-width:min(92vw,460px);box-shadow:0 10px 40px rgba(0,0,0,.45);opacity:0;transition:opacity .4s ease,transform .4s ease;font-size:15px;line-height:1.45}
.rankreward.on{opacity:1;transform:translate(-50%,0)}
.rankreward h3{margin:0 0 6px;font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-size:18px}
.rankreward .row8{display:flex;gap:6px;margin:10px 0}
.rankreward .row8 span{position:relative;width:34px;height:34px;display:block}
.rankreward a{color:var(--gold);font-weight:700}
.rankreward button{position:absolute;top:6px;right:8px;background:none;border:0;color:#aaa;font-size:20px;cursor:pointer}
/* ensō tap effect (replaces the lightning) */
.enso-fx{aspect-ratio:1/1;height:118%;min-height:56px;opacity:.55}
.enso-fx .sw{position:absolute;inset:0;display:block}
.enso-fx .lg{position:absolute;inset:0}
nav.links a{position:relative}
nav.links a .enso-fx{z-index:0;opacity:.7}
/* intro v3: the lion wakes, runs, leaps and becomes the symbol */
.intro{flex-direction:column;gap:14px;background:#0d0e10}
.intro-stage{width:min(96vw,960px,calc((100vh - 120px)*16/9));aspect-ratio:16/9;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}
.intro-stage canvas{display:block;width:100%;height:100%}
.intro .intro-hint{margin:0;opacity:0;animation:ie-in 1.2s ease-out 1.4s forwards}
.intro-quiet{margin-top:0}
.rankreward .row8 .lg{position:absolute;inset:0;display:block}.rankreward .row8 .lg-disc{inset:0!important}
.funtile[hidden]{display:none!important}
.intro .intro-hint.nudge{opacity:1;animation:hint-nudge .5s ease}@keyframes hint-nudge{0%,100%{transform:none;color:#5f5a52}30%{transform:translateX(-4px);color:#e0a33a}60%{transform:translateX(4px)}}
.intro .intro-hint{color:#8a8378}
/* ===== Just for Fun: rooms, cameos, arcade, 3D tokens ===== */
.rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 30px}
@media (max-width:760px){.rooms{grid-template-columns:repeat(2,1fr)}}
.rooms a{display:block;background:var(--ink);color:#f3efe6;text-decoration:none;padding:14px 14px 12px;border-bottom:3px solid var(--red);font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:1px;text-transform:uppercase;font-size:16px;line-height:1.15}
.rooms a span{display:block;font-family:"Barlow",sans-serif;font-weight:400;text-transform:none;letter-spacing:0;color:#bdb6aa;font-size:13px;margin-top:4px}
.room{margin:0 0 46px;scroll-margin-top:80px}
.room>h2{margin:0 0 4px;font-size:clamp(26px,4vw,36px)}
.room>.rlead{margin:0 0 16px;color:var(--muted);max-width:720px}
.roomgrid{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:18px;align-items:stretch}
@media (max-width:760px){.roomgrid{grid-template-columns:1fr}}
.host{position:relative;background:#fff;border:1px solid #e3ded6;min-height:280px}
.cstage{position:relative;overflow:hidden;width:100%;height:100%;min-height:280px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.csprite{position:absolute;bottom:7%;left:50%;height:72%;transform:translateX(-50%);pointer-events:none;user-select:none;will-change:transform,left,bottom}
.host .tapme{position:absolute;left:10px;top:10px;font-family:"Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:12px;color:var(--muted)}
.cbubble{position:absolute;left:10px;right:10px;top:10px;z-index:3;background:#fff;color:#141414;border:2px solid #141414;border-radius:14px;padding:9px 12px;font-size:14.5px;line-height:1.35;box-shadow:3px 3px 0 #141414;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;pointer-events:none}
.cbubble.on{opacity:1;transform:none}
.cbubble::after{content:"";position:absolute;left:46%;bottom:-11px;width:16px;height:16px;background:#fff;border-right:2px solid #141414;border-bottom:2px solid #141414;transform:rotate(45deg)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-content:start}
.ccard{background:#fff;border:1px solid #e3ded6;border-top:3px solid var(--red);padding:14px 14px 12px}
.ccard h3{margin:0 0 4px;font-size:18px}.ccard p{margin:0;color:var(--muted);font-size:14px;line-height:1.4}
.ccard .soon{display:inline-block;margin-top:8px;background:var(--ink);color:#fff;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;font-size:12px;padding:3px 8px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chips span{background:#fff;border:1px solid #d6d0c6;padding:7px 12px;font-size:14px}
.tokens{display:flex;gap:4%;align-items:center;justify-content:center;background:#141414;padding:20px 10px 12px;perspective:700px}
.tokens figure{margin:0;text-align:center;flex:1;max-width:120px}.tokens figcaption{margin-top:8px;color:#bdb6aa;font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;font-size:12px}
.coin3d{--s:min(19vw,96px);--t:3.5px;position:relative;width:var(--s);height:var(--s);margin:0 auto;cursor:pointer}
.coin3d .spin{position:absolute;inset:0;transform-style:preserve-3d;animation:coinspin 4.2s linear infinite}
.coin3d .spin.flip{animation:coinflip 1s cubic-bezier(.2,.8,.3,1)}
.coin3d .face{position:absolute;inset:0;border-radius:50%;background-size:cover;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.coin3d .front{transform:translateZ(var(--t))}.coin3d .back{transform:rotateY(180deg) translateZ(var(--t))}
.coin3d .rim{position:absolute;left:50%;top:50%;width:calc(var(--s) * 3.1416 / 40 + 1px);height:calc(var(--t) * 2);margin:calc(var(--t) * -1) 0 0 calc(var(--s) * -3.1416 / 80);transform-origin:50% 50%}
@keyframes coinspin{from{transform:rotateX(12deg) rotateY(0)}to{transform:rotateX(12deg) rotateY(360deg)}}
@keyframes coinflip{from{transform:rotateX(12deg) rotateY(0) translateY(0)}50%{transform:rotateX(12deg) rotateY(540deg) translateY(-30px)}to{transform:rotateX(12deg) rotateY(1080deg) translateY(0)}}
.shelves{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-content:start}
.shelf{background:#fff;border:1px solid #e3ded6;border-left:6px solid #6b4a2b;padding:14px}
.shelf h3{margin:0 0 4px;font-size:18px}.shelf p{margin:0;color:var(--muted);font-size:14px}
.cabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.cab{background:linear-gradient(#2a2a30,#17171b);border-radius:14px 14px 6px 6px;padding:10px 10px 14px;box-shadow:inset 0 0 0 2px #3a3a42,0 8px 18px rgba(0,0,0,.25);cursor:pointer;color:#fff;-webkit-tap-highlight-color:transparent}
.cab .marq{background:linear-gradient(180deg,#CF2E21,#8e1d14);border-radius:8px 8px 2px 2px;padding:8px 10px;text-align:center;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:1px;text-transform:uppercase;font-size:15px;line-height:1.15;min-height:48px;display:flex;align-items:center;justify-content:center;text-shadow:0 1px 0 #000}
.cab .scr{position:relative;margin-top:8px;aspect-ratio:4/3;background:#0b0c10;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 22px rgba(0,0,0,.9)}
.cab .scr::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 3px);pointer-events:none;z-index:4}
.cab .scr .cstage{min-height:0;height:100%;background:radial-gradient(ellipse at 50% 100%,#2a2620 0,#0b0c10 70%)}
.cab .scr .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cab .ccap{position:absolute;left:0;right:0;top:8px;text-align:center;font-family:"Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;color:#f2be1a;z-index:5;opacity:0}
.cab .ccap.on{animation:capin 2.8s ease forwards}.cab .ccap b{color:#fff}
@keyframes capin{0%{opacity:0;transform:translateY(-4px)}12%,80%{opacity:1;transform:none}100%{opacity:.75}}
.cab .attract{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;font-size:13px;color:#fff;z-index:5;animation:cabblink 1.2s steps(2) infinite}
.cab .cab-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.78);color:#f2be1a;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:3px;font-size:22px;z-index:6;opacity:0;pointer-events:none;transition:opacity .2s;text-align:center;padding:10px}
.cab .cab-msg.on{opacity:1}.cab .cab-msg.blink{animation:cabblink .45s steps(2) infinite}
@keyframes cabblink{50%{opacity:.25}}
.cab .slot{margin:10px auto 0;width:44px;height:16px;border-radius:3px;background:#0a0a0c;box-shadow:inset 0 0 0 2px #444;display:flex;align-items:center;justify-content:center}
.cab .slot::after{content:"";width:4px;height:9px;background:#f2be1a;border-radius:1px;box-shadow:0 0 6px #f2be1a}
.title-attract{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:12px 12px 34px}
.title-attract .t1{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:clamp(26px,5vw,34px);letter-spacing:3px;color:#fff;text-shadow:0 0 12px rgba(207,46,33,.9),2px 2px 0 #CF2E21;animation:titlepulse 2.4s ease-in-out infinite}
.title-attract .t2{font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;font-size:14px;color:#f2be1a}
@keyframes titlepulse{50%{transform:scale(1.05)}}
.pagoda{width:44%;aspect-ratio:1;background:linear-gradient(transparent 0 12%,#CF2E21 12% 15%,transparent 15% 26%,#CF2E21 26% 29%,transparent 29% 40%,#CF2E21 40% 43%,transparent 43% 54%,#CF2E21 54% 57%,transparent 57% 68%,#CF2E21 68% 71%,transparent 71% 82%,#CF2E21 82% 85%,transparent 85% 96%,#CF2E21 96%);clip-path:polygon(50% 0,64% 100%,36% 100%);opacity:.8}
.globe{width:34%;aspect-ratio:1;border-radius:50%;background:repeating-linear-gradient(90deg,#1d4d8f 0 10px,#2463b0 10px 20px);background-size:40px 100%;box-shadow:inset -10px -8px 18px rgba(0,0,0,.6),0 0 14px rgba(36,99,176,.6);animation:globe 4s linear infinite}
@keyframes globe{to{background-position:40px 0}}
.beast-eye{position:absolute;width:7%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,236,170,.95),rgba(255,170,40,.5) 40%,rgba(255,140,20,0) 70%);mix-blend-mode:screen;z-index:3;animation:beastglow 2.4s ease-in-out infinite}
@keyframes beastglow{0%,100%{opacity:.3}50%{opacity:.95}}
/* cameo effects */
.cfx{position:absolute;pointer-events:none;z-index:2;animation:cfx 1s ease-out forwards}
.cfx-dust{width:10px;height:10px;border-radius:50%;background:rgba(170,150,120,.55)}
.cfx-steam{width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.55);filter:blur(3px);animation-duration:1.6s}
.cfx-coins{width:8px;height:8px;border-radius:50%;background:#f2be1a;box-shadow:0 0 5px #f2be1a;animation-name:cfxarc}
.cfx-splash{width:7px;height:9px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:#5fa8e8;animation-name:cfxarc}
.cfx-ripple{width:20px;height:8px;border:2px solid rgba(95,168,232,.8);border-radius:50%;margin-left:-10px;animation:ripple 1.2s ease-out forwards}
.cfx-flash{width:46%;aspect-ratio:1;margin-left:-23%;margin-bottom:-6%;border-radius:50%;background:repeating-conic-gradient(rgba(255,255,255,.75) 0 6deg,rgba(207,46,33,.55) 6deg 12deg);mask:radial-gradient(circle,#000 30%,transparent 70%);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);z-index:0;animation:flash 1.2s ease-out forwards}
@keyframes cfx{to{transform:translate(var(--dx),calc(var(--dy) * -1));opacity:0}}
@keyframes cfxarc{40%{transform:translate(calc(var(--dx) * .5),calc(var(--dy) * -1))}100%{transform:translate(var(--dx),20px);opacity:0}}
@keyframes ripple{to{transform:scale(8);opacity:0}}
@keyframes flash{0%{opacity:0;transform:scale(.6) rotate(0)}20%{opacity:1}100%{opacity:0;transform:scale(1.25) rotate(40deg)}}
.cstage .csprite{z-index:1}
@media (prefers-reduced-motion:reduce){.cab .attract,.title-attract .t1,.globe,.beast-eye,.coin3d .spin{animation:none!important}}
.intro iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}.intro{background:#000}
.intro-skip{position:absolute;right:14px;bottom:12px;z-index:2;background:none;border:0;color:#5a554d;font:12px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;text-transform:uppercase;cursor:pointer;padding:8px}
.intro-skip:hover{color:#aaa}
/* The Masters' Dojo: painted room */
.dojo-scene{position:relative;border:1px solid #2a2520;overflow:hidden;background:#1a1410;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.dojo-scene>img{display:block;width:100%;height:auto}
.dojo-scene .hot{position:absolute;background:none;border:0;padding:0;cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent}
.dojo-scene .hot i{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:rgba(242,190,26,.9);box-shadow:0 0 0 0 rgba(242,190,26,.7);animation:hotpulse 2.2s ease-out infinite}
.dojo-scene .hot span{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);white-space:nowrap;background:rgba(20,20,20,.88);color:#f3efe6;font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:4px 8px;opacity:0;transition:opacity .2s;pointer-events:none}
.dojo-scene .hot:hover span,.dojo-scene .hot:focus-visible span{opacity:1}
.dojo-scene .hot:hover,.dojo-scene .hot:focus-visible{background:rgba(255,220,150,.08);outline:2px solid rgba(242,190,26,.55);outline-offset:-2px}
.dojo-scene .hot[data-hot=cat] span,.dojo-scene .hot[data-hot=mouse] span,.dojo-scene .hot[data-hot=books] span{bottom:auto;top:-26px}
.dojo-scene .hot[data-hot=mouse] span{left:auto;right:0;transform:none}
@keyframes hotpulse{0%{box-shadow:0 0 0 0 rgba(242,190,26,.65)}70%{box-shadow:0 0 0 14px rgba(242,190,26,0)}100%{box-shadow:0 0 0 0 rgba(242,190,26,0)}}
.dojo-scene .hot.purr::after{content:"z z z";position:absolute;left:30%;top:-10px;color:#fff;font:700 14px "Barlow Condensed",sans-serif;letter-spacing:3px;text-shadow:0 1px 3px #000;animation:zz 2.4s ease-out forwards}
@keyframes zz{0%{opacity:0;transform:translateY(6px)}20%{opacity:1}100%{opacity:0;transform:translate(14px,-26px)}}
.dmouse{position:absolute;left:94.6%;top:89.4%;width:2.2%;height:1.6%;background:#7a7068;border-radius:60% 50% 40% 50%;opacity:0;pointer-events:none}
.dmouse::after{content:"";position:absolute;right:-60%;top:40%;width:70%;height:2px;background:#7a7068;border-radius:2px}
.dmouse.run{animation:mouserun 2.6s ease-in-out forwards}
@keyframes mouserun{0%{opacity:0;transform:none}8%{opacity:1}45%{opacity:1;transform:translateX(-380%)}55%{transform:translateX(-380%) scaleX(-1)}92%{opacity:1;transform:translateX(0) scaleX(-1)}100%{opacity:0;transform:scaleX(-1)}}
.dojocap{position:absolute;left:50%;bottom:7%;transform:translate(-50%,10px);max-width:min(86%,560px);background:rgba(20,18,16,.9);color:#f3efe6;border:1px solid rgba(242,190,26,.6);padding:10px 14px;font-size:15px;line-height:1.4;text-align:center;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:3}
.dojocap.on{opacity:1;transform:translate(-50%,0)}
.dojotap{position:absolute;left:12px;top:10px;margin:0;color:#f3efe6;font-family:"Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;text-shadow:0 1px 4px #000;opacity:.85}
@media (max-width:640px){.dojo-scene .hot span{font-size:11px}.dojocap{font-size:13px;bottom:4%}.dojo-scene .hot i{width:11px;height:11px;margin:-5px 0 0 -5px}}
.dlg{position:fixed;inset:0;z-index:1300;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.dlg[hidden]{display:none}
.dlg-in{background:#fff;max-width:420px;width:100%;padding:18px;text-align:center;border-top:4px solid var(--red)}
.dlg-in img{width:150px;height:auto;display:block;margin:0 auto 10px;border-radius:4px}
.dlg-in h3{margin:0 0 6px}.dlg-in p{margin:0 0 14px;color:var(--muted)}
.dg-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.dgame{position:fixed;inset:0;z-index:1300;background:#120e0b;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#fff;touch-action:manipulation}
.dgame[hidden]{display:none}
.dg-bg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(3px) brightness(.55)}
.dg-x{position:absolute;top:10px;right:14px;z-index:3;background:none;border:0;color:#fff;font-size:34px;cursor:pointer}
.dg-hud{position:relative;z-index:2;display:flex;gap:22px;font-family:"Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:16px;margin-bottom:10px}
.dg-hud b{color:#f2be1a;font-size:22px}
.dg-stage{position:relative;z-index:2;height:min(74vh,640px);aspect-ratio:640/770;max-width:94vw}
.dg-dummy{width:100%;height:100%;object-fit:cover;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.6);user-select:none;pointer-events:none}
.dg-t{position:absolute;width:15%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.04);cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.dg-t.lit{border-color:#f2be1a;background:radial-gradient(circle,rgba(242,190,26,.75),rgba(207,46,33,.35) 60%,transparent 70%);box-shadow:0 0 22px rgba(242,190,26,.8);animation:litpulse .5s ease-in-out infinite alternate}
@keyframes litpulse{to{transform:translate(-50%,-50%) scale(1.12)}}
.dg-spark{position:absolute;width:18%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff,rgba(242,190,26,.8) 30%,transparent 65%);pointer-events:none;animation:spark .45s ease-out forwards}
@keyframes spark{from{opacity:1;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
.dg-count{position:absolute;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:min(30vw,180px);color:#f2be1a;text-shadow:0 4px 30px rgba(0,0,0,.8);pointer-events:none}
.dg-count[hidden]{display:none}
.dg-res{position:absolute;z-index:4;background:rgba(20,18,16,.95);border:1px solid #f2be1a;padding:20px 22px;text-align:center;max-width:min(92vw,440px)}
.dg-res[hidden]{display:none}
.dg-res h3{margin:0 0 8px;font-size:30px;color:#f2be1a}.dg-res p{margin:0 0 8px}.dg-res b{color:#f2be1a}.dg-note{color:#bdb6aa;font-size:14px}
@media (prefers-reduced-motion:reduce){.dojo-scene .hot i,.dg-t.lit{animation:none}}
/* wooden dummy: phone layout (portrait and landscape), big targets, no scroll or zoom while playing */
#dummygame{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-sizing:border-box;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
#dummygame .dg-hud{flex-wrap:wrap;justify-content:center;gap:4px 16px;max-width:100%;padding:0 52px;box-sizing:border-box}
#dummygame .dg-stage{height:auto;aspect-ratio:640/770;max-width:none;width:min(94vw,calc((100vh - 110px)*.831),532px);width:min(94vw,calc((100dvh - 110px)*.831),532px)}
#dummygame .dg-t{width:clamp(48px,15%,96px);touch-action:none}
#dummygame .dg-t.lit{z-index:2}
#dummygame .dg-x{min-width:48px;min-height:48px;top:max(4px,env(safe-area-inset-top));right:max(6px,env(safe-area-inset-right));touch-action:manipulation}
#dummygame .dg-count.dg-lv{font-size:min(15vw,96px);letter-spacing:3px;text-align:center}
#dummygame .dg-res{touch-action:pan-y;max-height:calc(100% - 16px);overflow:auto;box-sizing:border-box}
#dummygame .dg-res .btn{min-height:44px}
@media (orientation:landscape) and (max-height:520px){
#dummygame{flex-direction:row;gap:16px}
#dummygame .dg-hud{flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding:0;min-width:110px;max-width:30vw}
#dummygame .dg-stage{width:min(60vw,calc((100vh - 20px)*.831));width:min(60vw,calc((100dvh - 20px)*.831))}
}
/* cameo greetings */
.csay{position:absolute;left:8px;right:8px;top:30px;z-index:6;max-height:calc(100% - 40px);overflow:auto;background:#fffdf6;color:#141414;border:2px solid #141414;border-radius:12px;padding:8px 10px;font-size:12.5px;line-height:1.35;box-shadow:3px 3px 0 #141414;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;pointer-events:none;text-align:left;font-family:inherit;text-transform:none;letter-spacing:0}
.csay.on{opacity:1;transform:none;pointer-events:auto}
.csay p{margin:0 0 5px}.csay p.q{font-weight:700}
.csay-row{display:flex;gap:8px;flex-wrap:wrap}
.csay-b{display:inline-block;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;background:#c8102e;color:#fff;border:0;border-radius:6px;padding:7px 10px;cursor:pointer;text-decoration:none}
.csay-b.no{background:#141414}
.cstage[data-cast] .csay{font-size:12.5px}
.csay{right:auto;width:60%;left:8px;top:28px}
/* Sifu Hiro in the dojo */
.dojosifu{position:absolute;left:35%;bottom:12%;height:41%;padding:0;border:0;background:none;cursor:pointer;z-index:4;filter:drop-shadow(0 10px 8px rgba(0,0,0,.45))}
.dojosifu img{height:100%;width:auto;display:block;pointer-events:none;transition:transform .2s}
.dojosifu:hover img,.dojosifu:focus-visible img{transform:translateY(-3px)}
.dojosifu:focus-visible{outline:3px solid #f2be1a;outline-offset:4px;border-radius:8px}
.sifubub{position:absolute;left:24%;top:5%;width:min(44%,420px);z-index:7;background:#fffdf6;color:#141414;border:2px solid #141414;border-radius:14px;padding:10px 13px;font-size:14px;line-height:1.4;box-shadow:3px 3px 0 #141414;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;pointer-events:none;max-height:86%;overflow:auto}
.sifubub.on{opacity:1;transform:none;pointer-events:auto}
.sifubub p{margin:0 0 7px}.sifubub p.q{font-weight:700}.sifubub .sb-n{display:block;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#c8102e;margin-bottom:6px}
.sifubub .sb-note{font-size:12.5px;color:#555}
.sifubub blockquote{margin:4px 0 9px;padding:0 0 0 10px;border-left:3px solid #c8102e;font-size:15.5px;font-style:italic}
.sifubub cite{display:block;font-style:normal;font-size:12px;color:#555;margin-top:5px}
.sb-row{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:640px){.sifubub{left:3%;width:62%;font-size:12.5px}.sifubub blockquote{font-size:13.5px}}
/* arcade character select */
.csel{position:fixed;inset:0;z-index:9000;background:rgba(5,5,8,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.csel-box{position:relative;width:min(760px,100%);max-height:100%;overflow:auto;background:#141418;border:3px solid #c8102e;border-radius:16px;padding:18px 18px 14px;color:#fff;box-shadow:0 0 0 4px #000,0 0 40px rgba(200,16,46,.35)}
.csel-k{margin:0;font:700 13px/1.2 "Barlow Condensed",sans-serif;letter-spacing:2px;text-transform:uppercase;color:#f2be1a;text-align:center}
.csel h3{margin:4px 0 12px;text-align:center;font:800 26px/1.1 "Barlow Condensed",sans-serif;letter-spacing:3px;color:#fff}
.csel-x{position:absolute;right:10px;top:8px;width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:#000;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.csel-roster{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}
.csel-c{width:104px;background:#1f1f26;border:2px solid #3a3a46;border-radius:10px;padding:6px 4px 7px;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:inherit}
.csel-c img{height:96px;width:auto;object-fit:contain;filter:grayscale(.6) brightness(.8);transition:filter .2s}
.csel-c b{font:700 14px/1.1 "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase}
.csel-c i{font-style:normal;font-size:11px;color:#f2be1a;line-height:1.1;text-align:center}
.csel-c.on{border-color:#f2be1a;box-shadow:0 0 0 2px #f2be1a,0 0 18px rgba(242,190,26,.4)}.csel-c.on img,.csel-c:hover img{filter:none}
.csel-stage{position:relative;height:clamp(300px,52vh,420px);border-radius:12px;overflow:hidden;background:radial-gradient(ellipse at 50% 85%,#3b2a1a 0,#16120e 55%,#0b0a09 100%)}
.csel-stage .ccap{position:absolute;left:0;right:0;top:8px;text-align:center;font:700 14px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#f2be1a;z-index:5}
.csel-stage .ccap b{color:#fff}
.csel-stage .csay{top:34px;width:54%;font-size:14.5px;max-height:calc(100% - 46px)}
.csel-note{margin:10px 0 0;text-align:center;font-size:13px;color:#bbb}
@media (max-width:560px){.csel-c{width:84px}.csel-c img{height:74px}.csel-stage .csay{width:62%;font-size:13px}}
@media (max-width:640px){.sifubub{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:55vh;font-size:14px;z-index:8000}.sifubub blockquote{font-size:15px}}
/* dojo night: cat, mouse, lamp */
.dojo-scene .dcat,.dojo-scene .dmouse2{position:absolute;display:none;width:auto;z-index:4;pointer-events:auto;filter:drop-shadow(0 6px 5px rgba(0,0,0,.4));user-select:none}
.dojo-scene .dmouse2{pointer-events:none;z-index:4}
.dojo-scene .dmouse2.dim{filter:brightness(.35) drop-shadow(0 0 2px rgba(0,0,0,.6))}
.dojo-scene .dcat.walk{animation:catbob .42s ease-in-out infinite}
@keyframes catbob{50%{margin-bottom:.5%}}
.dojodark{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 70%,rgba(6,8,22,.84),rgba(2,3,10,.95));opacity:0;transition:opacity 1.4s ease;pointer-events:none;z-index:5}
.lightsoff .dojodark{opacity:1}
.lightsoff .dcat{filter:brightness(.3)}
.deyes{position:absolute;width:2.2%;height:1.1%;opacity:0;transition:opacity 1.2s;pointer-events:none;z-index:6;transform:translateX(-50%)}
.deyes::before,.deyes::after{content:"";position:absolute;top:0;width:34%;height:100%;border-radius:50%;background:#d9ff6a;box-shadow:0 0 6px 2px rgba(200,255,90,.75),0 0 16px 4px rgba(170,255,60,.35)}
.deyes::before{left:0}.deyes::after{right:0}
.deyes.mouse{width:1.1%;height:.7%}.deyes.mouse::before,.deyes.mouse::after{background:#ffe0a0;box-shadow:0 0 4px 1px rgba(255,210,120,.8)}
.deyes.on{opacity:1;animation:blink 4.5s infinite}
@keyframes blink{0%,92%,100%{transform:translateX(-50%) scaleY(1)}95%{transform:translateX(-50%) scaleY(.1)}}
.dzz{position:absolute;opacity:0;color:#fff;font:700 14px "Barlow Condensed",sans-serif;letter-spacing:3px;text-shadow:0 1px 3px #000;pointer-events:none;z-index:6;font-style:normal}
.dzz.on{animation:zzloop 3.2s ease-out infinite}
@keyframes zzloop{0%{opacity:0;transform:translateY(0)}25%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}
.lightsoff .dzz{display:none}
.dlamp{position:absolute;right:10px;top:8px;z-index:7;background:rgba(20,18,16,.85);color:#f2be1a;border:1px solid rgba(242,190,26,.6);border-radius:999px;padding:6px 12px;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer}
.dlamp[hidden]{display:none}
.dlantern{position:absolute;left:73.2%;top:3%;width:5%;height:15%;border:0;background:none;padding:0;cursor:pointer;z-index:6;border-radius:40%}
.dlantern:focus-visible{outline:2px solid #f2be1a}
.lightsoff .dojosifu{filter:brightness(.3)}
.lightsoff .sifubub{z-index:8}
/* arcade coin */
.coinaward{position:fixed;inset:0;z-index:9500;background:rgba(5,5,8,.7);display:flex;align-items:center;justify-content:center;padding:16px}
.ca-box{background:#141418;border:3px solid #f2be1a;border-radius:16px;padding:26px 30px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 0 40px rgba(242,190,26,.35);animation:capop .5s cubic-bezier(.2,1.6,.4,1)}
.ca-box b{font:800 26px/1 "Barlow Condensed",sans-serif;letter-spacing:4px;color:#f2be1a}
@keyframes capop{from{transform:scale(.6);opacity:0}}
.cpurse{display:flex;align-items:center;gap:8px;margin:-6px 0 12px;font:700 18px/1 "Barlow Condensed",sans-serif;color:#f2be1a}
.cpurse[hidden]{display:none}
.cgame{position:fixed;inset:0;z-index:9000;background:rgba(5,5,8,.9);display:flex;align-items:center;justify-content:center;padding:12px}
.cgame-box{position:relative;width:min(980px,100%);background:#000;border:3px solid #c8102e;border-radius:14px;padding:44px 10px 8px}
.cgame-box iframe{display:block;width:100%;aspect-ratio:760/520;border:0;background:#000}
.cgame-box .csel-x{z-index:2}
.cpurse .coin3d{margin:0;flex:0 0 auto}
.cpurse{justify-content:flex-start}
.lightsoff .hot i{opacity:.12;animation:none}
/* trial fight (back view) */
.fgt{position:fixed;inset:0;z-index:9100;background:rgba(5,5,8,.92);display:flex;align-items:center;justify-content:center;padding:12px}
.fgt-box{position:relative;width:min(1000px,100%);background:#000;border:3px solid #c8102e;border-radius:14px;padding:44px 10px 8px}
.fgt-stage{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:8px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.fgt-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fgt-joe{position:absolute;bottom:14%;height:56%;left:62%;transform:translateX(-50%);filter:drop-shadow(0 8px 6px rgba(0,0,0,.5));transition:left .15s}
.fgt-rico{position:absolute;bottom:-10%;height:104%;left:30%;transform:translateX(-50%);filter:drop-shadow(0 0 10px rgba(0,0,0,.6))}
.fgt-t{position:absolute;width:13%;aspect-ratio:1;margin:0;transform:translate(-50%,-50%) scale(.6);border-radius:50%;border:3px solid #fff;background:radial-gradient(circle,rgba(242,190,26,.95) 0 28%,rgba(242,190,26,.35) 30% 60%,transparent 62%);opacity:0;pointer-events:none;cursor:pointer;transition:opacity .08s,transform .12s;z-index:4}
.fgt-t.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);animation:fgtpulse .5s ease-in-out infinite alternate}
@keyframes fgtpulse{to{box-shadow:0 0 0 10px rgba(242,190,26,.25)}}
.fgt-fx{position:absolute;width:12%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff 0 20%,rgba(255,220,120,.8) 30%,transparent 65%);opacity:0;pointer-events:none;z-index:5}
.fgt-fx.on{animation:fgtfx .35s ease-out}.fgt-fx.big{width:18%}
@keyframes fgtfx{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}
.fgt-stage.ouch::after{content:"";position:absolute;inset:0;background:rgba(200,16,46,.35);animation:ouch .35s ease-out forwards;pointer-events:none}
@keyframes ouch{to{opacity:0}}
.fgt-hud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:center;gap:18px;padding:8px;font:700 16px/1 "Barlow Condensed",sans-serif;letter-spacing:1px;color:#fff;text-transform:uppercase;text-shadow:0 2px 4px #000;z-index:6}
.fgt-hud b{color:#f2be1a}.fgt-hud span:nth-child(3){color:#ff4d5e;letter-spacing:3px}
.fgt-msg{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) scale(.8);font:800 clamp(28px,6vw,64px)/1 "Barlow Condensed",sans-serif;letter-spacing:3px;color:#fff;text-shadow:0 3px 0 #000,0 0 20px rgba(0,0,0,.8);opacity:0;pointer-events:none;z-index:6;transition:opacity .1s,transform .15s}
.fgt-msg.on{opacity:1;transform:translate(-50%,-50%) scale(1)}.fgt-msg.ok{color:#f2be1a}.fgt-msg.bad{color:#ff4d5e}
.fgt-res{position:absolute;inset:0;background:rgba(0,0,0,.72);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;z-index:7;padding:16px}
.fgt-res[hidden]{display:none}.fgt-res h3{font:800 34px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;margin:0 0 10px;color:#f2be1a}
.csel-fight{display:block;margin:0 auto 12px;background:#c8102e;color:#fff;border:2px solid #f2be1a;border-radius:8px;padding:10px 16px;font:800 16px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;text-transform:uppercase;cursor:pointer}
/* rooms as doors */
.room[hidden],.rooms[hidden]{display:none!important}
.room-back{display:inline-block;margin:0 0 14px;background:none;border:1px solid currentColor;border-radius:999px;padding:7px 14px;font:700 13px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);cursor:pointer}
.rooms a{cursor:pointer}
.rooms a::after{content:"Enter →";display:block;margin-top:10px;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;text-transform:uppercase;color:#f2be1a}
html[lang=es] .rooms a::after{content:"Entrar →"}html[lang=ja] .rooms a::after{content:"入る →"}html[lang=ru] .rooms a::after{content:"Войти →"}
/* night: the cat and mouse stay visible as moonlit shapes above the darkness */
.lightsoff .dcat{z-index:6;filter:brightness(.55) saturate(.55) hue-rotate(195deg) drop-shadow(0 0 6px rgba(120,150,255,.25))}
.lightsoff .dmouse2,.lightsoff .dmouse2.dim{z-index:6;filter:brightness(.6) saturate(.5) drop-shadow(0 0 4px rgba(120,150,255,.3))}
.dojo-scene .dcat{transform-origin:50% 100%}
.dojo-scene .dcat.breathe{animation:catbreathe 2.6s ease-in-out infinite}
@keyframes catbreathe{50%{scale:1 1.035}}
.dojo-scene .dcat.alert{animation:catalert 1.6s ease-in-out infinite}
@keyframes catalert{0%,100%{rotate:0deg}30%{rotate:-1.5deg}60%{rotate:1deg}}
/* arcade game intro (attract screen) */
.cintro{position:fixed;inset:0;z-index:9050;background:rgba(3,3,6,.92);display:flex;align-items:center;justify-content:center;padding:12px}
.ci-screen{position:relative;width:min(980px,100%);aspect-ratio:16/10;max-height:92vh;overflow:hidden;border-radius:18px/14px;background:#05050a;border:10px solid #1b1b22;box-shadow:0 0 0 3px #c8102e,0 0 60px rgba(200,16,46,.35),inset 0 0 80px rgba(0,0,0,.9)}
.ci-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:cibg 1.2s .1s ease forwards;filter:saturate(1.15) contrast(1.05)}
@keyframes cibg{to{opacity:.55}}
.ci-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 2px,transparent 2px 4px);pointer-events:none;z-index:3}
.ci-title{position:absolute;left:0;right:0;top:12%;text-align:center;z-index:2}
.ci-title b{display:block;font:900 clamp(34px,8vw,92px)/.9 "Barlow Condensed",sans-serif;letter-spacing:4px;text-transform:uppercase;color:#ffe066;background:linear-gradient(#fff6c8 0%,#ffd23a 45%,#ff7b1a 55%,#c8102e 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 0 #000) drop-shadow(0 0 18px rgba(255,120,30,.6));transform:scale(3);opacity:0;animation:cititle .7s .25s cubic-bezier(.2,1.4,.4,1) forwards}
.ci-title span{display:block;margin-top:8px;font:800 clamp(16px,3vw,30px)/1.1 "Barlow Condensed",sans-serif;letter-spacing:5px;text-transform:uppercase;color:#fff;text-shadow:0 3px 0 #000,0 0 12px rgba(0,0,0,.9);opacity:0;animation:cisub .5s .85s ease forwards}
@keyframes cititle{to{transform:scale(1);opacity:1}}
@keyframes cisub{from{opacity:0;letter-spacing:20px}to{opacity:1}}
.ci-cast{position:absolute;left:0;right:0;bottom:16%;height:42%;display:flex;justify-content:center;align-items:flex-end;gap:2%;z-index:2}
.ci-cast img{height:100%;max-width:22%;object-fit:contain;object-position:bottom;opacity:0;transform:translateY(40px);animation:cicast .45s ease-out forwards;filter:drop-shadow(0 6px 8px rgba(0,0,0,.7))}
@keyframes cicast{to{opacity:1;transform:none}}
.ci-start{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);z-index:4;background:none;border:0;color:#fff;font:800 clamp(18px,3.4vw,32px)/1 "Barlow Condensed",sans-serif;letter-spacing:6px;cursor:pointer;text-shadow:0 0 10px #ff2a44,0 2px 0 #000;animation:ciblink 1s 1.6s steps(1) infinite;opacity:0}
@keyframes ciblink{0%{opacity:1}50%{opacity:0}}
.ci-start.shake{animation:none;opacity:1;color:#ff4d5e}
.ci-copy{position:absolute;right:14px;bottom:8px;margin:0;font:600 11px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;color:rgba(255,255,255,.55);z-index:4}
.ci-screen .csel-x{z-index:5}
@media (prefers-reduced-motion:reduce){.ci-title b,.ci-title span,.ci-cast img,.ci-bg{animation:none;opacity:1;transform:none}.ci-bg{opacity:.55}.ci-start{animation:none;opacity:1}}
/* New York MMA gym */
.gym-scene{position:relative;border:1px solid #2a2520;overflow:hidden;background:#111;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.gym-scene>img{display:block;width:100%;height:auto}
.gymchar{position:absolute;transform:translateX(-50%);padding:0;border:0;background:none;cursor:pointer;z-index:3;filter:drop-shadow(0 8px 6px rgba(0,0,0,.5))}
.gymchar img{height:100%;width:auto;display:block;transition:transform .2s}
.gymchar:hover img,.gymchar:focus-visible img{transform:translateY(-4px)}
.gymchar span{position:absolute;left:50%;top:-22px;transform:translateX(-50%);background:rgba(20,20,20,.88);color:#f3efe6;font:700 13px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;padding:4px 8px;white-space:nowrap}
.gymchar.me span{background:#c8102e}.gymchar.me img{filter:drop-shadow(0 0 10px rgba(242,190,26,.9))}
.gymbub{left:50%!important;transform:translateX(-50%) translateY(-6px)!important;top:6%!important}
.gymbub.on{transform:translateX(-50%)!important}
.gymbub button[disabled]{opacity:.45;cursor:default}
.fgt-joe.flip{transform:translateX(-50%) scaleX(-1)}
/* sparring v2: meters + pad */
.fgt-bars{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start;padding:10px 12px;z-index:6;color:#fff;font:700 15px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;text-shadow:0 2px 3px #000}
.fgt-bars .fb-o{text-align:right}.fgt-bars b{display:block;margin-bottom:4px}
.fgt-bars .hp,.fgt-bars .sp{display:block;height:14px;background:rgba(0,0,0,.6);border:2px solid #fff;border-radius:3px;overflow:hidden;box-shadow:0 2px 0 #000}
.fgt-bars .sp{height:8px;margin-top:4px;border-width:1px;border-color:#f2be1a}
.fgt-bars .hp i,.fgt-bars .sp i{display:block;height:100%;width:100%;transition:width .2s}
.fgt-bars .hp i{background:linear-gradient(#ffe066,#f2be1a 50%,#d98e00)}.fgt-bars .fb-o .hp i{margin-left:auto}
.fgt-bars .sp i{background:linear-gradient(90deg,#3aa0ff,#8ef)}.fgt-bars .fb-o .sp i{margin-left:auto;background:linear-gradient(270deg,#ff3a5e,#ff9aa8)}
.fgt-bars .sp.full{animation:spfull .4s ease-in-out infinite alternate}@keyframes spfull{to{box-shadow:0 0 12px #8ef}}
.fgt-bars .fb-t{font:900 30px/1 "Barlow Condensed",sans-serif;color:#f2be1a;min-width:46px;text-align:center}
.fgt-pad{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 14px;z-index:6;pointer-events:none}
.fgt-pad button{pointer-events:auto;width:clamp(64px,11vw,96px);aspect-ratio:1;border-radius:50%;border:3px solid #fff;font:800 clamp(12px,1.7vw,16px)/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;color:#fff;cursor:pointer;box-shadow:0 4px 0 #000,0 0 14px rgba(0,0,0,.6);touch-action:manipulation;-webkit-user-select:none;user-select:none}
.fgt-pad .fp-atk{background:radial-gradient(circle at 35% 30%,#ff5b6e,#c8102e 60%,#7a0716)}
.fgt-pad .fp-blk{background:radial-gradient(circle at 35% 30%,#7ab8ff,#1f5fbf 60%,#0d2e66)}.fgt-pad .fp-blk.down{transform:translateY(3px);box-shadow:0 1px 0 #000}
.fgt-pad .fp-sp{width:clamp(54px,9vw,78px);background:radial-gradient(circle at 35% 30%,#ffe98a,#c79100 60%,#5e4400);opacity:.4;margin:0 auto 6px}
.fgt-pad .fp-sp.ready{opacity:1;animation:spready .5s ease-in-out infinite alternate}@keyframes spready{to{box-shadow:0 4px 0 #000,0 0 26px #ffe066}}
.fgt-pad button:active{transform:translateY(3px)}
.fgt-shield{position:absolute;left:30%;top:16%;width:26%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;border:3px solid rgba(140,200,255,.85);background:radial-gradient(circle,rgba(120,180,255,.05) 50%,rgba(120,180,255,.35));opacity:0;transition:opacity .08s;pointer-events:none;z-index:5}
.fgt-shield.on{opacity:1}
.fgt-stage.flash::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.12);animation:spflash .2s steps(2) infinite;pointer-events:none;z-index:4}
@keyframes spflash{50%{background:rgba(255,230,120,.22)}}
.fgt-msg.sp{color:#8ef}.fgt-msg.big{font-size:clamp(48px,10vw,110px)}
.fgt-joe.ko{transition:transform .9s cubic-bezier(.5,0,.8,.4),bottom .9s;transform:translateX(-50%) rotate(-80deg)!important;bottom:4%}
.fgt-rico.ko{transition:transform .9s ease-in,bottom .9s;transform:translateX(-50%) rotate(18deg) translateY(30%)!important}
.csel-note .kbd{opacity:.6;margin-left:6px;letter-spacing:2px}
.fgt-hud,.fgt-t{display:none}
.gym-scene>img,.gym-scene .gymchar{transition:transform .75s cubic-bezier(.5,0,.2,1),opacity .75s}
.gym-scene.zoom>img{transform:scale(2.6);transform-origin:50.5% 58%}
.gym-scene.zoom .gymchar{opacity:0}
/* side view (classic 2D) */
.fgt.side .fgt-rico{left:36%;bottom:9%;height:64%;transform:translateX(-50%) scaleX(-1);filter:drop-shadow(0 8px 6px rgba(0,0,0,.5))}
.fgt.side .fgt-joe{bottom:9%;height:64%;left:64%}
.fgt.side .fgt-shield{left:36%;top:22%;width:22%}
.fgt.side .fgt-rico.ko{transform:translateX(-50%) scaleX(-1) rotate(-80deg)!important;bottom:3%}
.fgt.side.me-right .fgt-rico{transform:translateX(-50%)}
.fgt.side.me-right .fgt-rico.ko{transform:translateX(-50%) rotate(-80deg)!important}
.fgt-cam{position:absolute;left:50%;top:46px;transform:translateX(-50%);z-index:7;background:rgba(0,0,0,.6);color:#fff;border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:5px 12px;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer}
/* brawler */
.brl .bf{position:absolute;transform:translateX(-50%);filter:drop-shadow(0 6px 5px rgba(0,0,0,.45));pointer-events:none;will-change:left,bottom}
.brl .bshadow{position:absolute;height:3%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%);pointer-events:none}
.brl .fgt-fx{transform:translate(-50%,50%)}
.bpad{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 10px;z-index:40;pointer-events:none}
.dpad{display:grid;grid-template-columns:repeat(3,clamp(36px,6vw,52px));grid-template-rows:repeat(3,clamp(36px,6vw,52px));pointer-events:auto}
.dpad button{border-radius:10px;border:2px solid rgba(255,255,255,.85);background:rgba(20,20,26,.65);color:#fff;font-size:clamp(14px,2vw,20px);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}
.dpad [data-d=u]{grid-column:2;grid-row:1}.dpad [data-d=l]{grid-column:1;grid-row:2}.dpad [data-d=r]{grid-column:3;grid-row:2}.dpad [data-d=d]{grid-column:2;grid-row:3}
.dpad button:active{background:rgba(200,16,46,.7)}
.bbtn{display:grid;grid-template-columns:repeat(2,clamp(54px,9vw,78px));grid-template-rows:repeat(2,clamp(54px,9vw,78px));gap:8px;pointer-events:auto}
.bbtn button{border-radius:50%;border:3px solid #fff;font:800 clamp(10px,1.5vw,14px)/1 "Barlow Condensed",sans-serif;letter-spacing:1px;color:#fff;cursor:pointer;box-shadow:0 4px 0 #000;touch-action:none;-webkit-user-select:none;user-select:none}
.bbtn .b-atk{background:radial-gradient(circle at 35% 30%,#ff5b6e,#c8102e 60%,#7a0716)}
.bbtn .b-jmp{background:radial-gradient(circle at 35% 30%,#8af0a0,#1f9a3f 60%,#0b4a1c)}
.bbtn .b-blk{background:radial-gradient(circle at 35% 30%,#7ab8ff,#1f5fbf 60%,#0d2e66)}
.bbtn .b-sup{background:radial-gradient(circle at 35% 30%,#ffe98a,#c79100 60%,#5e4400)}
.bbtn .b-blk{grid-column:1/3;border-radius:999px!important}
.bbtn .ready{animation:spready .5s ease-in-out infinite alternate}
.bbtn button:active{transform:translateY(3px);box-shadow:0 1px 0 #000}
@media (max-width:560px){.brl .fgt-box{padding:40px 4px 6px}.brl .csel-note{font-size:11px}}
.brl .bf.burn{filter:drop-shadow(0 0 6px #ffb000) drop-shadow(0 0 16px #ff4d00) drop-shadow(0 0 30px rgba(255,60,0,.7));animation:burn .12s steps(2) infinite}
@keyframes burn{50%{filter:drop-shadow(0 0 10px #ffd34d) drop-shadow(0 0 22px #ff6a00) drop-shadow(0 0 36px rgba(255,90,0,.8))}}
/* brawler: full-screen arena, controls below the stage on small/portrait screens */
.fgt.brl{padding:0}
.fgt.brl .fgt-box{width:min(1280px,100vw);max-height:100vh;border-radius:0;border-width:0;padding:44px 6px 6px;display:flex;flex-direction:column;align-items:center}
.fgt.brl .fgt-stage{width:min(100%,calc((100vh - 120px) * 16 / 9));flex:0 0 auto}
@media (max-width:900px),(orientation:portrait){
 .fgt.brl{align-items:flex-start}
 .fgt.brl .fgt-box{height:100vh;justify-content:flex-start}
 .fgt.brl .fgt-stage{width:100%;overflow:hidden}
 .fgt.brl .bpad{position:static;width:100%;margin-top:10px;padding:0 4px;pointer-events:auto}
 .fgt.brl .dpad{grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px)}
 .fgt.brl .bbtn{grid-template-columns:repeat(2,72px);grid-template-rows:repeat(2,72px)}
 .fgt.brl .bbtn button{font-size:13px}
 .fgt.brl .csel-note{font-size:11px;margin-top:8px}
 .fgt.brl .fgt-bars{font-size:12px;padding:6px}.fgt.brl .fgt-bars .hp{height:10px}.fgt.brl .fgt-bars .fb-t{font-size:20px}
}
.gym-scene .gymchar span{top:-20px}
.fgt.brl .bpad{position:static;width:100%;margin-top:8px;padding:0 6px;pointer-events:auto}
.fgt.brl .fgt-box{max-height:none;min-height:100vh;justify-content:center}
.fgt.brl .fgt-stage{width:min(100%,calc((100vh - 260px) * 16 / 9))}
@media (max-width:900px),(orientation:portrait){.fgt.brl .fgt-stage{width:100%}.fgt.brl .fgt-box{justify-content:flex-start}}
.fgt-stage.shk{animation:fgtshk .22s linear}
@keyframes fgtshk{0%,100%{transform:translate(0,0)}25%{transform:translate(-5px,3px)}50%{transform:translate(4px,-3px)}75%{transform:translate(-3px,2px)}}
@media (prefers-reduced-motion:reduce){.fgt-stage.shk{animation:none}}
/* painted arcade room: the cabinets' screens sit on the painted machines */
.arcade-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.arcade-scene{position:relative;min-width:860px;line-height:0}
.arcade-scene .arcade-bg{width:100%;height:auto;display:block}
.arcade-scene .cab{position:absolute;top:37.5%;height:13.3%;padding:0;background:none;box-shadow:none;border-radius:6px;line-height:normal}
.arcade-scene .cab .scr{margin:0;height:100%;aspect-ratio:auto;border-radius:6px;box-shadow:inset 0 0 14px rgba(0,0,0,.9),0 0 18px rgba(120,170,255,.25)}
.arcade-scene .cab .marq{position:absolute;left:-8%;right:-8%;top:-62%;height:28%;min-height:0;padding:0 4px;background:none;font-size:clamp(8px,.95vw,12px);line-height:1.05;color:#fff;text-shadow:0 0 6px rgba(0,0,0,.9),0 1px 0 #000;overflow:hidden}
.arcade-scene .cab .slot{display:none}
.arcade-scene .cab:hover .scr,.arcade-scene .cab:focus-visible .scr{box-shadow:inset 0 0 14px rgba(0,0,0,.9),0 0 0 2px #ffd34d,0 0 22px rgba(255,211,77,.6)}
.arcade-scene .cab .attract{font-size:clamp(7px,.8vw,11px)}
.arcade-scene .cab .marq{font-size:clamp(7px,.78vw,10px);top:-64%;height:30%;letter-spacing:.5px}
.arcade-scene .cab .ccap{font-size:clamp(6px,.7vw,9px)!important;line-height:1.1}
.arcade-scene .cab .title-attract .t1{font-size:clamp(14px,2.4vw,30px)}
.arcade-scene .cab .title-attract .t2{font-size:clamp(6px,.8vw,10px)}
/* arcade character profile (beat-'em-up select screen style) */
.csay .cprof{margin:0 0 6px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase}
.csay .cp-n{display:block;font-size:17px;letter-spacing:1.5px;color:#c8102e;margin-bottom:3px}
.csay .cp-r{display:flex;gap:8px;font-size:12px;letter-spacing:.8px;line-height:1.35}
.csay .cp-r span{min-width:62px;color:#8a6d1e;font-weight:700}
.csay .cp-r em{font-style:normal;color:#222;font-weight:600}
/* ===== Martial Arts Library (Seattle dojo): day/night window ===== */
.lib-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.lib-scene{position:relative;min-width:820px;line-height:0;overflow:hidden;background:#1b140d}
.lib-scene .lib-bg{position:relative;z-index:2;width:100%;height:auto;display:block}
.lib-sky{position:absolute;left:40.4%;top:27.2%;width:19.6%;height:31%;z-index:1;overflow:hidden;background:#7fb8e6}
.lib-sky>i,.lib-sky svg{position:absolute;inset:0;display:block}
.sk-day{background:linear-gradient(#5aa9e6,#bfe2f7 75%,#e8f4fb)}
.sk-dusk{background:linear-gradient(#3c3a78,#c4577a 55%,#f6a35b);opacity:0}
.sk-night{background:linear-gradient(#060b1f,#14234a 70%,#22355f);opacity:0}
.sk-stars{opacity:0;background-image:radial-gradient(1.2px 1.2px at 12% 18%,#fff 60%,transparent),radial-gradient(1px 1px at 32% 8%,#fff 60%,transparent),radial-gradient(1.4px 1.4px at 58% 22%,#fff 60%,transparent),radial-gradient(1px 1px at 76% 12%,#fff 60%,transparent),radial-gradient(1.2px 1.2px at 88% 30%,#fff 60%,transparent),radial-gradient(1px 1px at 22% 38%,#fff 60%,transparent),radial-gradient(1px 1px at 46% 40%,#fff 60%,transparent),radial-gradient(1.3px 1.3px at 68% 4%,#fff 60%,transparent)}
.sk-sun,.sk-moon{inset:auto!important;width:16%;aspect-ratio:1;border-radius:50%;left:20%;top:30%}
.sk-sun{background:radial-gradient(circle,#fff8d6 0 38%,#ffd54a 55%,rgba(255,213,74,0) 72%)}
.sk-moon{opacity:0;background:radial-gradient(circle at 40% 40%,#fffbe8 0 30%,#f0e6c0 50%,rgba(240,230,192,0) 70%);box-shadow:0 0 18px 6px rgba(255,248,220,.25)}
.sk-city{width:100%;height:100%}
.sk-city .mt{fill:#8fa7c2}.sk-city .snow{fill:#f4f8fc}.sk-city .bld{fill:#2c3a4e}.sk-city .needle{fill:#24303f}.sk-city .lights rect{fill:#ffd977;opacity:0}
.sk-tengu{position:absolute;width:26%;left:-30%;top:12%;z-index:3;opacity:0;line-height:0}
.lib-night{position:absolute;inset:0;z-index:3;pointer-events:none;background:#07122e;mix-blend-mode:multiply;opacity:0}
.lib-lamp{position:absolute;z-index:4;left:36%;top:47%;width:16%;aspect-ratio:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,196,96,.55),rgba(255,170,60,0) 65%);opacity:.25;mix-blend-mode:screen}
.lib-cat{position:absolute;z-index:5;width:12%;bottom:6%;left:104%;opacity:0;line-height:0;pointer-events:none}
.lib-scene .lib-hot{z-index:6}
.lib-cap{position:absolute;z-index:7;left:50%;bottom:4%;transform:translateX(-50%);max-width:70%;line-height:1.35;background:rgba(18,14,10,.88);color:#f3e7cf;font:600 14px/1.35 "Barlow",sans-serif;padding:8px 14px;border-radius:10px;opacity:0;transition:opacity .3s;pointer-events:none;text-align:center}
.lib-cap.on{opacity:1}
/* 60 s day/night cycle */
.lib-scene.cyc .sk-day{animation:skDay 60s linear infinite}
.lib-scene.cyc .sk-dusk{animation:skDusk 60s linear infinite}
.lib-scene.cyc .sk-night,.lib-scene.cyc .sk-stars{animation:skNight 60s linear infinite}
.lib-scene.cyc .sk-sun{animation:skSun 60s linear infinite}
.lib-scene.cyc .sk-moon{animation:skMoon 60s linear infinite}
.lib-scene.cyc .sk-city .lights rect{animation:skNight 60s linear infinite}
.lib-scene.cyc .sk-city .bld,.lib-scene.cyc .sk-city .needle{animation:skCity 60s linear infinite}
.lib-scene.cyc .sk-city .mt,.lib-scene.cyc .sk-city .snow{animation:skMt 60s linear infinite}
.lib-scene.cyc .lib-night{animation:skRoom 60s linear infinite}
.lib-scene.cyc .lib-lamp{animation:skLamp 60s linear infinite}
@keyframes skDay{0%,28%{opacity:1}40%,86%{opacity:0}97%,100%{opacity:1}}
@keyframes skDusk{0%,24%{opacity:0}34%{opacity:1}44%{opacity:0}82%{opacity:0}91%{opacity:.85}100%{opacity:0}}
@keyframes skNight{0%,32%{opacity:0}44%,82%{opacity:1}94%,100%{opacity:0}}
@keyframes skSun{0%{left:8%;top:62%;opacity:1}16%{left:42%;top:8%}36%{left:80%;top:78%;opacity:1}38%,88%{left:80%;top:110%;opacity:0}90%{left:4%;top:100%;opacity:1}100%{left:8%;top:62%;opacity:1}}
@keyframes skMoon{0%,38%{left:10%;top:100%;opacity:0}44%{left:16%;top:50%;opacity:1}62%{left:46%;top:10%;opacity:1}82%{left:80%;top:48%;opacity:1}88%,100%{left:86%;top:100%;opacity:0}}
@keyframes skCity{0%,28%{fill:#2c3a4e}44%,82%{fill:#0b1222}97%,100%{fill:#2c3a4e}}
@keyframes skMt{0%,28%{opacity:1}44%,82%{opacity:.35}97%,100%{opacity:1}}
@keyframes skRoom{0%,28%{opacity:0}44%,82%{opacity:.62}96%,100%{opacity:0}}
@keyframes skLamp{0%,28%{opacity:.2}44%,82%{opacity:1}96%,100%{opacity:.2}}
.sk-tengu.fly{animation:tFly 6.5s linear forwards}
@keyframes tFly{0%{left:-30%;top:30%;opacity:1}50%{top:8%}100%{left:110%;top:24%;opacity:1}}
.lib-cat.walk{animation:catWalk 10s linear forwards,catBob .42s ease-in-out infinite}
@keyframes catWalk{0%{left:104%;opacity:1}100%{left:-16%;opacity:1}}
@keyframes catBob{0%,100%{transform:translateY(0) skewX(0deg)}25%{transform:translateY(-3%) skewX(-2deg)}50%{transform:translateY(0) skewX(0deg)}75%{transform:translateY(-3%) skewX(2deg)}}
.lib-scene.still .sk-day{opacity:0}.lib-scene.still .sk-dusk{opacity:1}.lib-scene.still .sk-sun{left:70%;top:62%}
/* shelf panel */
.lib-panel{position:fixed;inset:0;z-index:9000;background:rgba(10,8,6,.72);display:flex;align-items:center;justify-content:center;padding:16px}
.lib-panel[hidden]{display:none}
.lib-pin{position:relative;width:min(640px,100%);max-height:86vh;overflow:auto;background:#f6efe2 linear-gradient(#f8f2e6,#efe4cf);border:2px solid #6b4a2b;border-radius:14px;padding:26px 22px 22px;box-shadow:0 20px 50px rgba(0,0,0,.5);color:#2a2017;line-height:1.5}
.lib-pin .lib-x{position:absolute;top:10px;right:10px;color:#2a2017;border-color:#2a2017}
.lib-shelves{display:grid;gap:10px}
.lib-shelf{display:block;text-align:left;width:100%;background:#fffaf0;border:1px solid #c9b48f;border-left:6px solid #8b5a2b;border-radius:8px;padding:12px 14px;cursor:pointer;color:inherit;font:inherit}
.lib-shelf b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:19px;letter-spacing:.5px}
.lib-shelf span{font-size:14px;color:#5b4a37}.lib-shelf span.soon{color:#c8102e}
.lib-shelf:hover,.lib-shelf:focus-visible{border-left-color:#c8102e;background:#fff}
.lib-books{display:grid;gap:8px}.lib-books h3,.lib-text h3{font-family:"Barlow Condensed",sans-serif;font-size:24px;margin:4px 0 6px}
.lib-book{text-align:left;background:linear-gradient(90deg,#7a3b1d 0 10px,#fffaf0 10px);border:1px solid #c9b48f;border-radius:6px;padding:10px 12px 10px 22px;cursor:pointer;font:600 15px/1.3 "Barlow",sans-serif;color:#2a2017}
.lib-book:hover,.lib-book:focus-visible{background:linear-gradient(90deg,#c8102e 0 10px,#fff 10px)}
.lib-back{background:none;border:0;color:#8b5a2b;font:700 13px "Barlow",sans-serif;cursor:pointer;padding:0;margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}
.lib-text p{font-size:16px;margin:0}
.lib-sky .sk-city{inset:auto 0 13% 0;height:74%;width:100%}
.lib-scene .hot{position:absolute;background:none;border:0;padding:0;cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent;line-height:normal}
.lib-scene .hot i{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:rgba(242,190,26,.9);animation:hotpulse 2.2s ease-out infinite}
.lib-scene .hot span{position:absolute;left:50%;top:calc(50% + 12px);transform:translateX(-50%);white-space:nowrap;background:rgba(20,20,20,.88);color:#f3efe6;font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;font-size:13px;padding:4px 8px;opacity:0;transition:opacity .2s;pointer-events:none}
.lib-scene .hot:hover span,.lib-scene .hot:focus-visible span{opacity:1}
.lib-scene .hot:hover,.lib-scene .hot:focus-visible{background:rgba(255,220,150,.07);outline:2px solid rgba(242,190,26,.5);outline-offset:-2px}
@media (prefers-reduced-motion:reduce){.lib-scene .hot i{animation:none}}
.lib-pin [hidden]{display:none!important}
.lib-book.sub{margin-left:28px;font-weight:500}.lib-book.sub::before{content:"↳ ";color:#8b5a2b}
/* the view from the library window */
.sea-view{position:fixed;inset:0;z-index:9000;background:rgba(6,8,14,.82);display:flex;align-items:center;justify-content:center;padding:16px}
.sea-view[hidden]{display:none}
.sea-box{position:relative;width:min(1100px,100%);max-height:94vh;overflow:auto;background:#0e1420;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.sea-x{position:absolute;top:10px;right:10px;z-index:5}
.sea-stage{position:relative;line-height:0;overflow:hidden;border-radius:14px 14px 0 0}
.sea-stage img{width:100%;height:auto;display:block}
.sea-stage .sea-night{position:absolute;inset:0;opacity:0;transition:opacity .8s}
.sea-view.night .sea-night{opacity:1}
.sea-hot{position:absolute;background:none;border:0;padding:0;cursor:pointer;border-radius:10px;line-height:normal}
.sea-hot i{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:rgba(255,214,90,.95);animation:hotpulse 2.2s ease-out infinite}
.sea-hot b{position:absolute;left:50%;top:calc(50% + 9px);transform:translateX(-50%);white-space:nowrap;font:700 12px "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px #000,0 0 8px rgba(0,0,0,.8)}
.sea-hot:hover,.sea-hot:focus-visible,.sea-hot.on{outline:2px solid rgba(255,214,90,.8);outline-offset:-2px;background:rgba(255,230,160,.08)}
.sea-info{padding:16px 20px 20px;color:#e9eef6;line-height:1.55}
.sea-info h3{margin:0 0 4px;font-family:"Barlow Condensed",sans-serif;font-size:26px;letter-spacing:.5px}
.sea-info h4{margin:4px 0 4px;color:#ffd65a;font-family:"Barlow Condensed",sans-serif;font-size:20px}
.sea-info p{margin:0;font-size:16px}.sea-hint{color:#a9b6c8}
.sea-info [hidden]{display:none!important}
@media (max-width:640px){.sea-hot b{font-size:9px}.sea-info p{font-size:15px}}
@media (prefers-reduced-motion:reduce){.sea-hot i{animation:none}}
.lib-book.has-sub::after{content:" ›";color:#8b5a2b}
.lib-subs{display:grid;gap:8px;margin-top:14px}
.lib-subs .lib-book.sub{margin-left:0}
/* subtle cue for interactive spots: an occasional glint instead of a pulsing dot */
.dojo-scene .hot i,.lib-scene .hot i,.sea-hot i{width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:0;box-shadow:none;background:radial-gradient(circle,rgba(255,255,240,.95) 0 8%,rgba(255,240,200,0) 28%),linear-gradient(90deg,transparent 46%,rgba(255,250,230,.9) 50%,transparent 54%),linear-gradient(0deg,transparent 46%,rgba(255,250,230,.9) 50%,transparent 54%);opacity:0;animation:glint 8s ease-in-out infinite;pointer-events:none}
@keyframes glint{0%,88%,100%{opacity:0;transform:scale(.3) rotate(0deg)}93%{opacity:1;transform:scale(1) rotate(45deg)}97%{opacity:.2;transform:scale(.6) rotate(90deg)}}
.dojo-scene .hot:hover i,.lib-scene .hot:hover i,.sea-hot:hover i,.sea-hot.on i{animation:none;opacity:.9;transform:scale(.9)}
@media (prefers-reduced-motion:reduce){.dojo-scene .hot i,.lib-scene .hot i,.sea-hot i{animation:none;opacity:.35;transform:scale(.6)}}
/* ---- arcade attract screens ---- */
.cab .scr .att{position:absolute;inset:0;overflow:hidden;z-index:0;background:#0b0c10}
.cab .scr .att ~ .cstage{background:transparent!important;position:relative;z-index:1}
.att .att-bg,.att .att-bg img{position:absolute;inset:0;width:100%;height:100%}
.att .att-bg img{object-fit:cover;opacity:0;transition:opacity 1.2s ease;animation:attpan 14s ease-in-out infinite alternate}
.att .att-bg img.on{opacity:1}
@keyframes attpan{from{transform:scale(1.18) translateX(-6%)}to{transform:scale(1.18) translateX(6%)}}
.att-pagoda .att-bg img{animation:attup 16s ease-in-out infinite alternate}
@keyframes attup{from{transform:scale(1.35) translateY(10%)}to{transform:scale(1.35) translateY(-8%)}}
.att::after{content:"";position:absolute;left:0;right:0;bottom:0;height:35%;background:linear-gradient(transparent,rgba(0,0,0,.35));pointer-events:none}
.chud{position:absolute;left:4%;right:4%;top:3%;display:flex;justify-content:space-between;align-items:center;gap:4%;font-family:"Courier New",monospace;font-weight:700;font-size:clamp(5px,.62vw,10px);color:#fff;text-shadow:1px 1px 0 #000;z-index:3;letter-spacing:.5px}
.chud .sc{color:#f2be1a}
.chud.fight .hp{flex:1;height:clamp(3px,.45vw,7px);background:#7a0f0a;border:1px solid #fff;box-shadow:0 0 0 1px #000;position:relative;overflow:hidden}
.chud.fight .hp i{position:absolute;inset:0;background:linear-gradient(#ffe37a,#f2be1a);transform-origin:left;animation:hpdrop 9s steps(12) infinite}
.chud.fight .hp.r i{transform-origin:right;animation-delay:-4s}
.chud.fight .tm{color:#ffd34d;font-size:1.25em}
@keyframes hpdrop{0%{transform:scaleX(1)}90%{transform:scaleX(.2)}100%{transform:scaleX(1)}}
.cab .scr .att ~ .cstage .ccap{top:16%}
.att-cap{position:absolute;left:0;right:0;top:15%;text-align:center;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:1px;font-size:clamp(6px,.75vw,11px);color:#ffd34d;text-shadow:1px 1px 0 #000,0 0 6px #000;z-index:3;opacity:0}
.att-cap.on{animation:capin 3s ease forwards}
.att .spar{position:absolute;bottom:9%;height:58%;z-index:2;filter:brightness(0) drop-shadow(0 0 2px rgba(255,80,60,.9));pointer-events:none}
.att .spar.a{left:22%;transform:scaleX(-1)}.att .spar.b{right:22%}
.att-tour .spar{filter:brightness(.08) drop-shadow(0 0 2px rgba(110,180,255,.95))}
.att.hitfx::before{content:"";position:absolute;left:46%;top:44%;width:9%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#fff,#ffd34d 40%,rgba(255,120,0,0) 70%);z-index:3;animation:hitpop .25s ease-out forwards}
@keyframes hitpop{from{transform:scale(.3);opacity:1}to{transform:scale(1.6);opacity:0}}
.att .title-attract{z-index:3;animation:titlecycle 10s ease-in-out infinite;background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%)}
@keyframes titlecycle{0%,8%{opacity:0}14%,40%{opacity:1}48%,100%{opacity:0}}
.att-beasts .kb-sky{position:absolute;left:0;top:0;width:118%;height:100%;object-fit:cover;object-position:50% 30%;animation:kbsky 30s linear infinite alternate}
@keyframes kbsky{from{transform:translateX(0)}to{transform:translateX(-15%)}}
.att-beasts .kb-ground{position:absolute;left:0;right:0;bottom:0;height:30%;background-repeat:repeat-x;background-size:auto 100%;z-index:1}
.att-beasts .kb-lion{position:absolute;left:18%;bottom:7%;height:40%;z-index:2;will-change:transform;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35))}
.att-beasts .kb-rock{position:absolute;bottom:8%;width:11%;aspect-ratio:1.7;z-index:2;background:radial-gradient(ellipse at 35% 30%,#b9a58a 0,#7d6a55 45%,#4a3b2c 100%);border:2px solid #23180f;border-radius:55% 50% 18% 18%/80% 75% 20% 20%;box-shadow:inset -3px -2px 0 rgba(0,0,0,.25)}
.att-beasts .kb-roar{position:absolute;left:44%;top:26%;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:clamp(9px,1.4vw,20px);color:#fff;-webkit-text-stroke:1px #CF2E21;text-shadow:2px 2px 0 #CF2E21;z-index:3;opacity:0;transform:scale(.6) rotate(-8deg);transition:opacity .15s,transform .2s}
.att-beasts .kb-roar.on{opacity:1;transform:scale(1) rotate(-8deg)}
@media (prefers-reduced-motion:reduce){.att *{animation:none!important;transition:none!important}}
/* attract text sized to the screen itself */
.arcade-scene .cab .scr{container-type:size}
.arcade-scene .chud{font-size:5.2cqw;top:3%}
.arcade-scene .cab .attract{font-size:6cqw!important;letter-spacing:.12em;bottom:5%;white-space:nowrap}
.arcade-scene .cab .att ~ .cstage .ccap{font-size:5.6cqw!important;top:17%!important}
.arcade-scene .att-cap{font-size:6.2cqw;top:16%}
.arcade-scene .att .title-attract .t1{font-size:20cqw}
.arcade-scene .att .title-attract .t2{font-size:6cqw}
.arcade-scene .att-beasts .kb-roar{font-size:12cqw}
.arcade-scene .chud.fight .hp{height:3.4cqh}
/* brawler select */
.bsel{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:16px}
.bsel-box{position:relative;width:min(860px,100%);max-height:94vh;overflow:auto;border:3px solid #f2be1a;border-radius:10px;background-size:cover;background-position:center;padding:18px 18px 22px;color:#fff;box-shadow:0 0 0 4px #000,0 0 40px rgba(242,190,26,.35)}
.bsel-box::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.78));border-radius:7px}
.bsel-box>*{position:relative}
.bsel-k{margin:0;text-align:center;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:3px;color:#f2be1a;font-size:clamp(20px,4vw,34px);text-shadow:3px 3px 0 #CF2E21}
.bsel-box h3{margin:2px 0 12px;text-align:center;font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;font-size:16px;color:#fff}
.bsel-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.bsel-c{width:clamp(88px,17%,140px);background:rgba(0,0,0,.45);border:2px solid #555;border-radius:6px;padding:6px 4px 4px;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit}
.bsel-c img{height:clamp(54px,9vw,90px);max-width:100%;object-fit:contain}
.bsel-c b{font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;font-size:14px}
.bsel-c.on{border-color:#f2be1a;box-shadow:0 0 14px rgba(242,190,26,.7);background:rgba(207,46,33,.35)}
.bsel-info{margin:12px auto 0;max-width:560px;background:rgba(0,0,0,.5);border-left:4px solid #CF2E21;padding:10px 14px}
.bsel-info h4{margin:0 0 4px;font-family:"Barlow Condensed",sans-serif;font-size:22px;letter-spacing:2px;color:#f2be1a}
.bsel-bio{margin:0 0 8px;font-size:14px;line-height:1.4}
.bsel-info dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;font-size:14px}
.bsel-info dt{color:#bbb}.bsel-info dd{margin:0}
.bsel-info dd i{display:inline-block;width:18px;height:9px;margin-right:3px;background:#333;border:1px solid #777;transform:skewX(-15deg)}
.bsel-info dd i.on{background:linear-gradient(#ffe37a,#f2be1a);border-color:#fff}
.bsel-go{display:block;margin:14px auto 0;background:#CF2E21;color:#fff;border:2px solid #fff;border-radius:6px;padding:10px 30px;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:3px;font-size:20px;cursor:pointer;animation:cabblink 1.2s steps(2) infinite}
.fgt-stage.quake{animation:quake .5s linear}
@keyframes quake{0%,100%{transform:translate(0,0)}20%{transform:translate(-6px,4px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,3px)}80%{transform:translate(3px,-2px)}}
.att .spar.beast{filter:drop-shadow(0 2px 0 rgba(0,0,0,.4));height:29%;bottom:9%}
.att .spar.beast.a{left:3%;transform:none}.att .spar.beast.b{right:3%;transform:scaleX(-1)}
/* Fighting Spirit */
.fs .fs-box{padding-top:44px}
.fs-title{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at 50% 40%,#3a0d0d,#000 70%);border-radius:8px;padding:16px}
.fs-logo{margin:0;font:900 clamp(34px,8vw,84px)/.9 "Barlow Condensed",sans-serif;letter-spacing:4px;color:#fff;text-shadow:4px 4px 0 #c8102e,0 0 30px rgba(200,16,46,.7);transform:skewX(-8deg);text-align:center}
.fs-sub{margin:0;color:#f2be1a;font:700 16px/1 "Barlow Condensed",sans-serif;letter-spacing:3px}
.fs-cities{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;width:100%}
.fs-city{flex:1 1 220px;max-width:360px;aspect-ratio:16/8;border:3px solid #fff;border-radius:8px;background-size:cover;background-position:center;cursor:pointer;position:relative;overflow:hidden}
.fs-city b{position:absolute;left:0;right:0;bottom:0;padding:8px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font:900 clamp(18px,3vw,28px)/1 "Barlow Condensed",sans-serif;letter-spacing:3px}
.fs-city:hover,.fs-city:focus-visible{border-color:#f2be1a;box-shadow:0 0 18px rgba(242,190,26,.7)}
.fs-intro{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:#000}
.fs-ib{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.fs-ib.on{animation:fsin 6s ease forwards}@keyframes fsin{0%{opacity:0;transform:scale(1.08)}12%{opacity:1}100%{opacity:1;transform:scale(1)}}
.fs-it{position:absolute;left:4%;right:4%;bottom:16%;margin:0;padding:12px 16px;background:rgba(0,0,0,.78);border:2px solid #fff;color:#fff;font:700 clamp(15px,2.2vw,22px)/1.35 "Barlow Condensed",sans-serif;letter-spacing:.5px;min-height:3.2em}
.fs-ibtn{position:absolute;right:4%;bottom:4%;display:flex;gap:8px}
.fs-ibtn button{background:#c8102e;color:#fff;border:2px solid #fff;border-radius:6px;padding:6px 14px;font:800 15px/1 "Barlow Condensed",sans-serif;letter-spacing:2px;cursor:pointer}.fs-ibtn .fs-skip{background:#222}
.fs-pick{padding:6px 4px 10px}.fs-bio{text-align:center;color:#ddd;margin:10px 0 0;font-size:15px}
.fs-hud{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:8px 10px;z-index:40;color:#fff;font:700 14px/1 "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;text-shadow:0 2px 0 #000}
.fs-hud .hp{display:block;height:12px;margin-top:4px;background:rgba(0,0,0,.6);border:2px solid #fff;border-radius:3px;overflow:hidden}
.fs-hud .hp i{display:block;height:100%;width:100%;background:linear-gradient(#ffe066,#f2be1a 50%,#d98e00);transition:width .2s}
.fs-hud .fs-b{text-align:right}.fs-hud .fs-b .hp i{background:linear-gradient(#ff7a8a,#c8102e);margin-left:auto}
.fs-sc{font:900 24px/1 "Barlow Condensed",sans-serif;color:#f2be1a;min-width:70px;text-align:center}
.fs-go{position:absolute;right:4%;top:40%;z-index:41;font:900 clamp(26px,5vw,48px)/1 "Barlow Condensed",sans-serif;color:#f2be1a;text-shadow:3px 3px 0 #000;animation:cabblink .5s steps(2) infinite}
.fs-go[hidden]{display:none}
.fs-stage .bf{position:absolute;transform-origin:50% 100%;filter:drop-shadow(0 6px 4px rgba(0,0,0,.45));pointer-events:none}
.fs-stage.charge::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 60%,rgba(255,210,80,.35),transparent 45%);animation:cabblink .12s steps(2) infinite;pointer-events:none;z-index:39}
.fs .fs-box>.fs-title,.fs .fs-box>.fs-intro,.fs .fs-box>.fs-pick{width:min(1000px,100%);margin:auto;flex:0 0 auto;max-height:100%}
.fs .fs-box>.fs-intro,.fs .fs-box>.fs-title{width:min(1000px,100%,calc((100vh - 80px)*16/9))}
.fs-strip{position:absolute;left:0;top:0;bottom:0;display:flex;will-change:transform}
.fs-strip img{flex:1 1 0;min-width:0;height:100%;object-fit:cover;object-position:50% 100%}
.fs-talk{position:absolute;left:5%;right:5%;top:18%;z-index:45;background:rgba(0,0,0,.85);border:2px solid #fff;border-left:6px solid #c8102e;color:#fff;padding:10px 14px;font:700 clamp(15px,2.2vw,22px)/1.3 "Barlow Condensed",sans-serif;cursor:pointer}
.fs-talk b{display:block;color:#ff5b6e;font-size:.8em;letter-spacing:2px;text-transform:uppercase;margin-bottom:2px}
.fs-end{max-width:640px;font:700 clamp(15px,2vw,20px)/1.35 "Barlow Condensed",sans-serif;background:rgba(0,0,0,.6);padding:8px 12px;border-left:4px solid #f2be1a}
/* Fighting Spirit: scenes, blends and transitions */
.fs-strip img.bl{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%);mask-image:linear-gradient(90deg,transparent,#000 9%)}
.fs-strip img.mir{transform:scaleX(-1);-webkit-mask-image:linear-gradient(270deg,transparent,#000 9%);mask-image:linear-gradient(270deg,transparent,#000 9%)}
.fs-fx{position:absolute;inset:0;pointer-events:none;z-index:6}
.fs-stage[data-fx=train] .fs-fx{top:8%;height:42%;background:repeating-linear-gradient(90deg,transparent 0 22%,rgba(255,236,190,.0) 22%,rgba(255,236,190,.38) 24%,rgba(255,236,190,0) 26%,transparent 26% 52%);background-size:180% 100%;mix-blend-mode:screen;animation:fstunnel .42s linear infinite}
.fs-stage[data-fx=train] .fs-strip{animation:fssway 1.1s ease-in-out infinite}
@keyframes fstunnel{from{background-position:0 0}to{background-position:-180% 0}}
@keyframes fssway{0%,100%{margin-top:0}50%{margin-top:.35%}}
.fs-fade{position:absolute;inset:0;z-index:60;background:#000;opacity:0;pointer-events:none;transition:opacity .5s;display:flex;align-items:center;justify-content:center}
.fs-fade.on{opacity:1}
.fs-fade b{color:#fff;font:400 clamp(12px,2vw,20px)/1.6 "Press Start 2P",monospace;text-align:center;padding:0 8%;text-shadow:2px 2px 0 #c8102e}
.fs-trainarr{position:absolute;left:0;width:100%;bottom:23%;height:44%;z-index:6;border-radius:14px 14px 0 0;transform:translateX(110%);transition:transform 1.5s cubic-bezier(.2,.7,.3,1);
  background:linear-gradient(#cfd5da 0 8%,#8b949b 8% 10%,transparent 10%) ,repeating-linear-gradient(90deg,#b9c1c7 0 3%,#26313a 3% 13%,#b9c1c7 13% 16%,#5e6a73 16% 17%,#b9c1c7 17% 20%),linear-gradient(#b9c1c7,#97a1a8);
  background-size:100% 100%,100% 52%,100% 100%;background-position:0 0,0 22%,0 0;background-repeat:no-repeat;border-top:4px solid #1f5fb4;box-shadow:inset 0 -14px 0 #1f5fb4,0 6px 0 #222}
.fs-trainarr.stop{transform:translateX(0)}
.fs-bub{position:absolute;bottom:58%;z-index:50;transform:translateX(-50%);background:#fff;color:#111;border:2px solid #111;border-radius:10px;padding:4px 10px;font:700 14px/1.2 "Barlow Condensed",sans-serif;white-space:nowrap}
/* per-game arcade typography */
.g-beasts .bsel-k,.g-beasts .bsel-info h4{font-family:"Bungee Shade","Bungee",sans-serif;font-weight:400;letter-spacing:1px;color:#ffcf3a;text-shadow:3px 3px 0 #7a2a00}
.g-pankration .bsel-k,.g-pankration .bsel-info h4{font-family:"Cinzel Decorative",serif;font-weight:900;letter-spacing:2px;color:#f6e3b0;text-shadow:2px 2px 0 #6b3a12}
.g-freestyle .bsel-k,.g-freestyle .bsel-info h4{font-family:"Bungee",sans-serif;font-weight:400;color:#7ee0ff;text-shadow:3px 3px 0 #0a3a8a}
.bsel .bsel-c b,.bsel .bsel-box h3,.bsel dt{font-family:"Press Start 2P",monospace;font-weight:400;font-size:9px;letter-spacing:0;line-height:1.5}
.bsel .bsel-bio,.fs .fs-bio{font-family:"Press Start 2P",monospace;font-size:10px;line-height:1.8;color:#e8e8e8}
.bsel-go,.fs .bsel-go{font-family:"Press Start 2P",monospace!important;font-weight:400!important;letter-spacing:1px!important}
.g-fs .fs-logo{font-family:"Black Ops One",sans-serif;font-weight:400;letter-spacing:2px}
.g-fs .fs-sub,.g-fs .bsel-k,.g-fs .fs-pick h3,.g-fs .fs-city b,.g-fs .bsel-c b{font-family:"Press Start 2P",monospace;font-weight:400;letter-spacing:0}
.g-fs .fs-pick h3{font-size:12px}.g-fs .bsel-c b{font-size:9px}.g-fs .fs-city b{font-size:clamp(12px,2vw,18px)}
.g-fs .fs-it,.g-fs .fs-talk,.g-fs .fs-end{font-family:"Press Start 2P",monospace;font-weight:400;font-size:clamp(10px,1.4vw,14px);line-height:1.8}
.g-fs .fs-hud,.g-fs .fs-sc{font-family:"Press Start 2P",monospace;font-weight:400;font-size:11px}
.g-fs .fgt-msg{font-family:"Black Ops One",sans-serif;font-weight:400}
/* ===== Arcade hall: an endless row of cabinets, grouped in zones; add a cabinet with one data line ===== */
.hall{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);background:#120d12}
.hall-view{overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity;
  background:
   radial-gradient(ellipse 60% 40% at 50% 0,rgba(255,190,90,.18),transparent 70%) 0 0/440px 100% repeat-x,
   linear-gradient(transparent 0 76%,rgba(0,0,0,.55) 76% 77%,transparent 77%),
   repeating-linear-gradient(90deg,#3a2418 0 58px,#2c1a12 58px 60px) 0 77%/100% 23% no-repeat,
   linear-gradient(#4a1f1a 0 1px,transparent 1px) 0 0/60px 26px,
   repeating-linear-gradient(90deg,#5a2a22 0 58px,#3b1a15 58px 60px) 0 0/100% 76% no-repeat;
  background-color:#2b1612}
.hall-track{display:flex;align-items:flex-end;gap:clamp(18px,3vw,44px);padding:0 clamp(40px,6vw,70px) 0;width:max-content;min-height:clamp(420px,50vw,600px);position:relative}
.hall-track::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 120px,rgba(0,0,0,.08) 120px 121px),linear-gradient(transparent 76%,rgba(0,0,0,.35));pointer-events:none}
.hzone{position:relative;display:flex;flex-direction:column;align-items:center;scroll-snap-align:start;padding-top:clamp(18px,3vw,34px)}
.hsign{margin:0 0 clamp(14px,2.4vw,26px);font:400 clamp(16px,2.6vw,30px)/1 "Monoton",cursive;letter-spacing:2px;color:#fff;text-transform:uppercase;
  text-shadow:0 0 4px #fff,0 0 10px #ff2fb4,0 0 22px #ff2fb4,0 0 40px #ff2fb4;animation:neonflick 6s infinite}
.hzone:nth-child(2) .hsign{text-shadow:0 0 4px #fff,0 0 10px #29d3ff,0 0 22px #29d3ff,0 0 40px #29d3ff}
.hzone:nth-child(3) .hsign{text-shadow:0 0 4px #fff,0 0 10px #9cff3a,0 0 22px #9cff3a,0 0 40px #9cff3a}
@keyframes neonflick{0%,91%,93%,100%{opacity:1}92%{opacity:.45}}
.hrow{display:flex;align-items:flex-end;gap:clamp(10px,1.6vw,22px);padding-bottom:clamp(14px,2.2vw,26px)}
.hcab{--w:clamp(150px,19vw,210px);width:var(--w);flex:0 0 auto;filter:drop-shadow(0 18px 14px rgba(0,0,0,.55))}
.hall .hcab .cab{position:relative;display:flex;flex-direction:column;align-items:stretch;width:100%;aspect-ratio:1/2.25;padding:0 9% 0;border-radius:10px 10px 4px 4px;
  background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 12% 88%,rgba(0,0,0,.35)),linear-gradient(var(--c),color-mix(in srgb,var(--c) 55%,#000));
  box-shadow:inset 0 0 0 3px rgba(0,0,0,.35),inset 0 3px 0 rgba(255,255,255,.18);line-height:normal}
.hall .hcab .cab::before{content:"";position:absolute;left:-6%;right:-6%;top:-3%;height:20%;border-radius:8px 8px 0 0;background:color-mix(in srgb,var(--c) 70%,#000);z-index:-1}
.hall .hcab .marq{position:relative;margin:7% -4% 6%;height:15%;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:4px 6px;text-align:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%,#fff6d8,color-mix(in srgb,var(--c) 35%,#fff) 60%,color-mix(in srgb,var(--c) 70%,#000));box-shadow:0 0 18px color-mix(in srgb,var(--c) 70%,#fff),inset 0 0 0 3px #111,inset 0 0 12px rgba(0,0,0,.45);
  color:#fff;font:400 clamp(10px,1.35vw,15px)/1.05 "Bungee",sans-serif;letter-spacing:.5px;text-transform:uppercase;text-shadow:2px 2px 0 #111,-1px -1px 0 #111,1px -1px 0 #111,-1px 1px 0 #111;min-height:0}
.hall .hcab .marq span{display:block}
.hall .hcab .m-today{font-family:"Black Ops One",sans-serif;color:#ffd23f;font-size:clamp(11px,1.5vw,17px)}
.hall .hcab .m-beasts{font-family:"Bungee Shade",sans-serif;color:#ffcf3a;font-size:clamp(9px,1.2vw,14px)}
.hall .hcab .m-pankration{font-family:"Cinzel Decorative",serif;font-weight:900;color:#fff1c9;font-size:clamp(10px,1.3vw,15px);text-transform:none}
.hall .hcab .m-iga{font-family:"Dela Gothic One",sans-serif;color:#fff;font-size:clamp(9px,1.15vw,13px)}
.hall .hcab .m-pagoda{font-family:"Monoton",cursive;color:#ffe9a8;font-size:clamp(8px,1.05vw,12px);letter-spacing:1px}
.hall .hcab .m-tour{font-family:"Russo One",sans-serif;color:#fff;font-size:clamp(9px,1.15vw,13px)}
.hall .hcab .m-freestyle{font-family:"Bungee",sans-serif;color:#9ff3ff;font-size:clamp(9px,1.15vw,13px)}
.hall .hcab .bezel{position:relative;height:36%;padding:7%;border-radius:6px;background:linear-gradient(#111,#1d1d22);box-shadow:inset 0 0 0 2px rgba(255,255,255,.08)}
.hall .hcab .cab .scr{margin:0;width:100%;height:100%;aspect-ratio:auto;border-radius:4px;container-type:size;box-shadow:inset 0 0 14px rgba(0,0,0,.9),0 0 14px rgba(120,170,255,.25)}
.hall .hcab .cpanel{position:relative;margin:7% -9% 0;height:11%;border-radius:4px 4px 2px 2px;background:linear-gradient(color-mix(in srgb,var(--c) 60%,#fff),color-mix(in srgb,var(--c) 70%,#000));box-shadow:inset 0 2px 0 rgba(255,255,255,.3);
  display:flex;align-items:center;justify-content:center;gap:8%;transform:perspective(200px) rotateX(28deg)}
.hall .hcab .stick{width:9%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff6b6b,#a00);box-shadow:0 4px 0 #222}
.hall .hcab .cbtn{width:8%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff59a,#c79a00);box-shadow:0 2px 0 #333}
.hall .hcab .cbtn:nth-child(3){background:radial-gradient(circle at 35% 35%,#9ae6ff,#0a6fb0)}.hall .hcab .cbtn:nth-child(4){background:radial-gradient(circle at 35% 35%,#b6ff9a,#2f8a12)}
.hall .hcab .coin{margin:auto auto 12%;width:34%;height:16%;border-radius:4px;background:#141418;box-shadow:inset 0 0 0 2px #444;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly}
.hall .hcab .coin i{width:46%;height:16%;background:#c8102e;border-radius:2px;box-shadow:0 0 6px #ff3b3b}
.hall .hcab .cab:hover .scr,.hall .hcab .cab:focus-visible .scr{box-shadow:inset 0 0 14px rgba(0,0,0,.9),0 0 0 2px #ffd34d,0 0 22px rgba(255,211,77,.6)}
.hall .hcab .cab:focus-visible{outline:3px solid #ffd34d;outline-offset:4px}
.hall .hcab .attract{font-family:"Press Start 2P",monospace;font-size:clamp(6px,.7vw,8px);letter-spacing:0}
.hall .hcab .cab-msg{font-family:"Press Start 2P",monospace;font-weight:400;font-size:clamp(7px,.85vw,10px);letter-spacing:0;text-align:center}
.hall .hcab .ccap{font-size:clamp(6px,.7vw,9px)!important;line-height:1.1}
.hall .hcab .title-attract .t1{font-size:clamp(13px,2vw,24px)}.hall .hcab .title-attract .t2{font-size:clamp(6px,.75vw,9px)}
.hall .chud{font-size:5.2cqw;top:3%}
.hall .hcab.soon .cab{opacity:.55;cursor:default}
.hall .soon-txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:400 clamp(7px,.8vw,9px)/1.6 "Press Start 2P",monospace;color:#888;text-align:center;padding:6px;animation:cabblink 1.4s steps(2) infinite}
.hprop.changer{width:clamp(90px,11vw,120px);aspect-ratio:1/2;margin-bottom:0;border-radius:8px;background:linear-gradient(90deg,#6d747b,#c9ced3 30%,#8a9198);box-shadow:inset 0 0 0 3px rgba(0,0,0,.3),0 18px 14px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;padding-top:10%}
.ch-top{font:400 clamp(8px,1vw,11px)/1 "Press Start 2P",monospace;color:#ffd23f;background:#111;padding:6px 8px;border-radius:3px;text-shadow:0 0 6px #ffb000}
.ch-face{margin-top:20%;width:70%;flex:0 0 40%;background:#444;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:space-around}
.ch-slot{width:30%;height:16%;background:#111;border-radius:2px}.ch-tray{width:70%;height:24%;background:#111;border-radius:0 0 8px 8px}
.hnav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:40px;height:64px;border:0;border-radius:8px;background:rgba(0,0,0,.55);color:#fff;font:700 34px/1 sans-serif;cursor:pointer}
.hnav.prev{left:6px}.hnav.next{right:6px}.hnav:hover{background:rgba(200,16,46,.8)}
@media (max-width:640px){.hcab{--w:150px}.hnav{width:32px;height:52px;font-size:26px}}
.brl.vs .rw{display:flex;gap:4px;margin-top:3px}.brl.vs .fb-o .rw{justify-content:flex-end}
.brl.vs .rw i{width:12px;height:12px;border-radius:50%;border:2px solid #f2be1a;background:#222}.brl.vs .rw i.on{background:#f2be1a;box-shadow:0 0 8px #f2be1a}
.brl.vs .fb-t{font-family:"Press Start 2P",monospace;font-weight:400}
.g-beasts .fs-logo{font-family:"Bungee Shade",sans-serif;font-weight:400;color:#ffcf3a;text-shadow:4px 4px 0 #7a2a00;transform:none}
.g-pankration .fs-logo{font-family:"Cinzel Decorative",serif;font-weight:900;color:#fff1c9;text-shadow:3px 3px 0 #6b3a12;transform:none}
.fs .fs-sub,.fs .bsel-k,.fs .fs-pick h3,.fs .fs-city b,.fs .bsel-c b{font-family:"Press Start 2P",monospace;font-weight:400;letter-spacing:0}
.fs .fs-pick h3{font-size:12px}.fs .bsel-c b{font-size:9px}
.fs .fs-it,.fs .fs-talk,.fs .fs-end{font-family:"Press Start 2P",monospace;font-weight:400;font-size:clamp(10px,1.4vw,14px);line-height:1.8}
.fs .fs-hud,.fs .fs-sc{font-family:"Press Start 2P",monospace;font-weight:400;font-size:11px}
.fs .fs-pick h3{color:#fff}
/* Iga no Kage side-scroller */
.ig .ig-foe{position:absolute;background-repeat:no-repeat;background-size:1100% 100%;z-index:12;pointer-events:none}
.ig .ig-foe.flash{filter:brightness(2.2) saturate(.4)}
.ig .ig-me{z-index:13}
.ig-star{position:absolute;width:2.4%;aspect-ratio:1;z-index:14;transform:translate(-50%,50%);animation:igspin .25s linear infinite;pointer-events:none}
.ig-star.star{background:linear-gradient(135deg,#eef3f7,#7f8b95);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 3px #fff)}
.ig-star.coin{background:radial-gradient(circle at 35% 35%,#fff6b0,#e1a800 55%,#8a5a00);border-radius:50%;width:1.9%;box-shadow:0 0 8px #ffcc33}
.ig-star.needle{width:3.4%;aspect-ratio:8/1;background:linear-gradient(90deg,transparent,#dfe8ff 30%,#fff);border-radius:2px;animation:none;box-shadow:0 0 6px #9cf}
@keyframes igspin{to{transform:translate(-50%,50%) rotate(360deg)}}
.ig-slash{position:absolute;width:9%;aspect-ratio:1;z-index:15;margin-left:-4.5%;border-radius:50%;border-right:6px solid rgba(255,255,255,.95);border-top:3px solid rgba(255,255,255,.4);animation:igslash .25s ease-out forwards;pointer-events:none}
@keyframes igslash{from{opacity:1;rotate:-60deg}to{opacity:0;rotate:60deg}}
.ig-fx{position:absolute;inset:0;z-index:20;pointer-events:none;opacity:0}
.ig-fx.on{opacity:1}
.ig-fx.shadow{background:radial-gradient(circle at 30% 70%,rgba(60,0,90,.2),rgba(10,0,20,.92));animation:igshadow 1.3s ease-out}
.ig-fx.fire{background:linear-gradient(90deg,transparent,rgba(255,120,0,.85) 40%,rgba(255,230,120,.9) 55%,transparent 70%);background-size:300% 100%;animation:igfire 1.2s linear}
.ig-fx.water{background:linear-gradient(0deg,rgba(40,140,255,.9),rgba(160,220,255,.55) 50%,transparent 75%);animation:igwater 1.2s ease-out}
@keyframes igshadow{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
@keyframes igfire{from{background-position:100% 0}to{background-position:0 0}}
@keyframes igwater{0%{transform:translateY(100%)}45%{transform:translateY(0)}100%{transform:translateY(-20%);opacity:0}}
.ig .ig-life i{display:inline-block;width:10px;height:10px;margin-right:3px;background:#333;border:2px solid #c8102e;transform:rotate(45deg)}
.ig .ig-life i.on{background:#ff3b3b}.ig .ig-life em{font-style:normal;margin-left:6px}
.ig .ig-mag{display:inline-block;width:16px;height:16px;margin-left:8px;border-radius:50%;background:#333;vertical-align:middle}
.ig .ig-mag.on{background:radial-gradient(circle,#fff,#9b6bff 60%,#4b1fa0);box-shadow:0 0 10px #b48bff}
.g-iga .bsel-k{font-family:"Dela Gothic One",sans-serif;font-weight:400;color:#fff;text-shadow:3px 3px 0 #4b2380}
.ig .fs-strip img{object-position:50% 100%}
.fs .fgt-res{z-index:70}
/* distinct attract screens */
.att.col .spar{filter:drop-shadow(0 2px 0 rgba(0,0,0,.5))}
.att.sepia .att-bg img{filter:sepia(.85) contrast(1.1) brightness(.9)}
.att.sepia::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 2px,transparent 2px 4px);mix-blend-mode:multiply}
.att-fsd .fsd{position:absolute;bottom:6%;height:56%;z-index:2;transform:translateX(-50%)}
.att-fsd .fsd.e1,.att-fsd .fsd.e2{transform:translateX(-50%) scaleX(-1)}
.att-fsd .fsd.ko{transform:translateX(-30%) scaleX(-1) rotate(-80deg);transform-origin:50% 90%;opacity:.55;transition:transform .3s,opacity .6s}
.fsd-logo{position:absolute;left:0;right:0;top:20%;z-index:3;text-align:center;font:400 13cqw/0.95 "Black Ops One",sans-serif;color:#ffd23f;text-shadow:3px 3px 0 #b3121f,0 0 12px rgba(0,0,0,.8);opacity:0;transform:scale(.6);transition:opacity .4s,transform .4s}
.fsd-logo.on{opacity:1;transform:scale(1)}
.att-igd .igd-bg{position:absolute;inset:0;background-size:auto 100%;background-repeat:repeat-x;animation:igdpan 6s linear infinite}
@keyframes igdpan{from{background-position:0 0}to{background-position:-236cqh 0}}
.att-igd .igd.p{position:absolute;left:28%;bottom:8%;height:50%;z-index:2;transform:translateX(-50%)}
.att-igd .igd.g{position:absolute;bottom:8%;height:60%;aspect-ratio:1;z-index:2;background-size:1100% 100%;background-repeat:no-repeat;transform:translateX(-50%) scaleX(-1)}
.att-igd .igd-star{display:none;position:absolute;bottom:36%;width:5cqw;aspect-ratio:1;z-index:3;background:linear-gradient(135deg,#fff,#8a95a0);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:igspin .2s linear infinite}
.fsd-logo.igl{font-family:"Dela Gothic One",sans-serif;font-size:11cqw;color:#fff;text-shadow:3px 3px 0 #4b2380;opacity:1;transform:none;top:6%;animation:titlecycle 10s ease-in-out infinite}
/* ninja magic */
.ig-stage{container-type:inline-size}
.ig-aura{position:absolute;width:16%;aspect-ratio:1/1.6;transform:translateX(-50%);z-index:12;border-radius:50% 50% 40% 40%;pointer-events:none;animation:igaura 1.6s ease-out forwards}
.ig-aura.shadow{background:radial-gradient(ellipse at 50% 60%,rgba(150,80,255,.55),rgba(40,0,80,.25) 55%,transparent 70%)}
.ig-aura.fire{background:radial-gradient(ellipse at 50% 60%,rgba(255,170,40,.7),rgba(255,60,0,.3) 55%,transparent 70%)}
.ig-aura.water{background:radial-gradient(ellipse at 50% 60%,rgba(120,210,255,.7),rgba(20,90,200,.3) 55%,transparent 70%)}
.ig-aura.earth{background:radial-gradient(ellipse at 50% 70%,rgba(200,150,80,.7),rgba(110,70,20,.35) 55%,transparent 70%)}
@keyframes igaura{0%{opacity:0;transform:translateX(-50%) scale(.6)}20%{opacity:1;transform:translateX(-50%) scale(1.15)}80%{opacity:1}100%{opacity:0;transform:translateX(-50%) scale(1.4)}}
.ig-cat{position:absolute;width:14%;aspect-ratio:2/1;background-size:100% 100%;z-index:16;opacity:0;pointer-events:none;filter:drop-shadow(0 0 6px #b48bff);animation:igcat .45s ease-in forwards}
@keyframes igcat{0%{opacity:0;translate:0 0}15%{opacity:1}90%{opacity:1}100%{opacity:0;translate:var(--dx) 0}}
.ig-fire{position:absolute;width:12%;aspect-ratio:132/81;background-size:100% 100%;z-index:16;opacity:0;pointer-events:none;animation:igfireball .4s linear forwards;filter:drop-shadow(0 0 10px #ff8a00)}
.ig-fire.rev{transform:scaleX(-1)}
@keyframes igfireball{0%{opacity:1;translate:0 0}100%{opacity:1;translate:var(--dx) 0}}
.ig-pillar{position:absolute;width:9%;height:0;transform:translateX(-50%);z-index:16;pointer-events:none;border-radius:40% 40% 10% 10%;background:linear-gradient(0deg,rgba(30,120,255,.95),rgba(160,230,255,.85) 70%,rgba(255,255,255,.9));box-shadow:0 0 18px rgba(120,200,255,.9);animation:igpillar .9s ease-out forwards}
@keyframes igpillar{0%{height:0;opacity:1}35%{height:75%}70%{height:70%;opacity:1}100%{height:80%;opacity:0}}
.ig-rock{position:absolute;top:-14%;width:8%;aspect-ratio:1;transform:translateX(-50%);z-index:16;pointer-events:none;background:radial-gradient(circle at 35% 30%,#b5a48c,#6e5a43 60%,#3d2f20);clip-path:polygon(20% 5%,70% 0,100% 35%,90% 80%,55% 100%,10% 85%,0 40%);animation:igrock .55s ease-in forwards}
@keyframes igrock{0%{top:-14%;rotate:0deg}100%{top:calc(100% - var(--gy) - 8%);rotate:200deg}}
.ig-fx.earth{background:linear-gradient(0deg,rgba(120,80,30,.55),transparent 40%);animation:igshadow 1.6s ease-out}
.ig-star.rock{width:2.8%;background:radial-gradient(circle at 35% 30%,#b5a48c,#6e5a43 60%,#3d2f20);clip-path:polygon(20% 5%,70% 0,100% 35%,90% 80%,55% 100%,10% 85%,0 40%)}

/* Kyiv sky: drones and missiles over the city (background only) */
.fs-sky{display:none;position:absolute;left:0;right:0;top:0;height:52%;z-index:2;pointer-events:none;overflow:hidden}
.fs-stage[data-sky="1"] .fs-sky{display:block}
.fs-sky .dr{position:absolute;width:3.4%;aspect-ratio:2/1;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2040%2020%22%3E%3Cpath%20d%3D%22M2%2010L30%203l8%207-8%207z%22%20fill%3D%22%231d2228%22/%3E%3Cpath%20d%3D%22M14%2010L22%201h4l-4%209%204%209h-4z%22%20fill%3D%22%232b3239%22/%3E%3Ccircle%20cx%3D%2237%22%20cy%3D%2210%22%20r%3D%221.5%22%20fill%3D%22%23ff5a3a%22/%3E%3C/svg%3E") center/contain no-repeat;left:0;animation:fsdr 11s linear infinite}
.fs-sky .d1{top:14%}.fs-sky .d2{top:26%;width:2.6%;animation-delay:-4s;animation-duration:13s}.fs-sky .d3{top:8%;width:2.2%;animation-delay:-8s;animation-duration:15s}
@keyframes fsdr{0%{transform:translateX(3000%)}100%{transform:translateX(-200%)}}
.fs-sky .ms{position:absolute;height:3px;width:9%;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(230,230,230,.75) 70%,#fff 92%,#ffcc66);transform-origin:100% 50%;opacity:0;animation:fsms 6s ease-in infinite}
.fs-sky .m1{left:-10%;top:30%;--r:-14deg}.fs-sky .m2{left:-10%;top:18%;--r:-8deg;animation-delay:-2.2s;animation-duration:7s}.fs-sky .m3{left:-10%;top:40%;--r:-20deg;animation-delay:-4.1s;animation-duration:8s}
@keyframes fsms{0%{opacity:0;transform:translate(0,0) rotate(var(--r))}8%{opacity:1}55%{opacity:1;transform:translate(700%,-160%) rotate(var(--r))}58%,100%{opacity:0;transform:translate(720%,-165%) rotate(var(--r))}}
.fs-sky .bl{position:absolute;width:10%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#fff6c8,#ffb347 30%,rgba(255,90,40,.5) 55%,rgba(255,90,40,0) 70%);opacity:0;animation:fsbl 6s ease-out infinite}
.fs-sky .b1{left:58%;top:2%}.fs-sky .b2{left:70%;top:16%;animation-delay:-2.2s;animation-duration:7s}.fs-sky .b3{left:46%;top:-6%;animation-delay:-4.1s;animation-duration:8s}
@keyframes fsbl{0%,54%{opacity:0;transform:scale(.2)}57%{opacity:1;transform:scale(1)}75%,100%{opacity:0;transform:scale(1.5)}}
@media (prefers-reduced-motion:reduce){.fs-sky *{animation:none!important;opacity:0!important}}
/* breakable props, items, weapons */
.fs-prop{position:absolute;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 3px 0 rgba(0,0,0,.35))}
.fs-prop.item{animation:fsbob 1.2s ease-in-out infinite}
@keyframes fsbob{50%{transform:translate(-50%,-12%)}}
.fs-prop.shk{animation:fsshk .2s}
@keyframes fsshk{25%{transform:translateX(-56%) rotate(-5deg)}75%{transform:translateX(-44%) rotate(5deg)}}
.fs-prop.gone{transition:opacity .5s;opacity:0}
.fs-wpn{position:absolute;transform-origin:8% 50%;pointer-events:none;margin-left:0;filter:drop-shadow(0 2px 0 rgba(0,0,0,.4))}
.fs-w{display:inline-block;vertical-align:middle;margin-left:6px;width:52px;height:16px;background:center/contain no-repeat;color:#fff;font:400 9px/16px "Press Start 2P",monospace;text-align:right;text-shadow:1px 1px 0 #000}

/* log v38 */
.tstats{margin:6px 0 26px}.ts-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.ts-head h2{margin:0;font-size:24px}
.ts-tabs{display:flex;gap:6px}.ts-tabs button{border:1px solid #d6d0c6;background:#fff;padding:7px 12px;font-family:"Barlow Condensed",sans-serif;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer}
.ts-tabs button[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ts-wrap{overflow-x:auto;margin-top:12px}.ts{width:100%;border-collapse:collapse;background:#fff;font-size:15px}.ts th,.ts td{padding:8px 10px;border-bottom:1px solid #eee;text-align:left;white-space:nowrap}.ts td.ts-arts{white-space:normal;color:var(--muted);font-size:14px}
.ts th{font-family:"Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;font-size:13px;color:var(--muted)}
.tl-ev{margin:4px 0 2px 0;padding:0;list-style:none;font-size:14px;color:#444}.tl-ev li{margin:2px 0}.tl-ev li::before{content:"· ";color:var(--red)}.tl-pt{color:var(--muted)}.tl-res{font-weight:700;color:var(--red);margin-left:4px}
.tphoto{margin:0 0 22px}.tp summary{display:inline-block;cursor:pointer;list-style:none}.tp summary::-webkit-details-marker{display:none}.tpform{margin-top:14px;background:#fff;border:1px solid #e3ded6;padding:16px;display:grid;gap:10px;max-width:520px}
.tpform label{display:grid;gap:4px}.tp-ok{display:flex!important;gap:8px;align-items:flex-start;font-size:14px}.tpform .a-hp{position:absolute;left:-9999px}
/* QR v38: big codes, print one at a time */
.qrgrid{grid-template-columns:1fr}.qrimg{max-width:560px}.qrmain .qrimg{max-width:560px}
@media print{body.printing *{visibility:hidden!important}body.printing .print-me,body.printing .print-me *{visibility:visible!important}
body.printing .print-me{position:absolute;left:0;top:0;width:100%;border:0;padding:0}body.printing .print-me .btns{display:none!important}
body.printing .print-me .qrimg{max-width:15cm}body.printing .sndtoggle,body.printing header{display:none}}
/* Just for Fun */
.funlead{max-width:680px}.fungrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:8px}
.funtile{position:relative;background:#fff;border:1px solid #e3ded6;display:flex;flex-direction:column;cursor:pointer;text-align:left;font:inherit;color:inherit;padding:0;outline:none}
.funtile:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.funtile .fi{position:relative;aspect-ratio:4/3;background:#efebe4;overflow:hidden}
.funtile .fi img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .4s ease}
.funtile .fi.ok img{opacity:1}
.funtile .fi:not(.ok)::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:200% 100%;animation:fun-shim 1.2s linear infinite}
@keyframes fun-shim{from{background-position:200% 0}to{background-position:-200% 0}}
.funtile .fi.dark{background:#141414}
.funtile .fi .ld{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--muted);letter-spacing:1px}
.funtile .fi.ok .ld{display:none}
.funtile .soon{position:absolute;top:10px;right:10px;background:var(--red);color:#fff;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;padding:4px 9px;z-index:2}
.funtile .fb{padding:14px 16px 16px;display:grid;gap:6px}
.funtile h3{margin:0;font-size:19px;line-height:1.2}
.funtile .hint{margin:0;color:var(--muted);font-size:14.5px;line-height:1.45}
.funtile.plain{background:var(--ink);color:#f3efe6;border-color:var(--ink);min-height:150px}
.funtile.plain .hint{color:#bdb6aa}.funtile.plain .soon{position:static;justify-self:start}
.funtile.secret{grid-column:1/-1;border-color:var(--gold)}.funtile.secret .fi{aspect-ratio:auto;height:auto}.funtile.secret .fi img{position:static;height:auto}
@media (prefers-reduced-motion:reduce){.funtile .fi:not(.ok)::after{animation:none}.funtile .fi img{transition:none}}

/* v39: dojo animals are wrappers (sprite + their own eyes), so the night glow comes from the animal itself */
.dspr{position:absolute;display:none;z-index:4;pointer-events:none;line-height:0;transform-origin:50% 100%}
.dspr>img{position:static!important;display:block!important;height:100%!important;width:auto!important}
.dspr .eg{position:absolute;display:none;transform:translate(-50%,-50%);min-width:3px;min-height:3px;border-radius:50%;background:#d9ff6a;box-shadow:0 0 6px 2px rgba(200,255,90,.75),0 0 16px 4px rgba(170,255,60,.35);opacity:0;transition:opacity 1.2s;pointer-events:none}
.dmouse2-w .eg{background:#ffe0a0;box-shadow:0 0 4px 1px rgba(255,210,120,.8),0 0 9px 2px rgba(255,200,110,.35)}
.lightsoff .dspr{z-index:6}
.lightsoff .dspr.open .eg{opacity:1;animation:egblink 4.5s infinite}
.deyes{display:none!important}
@keyframes egblink{0%,92%,100%{transform:translate(-50%,-50%) scaleY(1)}95%{transform:translate(-50%,-50%) scaleY(.1)}}
/* arcade tokens: purse, award, need-token and Sifu quiz dialogs */
.tokpurse{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:6px 12px 6px 8px;border-radius:999px;background:#141418;border:2px solid #f2be1a;font:700 17px/1 "Barlow Condensed",sans-serif;letter-spacing:.5px;color:#f2be1a}
.tokpurse .coin3d{margin:0;flex:0 0 auto}
.tokpurse b{font-weight:800}
.ca-box{max-width:min(92vw,460px);text-align:center}
.ca-box .ca-why{margin:0;color:#e9e4d8;font:500 16px/1.45 Barlow,system-ui,sans-serif}
.ca-box .ca-n{margin:0;color:#f2be1a;font:700 18px/1 "Barlow Condensed",sans-serif;letter-spacing:1px}
.ca-box .ca-n b{font-size:22px;letter-spacing:0}
.ca-box .sb-row{justify-content:center}
.ca-box .csay-b{font-size:14px;padding:10px 14px;min-height:40px}
.tok-quiz .ca-box{align-items:stretch;text-align:left;max-width:min(94vw,520px)}
.tok-quiz .ca-box>b{text-align:center}
.qz-k{margin:0;color:#bdb6a8;font:500 14px/1.4 Barlow,system-ui,sans-serif;text-align:center}
.qz-n{margin:0 0 4px;color:#bdb6a8;font:700 13px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase}
.qz-q{margin:0 0 12px;color:#fff;font:600 19px/1.35 Barlow,system-ui,sans-serif}
.qz-o{display:flex;flex-direction:column;gap:8px}
.qz-o .csay-b{display:block;width:100%;text-align:left;text-transform:none;letter-spacing:.2px;font:600 16px/1.3 Barlow,system-ui,sans-serif;background:#26262c;border:2px solid #3a3a42;padding:11px 12px}
.qz-o .csay-b:hover:not(:disabled){border-color:#f2be1a}
.qz-o .csay-b:disabled{cursor:default;opacity:.75}
.qz-o .csay-b.ok{background:#1f5f3a;border-color:#3fbf73;opacity:1}
.qz-o .csay-b.bad{background:#6b1420;border-color:#c8102e;opacity:1}
.qz-f{min-height:24px;margin:12px 0 0;color:#e9e4d8;font:600 16px/1.4 Barlow,system-ui,sans-serif;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.qz p{color:#e9e4d8}
.dg-tok{margin:6px 0 0;color:#f2be1a;font-weight:700}
html.intro-open .sifubub{visibility:hidden}
.dojo-scene .dojo-mitts{position:absolute;left:59.5%;top:65.5%;width:11%;height:auto;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
.coach .clist{margin:8px 0 0;padding-left:20px}.coach .clist li{margin:4px 0}
/* Rooms on phones and touch screens: a row of buttons under the Dojo and Library pictures */
.room-chips{display:none;margin:12px 0 0}
.room-chips>p{margin:0 0 8px;font-size:14px;line-height:1.4;color:var(--muted)}
.room-chips .rc-row{display:flex;flex-wrap:wrap;gap:8px}
.room-chips .chip{font:700 14px/1.1 "Barlow Condensed",sans-serif;letter-spacing:.8px;text-transform:uppercase;background:#1e1c1a;color:#f3efe6;border:1px solid #1e1c1a;border-radius:999px;padding:6px 14px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.room-chips .chip.sifu{background:#c8102e;border-color:#c8102e}
.room-chips .chip:focus-visible{outline:3px solid #f2be1a;outline-offset:2px}
@media (max-width:640px),(hover:none){.room-chips{display:block}}
/* Masters' Dojo on phones: the room pans sideways like the Library, bigger tap targets, Sifu speaks under the picture */
.dojo-pan{position:relative}
@media (max-width:640px){
  .dojo-pan{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;box-shadow:0 10px 30px rgba(0,0,0,.25)}
  .dojo-pan>.dojo-scene{min-width:720px;box-shadow:none}
  .dojo-scene .hot::before{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
  .dojo-say .sifubub{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;max-height:none;margin:12px 0 0;display:none;transform:none;font-size:15px;z-index:1}
  .dojo-say .sifubub.on{display:block}
  .dojo-say .sifubub .csay-b{min-height:40px;padding:8px 12px;font-size:14px}
}
@media (hover:none){
  .dojo-scene .hot span{opacity:.9;font-size:11px;padding:3px 6px}
  .dojo-scene.lightsoff .hot:not(.dlantern) span{opacity:0}
}

/* ---- Dialogues with the Master: topic chips, the dialogue panel, coins won ---- */
.dlg-hint{margin:0 0 10px;color:var(--muted);font-size:14px}
.chips button{font:600 15px/1.2 Barlow,system-ui,sans-serif;background:#fff;color:#141414;border:1px solid #cfc8bc;border-radius:999px;padding:9px 14px;min-height:44px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color .15s,box-shadow .15s,transform .15s}
.chips button:hover{border-color:#c8102e;box-shadow:0 2px 0 #c8102e}
.chips button:focus-visible{outline:3px solid #f2be1a;outline-offset:2px}
.chips button.won::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--mc,#b87333);box-shadow:inset 0 0 0 2px rgba(0,0,0,.18)}
.chips button[data-metal=copper]{--mc:#c07a3e}.chips button[data-metal=silver]{--mc:#c9ced6}.chips button[data-metal=gold]{--mc:#f2be1a}.chips button[data-metal=platinum]{--mc:#e5e4f2}
.chips[hidden]{display:none}
.tokens figure{transition:opacity .3s,filter .3s}
.tokens figure:not(.won){opacity:.38;filter:grayscale(.6)}
.tokens figure.next{opacity:.7;filter:none}
.tokens figure.won figcaption{color:#f2be1a}
.dlgq{background:#141418;color:#e9e4d8;border-left:4px solid #c8102e;padding:14px 16px 16px;margin:0 0 14px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.dlgq[hidden]{display:none}
.dlgq-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.dlgq-t{font:700 15px/1.1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#f2be1a}
.dlgq-x{width:36px;height:36px;border-radius:50%;border:0;background:#2a2a30;color:#fff;font-size:22px;line-height:1;cursor:pointer;flex:none}
.dlgq-x:hover,.dlgq-x:focus-visible{background:#c8102e;outline:none}
.dlgq-say{background:#fffdf6;color:#141414;border:2px solid #141414;border-radius:12px;padding:9px 12px;margin:0 0 10px;box-shadow:3px 3px 0 #000;position:relative}
.dlgq-say .sb-n{display:block;font:700 12px/1 "Barlow Condensed",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#c8102e;margin-bottom:5px}
.dlgq-say p{margin:0;font-size:15.5px;line-height:1.45;font-style:italic}
.dlgq-k{margin:0 0 12px;color:#bdb6a8;font-size:14px;line-height:1.4}
.dlgq .qz-q{color:#fff}
.dlgq .qz-o .csay-b{color:#fff}
.dlgq-f{margin-top:10px}
.dlgq-f p{margin:0 0 8px;line-height:1.45}
.dlgq-v{font:700 17px/1.2 "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase}
.dlgq-v.ok{color:#5fd68f}.dlgq-v.bad{color:#ff7a6e}
.dlgq-e{font-size:15px;color:#e9e4d8}
.dlgq-b{font-size:14px;color:#bdb6a8}.dlgq-b span{color:#f2be1a;font-weight:700}.dlgq-b cite{font-style:italic;color:#fff}
.dlgq .sb-row .csay-b{font-size:14px;padding:10px 14px;min-height:42px}
.dlgq-score{font-size:30px!important;text-align:center;margin:6px 0!important}
.dlgq-coin{display:flex;justify-content:center;margin:4px 0 10px;perspective:600px}
@media (max-width:640px){.dlgq{padding:12px 12px 14px}.dlgq-say p{font-size:15px}.chips button{font-size:14px;padding:8px 12px}}

/* ---- The Combined Martial Arts Club: the room ---- */
.club-scene>img{display:block;width:100%;height:auto}
.club-scene .hot span{bottom:calc(100% + 4px)}
.club-scene .hot[data-club=sprawl] span,.club-scene .hot[data-club=rope] span{bottom:auto;top:calc(100% + 4px)}
.clubbub{left:30%;top:6%;width:min(42%,420px)}
@media (max-width:640px),(hover:none){.dojo-pan>.club-scene{min-width:960px}}

/* bō-shuriken: the sight steadies while a throw button is held */
.th-ret.steady{border-color:#f2be1a;box-shadow:0 0 0 3px rgba(242,190,26,.35),0 0 10px rgba(0,0,0,.7)}
.th-ret.steady::before,.th-ret.steady::after{background:#f2be1a}

/* ---- club drills (clean placeholder art in SVG; painted art comes later) ---- */
.dgx-speed .dgx-stage,.dgx-rope .dgx-stage,.dgx-thai .dgx-stage,.dgx-grapple .dgx-stage{height:auto;aspect-ratio:1/1.08;width:min(92vw,56vh,480px)}
.dgx-sprawl .dgx-stage{height:auto;aspect-ratio:300/200;width:min(94vw,82vh,620px)}
.cl-scene{position:absolute;inset:0 0 48px 0;background:radial-gradient(ellipse at 50% 40%,rgba(255,240,210,.14),rgba(0,0,0,.35) 70%);border:1px solid rgba(255,255,255,.12);border-radius:8px;overflow:hidden}
.cl-svg{position:absolute;inset:0;width:100%;height:100%}
.cl-tap{position:absolute;left:25%;top:10%;width:50%;height:60%;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.cl-lane{position:absolute;left:0;right:0;bottom:0;height:38px;border:2px solid rgba(255,255,255,.3);border-radius:19px;background:rgba(0,0,0,.55);overflow:hidden}
.cl-line{position:absolute;left:18%;top:3px;bottom:3px;width:4px;margin-left:5px;border-radius:2px;background:#f2be1a;box-shadow:0 0 10px #f2be1a}
.cl-note{position:absolute;left:0;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.8);opacity:0;will-change:transform}
.sb-bag{transform-box:view-box;transform-origin:100px 48px}
.sb-bag.hit{animation:sbhit .2s ease-out}.sb-bag.hit2{animation:sbhit2 .2s ease-out}
@keyframes sbhit{0%{transform:none}40%{transform:rotate(-26deg) scaleY(.9)}100%{transform:none}}
@keyframes sbhit2{0%{transform:none}40%{transform:rotate(26deg) scaleY(.9)}100%{transform:none}}
.sb-gl circle{transition:transform .12s;transform-box:fill-box;transform-origin:center}
.sb-gl.l circle:first-child,.sb-gl.r circle:last-child{animation:sbgl .16s ease-out}
@keyframes sbgl{50%{transform:translateY(-34px) scale(.85)}}
.rp-man{transform-box:view-box;transform-origin:100px 186px}
.cl-thai .tp-pad.lit rect:first-child{stroke:#f2be1a;stroke-width:3}
.tp-call{position:absolute;left:6px;right:6px;top:8px;display:flex;flex-wrap:wrap;gap:5px;justify-content:center}
.tp-call span{font:700 14px/1 "Barlow Condensed",sans-serif;letter-spacing:1px;text-transform:uppercase;background:rgba(20,20,24,.85);color:#d8d1c5;border:1px solid #444;border-radius:4px;padding:5px 8px}
.tp-call span.on{background:#f2be1a;color:#141414;border-color:#f2be1a;transform:scale(1.1)}
.tp-call span.ok{background:#1f5f3a;color:#fff;border-color:#3fbf73}
.tp-bar{position:absolute;left:10%;right:10%;bottom:-36px;height:8px;border-radius:4px;background:rgba(255,255,255,.15);overflow:hidden}
.tp-bar i{display:block;height:100%;width:0;background:#f2be1a}
.dgx-thai .dgx-ctl .btn{min-width:84px}
.dgx-thai .dgx-ctl .btn.lit{background:#f2be1a;color:#141414}
.gd-dummy{transform-box:view-box;transform-origin:100px 176px;transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.gd-dummy.thrown{transform:rotate(-96deg) translateY(10px)}
.gd-dummy.stuffed{animation:gdwob .5s}
@keyframes gdwob{25%{transform:rotate(5deg)}50%{transform:rotate(-4deg)}75%{transform:rotate(2deg)}}
.cl-grap .gd-meter{bottom:-40px}
.sp-warn{font:900 40px/1 "Barlow Condensed",sans-serif;fill:#f2be1a;opacity:0;transition:opacity .08s}
.sp-warn.on{opacity:1}
@media (max-width:640px){.cl-lane{height:34px}.tp-call span{font-size:13px;padding:4px 6px}.dgx-thai .dgx-ctl .btn{min-width:30%;padding:11px 6px}}
@media (prefers-reduced-motion:reduce){.sb-bag.hit,.sb-bag.hit2,.sb-gl circle,.gd-dummy.stuffed{animation:none}.gd-dummy{transition:none}}
.cl-thai,.cl-grap{overflow:visible}.cl-sprawl{bottom:0}
#club{max-width:1080px;margin-left:auto;margin-right:auto;padding:0 20px;box-sizing:border-box}
.dlgq{scroll-margin-top:72px}

.ts-club{margin:12px 0 0;font-size:16px}.tl-h{color:var(--muted);font-weight:600;font-size:14px}
.tpform{grid-template-columns:minmax(0,1fr)}
