/* =========================================================
   DVTV DigiVision Login Style Safe
   Cosmetic layer only. No authentication logic.
   ========================================================= */

body.dvtv-dv-login-page.dvtv-dv-login-guest {
    --dv-cyan: #42d9ff;
    --dv-blue: #168dff;
    --dv-deep: #020712;
    --dv-panel: rgba(6, 22, 41, .80);
    --dv-line: rgba(75, 205, 255, .45);
    --dv-text: #dff6ff;
    --dv-muted: #83a9bf;
    margin: 0 !important;
    min-height: 100vh !important;
    background: #020712 !important;
    color: var(--dv-text) !important;
    overflow-x: hidden;
}

/* Hide normal site chrome on the configured login page only. */
body.dvtv-dv-login-page.dvtv-dv-login-guest #header-container,
body.dvtv-dv-login-page.dvtv-dv-login-guest #navi,
body.dvtv-dv-login-page.dvtv-dv-login-guest #sidebar,
body.dvtv-dv-login-page.dvtv-dv-login-guest #footer,
body.dvtv-dv-login-page.dvtv-dv-login-guest .footer,
body.dvtv-dv-login-page.dvtv-dv-login-guest .breadcrumb,
body.dvtv-dv-login-page.dvtv-dv-login-guest .article-header,
body.dvtv-dv-login-page.dvtv-dv-login-guest .entry-title,
body.dvtv-dv-login-page.dvtv-dv-login-guest .date-tags,
body.dvtv-dv-login-page.dvtv-dv-login-guest .sns-share,
body.dvtv-dv-login-page.dvtv-dv-login-guest .sns-follow,
body.dvtv-dv-login-page.dvtv-dv-login-guest .author-box,
body.dvtv-dv-login-page.dvtv-dv-login-guest .go-to-top-button,
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-top-menu,
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-digivision-top-menu,
body.dvtv-dv-login-page.dvtv-dv-login-guest [class*="digivision-top-menu"] {
    display: none !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest #content,
body.dvtv-dv-login-page.dvtv-dv-login-guest .content,
body.dvtv-dv-login-page.dvtv-dv-login-guest .content-in,
body.dvtv-dv-login-page.dvtv-dv-login-guest #main,
body.dvtv-dv-login-page.dvtv-dv-login-guest .main,
body.dvtv-dv-login-page.dvtv-dv-login-guest article,
body.dvtv-dv-login-page.dvtv-dv-login-guest .article,
body.dvtv-dv-login-page.dvtv-dv-login-guest .entry-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-dv-scene {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.dvtv-dv-hero {
    position: absolute;
    inset: -2%;
    background:
        linear-gradient(180deg, rgba(2,8,18,.18), rgba(2,8,18,.58)),
        url('../images/hero-bg.png') center 46% / cover no-repeat;
    filter: saturate(.95) contrast(1.06) brightness(.78);
    transform: scale(1.03);
}

.dvtv-dv-vignette {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 39%, rgba(20,149,255,.11), transparent 25%),
        radial-gradient(circle at 50% 110%, rgba(0,169,255,.22), transparent 40%),
        linear-gradient(90deg, rgba(1,5,13,.80), transparent 28%, transparent 72%, rgba(1,5,13,.80)),
        linear-gradient(180deg, rgba(1,5,13,.30), transparent 36%, rgba(1,5,13,.55));
}

.dvtv-dv-grid {
    position: absolute;
    left: -10%;
    right: -10%;
    bottom: -17%;
    height: 58%;
    opacity: .30;
    transform: perspective(520px) rotateX(64deg);
    transform-origin: center top;
    background-image:
        linear-gradient(rgba(54,198,255,.25) 1px, transparent 1px),
        linear-gradient(90deg, rgba(54,198,255,.25) 1px, transparent 1px);
    background-size: 58px 58px;
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 28%, #000);
    mask-image: linear-gradient(to bottom, transparent, #000 28%, #000);
}

.dvtv-dv-stars {
    position: absolute;
    inset: 0;
    opacity: .35;
    background-image:
        radial-gradient(circle, rgba(147,224,255,.85) 0 1px, transparent 1.4px),
        radial-gradient(circle, rgba(70,184,255,.75) 0 1px, transparent 1.4px);
    background-size: 137px 137px, 211px 211px;
    background-position: 23px 31px, 87px 113px;
    animation: dvtvStarDrift 18s linear infinite;
}

.dvtv-dv-scan {
    position: absolute;
    left: 0;
    right: 0;
    top: -16%;
    height: 14%;
    opacity: .20;
    background: linear-gradient(to bottom, transparent, rgba(70,220,255,.14), rgba(70,220,255,.36), transparent);
    animation: dvtvScan 7s linear infinite;
}

.dvtv-dv-cursor-glow {
    position: absolute;
    width: 420px;
    height: 420px;
    margin: -210px 0 0 -210px;
    border-radius: 50%;
    opacity: 0;
    background: radial-gradient(circle, rgba(40,184,255,.12), rgba(40,184,255,.035) 45%, transparent 70%);
    transition: opacity .3s ease;
}

.dvtv-dv-brand-block {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: 34px;
    width: min(700px, calc(100vw - 40px));
    transform: translateX(-50%);
    text-align: center;
}

.dvtv-dv-flower-shell {
    position: relative;
    z-index: 3;
    width: 76px;
    height: 76px;
    margin: 0 auto 10px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,154,43,.20), rgba(7,21,38,.58) 50%, rgba(7,21,38,.12) 70%);
    border: 1px solid rgba(65,205,255,.50);
    box-shadow: 0 0 18px rgba(34,182,255,.35), inset 0 0 16px rgba(34,182,255,.12);
}

.dvtv-dv-flower-shell img {
    width: 46px;
    height: 46px;
    filter: drop-shadow(0 0 9px rgba(255,154,43,.72));
    animation: dvtvFlowerSpin 12s linear infinite;
}

.dvtv-dv-orbit {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 38px;
    border-radius: 50%;
    border: 1px solid rgba(62,200,255,.30);
}
.dvtv-dv-orbit::before,
.dvtv-dv-orbit::after {
    content: "";
    position: absolute;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #5be0ff;
    box-shadow: 0 0 9px #3fd7ff;
}
.dvtv-dv-orbit::before { left: 50%; top: -3px; }
.dvtv-dv-orbit::after { right: 8px; bottom: 8px; }
.dvtv-dv-orbit-a { width: 110px; height: 110px; margin: -55px; animation: dvtvOrbit 10s linear infinite; }
.dvtv-dv-orbit-b { width: 132px; height: 92px; margin: -46px 0 0 -66px; transform: rotate(28deg); animation: dvtvOrbitB 13s linear infinite reverse; }
.dvtv-dv-orbit-c { width: 94px; height: 132px; margin: -66px 0 0 -47px; transform: rotate(-31deg); animation: dvtvOrbitC 15s linear infinite; }

.dvtv-dv-kicker {
    position: relative;
    z-index: 4;
    margin-top: 3px;
    color: #6fe4ff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 5px;
    text-shadow: 0 0 11px rgba(65,208,255,.45);
}

.dvtv-dv-title {
    position: relative;
    z-index: 4;
    margin-top: 5px;
    color: rgba(224,247,255,.84);
    font-size: clamp(25px, 2.4vw, 39px);
    font-weight: 300;
    letter-spacing: 2px;
    line-height: 1;
    text-shadow: 0 0 18px rgba(47,190,255,.28);
}
.dvtv-dv-title strong { color: #35c7ff; font-weight: 700; }

.dvtv-dv-subtitle {
    position: relative;
    z-index: 4;
    margin-top: 8px;
    color: #789eb7;
    font: 9px/1.4 "Consolas", "SFMono-Regular", monospace;
    letter-spacing: 1.7px;
}

.dvtv-dv-status {
    position: relative;
    z-index: 4;
    display: flex;
    justify-content: center;
    gap: 23px;
    margin-top: 11px;
    color: #75dffb;
    font: 9px/1.2 "Consolas", monospace;
    letter-spacing: 1.1px;
}
.dvtv-dv-status span { white-space: nowrap; }
.dvtv-dv-status i {
    display: inline-block;
    width: 5px;
    height: 5px;
    margin-right: 6px;
    border-radius: 50%;
    background: #35ffc0;
    box-shadow: 0 0 8px #35ffc0;
    animation: dvtvPulse 1.9s ease-in-out infinite;
}

/* The original shortcode remains intact; only its box is restyled. */
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-wrap {
    position: relative !important;
    z-index: 10 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 254px 18px 86px !important;
    min-height: 100vh !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    color: var(--dv-text) !important;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card {
    position: relative !important;
    width: 390px !important;
    max-width: calc(100vw - 30px) !important;
    margin: 0 auto !important;
    overflow: visible !important;
    border: 1px solid rgba(74,201,255,.55) !important;
    border-top: 1px solid rgba(74,201,255,.76) !important;
    border-radius: 12px !important;
    background:
        linear-gradient(180deg, rgba(9,29,51,.92), rgba(4,16,31,.88)) !important;
    box-shadow:
        0 0 0 1px rgba(18,104,164,.18) inset,
        0 0 34px rgba(0,157,255,.18),
        0 28px 70px rgba(0,0,0,.34) !important;
    backdrop-filter: blur(12px);
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card::before,
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card::before {
    inset: 7px;
    border: 1px solid rgba(66,204,255,.08);
    border-radius: 8px;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card::after {
    left: 18px;
    right: 18px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #63ddff, transparent);
    box-shadow: 0 0 12px rgba(80,214,255,.65);
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card .dvtv-login-card-body {
    padding: 24px 25px 22px !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-group { margin-bottom: 16px !important; }
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-label {
    margin-bottom: 7px !important;
    color: #9bcce2 !important;
    font: 700 9px/1.2 "Consolas", monospace !important;
    letter-spacing: 1.7px !important;
    text-transform: uppercase;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-input {
    height: 44px !important;
    width: 100% !important;
    padding: 9px 13px !important;
    border: 1px solid rgba(84,166,206,.42) !important;
    border-radius: 6px !important;
    color: #ecfaff !important;
    background: rgba(3,15,29,.78) !important;
    box-shadow: inset 0 0 12px rgba(0,0,0,.20) !important;
    font-size: 14px !important;
    outline: none !important;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-input:focus {
    border-color: #4bd6ff !important;
    box-shadow: 0 0 0 2px rgba(58,203,255,.12), 0 0 15px rgba(42,191,255,.12) !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-password-toggle {
    color: #6fb5d4 !important;
    opacity: .8;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-remember { margin: 2px 0 15px !important; }
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-checkbox-label {
    color: #7eaac0 !important;
    font-size: 11px !important;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-checkbox-custom {
    width: 16px !important;
    height: 16px !important;
    border: 1px solid rgba(85,171,210,.52) !important;
    border-radius: 3px !important;
    background: rgba(4,18,33,.92) !important;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-checkbox:checked + .dvtv-login-checkbox-custom {
    border-color: #40d6ff !important;
    background: linear-gradient(135deg, #178bc4, #29c5f9) !important;
    box-shadow: 0 0 9px rgba(51,209,255,.40) !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-btn-primary {
    min-height: 42px !important;
    border: 1px solid rgba(88,220,255,.62) !important;
    border-radius: 5px !important;
    color: #e8fbff !important;
    background: linear-gradient(180deg, rgba(18,126,178,.98), rgba(8,74,121,.98)) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.10), 0 0 18px rgba(27,184,255,.18) !important;
    font: 700 11px/1 "Consolas", monospace !important;
    letter-spacing: 2px !important;
    text-transform: uppercase;
}
body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-btn-primary:hover {
    transform: translateY(-1px);
    border-color: #7be6ff !important;
    box-shadow: inset 0 1px rgba(255,255,255,.12), 0 0 24px rgba(36,198,255,.29) !important;
}

body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-message {
    margin: 0 0 14px !important;
    border-radius: 5px !important;
    font-size: 11px !important;
}

.dvtv-dv-hud {
    position: absolute;
    top: 36%;
    z-index: 2;
    width: 185px;
    padding: 12px 13px;
    border: 1px solid rgba(58,183,237,.24);
    background: linear-gradient(180deg, rgba(4,19,35,.46), rgba(4,19,35,.18));
    box-shadow: 0 0 22px rgba(21,154,214,.06) inset;
    color: #719bb2;
    font: 8px/1.3 "Consolas", monospace;
    letter-spacing: .8px;
}
.dvtv-dv-hud-left { left: 3vw; }
.dvtv-dv-hud-right { right: 3vw; }
.dvtv-dv-hud-cap {
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(67,192,242,.19);
    color: #5edcff;
    letter-spacing: 1.8px;
}
.dvtv-dv-hud > div:not(.dvtv-dv-hud-cap) {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 0;
}
.dvtv-dv-hud b { color: #b8e8f9; font-weight: 600; }
.dvtv-dv-hud b.ok { color: #50ffc2; text-shadow: 0 0 8px rgba(80,255,194,.35); }

.dvtv-dv-bottom-left,
.dvtv-dv-bottom-right {
    position: absolute;
    bottom: 18px;
    z-index: 2;
    color: #4e7892;
    font: 7px/1.2 "Consolas", monospace;
    letter-spacing: 1.3px;
}
.dvtv-dv-bottom-left { left: 24px; }
.dvtv-dv-bottom-right { right: 24px; }

@keyframes dvtvFlowerSpin { to { transform: rotate(360deg); } }
@keyframes dvtvOrbit { to { transform: rotate(360deg); } }
@keyframes dvtvOrbitB { to { transform: rotate(388deg); } }
@keyframes dvtvOrbitC { to { transform: rotate(329deg); } }
@keyframes dvtvPulse { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes dvtvScan { from { transform: translateY(-10vh); } to { transform: translateY(120vh); } }
@keyframes dvtvStarDrift { to { background-position: 160px 70px, -80px 240px; } }

@media (max-width: 1050px) {
    .dvtv-dv-hud { display: none; }
}

@media (max-width: 680px) {
    body.dvtv-dv-login-page.dvtv-dv-login-guest { overflow-y: auto; }
    .dvtv-dv-brand-block { top: 22px; }
    .dvtv-dv-flower-shell { width: 66px; height: 66px; }
    .dvtv-dv-flower-shell img { width: 40px; height: 40px; }
    .dvtv-dv-kicker { font-size: 8px; letter-spacing: 3px; }
    .dvtv-dv-title { font-size: 25px; }
    .dvtv-dv-subtitle { font-size: 7px; letter-spacing: 1px; }
    .dvtv-dv-status { gap: 10px; font-size: 7px; }
    body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-wrap { padding-top: 225px !important; padding-bottom: 55px !important; }
    body.dvtv-dv-login-page.dvtv-dv-login-guest .dvtv-login-form-card .dvtv-login-card-body { padding: 21px 18px 19px !important; }
    .dvtv-dv-bottom-left, .dvtv-dv-bottom-right { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .dvtv-dv-stars,
    .dvtv-dv-scan,
    .dvtv-dv-flower-shell img,
    .dvtv-dv-orbit { animation: none !important; }
}
