/* Opalium Passport v7 — append this to passport.css */
/* WordPress must not frame the game screen. */
body.page-id-630 { background:#03050b !important; }
body.page-id-630 #masthead,
body.page-id-630 .site-header,
body.page-id-630 #colophon,
body.page-id-630 .site-footer,
body.page-id-630 .wp-block-navigation,
body.page-id-630 .entry-header { display:none !important; }
body.page-id-630 #page,
body.page-id-630 #content,
body.page-id-630 .site-main,
body.page-id-630 .entry-content { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
body.page-id-630 .entry-content > #opalium-passport { margin:0 !important; }
/* Twenty Twenty-Three constrains raw HTML blocks to its 650px content size.
   Passport is an application canvas, so it must escape that constrained flow. */
body.page-id-630 .entry-content > #opalium-passport {
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
}
body.page-id-630 .wp-block-post-title,
body.page-id-630 header.wp-block-template-part,
body.page-id-630 footer.wp-block-template-part { display:none !important; }
body.page-id-630 main#wp--skip-link--target,
body.page-id-630 .wp-site-blocks > main { margin-top:0 !important; margin-block-start:0 !important; }
body.page-id-630 { overflow-x:hidden; }

:root { --ink:#03050b; --panel:#091020; --panel-2:#0d1629; --line:rgba(171,108,255,.27); --violet:#ba7cff; --fire:#ff6848; --gold:#ffd66b; --muted:#8990a6; --dragon-art:url("https://opalium-multiverse.com/wp-content/uploads/2026/07/file_00000000bfd081f4b004133d21a11fd2.png"); }
.opalium-world { max-width:none; min-height:100dvh; overflow:visible; background:var(--ink); font-family:Silkscreen,system-ui,sans-serif; }
.game-shell { width:min(1600px,100%); min-height:100dvh; margin:auto; display:grid; grid-template-columns:220px minmax(0,1fr) 290px; background:radial-gradient(ellipse at 48% 0%,#1a1035 0%,#060914 44%,#03050b 100%); }
.game-rail { position:sticky; top:0; align-self:start; min-height:100dvh; padding:28px 18px; border-right:1px solid var(--line); background:rgba(3,5,11,.78); backdrop-filter:blur(18px); }
.game-brand { display:flex; align-items:center; gap:10px; margin:0 0 40px; color:#fff; font:12px 'Press Start 2P',monospace; letter-spacing:1px; }
.game-brand-mark { display:grid; place-items:center; width:32px; height:32px; color:var(--ink); background:linear-gradient(135deg,var(--fire),var(--violet)); clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%); }
.rail-nav { display:grid; gap:8px; }
.rail-nav button { display:flex; align-items:center; gap:11px; width:100%; padding:13px 12px; border:1px solid transparent; border-radius:10px; color:var(--muted); background:transparent; font:10px Silkscreen,monospace; text-align:left; cursor:pointer; }
.rail-nav button:hover,.rail-nav button.is-active { color:#fff; border-color:var(--line); background:linear-gradient(90deg,rgba(186,124,255,.18),transparent); }
.rail-nav .nav-icon { width:18px; text-align:center; font-size:15px; }
.rail-world { position:absolute; bottom:30px; left:18px; right:18px; padding:13px; border:1px solid rgba(74,222,128,.18); border-radius:10px; color:#94a4b8; font-size:9px; line-height:1.55; }
.rail-world b { display:block; color:#fff; font-size:10px; margin-bottom:5px; }
.game-center { min-width:0; padding:24px; }
.game-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.game-breadcrumb { color:var(--muted); font-size:10px; }.game-breadcrumb b { color:#fff; }
.game-top-actions { display:flex; align-items:center; gap:10px; }
.top-icon { position:relative; width:35px; height:35px; border:1px solid var(--line); border-radius:9px; display:grid; place-items:center; background:rgba(9,16,32,.75); color:#fff; }
.top-icon i { position:absolute; top:-3px; right:-3px; width:7px; height:7px; border-radius:50%; background:var(--fire); box-shadow:0 0 12px var(--fire); }
.top-avatar { width:35px; height:35px; border:1px solid var(--violet); border-radius:9px; object-fit:cover; cursor:pointer; }

.event-stage { position:relative; min-height:520px; overflow:hidden; isolation:isolate; border:1px solid var(--line); border-radius:18px; background:#080a18; box-shadow:0 25px 80px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.05); }
.event-stage::before { content:''; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(3,5,11,.98) 0%,rgba(3,5,11,.55) 45%,rgba(3,5,11,.12) 75%),linear-gradient(0deg,rgba(3,5,11,.86),transparent 60%),var(--dragon-art,radial-gradient(ellipse at 78% 38%,#a83749 0%,#42173f 18%,#15132a 45%,#080a18 72%)); background-size:cover; background-position:center; }
.event-stage::after { content:''; position:absolute; inset:-30%; z-index:-1; background:radial-gradient(circle at 68% 38%,rgba(255,101,70,.3),transparent 22%),radial-gradient(circle at 80% 18%,rgba(185,112,255,.32),transparent 18%); filter:blur(18px); animation:stageBreath 5s ease-in-out infinite; }
@keyframes stageBreath { 50% { transform:scale(1.1); opacity:.68; } }
.stage-grid { position:absolute; inset:auto 0 0; height:36%; opacity:.3; background:linear-gradient(rgba(186,124,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(186,124,255,.25) 1px,transparent 1px); background-size:32px 32px; mask-image:linear-gradient(transparent,#000); transform:perspective(240px) rotateX(55deg) scale(1.5); transform-origin:bottom; }
.stage-copy { position:relative; z-index:1; width:min(610px,100%); padding:56px 48px 44px; }
.live-label { display:inline-flex; align-items:center; gap:9px; color:#ff7d61; font:10px 'Press Start 2P',monospace; letter-spacing:1px; }.live-label i { width:8px; height:8px; border-radius:50%; background:var(--fire); box-shadow:0 0 16px var(--fire); animation:livePulse 1.2s infinite; }
.stage-title { margin:25px 0 24px; color:#fff; font:clamp(30px,4.1vw,58px)/1.15 'Press Start 2P',monospace; letter-spacing:-2px; text-shadow:0 0 35px rgba(220,175,255,.32); }
.stage-description { max-width:430px; margin-bottom:28px; color:#bec4d4; font-size:12px; line-height:1.75; }
.stage-stats { display:flex; gap:28px; margin:0 0 24px; }.stage-stat { min-width:72px; }.stage-stat b { display:block; color:#fff; font:18px 'Press Start 2P',monospace; }.stage-stat span { display:block; margin-top:8px; color:var(--muted); font-size:8px; text-transform:uppercase; }.stage-stat.is-urgent b { color:var(--fire); }
.stage-progress { width:min(390px,100%); margin-bottom:22px; }.stage-progress-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:9px; color:#aeb5c6; font-size:9px; }.stage-progress-top b { color:#fff; font:13px 'Press Start 2P',monospace; }.stage-track { height:5px; overflow:hidden; background:rgba(255,255,255,.12); border-radius:20px; }.stage-track i { display:block; width:35%; height:100%; background:linear-gradient(90deg,var(--fire),var(--violet)); box-shadow:0 0 14px var(--fire); transition:width 1s linear; }
.stage-cta { padding:17px 25px; border:0; border-radius:10px; color:#fff; background:linear-gradient(110deg,var(--fire),#e96e86 48%,var(--violet)); box-shadow:0 12px 32px rgba(255,102,72,.23); font:11px 'Press Start 2P',monospace; cursor:pointer; }.stage-cta:hover { transform:translateY(-2px); filter:brightness(1.12); }

.world-feed { display:flex; align-items:center; gap:11px; overflow:hidden; margin:16px 0 28px; padding:12px 14px; border:1px solid rgba(186,124,255,.16); background:rgba(9,16,32,.74); }.world-feed-label { flex:none; color:var(--fire); font:8px 'Press Start 2P',monospace; }.world-feed-content { overflow:hidden; white-space:nowrap; color:#c0c6d3; font-size:10px; }
.content-heading { display:flex; align-items:baseline; justify-content:space-between; margin:0 0 14px; color:#fff; font:13px 'Press Start 2P',monospace; }.content-heading span { color:var(--muted); font:9px Silkscreen,monospace; }
.action-posters { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:14px; margin-bottom:30px; }.event-poster { position:relative; min-height:192px; overflow:hidden; padding:18px; border:1px solid rgba(186,124,255,.24); border-radius:14px; background:linear-gradient(135deg,#11142b,#060812); cursor:pointer; }.event-poster::before { content:''; position:absolute; inset:0; opacity:.8; background:radial-gradient(circle at 70% 28%,var(--poster-glow,rgba(186,124,255,.48)),transparent 34%); }.event-poster > * { position:relative; z-index:1; }.event-poster.is-dragon { --poster-glow:rgba(255,104,72,.56); }.poster-tag { color:#ffc0ae; font-size:8px; }.poster-name { margin-top:44px; color:#fff; font:15px/1.35 'Press Start 2P',monospace; }.poster-meta { position:absolute; bottom:17px; color:#bac0cf; font-size:9px; }.poster-arrow { position:absolute; right:17px; bottom:14px; color:#fff; font-size:18px; }
.game-section { margin-bottom:32px; }.return-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.return-card { min-height:110px; padding:16px; border:1px solid rgba(186,124,255,.16); border-radius:12px; background:rgba(9,16,32,.82); }.return-time { color:var(--fire); font-size:9px; }.return-name { margin:16px 0 6px; color:#fff; font:10px 'Press Start 2P',monospace; }.return-reward { color:var(--muted); font-size:9px; }
.artifact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.artifact-showcase { min-height:235px; padding:13px; border:2px solid var(--rarity,#c084fc); border-radius:14px; background:linear-gradient(160deg,rgba(32,23,55,.95),rgba(7,10,21,.98)); box-shadow:inset 0 0 35px color-mix(in srgb,var(--rarity,#c084fc) 15%,transparent); }.artifact-showcase img { display:block; width:100%; height:144px; object-fit:contain; filter:drop-shadow(0 10px 18px color-mix(in srgb,var(--rarity,#c084fc) 30%,transparent)); }.artifact-showcase small { display:block; margin:6px 0; color:var(--rarity,#c084fc); font-size:8px; }.artifact-showcase b { color:#fff; font:9px/1.55 'Press Start 2P',monospace; }

.game-side { position:sticky; top:0; align-self:start; min-height:100dvh; padding:24px 18px; border-left:1px solid var(--line); background:rgba(3,5,11,.78); }.side-panel { margin-bottom:16px; padding:15px; border:1px solid rgba(186,124,255,.2); border-radius:12px; background:rgba(9,16,32,.75); }.side-panel h3 { margin-bottom:14px; color:#fff; font:9px 'Press Start 2P',monospace; }.side-event { display:flex; gap:10px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.06); }.side-event:last-child { border:0; }.side-event i { width:25px; height:25px; display:grid; place-items:center; border-radius:7px; background:rgba(186,124,255,.15); font-style:normal; }.side-event b { display:block; color:#fff; font-size:9px; }.side-event span { display:block; margin-top:5px; color:var(--muted); font-size:8px; }.side-profile { display:flex; align-items:center; gap:10px; }.side-profile img { width:42px; height:42px; border:1px solid var(--violet); border-radius:10px; object-fit:cover; }.side-profile b { display:block; color:#fff; font-size:10px; }.side-profile span { display:block; margin-top:5px; color:var(--muted); font-size:8px; }
.mobile-nav { display:none; }
@media (max-width:1180px) { .game-shell { grid-template-columns:86px minmax(0,1fr) 270px; }.game-brand span,.rail-nav button span:not(.nav-icon),.rail-world { display:none; }.game-brand { justify-content:center; }.rail-nav button { justify-content:center; }.stage-copy { padding-left:34px; }.artifact-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px) { .game-shell { display:block; }.game-rail,.game-side { display:none; }.game-center { padding:16px 16px 90px; }.event-stage { min-height:500px; }.artifact-grid { grid-template-columns:repeat(2,1fr); }.mobile-nav { position:fixed; inset:auto 0 0; z-index:500; display:flex; justify-content:space-around; padding:10px 4px max(11px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(3,5,11,.94); backdrop-filter:blur(18px); }.mobile-nav button { display:grid; gap:5px; place-items:center; border:0; background:transparent; color:var(--muted); font:8px Silkscreen,monospace; }.mobile-nav button.is-active { color:#fff; }.mobile-nav i { color:var(--violet); font-size:17px; font-style:normal; } }
@media (max-width:560px) { .game-center { padding:12px 12px 88px; }.game-topbar { margin:4px 4px 13px; }.event-stage { min-height:540px; }.event-stage::before { background-position:64% center; }.stage-copy { padding:34px 22px; }.stage-title { margin:21px 0; font-size:28px; line-height:1.26; }.stage-description { font-size:10px; }.stage-stats { gap:17px; }.stage-stat b { font-size:14px; }.stage-cta { width:100%; font-size:9px; }.action-posters { grid-template-columns:1fr; }.event-poster { min-height:146px; }.poster-name { margin-top:26px; }.return-grid { display:flex; overflow:auto; }.return-card { min-width:170px; }.artifact-grid { gap:9px; }.artifact-showcase { min-height:190px; padding:8px; }.artifact-showcase img { height:112px; }.artifact-showcase b { font-size:7px; } }

.profile-panel { cursor:pointer; }

/* Desktop reference layout: the game navigation belongs above the dashboard,
   not in a permanent left rail.  Mobile keeps its fixed bottom navigation. */
@media (min-width:901px) {
    .game-shell {
        grid-template-columns:minmax(0, 1fr) 290px;
        grid-template-rows:76px minmax(0, 1fr);
    }
    .game-rail {
        grid-column:1 / -1;
        grid-row:1;
        position:sticky;
        top:0;
        z-index:300;
        min-height:76px;
        padding:0 28px;
        display:flex;
        align-items:center;
        gap:36px;
        border-right:0;
        border-bottom:1px solid var(--line);
        background:rgba(3,5,11,.92);
    }
    .game-brand { flex:none; margin:0; }
    .game-brand span { display:inline; }
    .rail-nav { display:flex; align-items:center; gap:6px; flex:1; }
    .rail-nav button {
        display:inline-flex;
        align-items:center;
        width:auto;
        padding:10px 12px;
        border-radius:7px;
    }
    .rail-nav button span:not(.nav-icon) { display:inline; }
    .rail-nav .nav-icon { display:none; }
    .rail-world { display:none; }
    .game-center { grid-column:1; grid-row:2; padding:24px; }
    .game-side { grid-column:2; grid-row:2; top:76px; min-height:calc(100dvh - 76px); }
}
/* ============================================================
   PASSPORT — ПОЛНОЦЕННАЯ СТРАНИЦА ВХОДА
   ============================================================ */

/* ---------- БАЗОВЫЕ СБРОСЫ ---------- */
body.page-id-630 {
    background: #03050b !important;
    overflow-x: hidden !important;
    min-height: 100vh;
}

body.page-id-630 #masthead,
body.page-id-630 .site-header,
body.page-id-630 #colophon,
body.page-id-630 .site-footer,
body.page-id-630 .wp-block-navigation,
body.page-id-630 .entry-header,
body.page-id-630 .wp-block-post-title,
body.page-id-630 header.wp-block-template-part,
body.page-id-630 footer.wp-block-template-part {
    display: none !important;
}

body.page-id-630 #page,
body.page-id-630 #content,
body.page-id-630 .site-main,
body.page-id-630 .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #03050b !important;
}

body.page-id-630 main#wp--skip-link--target,
body.page-id-630 .wp-site-blocks > main {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}

body.page-id-630 .entry-content > #opalium-passport {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ---------- КОНТЕЙНЕР PASSPORT ---------- */
.opalium-passport {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: radial-gradient(circle at 55% 0%, #251d45 0%, #080d1a 46%);
    font-family: 'Silkscreen', 'Roboto Condensed', sans-serif;
}

/* ---------- ШАПКА ---------- */
.passport-header {
    text-align: center;
    margin-bottom: 40px;
}

.passport-title {
    font-family: 'Press Start 2P', Georgia, serif;
    font-size: clamp(28px, 5vw, 48px);
    color: #d0a0ff;
    text-shadow: 0 0 40px rgba(187, 93, 255, 0.4);
    letter-spacing: 2px;
    margin-bottom: 8px;
}

.passport-title::before {
    content: '✦ ';
    color: #ffd700;
}

.passport-title::after {
    content: ' ✦';
    color: #ffd700;
}

.passport-subtitle {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: clamp(14px, 1.5vw, 18px);
    color: #b0b8cc;
    letter-spacing: 1px;
}

/* ---------- ЭКРАН ВХОДА ---------- */
.login-screen {
    max-width: 480px;
    width: 100%;
    background: linear-gradient(145deg, rgba(20, 30, 52, 0.95), rgba(10, 16, 30, 0.95));
    border: 1px solid rgba(185, 110, 255, 0.2);
    border-radius: 16px;
    padding: 32px 28px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.login-desc {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 14px;
    color: #c0c8dc;
    text-align: center;
    margin-bottom: 24px;
    line-height: 1.6;
}

/* ---------- ШАГИ ВХОДА ---------- */
.login-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.login-step {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.02);
    transition: all 0.3s ease;
}

.login-step.done {
    border-color: rgba(110, 231, 162, 0.3);
    background: rgba(110, 231, 162, 0.04);
}

.login-step .step-num {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-family: 'Press Start 2P', monospace;
    font-size: 11px;
    color: #fff;
    background: rgba(192, 132, 252, 0.2);
    border: 1px solid rgba(192, 132, 252, 0.3);
    flex-shrink: 0;
}

.login-step.done .step-num {
    background: rgba(110, 231, 162, 0.2);
    border-color: rgba(110, 231, 162, 0.4);
    color: #8df0b5;
}

.login-step span:not(.step-num) {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 13px;
    color: #e8e4f5;
    flex: 1;
}

/* ---------- КНОПКИ ---------- */
.btn {
    padding: 8px 16px;
    border: none;
    border-radius: 6px;
    font-family: 'Oswald', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.btn-sm {
    padding: 6px 14px;
    font-size: 10px;
}

.btn-primary {
    background: linear-gradient(135deg, #7c3aed, #a855f7);
    color: #fff;
    box-shadow: 0 4px 15px rgba(124, 58, 237, 0.3);
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 25px rgba(124, 58, 237, 0.4);
}

.btn-primary:active {
    transform: scale(0.96);
}

.btn-outline {
    background: transparent;
    color: #b0b8cc;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.btn-outline:hover {
    border-color: rgba(255, 100, 50, 0.4);
    color: #ff8a6b;
}

.btn-secondary {
    background: rgba(255, 255, 255, 0.05);
    color: #b0b8cc;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

/* ---------- ПОДСКАЗКА ---------- */
.login-hint {
    text-align: center;
    margin-top: 16px;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 11px;
    color: #6a748d;
    line-height: 1.6;
}

.login-hint small {
    display: block;
    color: #4a546d;
    font-size: 10px;
    margin-top: 4px;
}

/* ---------- СОСТОЯНИЕ ЗАГРУЗКИ ---------- */
.passport-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    gap: 16px;
    background: radial-gradient(circle at 55% 0%, #251d45 0%, #080d1a 46%);
    color: #b0b8cc;
    font-family: 'Silkscreen', monospace;
}

.passport-loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(192, 132, 252, 0.15);
    border-top-color: #d0a0ff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.passport-loading-text {
    font-size: 12px;
    letter-spacing: 1px;
}

/* ---------- СКЕЛЕТОН ---------- */
.skeleton-card {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    padding: 16px;
    background: rgba(255, 255, 255, 0.02);
}

.skeleton-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    animation: shimmer 1.5s ease-in-out infinite;
}

.skeleton-line {
    height: 12px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.04);
    animation: shimmer 1.5s ease-in-out infinite;
}

.skeleton-name { width: 120px; }
.skeleton-title { width: 80px; height: 8px; margin-top: 6px; }
.skeleton-heading { width: 100px; height: 14px; }
.skeleton-small { width: 60px; height: 8px; }
.skeleton-bar { height: 6px; border-radius: 4px; background: rgba(255, 255, 255, 0.03); margin: 8px 0; }
.skeleton-box { aspect-ratio: 1; border-radius: 8px; background: rgba(255, 255, 255, 0.03); }

.collections-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 8px;
}

@keyframes shimmer {
    0% { opacity: 0.4; }
    50% { opacity: 0.8; }
    100% { opacity: 0.4; }
}

/* ---------- АДАПТИВ ---------- */
@media (max-width: 560px) {
    .login-screen {
        padding: 24px 16px;
    }
    
    .login-step {
        padding: 10px 12px;
        flex-wrap: wrap;
    }
    
    .login-step span:not(.step-num) {
        font-size: 12px;
    }
    
    .btn-sm {
        font-size: 9px;
        padding: 4px 10px;
    }
    
    .passport-title {
        font-size: 22px;
    }
}

/* ---------- ПЕРЕХОД В СОКРОВИЩНИЦУ ---------- */
.passport-redirect {
    text-align: center;
    padding: 40px 20px;
}

.passport-redirect-icon {
    font-size: 48px;
    margin-bottom: 16px;
    animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

.passport-redirect-title {
    font-family: 'Press Start 2P', Georgia, serif;
    font-size: clamp(20px, 3vw, 28px);
    color: #d0a0ff;
    margin: 0 0 8px 0;
}

.passport-redirect-desc {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 14px;
    color: #b0b8cc;
}

.passport-redirect-loader {
    width: 40px;
    height: 40px;
    margin: 20px auto;
    border: 3px solid rgba(192, 132, 252, 0.15);
    border-top-color: #d0a0ff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
/* ============================================================
   WELCOME SCREEN
   ============================================================ */

.welcome-screen {
    text-align: center;
    padding: 32px 24px !important;
}

.welcome-icon {
    font-size: 56px;
    margin-bottom: 12px;
    animation: welcomeFloat 3s ease-in-out infinite;
}

@keyframes welcomeFloat {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-10px) scale(1.05); }
}

.welcome-title {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 16px;
    color: #b0b8cc;
    margin-bottom: 4px;
}

.welcome-name {
    font-family: 'Press Start 2P', Georgia, serif;
    font-size: clamp(24px, 4vw, 36px);
    color: #d0a0ff;
    text-shadow: 0 0 30px rgba(187, 93, 255, 0.3);
    margin-bottom: 16px;
}

.welcome-desc {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 14px;
    color: #c0c8dc;
    line-height: 1.6;
    max-width: 380px;
    margin: 0 auto 24px;
}

.welcome-btn {
    display: inline-block;
    padding: 16px 40px;
    border: none;
    border-radius: 12px;
    background: linear-gradient(135deg, #7c3aed, #a855f7, #d19aff);
    background-size: 200% 200%;
    animation: btnGradient 3s ease-in-out infinite;
    color: #fff;
    font-family: 'Oswald', sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 30px rgba(124, 58, 237, 0.35);
    width: 100%;
    max-width: 320px;
}

@keyframes btnGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.welcome-btn:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 8px 40px rgba(124, 58, 237, 0.45);
}

.welcome-btn:active {
    transform: scale(0.96);
}

.welcome-logout {
    display: inline-block;
    margin-top: 12px;
    padding: 8px 20px;
    border: 1px solid rgba(255, 100, 50, 0.2);
    border-radius: 8px;
    background: transparent;
    color: #8a748d;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.welcome-logout:hover {
    border-color: rgba(255, 100, 50, 0.4);
    color: #ff8a6b;
    background: rgba(255, 100, 50, 0.05);
}

/* v8: главная страница для уже зарегистрированного игрока */
.game-brand-logo { width:42px;height:42px;flex:0 0 42px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(163,93,255,.35)); }
.game-brand > div { min-width:0;display:flex;flex-direction:column;gap:2px; }
.game-brand > div > span { display:block;color:#f6f1ff;font-family:'Press Start 2P',Georgia,serif;font-size:13px;letter-spacing:.6px; }
.game-brand small { display:block;color:#8f98ae;font:8px 'Roboto Condensed',sans-serif;white-space:nowrap; }
.home-treasury-btn,.home-logout-btn { min-height:36px;padding:8px 12px;border-radius:8px;cursor:pointer;font:9px 'Silkscreen',monospace; }
.home-treasury-btn { border:1px solid rgba(186,111,255,.35);background:rgba(111,48,171,.14);color:#e5c5ff; }
.home-logout-btn { border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#9ea6b8; }
.home-treasury-btn:hover { border-color:rgba(206,145,255,.65);background:rgba(126,56,188,.22); }
.home-logout-btn:hover { border-color:rgba(255,112,112,.25);color:#ffaaa4; }

@media (max-width:700px) {
    .game-brand-logo { width:34px;height:34px;flex-basis:34px; }
    .game-brand > div > span { font-size:10px; }
    .game-brand small { font-size:7px; }
    .home-treasury-btn,.home-logout-btn { padding:7px 8px;font-size:7px; }
}
