:root{
  --bg:#EAF1FA;
  --surface:#FFFFFF;
  --surface-2:#F2F6FB;
  --ink:#1C2433;
  --ink-2:#56607A;
  --ink-3:#8C95A8;
  --line:#E1E8F1;
  --accent:#3E7BFA;
  --accent-ink:#FFFFFF;
  --accent-soft:#E4EDFF;
  --buy:#22B55E;
  --buy-edge:#179048;
  --buy-ink:#FFFFFF;
  --gold:#FFB020;
  --gold-edge:#D98C00;
  --gold-soft:#FFF2D3;
  --gold-ink:#6E4300;
  --danger:#E5484D;
  --good:#1E9E55;
  --shadow:0 1px 0 rgba(28,36,51,.05),0 10px 24px -16px rgba(28,36,51,.35);
  --font:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#10151F; --surface:#1A2130; --surface-2:#222B3B; --ink:#EEF2FA; --ink-2:#AAB4C7; --ink-3:#6F7A90; --line:#28324A;
    --accent:#6C9BFF; --accent-ink:#0B1530; --accent-soft:#1F2C4C;
    --buy:#2FC66A; --buy-edge:#1E9A50; --buy-ink:#06200F;
    --gold:#FFC24D; --gold-edge:#D69A1F; --gold-soft:#3A2E14; --gold-ink:#FFD98A;
    --danger:#FF6B70; --good:#3FD27C;
    --shadow:0 1px 0 rgba(0,0,0,.25),0 12px 26px -16px rgba(0,0,0,.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#10151F; --surface:#1A2130; --surface-2:#222B3B; --ink:#EEF2FA; --ink-2:#AAB4C7; --ink-3:#6F7A90; --line:#28324A;
  --accent:#6C9BFF; --accent-ink:#0B1530; --accent-soft:#1F2C4C;
  --buy:#2FC66A; --buy-edge:#1E9A50; --buy-ink:#06200F;
  --gold:#FFC24D; --gold-edge:#D69A1F; --gold-soft:#3A2E14; --gold-ink:#FFD98A;
  --danger:#FF6B70; --good:#3FD27C;
  --shadow:0 1px 0 rgba(0,0,0,.25),0 12px 26px -16px rgba(0,0,0,.8);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:600 15px/1.45 var(--font);overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
button,input{font:inherit;color:inherit}
h2{margin:0;font-size:18px;font-weight:800;line-height:1.25;text-wrap:balance}
p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.sr-only:focus-visible{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:auto;height:auto;clip:auto;padding:6px 12px;background:var(--surface);border-radius:8px;z-index:5}
svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.app{height:var(--tg-viewport-stable-height,100dvh);max-width:560px;margin-inline:auto;display:grid;grid-template-rows:minmax(0,1fr) auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
input,textarea{user-select:text;-webkit-user-select:text}
.main{position:relative;display:flex;flex-direction:column;min-height:0}

/* верх */
.hud{display:flex;align-items:center;gap:10px;padding:10px 14px 4px;min-width:0}
.avatar-btn{flex:none;width:42px;height:42px;padding:0;border:2px solid var(--surface);border-radius:50%;background:var(--surface-2);box-shadow:var(--shadow);overflow:hidden;cursor:pointer}
.avatar-btn img,.avatar-lg img{width:100%;height:100%;object-fit:cover;display:block}
.money{flex:1;min-width:0}
.amount{font-weight:900;font-size:clamp(24px,7.5vw,32px);line-height:1.05;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.amount .unit{font-size:.62em;font-weight:800;color:var(--ink-2)}
.per-sec{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.per-sec b{color:var(--buy-edge);font-weight:800}
:root[data-theme="dark"] .per-sec b{color:var(--buy)}
.compare::before{content:" · "}
.compare:empty::before{content:""}
.icon-btn{flex:none;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow);cursor:pointer}
.icon-btn svg{width:22px;height:22px}
.i-moon{display:none}
:root[data-theme="dark"] .i-sun{display:none}
:root[data-theme="dark"] .i-moon{display:block}

/* сцена */
.stage{position:relative;flex:1;min-height:0;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.stage-top{position:absolute;left:10px;right:10px;top:6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;pointer-events:none}
.building{font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow)}
.buffs{display:flex;flex-wrap:wrap;gap:6px}
.buff{position:relative;overflow:hidden;font-size:12px;font-weight:800;padding:3px 10px 5px;border-radius:999px;background:var(--gold-soft);color:var(--gold-ink);box-shadow:var(--shadow)}
.buff i{position:absolute;left:0;bottom:0;height:3px;background:var(--gold)}
.coach{position:absolute;left:12px;right:12px;top:34px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--ink);color:var(--surface);font-size:14px;line-height:1.35;box-shadow:0 10px 30px -10px rgba(0,0,0,.5);animation:pop .25s ease-out}
.coach span{flex:1}
.coach button{flex:none;border:0;border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--ink);font-weight:800;font-size:13px;cursor:pointer}
.coach-arrow{position:absolute;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:18px solid var(--gold);transform:translate(-50%,-100%);animation:bounce 1s ease-in-out infinite;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
@keyframes bounce{0%,100%{margin-top:-6px}50%{margin-top:4px}}
@keyframes pop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.dev-pop{position:absolute;z-index:3;display:flex;gap:8px;align-items:center;max-width:240px;padding:8px 12px 8px 8px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);font-size:13px;line-height:1.3;pointer-events:none;animation:pop .15s ease-out}
.dev-pop img{width:40px;height:40px;flex:none}
.dev-pop b{display:block;font-weight:800}
.dev-pop span{color:var(--ink-2)}

/* меню на весь экран */
.panel{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--bg);animation:panelin .18s ease-out}
@keyframes panelin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.panel-head{flex:none;display:flex;align-items:center;gap:8px;min-height:58px;padding:8px 10px 8px 14px;background:var(--surface);box-shadow:0 1px 0 var(--line)}
.panel-head h2{flex:1;min-width:0;font-size:20px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panel-money{flex:none;display:grid;justify-items:end;line-height:1.15;max-width:46%;min-width:0}
.panel-money b{font-size:15px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.panel-money span{font-size:11.5px;font-weight:800;color:var(--good);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.panel-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 12px 24px}
.page{display:grid;gap:10px;align-content:start}
.page-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}
.icon-btn.flat{box-shadow:none;background:var(--surface-2)}
.hint.center{text-align:center}
h3{margin:0;font-size:16px;font-weight:900;line-height:1.25}
.menu{display:grid;gap:8px}
.menu-row{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:12px 14px 12px 10px;border:0;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);text-align:left;cursor:pointer;touch-action:manipulation}
.menu-row:active{transform:scale(.99)}
.menu-row .mi{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.menu-row .mi svg{width:24px;height:24px}
.menu-row .mt{display:grid;min-width:0}
.menu-row .mt b{font-size:16px;font-weight:900}
.menu-row .mt span{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-row .chev{font-size:26px;line-height:1;color:var(--ink-3)}
.menu-row .tbadge{position:static;margin-right:4px}
.news{display:grid;gap:8px}
.news h3 small{font-size:12px;font-weight:700;color:var(--ink-3);margin-left:6px}
.news ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px;color:var(--ink-2)}
.item.placed{outline:2px solid var(--buy)}
.btn-place{min-width:84px}
.seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow)}
.seg button{border:0;background:none;padding:5px 12px;border-radius:999px;font-weight:800;font-size:13px;color:var(--ink-2);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.chips-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 6px}
.chips-row::-webkit-scrollbar{display:none}
.chips-row button{flex:none;border:0;padding:6px 12px;border-radius:999px;background:var(--surface);color:var(--ink-2);font-weight:800;font-size:13px;box-shadow:var(--shadow);cursor:pointer}
.chips-row button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.list{display:grid;gap:8px}
.list:empty{display:none}

.card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:14px;display:grid;gap:10px;min-width:0}
.card p{color:var(--ink-2);font-size:14px;font-weight:600}
.hint{font-size:13px;color:var(--ink-3);font-weight:600}
.hint:empty{display:none}
.empty{padding:18px 8px;text-align:center;color:var(--ink-3);font-size:14px}

.item{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 10px 10px 8px;background:var(--surface);border-radius:16px;box-shadow:var(--shadow);min-width:0}
.item .thumb{width:52px;height:52px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;position:relative}
.item .thumb img{width:48px;height:48px}
.item .thumb svg{width:28px;height:28px;color:var(--accent)}
.item .info{min-width:0;display:grid;gap:1px}
.item .name{font-weight:800;font-size:15px;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.item .desc{font-size:12.5px;color:var(--ink-2);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .meta{font-size:12px;color:var(--ink-3);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .kind{font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .side{display:grid;justify-items:end;gap:6px}
.count{min-width:34px;text-align:center;font-weight:900;font-size:15px;line-height:1;padding:5px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.count.zero{background:var(--surface-2);color:var(--ink-3)}
.count.pop{animation:countpop .35s ease-out}
@keyframes countpop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.item.locked .thumb img{filter:grayscale(1) brightness(.35);opacity:.5}
.item.locked .name{color:var(--ink-3)}
.level{position:absolute;right:2px;bottom:2px;font-size:10px;font-weight:900;padding:1px 5px;border-radius:999px;background:var(--gold);color:#3D2600}

.buy{min-width:84px;max-width:120px;border:0;border-radius:12px;padding:8px 10px 9px;font-weight:900;font-size:13.5px;line-height:1.1;background:var(--buy);color:var(--buy-ink);box-shadow:0 3px 0 var(--buy-edge);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;touch-action:manipulation}
.buy small{display:block;font-size:10.5px;font-weight:800;opacity:.85}
.buy:active{transform:translateY(2px);box-shadow:0 1px 0 var(--buy-edge)}
.buy.poor{background:var(--surface-2);color:var(--ink-3);box-shadow:0 3px 0 var(--line);cursor:default}
.buy.poor:active{transform:none}
.buy.deny{animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.pulse{animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 3px 0 var(--buy-edge),0 0 0 0 rgba(34,181,94,.55)}50%{box-shadow:0 3px 0 var(--buy-edge),0 0 0 10px rgba(34,181,94,0)}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:12px;padding:10px 14px;background:var(--surface-2);color:var(--ink);font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 3px 0 var(--line);touch-action:manipulation}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line)}
.btn.small{padding:7px 12px;font-size:13px}
.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 70%,#000)}
.btn.gold{background:var(--gold);color:#3D2600;box-shadow:0 3px 0 var(--gold-edge)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.btn-row{display:flex;flex-wrap:wrap;gap:8px}
.stat-pills{display:flex;flex-wrap:wrap;gap:6px}
.stat-pills span{font-size:13px;padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.stat-pills b{color:var(--ink);font-weight:900}
.confirm{display:grid;gap:10px;padding:12px;border-radius:12px;background:var(--gold-soft)}
.confirm p{color:var(--gold-ink)}

/* рейтинг */
.me-card{grid-template-columns:56px minmax(0,1fr) auto;align-items:center}
.avatar-lg{width:56px;height:56px;padding:0;border:3px solid var(--accent-soft);border-radius:50%;overflow:hidden;background:var(--surface-2);cursor:pointer}
.me-info{min-width:0;display:grid}
.me-info b{font-size:16px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-info span{font-size:13px;color:var(--ink-2)}
.board{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.board li{display:grid;grid-template-columns:30px 36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 12px 8px 8px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.board .rk{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-weight:900;font-size:13px;color:var(--ink-2);background:var(--surface-2)}
.board li:nth-child(1) .rk{background:#FFD24A;color:#4A3300}
.board li:nth-child(2) .rk{background:#D7DEE8;color:#394354}
.board li:nth-child(3) .rk{background:#F0B58A;color:#4F2A10}
.board img{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--surface-2)}
.board .nm{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board .vl{font-weight:800;font-size:13px;color:var(--ink-2);white-space:nowrap}
.board li.me{outline:2px solid var(--accent)}
.board li.gap{display:block;text-align:center;background:none;box-shadow:none;padding:0;color:var(--ink-3)}

/* друзья */
.people{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.people li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 12px 8px 8px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.people img{width:36px;height:36px;border-radius:50%;background:var(--surface-2)}
.people .nm{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.people .st{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);white-space:nowrap}
.people .st.on{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good)}

/* еще */
.ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ladder div{display:grid;justify-items:center;gap:2px;padding:8px 4px;border-radius:12px;background:var(--surface-2);text-align:center;font-size:12px;line-height:1.2;color:var(--ink-3)}
.ladder b{font-size:13px;font-weight:800;color:var(--ink-2)}
.ladder div.on{background:var(--accent-soft)}
.ladder div.on b{color:var(--accent)}
.ladder div.now{outline:2px solid var(--accent)}
.perks summary{cursor:pointer;font-weight:800;color:var(--accent)}
.perks ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.perks li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;font-size:13px;color:var(--ink-2)}
.perks li span{font-weight:900;padding:2px 8px;border-radius:999px;background:var(--surface-2);white-space:nowrap}
.perks li.on span{background:var(--gold);color:#3D2600}
.perks li b{display:block;color:var(--ink)}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.ach{padding:8px 10px;border-radius:12px;background:var(--surface-2);display:grid;gap:1px;min-width:0}
.ach b{font-size:13px;font-weight:800;line-height:1.25}
.ach span{font-size:11.5px;color:var(--ink-3);line-height:1.3}
.ach.done{background:var(--gold-soft)}
.ach.done b{color:var(--gold-ink)}
#graph{width:100%;height:120px;display:block}
.stats{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:14px}
.stats dt{color:var(--ink-2)}
.stats dd{margin:0;font-weight:800;text-align:right;white-space:nowrap}
.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;min-height:36px}
.switch{appearance:none;-webkit-appearance:none;flex:none;width:48px;height:28px;margin:0;border-radius:999px;background:var(--line);position:relative;cursor:pointer;transition:background .15s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#FFFFFF;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.switch:checked{background:var(--buy)}
.switch:checked::after{transform:translateX(20px)}
.howto{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px;color:var(--ink-2)}
.howto b{color:var(--ink)}

/* нижняя панель */
.tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--surface);box-shadow:0 -1px 0 var(--line);padding-bottom:max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px))}
.tab{position:relative;display:grid;justify-items:center;gap:2px;padding:8px 2px 7px;border:0;background:none;color:var(--ink-3);font-weight:800;font-size:11px;cursor:pointer;min-width:0;touch-action:manipulation}
.tab svg{width:24px;height:24px}
.tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab[aria-pressed="true"]{color:var(--accent)}
.tbadge{position:absolute;top:4px;left:calc(50% + 8px);min-width:18px;font-size:10.5px;font-weight:900;line-height:1;padding:3px 5px;border-radius:999px;background:var(--buy);color:var(--buy-ink)}
.tbadge.gold{background:var(--gold);color:#3D2600}
.tab.pulse-tab{animation:tabpulse 1.1s ease-in-out infinite}
@keyframes tabpulse{0%,100%{color:var(--ink-3)}50%{color:var(--buy)}}

/* окно аватарки */
.sheet-back{position:fixed;inset:0;z-index:60;background:rgba(10,14,24,.45)}
.sheet{position:fixed;left:50%;bottom:0;z-index:61;transform:translateX(-50%);width:min(560px,100%);max-height:85dvh;overflow-y:auto;display:grid;gap:10px;padding:14px 14px calc(18px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;background:var(--surface);animation:slideup .2s ease-out}
@keyframes slideup{from{transform:translate(-50%,30px);opacity:0}to{transform:translateX(-50%);opacity:1}}
.sheet-head{display:flex;align-items:center;justify-content:space-between}
.sheet .icon-btn{box-shadow:none;background:var(--surface-2)}
.colors{display:flex;flex-wrap:wrap;gap:8px}
.colors button{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;padding:0}
.colors button[aria-pressed="true"]{border-color:var(--ink)}
.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}
.avatar-grid button{aspect-ratio:1;max-width:100%;padding:0;border:3px solid transparent;border-radius:50%;background:none;cursor:pointer;overflow:hidden}
.avatar-grid button[aria-pressed="true"]{border-color:var(--accent)}
.avatar-grid img{width:100%;height:100%;display:block}

.toasts{position:fixed;left:50%;transform:translateX(-50%);top:calc(8px + env(safe-area-inset-top,0px));z-index:70;display:grid;gap:6px;width:min(400px,calc(100vw - 16px));pointer-events:none}
.toast{position:relative;display:grid;gap:1px;padding:10px 40px 10px 14px;border:0;border-radius:14px;background:var(--ink);color:var(--surface);box-shadow:0 14px 30px -12px rgba(0,0,0,.55);font:inherit;font-size:14px;line-height:1.35;text-align:left;pointer-events:auto;cursor:pointer;touch-action:manipulation;animation:toastin .2s ease-out}
.toast b{font-weight:900}
.toast .x{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.18);font-size:16px;font-weight:900;line-height:1}
.toast.gold{background:var(--gold);color:#3D2600}
.toast.gold .x{background:rgba(61,38,0,.14)}
.toast.out{animation:toastout .16s ease-in forwards}
@keyframes toastin{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes toastout{to{opacity:0;transform:translateY(-10px) scale(.97)}}

.boot{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;background:var(--bg);text-align:center}
.boot-logo{width:64px;height:84px;border-radius:12px;background:linear-gradient(180deg,#5B93FF,#3E7BFA);box-shadow:0 6px 0 #2A5BCB;position:relative;animation:bounce 1s ease-in-out infinite}
.boot-logo::before,.boot-logo::after{content:"";position:absolute;top:20px;width:9px;height:12px;border-radius:5px;background:#7CF3FF}
.boot-logo::before{left:17px}.boot-logo::after{right:17px}
.boot-title{font-size:26px;font-weight:900}
.boot p{color:var(--ink-2);max-width:32ch}

@media (prefers-reduced-motion: reduce){
  .coach,.dev-pop,.toast,.toast.out,.sheet,.count.pop,.pulse,.coach-arrow,.boot-logo,.panel,.tab.pulse-tab{animation:none}
}
