/* Kineko World. Our original Famicom-shrine style (indigo night, washi cream frames with ink shadow,
   bevelled gold, seigaiha waves, pixel display type), with a readable rounded sans for all body text.
   Pixel fonts only at display sizes (>= 22px). Numbers: Inter with tabular figures.
   All text colours pass WCAG AA on every surface used (checked: lowest is mute on night, 5.2:1). */
:root{
  --night:#24188C; --deep:#0A0726; --panel:#120E3C; --panel-2:#0D0A30; --row:#1A1450; --line:#2A2260; --line-2:#3A3180;
  --ink:#000; --washi:#FCE0A8; --washi-2:#FFF3D6;
  --gold:#F8B800; --gold-lo:#AC7C00; --gold-hi:#FCE4A0;
  --shu:#D82800; --shu-hi:#FC7460; --wave:#3CBCFC; --mute:#A49CD0; --jade:#58D858;
  --up:var(--jade); --down:var(--shu-hi);
  --f:"M PLUS Rounded 1c","Zen Maru Gothic",system-ui,sans-serif;
  --f-num:"Inter",system-ui,sans-serif;
  --f-display:"Jersey 10","DotGothic16",monospace;
  --f-kanji:"DotGothic16","M PLUS Rounded 1c",monospace;
  --px:4px; --hdr:56px; --tab:62px; --gut:16px; --max:1280px;
  color-scheme:dark;
}
@media (min-width:900px){ :root{ --hdr:64px; --gut:28px; } }
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 12px)}
body{background:var(--deep);color:var(--washi);font:400 16px/1.55 var(--f);min-height:100svh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
.px,.cm img,.lives img,.rules img{image-rendering:pixelated}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--gold);color:var(--ink);padding:10px 14px;font-weight:800;box-shadow:0 0 0 var(--px) var(--ink)}
.skip:focus{top:10px}
.muted,.dim{color:var(--mute)} .center{text-align:center}
.up{color:var(--up)} .down{color:var(--down)} .gold-t{color:var(--gold)}
.i{width:20px;height:20px;flex:none}
.jp{font-family:var(--f-kanji)}
.num,.kv dd,.tbl td,.stat .u,.field .sub{font-family:var(--f-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","cv11"}
.fine{font-size:14px;color:var(--mute);line-height:1.55}
.fine a,.link{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
[hidden]{display:none!important}
sub{font-size:.58em;vertical-align:-.12em;line-height:0;margin:0 1px}
.field .in .pv{flex:none}
b,strong{font-weight:800}

/* ---------- header (<= 64px) ---------- */
.hdr{position:sticky;top:0;z-index:50;height:var(--hdr);display:flex;align-items:center;gap:10px;padding:0 var(--gut);background:var(--deep);border-bottom:var(--px) solid var(--washi);box-shadow:0 var(--px) 0 var(--ink)}
.brand{display:flex;align-items:center;gap:8px;flex:none}
.brand img{width:34px;height:34px}
.brand .kj{font-family:var(--f-kanji);font-size:24px;line-height:1;color:var(--gold);text-shadow:2px 2px 0 var(--gold-lo)}
.brand b{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:1;letter-spacing:1px;color:var(--washi);transform:translateY(1px)}
.brand b em{font-style:normal;color:var(--gold)}
@media (max-width:420px){ .brand .kj{display:none} }
@media (max-width:520px){ .brand b{display:flex;flex-direction:column;font-size:24px;line-height:.9;transform:none} .brand b em{font-size:13px;letter-spacing:2px} }
.nav{display:none;align-items:center;gap:2px;margin-left:10px}
.nav a{display:flex;align-items:center;gap:7px;height:40px;padding:0 10px;border:3px solid transparent;font-weight:700;font-size:15px;color:var(--washi)}
.nav a:hover{border-color:var(--mute)}
.nav a[aria-current=page]{border-color:var(--gold);color:var(--gold)}
.nav .i{width:18px;height:18px}
.hdr-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.gu-tog{display:inline-flex;border:2px solid var(--line-2);background:var(--panel-2);flex:none}
.gu-tog button{font:700 13px/1 var(--f);color:var(--mute);padding:6px 9px;background:none;border:0;cursor:pointer;min-height:30px}
.gu-tog button[aria-pressed="true"]{background:var(--gold);color:#140C30}
.gu-tog button:focus-visible{outline:2px solid var(--washi);outline-offset:1px}
@media (max-width:520px){ .hdr .gu-tog{display:none} }
.ticker{display:none;align-items:center;gap:14px;font-size:14px;color:var(--mute)}
.ticker b{color:var(--washi);font-family:var(--f-num);font-weight:700}
.ticker .dot{width:8px;height:8px;background:var(--mute);display:inline-block;margin-right:6px}
.ticker .dot.live{background:var(--jade);animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
@media (min-width:900px){ .nav{display:flex} .m-docs{display:none!important} }
.m-docs[aria-current=page]{border-color:var(--gold);color:var(--gold)}
@media (min-width:1480px){ .ticker{display:flex} }

/* ---------- buttons: the original bevel ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;font-weight:800;font-size:16px;line-height:1.1;white-space:nowrap;cursor:pointer;text-align:center;user-select:none;border:0}
.btn:active{transform:translateY(2px)}
.btn.gold{color:var(--ink);background:var(--gold);box-shadow:inset var(--px) var(--px) 0 var(--gold-hi),inset calc(var(--px)*-1) calc(var(--px)*-1) 0 var(--gold-lo),0 0 0 var(--px) var(--ink)}
.btn.gold:hover{background:#FFC928}
.btn.shu{color:#fff;background:var(--shu);box-shadow:inset var(--px) var(--px) 0 var(--shu-hi),inset calc(var(--px)*-1) calc(var(--px)*-1) 0 #7a1600,0 0 0 var(--px) var(--ink)}
.btn.line,.btn.ghost{color:var(--washi);background:rgba(10,7,38,.6);box-shadow:inset 0 0 0 3px var(--washi)}
.btn.line:hover,.btn.ghost:hover{background:var(--washi);color:var(--ink)}
.btn.sm{min-height:38px;padding:0 12px;font-size:15px}
.btn.lg{min-height:54px;font-size:18px;padding:0 22px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.btn img{width:22px;height:22px;image-rendering:pixelated}
.connect.on{background:var(--deep);color:var(--gold);box-shadow:inset 0 0 0 3px var(--gold)}
.connect .av{width:16px;height:16px;background:var(--gold);box-shadow:inset -4px -4px 0 var(--gold-lo)}
.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;color:var(--washi);border:3px solid transparent}
.icon-btn:hover{border-color:var(--mute)}
.icon-btn[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}

/* ---------- layout ---------- */
main{max-width:var(--max);margin:0 auto;padding:18px var(--gut) 36px}
@media (min-width:900px){ main{padding:26px var(--gut) 48px} }
.view{animation:vIn .36s steps(5) both}
@keyframes vIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.stack{display:grid;gap:16px;min-width:0}
.stack > *{min-width:0}
.row{display:flex;align-items:center;gap:10px;min-width:0}
.row.wrap{flex-wrap:wrap}
.sp{flex:1}
.grid-2{display:grid;gap:26px;min-width:0;grid-template-columns:minmax(0,1fr)}
.grid-2 > *{min-width:0}
@media (min-width:1000px){ .grid-2{grid-template-columns:minmax(0,1fr) 390px;align-items:start} .grid-2 > aside{position:sticky;top:calc(var(--hdr) + 4px)} }

/* section heading: pixel kanji + pixel display title (large), readable subline */
.sh{display:flex;align-items:flex-end;flex-wrap:wrap;gap:6px 14px;margin:34px 0 16px}
.sh.first{margin-top:4px}
.sh .kj{font-family:var(--f-kanji);font-size:32px;line-height:1;color:var(--gold);text-shadow:3px 3px 0 var(--gold-lo)}
.sh h1,.sh h2{font-family:var(--f-display);font-weight:400;font-size:40px;line-height:.85;letter-spacing:1.5px;color:var(--washi)}
@media (min-width:900px){ .sh h1,.sh h2{font-size:50px} .sh .kj{font-size:40px} }
.sh .sub{flex-basis:100%;color:var(--mute);font-size:15.5px}
.sh .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.eyebrow{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.disp{font-family:var(--f-display);font-weight:400;letter-spacing:1px;line-height:.95}
.h3{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:.95;letter-spacing:.5px}

/* pixel window (the original .win) */
.win{position:relative;background:var(--deep);border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink),inset 0 0 0 var(--px) var(--ink);padding:24px 16px 16px;min-width:0}
@media (min-width:640px){ .win{padding:28px 22px 20px} }
.win.gold{border-color:var(--gold)}
.win-t{position:absolute;top:-18px;left:14px;background:var(--deep);padding:0 10px;font-family:var(--f-display);font-size:28px;line-height:1.1;color:var(--gold);letter-spacing:1px;white-space:nowrap;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis}
.win-t .jp{font-size:22px;margin-right:8px}
/* quieter frame for dense grids */
.card{background:var(--panel-2);border:3px solid var(--line);min-width:0}
.card.pad{padding:16px}
@media (min-width:640px){ .card.pad{padding:18px} }

/* preview tag (the old .demo) */
.pv{display:inline-flex;align-items:center;font-family:var(--f);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:2px solid var(--mute);color:var(--mute);padding:0 6px;line-height:1.5;vertical-align:middle;white-space:nowrap}

/* district badge: pixel kanji tile + English name */
.db{display:inline-flex;align-items:center;gap:7px;height:26px;padding-right:8px;background:var(--panel);box-shadow:inset 0 0 0 2px var(--dc);color:var(--washi);font-size:13px;font-weight:800;letter-spacing:.05em;white-space:nowrap;line-height:1}
.db .kj{display:grid;place-items:center;width:26px;height:26px;background:var(--dbg,var(--dc));color:var(--dink,#000);font-family:var(--f-kanji);font-size:17px;font-weight:400;letter-spacing:0}
.db.lg{height:34px;font-size:15px;padding-right:10px}
.db.lg .kj{width:34px;height:34px;font-size:23px}

/* neko-mark */
.cm{flex:none;background:var(--night);box-shadow:0 0 0 3px var(--ink);object-fit:cover}
.cm.gen{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--c) 32%,var(--night)),var(--panel) 75%)}
.cm.gen svg{width:100%;height:100%}

/* chips / segmented / search */
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:3px;margin:-3px}
.chips::-webkit-scrollbar{display:none}
.chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:3px solid var(--mute);color:var(--washi);font-weight:700;font-size:15px;white-space:nowrap;flex:none;background:var(--deep)}
.chip:hover{border-color:var(--washi)}
.chip[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.seg{display:inline-flex;border:3px solid var(--washi);background:var(--deep)}
.seg button{min-height:34px;padding:0 12px;font-weight:700;font-size:15px;color:var(--washi)}
.seg button + button{border-left:3px solid var(--washi)}
.seg button:hover{background:rgba(252,224,168,.08)}
.seg button[aria-pressed=true]{background:var(--washi);color:var(--ink)}
.seg button .i{width:18px;height:18px}
.seg.full{display:flex}.seg.full button{flex:1}
.seg.buy-sell button{min-height:48px;font-family:var(--f-display);font-weight:400;letter-spacing:1px;font-size:28px}
.seg.buy-sell button[aria-pressed=true][data-v=buy]{background:var(--jade);color:var(--ink)}
.seg.buy-sell button[aria-pressed=true][data-v=sell]{background:var(--shu);color:#fff}
.search{position:relative;flex:1;min-width:200px;display:flex;align-items:center;gap:8px;border:3px solid var(--washi);padding:0 10px;height:42px;background:var(--deep)}
.search:focus-within{border-color:var(--gold)}
.search input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--washi);font-size:16px}
.search input::placeholder{color:var(--mute)}
.search .i{color:var(--gold)}

/* ---------- explore: hero ---------- */
.hero{position:relative;overflow:hidden;border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink);background:var(--night) url(../assets/hero.jpg) 72% 50%/cover no-repeat;min-height:430px;display:grid;grid-template-columns:minmax(0,1fr);align-items:center}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,7,38,.93) 0%,rgba(10,7,38,.74) 40%,rgba(10,7,38,0) 64%);pointer-events:none}
.hero-copy{position:relative;z-index:2;padding:28px 22px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:580px;min-width:0}
@media (min-width:900px){ .hero-copy{padding:40px 44px} .hero{min-height:480px} }
.hero .mark{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.hero .mark .kj{font-family:var(--f-kanji);font-size:66px;line-height:.9;color:var(--gold);text-shadow:4px 4px 0 var(--gold-lo),8px 8px 0 var(--ink)}
.hero h1{font-family:var(--f-display);font-weight:400;font-size:clamp(42px,6vw,66px);line-height:.88;letter-spacing:1.5px;text-shadow:4px 4px 0 var(--ink)}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .lead{font-size:17px;line-height:1.5;text-shadow:2px 2px 0 var(--ink);max-width:44ch}
.ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:4px}
.pay-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;padding:8px 12px;background:rgba(10,7,38,.82);border:3px solid var(--gold);justify-self:start;max-width:100%}
.pay-line b{color:var(--gold)}
.pay-line .coins{display:flex;gap:5px}
.pay-line .coins span{width:22px;height:22px;display:grid;place-items:center;font:800 12px/1 var(--f-num);box-shadow:0 0 0 2px var(--ink);color:#000}
.tk-eth{background:#B6BEFF}.tk-usdc{background:#62A8F0}.tk-usdt{background:#3CCB9A}
@media (max-width:760px){
  .hero{display:flex;flex-direction:column;min-height:0;background:var(--deep)}
  .hero::before{content:"";display:block;height:210px;background:var(--night) url(../assets/hero.jpg) 70% 38%/cover no-repeat;border-bottom:var(--px) solid var(--washi)}
  .hero video{position:absolute;inset:0 0 auto 0;height:210px;object-position:70% 38%}
  .hero::after{display:none}
  .hero-copy{padding:18px 16px 20px}
  .hero .mark .kj{font-size:48px}
  .hero .lead{font-size:16px}
  .ctas .btn{flex:1 1 140px}
}

/* live marquee (gold band, like the old site) */
.marquee{margin:26px calc(var(--gut) * -1) 0;background:var(--gold);color:var(--ink);border-block:var(--px) solid var(--ink);overflow:hidden;white-space:nowrap;position:relative}
@media (min-width:1336px){ .marquee{margin-inline:0;box-shadow:0 0 0 var(--px) var(--ink)} }
.marquee .track{display:inline-flex;gap:34px;padding:9px 0;animation:slide 70s linear infinite;font-family:var(--f-display);font-size:26px;letter-spacing:.5px;line-height:1}
.marquee .track span{display:inline-flex;align-items:center;gap:10px}
.marquee .track .jp{font-size:20px;color:var(--shu)}
.marquee .track img{width:22px;height:22px;image-rendering:pixelated}
.marquee:hover .track{animation-play-state:paused}
.marquee .pvm{position:absolute;right:0;top:0;bottom:0;display:grid;place-items:center;padding:0 10px;background:var(--gold);box-shadow:-14px 0 12px var(--gold);font:800 12px/1 var(--f);letter-spacing:.06em;text-transform:uppercase}
@keyframes slide{to{transform:translateX(-50%)}}

/* house coin + gold desk row */
.deskrow{display:grid;gap:26px;grid-template-columns:minmax(0,1fr)}
.deskrow > *{min-width:0}
@media (min-width:1000px){ .deskrow{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);align-items:start} }
.house{display:grid;gap:12px}
.house .top{display:flex;align-items:center;gap:12px;min-width:0}
.house .top > div:last-child{flex:none}
.house .nm{font-family:var(--f-display);font-size:36px;line-height:.9}
.house .tag{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:2px 7px}
.house .pr{font-family:var(--f-display);font-size:42px;line-height:.9;color:var(--gold)}
.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat{border:3px solid var(--line);background:var(--panel-2);padding:9px 11px;min-width:0}
.stat .k{font-size:13px;color:var(--mute);font-weight:700}
.stat .v{font-family:var(--f-display);font-size:30px;line-height:1;color:var(--washi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.stat .v.g{color:var(--gold)}
@media (max-width:520px){ .stat .v{font-size:24px} .stat{padding:8px 9px} .stat .k{font-size:12.5px} .stat-row{gap:8px} }
.stat .u{font-size:12.5px;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utils{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:700px){ .utils{grid-template-columns:repeat(3,minmax(0,1fr))} }
.util{position:relative;display:grid;align-content:start;gap:4px;padding:14px;background:var(--panel-2);border:3px solid var(--line);transition:border-color .15s steps(2),transform .15s steps(2),box-shadow .15s steps(2)}
.util:hover{border-color:var(--gold);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--gold-lo)}
.util img{width:38px;height:38px;margin-bottom:4px;image-rendering:pixelated}
.util b{font-family:var(--f-display);font-weight:400;font-size:28px;line-height:.9;letter-spacing:.5px}
.util span{font-size:14.5px;color:var(--mute);line-height:1.4}
.util .big{color:var(--gold);font-weight:800;font-size:14px;margin-top:4px}

/* district cards with their cat */
.dstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(206px,1fr);gap:14px;overflow-x:auto;scrollbar-width:none;padding:4px 8px 10px 4px;margin:-4px}
.dstrip::-webkit-scrollbar{display:none}
@media (min-width:1200px){ .dstrip{grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr))} }
.dcard{position:relative;display:grid;align-content:start;gap:6px;padding:14px 12px 12px;text-align:left;background:var(--panel-2);border:3px solid var(--line);min-height:176px;overflow:hidden;transition:border-color .15s steps(2),transform .15s steps(2),box-shadow .15s steps(2)}
.dcard::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--dc)}
.dcard:hover{border-color:var(--dc);transform:translateY(-2px)}
.dcard[aria-pressed=true]{border-color:var(--dc);background:color-mix(in srgb,var(--dc) 10%,var(--panel-2));box-shadow:4px 4px 0 var(--ink)}
.dcard .cat{position:absolute;right:-8px;bottom:-8px;width:92px;height:92px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.7));transition:transform .2s steps(3)}
.dcard:hover .cat,.dcard[aria-pressed=true] .cat{transform:translateY(-5px) rotate(-4deg)}
.dcard .v{font-family:var(--f-display);font-size:30px;line-height:.95;margin-top:6px}
.dcard .v small{font-family:var(--f);font-size:13px;color:var(--mute);letter-spacing:0}
.dcard .u{font-size:13px;color:var(--mute);max-width:62%;line-height:1.35}
.dcard .l{justify-self:start;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:1px 5px}
.dcard.all .big{font-family:var(--f-display);font-size:44px;line-height:.9;color:var(--gold);margin-top:6px}

/* explore toolbar + list */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.toolbar .chips{flex:1 1 100%}
@media (min-width:820px){ .toolbar .chips{flex:0 1 auto} }
.explore{display:grid;gap:26px;min-width:0;grid-template-columns:minmax(0,1fr)}
.explore > *{min-width:0}
@media (min-width:1200px){ .explore{grid-template-columns:minmax(0,1fr) 340px;align-items:start} .explore > aside{position:sticky;top:calc(var(--hdr) + 4px)} }

/* coin cards */
.cgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(292px,1fr))}
@media (max-width:420px){ .cgrid{grid-template-columns:minmax(0,1fr)} }
.ccard{position:relative;display:grid;gap:10px;padding:13px 14px 14px;background:var(--panel-2);border:3px solid var(--line);border-left:6px solid var(--dc,var(--line));transition:border-color .12s steps(2),transform .12s steps(2),box-shadow .12s steps(2);min-width:0}
.ccard:hover{border-color:var(--washi);border-left-color:var(--dc);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.ccard.house{border-color:var(--gold);border-left-color:var(--gold)}
.ccard .hd{display:flex;gap:12px;align-items:flex-start;min-width:0}
.ccard .nm{font-weight:800;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.ccard .sy{color:var(--mute);font-weight:700;font-size:14px}
.ccard .meta{display:flex;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap;font-size:13px;color:var(--mute)}
.ccard .pr{margin-left:auto;text-align:right;flex:none}
.ccard .pr .v{font-family:var(--f-display);font-size:32px;line-height:.85;color:var(--gold)}
.ccard .pr .u{font-size:12.5px;color:var(--mute);font-family:var(--f-num)}
.ccard .spark{height:38px;width:100%;display:block}
.ccard .ft{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:3px dashed var(--line);padding-top:9px}
.ccard .ft .k{color:var(--mute);font-weight:700;font-size:12.5px}
.ccard .ft .v{font-family:var(--f-num);font-weight:700;font-size:15px}
.snipe{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--ink);background:var(--gold);padding:1px 6px;animation:blink 1s steps(2) infinite}
.snipe .i{width:13px;height:13px}
.hp-tag{font-size:11.5px;font-weight:800;color:var(--ink);background:#F5B544;padding:1px 6px;letter-spacing:.02em;cursor:help}
.pot,.streak{display:grid;gap:12px}
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tiers span{display:grid;justify-items:center;gap:2px;padding:8px 4px;border:3px solid var(--line);background:var(--panel-2);text-align:center}
.tiers b{font-family:var(--f-display);font-weight:400;font-size:28px;line-height:1;color:var(--mute)}
.tiers small{font-size:12.5px;color:var(--mute)}
.tiers .past b{color:var(--gold-lo)}
.tiers .on{border-color:var(--gold);background:#231B00}
.tiers .on b{color:var(--gold)}
.newdot{font-size:11.5px;font-weight:800;color:var(--ink);background:var(--jade);padding:1px 6px;letter-spacing:.04em}

/* floor mini meter (pixel bar) */
.fmeter{display:grid;gap:5px}
.fmeter .bar{height:10px;background:var(--deep);box-shadow:inset 0 0 0 2px var(--line);position:relative}
.fmeter .bar i{position:absolute;left:2px;top:2px;bottom:2px;background:repeating-linear-gradient(90deg,var(--dc,var(--gold)) 0 6px,color-mix(in srgb,var(--dc,var(--gold)) 65%,#000) 6px 8px)}
.fmeter .l{display:flex;justify-content:space-between;font-size:13px;color:var(--mute);gap:8px}
.fmeter .l b{color:var(--washi);font-family:var(--f-num)}

/* tables */
.tbl-wrap{overflow-x:auto;border:3px solid var(--line);background:var(--panel-2)}
.tbl{width:100%;border-collapse:collapse;font-size:15px;min-width:680px}
.tbl th{text-align:left;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);padding:10px 12px;white-space:nowrap;background:var(--deep)}
.tbl td{padding:10px 12px;border-top:3px solid var(--line);white-space:nowrap}
.tbl td.r,.tbl th.r{text-align:right}
.tbl tbody tr:hover td{background:#15104A}
.tbl .coin{display:flex;align-items:center;gap:10px;font-family:var(--f)}
.tbl .coin b{font-weight:800}
.tbl .coin small{display:block;color:var(--mute);font-size:12.5px}
.tbl .u{display:block;font-size:12px;color:var(--mute)}
.tbl.compact{min-width:0}
.tbl.compact td,.tbl.compact th{padding:9px 10px}

/* live feed (old log style: pixel triangles) */
.feed-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.feed ol{list-style:none;display:grid}
.feed li{display:grid;grid-template-columns:10px auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:3px solid var(--line);font-size:14.5px}
.feed li:first-child{border-top:0}
.feed li::before{content:"";border-left:9px solid var(--washi);border-top:6px solid transparent;border-bottom:6px solid transparent;width:0;height:0}
.feed li.new{animation:fIn .45s steps(4)}
@keyframes fIn{from{background:rgba(248,184,0,.2);transform:translateX(-6px)}to{background:transparent;transform:none}}
.feed .side{font-size:12px;font-weight:800;letter-spacing:.04em;padding:1px 5px}
.feed .side.b{background:var(--jade);color:var(--ink)}
.feed .side.s{background:var(--shu);color:#fff}
.feed .what{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mute)}
.feed .what b{color:var(--washi)}
.feed .amt{font-family:var(--f-num);font-weight:700;text-align:right;color:var(--washi)}
.feed .amt small{display:block;font-weight:500;font-size:12px}
.live-dot{width:10px;height:10px;background:var(--jade);animation:blink 1.2s steps(2) infinite;flex:none}

/* ---------- coin page ---------- */
.back{display:inline-flex;align-items:center;gap:4px;color:var(--mute);font-size:15px;font-weight:700;margin-bottom:22px}
.back:hover{color:var(--gold)}
.chead{display:grid;gap:16px}
.chead .t{display:flex;gap:14px;align-items:flex-start}
.chead h1{font-family:var(--f-display);font-weight:400;font-size:clamp(38px,6vw,54px);line-height:.85;letter-spacing:1px}
.chead h1 small{font-family:var(--f);font-size:17px;color:var(--mute);font-weight:700;margin-left:8px;letter-spacing:0}
.chead .meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:10px;font-size:14px;color:var(--mute)}
.chead .desc{font-size:16px;max-width:70ch}
.addr{display:inline-flex;align-items:center;gap:4px;color:var(--washi);font-family:var(--f-num);font-weight:600;font-size:.95em;text-decoration:underline;text-decoration-color:var(--mute);text-underline-offset:3px}
.addr:hover{color:var(--gold);text-decoration-color:var(--gold)}
.addr .ext{width:11px;height:11px}
.cstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;grid-auto-rows:1fr}
@media (min-width:640px){ .cstats{grid-template-columns:repeat(4,minmax(0,1fr))} }
.floorwin{display:grid;gap:12px}
.floorwin .h{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap}
.floorwin .h b{font-family:var(--f-display);font-weight:400;font-size:34px;line-height:.95;color:var(--gold)}
.floorwin .h span{color:var(--washi);font-size:16px}
.pbar{height:24px;background:var(--deep);box-shadow:inset 0 0 0 3px var(--washi),0 0 0 3px var(--ink);position:relative}
.pbar i{position:absolute;left:6px;top:6px;bottom:6px;max-width:calc(100% - 12px);background:repeating-linear-gradient(90deg,var(--dc,var(--gold)) 0 10px,color-mix(in srgb,var(--dc,var(--gold)) 62%,#000) 10px 12px);transition:width .6s steps(8)}
.floorwin .l{display:flex;justify-content:space-between;font-size:14px;color:var(--mute);gap:10px;flex-wrap:wrap}
.floorwin .l b{color:var(--washi);font-family:var(--f-num)}
.chart-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.chart-top .pr{font-family:var(--f-display);font-size:40px;line-height:.9;color:var(--gold)}
.chart-top .pr small{font-family:var(--f-num);font-size:14px;color:var(--mute);margin-left:8px}
#chart{height:330px;width:100%;background:var(--panel-2);border:3px solid var(--line)}
@media (min-width:900px){ #chart{height:410px} }
.ptabs{display:flex;border-bottom:var(--px) solid var(--washi);margin:-24px -16px 16px;overflow-x:auto;scrollbar-width:none}
@media (min-width:640px){ .ptabs{margin:-28px -22px 18px} }
.ptabs [role=tab]{flex:1;min-height:52px;padding:0 14px;font-family:var(--f-display);font-size:28px;letter-spacing:.5px;white-space:nowrap;border-right:var(--px) solid var(--washi)}
.ptabs [role=tab]:last-child{border-right:0}
.ptabs [role=tab][aria-selected=true]{background:var(--gold);color:var(--ink)}
.ptabs [role=tab]:hover:not([aria-selected=true]){background:rgba(252,224,168,.08)}
.facts{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-bottom:16px}
.fact{display:flex;gap:10px;align-items:flex-start;padding:12px;border:3px solid var(--line);background:var(--panel-2);font-size:15px}
.fact img{width:28px;height:28px;flex:none;image-rendering:pixelated}
.fact b{display:block;color:var(--gold)}
.fact span{font-size:14.5px}

/* swap panel */
.swap{display:grid;gap:12px}
.field{display:grid;gap:6px;padding:10px 12px;border:3px solid var(--washi);background:var(--deep);min-width:0}
.field:focus-within{border-color:var(--gold)}
.field .top{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--mute);font-weight:700;gap:8px}
.field .in{display:flex;align-items:center;gap:10px;min-width:0}
.field input{flex:1;min-width:0;width:100%;background:none;border:0;outline:none;font-family:var(--f-num);font-size:28px;font-weight:700;color:var(--washi);font-variant-numeric:tabular-nums}
.field input::placeholder{color:#8a82c0}
.field .sub{font-size:13.5px;color:var(--mute)}
.asset-sel{display:inline-flex;gap:6px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.asset-sel button,.tok{min-height:34px;padding:0 9px;border:3px solid var(--mute);font-weight:800;font-size:14px;background:var(--deep);color:var(--washi);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asset-sel button:hover{border-color:var(--washi)}
.asset-sel button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.tok img,.tok .cm{width:20px;height:20px}
.presets{display:flex;gap:6px;flex-wrap:wrap}
.presets button{min-height:32px;padding:0 9px;border:2px solid var(--line-2);color:var(--washi);font-size:14px;font-weight:700;font-family:var(--f-num)}
.presets button:hover{border-color:var(--gold);color:var(--gold)}
.route{display:flex;align-items:center;gap:8px;padding:9px 12px;border:3px dashed var(--wave);font-size:15px;font-weight:800;color:var(--washi);flex-wrap:wrap}
.route .i{color:var(--wave);width:18px;height:18px}
.route small{color:var(--wave);margin-left:auto;white-space:nowrap;font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em}
.kv{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-size:15px}
.kv dt{color:var(--mute)}
.kv dd{text-align:right;font-weight:700}
.kv dd small{display:block;font-weight:500;color:var(--mute);font-size:12.5px}
.kv .tot dt,.kv .tot dd{padding-top:9px;border-top:3px dashed var(--line);color:var(--gold);font-weight:800}
.kv .tot dd{font-size:17px}
.note{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;font-size:14.5px;line-height:1.45;border:3px solid var(--line);color:var(--washi);background:var(--panel-2)}
.note .i{width:18px;height:18px;flex:none;margin-top:2px;color:var(--gold)}
.note.warn{border-color:var(--gold);background:#231B00}
.note.bad{border:3px dashed var(--shu-hi);background:#260B07}
.note.bad .i{color:var(--shu-hi)}
.note.issuer{border-color:#F4EFE6;background:var(--panel)}
.note.issuer .i{color:#FF8A9A}
.slip{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:14.5px;color:var(--mute);flex-wrap:wrap}
.ref{display:grid;gap:10px;grid-template-columns:minmax(0,1fr);min-width:0}
.coin-side{min-width:0}
.ref .url{display:flex;gap:8px;align-items:center;min-width:0}
.ref code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--washi);background:var(--panel-2);border:3px solid var(--line);padding:8px 10px}
@media (max-width:999px){ .coin-grid{gap:30px} .coin-grid > .coin-main{display:contents} .coin-grid > .coin-side{order:2} .coin-grid > .coin-main > .tabs-sec{order:3} }
.m-buybar{position:fixed;left:0;right:0;bottom:calc(var(--tab) + env(safe-area-inset-bottom));z-index:40;display:flex;gap:12px;padding:10px var(--gut);background:var(--deep);border-top:var(--px) solid var(--washi)}
.m-buybar .btn{flex:1}
@media (min-width:1000px){ .m-buybar{display:none} }

/* cap meter (limited districts): crude black + amber */
.cap{display:grid;gap:9px;padding:12px;border:3px solid #E8A33D;background:linear-gradient(135deg,#2c2014,#0d0906 80%)}
.cap .h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}
.cap .ltd{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1a0f00;background:#E8A33D;padding:2px 6px}
.cap .pbar{--dc:#E8A33D;box-shadow:inset 0 0 0 3px #F0D7B0,0 0 0 3px var(--ink)}
.cap .l{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:#F0D7B0;flex-wrap:wrap}
.cap .l b{color:#fff}

/* ---------- launch ---------- */
.lform{display:grid;gap:18px}
.lform label.f{display:grid;gap:6px;font-size:15px;font-weight:700}
.lform label.f .opt{color:var(--mute);font-weight:500}
.inp{width:100%;min-height:48px;border:3px solid var(--washi);background:var(--deep);padding:0 12px;color:var(--washi);font-size:16px}
textarea.inp{min-height:88px;padding:10px 12px;resize:vertical;line-height:1.5}
.inp:focus{outline:none;border-color:var(--gold)}
.inp[aria-invalid=true]{border-color:var(--shu-hi)}
.inp::placeholder{color:#7d75b3}
.err{font-size:14px;color:var(--shu-hi);font-weight:700}
.two{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media (min-width:560px){ .two{grid-template-columns:1fr 1fr} }
.dpick{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:560px){ .dpick{grid-template-columns:1fr 1fr} }
.dopt{position:relative;display:grid;align-content:start;gap:6px;padding:12px;border:3px solid var(--line);background:var(--panel-2);cursor:pointer;min-height:124px;overflow:hidden}
.dopt input{position:absolute;opacity:0;pointer-events:none}
.dopt:hover{border-color:var(--mute)}
.dopt:has(input:checked){border-color:var(--dc);box-shadow:4px 4px 0 var(--ink);background:color-mix(in srgb,var(--dc) 10%,var(--panel-2))}
.dopt:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:3px}
.dopt .s{font-size:14px;line-height:1.4;padding-right:58px}
.dopt .o{font-size:13px;color:var(--gold);font-weight:700;padding-right:58px}
.dopt .cat{position:absolute;right:-6px;bottom:-6px;width:66px;height:66px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.7))}
.dopt .ck{position:absolute;right:8px;top:8px;width:22px;height:22px;border:3px solid var(--mute);display:grid;place-items:center;font-weight:800;color:var(--ink)}
.dopt:has(input:checked) .ck{background:var(--dc);border-color:var(--dc)}
.upl{display:flex;align-items:center;gap:14px}
.upl .drop{width:76px;height:76px;border:3px dashed var(--washi);display:grid;place-items:center;overflow:hidden;background:var(--panel-2);color:var(--mute);font-size:13px;font-weight:700;text-align:center;cursor:pointer;flex:none;line-height:1.2}
.upl .drop:hover{border-color:var(--gold);color:var(--gold)}
.upl .drop img{width:100%;height:100%;object-fit:cover}
.snipe-ex{display:grid;gap:10px}
.snipe-ex .bars{display:flex;align-items:flex-end;gap:8px;height:96px;padding-top:6px}
.snipe-ex .bars div{flex:1;display:grid;gap:5px;justify-items:center;font:700 12.5px/1 var(--f-num);color:var(--mute);height:100%;align-content:end}
.snipe-ex .bars i{display:block;width:100%;background:var(--gold);box-shadow:inset 3px 3px 0 var(--gold-hi),inset -3px 0 0 var(--gold-lo),0 0 0 2px var(--ink)}
.snipe-ex .bars div:last-child i{background:var(--jade);box-shadow:0 0 0 2px var(--ink)}
.sell-pt{display:grid;gap:10px}
.sell-pt li{list-style:none;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:15px}
.sell-pt li img{width:28px;height:28px;image-rendering:pixelated}

/* ---------- gold desk tabs (the original big tabs) ---------- */
.dtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink);margin-bottom:30px;background:var(--deep)}
.dtabs [role=tab]{display:grid;gap:3px;justify-items:center;text-align:center;padding:12px 8px 10px;border-right:var(--px) solid var(--washi)}
.dtabs [role=tab]:last-child{border-right:0}
.dtabs [role=tab] img{width:38px;height:38px;image-rendering:pixelated}
.dtabs [role=tab] b{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:.9}
.dtabs [role=tab] span{font-size:13.5px;color:var(--mute);line-height:1.3}
.dtabs [role=tab]:hover:not([aria-selected=true]){background:rgba(252,224,168,.07)}
.dtabs [role=tab][aria-selected=true]{background:var(--gold);color:var(--ink)}
.dtabs [role=tab][aria-selected=true] span{color:var(--ink)}
@media (max-width:560px){ .dtabs [role=tab] span{display:none} .dtabs [role=tab] b{font-size:24px} }
.bigout{display:grid;gap:4px;padding:6px 0}
.bigout .v{font-family:var(--f-display);font-size:clamp(46px,6vw,60px);line-height:.9;color:var(--gold)}
.bigout .u{font-size:15px;color:var(--washi)}
.portrait{border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink);background:var(--night)}
.portrait video,.portrait img{width:100%;aspect-ratio:1/1;object-fit:cover}
.portrait figcaption{font-size:15px;padding:8px 10px;border-top:var(--px) solid var(--washi);color:var(--gold);font-weight:700}
.slider{display:grid;gap:6px}
.slider label{display:flex;justify-content:space-between;font-size:15px;font-weight:700}
.slider label b{font-family:var(--f-num);color:var(--gold)}
input[type=range]{width:100%;accent-color:var(--gold);height:28px}
.lives{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center;min-height:30px}
.lives img{width:28px;height:28px;transition:opacity .3s steps(3),filter .3s steps(3)}
.lives img.lost{opacity:.22;filter:grayscale(1)}
.lives img.just{animation:lose .6s steps(4)}
@keyframes lose{0%{opacity:1;filter:none;transform:none}25%{transform:translate(-3px,-5px) rotate(-12deg)}50%{transform:translate(3px,-2px) rotate(12deg);opacity:.8}100%{opacity:.22;filter:grayscale(1)}}
.eaten{display:flex;gap:12px;align-items:center;padding:12px;border:3px dashed var(--shu-hi);background:#260B07}
.eaten img,.eaten video{width:76px;height:76px;object-fit:cover;flex:none}
.eaten b{color:var(--shu-hi);font-family:var(--f-display);font-weight:400;font-size:30px;display:block;line-height:1}
.rules{list-style:none;display:grid;gap:10px;border:3px solid var(--gold);padding:12px;background:var(--panel)}
.rules li{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.45}
.rules li img{width:26px;height:26px}
.rules li b{color:var(--gold)}
.mgr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mgr button{display:grid;justify-items:center;gap:3px;padding:10px 4px;border:3px solid var(--mute);font-weight:800;font-size:15px}
.mgr button:hover{border-color:var(--gold);color:var(--gold)}
.mgr button img{width:26px;height:26px;image-rendering:pixelated}
.mgr button small{font-size:12px;color:var(--mute);font-weight:500;text-align:center;line-height:1.25}
.manage{border-top:3px dashed var(--mute);padding-top:12px;display:grid;gap:8px}

/* ---------- rewards / shrine ---------- */
.kpis{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){ .kpis{grid-template-columns:repeat(4,minmax(0,1fr))} }
.kpi{padding:14px;border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink);background:var(--deep);display:grid;gap:3px;align-content:start;min-width:0}
.kpi .k{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:800}
.kpi .k img{width:24px;height:24px;image-rendering:pixelated}
.kpi .v{font-family:var(--f-display);font-size:38px;line-height:.95;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .u{font-size:13px;color:var(--mute)}
.wars{display:grid;gap:12px}
.war{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center}
.war .rk{font-family:var(--f-display);font-size:30px;line-height:1;color:var(--mute);text-align:center}
.war:first-child .rk{color:var(--gold)}
.war .bar{height:14px;background:var(--deep);box-shadow:inset 0 0 0 2px var(--line);position:relative;margin-top:6px}
.war .bar i{position:absolute;left:2px;top:2px;bottom:2px;max-width:calc(100% - 4px);background:repeating-linear-gradient(90deg,var(--dc) 0 8px,color-mix(in srgb,var(--dc) 62%,#000) 8px 10px)}
.war .v{font-family:var(--f-num);font-weight:800;text-align:right}
.war .v small{display:block;font-weight:500;color:var(--mute);font-size:12px}
.lb td:first-child{width:48px;font-family:var(--f-display);font-size:26px;color:var(--mute)}
.lb tr:nth-child(1) td:first-child,.lb tr:nth-child(2) td:first-child,.lb tr:nth-child(3) td:first-child{color:var(--gold)}
.lb tr.me td{background:#231B00}
.countdown{font-family:var(--f-display);font-size:32px;line-height:1;color:var(--gold)}
.pass-grid{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:5px;font-size:13px}
.pass-grid .h{color:var(--mute);font-weight:800;text-align:center;padding:4px 2px}
.pass-grid .rh{font-weight:800;padding:8px 6px 8px 0;white-space:nowrap;align-self:center}
.pass-grid .c{display:grid;place-items:center;text-align:center;padding:8px 2px;border:3px solid var(--line);background:var(--panel-2);font-weight:700;line-height:1.25;font-family:var(--f-num)}
.pass-grid .c.on{border-color:var(--gold-lo);color:var(--gold-hi)}
.pass-grid .c.me{border-color:var(--gold);background:var(--gold);color:var(--ink)}
.clock{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ring{--p:0;width:100px;height:100px;background:conic-gradient(var(--gold) calc(var(--p)*1%),var(--line) 0);display:grid;place-items:center;flex:none;box-shadow:0 0 0 3px var(--ink)}
.ring > div{width:78px;height:78px;background:var(--deep);display:grid;place-items:center;align-content:center;text-align:center;line-height:1}
.ring b{font-family:var(--f-display);font-weight:400;font-size:36px;color:var(--gold)}
.ring small{font-size:11px;color:var(--mute);font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.claim-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:3px dashed var(--line)}
.claim-row:first-child{border-top:0;padding-top:0}
.claim-row img{width:30px;height:30px;image-rendering:pixelated}
.claim-row .v{font-family:var(--f-num);font-weight:800;text-align:right}
.claim-row .v small{display:block;font-weight:500;color:var(--mute);font-size:12px}
.profile{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.profile .av{width:76px;height:76px;flex:none}
.profile .addr-big{font-family:var(--f-display);font-size:36px;line-height:1}
.pos{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:3px solid var(--line);padding:10px 12px;background:var(--panel-2)}
.pos .t{font-weight:800}
.quests{list-style:none;display:grid;gap:10px}
.quests li{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;font-size:15px}
.quests .box8{width:22px;height:22px;border:3px solid var(--mute)}
.quests li.done .box8{background:var(--gold);border-color:var(--gold);box-shadow:inset -4px -4px 0 var(--gold-lo)}
.quests li.done span{color:var(--mute)}
.quests .rew{font-size:13px;color:var(--gold);font-weight:800}
.gate{display:grid;justify-items:center;gap:14px;text-align:center;padding:20px 12px}
.gate video,.gate img{width:160px;height:160px;object-fit:cover;border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink)}
.gate .t{font-family:var(--f-display);font-size:38px;line-height:.9;color:var(--gold)}
.stickers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (min-width:700px){ .stickers{grid-template-columns:repeat(6,minmax(0,1fr))} }
.stickers img{width:100%;height:auto;transition:transform .2s steps(2)}
.stickers img:hover{transform:rotate(-6deg) scale(1.06)}

/* ---------- dojo ---------- */
#dojo-cv{width:100%;height:240px;display:block;background:var(--panel-2);border:3px solid var(--line);image-rendering:pixelated}
/* the real Neko vs Gold chart (Your neko card) */
.neko-cv{width:100%;height:220px;display:block;background:var(--panel-2);border:3px solid var(--line);image-rendering:pixelated}
.stat-row.four{grid-template-columns:repeat(4,minmax(0,1fr))} .stat-row.four .stat .u{white-space:normal}
@media (max-width:760px){ .stat-row.four{grid-template-columns:repeat(2,minmax(0,1fr))} }
.dojo-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dojo .msg{min-height:26px;font-size:16px;color:var(--gold);font-weight:700}

/* ---------- mobile tab bar ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tab) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--deep);border-top:var(--px) solid var(--washi);box-shadow:0 calc(var(--px)*-1) 0 var(--ink)}
.tabbar a{display:grid;justify-items:center;align-content:center;gap:3px;font-size:12px;font-weight:800;color:var(--mute)}
.tabbar a .i{width:22px;height:22px}
.tabbar a[aria-current=page]{color:var(--gold)}
.tabbar a.mid .i{width:24px;height:24px;padding:5px;background:var(--gold);color:var(--ink);box-sizing:content-box;margin-top:-6px;box-shadow:inset 3px 3px 0 var(--gold-hi),inset -3px -3px 0 var(--gold-lo),0 0 0 3px var(--ink)}
.tabbar a.mid{color:var(--washi)}
@media (min-width:900px){ .tabbar{display:none} }

/* ---------- footer: seigaiha sea ---------- */
.sea{height:48px;background:#0000A8 url(../assets/wave.svg) 0 0/64px 32px repeat;border-top:var(--px) solid var(--ink);animation:tide 8s linear infinite}
@keyframes tide{to{background-position:64px 0}}
.foot{background:var(--deep);padding:18px var(--gut) calc(var(--tab) + 28px + env(safe-area-inset-bottom));color:var(--mute);font-size:14px}
.foot .in{max-width:var(--max);margin:0 auto;display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center}
.foot img{width:40px;height:40px}
@media (min-width:900px){ .foot{padding-bottom:26px} }
.foot a{color:var(--washi);text-decoration:underline;text-underline-offset:3px}
body.has-buybar .foot{padding-bottom:calc(var(--tab) + 96px + env(safe-area-inset-bottom))}

/* ---------- dialogs: pixel windows ---------- */
dialog{margin:auto;border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink),12px 12px 0 rgba(0,0,0,.5);background:var(--deep);color:var(--washi);width:min(540px,calc(100vw - 24px));max-height:calc(100svh - 24px);padding:0}
dialog::backdrop{background:rgba(5,3,20,.74)}
dialog[open]{animation:dIn .25s steps(4)}
@keyframes dIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:560px){ dialog{margin:auto 0 0;width:100vw;max-width:100vw;max-height:92svh;border-width:var(--px) 0 0} }
.dlg-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:var(--px) solid var(--washi);position:sticky;top:0;background:var(--deep);z-index:1}
.dlg-h h2{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1;color:var(--gold);letter-spacing:1px}
.dlg-h .icon-btn{margin-left:auto}
.dlg-body{padding:16px;display:grid;gap:14px;overflow:auto}
.dlg-foot{display:grid;grid-template-columns:auto 1fr;gap:14px}
.plain{position:relative;padding:12px 14px;border:3px solid var(--gold);background:var(--panel)}
.plain ul{margin-top:8px;padding-left:18px;display:grid;gap:7px;font-size:15.5px;padding-right:62px}
.plain b{color:var(--gold)}
.steps{list-style:none;display:grid;gap:9px}
.st{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.st p{color:var(--mute);font-size:14px}
.st-i{width:26px;height:26px;display:grid;place-items:center;flex:none;border:3px solid var(--mute);color:var(--mute);font-weight:800}
.st.ok .st-i{border-color:var(--jade);color:var(--jade)}
.st.bad .st-i{border-color:var(--shu-hi);color:var(--shu-hi)}
.st-i .i{width:14px;height:14px}
.st-rc{margin-top:6px;display:grid;gap:5px}
.st-rc p{color:var(--washi);font-size:15px}
.st-rc b{color:var(--gold)}
.st-rc a.link{font-size:14px}
.spin{width:12px;height:12px;background:var(--gold);animation:blink .5s steps(2) infinite}
.wl{list-style:none;display:grid;gap:8px}
.wl-b{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:3px solid var(--mute);font-weight:800;text-align:left}
.wl-b:hover{border-color:var(--gold);color:var(--gold)}
.wl-b .i:last-child{margin-left:auto}

/* hanko stamp on confirm */
.hanko-stamp{position:absolute;right:10px;top:10px;width:62px;height:62px;display:grid;place-items:center;align-content:center;border:3px solid var(--shu);color:var(--shu);background:var(--washi);transform:rotate(-10deg);animation:stamp .5s steps(4) .4s both;text-align:center;line-height:1;box-shadow:2px 2px 0 var(--ink)}
.hanko-stamp b{font-family:var(--f-kanji);font-size:21px;font-weight:400}
.hanko-stamp small{font-size:9px;font-weight:800;letter-spacing:.05em;margin-top:3px}
.hanko-stamp.still{animation:none}
@keyframes stamp{0%{opacity:0;transform:rotate(-10deg) scale(2.4)}60%{opacity:1;transform:rotate(-10deg) scale(.9)}100%{opacity:1;transform:rotate(-10deg) scale(1)}}
/* koban coin drop on buy */
.koban-drop{position:fixed;z-index:200;width:26px;height:26px;image-rendering:pixelated;pointer-events:none;animation:drop 1.1s steps(9) both}
@keyframes drop{0%{transform:translate(0,-30px);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),170px) rotate(200deg);opacity:0}}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(var(--tab) + 18px + env(safe-area-inset-bottom));transform:translate(-50%,16px);opacity:0;pointer-events:none;z-index:120;max-width:min(520px,calc(100vw - 32px));padding:12px 16px;background:var(--deep);border:3px solid var(--gold);box-shadow:0 0 0 3px var(--ink);font-size:15px;transition:opacity .2s steps(3),transform .2s steps(3)}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (min-width:900px){ .toast{bottom:26px} }

.empty{padding:28px 16px;text-align:center;display:grid;gap:10px;justify-items:center}
.empty img,.empty video{width:130px;height:130px;object-fit:cover}
.empty b{font-family:var(--f-display);font-weight:400;font-size:36px;line-height:.9;color:var(--gold)}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s steps(5),transform .5s steps(5)}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- sticky side columns scroll on their own (desktop only) ---------- */
@media (min-width:1000px){
  .grid-2 > aside,.docs-toc{max-height:calc(100vh - var(--hdr) - 8px);overflow-y:auto;overflow-x:hidden;padding:22px 10px 16px 6px;margin:-22px -10px 0 -6px;scrollbar-width:thin;scrollbar-color:var(--gold-lo) var(--panel-2);scrollbar-gutter:stable}
}
@media (min-width:1200px){
  .explore > aside{max-height:calc(100vh - var(--hdr) - 8px);overflow-y:auto;overflow-x:hidden;padding:22px 10px 16px 6px;margin:-22px -10px 0 -6px;scrollbar-width:thin;scrollbar-color:var(--gold-lo) var(--panel-2);scrollbar-gutter:stable}
}
.grid-2 > aside::-webkit-scrollbar,.explore > aside::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:8px}
.grid-2 > aside::-webkit-scrollbar-track,.explore > aside::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:var(--panel-2)}
.grid-2 > aside::-webkit-scrollbar-thumb,.explore > aside::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:var(--gold-lo);border:2px solid var(--panel-2)}
.grid-2 > aside::-webkit-scrollbar-thumb:hover,.explore > aside::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* clean full-width fact list (coin About, docs) */
.facts-list{display:grid;border:3px solid var(--line);background:var(--panel-2)}
.facts-list > div{display:grid;grid-template-columns:minmax(120px,34%) minmax(0,1fr);gap:4px 16px;padding:10px 14px;border-top:3px solid var(--line);align-items:baseline}
.facts-list > div:first-child{border-top:0}
.facts-list dt{color:var(--mute);font-weight:700;font-size:14.5px}
.facts-list dd{font-size:15px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.facts-list dd small{display:block;color:var(--mute);font-weight:500;font-size:13px}
@media (max-width:520px){ .facts-list > div{grid-template-columns:minmax(0,1fr)} }

/* ---------- docs ---------- */
.docs{display:grid;gap:28px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){ .docs{grid-template-columns:250px minmax(0,1fr);align-items:start} .docs-toc{position:sticky;top:calc(var(--hdr) + 4px)} }
.docs-toc{display:none}
@media (min-width:1000px){ .docs-toc{display:block} }
.docs-toc ol{list-style:none;display:grid;gap:2px;counter-reset:t}
.docs-toc button{display:flex;gap:8px;width:100%;text-align:left;padding:7px 10px;border:3px solid transparent;font-weight:700;font-size:14.5px;color:var(--washi);line-height:1.3}
.docs-toc button::before{counter-increment:t;content:counter(t);font-family:var(--f-num);color:var(--mute);min-width:18px}
.docs-toc button:hover{border-color:var(--mute)}
.docs-toc button[aria-current=true]{border-color:var(--gold);color:var(--gold)}
.doc{max-width:820px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;min-width:0}
.doc > *,.dbody > *{min-width:0}
.doc details.dsec{background:var(--deep);border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink);scroll-margin-top:calc(var(--hdr) + 16px)}
.doc details.dsec > summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}
.doc details.dsec > summary::-webkit-details-marker{display:none}
.doc details.dsec > summary .kj{font-family:var(--f-kanji);font-size:26px;color:var(--gold);line-height:1;min-width:30px}
.doc details.dsec > summary h2{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:.95;letter-spacing:.5px}
.doc details.dsec > summary::after{content:"+";margin-left:auto;font:800 24px/1 var(--f-num);color:var(--gold)}
.doc details.dsec[open] > summary::after{content:"−"}
.doc details.dsec[open] > summary{border-bottom:3px dashed var(--line)}
@media (min-width:1000px){ .doc details.dsec > summary{cursor:default} .doc details.dsec > summary::after{display:none} }
.dbody{padding:16px 18px 20px;display:grid;gap:14px;font-size:16px;line-height:1.65}
@media (min-width:640px){ .dbody{padding:18px 24px 24px} }
.dbody h3{font-family:var(--f-display);font-weight:400;font-size:26px;line-height:1;color:var(--gold);margin-top:6px}
.dbody ul,.dbody ol{padding-left:22px;display:grid;gap:6px}
.dbody b{color:var(--gold-hi)}
.dbody .tbl{min-width:560px}
.dbody .tbl td{white-space:normal;vertical-align:top}
.dbody .tbl td:first-child{font-family:var(--f);font-weight:800;white-space:nowrap}
.split{display:flex;height:34px;border:3px solid var(--washi);box-shadow:0 0 0 3px var(--ink)}
.split span{display:grid;place-items:center;font:800 12.5px/1 var(--f-num);color:var(--ink);white-space:nowrap;overflow:hidden}
.split-key{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));font-size:14.5px}
.split-key i{display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;box-shadow:0 0 0 2px var(--ink)}
.diagram{border:3px solid var(--line);background:var(--panel-2);padding:10px}
.diagram svg{width:100%;height:auto;display:block}
.sched{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:end;height:130px}
.sched div{display:grid;gap:5px;justify-items:center;align-content:end;height:100%;font:700 12.5px/1.1 var(--f-num);color:var(--mute);text-align:center}
.sched div b{color:var(--gold);font-size:14px}
.sched i{display:block;width:100%;background:var(--gold);box-shadow:inset 3px 3px 0 var(--gold-hi),inset -3px 0 0 var(--gold-lo),0 0 0 2px var(--ink)}
.sched div:last-child i{background:var(--jade)}
.dbody .ctbl{table-layout:fixed;min-width:720px}
.dbody .tbl.fit{min-width:0}
.dbody .tbl.fit td:first-child{white-space:normal;width:38%}
.dbody .ctbl td:first-child{white-space:normal}
.ctbl code{font:600 13px/1.4 ui-monospace,Consolas,monospace;color:var(--washi)}

/* koban stack floor meter (shrine offering box) */
.koban-meter{display:grid;justify-items:center;gap:0;padding:6px 0 2px}
.koban-meter .pile{display:flex;flex-direction:column-reverse;align-items:center;min-height:30px}
.koban-meter .krow{display:flex;margin-top:-12px}
.koban-meter .krow:first-child{margin-top:0}
.koban-meter .krow img{width:32px;height:32px;image-rendering:pixelated;margin:0 -2px;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.6));animation:kIn .5s steps(4) both;animation-delay:calc(var(--i) * 70ms)}
@keyframes kIn{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}
.koban-meter .box{position:relative;width:min(260px,80%);height:46px;margin-top:-4px;background:#6b3a1a;box-shadow:inset 0 5px 0 #8a4f26,inset 0 -5px 0 #4a260f,0 0 0 3px var(--ink);display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:9px 12px}
.koban-meter .box span{background:#2b1407;box-shadow:inset 2px 0 0 #4a260f}
.koban-meter .box::before{content:"";position:absolute;left:-8px;right:-8px;top:-6px;height:8px;background:#9a5a2c;box-shadow:0 0 0 3px var(--ink)}
.hi .blink,.blink{animation:blink 1s steps(2) infinite}
.ca7{color:var(--gold);font-weight:800;text-decoration:underline;text-decoration-color:var(--gold)}
.tag-dev{font-size:11.5px;font-weight:800;color:var(--ink);background:#FC7460;padding:1px 6px;letter-spacing:.04em}
.tag-plat{font-size:12px;font-weight:800;color:var(--ink);background:var(--wave);padding:1px 6px;white-space:nowrap}

/* arcade hi-score tables */
.hiscore{border:3px solid var(--line);background:#05030f;padding:10px 12px;overflow-x:auto}
.hiscore table{width:100%;border-collapse:collapse}
.hiscore th{font-family:var(--f-display);font-weight:400;font-size:22px;color:var(--wave);text-align:left;padding:2px 8px 8px;letter-spacing:1px}
.hiscore th:last-child,.hiscore td.sc{text-align:right}
.hiscore td{padding:6px 8px;border-top:2px dotted #2A2260;vertical-align:middle}
.hiscore td.rk{font-family:var(--f-display);font-size:26px;color:var(--mute);width:64px;letter-spacing:1px}
.hiscore td.nm{font-size:15px;font-weight:700}
.hiscore td.sc{font-family:var(--f-display);font-size:28px;color:var(--washi);letter-spacing:1px;white-space:nowrap}
.hiscore td.sc small{display:block;font-family:var(--f);font-size:12.5px;color:var(--mute);letter-spacing:0}
.hiscore tr.top td.rk,.hiscore tr.top td.sc{color:var(--gold)}
.hiscore tr:nth-child(2) td.rk,.hiscore tr:nth-child(3) td.rk{color:var(--gold-hi)}
.hiscore tr.me td{background:#231B00}

/* ---------- arcade launch flow ---------- */
.stages{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:6px}
.stages li{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:var(--mute);padding:6px 6px;border:3px solid var(--line);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stages li span{display:grid;place-items:center;width:22px;height:22px;flex:none;background:var(--line);color:var(--washi);font-family:var(--f-num)}
.stages li.done{color:var(--washi)}.stages li.done span{background:var(--jade);color:var(--ink)}
.stages li.on{border-color:var(--gold);color:var(--gold)}.stages li.on span{background:var(--gold);color:var(--ink)}
@media (max-width:560px){ .stages li{font-size:0;justify-content:center;padding:6px 2px} .stages li span{font-size:13px} }
.stage{display:grid;gap:16px;min-width:0}
.stage-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px}
.stage-h .disp{font-size:38px;color:var(--gold);text-shadow:3px 3px 0 var(--ink)}
.coinslot{display:grid;justify-items:center;text-align:center;gap:14px;padding:22px 10px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 2px,transparent 2px 4px),radial-gradient(circle at 50% 40%,#1c1566,var(--deep) 70%);border:3px solid var(--line)}
.coinslot img{width:150px;height:150px;image-rendering:pixelated}
.coinslot .ins{font-size:56px;color:var(--gold);text-shadow:4px 4px 0 var(--ink)}
.coinslot p{max-width:46ch;font-size:16px}
.dpick.select{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.dpick.select .dopt{justify-items:center;text-align:center;padding:12px 10px 14px;min-height:0}
.dpick.select .dopt .cat{position:static;width:96px;height:96px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.7));transition:transform .2s steps(3)}
.dpick.select .dopt:hover .cat,.dpick.select .dopt:has(input:checked) .cat{transform:translateY(-4px) scale(1.06)}
.dpick.select .dopt .s,.dpick.select .dopt .o{padding-right:0}
.dpick.select .dopt:has(input:checked){box-shadow:0 0 0 3px var(--dc),6px 6px 0 var(--ink)}
.dpick.select .dopt:has(input:checked)::before{content:"P1";position:absolute;left:8px;top:6px;font-family:var(--f-display);font-size:22px;color:var(--dc);animation:blink 1s steps(2) infinite}
@media (max-width:420px){ .dpick.select{grid-template-columns:1fr 1fr} .dpick.select .dopt .s{display:none} }
.stage-nav{display:flex;gap:12px;margin-top:4px}
.dlist{padding-left:20px;display:grid;gap:5px;margin-top:8px;font-size:14.5px}
.btn.disp-btn{font-family:var(--f-display);font-weight:400;font-size:30px;letter-spacing:1px}

/* ---------- home: headline hero + pixel district map ---------- */
.home{display:grid;gap:30px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){ .home .hero{min-height:0} }
.usp{list-style:none;display:grid;gap:8px;text-shadow:2px 2px 0 var(--ink)}
.usp li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:16px;line-height:1.45}
.usp img{width:22px;height:22px;image-rendering:pixelated;margin-top:1px}
.usp b{color:var(--gold)}
.townwin{display:grid;gap:12px}
.town{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;background:
  linear-gradient(90deg,transparent calc(50% - 4px),#3A3180 calc(50% - 4px) calc(50% + 4px),transparent calc(50% + 4px)),
  linear-gradient(0deg,transparent calc(50% - 4px),#3A3180 calc(50% - 4px) calc(50% + 4px),transparent calc(50% + 4px)),
  repeating-linear-gradient(45deg,#0f2418 0 6px,#112a1c 6px 12px);border:3px solid var(--line)}
.hood{position:relative;display:grid;align-content:start;gap:4px;padding:8px 8px 10px;min-height:150px;background:rgba(10,7,38,.82);border:3px solid color-mix(in srgb,var(--dc) 55%,var(--line));text-align:left;overflow:hidden;transition:transform .15s steps(2),border-color .15s steps(2)}
.hood:hover,.hood[aria-pressed=true]{border-color:var(--dc);transform:translateY(-2px);box-shadow:4px 4px 0 var(--ink)}
.hood[aria-pressed=true]{background:color-mix(in srgb,var(--dc) 14%,rgba(10,7,38,.9))}
.hood .scene{width:100%;height:auto;aspect-ratio:64/40;display:block;background:color-mix(in srgb,var(--dc) 10%,#0a0726)}
.hood .hcat{position:absolute;right:2px;bottom:2px;width:54px;height:54px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.7))}
.hood .hl{margin-top:4px}
.hood .hp{font-size:12.5px;color:var(--mute);font-weight:700;padding-right:52px;line-height:1.3}
.hood.glow{animation:hglow 1.2s steps(6)}
@keyframes hglow{0%{box-shadow:0 0 0 0 var(--dc)}30%{box-shadow:0 0 0 6px var(--dc)}100%{box-shadow:0 0 0 0 transparent}}
.town .plaza{display:grid;place-items:center;border:3px dashed var(--line);background:rgba(10,7,38,.6);min-height:150px}
.town .plaza img{width:54px;height:54px;image-rendering:pixelated}
@media (max-width:700px){ .town{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px} .hood{min-height:132px} .town .plaza{display:none} }

/* treasury unlock timeline */
.unlock{display:grid;gap:12px}
.ul-line{list-style:none;display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}
.ul-line li{display:grid;justify-items:center;gap:2px;padding:6px 0;border:3px solid var(--line);background:var(--panel-2);font:700 11px/1 var(--f-num);color:var(--mute)}
.ul-line li b{font-family:var(--f-display);font-weight:400;font-size:20px;line-height:1;color:var(--washi)}
.ul-line li.lock{border-color:#7a1600;background:#260B07}.ul-line li.lock b{font-size:14px}
.ul-line li.open{border-color:var(--jade);background:#0d2a12}.ul-line li.open b{color:var(--jade)}
.ul-line li.claimed{border-color:var(--gold);background:#231B00}.ul-line li.claimed b{color:var(--gold)}
.ul-line li.wait b{color:var(--mute)}
.ul-line li.now{box-shadow:0 0 0 3px var(--washi)}
@media (max-width:640px){ .ul-line{grid-template-columns:repeat(8,minmax(0,1fr))} }

/* shared amount input */
.amt .in{gap:8px}
.unit-t{flex:none;min-width:48px;min-height:34px;padding:0 8px;border:3px solid var(--line-2);font-weight:800;font-size:14px;color:var(--washi);font-family:var(--f-num)}
.unit-t:hover{border-color:var(--gold);color:var(--gold)}
.unit-t[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.amt-sub{display:flex;gap:8px;align-items:baseline;font:500 13.5px/1.3 var(--f-num);color:var(--mute);flex-wrap:wrap}
.amt-sub [data-bal]{color:var(--washi);font-weight:600}
.pcts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.pcts button{min-height:34px;border:2px solid var(--line-2);color:var(--washi);font:700 14px/1 var(--f-num)}
.pcts button:hover,.pcts button:focus-visible{border-color:var(--gold);color:var(--gold)}
.amt-err{font-size:14px;font-weight:700;color:var(--shu-hi);min-height:0}
.amt-err:empty{display:none}
.amt input[aria-invalid=true]{color:var(--shu-hi)}
.hold-line{font:600 14px/1.3 var(--f-num);color:var(--washi)}

.net-tag{font:800 11px/1 var(--f);letter-spacing:.06em;color:var(--ink);background:var(--jade);padding:3px 6px;margin-left:4px}
.net-tag.off{background:var(--shu-hi)}
.connect .addr-s{display:none}
@media (max-width:420px){
  .connect .addr-t{display:none}.connect .addr-s{display:inline}
  .net-tag{position:absolute;left:6px;top:4px;margin:0;font-size:9px;padding:2px 3px;z-index:1}
}

/* Floor Loans */
.loans{display:grid;gap:14px}
.loans-h{font-family:var(--f-display);font-size:30px;line-height:1;color:var(--washi)}
.loans-h b{font-weight:400;color:var(--gold)}
.checks{list-style:none;display:grid;gap:6px}
.checks li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:3px solid var(--line);background:var(--panel-2);font-size:14.5px}
.checks li b{font-family:var(--f-num);font-weight:700;text-align:right}
.checks .ck{width:22px;height:22px;display:grid;place-items:center;font-weight:800}
.checks li.ok .ck{background:var(--jade);color:var(--ink)}
.checks li.no .ck{background:var(--shu);color:#fff}
.checks li.no{border-color:#5a1a10}
@media (max-width:760px){ .dtabs{grid-template-columns:repeat(2,minmax(0,1fr))} .dtabs [role=tab]:nth-child(2){border-right:0} .dtabs [role=tab]:nth-child(-n+2){border-bottom:var(--px) solid var(--washi)} }
@media (max-width:520px){ .loans-stats{grid-template-columns:1fr} }

/* creator streak history strip (indexer) */
.sstrip{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px}
.sstrip>span{height:18px;background:var(--panel-2);box-shadow:inset 0 0 0 2px var(--line)}
.sstrip>span.on{background:var(--gold)}
.sstrip>span.off{background:#FC7460}
.sstrip>span.pre{opacity:.35}
.sstrip>span.now{outline:2px solid var(--washi);outline-offset:1px}

/* ---------- Kineko World battlefield (Explore) ---------- */
.bf{position:relative;background:#0A0726;border:3px solid var(--line-2);box-shadow:0 3px 0 var(--ink);overflow:hidden;touch-action:pan-y;display:grid;place-items:center}
.bf-cv{display:block;image-rendering:pixelated;image-rendering:crisp-edges;max-width:100%}
.bf-tip{position:absolute;z-index:3;display:grid;gap:2px;min-width:170px;padding:8px 10px;background:var(--panel);color:var(--washi);border:3px solid var(--gold);box-shadow:3px 3px 0 var(--ink);font-size:13px;pointer-events:none}
.bf-tip b{font-size:15px;color:var(--gold)}
.bf-tip .kj,.bf-list .kj,.bf-hud .kj{font-family:"DotGothic16",var(--f);}
.bf-msg{position:absolute;z-index:2;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:6px 12px;background:#0A0726;color:var(--washi-2);border:3px solid var(--dc,var(--gold));box-shadow:3px 3px 0 var(--ink);font:400 22px/1.1 "Jersey 10",var(--f);letter-spacing:.02em;opacity:0;transform:translateY(8px);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bf-msg.on{animation:bfmsg 2.8s steps(8) forwards}
@keyframes bfmsg{0%{opacity:0;transform:translateY(8px)}8%{opacity:1;transform:none}80%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-4px)}}
@media (prefers-reduced-motion: reduce){ .bf-msg.on{animation:none;opacity:1;transform:none} }
.bf-hud{position:absolute;z-index:2;top:8px;right:8px;background:rgba(10,7,38,.92);border:3px solid var(--gold);box-shadow:3px 3px 0 var(--ink);padding:4px 8px 6px;min-width:190px}
.bf-hud-t{all:unset;cursor:pointer;display:block;font:400 18px/1.1 "Jersey 10",var(--f);color:var(--gold);letter-spacing:.04em;text-transform:uppercase}
.bf-hud-t:focus-visible{outline:2px solid var(--washi);outline-offset:2px}
.bf-hud .pv{position:absolute;top:-10px;left:8px}
.bf-hud-b{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:1px;font-size:13px}
.bf-hud-b li{display:grid;grid-template-columns:34px 16px 1fr auto;gap:6px;align-items:center;color:var(--washi)}
.bf-hud-b li .rk{font:400 16px/1 "Jersey 10",var(--f);color:var(--mute)}
.bf-hud-b li .kj{color:var(--dc)}
.bf-hud-b li .sc{font-variant-numeric:tabular-nums;font-weight:700}
.bf-hud-b li.top .rk,.bf-hud-b li.top .sc{color:var(--gold)}
.bf-hud.collapsed .bf-hud-b{display:none}
.bf-hud.collapsed{min-width:0}
.bf-list{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.bf-list button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:0 8px;align-items:center;width:100%;padding:6px 8px;background:var(--panel-2);border:2px solid var(--line-2);border-left:6px solid var(--dc);font-size:12.5px;color:var(--mute)}
.bf-list button b{color:var(--washi);font-size:14px}
.bf-list button .kj{grid-row:span 2;font-size:22px;color:var(--dc)}
.bf-list button span:last-child{grid-column:2}
.bf-list button:hover,.bf-list button:focus-visible{border-color:var(--dc);outline:none;background:var(--row)}
@media (max-width:560px){ .bf-msg{font-size:18px} .bf-hud{min-width:0} .bf-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* battlefield name plaques (always visible) */
.bf-plaques{position:absolute;left:0;top:0;pointer-events:none;z-index:1;overflow:hidden}
.bf-pl{position:absolute;left:0;top:0;display:grid;grid-template-columns:auto auto;align-items:center;gap:0 6px;padding:3px 9px 4px;background:rgba(10,7,38,.88);border:3px solid var(--dc);box-shadow:0 0 0 2px #140C30,3px 3px 0 2px #140C30;white-space:nowrap}
.bf-pl .kj{grid-row:span 2;font:400 26px/1 "DotGothic16",var(--f);color:var(--dc)}
.bf-pl b{font:400 20px/1 "Jersey 10",var(--f);letter-spacing:.06em;color:var(--washi-2)}
.bf-pl small{font:700 11.5px/1.1 var(--f);color:var(--washi);opacity:.9}
.bf-pl.lead{border-color:var(--gold);box-shadow:0 0 0 2px #140C30,0 0 14px 2px rgba(248,184,0,.55)}
.bf-pl.lead b::after{content:" 1ST";color:var(--gold)}
.bf-plaques.mini .bf-pl{padding:2px 6px;gap:0 4px;border-width:2px}
.bf-plaques.mini .bf-pl .kj{font-size:18px;grid-row:auto}
.bf-plaques.mini .bf-pl b{font-size:15px}
.bf-plaques.mini .bf-pl small{display:none}
.bf-zoom{position:absolute;z-index:2;left:8px;top:8px;padding:4px 10px;background:rgba(10,7,38,.92);color:var(--gold);border:2px solid var(--gold);font:400 16px/1 "Jersey 10",var(--f);letter-spacing:.04em;cursor:pointer}
.bf-zoom:focus-visible{outline:2px solid var(--washi);outline-offset:2px}
.bf-plaques.tiny .bf-pl{padding:1px 4px;gap:0 3px;box-shadow:0 0 0 1px #140C30}
.bf-plaques.tiny .bf-pl .kj{font-size:14px}
.bf-plaques.tiny .bf-pl b{font-size:12px;letter-spacing:.02em}
.bf-plaques.tiny .bf-pl.lead b::after{content:""}
@media (max-width:560px){ .bf-hud.collapsed{top:auto;bottom:6px;right:6px;padding:2px 6px} .bf-hud.collapsed .bf-hud-t{font-size:15px} .bf-hud:not(.collapsed){top:auto;bottom:6px;right:6px;left:6px} .bf-msg{left:6px;bottom:6px;top:auto;font-size:15px;padding:3px 8px;border-width:2px;max-width:calc(100% - 86px)} .bf-zoom{left:auto;right:6px;top:6px;font-size:14px;padding:2px 8px} }
/* battlefield v4: banner, minimap, controls, turn counter, shake */
.bf-cv.shake{animation:bfshake .32s steps(4)}
@keyframes bfshake{0%{transform:translate(2px,0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,0)}100%{transform:none}}
.bf-banner{position:absolute;z-index:3;left:50%;top:38%;transform:translate(-50%,-50%) scale(.9);padding:8px 18px;background:#0A0726;color:var(--washi-2);border:3px solid var(--dc,var(--gold));box-shadow:0 0 0 3px #140C30,4px 4px 0 3px #140C30;font:400 30px/1 "Jersey 10",var(--f);letter-spacing:.05em;white-space:nowrap;opacity:0;pointer-events:none}
.bf-banner.on{animation:bfbanner 2.6s steps(10) forwards}
@keyframes bfbanner{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}18%{transform:translate(-50%,-50%) scale(1)}82%{opacity:1}100%{opacity:0;transform:translate(-50%,-60%) scale(1)}}
.bf-mini{position:absolute;z-index:2;left:8px;bottom:8px;width:160px;height:108px;image-rendering:pixelated;border:3px solid var(--gold);box-shadow:0 0 0 2px #140C30,3px 3px 0 2px #140C30;cursor:crosshair;background:#0A0726}
.bf-ctl{position:absolute;z-index:2;left:8px;top:8px;display:flex;gap:6px}
.bf-ctl button{padding:4px 10px;background:rgba(10,7,38,.92);color:var(--gold);border:2px solid var(--gold);font:400 16px/1 "Jersey 10",var(--f);letter-spacing:.04em;cursor:pointer}
.bf-ctl button[aria-pressed=true]{background:var(--gold);color:#140C30}
.bf-ctl button:focus-visible{outline:2px solid var(--washi);outline-offset:2px}
.bf .bf-zoom{position:static}
.bf-turn{font:400 15px/1 "Jersey 10",var(--f);letter-spacing:.08em;color:var(--washi);opacity:.85;margin-bottom:2px}
.bf-msg{left:auto;right:8px;bottom:8px}
.bf-hud{top:8px;right:8px}
@media (max-width:560px){ .bf-ctl{left:6px;top:6px} .bf-ctl button{font-size:13px;padding:2px 6px} .bf-banner{font-size:18px;padding:5px 10px;top:45%} .bf-msg{left:6px;right:auto;bottom:6px} .bf-turn{display:none} .bf-hud.collapsed .bf-turn{display:none} }
@media (prefers-reduced-motion: reduce){ .bf-cv.shake{animation:none} .bf-banner.on{animation:none;opacity:1} }
.bf-hud{top:auto;bottom:8px;right:8px}
.bf-msg{right:auto;left:50%;bottom:auto;top:8px;transform:translate(-50%,8px)}
.bf-msg.on{animation:bfmsg2 2.8s steps(8) forwards}
@keyframes bfmsg2{0%{opacity:0;transform:translate(-50%,-6px)}8%{opacity:1;transform:translate(-50%,0)}80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-6px)}}
@media (max-width:560px){ .bf-msg{left:6px;top:auto;bottom:6px;transform:none} .bf-msg.on{animation:bfmsg 2.8s steps(8) forwards} }
/* platform pot: landscape (assets | split + buffer | totals + Distribute), stacks at <= 768px */
.pp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 26px;align-items:start}
.pp-col{display:grid;gap:10px;min-width:0}
.pp-h{font-size:15px;color:var(--washi)}
.pp-assets{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.pp-assets li{display:grid;gap:1px;padding:7px 9px;background:var(--panel-2);border:2px solid var(--line-2);min-width:0}
.pp-assets li b{font-size:13px;color:var(--gold)}
.pp-assets li .v{font-weight:800;font-variant-numeric:tabular-nums;color:var(--washi-2)}
.pp-assets li small{font-size:11.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp-totals{display:grid;gap:6px;margin:0}
.pp-totals div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:2px solid var(--line)}
.pp-totals dt{display:flex;align-items:center;gap:6px;font-size:14px}
.pp-totals dt i{width:10px;height:10px;display:inline-block}
.pp-totals dd{margin:0;text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.pp-totals dd small{display:block;font-weight:500;font-size:11.5px;color:var(--mute)}
@media (max-width:768px){ .pp-grid{grid-template-columns:minmax(0,1fr)} }

/* equal-size cards: battlefield districts (7 / 4+3 / 2 / phone scroll), coin grid, gold desk tiles */
.bf-list{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;gap:8px}
.bf-list li{display:flex;min-width:0}
.bf-list button{grid-template-columns:40px minmax(0,1fr);grid-template-rows:repeat(4,auto);align-content:center;gap:1px 8px;padding:8px 10px;height:100%;min-height:92px}
.bf-list button .kj{grid-row:1 / 5;grid-column:1;width:40px;height:40px;display:grid;place-items:center;align-self:center;background:#0A0726;border:2px solid var(--dc);font-size:24px;line-height:1}
.bf-list button span:last-child{grid-column:auto}
.bf-list button .l1,.bf-list button .l2,.bf-list button .l3,.bf-list button .l4{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bf-list button .l1{color:var(--washi);font-size:14px}
.bf-list button .l2{color:var(--washi-2);font-weight:800;font-variant-numeric:tabular-nums;font-size:13.5px}
.bf-list button .l2 small{color:var(--mute);font-weight:500;font-size:11px}
.bf-list button .l3,.bf-list button .l4{font-size:12px;color:var(--mute)}
@media (max-width:1100px){ .bf-list{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:640px){ .bf-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:420px){ .bf-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px} .bf-list li{flex:0 0 150px;scroll-snap-align:start} }
.cgrid{grid-auto-rows:1fr;align-items:stretch}
.cgrid > *{height:100%;box-sizing:border-box}
.utils{grid-auto-rows:1fr;align-items:stretch}
.utils > .util{height:100%;box-sizing:border-box}
/* keep the battlefield section inside its column (the phone scroll row must not widen the page) */
.townwin{grid-template-columns:minmax(0,1fr)} .townwin > *, #town, .bf{min-width:0} .bf-list{max-width:100%}
/* header: tighten the desktop nav between 900 and 1200px so it never overflows */
@media (min-width:900px) and (max-width:1200px){ .nav{gap:0;margin-left:4px} .nav a{padding:0 6px;font-size:14px;gap:5px} .nav a svg,.nav a .i{width:16px;height:16px} .hdr-r{gap:6px} .ticker{display:none} }
@media (min-width:900px) and (max-width:1200px){ .connect .addr-t{display:none} .connect .addr-s{display:inline} }
/* the sr-only text inside district cards must stay inside the scroll row */
.bf-list,.bf-list button{position:relative}
/* equal heights for gold desk tabs and rewards KPIs at every width */
.dtabs{grid-auto-rows:1fr;align-items:stretch} .dtabs > *{height:100%;box-sizing:border-box}
.kpis{grid-auto-rows:1fr;align-items:stretch} .kpis > .kpi{height:100%;box-sizing:border-box}
/* 900-1100px: icon-only desktop nav (link text stays in the DOM as the accessible name) */
@media (min-width:900px) and (max-width:1100px){ .nav a{font-size:0;gap:0;padding:0 9px} .nav a svg,.nav a .i{width:20px;height:20px} }

/* ===== Phase 1: the Gold House ===== */
.hero-sub{font-size:17px;line-height:1.5;color:var(--washi-2);max-width:56ch;margin:4px 0 6px}
.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;grid-auto-rows:1fr}
.why-grid .why{display:grid;align-content:start;gap:8px;height:100%;box-sizing:border-box}
.why-grid .why .h3{font-size:19px;color:var(--gold)}
.why-grid .why p{margin:0;font-size:14.5px;line-height:1.55;color:var(--washi)}
@media (max-width:1000px){ .why-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .why-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto} }
/* the loop: the gold floor in the middle, six pieces around it */
.loop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto;gap:12px;align-items:stretch}
.loop-core{grid-column:2;grid-row:1 / 4;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;padding:20px;background:radial-gradient(circle at 50% 40%,rgba(248,184,0,.25),rgba(10,7,38,.9) 70%);border:3px solid var(--gold);box-shadow:0 0 0 3px #140C30,0 0 28px rgba(248,184,0,.25)}
.loop-core .kj{font:400 40px/1 "DotGothic16",var(--f);color:var(--gold)}
.loop-core b{font:400 30px/1 "Jersey 10",var(--f);letter-spacing:.04em;color:var(--washi-2)}
.loop-core span{font-size:14px;color:var(--washi)}
.loop-node{display:grid;grid-template-columns:34px 1fr;gap:2px 10px;align-content:start;padding:12px;background:var(--panel-2);border:2px solid var(--line-2)}
.loop-node img{grid-row:span 2}
.loop-node b{color:var(--gold);font-size:15px}
.loop-node span{font-size:13.5px;line-height:1.5;color:var(--washi)}
.loop-node:nth-of-type(2){grid-column:1;grid-row:1}.loop-node:nth-of-type(3){grid-column:1;grid-row:2}.loop-node:nth-of-type(4){grid-column:1;grid-row:3}
.loop-node:nth-of-type(5){grid-column:3;grid-row:1}.loop-node:nth-of-type(6){grid-column:3;grid-row:2}.loop-node:nth-of-type(7){grid-column:3;grid-row:3}
.loop-line{margin:12px 0 0;font-size:15.5px;color:var(--washi-2);text-align:center}
@media (max-width:760px){ .loop{grid-template-columns:minmax(0,1fr)} .loop-core,.loop-node:nth-of-type(n){grid-column:1;grid-row:auto} }
/* Floor Pawn */
.pw-h{margin:0 0 4px;font-size:18px;color:var(--washi-2)}
.pw-go{font:400 28px/1 "Jersey 10",var(--f);letter-spacing:.12em}
.pw-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;grid-auto-rows:1fr}
.pw-steps li{display:grid;gap:2px;align-content:start;padding:10px 12px;background:var(--panel-2);border:2px solid var(--line-2)}
.pw-steps li b{color:var(--gold);font-size:14.5px}
.pw-steps li span{font-size:13px;line-height:1.5;color:var(--washi)}
.pw-steps li:last-child{border-color:var(--shu-hi)}
@media (max-width:520px){ .pw-steps{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto} }
.pw-list{display:grid;gap:10px}
.pw-card{display:grid;gap:8px;padding:12px;background:var(--panel-2);border:2px solid var(--line-2);border-left:6px solid var(--gold)}
.pw-card.warn{border-left-color:#F0A030}.pw-card.bad{border-left-color:var(--shu-hi);opacity:.85}.pw-card.ok{border-left-color:var(--jade)}
.pw-nums{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;font-size:13.5px;color:var(--washi)}
.pw-nums small{color:var(--mute)}
.pw-badge{display:inline-block;padding:2px 8px;font:400 15px/1.1 "Jersey 10",var(--f);letter-spacing:.06em;background:var(--gold);color:#140C30}
.pw-badge.warn{background:#F0A030}.pw-badge.bad{background:var(--shu-hi);color:#fff}.pw-badge.ok{background:var(--jade)}
.pw-tl{position:relative;display:flex;height:20px;border:2px solid #140C30;font:700 11px/16px var(--f);color:#140C30}
.pw-tl .t{background:var(--gold);padding-left:6px;white-space:nowrap;overflow:hidden}
.pw-tl .g{background:#F0A030;padding-left:4px;white-space:nowrap;overflow:hidden}
.pw-tl .burn{position:absolute;right:-12px;top:-4px;font-style:normal;font-size:16px}
.pw-tl .now{position:absolute;top:-5px;width:3px;height:26px;background:var(--washi-2);box-shadow:0 0 0 1px #140C30;transform:translateX(-1px)}
/* Gold Engine */
.ge-lead{margin:0;font-size:16px;line-height:1.55;color:var(--washi-2)}
.ge-rule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ge-rule span{padding:10px 12px;border:2px solid var(--line-2);background:var(--panel-2);font-size:15px}
.ge-rule .up{border-color:var(--jade)}.ge-rule .up b{color:var(--jade)}
.ge-rule .down b{color:var(--mute)}
@media (max-width:520px){ .ge-rule{grid-template-columns:minmax(0,1fr)} }
.ge-gauge{position:relative;height:26px;margin:6px 6px 18px;background:#0A0726;border:3px solid var(--line-2)}
.ge-gauge .band{position:absolute;top:0;bottom:0;background:rgba(88,216,88,.35)}
.ge-gauge .needle{position:absolute;top:-6px;width:4px;height:32px;background:var(--gold);box-shadow:0 0 0 2px #140C30;transform:translateX(-2px)}
.ge-gauge .lbl{position:absolute;top:28px;transform:translateX(-50%);font:400 14px/1 "Jersey 10",var(--f);color:var(--mute)}
.ge-facts{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
/* Hardwire */
.hw-warn{font-size:15px}
.hw-ack{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--washi-2);cursor:pointer}
.hw-ack input{width:20px;height:20px;accent-color:var(--shu)}
/* Neko vs Gold knights + arena */
.note.ok.knight{border-color:var(--jade)}
.arena .hiscore{margin-top:8px;padding:8px}
.arena .hiscore th{font-size:17px;padding:2px 4px 6px}
.arena .hiscore td{padding:5px 4px}
.arena .hiscore td.rk{font-size:19px;width:40px}
.arena .hiscore td.nm{font-size:13px;white-space:nowrap}
.arena .hiscore td.sc{font-size:20px}
.arena .hiscore td.sc small{font-size:11.5px}

/* My Shrine: Founding badges */
.badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;grid-auto-rows:1fr}
.badge{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:10px;background:var(--panel-2);border:2px solid var(--line-2);opacity:.7}
.badge.on{opacity:1;border-color:var(--gold);box-shadow:0 0 12px rgba(248,184,0,.25)}
.badge b{display:block;font-size:14px;color:var(--washi-2)}
.badge small{font-size:12px;color:var(--mute)}
.badge .st{font:400 15px/1 "Jersey 10",var(--f);color:var(--gold)}
@media (max-width:520px){ .badges{grid-template-columns:minmax(0,1fr)} }

/* ---------- card grids: every box has its own pixel-window outline, equal sizes ---------- */
/* product tiles (Home): 3 x 2 desktop, 2 x 3 tablet, 1 column phone */
.utils{grid-template-columns:minmax(0,1fr);gap:14px;grid-auto-rows:1fr}
@media (min-width:560px){ .utils{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .utils{grid-template-columns:repeat(3,minmax(0,1fr))} }
.util{border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink),inset 0 0 0 var(--px) var(--ink);background:var(--deep);padding:16px 14px}
.util:hover{border-color:var(--gold);box-shadow:0 0 0 var(--px) var(--ink),4px 4px 0 var(--px) var(--gold-lo)}
/* gold desk tabs: six separate cards, 3 x 2 desktop, 2 x 3 tablet and phone (compact) */
.dtabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:0;box-shadow:none;background:none}
.dtabs [role=tab],.dtabs [role=tab]:last-child,.dtabs [role=tab]:nth-child(2),.dtabs [role=tab]:nth-child(-n+2){border:var(--px) solid var(--washi);box-shadow:0 0 0 var(--px) var(--ink),inset 0 0 0 var(--px) var(--ink);background:var(--deep)}
.dtabs [role=tab][aria-selected=true]{background:var(--gold);border-color:var(--gold)}
@media (max-width:760px){ .dtabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px} }
/* uniform stat cards: LABEL / big value (USD first) / one short line */
.scards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;grid-auto-rows:1fr}
@media (max-width:900px){ .scards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .scards{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto} }
.scard{display:grid;align-content:start;gap:6px;min-width:0;padding:12px 14px;background:var(--panel-2);border:3px solid var(--line-2);box-shadow:0 0 0 2px var(--ink)}
.scard .k{font-size:12.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--mute)}
.scard .v{font-family:var(--f-display);font-size:34px;line-height:1;color:var(--washi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard .v.g{color:var(--gold)}
.scard .u{font-size:13.5px;color:var(--washi-2,#CFC6F0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard .u b{color:var(--gold);font-weight:700}
/* the existing stat rows follow the same rules */
.stat-row{grid-auto-rows:1fr}
.stat{border-color:var(--line-2);box-shadow:0 0 0 2px var(--ink)}
.stat .k{text-transform:uppercase;letter-spacing:1px;font-size:12px}
/* leverage band bar: ticks + legend */
.ge-gauge .tick{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--jade)}
.ge-gauge .lbl.band-l{color:var(--jade)}
.ge-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--mute);margin:-4px 0 0}
.ge-legend i{display:inline-block;width:14px;height:10px;margin-right:6px;vertical-align:-1px}
.ge-how summary{cursor:pointer;font-weight:700;color:var(--washi)}
.ge-how ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px;color:var(--washi-2,#CFC6F0)}
.scards.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){ .scards.n3{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto} }
.scard .v[data-hw-share]{color:var(--washi)}
/* the Gold House world */
.world .bf-banner{top:14%}
.world .bf-pl.house{border-color:var(--gold);box-shadow:0 0 0 2px #140C30,0 0 14px 2px rgba(248,184,0,.45)}

.world .bf-cv{margin:0 auto}
.townwin .bf-list{grid-template-columns:repeat(4,minmax(0,1fr))}
.townwin .bf-list button{min-height:84px}
.townwin .bf-list button > span,.townwin .bf-list button > b{white-space:normal;overflow:visible;text-overflow:clip}
@media (max-width:900px){ .townwin .bf-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:420px){ .townwin .bf-list{display:grid;grid-template-columns:minmax(0,1fr)} .townwin .bf-list li{flex:none} }

/* contracts as cards: readable at any width */
.cc-h{font-family:var(--f-display);font-weight:400;font-size:24px;color:var(--gold);margin:26px 0 4px}
.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin:12px 0}
.cc{border:3px solid var(--line);background:var(--panel-2);padding:14px 16px;min-width:0}
.cc h4{margin:0;font-size:17px;font-weight:800;color:var(--gold-hi,var(--gold));overflow-wrap:anywhere}
.cc-a{font-size:14px;margin-top:4px;overflow-wrap:anywhere}
.cc p{margin:10px 0;font-size:15px;line-height:1.5}
.cc dl{margin:0;display:grid;gap:8px}
.cc dt{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}
.cc dd{margin:0;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere}
@media (max-width:420px){.cc-grid{grid-template-columns:1fr}}

.split span{overflow:hidden;white-space:nowrap;font-size:12px;display:flex;align-items:center;justify-content:center;padding:0 2px}
.fee-key{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}.fee-key li{display:flex;gap:10px;align-items:baseline;line-height:1.4}.fee-key i{flex:0 0 14px;height:14px;display:inline-block;border:2px solid var(--washi)}
@media (max-width:520px){.split span{font-size:0}}

.fee-wrap{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;flex:0 0 150px;border:3px solid var(--washi)}
.donut span{width:92px;height:92px;border-radius:50%;background:var(--night);display:grid;place-content:center;text-align:center}.donut b{font-size:26px;color:var(--gold)}.donut small{font-size:12px;color:var(--mute)}
.fee-wrap .fee-key{flex:1 1 220px;margin:0}.fee-wrap .fee-key li{align-items:center}.fee-wrap .fee-key span{margin-left:auto;font-weight:800}
.fee-more{margin-top:12px}.fee-more summary{cursor:pointer;color:var(--gold);font-weight:800}

.pp-col .fee-wrap{flex-direction:column;align-items:flex-start;gap:14px}.pp-col .fee-key{width:100%}.pp-col .donut{align-self:center}.pp .fee-more{margin-top:16px;border-top:3px solid var(--line);padding-top:12px}

.chead-chart{border-top:3px solid var(--line);padding-top:14px}

.ohlc{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--f-num);font-size:13px;color:var(--mute)}.ohlc b{font-weight:700}.ohlc .up{color:#26A69A}.ohlc .down{color:#EF5350}

.cf-more summary{cursor:pointer;color:var(--gold);font-weight:800;padding:4px 0}
.pawn-link{padding:14px 18px}

/* ---------- mobile fixes (3 Oct) ---------- */
html,body{overflow-anchor:none} /* late-loading images and numbers must not shift the scroll position */
.m-buybar{transform:translateY(130%);transition:transform .2s ease;pointer-events:none}.m-buybar.show{transform:none;pointer-events:auto}
@media (max-width:999px){ .coin-grid > .coin-main > *{order:4} .coin-grid > .coin-main > .chead{order:1} .coin-grid > .coin-side{order:2} .coin-grid > .coin-main > .tabs-sec{order:3} }
.fee-more .fee-key li{display:block;line-height:1.45}.fee-more .fee-key li b{display:block}
@media (max-width:700px){ #foot-pair{display:none} .foot .in{flex-wrap:wrap;gap:10px 18px} .foot .in .sp{display:none} }

/* ---------- footer: hanko + pixel ETH + links in one row; no floating buy bar ---------- */
.foot .in{display:flex;align-items:center;flex-wrap:nowrap;gap:14px 18px}
.foot .eth-link{display:inline-flex;align-items:center;line-height:0}.foot .eth-px{image-rendering:pixelated;display:block}
.foot .in a:not(.eth-link){white-space:nowrap}
.m-buybar{display:none!important}
body.has-buybar .foot{padding-bottom:calc(var(--tab) + 24px + env(safe-area-inset-bottom))}

/* ---------- logos: wordmark in the header, footer = stamp | coin + wordmark + ETH / links ---------- */
.brand img.wm{height:26px;width:auto;image-rendering:pixelated;display:block}
.foot .in{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}
.foot .f-stamp{flex:0 0 auto;width:56px;height:56px}
.foot .f-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.foot .f-logos{display:flex;align-items:center;gap:12px}
.foot .f-logos img{display:block;image-rendering:pixelated;width:auto}.foot .f-logos img[width="30"]{height:30px}.foot .f-logos img.wm{height:22px}.foot .f-logos .eth-link img{height:40px;width:24px}
.foot .f-links{display:flex;gap:20px}.foot .f-links a{white-space:nowrap}
@media (min-width:700px){ .foot .f-main{flex-direction:row;align-items:center;justify-content:space-between;gap:20px} }
@media (max-width:700px){ #foot-pair{display:none} }
.foot .in{flex-wrap:wrap}.foot #foot-dev{flex:0 0 100%;order:9;font-size:12px}
.foot .f-main{flex:1 1 220px}

/* trade panel: unit switch shows both units, asset buttons wrap instead of sticking out */
.unit-t{display:inline-flex;align-items:stretch;padding:0;gap:0;overflow:hidden;min-width:0}
.unit-t i{font-style:normal;display:grid;place-items:center;min-width:34px;padding:0 9px;color:var(--mute)}
.unit-t i.on{background:var(--gold);color:var(--deep)}
.unit-t[aria-pressed=true]{border-color:var(--line-2);color:var(--washi)}
.unit-t:hover{border-color:var(--gold);color:var(--washi)}
.swap .field .top{flex-wrap:wrap;row-gap:8px}
.swap .asset-sel{flex:1 1 auto;min-width:0}
.swap .asset-sel button,.swap .tok{padding:0 8px}
.swap .field .in input{min-width:0;flex:1 1 0}

.unit-t[hidden]{display:none}

/* Gold House live (#/live): tables scroll inside their window on phones, never the page */
.hl .win{margin-bottom:34px}
.hl .tbl-wrap{max-width:100%}
.hl .tbl{min-width:560px}
.hl .tbl .u{display:inline;margin-left:6px}
.hl .lv-sm{display:inline-flex;align-items:center;gap:6px}
.hl .lv-sm .lives{gap:2px;min-height:0;flex-wrap:nowrap}
.hl .lv-sm .lives img{width:12px;height:12px}
.hl .eat{font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--ink);background:var(--shu-hi);padding:1px 6px;margin-left:6px}
.hl .rk{color:var(--mute);width:1%}
