/* theme.css — "Tetra Kingdom": restrained epic-fantasy look for the member dashboard.
   Loaded after styles.css; it only re-skins (tokens, sidebar, cards) and adds the Overview layout. */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--bg:#070C1A;--panel:#0D1630;--panel2:#111C3B;--line:#22325A;--text:#EEF1FA;--muted:#9AA6C4;--text-muted:#9AA6C4;
  --cyan:#6FB2FF;--purple:#3D6FD6;--gold:#E7B75A;--gold-soft:#F3D594;--green:#5FD39A;--danger:#FF7A85;
  --radius:14px;--glow:0 0 0 transparent;--icon-a:#E7B75A;--icon-b:#F3D594;--serif:'Cinzel',Georgia,serif}
html,body{background:var(--bg);font-family:'Manrope',"Segoe UI",sans-serif}
body:before,body:after{display:none}

/* top bar */
.topbar{background:rgba(7,12,26,.9);border-bottom:1px solid var(--line)}
.identity strong{color:var(--gold-soft);text-shadow:none}
.lang-btn{border-color:var(--line);color:#C6CEE3}
.lang-btn:hover,.lang-btn[aria-pressed="true"]{color:var(--gold);border-color:var(--gold)}

/* sidebar */
.sidebar{background:#081027;padding:18px 12px}
.sidebar:before{display:none}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}
.side-brand .name{font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:2px;color:var(--gold-soft);line-height:1}
.side-brand .sub{font-size:11px;color:var(--muted);margin-top:4px}
.nav-item{color:#C3CBE0;font-weight:600;border-radius:10px;padding:8px 10px;gap:12px;min-height:46px}
.nav-item:hover{background:#101B3D;border-color:#22325A;color:#fff}
.nav-item.active{background:#13204A;border-color:var(--gold);color:#fff;box-shadow:none}
.nav-icon{width:32px;height:32px;flex:0 0 32px;margin:0;border-radius:9px;background:#0F1A3A;display:flex;align-items:center;justify-content:center}
.nav-item.active .nav-icon{background:#0A1228}
.nav-soon{margin-inline-start:auto;font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;background:#18244A;color:#AEB8D3}
.side-foot{margin-top:auto;padding-top:14px}
.side-wallet{padding:12px;border-radius:12px;background:#0D1630;border:1px solid var(--line);display:flex;align-items:center;gap:10px}
.side-wallet .lbl{font-size:11px;color:var(--muted)}
.side-wallet .addr{font-weight:800;font-size:14px;color:var(--text)}
.side-wallet button{margin-inline-start:auto;background:transparent;border:1px solid var(--line);border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;--icon-a:#9AA6C4;--icon-b:#6E7A99}

/* shared surfaces */
.section-title{font-family:var(--serif);font-weight:700;letter-spacing:1px;text-shadow:none}
.stat,.panel{background:var(--panel);border:1px solid var(--line);box-shadow:none}
.stat:after{display:none}.stat:hover{transform:none;border-color:#2F4479;box-shadow:none}
.stat-value.accent{color:var(--gold);text-shadow:none}.stat-value.teal{color:var(--green);text-shadow:none}
.panel-title{font-family:var(--serif);font-weight:700;letter-spacing:.5px}
.row{border-bottom:1px solid #1A2749;color:#AEB8D3}
.progress-track{background:#0A1228;border-color:var(--line)}
.progress-fill{background:var(--gold);box-shadow:none}
.badge.gold{background:var(--gold);color:#0B1020;border:0}
.btn{background:var(--panel2);border-color:var(--line);font-family:inherit}
.btn:hover{transform:none;border-color:#3A5290}
.btn-accent{background:var(--gold);color:#0B1020;border:0;box-shadow:none;font-weight:800}
.btn-accent:hover{background:var(--gold-soft)}
.btn-line{background:transparent;border:1px solid var(--gold);color:var(--gold-soft)}
.invite-box{background:#0A1228;border-color:var(--line);color:#D7DDEE}
.empty-state .mark{color:var(--gold);text-shadow:none}
.field input:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(231,183,90,.15)}

/* ---------- Overview ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ov{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.ov-card{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;min-width:0;display:flex;flex-direction:column;gap:12px}
.ov-card>*:not(.ov-art){position:relative}
.ov-card h2{margin:0;font-family:var(--serif);font-size:17px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:10px}
.ov-card h2 .gold,.gold{color:var(--gold)}
.ov-card h2 .h2sub{display:block;font-family:'Manrope',sans-serif;font-size:13px;font-weight:500;color:#C3CBE0;margin-top:4px}
.ov-art{position:absolute;pointer-events:none;user-select:none;max-width:none}
.ov-sm{padding:7px 14px;font-size:13px;display:inline-flex;align-items:center;gap:6px;border-radius:10px}
.ov-sm .ico{--icon-a:currentColor;--icon-b:currentColor}

.ov-hero{grid-column:1/-1;position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--line);min-height:290px;
  background:linear-gradient(180deg,#1B2650 0%,#33406A 55%,#4A4B66 100%);display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:26px 28px}
.ov-hero-art{top:0;left:20%;height:100%;width:64%;object-fit:cover;object-position:35% 45%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 66%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 66%,transparent 100%)}
.ov-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,12,26,.9) 0%,rgba(7,12,26,.45) 26%,rgba(7,12,26,0) 46%);pointer-events:none;z-index:1}
.ov-hero>*:not(.ov-art){position:relative;z-index:2}
.ov-welcome{flex:1 1 300px;display:flex;flex-direction:column;gap:6px}
.ov-welcome .kicker{font-family:var(--serif);font-size:24px;color:#EEF1FA}
.ov-welcome .name{margin:0;font-family:var(--serif);font-weight:700;font-size:48px;line-height:1.05;color:#FFF6E2;overflow-wrap:anywhere;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.ov-welcome .sub{color:#E3E7F2;font-size:15px;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.ov-pkg{margin-top:14px;align-self:flex-start;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 12px;border-radius:12px;background:rgba(10,18,40,.85);border:1px solid rgba(231,183,90,.6)}
.ov-pkg .t{font-family:var(--serif);font-weight:700;font-size:18px;color:#FFF6E2}.ov-pkg .s{font-size:12px;color:var(--muted)}
.ov-rank{margin-inline-start:auto;flex:0 1 330px;background:rgba(10,16,36,.93);border:1px solid #2A3B6B;border-radius:16px;padding:18px 20px 12px;display:flex;flex-direction:column;gap:12px}
.ov-rank-top{display:flex;gap:14px;align-items:center}
.ov-rank .lbl{font-size:13px;color:var(--muted)}
.ov-rank .nm{font-family:var(--serif);font-weight:700;font-size:28px;color:#fff;line-height:1.15}
.ov-rank .lv{font-size:13px;color:#C3CBE0}
.ov-rank .progress-track{margin:8px 0 4px;height:8px}
.ov-rank .xp{font-size:12px;color:#C3CBE0;text-align:end}
.ov-rank-next{display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;border:0;border-top:1px solid #22325A;padding:12px 0 2px;color:#DDE3F2;font:500 14px 'Manrope',sans-serif;cursor:pointer;text-align:start;--icon-a:#DDE3F2;--icon-b:#DDE3F2}
.ov-rank-next:hover b{color:var(--gold)}
.ov-rk{flex:0 0 auto;border-radius:10px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center}
.ov-rk.muted{background:#111C3B;border:1px solid var(--line);--icon-a:#6E7A99;--icon-b:#AEB8D3}

.ov-stat{grid-column:span 3;flex-direction:row;gap:14px;align-items:flex-start}
.ov-stat .ic{width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:#1A2547;display:flex;align-items:center;justify-content:center}
.ov-stat .lb{font-size:14px;color:#D3D9EA}
.ov-stat .vl{font-size:25px;font-weight:800;color:var(--text);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-stat .vl small{font-size:14px;font-weight:700;color:#D3D9EA;margin-inline-start:6px}
.ov-stat .vl.gold{color:var(--gold-soft)}
.ov-stat .ft{font-size:12px;color:var(--muted);margin-top:4px}
.ov-art-stat{top:0;right:0;height:100%;width:42%;object-fit:cover;opacity:.45;-webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);mask-image:linear-gradient(90deg,transparent,#000 70%)}
.ov-link{background:none;border:0;padding:0;color:var(--gold-soft);font:inherit;font-size:12px;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

.ov-cap{grid-column:span 5}
.ov-art-chest{top:0;right:0;height:84px;width:auto;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%)}
.ov-cap .inner{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.ov-ring{position:relative;width:140px;height:140px;flex:0 0 140px}
.ov-ring svg{transform:rotate(-90deg)}
.ov-ring .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.ov-ring .big{font-size:18px;font-weight:800}.ov-ring .sm{font-size:11px;color:#C3CBE0}
.ov-cap .side{flex:1 1 170px;display:flex;flex-direction:column;gap:10px;font-size:14px;color:#C3CBE0;padding-inline-start:18px;border-inline-start:1px solid #1A2749}
.ov-cap .kv,.ov-frow,.ov-barrow{display:flex;justify-content:space-between;align-items:center;gap:10px}.ov-cap .kv b{color:var(--text)}
.ov-barrow .progress-track{flex:1;margin:0}.ov-barrow b{font-size:13px}
.ov-clock{font-variant-numeric:tabular-nums;font-weight:800;color:#DDE3F2;font-size:13px}

.ov-member{grid-column:span 4;gap:4px}
.ov-art-side{top:0;right:0;height:100%;width:48%;object-fit:cover;opacity:.55;-webkit-mask-image:linear-gradient(90deg,transparent,#000 65%);mask-image:linear-gradient(90deg,transparent,#000 65%)}
.ov-member .kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid rgba(34,50,90,.8);font-size:14px;color:#C3CBE0}
.ov-member .kv:last-child{border-bottom:0}.ov-member .kv b{color:var(--text)}
.ov-chip{display:inline-block;padding:4px 14px;border-radius:999px;font-size:12px;font-weight:800;background:var(--gold);color:#0B1020}
.ov-chip.muted{background:#18244A;color:#C3CBE0}
.ov-icon-btn{background:rgba(10,18,40,.7);border:1px solid var(--line);border-radius:8px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;vertical-align:middle;margin-inline-start:8px;--icon-a:#AEB8D3;--icon-b:#6E7A99}

.ov-journey{grid-column:span 3}
.ov-steps{display:flex;flex-direction:column;gap:12px;padding-inline-start:4px}
.ov-st{display:flex;align-items:center;gap:12px}
.ov-st .nm{font-family:var(--serif);font-weight:700;color:#fff}.ov-st .sub{font-size:12px;color:var(--muted)}
.ov-journey .hint{margin:0;font-size:12px;color:#C3CBE0;line-height:1.5}

.ov-invite{grid-column:span 9}
.ov-art-gate{top:0;right:0;height:100%;width:62%;object-fit:cover;opacity:.7;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}
.ov-gates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ov-gate{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:rgba(8,14,32,.85);border:1px solid var(--line)}
.ov-gate label{font-size:12px;color:#C3CBE0;font-weight:600}
.ov-gate .ln{display:flex;gap:8px;align-items:center}
.ov-gate .lk{flex:1;min-width:0;padding:10px 12px;border-radius:10px;background:#070C1A;border:1px solid var(--line);font-size:12px;color:#E3E7F2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ov-fest{grid-column:span 3;border-color:rgba(231,183,90,.55)}
.ov-art-dragon{top:0;right:0;height:96px;width:auto;opacity:.7;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%)}
.ov-fhead{display:flex;gap:10px;align-items:flex-start}
.ov-medal{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:#1A2547;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center}
.ov-fest .fn{font-weight:800;font-size:14px;color:#fff}
.ov-fest .fd{font-size:12px;color:#C3CBE0;display:inline-flex;align-items:center;gap:6px}

.ov-quick{grid-column:1/-1}
.ov-art-land{top:0;right:0;height:100%;width:46%;object-fit:cover;opacity:.85;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%)}
.ov-qrow{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.ov-q{flex:0 1 128px;min-height:56px;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;border-radius:12px;background:rgba(17,28,59,.92);border:1px solid var(--line);color:#DDE3F2;font:600 13px 'Manrope',sans-serif;cursor:pointer;position:relative;text-align:start}
.ov-q:hover{border-color:var(--gold)}
.ov-q .qi{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#0A1228;display:flex;align-items:center;justify-content:center}
.ov-q[disabled]{cursor:default;opacity:.65}.ov-q[disabled]:hover{border-color:var(--line)}
.ov-q .soon{position:absolute;top:4px;right:6px;font-size:9px;font-weight:800;padding:1px 6px;border-radius:999px;background:#18244A;color:#AEB8D3}
.ov-more{margin-inline-start:auto;display:flex;flex-direction:column;text-align:end;font-size:13px;color:#E3E7F2;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.ov-more b{font-size:15px}

.ov-warn{grid-column:1/-1;border-color:var(--danger)}

.ov-dialog{background:var(--panel);color:var(--text);border:1px solid var(--gold);border-radius:16px;padding:24px;width:calc(100% - 32px);max-width:520px}
.ov-dialog::backdrop{background:rgba(3,6,14,.7)}
.ov-dialog h2{margin:0 0 6px;font-family:var(--serif)}
.ov-dialog .note{margin:0 0 14px;font-size:13px;color:var(--muted)}
.ov-ladder{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px}
.ov-ladder li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:#0A1228;border:1px solid var(--line)}
.ov-ladder li.now{border-color:var(--gold)}.ov-ladder li.done{opacity:.75}
.ov-ladder .lv{width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#18244A;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.ov-ladder li>div{flex:1;display:flex;flex-direction:column}.ov-ladder li>div span{font-size:12px;color:var(--muted)}

.side-explore{position:relative;overflow:hidden;width:100%;min-height:96px;margin-bottom:12px;border-radius:12px;border:1px solid var(--line);background:#0D1630 url(assets/art/explore.webp) center/cover no-repeat;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:10px 14px;cursor:pointer;text-align:start}
.side-explore:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,12,26,.9),rgba(7,12,26,0) 70%)}
.side-explore span{position:relative}
.side-explore .t{font-family:var(--serif);font-weight:700;font-size:15px;color:var(--gold)}
.side-explore .s{font-size:11px;color:#E3E7F2}
.side-explore:hover{border-color:var(--gold)}
.side-brand img{flex:0 0 auto}

@media (max-width:1250px){
  .ov-stat{grid-column:span 6}
  .ov-cap,.ov-member{grid-column:span 6}
  .ov-journey,.ov-fest{grid-column:span 6}
  .ov-invite{grid-column:span 12}
}
@media (max-width:720px){
  .ov{gap:12px}
  .ov-stat,.ov-cap,.ov-member,.ov-journey,.ov-fest,.ov-invite{grid-column:1/-1}
  .ov-hero{padding:20px;min-height:0}
  .ov-hero-art{left:0;width:100%;object-fit:cover;opacity:.55}
  .ov-hero:before{background:rgba(7,12,26,.55)}
  .ov-welcome .name{font-size:34px}
  .ov-rank{flex:1 1 100%;margin:0}
  .ov-gates{grid-template-columns:1fr}
  .ov-cap .side{padding-inline-start:0;border:0}
  .ov-q{flex:1 1 calc(50% - 6px)}
  .ov-more{display:none}
  .nav-icon{width:30px;height:30px;flex-basis:30px}
}

/* lightweight mode (slow connections) and reduced motion */
body.lite .ov-art{display:none}
body.lite .side-explore{background-image:none}
body.lite *,body.lite *:before,body.lite *:after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* ---- lottery news on the dashboard ---- */
.nav-count{margin-inline-start:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--gold);color:#0B1020;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.nav-count.hidden{display:none}
.ov-lots{grid-column:1/-1}
.ov-lots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 22px}
.lot-sub{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8E9AB8;margin:0 0 6px}
.lot-row{display:flex;align-items:center;gap:12px;width:100%;text-align:start;background:#0E1838;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 8px;color:var(--text);font:inherit;cursor:pointer;transition:border-color .2s,background .2s}
.lot-row:hover{border-color:var(--gold);background:#13204A}
.lot-row .qi{flex:0 0 36px;height:36px;border-radius:10px;background:#13204A;display:flex;align-items:center;justify-content:center}
.lot-row .lt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lot-row .lt b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lot-row .lt small,.lot-row .lr small{color:#A9B3CC;font-size:12px}
.lot-row .lr{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:end}
.lot-row.result.won{border-color:rgba(231,183,90,.55);background:linear-gradient(90deg,rgba(231,183,90,.14),#0E1838)}
.ov-prize{color:var(--gold);font-weight:700}
.lottery-card.flash{animation:lotFlash 1.6s ease 2}
@keyframes lotFlash{50%{box-shadow:0 0 0 3px var(--gold)}}
.win-dialog{border:1px solid var(--gold);border-radius:20px;background:radial-gradient(circle at 50% 0,#1C2C63,#0B1330 70%);color:var(--text);padding:28px 26px 22px;width:min(420px,calc(100vw - 32px));text-align:center;overflow:hidden}
.win-dialog::backdrop{background:rgba(3,6,16,.75)}
.win-dialog h2{font-family:var(--serif);color:var(--gold);margin:10px 0 4px;font-size:26px}
.win-dialog .big{font-size:34px;font-weight:800;margin:4px 0;color:#FFF6E2}
.win-dialog .note{color:#A9B3CC;font-size:13px}
.win-dialog .acts{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.win-dialog .trophy{position:relative;z-index:1;animation:winPop .7s cubic-bezier(.2,1.4,.4,1) both}
.win-dialog>*:not(.confetti){position:relative;z-index:2}
.confetti{position:absolute;inset:0;pointer-events:none;z-index:0}
.confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;opacity:.9;animation:confettiFall 2.8s linear infinite}
@keyframes confettiFall{to{transform:translateY(520px) rotate(540deg)}}
@keyframes winPop{from{transform:scale(.3);opacity:0}}
@media (prefers-reduced-motion:reduce){.confetti i,.win-dialog .trophy,.lottery-card.flash{animation:none}.confetti{display:none}}
body.lite .confetti{display:none}

/* ---- menu groups (Tetra Kingdom) ---- */
.nav-label{padding:14px 12px 4px;font-size:10px;font-weight:800;letter-spacing:.16em;color:#6B7A99}
.nav-label:first-of-type{padding-top:2px}
.nav-item{min-height:42px}
.nav-icon .ico-line{width:19px;height:19px}
.nav-item:hover .nav-icon,.nav-item.active .nav-icon{--icon-a:var(--gold-soft)}

/* ---- Kingdom Hub sections + feature tiles (names/icons from the Tetra Kingdom design) ---- */
.k-head{grid-column:1/-1;margin:10px 2px -4px}
.k-head .eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--gold)}
.k-head h2{margin:4px 0 0;font-family:var(--serif);font-size:21px;font-weight:700;color:var(--text)}
.k-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.k-tiles{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.k-tile{flex-direction:row;align-items:center;gap:14px;min-height:96px;padding:14px 16px;text-align:start;cursor:pointer;color:var(--text);font:inherit;transition:border-color .2s,transform .2s}
.k-tile:not([disabled]):hover{border-color:var(--gold);transform:translateY(-2px)}
.k-tile[disabled]{cursor:default;opacity:.72}
.k-art{flex:0 0 auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
.k-tile .k-art{width:58px;height:58px;padding:4px;border-radius:14px;background:radial-gradient(circle,#22325A,#111C3B 70%);border:1px solid var(--line)}
.k-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.k-t b{font-size:15px;font-weight:700;color:#F3EEE2}
.k-t small{font-size:12px;color:var(--muted)}
.k-go{flex:0 0 auto;--icon-a:#7E8EAA}
.k-tile:hover .k-go{--icon-a:var(--gold)}
.k-tile .nav-soon{flex:0 0 auto}
.ov-pkg .k-art{width:34px;height:34px}
@media (max-width:1100px){.k-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.k-tiles{gap:10px}.k-tile{min-height:84px;padding:10px 12px;gap:10px}.k-tile .k-art{width:46px;height:46px}.k-t b{font-size:13px}.k-t small{font-size:11px}.k-go{display:none}}
body.lite .k-tile{transition:none}
.k-tile{position:relative}
@media (max-width:560px){.k-tile .nav-soon{position:absolute;top:6px;right:6px;font-size:9px;padding:1px 6px}}
.ov-gates,.ov-gate{min-width:0}
.ov-ladder em{font-style:normal;font-size:11px;color:var(--gold-soft);letter-spacing:.02em}
.ov-ladder .ov-rk{flex:0 0 auto}
#ranksDialog form{max-height:min(86vh,820px);overflow:auto}
.ov-rk.locked{filter:grayscale(1) brightness(.75);opacity:.55}

/* ---- Support tickets ---- */
.sup-thread{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.sup-msg{max-width:85%;padding:10px 14px;border-radius:12px;background:#0E1838;border:1px solid var(--line)}
.sup-msg.admin{align-self:flex-start;border-color:rgba(231,183,90,.45)}
.sup-msg.member{align-self:flex-end;background:#13204A}
.sup-msg .who{font-size:11px;color:var(--muted);margin-bottom:4px}
.sup-msg .txt{font-size:14px;white-space:pre-wrap;word-break:break-word}
textarea{width:100%;background:#070C1A;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:10px 12px;font:inherit;resize:vertical}
@media (max-width:560px){.sup-msg{max-width:100%}}

/* placement at registration + invite builder (Oct 2026) */
.ov-gate .ov-hint{font-size:11px;color:var(--text-muted);line-height:1.35}
.ov-builder input,.ov-builder select{min-width:0;padding:9px 10px;border-radius:10px;background:#070C1A;border:1px solid var(--line);color:#E3E7F2;font:inherit;font-size:13px}
.ov-builder input{flex:1}
.place-preview{margin:14px 0 6px;padding:14px 16px;border-radius:12px;border:1px solid rgba(231,183,90,.55);background:rgba(8,14,32,.85)}
.place-preview .pp-title{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--gold);margin-bottom:8px}
.place-preview .pp-note{font-size:12px;margin:8px 0 0;color:var(--teal)}
.place-preview .muted,.panel .muted{color:var(--text-muted)}
label.check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}
label.check input{width:auto;margin:0}
.panel-sub{margin:14px 0 6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}

/* two-step sign-in (member site + admin panel) */
.twofa-dialog{border:1px solid rgba(231,183,90,.55);border-radius:16px;background:var(--panel,#0E1630);color:var(--text,#E3E7F2);padding:0;max-width:min(420px,calc(100vw - 32px));width:100%}
.twofa-dialog::backdrop{background:rgba(3,6,16,.72)}
.twofa-box{padding:22px 22px 18px;display:flex;flex-direction:column;gap:8px}
.twofa-title{font-weight:800;font-size:18px;color:var(--gold,#E7B75A)}
.twofa-text{margin:4px 0 0;font-size:14px;color:var(--text-muted,#A9B2CA)}
.twofa-hint{margin:0;font-size:12px;color:var(--text-muted,#A9B2CA)}
.twofa-err{margin:0;min-height:1em;font-size:13px;color:var(--danger,#FF6B6B)}
.twofa-code{font:700 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;text-align:center;padding:12px;border-radius:12px;background:#070C1A;border:1px solid var(--line,#24304F);color:#fff;width:100%;box-sizing:border-box}
.twofa-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
.twofa-steps{margin:0 0 12px;padding-left:20px;font-size:14px;line-height:1.5}
.twofa-setup{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.twofa-qr{background:#fff;border-radius:12px;padding:6px;line-height:0;flex:0 0 auto}
.twofa-qr svg{display:block;max-width:100%;height:auto}
.twofa-key{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 200px}
.twofa-key .lbl{font-size:12px;color:var(--text-muted,#A9B2CA)}
.twofa-key .key{font-size:15px;letter-spacing:.06em;word-break:break-all;padding:10px 12px;border-radius:10px;background:#070C1A;border:1px solid var(--line,#24304F)}
.twofa-key .btn{align-self:flex-start;text-decoration:none}
.twofa-openapp{display:none}
@media (hover:none),(max-width:820px){.twofa-openapp{display:inline-flex;align-items:center}}
.twofa-lbl{display:block;font-size:13px;margin-bottom:6px}
.twofa-row{display:flex;gap:10px;align-items:stretch;max-width:360px}
.twofa-row .twofa-code{flex:1;min-width:0;font-size:18px}
.twofa-recovery .codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:12px 0;padding-left:26px;font-size:15px}
.twofa-recovery .codes code{letter-spacing:.06em}
.twofa-recovery + .btn{margin-top:12px}
@media (max-width:480px){.twofa-recovery .codes{grid-template-columns:1fr}}

/* celebrations (welcome, upgrade, rank up, festival / lottery prize) */
.celebrate{padding-top:22px}
.cel-stage{position:relative;width:200px;height:170px;margin:0 auto 4px;display:grid;place-items:center}
.cel-rays{position:absolute;left:50%;top:50%;width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(231,183,90,.28) 0 9deg,transparent 9deg 24deg);
  -webkit-mask-image:radial-gradient(circle,#000 18%,transparent 66%);mask-image:radial-gradient(circle,#000 18%,transparent 66%);
  animation:celSpin 14s linear infinite,celFade .8s ease-out both}
.cel-ring{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;
  box-shadow:0 0 0 2px rgba(231,183,90,.65),0 0 46px 8px rgba(231,183,90,.35);animation:celPulse 2.2s ease-in-out .6s infinite}
.cel-burst{position:absolute;left:50%;top:50%;width:0;height:0}
.cel-burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#FFE7A8;box-shadow:0 0 10px 2px rgba(255,214,120,.8);
  opacity:0;transform:rotate(var(--a)) translateY(0);animation:celSpark 1.1s cubic-bezier(.15,.7,.3,1) calc(.25s + var(--d)) both}
.cel-art{position:relative;z-index:1;line-height:0;animation:celPop .9s cubic-bezier(.2,1.5,.4,1) both,celFloat 3.4s ease-in-out 1s infinite}
.cel-art img,.cel-art svg{width:120px;height:120px;filter:drop-shadow(0 6px 18px rgba(231,183,90,.45))}
.cel-kicker{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan,#3EC6E0);animation:celUp .6s ease-out .35s both}
.celebrate .cel-title{animation:celUp .6s ease-out .45s both,celShine 2.8s linear 1.2s infinite;
  background:linear-gradient(100deg,var(--gold) 40%,#FFF6E2 50%,var(--gold) 60%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.cel-line{animation:celUp .6s ease-out .6s both}
.celebrate .acts.cel-line{animation-delay:.75s}
@keyframes celSpin{to{transform:rotate(360deg)}}
@keyframes celFade{from{opacity:0;transform:scale(.6)}}
@keyframes celPulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:.55}}
@keyframes celSpark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(-110px) scale(.3)}}
@keyframes celPop{0%{transform:scale(.2) rotate(-14deg);opacity:0}70%{transform:scale(1.12) rotate(3deg);opacity:1}100%{transform:scale(1) rotate(0)}}
@keyframes celFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes celUp{from{opacity:0;transform:translateY(14px)}}
@keyframes celShine{from{background-position:120% 0}to{background-position:-130% 0}}
@media (prefers-reduced-motion:reduce){.cel-rays,.cel-ring,.cel-burst i,.cel-art,.cel-kicker,.celebrate .cel-title,.cel-line{animation:none}.cel-burst{display:none}.cel-burst i{opacity:0}}
body.lite .cel-rays,body.lite .cel-burst{display:none}

/* dashboard: upgrade countdown for TetraGate members */
.ov-upgrade{grid-column:1/-1;flex-direction:row;align-items:center;gap:18px;flex-wrap:wrap;border-color:rgba(231,183,90,.7);
  background:linear-gradient(100deg,rgba(231,183,90,.14),rgba(14,22,48,.95) 45%)}
.ov-upgrade .up-main{flex:1 1 240px;min-width:0}
.ov-upgrade h2{margin:0;color:var(--gold);font-family:var(--serif);font-size:20px}
.ov-upgrade p{margin:4px 0 0;font-size:14px;color:#C3CBE0}
.ov-upgrade .up-time{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.ov-upgrade .up-time .lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.ov-upgrade .up-time .clk{font:800 22px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#FFF6E2;white-space:nowrap}
.ov-upgrade .up-btn{white-space:nowrap}
@media (max-width:640px){.ov-upgrade .up-btn{width:100%}}
.flash-gold{animation:flashGold 1.6s ease-out 2}
@keyframes flashGold{0%{box-shadow:0 0 0 0 rgba(231,183,90,.7)}100%{box-shadow:0 0 0 18px rgba(231,183,90,0)}}
.invite-remove{background:none;border:0;padding:0;margin-left:6px;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted,#A9B2CA);text-decoration:underline;cursor:pointer}
.field .invite-remove{display:block;margin:6px 0 0}

/* Withdrawal Chronicle */
.section-sub{margin:-6px 0 18px;color:var(--text-muted,#A9B2CA);font-size:14px}
.po-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.po-stats .ov-stat{flex-direction:row;align-items:center;grid-column:auto}
.po-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:start}
.po-grid .panel{margin:0}
.po-bars{display:flex;align-items:flex-end;gap:10px;height:220px;padding-top:24px;overflow-x:auto}
.po-bar{flex:1 0 46px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;min-width:46px}
.po-bar .b{width:100%;max-width:44px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#F3D594,#C9A45C);box-shadow:0 0 14px rgba(231,183,90,.25)}
.po-bar .v{font-size:12px;font-weight:700;color:#FFF6E2;white-space:nowrap}
.po-bar .m{font-size:11px;color:var(--text-muted,#A9B2CA);white-space:nowrap}
.po-share canvas{width:100%;max-width:360px;aspect-ratio:1;height:auto;display:block;border-radius:12px;margin:0 auto 12px;box-shadow:0 8px 28px rgba(0,0,0,.45)}
.po-share .check{margin-bottom:10px}
.table-wrap{overflow-x:auto}
.po-table{width:100%;border-collapse:collapse;font-size:14px}
.po-table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#A9B2CA);padding:8px 10px;border-bottom:1px solid var(--line,#24304F);white-space:nowrap}
.po-table td{padding:10px;border-bottom:1px solid rgba(36,48,79,.6);white-space:nowrap}
.po-table td.gold b{color:var(--gold,#E7B75A)}
.po-table a{color:var(--cyan,#3EC6E0)}
@media (max-width:900px){.po-grid{grid-template-columns:1fr}}
@media (max-width:640px){.po-stats{grid-template-columns:1fr}}
.po-src{margin-bottom:14px}
.po-stack{display:flex;height:16px;border-radius:999px;overflow:hidden;gap:2px;background:#070C1A}
.po-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.po-legend .it{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(8,14,32,.85);border:1px solid var(--line,#24304F)}
.po-legend .dot{width:10px;height:10px;border-radius:50%;grid-row:1}
.po-legend .nm{font-size:13px;color:#C3CBE0}
.po-legend b{grid-column:1/-1;font-size:17px;color:#FFF6E2;margin-top:4px}
.po-legend .pc{grid-column:1/-1;font-size:12px;color:var(--text-muted,#A9B2CA)}
@media (max-width:760px){.po-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* notification center */
.bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;border-radius:999px;border:1px solid var(--line,#24304F);background:transparent;color:var(--text,#E3E7F2);cursor:pointer}
.bell-btn:hover{border-color:var(--gold,#E7B75A)}
.bell-btn .bell-ic{display:inline-flex;line-height:0}
.bell-btn.has-new .bell-ic{animation:bellRing 1.6s ease-in-out 1}
.bell-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#FF5F78;color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center}
@keyframes bellRing{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-4deg)}}
@media (prefers-reduced-motion:reduce){.bell-btn.has-new .bell-ic{animation:none}}
.nt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nt-item{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:14px 16px;border-radius:14px;background:var(--panel,#0E1630);border:1px solid var(--line,#24304F)}
.nt-item[data-go-nt]{cursor:pointer}
.nt-item[data-go-nt]:hover,.nt-item[data-go-nt]:focus-visible{border-color:rgba(231,183,90,.6);outline:none}
.nt-item.new{border-color:rgba(231,183,90,.55);background:linear-gradient(90deg,rgba(231,183,90,.10),var(--panel,#0E1630) 40%)}
.nt-item.warn{border-color:rgba(255,95,120,.55)}
.nt-item.warn .nt-ic{color:#FF5F78;background:rgba(255,95,120,.12)}
.nt-ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:rgba(231,183,90,.12);color:var(--gold,#E7B75A)}
.nt-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.nt-main b{font-size:15px;color:#FFF6E2;font-weight:700}
.nt-body{font-size:13px;color:var(--text-muted,#A9B2CA);overflow-wrap:anywhere}
.nt-item.ann .nt-body{white-space:pre-line;color:#C3CBE0;font-size:14px}
.nt-time{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted,#A9B2CA);white-space:nowrap}
.nt-dot{width:8px;height:8px;border-radius:50%;background:var(--gold,#E7B75A);display:inline-block}
@media (max-width:560px){.nt-item{grid-template-columns:auto 1fr}.nt-time{grid-column:2}}

/* Tetra Oracle (scenario calculator) */
.or-warn{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin-bottom:14px;border-radius:12px;border:1px solid rgba(255,155,90,.55);background:rgba(255,155,90,.08);color:#FFD9BE;font-size:13px;line-height:1.45}
.or-warn svg{flex:0 0 auto;margin-top:1px;color:#FF9B5A}
.or-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:start}
.or-grid .panel{margin:0}
.or-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
.or-preset{padding:9px 10px;border-radius:10px;border:1px solid var(--line,#24304F);background:#070C1A;color:#C3CBE0;font:inherit;font-weight:700;cursor:pointer}
.or-preset.on{border-color:var(--gold,#E7B75A);color:var(--gold,#E7B75A);background:rgba(231,183,90,.10)}
.or-fields{display:flex;flex-direction:column;gap:12px}
.or-fields label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#C3CBE0}
.or-fields input,.or-fields select{padding:9px 10px;border-radius:10px;background:#070C1A;border:1px solid var(--line,#24304F);color:#E3E7F2;font:inherit}
.or-fields small{font-size:11px;color:var(--text-muted,#A9B2CA)}
.or-results{display:flex;flex-direction:column;gap:14px;min-width:0}
.or-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.or-cards .ov-stat{flex-direction:row;align-items:center;grid-column:auto}
.or-cards .vl{font-size:22px}
.vl.neg,.po-table .neg,.or-cmp .neg{color:#FF7A8E}
.or-chart-wrap{margin:0}
.or-chart{display:flex;align-items:flex-end;gap:4px;height:150px}
.or-chart .c{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.or-chart .b{width:100%;max-width:28px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#F3D594,#C9A45C)}
.or-chart .b.neg{background:linear-gradient(180deg,#FF8FA0,#C9485C)}
.or-chart .m{font-size:10px;color:var(--text-muted,#A9B2CA)}
.or-cmp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.or-cmp-i{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px;border-radius:12px;border:1px solid var(--line,#24304F);background:rgba(8,14,32,.85);color:#C3CBE0;font:inherit;cursor:pointer}
.or-cmp-i.on{border-color:var(--gold,#E7B75A)}
.or-cmp-i b{color:#FFF6E2}
.or-cmp-i span{font-size:18px;font-weight:800}
.or-cmp-i .gold{color:var(--gold,#E7B75A)}
.or-cmp-i small{font-size:11px;color:var(--text-muted,#A9B2CA)}
.or-cap{font-size:10px;padding:1px 5px;border-radius:6px;border:1px solid rgba(255,155,90,.6);color:#FF9B5A}
.or-notes ul{margin:0;padding-left:18px;font-size:13px;color:#C3CBE0;line-height:1.55}
.or-soon .panel-title{display:flex;align-items:center;gap:8px}
@media (max-width:980px){.or-grid{grid-template-columns:1fr}.or-cmp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.or-cards{grid-template-columns:1fr}}

/* medals */
.medal-svg{display:block;filter:drop-shadow(0 4px 10px rgba(0,0,0,.45))}
.fest-medal{display:flex;align-items:center;gap:12px;margin:12px 0 4px;padding:8px 12px;border-radius:12px;background:rgba(8,14,32,.85);border:1px solid var(--line,#24304F);width:fit-content;max-width:100%}
.fest-medal span{display:flex;flex-direction:column;gap:2px}
.fest-medal b{color:#FFF6E2}
.fest-medal small{font-size:12px;color:var(--text-muted,#A9B2CA)}
.medal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.medal-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:12px 8px;border-radius:14px;background:rgba(8,14,32,.85);border:1px solid var(--line,#24304F)}
.medal-item b{color:#FFF6E2;font-size:14px;margin-top:4px}
.medal-item small{font-size:11px;color:var(--text-muted,#A9B2CA)}
.medal-designer{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}
.md-preview{flex:0 0 auto;width:80px;min-height:96px}
.md-fields{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:260px}
@media (max-width:640px){.md-fields{grid-template-columns:1fr}}
.or-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.or-hint{font-size:11px;color:var(--text-muted,#A9B2CA);margin-top:-6px}
.or-topups{margin:0}
.or-tu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.or-tu-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;background:rgba(8,14,32,.85);border:1px solid var(--line,#24304F)}
.or-tu-grid .lb{font-size:12px;color:var(--text-muted,#A9B2CA)}
.or-tu-grid b{font-size:20px;color:#FFF6E2}
.or-tu-grid b.gold{color:var(--gold,#E7B75A)}
.or-tu-grid small{font-size:11px;color:var(--text-muted,#A9B2CA)}
.or-topups p.note{font-size:12px;line-height:1.5;color:var(--text-muted,#A9B2CA)}

/* sign-in page (member + admin): the Kingdom look */
.k-landing{background:radial-gradient(900px 520px at 50% 0%,rgba(231,183,90,.10),transparent 60%),radial-gradient(700px 500px at 50% 100%,rgba(61,111,214,.12),transparent 60%),var(--bg)}
.k-landing .landing-box{position:relative;overflow:hidden;width:min(460px,100%);padding:0 30px 26px;background:linear-gradient(180deg,#0E1834 0%,#0A1229 100%);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 0 1px rgba(231,183,90,.06) inset;backdrop-filter:none}
.k-land-hero{height:150px;margin:0 -30px;background:linear-gradient(180deg,rgba(10,18,41,0) 35%,#0E1834 100%),url(assets/art/hero.webp) center 30%/cover no-repeat;border-bottom:1px solid rgba(231,183,90,.18)}
.k-land-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin:-34px 0 18px;position:relative}
.k-land-brand img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
.k-land-brand>div{text-align:start}
.k-land-name{font-family:var(--serif);font-weight:700;font-size:28px;letter-spacing:4px;color:var(--gold-soft);line-height:1.05;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.k-land-name .admin-tag{font-family:'Manrope',sans-serif;font-size:11px;letter-spacing:1px;vertical-align:middle}
.k-land-sub{font-size:12px;color:var(--muted);margin-top:5px;letter-spacing:.5px}
.k-landing .landing-text{color:#C6CEE3;font-size:14px;line-height:1.7;margin:0 0 22px}
.k-land-invite{margin:-12px 0 18px!important;font-weight:700}
.k-land-cta{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;font-size:16px;border-radius:12px}
.k-land-ico{display:inline-flex;--icon-a:#1A1406;--icon-b:#3A2C0C}
.k-landing .landing-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:16px 0 12px}
.k-landing .landing-divider:before,.k-landing .landing-divider:after{content:"";flex:1;height:1px;background:var(--line)}
.k-land-alt{width:100%;background:transparent;border:1px solid var(--line);color:#D5DBEA;border-radius:12px;padding:12px 14px;font:inherit;font-weight:700;font-size:13px;cursor:pointer}
.k-land-alt:hover{border-color:var(--gold);color:var(--gold-soft)}
.k-land-manual{text-align:start;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(8,14,32,.7)}
.k-land-note{color:var(--text-muted);font-size:12px;margin:0 0 10px}
.k-land-facts{list-style:none;margin:22px 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:grid;gap:9px;text-align:start}
.k-land-facts li{display:flex;align-items:center;gap:10px;font-size:13px;color:#C6CEE3}
.k-land-facts li>span:first-child{width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:#0F1A3A;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.k-landing .landing-lang{margin-top:18px}
@media(max-width:720px){.k-landing .landing-box{padding:0 18px 22px}.k-land-hero{margin:0 -18px;height:120px}.k-land-name{font-size:23px;letter-spacing:3px}}

/* Merchant Hall */
.hub-wallets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.hub-wallets .ov-stat{grid-column:auto}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-bottom:18px}
.hub-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.hub-img{position:relative;aspect-ratio:16/10;background:linear-gradient(160deg,#13204A,#0A1229);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}
.hub-img img{width:100%;height:100%;object-fit:cover;display:block}
.hub-img .k-art{width:96px;height:96px;object-fit:contain}
.hub-kind{position:absolute;top:10px;left:10px;font-size:11px;font-weight:800;letter-spacing:.4px;padding:4px 10px;border-radius:999px;background:rgba(7,12,26,.85);border:1px solid rgba(231,183,90,.45);color:var(--gold-soft)}
.hub-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.hub-body h3{margin:0;font-size:17px;color:#fff}
.hub-desc{margin:0;color:var(--muted);font-size:13px;line-height:1.55;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.hub-meta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hub-price{font-size:22px;font-weight:800;color:var(--gold)}
.hub-stock{font-size:12px;color:var(--muted)}
.hub-stock.out{color:var(--danger);font-weight:700}
.hub-facts{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:12px;color:#B9C2D9}
.hub-facts li:before{content:"◆";color:var(--gold);font-size:9px;margin-inline-end:7px;vertical-align:2px}
.hub-actions{display:flex;gap:8px;margin-top:auto;padding-top:6px;flex-wrap:wrap}
.hub-actions .btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.hub-paybox,.hub-sharebox{padding:12px;border-radius:12px;background:rgba(8,14,32,.8);border:1px solid var(--line)}
.hub-ways{display:grid;gap:8px}
.hub-ways .btn{display:flex;justify-content:space-between;align-items:center}
.hub-ways .btn small{font-weight:600;opacity:.8}
.hub-reward{margin:0 0 8px;color:var(--gold-soft);font-size:13px;font-weight:700}
.hub-link{display:flex;gap:8px;align-items:center}
.hub-link .mono{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#C6CEE3}
.hub-status{margin:0;color:var(--cyan);font-size:13px}
.hub-status:empty,.hub-error:empty{display:none}
.hub-error{margin:0;color:var(--danger);font-size:13px}
.hub-order{padding:12px 0;border-top:1px solid var(--line)}
.hub-order:first-of-type{border-top:0;padding-top:0}
.hub-order-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.hub-order-sub{font-size:12px;color:var(--muted);margin-top:3px}
.hub-badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:#C6CEE3;white-space:nowrap}
.hub-badge.paid{color:var(--green);border-color:rgba(95,211,154,.45)}
.hub-badge.paying,.hub-badge.waiting{color:var(--cyan);border-color:rgba(111,178,255,.45)}
.hub-badge.refunded,.hub-badge.failed{color:var(--danger);border-color:rgba(255,122,133,.45)}
.hub-code{display:flex;gap:10px;align-items:center;margin-top:8px;padding:10px 12px;border-radius:10px;background:#0A1229;border:1px dashed rgba(231,183,90,.55)}
.hub-code .lbl{font-size:12px;color:var(--muted)}
.hub-code .mono{flex:1;min-width:0;word-break:break-all;color:var(--gold-soft);font-weight:700}
.hub-note{margin:8px 0 0;padding:10px 12px;border-radius:10px;background:#0A1229;border:1px solid var(--line);font-size:13px;white-space:pre-line}
.hub-dl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.hub-dl .btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.hub-dl .note{margin:0;font-size:12px}
.hub-dl .btn .ico{--icon-a:currentColor}
.hub-sub{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:8px 0 0;padding:8px 12px;border-radius:10px;border:1px solid var(--line);font-size:13px}
.hub-sub.on{color:var(--green);border-color:rgba(95,211,154,.35)}
.hub-sub.off{color:var(--muted)}
.hub-sub .btn{padding:6px 14px}
.hub-active{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;font-weight:700;color:var(--green)}
@media(max-width:720px){.hub-wallets{grid-template-columns:1fr}.hub-grid{grid-template-columns:1fr}}
/* public Merchant Hall page */
.hall-box{width:min(520px,100%)}
.hall-product,.hall-order{text-align:start;position:relative}
.hall-img{width:100%;border-radius:12px;border:1px solid var(--line);display:block;margin-bottom:12px;max-height:280px;object-fit:cover}
.hall-kind{position:static;display:inline-block;margin-bottom:8px}
.hall-name{font-size:22px;margin:4px 0 8px;color:#fff}
.hall-desc{margin:0 0 10px;color:#C6CEE3;font-size:14px;line-height:1.6;white-space:pre-line}
.hall-price{font-size:28px;font-weight:800;color:var(--gold);margin:6px 0 10px}
.hall-facts{margin-bottom:16px}
.hall-field{text-align:start}
.hall-field small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.hall-need{font-size:12px;color:var(--muted);margin:10px 0 0;text-align:start}
.hall-msg{color:#C6CEE3;font-size:14px}
.hall-keep{font-size:12px;color:var(--muted);margin:16px 0 6px}
.hall-join{margin-top:16px}
.hall-order .hub-badge{display:inline-block;margin-bottom:6px}

/* small explanatory text (was unstyled in some places) */
p.note{font-size:13px;line-height:1.5;color:#A9B3CC}
.muted-link{color:#E7B75A;text-decoration:none;font-weight:600}
.muted-link:hover{text-decoration:underline}

/* Alliance Tree: keep one empty leg closed */
.bl-legs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bl-leg{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(10,18,41,.6)}
.bl-leg.closed{border-color:rgba(231,183,90,.6)}
.bl-name{font-weight:700}
.bl-state{font-size:13px;color:#A9B3CC}
.bl-leg.closed .bl-state{color:#E7B75A}
.bl-leg .btn{align-self:flex-start}
.bnode.empty.closed{border-color:rgba(231,183,90,.6);color:#E7B75A}
@media(max-width:560px){.bl-legs{grid-template-columns:1fr}}

/* the name: the crowned emblem stands in for the A — TETR[A]RENA */
.brand-a{display:inline-block;height:1.6em;width:auto;vertical-align:-0.24em;margin:0 .04em 0 -.02em;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55))}
.k-land-brand{margin-top:-22px}
.k-land-brand>div{text-align:center}
.k-land-name{line-height:1.25}
.side-brand{padding-top:10px}
.side-brand .name{line-height:1.2}

/* Tetra Herald panel (Warrior Profile) */
.hd-ico{display:inline-flex;width:22px;height:22px;border-radius:50%;background:#2AABEE;color:#fff;font-size:12px;align-items:center;justify-content:center;margin-right:4px}
.hd-panel .row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hd-check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;cursor:pointer}
.hd-check input{width:auto}
/* Tetra Mentor */
.mt-panel{display:flex;flex-direction:column;gap:10px}
.mt-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.mt-head label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.mt-head .btn{margin-left:auto}
.mt-log{max-height:56vh;min-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#0A1229;border:1px solid var(--line)}
.mt-empty{margin:auto;text-align:center;max-width:420px}
.mt-msg{display:flex;flex-direction:column;max-width:82%}
.mt-msg.me{align-self:flex-end;align-items:flex-end}
.mt-msg.mentor,.mt-msg.coach{align-self:flex-start}
.mt-bubble{padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.6;white-space:pre-line;color:#E8ECF8;background:#121C3A;border:1px solid var(--line);unicode-bidi:plaintext}
.mt-msg.me .mt-bubble{background:rgba(231,183,90,.14);border-color:rgba(231,183,90,.4)}
.mt-msg.coach .mt-bubble{border-color:rgba(95,211,154,.45);background:rgba(95,211,154,.07)}
.mt-tag{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--green);margin-bottom:4px}
.mt-msg time{font-size:10.5px;color:var(--muted);margin-top:3px}
.mt-typing .mt-bubble{display:flex;gap:4px}
.mt-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:mtDot 1.2s infinite}
.mt-typing span:nth-child(2){animation-delay:.2s}.mt-typing span:nth-child(3){animation-delay:.4s}
@keyframes mtDot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.mt-quick{display:flex;flex-wrap:wrap;gap:8px}
.mt-chip{background:transparent;border:1px solid var(--line);color:#C6CEE3;border-radius:999px;padding:6px 12px;font-size:12.5px;cursor:pointer}
.mt-chip:hover{border-color:rgba(231,183,90,.6);color:#fff}
.mt-send{display:flex;gap:8px;align-items:stretch}
.mt-send textarea{flex:1;resize:vertical;min-height:46px}
.mt-closed{padding:14px;border-radius:12px;border:1px dashed rgba(231,183,90,.5);text-align:center}
.mt-closed p{margin:0 0 10px;color:#C6CEE3}
.mt-price b{color:var(--gold)}
@media(max-width:720px){.mt-msg{max-width:94%}.mt-head .btn{margin-left:0}}
.mt-head select{background:#0A1229;color:#E8ECF8;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;min-width:150px}
.mt-instant{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid rgba(231,183,90,.35);background:rgba(231,183,90,.05)}
.mt-instant-h{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.mt-instant-h b{color:var(--gold)}
.mt-instant-h .note{margin:0;font-size:12px}
.mt-info{border-color:rgba(231,183,90,.4)}
/* record the membership on the blockchain (members registered free of charge) */
.fj-card{border:1px solid rgba(231,183,90,.55);background:rgba(231,183,90,.07);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.fj-title{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--gold);font-size:15px}
.fj-card p{margin:8px 0 0;font-size:13.5px;color:#C6CEE3;line-height:1.6}
.fj-actions{margin-top:10px}
.fj-card .fj-gas{font-size:12px}
.fj-status{color:var(--cyan)!important}
.fj-error{color:var(--danger)!important}
.fj-status:empty,.fj-error:empty{display:none}
