/* =========================================================
   SHOCKER v128 — VIEWPORT FIT / 縦スクロール解消
   画面全体は実表示高へ固定し、必要な横カルーセルと長文閲覧だけを残す。
   ========================================================= */
:root { --v128-app-height: 100vh; }
@supports (height: 100svh) { :root { --v128-app-height: 100svh; } }
@supports (height: 100dvh) { :root { --v128-app-height: 100dvh; } }

html,
body {
    width: 100% !important;
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}

/* ---------- HOME ---------- */
#home-screen.v62-shocker-home {
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
#home-screen.v62-shocker-home .home-shell {
    width: min(100%, 1600px) !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    padding-block: clamp(5px, 1.25dvh, 14px) clamp(5px, 1.05dvh, 12px) !important;
    overflow: hidden !important;
}
#home-screen.v62-shocker-home .home-topbar {
    min-height: clamp(52px, 8dvh, 72px) !important;
    padding-bottom: clamp(5px, 1dvh, 11px) !important;
}
#home-screen.v62-shocker-home #v127-home-bulletin {
    margin-top: clamp(4px, 1dvh, 11px) !important;
}


#home-screen.v62-shocker-home #v127-home-bulletin + .home-main {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-block: clamp(4px, 1.15dvh, 14px) !important;
    overflow: hidden !important;
}
#home-screen.v62-shocker-home .home-hero,
#home-screen.v62-shocker-home .home-side,
#home-screen.v62-shocker-home .home-menu-grid {
    min-height: 0 !important;
    overflow: hidden !important;
}
#home-screen.v62-shocker-home .home-side {
    height: 100% !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
}
#home-screen.v62-shocker-home .home-menu-grid {
    height: 100% !important;
    grid-template-rows: 1.18fr 1fr 1fr !important;
}
#home-screen.v62-shocker-home .home-menu-btn,
#home-screen.v62-shocker-home .home-menu-btn.primary {
    min-height: 0 !important;
}
#home-screen.v62-shocker-home .home-bottom {
    min-height: clamp(18px, 3dvh, 30px) !important;
    padding-top: clamp(3px, .8dvh, 8px) !important;
    overflow: hidden !important;
}

@media (max-width: 900px) {
    #home-screen.v62-shocker-home #v127-home-bulletin + .home-main {
        grid-template-columns: 1fr !important;
        grid-template-rows: minmax(0, .88fr) minmax(0, 1.12fr) !important;
        gap: clamp(5px, 1dvh, 9px) !important;
    }
    #home-screen.v62-shocker-home .home-side {
        grid-template-rows: auto minmax(0, 1fr) !important;
    }
}

@media (max-width: 700px) {
    #home-screen.v62-shocker-home .home-shell {
        padding: max(5px, env(safe-area-inset-top)) 8px max(4px, env(safe-area-inset-bottom)) !important;
    }
    #home-screen.v62-shocker-home .home-topbar { min-height: 50px !important; }


    #home-screen.v62-shocker-home #v127-home-bulletin + .home-main {
        grid-template-rows: minmax(0, .78fr) minmax(0, 1.22fr) !important;
        gap: 5px !important;
        padding-block: 5px !important;
    }
    #home-screen.v62-shocker-home .home-hero-copy {
        left: 13px !important;
        bottom: 11px !important;
    }
    #home-screen.v62-shocker-home .home-hero-title {
        margin-block: 6px !important;
        font-size: clamp(24px, 8.2vw, 38px) !important;
    }
    #home-screen.v62-shocker-home .home-notice { padding: 5px 8px !important; }
    #home-screen.v62-shocker-home .home-notice-label { font-size: 6px !important; }
    #home-screen.v62-shocker-home .home-notice-title {
        margin-top: 3px !important;
        font-size: 8px !important;
        line-height: 1.25 !important;
    }
    #home-screen.v62-shocker-home .home-menu-grid { gap: 4px !important; }
    #home-screen.v62-shocker-home .home-menu-btn,
    #home-screen.v62-shocker-home .home-menu-btn.primary {
        min-height: 0 !important;
        padding-block: 4px !important;
    }
    #home-screen.v62-shocker-home .home-menu-name { font-size: 9px !important; }
    #home-screen.v62-shocker-home .home-menu-btn.primary .home-menu-name { font-size: 13px !important; }
    #home-screen.v62-shocker-home .home-menu-sub { margin-top: 2px !important; font-size: 5px !important; }
    #home-screen.v62-shocker-home .home-bottom { min-height: 15px !important; padding-top: 2px !important; }
}

@media (max-height: 560px) and (min-width: 560px) {
    #home-screen.v62-shocker-home .home-shell {
        grid-template-rows: auto auto minmax(0, 1fr) !important;
        padding: 4px 8px !important;
    }
    #home-screen.v62-shocker-home .home-topbar { min-height: 42px !important; padding-bottom: 3px !important; }
    #home-screen.v62-shocker-home .home-resources { display: none !important; }


    #home-screen.v62-shocker-home #v127-home-bulletin + .home-main {
        grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr) !important;
        grid-template-rows: minmax(0, 1fr) !important;
        gap: 6px !important;
        padding-block: 5px !important;
    }
    #home-screen.v62-shocker-home .home-notice,
    #home-screen.v62-shocker-home .home-bottom,
    #home-screen.v62-shocker-home .home-hero-text,
    #home-screen.v62-shocker-home .v62-mechanics { display: none !important; }
    #home-screen.v62-shocker-home .home-side { grid-template-rows: minmax(0, 1fr) !important; }
    #home-screen.v62-shocker-home .home-hero-copy { bottom: 10px !important; }
    #home-screen.v62-shocker-home .home-hero-title { font-size: clamp(24px, 8dvh, 34px) !important; }
    #home-screen.v62-shocker-home .home-menu-btn,
    #home-screen.v62-shocker-home .home-menu-btn.primary { padding-block: 3px !important; }
}

/* ---------- TWO-STAGE MODE CARDS ---------- */
#v106-match-mode-modal,
#v99-mode-overlay {
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    padding: max(6px, env(safe-area-inset-top)) max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
.v106-mode-panel,
.v99-mode-panel {
    display: flex !important;
    flex-direction: column !important;
    width: min(900px, 96vw) !important;
    height: min(620px, calc(var(--v128-app-height) - 12px)) !important;
    min-height: 0 !important;
    max-height: calc(var(--v128-app-height) - 12px) !important;
    overflow: hidden !important;
}
.v106-mode-header,
.v106-mode-footer { flex: 0 0 auto !important; }
.v106-mode-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}
.v106-mode-choice-grid,
.v99-mode-options {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    max-height: 100% !important;
    align-items: center !important;
}
.v120-playing-card {
    height: min(330px, 58vw, calc(var(--v128-app-height) - 178px)) !important;
    max-height: calc(var(--v128-app-height) - 178px) !important;
    aspect-ratio: 2.5 / 3.5 !important;
}

@media (max-height: 560px) {
    .v106-mode-panel,
    .v99-mode-panel { padding: clamp(3px, 1.4dvh, 8px) !important; justify-content: center !important; }
    .v106-mode-header { padding: 0 36px 4px !important; }
    .v106-mode-header .v106-rank-heading,
    .v99-mode-panel h2 { margin: 2px 0 !important; font-size: clamp(17px, 6dvh, 25px) !important; }
    .v106-rank-subheading,
    .v99-mode-panel > p { margin: 0 0 3px !important; font-size: 6px !important; line-height: 1.25 !important; }
    .v106-mode-body { padding: 2px 5px !important; }
    .v106-mode-choice-grid,
    .v99-mode-options { gap: clamp(8px, 3vw, 22px) !important; }
    .v120-playing-card {
        width: clamp(100px, 34dvh, 158px) !important;
        height: clamp(142px, 50dvh, 220px) !important;
        max-height: calc(var(--v128-app-height) - 105px) !important;
    }
    .v120-card-front { padding: 22px 11px !important; }
    .v120-card-corner { top: 10px !important; left: 10px !important; font-size: 10px !important; }
    .v120-card-corner.bottom { right: 10px !important; bottom: 10px !important; left: auto !important; top: auto !important; }
    .v120-card-suit { margin-bottom: 3px !important; font-size: clamp(23px, 9dvh, 34px) !important; }
    .v120-playing-card .v106-mode-choice-title,
    .v120-playing-card.v99-mode-card strong { margin: 4px 0 !important; font-size: clamp(11px, 4.2dvh, 15px) !important; }
    .v120-playing-card .v106-mode-choice-copy,
    .v120-playing-card.v99-mode-card .v120-card-front > small {
        display: -webkit-box !important;
        overflow: hidden !important;
        font-size: 6px !important;
        line-height: 1.25 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .v120-playing-card .v106-mode-choice-meta { margin-top: 4px !important; padding-top: 3px !important; font-size: 5px !important; }
    .v106-mode-footer { min-height: 0 !important; padding: 2px 6px 0 !important; }
    .v106-mode-footer .v106-rank-footer-note { display: none !important; }
    .v106-mode-footer .v106-rank-action,
    #v99-mode-cancel { min-height: 22px !important; margin: 2px auto 0 !important; padding: 3px 8px !important; font-size: 7px !important; }
}

/* ---------- CHARACTER ROSTER ---------- */
#character-select-screen.v62-roster-screen {
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
#character-select-screen.v62-roster-screen .character-select-shell {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}
#character-select-screen.v62-roster-screen .character-grid,
#character-select-screen.v62-roster-screen #character-grid {
    flex: 1 1 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
}
#character-select-screen.v62-roster-screen .character-card {
    height: min(56dvh, 548px) !important;
    min-height: 0 !important;
    max-height: 100% !important;
}
#character-select-screen.v62-roster-screen .character-select-footer {
    position: static !important;
    flex: 0 0 auto !important;
}
@media (max-width: 700px) {
    #character-select-screen.v62-roster-screen { padding-top: max(5px, env(safe-area-inset-top)) !important; }
    #character-select-screen.v62-roster-screen .character-select-shell { height: 100% !important; min-height: 0 !important; }
    #character-select-screen.v62-roster-screen .character-grid,
    #character-select-screen.v62-roster-screen #character-grid {
        min-height: 0 !important;
        padding: clamp(5px, 1.3dvh, 10px) 12vw clamp(5px, 1.2dvh, 9px) !important;
    }
    #character-select-screen.v62-roster-screen .character-card {
        height: min(100%, calc(var(--v128-app-height) - 166px)) !important;
        min-height: 0 !important;
        max-height: 100% !important;
    }
    #character-select-screen.v62-roster-screen .character-select-footer { position: static !important; }
}

/* ---------- CHARACTER DETAIL ---------- */
#character-detail-modal {
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
#character-detail-modal .character-detail-panel {
    --v128-detail-font: 13px;
    --v128-detail-line: 1.55;
    width: min(940px, 96vw) !important;
    height: min(720px, calc(var(--v128-app-height) - 28px)) !important;
    min-height: 0 !important;
    max-height: calc(var(--v128-app-height) - 28px) !important;
    overflow: hidden !important;
}
#character-detail-modal .character-detail-portrait-wrap {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    padding: 0 !important;
}
#character-detail-modal .character-detail-info {
    min-height: 0 !important;
    overflow: hidden !important;
}
#character-detail-modal .character-detail-scroll {
    min-height: 0 !important;
    overflow: hidden !important;
    padding-right: 0 !important;
}
#character-detail-modal .character-detail-ability { margin-bottom: 10px !important; padding: 10px 11px !important; }
#character-detail-modal .character-detail-ability-title { margin-bottom: 5px !important; font-size: 13px !important; }
#character-detail-modal .character-detail-ability-text {
    font-size: var(--v128-detail-font) !important;
    line-height: var(--v128-detail-line) !important;
}
#character-detail-modal .character-detail-actions { margin-top: 10px !important; }
#character-detail-modal .character-detail-actions button { min-height: 40px !important; }
#character-card-stack-canvas { touch-action: manipulation; }

@media (max-width: 720px) {
    #character-detail-modal { padding: 7px !important; }
    #character-detail-modal .character-detail-panel {
        width: 100% !important;
        height: calc(var(--v128-app-height) - 14px) !important;
        max-height: calc(var(--v128-app-height) - 14px) !important;
        grid-template-columns: 1fr !important;
        grid-template-rows: minmax(112px, 32%) minmax(0, 1fr) !important;
    }
    #character-detail-modal .character-detail-panel.v128-detail-copy-heavy {
        grid-template-rows: minmax(94px, 24%) minmax(0, 1fr) !important;
    }
    #character-detail-modal .character-detail-panel.v128-detail-ultra {
        grid-template-rows: minmax(78px, 18%) minmax(0, 1fr) !important;
    }
    #character-detail-modal .character-detail-info { padding: 9px 12px !important; }
    #character-detail-modal #character-detail-name { margin: 4px 0 2px !important; font-size: clamp(21px, 7vw, 28px) !important; }
    #character-detail-modal #character-detail-type { margin-bottom: 7px !important; font-size: 9px !important; }
    #character-detail-modal .character-detail-ability { margin-bottom: 6px !important; padding: 7px 8px !important; }
    #character-detail-modal .character-detail-ability-title { margin-bottom: 3px !important; font-size: 10px !important; }
    #character-detail-modal .character-detail-actions { gap: 6px !important; margin-top: 6px !important; }
    #character-detail-modal .character-detail-actions button { min-height: 35px !important; font-size: 9px !important; }
}

@media (orientation: landscape) and (max-height: 560px) {
    #character-detail-modal .character-detail-panel,
    #character-detail-modal .character-detail-panel.v128-detail-copy-heavy,
    #character-detail-modal .character-detail-panel.v128-detail-ultra {
        width: min(900px, calc(100vw - 14px)) !important;
        grid-template-columns: minmax(180px, .78fr) minmax(260px, 1.22fr) !important;
        grid-template-rows: minmax(0, 1fr) !important;
    }
    #character-detail-modal .character-detail-info { padding: 8px 11px !important; }
    #character-detail-modal #character-detail-name { font-size: clamp(18px, 7dvh, 27px) !important; }
}

/* ---------- PLAYER PROFILE ---------- */
#v105-profile-editor {
    height: var(--v128-app-height) !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
.v105-profile-panel {
    height: min(740px, calc(var(--v128-app-height) - 24px)) !important;
    max-height: none !important;
    overflow: hidden !important;
}
.v105-profile-panel-header { min-height: 58px !important; padding: 10px 54px 9px 17px !important; }
.v105-profile-panel-title { margin-top: 4px !important; font-size: clamp(20px, 3vw, 28px) !important; }
.v105-profile-panel-subtitle { margin-top: 4px !important; }
#v105-profile-close { top: 10px !important; right: 12px !important; width: 34px !important; height: 34px !important; }
.v105-profile-form { flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; }
.v105-profile-panel-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    grid-template-columns: minmax(175px, .55fr) minmax(0, 1.7fr) !important;
    gap: 12px !important;
    padding: 11px 13px !important;
    overflow: hidden !important;
}
.v105-profile-preview-column { min-height: 0 !important; gap: 7px !important; }
.v105-profile-large-preview { flex: 1 1 auto !important; min-height: 0 !important; padding: 12px 10px !important; }
.v105-profile-large-preview .v105-profile-emblem {
    width: clamp(76px, 14dvh, 116px) !important;
    height: clamp(76px, 14dvh, 116px) !important;
}
.v105-preview-character,
.v105-preview-name { margin-top: 7px !important; }
.v105-preview-title { margin-top: 4px !important; }
.v105-preview-note { padding: 6px 8px !important; font-size: 7px !important; line-height: 1.35 !important; }
.v105-field-grid { gap: 7px !important; margin-top: 5px !important; }
.v105-field > span { margin-bottom: 4px !important; font-size: 8px !important; }
.v105-field input { min-height: 34px !important; padding: 6px 8px !important; font-size: 11px !important; }
.v105-field-help { margin-top: 3px !important; font-size: 6px !important; }
.v105-option-section { margin-top: 9px !important; }
.v105-frame-grid { gap: 5px !important; margin-top: 5px !important; }
.v105-frame-choice { min-height: 32px !important; padding: 4px 6px !important; font-size: 8px !important; }
.v105-frame-swatch { width: 18px !important; height: 18px !important; }
.v105-character-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
    max-height: none !important;
    margin-top: 5px !important;
    padding: 1px !important;
    overflow: visible !important;
}
.v105-character-choice { min-height: clamp(52px, 8.5dvh, 72px) !important; padding: 2px !important; }
.v105-character-thumb { min-height: clamp(34px, 5.6dvh, 50px) !important; }
.v105-character-choice-name { padding: 3px 1px 2px !important; font-size: 6px !important; }
.v105-profile-panel-actions { min-height: 50px !important; padding: 7px 13px max(7px, env(safe-area-inset-bottom)) !important; }
.v105-profile-action { min-height: 36px !important; padding: 7px 11px !important; }

@media (max-width: 700px) {
    #v105-profile-editor { padding: max(5px, env(safe-area-inset-top)) max(5px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(5px, env(safe-area-inset-left)) !important; }
    .v105-profile-panel { height: calc(var(--v128-app-height) - 10px) !important; }
    .v105-profile-panel-header { min-height: 50px !important; padding: 8px 44px 7px 11px !important; }
    .v105-profile-panel-kicker { font-size: 5.5px !important; letter-spacing: .14em !important; }
    .v105-profile-panel-title { margin-top: 3px !important; font-size: 18px !important; }
    .v105-profile-panel-subtitle { display: none !important; }
    #v105-profile-close { top: 8px !important; right: 8px !important; width: 31px !important; height: 31px !important; }
    .v105-profile-panel-body {
        grid-template-columns: clamp(72px, 22vw, 96px) minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 8px !important;
    }
    .v105-profile-preview-column { gap: 5px !important; }
    .v105-section-label { font-size: 6px !important; letter-spacing: .1em !important; }
    .v105-profile-large-preview { min-height: 0 !important; padding: 8px 4px !important; }
    .v105-profile-large-preview .v105-profile-emblem { width: clamp(52px, 16vw, 70px) !important; height: clamp(52px, 16vw, 70px) !important; padding: 3px !important; }
    .v105-preview-character { margin-top: 5px !important; font-size: 6px !important; }
    .v105-preview-name { margin-top: 5px !important; font-size: clamp(10px, 3.3vw, 13px) !important; }
    .v105-preview-title { font-size: 6px !important; }
    .v105-preview-note,
    .v105-field-help { display: none !important; }
    .v105-field-grid { grid-template-columns: 1fr 1fr !important; gap: 5px !important; margin-top: 4px !important; }
    .v105-field > span { margin-bottom: 3px !important; font-size: 7px !important; }
    .v105-field input { min-height: 31px !important; padding: 5px !important; font-size: 9px !important; }
    .v105-option-section { margin-top: 7px !important; }
    .v105-frame-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 4px !important; margin-top: 4px !important; }
    .v105-frame-choice { min-height: 28px !important; gap: 3px !important; padding: 3px !important; font-size: 6px !important; }
    .v105-frame-swatch { width: 16px !important; height: 16px !important; font-size: 7px !important; }
    .v105-character-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 4px !important; margin-top: 4px !important; }
    .v105-character-choice { min-height: clamp(43px, 7dvh, 56px) !important; }
    .v105-character-thumb { min-height: clamp(34px, 5.6dvh, 46px) !important; }
    .v105-character-choice-name { display: none !important; }
    .v105-profile-panel-actions { min-height: 46px !important; padding: 6px 8px max(6px, env(safe-area-inset-bottom)) !important; }
    .v105-profile-action { min-height: 34px !important; font-size: 8px !important; }
}
@media (max-height: 340px), (max-width: 300px) {
    .v105-profile-panel-body { overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; }
}

@media (max-height: 480px) and (min-width: 701px) {
    .v105-profile-panel { height: calc(var(--v128-app-height) - 12px) !important; }
    .v105-profile-panel-header { min-height: 43px !important; padding: 6px 45px 5px 12px !important; }
    .v105-profile-panel-title { margin-top: 2px !important; font-size: 17px !important; }
    .v105-profile-panel-subtitle { display: none !important; }
    #v105-profile-close { top: 6px !important; right: 8px !important; width: 29px !important; height: 29px !important; }
    .v105-profile-panel-body { grid-template-columns: 145px minmax(0, 1fr) !important; gap: 8px !important; padding: 6px 9px !important; }
    .v105-profile-large-preview { padding: 6px !important; }
    .v105-profile-large-preview .v105-profile-emblem { width: 54px !important; height: 54px !important; }
    .v105-preview-note,
    .v105-field-help { display: none !important; }
    .v105-field input { min-height: 28px !important; padding: 4px 6px !important; font-size: 9px !important; }
    .v105-field-grid { gap: 5px !important; margin-top: 3px !important; }
    .v105-option-section { margin-top: 5px !important; }
    .v105-frame-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 3px !important; margin-top: 3px !important; }
    .v105-frame-choice { min-height: 25px !important; gap: 3px !important; padding: 2px 3px !important; font-size: 6px !important; }
    .v105-frame-swatch { width: 14px !important; height: 14px !important; }
    .v105-character-grid { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; gap: 3px !important; margin-top: 3px !important; }
    .v105-character-choice { min-height: 43px !important; }
    .v105-character-thumb { min-height: 36px !important; }
    .v105-character-choice-name { display: none !important; }
    .v105-profile-panel-actions { min-height: 39px !important; padding-block: 4px !important; }
    .v105-profile-action { min-height: 30px !important; padding-block: 4px !important; font-size: 8px !important; }
}

/* ---------- BULLETIN DETAIL ---------- */
#v127-bulletin-modal {
    height: var(--v128-app-height) !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
}
.v127-bulletin-modal-panel {
    width: min(680px, 94vw) !important;
    height: min(610px, calc(var(--v128-app-height) - 28px)) !important;
    max-height: none !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    overflow: hidden !important;
}
.v127-bulletin-modal-head,
.v127-bulletin-modal-foot { min-height: 0; flex: 0 0 auto; }
.v127-bulletin-modal-body { min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain; }
@media (max-width: 700px) {
    #v127-bulletin-modal { padding: max(7px, env(safe-area-inset-top)) max(7px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left)) !important; }
    .v127-bulletin-modal-panel { width: 100% !important; height: min(580px, calc(var(--v128-app-height) - 14px)) !important; }
    .v127-bulletin-modal-head { padding: 9px 10px !important; }
    .v127-bulletin-modal-close { width: 32px !important; height: 32px !important; }
    .v127-bulletin-modal-kicker { font-size: 6.5px !important; letter-spacing: .13em !important; }
    .v127-bulletin-modal-body { padding: 12px 13px !important; }
    .v127-bulletin-modal-tag { padding: 4px 7px !important; font-size: 7px !important; }
    .v127-bulletin-modal-title { margin: 8px 0 5px !important; font-size: clamp(20px, 6.6vw, 27px) !important; }
    .v127-bulletin-modal-period { margin-bottom: 9px !important; font-size: 7px !important; }
    .v127-bulletin-modal-description { font-size: 10px !important; line-height: 1.55 !important; }
    .v127-bulletin-modal-points { gap: 5px !important; margin-top: 10px !important; }
    .v127-bulletin-modal-points li { padding: 6px 7px 6px 22px !important; font-size: 9px !important; line-height: 1.35 !important; }
    .v127-bulletin-modal-points li::before { left: 8px !important; top: 7px !important; }
    .v127-bulletin-modal-foot { flex-flow: row nowrap !important; gap: 6px !important; padding: 8px 10px 9px !important; }
    .v127-bulletin-modal-action,
    .v127-bulletin-modal-action.is-close { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; min-height: 36px !important; padding: 7px !important; font-size: 9px !important; }
}
@media (max-height: 340px), (max-width: 300px) {
    .v127-bulletin-modal-body { overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; }
}

@media (max-height: 520px) and (min-width: 701px) {
    #v127-bulletin-modal { padding: 6px !important; }
    .v127-bulletin-modal-panel { height: calc(var(--v128-app-height) - 12px) !important; }
    .v127-bulletin-modal-head { padding: 7px 10px !important; }
    .v127-bulletin-modal-close { width: 30px !important; height: 30px !important; }
    .v127-bulletin-modal-body { padding: 9px 15px !important; }
    .v127-bulletin-modal-title { margin: 6px 0 4px !important; font-size: clamp(20px, 7dvh, 28px) !important; }
    .v127-bulletin-modal-period { margin-bottom: 6px !important; font-size: 7px !important; }
    .v127-bulletin-modal-description { font-size: 9px !important; line-height: 1.4 !important; }
    .v127-bulletin-modal-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px !important; margin-top: 7px !important; }
    .v127-bulletin-modal-points li { padding: 5px 6px 5px 19px !important; font-size: 7.5px !important; line-height: 1.25 !important; }
    .v127-bulletin-modal-points li::before { left: 7px !important; top: 6px !important; }
    .v127-bulletin-modal-foot { padding: 6px 10px !important; }
    .v127-bulletin-modal-action { min-height: 31px !important; padding-block: 5px !important; font-size: 8px !important; }
}

/* ---------- FIRST LOGIN / TUTORIAL ---------- */
#v122-onboarding {
    --v128-topbar: 72px;
    height: var(--v128-app-height) !important;
    min-height: 0 !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
}
.v122-topbar { flex: 0 0 auto; }
.v122-stage:has(> #v122-registration:not([hidden])),
.v122-stage:has(> #v122-tutorial:not([hidden])),
.v122-stage:has(> #v122-complete:not([hidden])) {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    padding: clamp(7px, 1.3dvh, 14px) max(clamp(8px, 1.3vw, 18px), env(safe-area-inset-right)) max(clamp(7px, 1.3dvh, 14px), env(safe-area-inset-bottom)) max(clamp(8px, 1.3vw, 18px), env(safe-area-inset-left));
}
#v122-registration:not([hidden]),
#v122-tutorial:not([hidden]),
#v122-complete:not([hidden]) {
    height: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}
#v122-registration:not([hidden]) { min-height: 0; }
.v122-registration-art { min-height: 0; }
.v122-registration-form-wrap { min-height: 0; overflow: hidden; padding: clamp(20px, 4dvh, 52px) clamp(22px, 4vw, 60px); }

#v122-tutorial:not([hidden]) { align-items: stretch; }
.v122-mentor-panel { height: 100%; min-height: 0; }
.v122-mentor-portrait { min-height: 0; }
.v122-training-main {
    --v128-card: clamp(40px, min(5.2vw, 7.2dvh), 68px);
    --v128-zone: clamp(62px, 10.5dvh, 96px);
    --v128-hand: clamp(70px, 12.5dvh, 104px);
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: clamp(5px, .9dvh, 9px);
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
.v122-training-main:has(> .v126-chain-dossier:not([hidden])),
.v122-training-main:has(> #v124-foundation-summary:not([hidden])) { grid-template-rows: minmax(0, 1fr) auto auto; }
.v122-training-main:has(> .v126-chain-dossier:not([hidden])) {
    --v128-card: clamp(34px, min(4.8vw, 6dvh), 54px);
    --v128-zone: clamp(50px, 8.4dvh, 72px);
    --v128-hand: clamp(58px, 9.7dvh, 82px);
}
.v122-battle-board { min-height: 0; height: auto; padding: clamp(5px, .9dvh, 10px) clamp(5px, 1vw, 12px); }
.v122-zone { min-height: var(--v128-zone); gap: clamp(3px, .65vw, 7px); padding: 4px; }
.v122-card { width: var(--v128-card); }
.v122-hand { min-height: var(--v128-hand); gap: clamp(2px, .55vw, 6px); padding: 4px 4px 1px; }
.v122-side-head { margin-bottom: 4px; }
.v122-midline { height: clamp(28px, 4.7dvh, 40px); }
.v122-hand-wrap { margin-top: 3px; }
.v122-hand-label { margin-bottom: 3px; }
.v122-instruction { min-height: 0; padding: clamp(8px, 1.2dvh, 12px) clamp(9px, 1.2vw, 14px); gap: 10px; }
.v122-instruction h2 { margin: 4px 0; font-size: clamp(14px, 1.65vw, 19px); }
.v122-instruction p { font-size: clamp(8px, 1.05vw, 10px); line-height: 1.45; }
.v122-instruction-hint { margin-top: 4px !important; font-size: clamp(7px, .9vw, 8px) !important; }
.v122-instruction-actions { gap: 4px; }
.v122-feedback { min-height: 12px; line-height: 1.25; }
.v122-instruction-actions .v122-primary,
.v122-chain-action,
.v122-chain-pass { min-height: 36px; }
.v122-chain-controls button { min-width: 0; flex: 1 1 0; padding-inline: 7px; }

.v126-chain-dossier { padding: 7px; }
.v126-chain-head { margin-bottom: 5px; }
.v126-chain-tabs { gap: 4px; margin-bottom: 5px; }
.v126-chain-tab { min-height: 25px; }
.v126-chain-panel { min-height: 0; gap: 8px; padding: 6px 8px; }
.v126-chain-seal { width: 44px; height: 44px; font-size: 19px; }
.v126-chain-copy p { margin-top: 3px; font-size: clamp(7px, .82vw, 8px); line-height: 1.35; }
.v126-chain-equation { margin-top: 4px; }
.v126-chain-equation span { padding: 3px 5px; font-size: 7px; }
.v126-chain-protocol { margin-top: 5px; padding: 4px 7px; font-size: 8px; line-height: 1.3; }

.v124-foundation-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 5px; overflow: hidden; }
.v124-foundation-item { padding: 5px 6px; }
.v124-foundation-item b { margin-bottom: 3px; font-size: 6.8px; line-height: 1.25; letter-spacing: .09em; }
.v124-foundation-item span { font-size: clamp(6.4px, .72vw, 7.5px); line-height: 1.32; }
.v122-training-main:has(> #v124-foundation-summary:not([hidden])) .v122-battle-board { min-height: 44px; padding: 3px 8px; }
.v122-training-main:has(> #v124-foundation-summary:not([hidden])) .v122-battle-board > :not(.v122-midline) { display: none !important; }
.v122-training-main:has(> #v124-foundation-summary:not([hidden])) .v122-midline { width: 100%; height: 100%; }

#v122-onboarding #v122-briefing-mask {
    position: fixed;
    inset: var(--v128-topbar) 0 0;
    overflow: hidden;
    padding: clamp(8px, 2dvh, 18px);
}
#v122-onboarding .v122-briefing-card { max-height: 100%; overflow: hidden; padding: clamp(15px, 3dvh, 30px); }
.v122-briefing-card .v122-kicker { margin-bottom: 8px; }
.v122-briefing-card h2 { margin-bottom: 8px; }
.v122-briefing-card p { margin-bottom: 12px; font-size: clamp(8px, 1.3vw, 10px); line-height: 1.55; }
.v122-briefing-rules { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-bottom: 12px; }
.v122-briefing-rule { padding: 7px 4px; }

#v122-complete:not([hidden]) { place-items: center; }
.v122-certificate {
    max-height: 100%;
    padding: clamp(18px, 4dvh, 48px) clamp(17px, 5vw, 56px);
}
.v122-certificate h2 { margin: clamp(7px, 1.5dvh, 14px) 0 6px; }
.v122-certified-name { margin: clamp(9px, 2dvh, 20px) auto 4px; padding-block: 6px; }
.v122-stamp { width: clamp(62px, 11dvh, 92px); height: clamp(62px, 11dvh, 92px); margin: clamp(8px, 2dvh, 17px) auto; }

#v122-skip-confirm,
#v122-system-settings {
    height: var(--v128-app-height) !important;
    max-height: var(--v128-app-height) !important;
    overflow: hidden !important;
}
.v122-confirm-panel,
.v122-settings-panel { max-height: calc(var(--v128-app-height) - 24px) !important; overflow: hidden !important; }

@media (max-width: 860px) {
    .v122-registration-form-wrap { padding: clamp(16px, 3dvh, 28px) clamp(16px, 5vw, 32px); }
    #v122-tutorial:not([hidden]) { grid-template-columns: 1fr; grid-template-rows: 50px minmax(0, 1fr); gap: 6px; }
    .v122-mentor-panel { display: grid; grid-template: 1fr / 50px minmax(0, 1fr) auto; height: 50px; min-height: 0; clip-path: none; }
    .v122-mentor-portrait { height: 100%; min-height: 0; }
    .v122-mentor-id { margin: 0; padding: 7px 10px; align-self: center; }
    .v122-mentor-id small,
    .v122-mentor-id span { display: none; }
    .v122-mentor-id b { margin: 0; font-size: 14px; }
    .v122-lesson-index { grid-column: auto; display: grid; place-content: center; min-width: 120px; padding: 5px 10px; border-top: 0; border-left: 1px solid rgba(216, 184, 95, .24); }
    .v126-chain-equation { display: none; }
}

@media (max-width: 540px) {
    #v122-onboarding { --v128-topbar: 58px; }
    .v122-topbar { min-height: 58px !important; padding-block: max(5px, env(safe-area-inset-top)) 5px !important; }
    .v122-brand-seal { width: 34px !important; height: 34px !important; font-size: 16px !important; }
    .v122-skip { min-height: 36px !important; padding-inline: 9px !important; font-size: 8px !important; }
    .v122-registration-form-wrap { padding: 11px 13px; justify-content: center; }
    .v122-registration-form-wrap h1 { margin: 6px 0 !important; font-size: 24px !important; }
    .v122-lead { margin-bottom: 9px !important; font-size: 9px !important; line-height: 1.5 !important; }
    .v122-mentor-quote { margin-bottom: 9px !important; padding: 8px 10px !important; font-size: 8px !important; line-height: 1.45 !important; }
    .v122-field-label { margin-bottom: 4px !important; font-size: 8px !important; }
    .v122-name-row { grid-template-columns: 1fr auto !important; gap: 5px !important; }
    #v122-username { height: 40px !important; padding-inline: 10px !important; font-size: 14px !important; }
    .v122-name-count { display: grid !important; min-width: 43px !important; font-size: 7px !important; }
    .v122-form-error { min-height: 15px !important; margin: 3px 0 !important; font-size: 8px !important; }
    .v122-dossier-preview { margin: 3px 0 7px !important; padding: 5px 7px !important; }
    .v122-dossier-avatar { width: 32px !important; height: 32px !important; }
    #v122-register-submit { min-height: 40px !important; }

    #v122-tutorial:not([hidden]) { grid-template-rows: 44px minmax(0, 1fr); }
    .v122-mentor-panel { grid-template-columns: 42px minmax(0, 1fr) auto; height: 44px; }
    .v122-mentor-id { padding: 5px 7px; }
    .v122-mentor-id b { font-size: 12px; }
    .v122-lesson-index { min-width: 104px; padding: 4px 6px; font-size: 6px; }
    .v122-lesson-index b { font-size: 9px; }
    .v122-battle-board { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: 3px; }
    .v122-battle-board > .v122-opponent { grid-column: 1; grid-row: 1; min-width: 0; }
    .v122-battle-board > .v122-midline { grid-column: 2; grid-row: 1; min-width: 0; height: 100%; grid-template-columns: 1fr; }
    .v122-battle-board > .v122-player { grid-column: 3; grid-row: 1; min-width: 0; }
    .v122-battle-board > .v122-hand-wrap { grid-column: 1 / -1; grid-row: 2; min-width: 0; }
    .v122-midline > span { display: none; }
    .v122-clash-result { min-width: 0; font-size: 0; }
    .v122-clash-result b { font-size: 8px; }
    .v122-side-head { gap: 3px; margin-bottom: 2px; }
    .v122-side-title small { display: none; }
    .v122-side-title b { font-size: 8px; }
    .v122-intel { gap: 2px; }
    .v122-intel span { padding: 2px 3px; font-size: 5px; }
    .v122-zone { min-height: 50px; }
    .v122-hand { min-height: 56px; }
    .v122-card { width: clamp(32px, 10.5vw, 42px); }
    .v122-training-counters,
    .v122-opponent-hands { display: none; }
    .v122-instruction { grid-template-columns: minmax(0, 1fr) minmax(102px, 34%); padding: 7px 8px; gap: 6px; }
    .v122-instruction h2 { font-size: 13px; }
    .v122-instruction p { font-size: 8px; }
    .v122-instruction-actions { display: flex; min-width: 0; flex-direction: column; }
    .v122-chain-controls { width: 100%; gap: 3px; }
    .v122-chain-controls button { font-size: 7px; }
    .v126-chain-dossier { padding: 5px; }
    .v126-chain-head small { font-size: 6px; }
    .v126-chain-head b { font-size: 9px; }
    .v126-chain-tab { min-height: 22px; font-size: 6px; }
    .v126-chain-panel { grid-template-columns: 38px minmax(0, 1fr); padding: 5px; }
    .v126-chain-seal { width: 38px; height: 38px; font-size: 16px; }
    .v126-chain-copy b { font-size: 8px; }
    .v126-chain-copy p { font-size: 7px; line-height: 1.25; }
    .v126-chain-protocol { flex-direction: row; gap: 5px; font-size: 7px; }
    .v124-foundation-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; padding: 3px; }
    .v124-foundation-item { padding: 4px; }
    .v124-foundation-item b { font-size: 5.8px; }
    .v124-foundation-item span { font-size: 6.1px; line-height: 1.25; }
    .v122-briefing-rules { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v122-briefing-rule b { font-size: 13px; }
    .v122-briefing-rule span { font-size: 6.5px; }
    .v122-confirm-panel,
    .v122-settings-panel { padding: 16px !important; }
    .v122-confirm-actions,
    .v122-settings-summary { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
    .v122-confirm-actions { margin-top: 12px !important; }
    .v122-confirm-mark { width: 48px !important; height: 48px !important; margin-bottom: 9px !important; }
    .v122-confirm-panel h2,
    .v122-settings-panel h2 { margin-block: 5px 8px !important; font-size: 19px !important; }
    .v122-confirm-panel p { font-size: 9px !important; line-height: 1.5 !important; }
}

@media (max-height: 560px) and (min-width: 560px) {
    #v122-onboarding { --v128-topbar: 54px; }
    .v122-topbar { min-height: 54px; padding-block: 5px; }
    .v122-stage:has(> #v122-registration:not([hidden])),
    .v122-stage:has(> #v122-tutorial:not([hidden])),
    .v122-stage:has(> #v122-complete:not([hidden])) { padding-block: 5px; }
    .v122-registration-form-wrap { padding: 9px 18px; }
    .v122-registration-form-wrap h1 { margin-block: 4px !important; font-size: 22px !important; }
    .v122-lead { margin-bottom: 6px !important; font-size: 8px !important; line-height: 1.35 !important; }
    .v122-mentor-quote { margin-bottom: 7px !important; padding: 6px 9px !important; font-size: 7px !important; line-height: 1.35 !important; }
    .v122-field-label { margin-bottom: 3px !important; font-size: 7px !important; }
    .v122-name-row { gap: 5px !important; }
    #v122-username { height: 36px !important; padding-inline: 9px !important; font-size: 13px !important; }
    .v122-name-count { min-width: 43px !important; font-size: 7px !important; }
    .v122-form-error { min-height: 13px !important; margin: 2px 0 !important; font-size: 7px !important; }
    .v122-dossier-preview { margin: 2px 0 5px !important; padding: 4px 7px !important; }
    .v122-dossier-avatar { width: 29px !important; height: 29px !important; }
    #v122-register-submit { min-height: 36px !important; }
    #v122-tutorial:not([hidden]) { grid-template-columns: clamp(125px, 18vw, 180px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: 6px; }
    .v122-mentor-panel { display: flex; flex-direction: column; height: 100%; }
    .v122-mentor-portrait { flex: 1; }
    .v122-mentor-id { margin-top: -30px; padding: 0 9px 7px; }
    .v122-lesson-index { min-width: 0; border-left: 0; border-top: 1px solid rgba(216, 184, 95, .24); }
    .v122-training-main:has(> .v126-chain-dossier:not([hidden])),
    .v122-training-main:has(> #v124-foundation-summary:not([hidden])) { grid-template-columns: minmax(0, 1.12fr) minmax(220px, .88fr); grid-template-rows: minmax(0, 1fr) auto; }
    .v122-training-main:has(> .v126-chain-dossier:not([hidden])) .v122-battle-board,
    .v122-training-main:has(> #v124-foundation-summary:not([hidden])) .v122-battle-board { grid-column: 1; grid-row: 1; }
    .v122-training-main > .v126-chain-dossier:not([hidden]),
    .v122-training-main > #v124-foundation-summary:not([hidden]) { grid-column: 2; grid-row: 1; align-self: stretch; }
    .v122-training-main:has(> .v126-chain-dossier:not([hidden])) .v122-instruction,
    .v122-training-main:has(> #v124-foundation-summary:not([hidden])) .v122-instruction { grid-column: 1 / -1; grid-row: 2; }
    .v122-instruction { padding-block: 6px; }
    .v122-instruction p { line-height: 1.25; }
    .v122-certificate { padding: 10px 22px; }
    .v122-certificate h2 { margin: 4px 0; font-size: 22px; }
    .v122-certificate p { font-size: 8px; line-height: 1.35; }
    .v122-certified-name { margin: 5px auto 3px; padding-block: 4px; font-size: 16px; }
    .v122-stamp { width: 48px; height: 48px; margin: 4px auto; font-size: 9px; }
    .v122-certificate .v122-primary { min-width: 160px; min-height: 34px; }
    .v122-confirm-panel,
    .v122-settings-panel { padding: 11px 16px !important; }
    .v122-confirm-mark { width: 38px !important; height: 38px !important; margin-bottom: 5px !important; font-size: 18px !important; }
    .v122-confirm-panel h2,
    .v122-settings-panel h2 { margin: 3px 0 5px !important; font-size: 17px !important; }
    .v122-confirm-panel p { font-size: 8px !important; line-height: 1.35 !important; }
    .v122-confirm-warning { margin-top: 6px !important; padding: 5px !important; }
    .v122-confirm-actions { grid-template-columns: 1fr 1fr !important; gap: 5px !important; margin-top: 7px !important; }
    .v122-confirm-actions button { min-height: 32px !important; }
    .v122-settings-summary { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 5px !important; margin: 7px 0 !important; }
    .v122-settings-stat { padding: 5px !important; }
    .v122-settings-actions { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 5px !important; }
    .v122-settings-actions button { min-height: 32px !important; }
    .v122-settings-close { width: 29px !important; height: 29px !important; }
}

@media (max-height: 300px), (max-width: 280px) {
    .v122-confirm-panel,
    .v122-settings-panel { overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; }
}

/* ---------- SHORT LANDSCAPE PRE-BATTLE ---------- */
@media (orientation: landscape) and (max-height: 500px) {
    #v112-login-loading { height: var(--v128-app-height) !important; max-height: var(--v128-app-height) !important; overflow: hidden !important; }
    .v112-load-shell { width: calc(100% - 14px) !important; height: calc(var(--v128-app-height) - 14px) !important; min-height: 0 !important; max-height: calc(var(--v128-app-height) - 14px) !important; grid-template-columns: minmax(180px, 36%) minmax(0, 64%) !important; overflow: hidden !important; }
    .v112-load-portrait { height: 100% !important; min-height: 0 !important; clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%) !important; }
    .v112-load-copy { height: 100% !important; min-height: 0 !important; padding: clamp(17px, 5dvh, 23px) 24px 8px 10px !important; overflow: hidden !important; }
    .v112-load-system { display: flex !important; gap: 8px !important; font-size: 6px !important; }
    .v112-load-rule { margin: 5px 0 7px !important; }
    #v112-load-name { margin: 3px 0 !important; padding-bottom: 4px !important; font-size: clamp(19px, 8dvh, 31px) !important; }
    #v112-load-role { margin-top: 2px !important; padding: 2px 5px !important; font-size: 7px !important; }
    #v112-load-copytext { min-height: 0 !important; margin: 5px 0 !important; overflow: hidden !important; display: -webkit-box; font-size: 7px !important; line-height: 1.35 !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .v112-tactical-file { grid-template-columns: 54px 1fr !important; gap: 2px 7px !important; padding: 5px 8px !important; }
    .v112-tactical-file span { font-size: 6px !important; }
    .v112-tactical-file b { font-size: 7px !important; line-height: 1.25 !important; }
    .v112-load-bottom { padding-top: 5px !important; }
    .v112-load-status { margin-bottom: 3px !important; font-size: 6px !important; }
    .v112-load-tip { margin-top: 3px !important; font-size: 6px !important; line-height: 1.2 !important; }
    #v112-load-skip { margin-top: 4px !important; min-height: 22px !important; padding: 3px 7px !important; font-size: 6px !important; }
    .v113-file-index { left: 12px !important; bottom: 8px !important; font-size: 6px !important; }
    .v113-file-index strong { font-size: 18px !important; }
    .v113-wax-seal { top: 42px !important; width: 46px !important; height: 46px !important; font-size: 17px !important; }

    #matching-screen { height: var(--v128-app-height) !important; max-height: var(--v128-app-height) !important; padding: 4px !important; overflow: hidden !important; }
    .v118-matching-shell { width: min(1060px, calc(100vw - 8px)) !important; height: calc(var(--v128-app-height) - 8px) !important; max-height: none !important; min-height: 0 !important; display: flex !important; flex-direction: column !important; padding: 17px 13px 7px !important; overflow: hidden !important; }
    .v118-matching-header { flex: 0 0 auto; margin-top: 2px !important; padding-bottom: 4px !important; font-size: 5px !important; }
    #matching-screen .matching-kicker { flex: 0 0 auto; margin: 4px 0 2px !important; font-size: 6px !important; }
    #matching-screen h1 { flex: 0 0 auto; margin: 0 0 3px !important; font-size: clamp(18px, 8dvh, 27px) !important; }
    .v118-matchup { flex: 1 1 0 !important; min-height: 0 !important; width: min(720px, 92%) !important; grid-template-columns: minmax(100px, 1fr) 54px minmax(100px, 1fr) !important; gap: 8px !important; }
    .v118-operative { height: 100% !important; min-height: 0 !important; display: grid !important; grid-template-rows: minmax(0, 1fr) auto auto !important; }
    .v118-operative-portrait { width: min(18vw, 140px) !important; height: 100% !important; min-height: 0 !important; max-height: calc(var(--v128-app-height) - 122px) !important; }
    .v118-operative-code { margin-top: 2px !important; font-size: 5px !important; }
    .v118-operative-name { min-height: 12px !important; margin-top: 2px !important; font-size: 8px !important; }
    .v118-link-core #matching-spinner { width: 44px !important; height: 44px !important; }
    .v118-link-core #matching-spinner::after { inset: 9px !important; }
    .v118-link-core #matching-spinner span { inset: 17px !important; }
    .v118-link-label { margin-top: 4px !important; font-size: 5px !important; }
    .v118-matching-status { flex: 0 0 auto; width: 90% !important; margin: 4px auto 0 !important; font-size: 6px !important; }
    #matching-screen .matching-progress-frame { flex: 0 0 auto; width: 90% !important; height: 4px !important; margin: 3px auto 0 !important; }
    #matching-screen .matching-seal { flex: 0 0 auto; margin: 3px auto 0 !important; padding-top: 3px !important; font-size: 4.5px !important; }

    #startup-overlay { height: var(--v128-app-height) !important; min-height: 0 !important; max-height: var(--v128-app-height) !important; padding: 4px 10px !important; overflow: hidden !important; }
    .v117-order-no { padding: 0 10px 3px !important; font-size: 6px !important; }
    #startup-overlay h1 { margin: 3px 0 1px !important; font-size: clamp(19px, 9dvh, 30px) !important; }
    .v117-toss-rule { margin: 2px 0 4px !important; font-size: 7px !important; line-height: 1.25 !important; }
    .toss-cards { gap: clamp(10px, 4vw, 36px) !important; }
    .toss-player-box { min-width: 80px !important; }
    .toss-player-box > span { gap: 1px !important; font-size: 6px !important; }
    .toss-player-box > span b { font-size: 7px !important; }
    .toss-card-visual { width: clamp(42px, 16dvh, 58px) !important; height: clamp(63px, 24dvh, 86px) !important; min-height: 0 !important; margin-top: 3px !important; border-width: 2px !important; }
    #toss-result-text { min-width: min(620px, 86vw) !important; min-height: 25px !important; margin: 4px 0 0 !important; padding: 4px 10px !important; font-size: clamp(9px, 4dvh, 13px) !important; }
    .v117-order-foot { margin-top: 3px !important; font-size: 5px !important; }

    .v61-fighter-meta { bottom: clamp(27px, 10dvh, 42px) !important; }
    .v61-fighter-name { margin-top: 4px !important; font-size: clamp(16px, 8dvh, 29px) !important; }
    .v61-fighter-role { display: none !important; }
    .v61-fighter-side { padding: 3px 6px !important; font-size: 6px !important; }
    .v61-turn-order-badge { margin-top: 4px !important; padding: 3px 7px !important; font-size: 7px !important; }
    .v61-clash-kicker { top: 7px !important; font-size: 6px !important; }
    .v61-clash-core { top: 45% !important; width: clamp(58px, 23dvh, 92px) !important; font-size: clamp(30px, 15dvh, 54px) !important; }
    .v61-battle-start { bottom: 5px !important; padding: 5px 10px 4px !important; font-size: clamp(15px, 8dvh, 28px) !important; }
    .v61-battle-start small { margin-top: 3px !important; font-size: 6px !important; }
}

/* ---------- SHORT LANDSCAPE BATTLE GRID ---------- */
@media (orientation: landscape) and (max-height: 500px) {
    body.v45-battle-active.v64-shocker-battle {
        height: var(--v128-app-height) !important;
        min-height: 0 !important;
        max-height: var(--v128-app-height) !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        grid-template-rows: auto auto auto minmax(0, 1fr) !important;
        gap: 2px !important;
        overflow: hidden !important;
    }
    body.v45-battle-active.v64-shocker-battle > h2 { grid-column: 1 / -1 !important; grid-row: 1 !important; min-height: 18px !important; padding-block: 1px !important; font-size: clamp(11px, 4dvh, 15px) !important; }
    body.v45-battle-active.v64-shocker-battle #turn-info { grid-column: 1 / -1 !important; grid-row: 2 !important; min-height: 16px !important; padding-block: 1px !important; font-size: clamp(8px, 3dvh, 11px) !important; }
    body.v45-battle-active.v64-shocker-battle #phase-bar { grid-column: 1 / -1 !important; grid-row: 3 !important; min-height: 22px !important; max-height: 25px !important; padding-block: 3px !important; font-size: clamp(8px, 3dvh, 10px) !important; }
    body.v45-battle-active.v64-shocker-battle .opponent-area { grid-column: 1 !important; grid-row: 4 !important; }
    body.v45-battle-active.v64-shocker-battle .player-area { grid-column: 2 !important; grid-row: 4 !important; }
    body.v45-battle-active.v64-shocker-battle .field-area { height: 100% !important; min-height: 0 !important; padding: 3px !important; overflow: hidden !important; }
    body.v45-battle-active.v64-shocker-battle .player-area { grid-template-rows: auto minmax(0, .8fr) auto auto minmax(0, 1fr) auto !important; }
    body.v45-battle-active.v64-shocker-battle .opponent-area { grid-template-rows: auto minmax(0, 1fr) auto !important; }
    body.v45-battle-active.v64-shocker-battle .card { flex-basis: clamp(31px, 7.5dvh, 40px) !important; width: clamp(31px, 7.5dvh, 40px) !important; height: clamp(46px, 11.2dvh, 60px) !important; min-height: 0 !important; max-height: 60px !important; font-size: clamp(10px, 3.8dvh, 14px) !important; }
    body.v45-battle-active.v64-shocker-battle .disposal-box { height: clamp(22px, 7.5dvh, 32px) !important; min-height: 0 !important; padding: 2px !important; }
    body.v45-battle-active.v64-shocker-battle .disposal-title { margin-bottom: 1px !important; font-size: clamp(6px, 2.3dvh, 8px) !important; }
    body.v45-battle-active.v64-shocker-battle .graveyard-zone,
    body.v45-battle-active.v64-shocker-battle .slash-zone { display: flex !important; max-height: 12px !important; overflow-x: auto !important; overflow-y: hidden !important; }
    body.v45-battle-active.v64-shocker-battle #main-action-dock .action-btn,
    body.v45-battle-active.v64-shocker-battle #main-action-dock .confirm-btn,
    body.v45-battle-active.v64-shocker-battle #main-action-dock .cancel-btn { min-height: 23px !important; padding: 2px !important; font-size: 7px !important; }
}

@media (prefers-reduced-motion: reduce) {
    #home-screen.v62-shocker-home *,
    #v122-onboarding * { scroll-behavior: auto !important; }
}
