/* ==================================================
   [NSO Style Refined] 全局覆盖与基础设定
   保持原作质感 / 像素感 / 不改大架构
   ================================================== */

/* 🚀 突破宽度限制 */
.m-auto.max-w-3xl, 
.m-auto.max-w-2xl, 
.m-auto.md\:max-w-3xl, 
.m-auto.lg\:max-w-\[38rem\],
.m-auto.lg\:max-w-\[40rem\],
.m-auto.xl\:max-w-\[48rem\],
[class*="max-w-3xl"],
[class*="max-w-2xl"],
.group {
    max-width: 95% !important;
    width: 100% !important;
}

/* 🚀 隐藏原生背景 & 释放气泡内壳 */
.group .bg-gray-100\/90 { 
    background: transparent !important; 
    border: none !important; 
    box-shadow: none !important; 
    padding: 0 !important; 
}
.group .bg-gray-100\/90 .markdown-body { 
    display: block !important; 
    background: transparent !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
.group div:not(.bg-gray-100\/90) > .markdown-body {
    display: block !important;
    color: #333 !important;
}

@import url('https://fonts.googleapis.com/css2?family=DotGothic16&display=swap');

.nso-sys {
    --nso-pink: #ff77dd;
    --nso-pink-hi: #ffb7ee;
    --nso-pink-deep: #ff4fcf;
    --nso-cyan: #6ffaff;
    --nso-cyan-deep: #00d9ff;
    --nso-violet: #8d63ff;
    --nso-violet-deep: #6b38d1;
    --nso-black: #111111;
    --nso-dark: #202020;
    --nso-gray: #dfdfdf;
    --nso-gray-2: #cfcfcf;
    --nso-white: #ffffff;
    --nso-glass: rgba(255,255,255,0.68);
    --nso-glass-2: rgba(255,255,255,0.82);
    --nso-shadow-hard: 2px 2px 0 #000;
    --nso-shadow-pink: 0 0 0 1px rgba(255,119,221,0.35), 0 0 8px rgba(255,119,221,0.18);
    --nso-shadow-cyan: 0 0 0 1px rgba(111,250,255,0.35), 0 0 8px rgba(111,250,255,0.18);

    font-family: 'DotGothic16', 'MS PGothic', 'SimSun', monospace !important;
    color: #222 !important;
    position: relative !important;
    padding: 10px !important;
    -webkit-font-smoothing: none !important;
    line-height: 1.6 !important;
    text-shadow: none !important;
    image-rendering: pixelated !important;
    background:
        radial-gradient(circle at 12% 8%, rgba(255,183,238,0.25), transparent 18%),
        radial-gradient(circle at 88% 16%, rgba(111,250,255,0.14), transparent 20%),
        linear-gradient(180deg, rgba(255,255,255,0.62), rgba(255,255,255,0.38)) !important;
    border: 1px solid rgba(255,255,255,0.5) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.65),
        inset 0 0 18px rgba(255,255,255,0.16),
        0 0 0 1px rgba(255,119,221,0.08) !important;
}

/* 全局 CRT 屏幕扫描线滤镜 */
.crt-overlay {
    position: absolute !important;
    top: 0; left: 0; right: 0; bottom: 0;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.045),
            rgba(0, 0, 0, 0.045) 1px,
            transparent 1px,
            transparent 2px
        ),
        linear-gradient(90deg, rgba(255,80,180,0.03), rgba(0,255,255,0.025), rgba(255,80,180,0.03)) !important;
    mix-blend-mode: multiply !important;
    pointer-events: none !important;
    z-index: 9999 !important;
}

/* ==================================================
   🧩 1) Windows 98 视窗组件基类 (.win)
   ================================================== */
.nso-sys .win {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(239,239,239,0.88)) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        3px 3px 0 rgba(0,0,0,0.22),
        0 0 0 1px rgba(255,255,255,0.15),
        0 0 12px rgba(255,119,221,0.08) !important;
    margin-bottom: 16px !important;
    padding: 2px !important;
    position: relative !important;
    overflow: hidden !important;
}

.nso-sys .win::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.18), transparent 28%),
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.04) 0px,
            rgba(255,255,255,0.04) 1px,
            transparent 1px,
            transparent 3px
        ) !important;
    pointer-events: none !important;
    opacity: 0.7 !important;
}

/* 标题栏 */
.nso-sys .win .hd {
    background:
        repeating-linear-gradient(to bottom, #ff9ae9, #ff9ae9 1px, #ff79dd 1px, #ff79dd 2px),
        linear-gradient(90deg, rgba(255,255,255,0.14), transparent 50%, rgba(111,250,255,0.08)) !important;
    color: #fff !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    padding: 4px 8px !important;
    cursor: pointer !important;
    list-style: none !important;
    display: flex !important;
    align-items: center !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #000, -1px 1px 0 #000 !important;
    border-bottom: 2px solid #000 !important;
    position: relative !important;
    z-index: 2 !important;
}

.nso-sys .win .hd::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.18), transparent 40%) !important;
    pointer-events: none !important;
}

.nso-sys .win .hd::-webkit-details-marker {
    display: none !important;
}

.nso-sys .win .hd::after {
    content: 'X' !important;
    margin-left: auto !important;
    background:
        linear-gradient(180deg, #fefefe, #d5d5d5) !important;
    color: #000 !important;
    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;
    width: 18px !important;
    height: 18px !important;
    font-size: 12px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-shadow: none !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
}

.nso-sys .win .bd {
    padding: 12px !important;
    font-size: 14px !important;
    position: relative !important;
    z-index: 1 !important;
}

/* ==================================================
   🧩 2) 展示框 / Stage (.stg)
   ================================================== */
.nso-sys .stg {
    box-shadow:
        inset 1px 1px 0 #fff,
        inset -1px -1px 0 #808080,
        3px 3px 0 rgba(0,0,0,0.24),
        0 0 14px rgba(255,119,221,0.10) !important;
}

.nso-sys .stg-view {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    background-color: #000 !important;
    border: 2px inset #808080 !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.1),
        inset 0 0 18px rgba(0,0,0,0.45),
        inset 0 0 30px rgba(255,119,221,0.05) !important;
}

.nso-sys .stg-view::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.06), transparent 16%, transparent 84%, rgba(0,0,0,0.18)),
        radial-gradient(circle at 82% 16%, rgba(255,183,238,0.16), transparent 16%),
        radial-gradient(circle at 16% 10%, rgba(111,250,255,0.10), transparent 18%) !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

.nso-sys .stg-view::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 4px !important;
    background: linear-gradient(90deg, #ff5fb9, #ffb7ee 45%, #6ffaff 100%) !important;
    box-shadow: 0 0 6px rgba(255,119,221,0.5) !important;
    z-index: 12 !important;
}

/* 台词条 */
.nso-sys .stg-qt {
    position: absolute !important;
    bottom: 20px !important;
    left: 8px !important;
    right: 8px !important;
    background:
        linear-gradient(180deg, rgba(144,122,255,0.88), rgba(110,88,214,0.88)) !important;
    color: #fff !important;
    padding: 10px 12px !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-shadow:
        1px 1px 0 #000,
        -1px -1px 0 #000,
        1px -1px 0 #000,
        -1px 1px 0 #000,
        2px 2px 0 rgba(0,0,0,0.75) !important;
    z-index: 20 !important;
    border: 2px solid !important;
    border-color: rgba(255,255,255,0.55) rgba(40,20,80,0.85) rgba(40,20,80,0.85) rgba(255,255,255,0.55) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        0 0 0 1px rgba(255,119,221,0.10),
        0 2px 0 rgba(0,0,0,0.2) !important;
    backdrop-filter: blur(2px) !important;
}

.nso-sys .stg-qt::before {
    content: "ON AIR" !important;
    position: absolute !important;
    top: -10px !important;
    left: 10px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    color: #fff !important;
    background: #ff4fcf !important;
    border: 1px solid #000 !important;
    padding: 2px 5px !important;
    box-shadow: 1px 1px 0 #000 !important;
    text-shadow: none !important;
}

.nso-sys .stg-sp {
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 60% !important;
    height: 90% !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: bottom center !important;
    z-index: 5 !important;
    filter:
        drop-shadow(0 0 6px rgba(255,255,255,0.2))
        drop-shadow(0 0 10px rgba(255,119,221,0.15))
        drop-shadow(0 4px 8px rgba(0,0,0,0.45)) !important;
}

/* ==================================================
   🧩 3) 状态面板 (.st)
   ================================================== */
.st-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 15px !important;
    align-items: center !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(249,243,248,0.88)) !important;
    border: 2px inset #ccc !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.95),
        inset 0 0 12px rgba(255,119,221,0.06) !important;
}

.st-main {
    flex: 0 0 120px !important;
    text-align: center !important;
    padding: 10px !important;
    border-right: 2px dashed #ff77dd !important;
    position: relative !important;
}

.st-main::after {
    content: "" !important;
    position: absolute !important;
    top: 8px !important;
    bottom: 8px !important;
    right: -1px !important;
    width: 1px !important;
    background: rgba(255,255,255,0.75) !important;
}

.st-lbl {
    font-size: 12px !important;
    font-weight: 900 !important;
    color: #ff4fcf !important;
    margin-bottom: 5px !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #fff !important;
}

.st-num {
    font-size: 24px !important;
    font-weight: bold !important;
    color: #00d9ff !important;
    text-shadow:
        1px 1px 0 #000,
        0 0 6px rgba(111,250,255,0.24) !important;
    font-family: 'Arial Black', sans-serif !important;
}

.st-bars {
    flex: 1 !important;
    min-width: 200px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.bar-row {
    display: flex !important;
    align-items: center !important;
    font-size: 12px !important;
    font-weight: bold !important;
    color: #333 !important;
}

.bar-row span {
    width: 50px !important;
    margin-right: 5px !important;
}

.bar {
    flex: 1 !important;
    height: 14px !important;
    background:
        linear-gradient(180deg, #292929, #111) !important;
    border: 2px solid #000 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    position: relative !important;
    box-shadow:
        inset 0 2px 4px rgba(0,0,0,0.55),
        inset 0 0 0 1px rgba(255,255,255,0.06) !important;
}

.bar::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.10), transparent 45%) !important;
    pointer-events: none !important;
}

.fill {
    height: 100% !important;
    background-image:
        linear-gradient(-45deg, rgba(255,255,255,0.18) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.18) 50%, rgba(255,255,255,0.18) 75%, transparent 75%, transparent),
        linear-gradient(180deg, rgba(255,255,255,0.18), transparent 65%) !important;
    background-size: 14px 14px, auto !important;
    animation: stripMove 2s linear infinite !important;
    box-shadow: inset 0 0 4px rgba(255,255,255,0.2) !important;
}

.c-lv {
    background-color: #ff69c8 !important;
}
.c-st {
    background-color: #00e5ff !important;
}
.c-dk {
    background-color: #9a5cff !important;
}

@keyframes stripMove {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 14px 0, 0 0; }
}

.st-cond {
    width: 100% !important;
    background:
        linear-gradient(180deg, rgba(255,240,248,0.96), rgba(255,230,242,0.96)) !important;
    padding: 6px 10px !important;
    border-radius: 0 !important;
    font-size: 13px !important;
    color: #ff007f !important;
    font-weight: bold !important;
    border: 1px solid #ffb3d9 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        1px 1px 0 rgba(0,0,0,0.08) !important;
}

.bar-row i {
    width: 18px !important;
    height: 18px !important;
    background-size: cover !important;
    margin-right: 6px !important;
    display: inline-block !important;
    image-rendering: pixelated !important;
}
.ic-lv { background-image: url('https://i.postimg.cc/brrMgdBH/icon_status_love.png') !important; }
.ic-st { background-image: url('https://i.postimg.cc/wMMP23G2/icon_status_stress.png') !important; }
.ic-dk { background-image: url('https://i.postimg.cc/1XXTB4jK/icon_status_yami.png') !important; }

/* ==================================================
   🧩 4) SNS 推博系统 (.sns)
   ================================================== */
.sns-time {
    font-size: 12px !important;
    color: #6b6b6b !important;
    border-bottom: 2px double #d6c3d6 !important;
    padding-bottom: 5px !important;
    margin-bottom: 10px !important;
    background: linear-gradient(90deg, rgba(255,183,238,0.08), rgba(111,250,255,0.05)) !important;
}

.tw {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.95), rgba(248,248,248,0.95)) !important;
    border: 1px solid #ccc !important;
    padding: 10px !important;
    margin-bottom: 8px !important;
    box-shadow:
        2px 2px 0 rgba(0,0,0,0.1),
        inset 1px 1px 0 rgba(255,255,255,0.8) !important;
    position: relative !important;
}

.tw::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.18), transparent 35%) !important;
    pointer-events: none !important;
}

.tw.main {
    border-left: 4px solid #00e5ff !important;
}

.tw.main.dark {
    background:
        linear-gradient(180deg, #2e2a34, #1f1b24) !important;
    color: #fff !important;
    border-left: 4px solid #9a5cff !important;
    box-shadow:
        2px 2px 0 rgba(0,0,0,0.2),
        inset 0 0 12px rgba(255,119,221,0.08) !important;
}

.tw-h {
    display: flex !important;
    align-items: center !important;
    font-size: 13px !important;
    font-weight: bold !important;
    margin-bottom: 6px !important;
    color: #333 !important;
}
.tw.main.dark .tw-h {
    color: #d8d3ff !important;
}

.tw-c {
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.tw.rep {
    background: #f7f3f7 !important;
    border: none !important;
    border-top: 1px dashed #d6c3d6 !important;
    margin: -4px 0 8px 15px !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
    color: #555 !important;
}

.tw.rep .usr {
    color: #ff007f !important;
    font-weight: bold !important;
}

.tw-h .av {
    width: 28px !important;
    height: 28px !important;
    border-radius: 4px !important;
    background-size: cover !important;
    margin-right: 8px !important;
    display: inline-block !important;
    border: 1px solid #000 !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.45) !important;
    image-rendering: pixelated !important;
}
.av-cho { background-image: url('https://i.postimg.cc/NFNzt8SX/icon_cho.png') !important; }
.av-ame { background-image: url('https://i.postimg.cc/dtpLzcDr/icon_ame.png') !important; }

/* ==================================================
   🧩 5) 正文渲染区 (.nar) & 特效
   ================================================== */
.nar {
    position: relative !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,249,252,0.86)) !important;
    border: 2px solid #000 !important;
    padding: 40px 20px 20px 20px !important;
    margin-top: 10px !important;
    box-shadow:
        inset 0 0 10px rgba(0,0,0,0.08),
        inset 0 0 24px rgba(255,119,221,0.04),
        2px 2px 0 rgba(0,0,0,0.12) !important;
    backdrop-filter: blur(2px) !important;
    overflow: hidden !important;
}

.nar::before {
    content: 'Narrative_Thread.exe' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 28px !important;
    background:
        repeating-linear-gradient(to bottom, #ff9ae9, #ff9ae9 1px, #ff79dd 1px, #ff79dd 2px),
        linear-gradient(90deg, rgba(255,255,255,0.14), transparent 55%, rgba(111,250,255,0.08)) !important;
    color: #fff !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    padding: 0 8px !important;
    display: flex !important;
    align-items: center !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #000, -1px 1px 0 #000 !important;
    border-bottom: 2px solid #000 !important;
    box-sizing: border-box !important;
}

.nar::after {
    content: 'X' !important;
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    background: linear-gradient(180deg, #fefefe, #d5d5d5) !important;
    color: #000 !important;
    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;
    width: 18px !important;
    height: 18px !important;
    font-size: 12px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 10 !important;
    text-shadow: none !important;
}

.nar > p:first-of-type::first-letter {
    float: left !important;
    font-size: 3em !important;
    line-height: 0.8 !important;
    margin: 0 8px 0 0 !important;
    color: #ff4fcf !important;
    text-shadow:
        2px 2px 0 #6ffaff,
        0 0 6px rgba(255,119,221,0.18) !important;
}

.nar p {
    position: relative !important;
    z-index: 1 !important;
}

.dia {
    margin: 12px 0 !important;
    padding: 10px 14px !important;
    font-weight: bold !important;
    border: 2px solid !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(249,249,249,0.96)) !important;
    box-shadow:
        2px 2px 0 #000,
        inset 1px 1px 0 rgba(255,255,255,0.9) !important;
    transition: all 0.15s steps(2) !important;
    position: relative !important;
}

.dia::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.15), transparent 40%) !important;
    pointer-events: none !important;
}

.dia:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow:
        4px 4px 0px #000,
        0 0 8px rgba(111,250,255,0.35) !important;
}

.dia.cho {
    border-color: #00e5ff !important;
    color: #008b8b !important;
}
.dia.cho::before {
    content: "超天酱: " !important;
    color: #00e5ff !important;
    background: #000 !important;
    padding: 2px 6px !important;
    margin-right: 8px !important;
    font-size: 12px !important;
    box-shadow: 1px 1px 0 rgba(255,255,255,0.15) !important;
}

.dia.ame {
    border-color: #8d63ff !important;
    color: #4b0082 !important;
}
.dia.ame::before {
    content: "糖糖: " !important;
    color: #fff !important;
    background: #8d63ff !important;
    padding: 2px 6px !important;
    margin-right: 8px !important;
    font-size: 12px !important;
    box-shadow: 1px 1px 0 rgba(0,0,0,0.2) !important;
}

.dia.p {
    border-color: #555 !important;
    color: #222 !important;
    border-radius: 8px !important;
}
.dia.p::before {
    content: "阿P: " !important;
    color: #fff !important;
    background: #555 !important;
    padding: 2px 6px !important;
    margin-right: 8px !important;
    font-size: 12px !important;
}

.sys-msg {
    background:
        linear-gradient(180deg, #060606, #151515) !important;
    color: #00ff88 !important;
    font-family: monospace !important;
    padding: 4px 8px !important;
    border-left: 4px solid #00ff88 !important;
    margin: 10px 0 !important;
    font-size: 13px !important;
    animation: blink 2s infinite steps(2) !important;
    box-shadow:
        inset 0 0 6px rgba(0,255,136,0.08),
        0 0 6px rgba(0,255,136,0.12) !important;
}
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.76; }
}

.glitch {
    position: relative !important;
    display: inline-block !important;
    color: #fff !important;
    background: #000 !important;
    font-weight: bold !important;
    font-size: 24px !important;
    line-height: 1.3 !important;
    padding: 4px 8px !important;
    margin: 15px 0 !important;
    font-style: italic !important;
    border: 1px dotted red !important;
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.08),
        0 0 10px rgba(255,0,80,0.12) !important;
}

.glitch::before, .glitch::after {
    content: attr(data-text) !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: #000 !important;
}
.glitch::before {
    left: 2px !important;
    text-shadow: -1px 0 red !important;
    clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%) !important;
    animation: glitch-anim 2.5s infinite linear alternate-reverse !important;
}
.glitch::after {
    left: -2px !important;
    text-shadow: -1px 0 cyan !important;
    clip-path: polygon(0 80%, 100% 20%, 100% 100%, 0 100%) !important;
    animation: glitch-anim 3s infinite linear alternate-reverse !important;
}
@keyframes glitch-anim {
    0% { clip-path: polygon(0 2%, 100% 2%, 100% 5%, 0 5%); transform: translate(-2px, 1px); }
    20% { clip-path: polygon(0 15%, 100% 15%, 100% 15%, 0 15%); transform: translate(2px, -1px); }
    40% { clip-path: polygon(0 10%, 100% 10%, 100% 20%, 0 20%); transform: translate(-2px, 2px); }
    60% { clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%); transform: translate(2px, -2px); }
    80% { clip-path: polygon(0 30%, 100% 30%, 100% 50%, 0 50%); transform: translate(-1px, 1px); }
    100% { clip-path: polygon(0 60%, 100% 60%, 100% 60%, 0 60%); transform: translate(1px, -1px); }
}

/* ==================================================
   ✨ 侧边栏 X 按钮点击热区
   ================================================== */
.l-side[open] summary::before {
    content: '' !important;
    position: absolute !important;
    top: 4px !important;
    left: 290px !important;
    width: 30px !important;
    height: 30px !important;
    cursor: pointer !important;
    z-index: 1000 !important;
}

.r-side[open] summary::before {
    content: '' !important;
    position: absolute !important;
    top: 4px !important;
    right: 48px !important;
    width: 30px !important;
    height: 30px !important;
    cursor: pointer !important;
    z-index: 1000 !important;
}

.l-side[open] summary:hover ~ .win .hd::after,
.r-side[open] summary:hover ~ .win .hd::after {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    color: #fff !important;
    transform: scale(1.08) !important;
    transition: all 0.1s steps(2) !important;
}

/* ==================================================
   📱 侧边悬浮面板机制
   ================================================== */
.side {
    position: fixed !important;
    top: 20% !important;
    z-index: 1000 !important;
}
.side summary {
    list-style: none !important;
    position: absolute !important;
    width: 42px !important;
    height: 42px !important;

    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,0.95), transparent 24%),
        linear-gradient(180deg, #fff7fd, #dcd8e8) !important;

    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    font-size: 20px !important;
    cursor: pointer !important;
    z-index: 1001 !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        inset -1px -1px 0 rgba(128,128,128,0.55),
        2px 2px 0 rgba(0,0,0,0.26),
        0 0 10px rgba(255,119,221,0.14) !important;

    transition: all 0.12s steps(2) !important;
}

.side summary:hover {
    transform: translate(-1px, -1px) !important;
    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,1), transparent 24%),
        linear-gradient(180deg, #ffeffb, #cfffff) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        inset -1px -1px 0 rgba(128,128,128,0.45),
        3px 3px 0 rgba(0,0,0,0.28),
        0 0 12px rgba(255,119,221,0.22),
        0 0 8px rgba(111,250,255,0.16) !important;
}

.side[open] summary {
    background:
        linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    color: #fff !important;
    text-shadow: 1px 1px 0 #000 !important;
}
.side summary::-webkit-details-marker {
    display: none !important;
}
/* ==================================================
   📱 侧边悬浮面板：稳定底板修复 + NSO 原作质感统一
   解决展开时透明 / 底板忽隐忽现的问题
   ================================================== */

.side .win {
    display: none !important;
    width: 280px !important;

    /* 关键：给窗口本体一个不透明度更高的实体底板 */
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(236,232,242,0.98)) !important;

    /* 关键：强制创建自己的绘制层，减少 fixed + 伪元素导致的穿透 */
    isolation: isolate !important;
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;

    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        5px 5px 0 rgba(0,0,0,0.48),
        0 0 0 1px rgba(255,255,255,0.25),
        0 0 16px rgba(255,119,221,0.18),
        0 0 24px rgba(111,250,255,0.08) !important;

    position: relative !important;
    overflow: hidden !important;
}

/* 侧边栏展开时显示 */
.side[open] .win {
    display: block !important;
}

/* 新增：展开窗口的“亚克力底板” */
.side[open] .win::after {
    content: "" !important;
    position: absolute !important;
    inset: 4px !important;
    z-index: 0 !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,241,250,0.56)),
        radial-gradient(circle at 18% 12%, rgba(255,183,238,0.22), transparent 32%),
        radial-gradient(circle at 86% 18%, rgba(111,250,255,0.14), transparent 30%) !important;

    border: 1px solid rgba(255,255,255,0.72) !important;
    box-shadow:
        inset 0 0 0 1px rgba(0,0,0,0.04),
        inset 0 0 16px rgba(255,119,221,0.06) !important;

    pointer-events: none !important;
}

/* 确保标题和内容压在底板上方 */
.side .win .hd,
.side .win .bd {
    position: relative !important;
    z-index: 2 !important;
}

/* 避免全局 .win::before 盖住侧栏内容 */
.side .win::before {
    z-index: 1 !important;
    opacity: 0.45 !important;
    pointer-events: none !important;
}
/* ==================================================
   👤 左侧 Player_Data.ini 美化
   更像系统配置文件 / 存档读取窗口
   ================================================== */

.l-side .bd.txt-sm {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(246,242,250,0.88)) !important;
    border: 2px inset #d8d8d8 !important;
    padding: 12px !important;
    color: #222 !important;
    text-shadow: 1px 1px 0 rgba(255,255,255,0.8) !important;
}

/* 玩家名卡片 */
.l-side .bd.txt-sm p:first-child {
    background:
        linear-gradient(90deg, rgba(255,119,221,0.16), rgba(111,250,255,0.12)) !important;
    border: 1px solid rgba(0,0,0,0.18) !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.85),
        1px 1px 0 rgba(0,0,0,0.12) !important;
    padding: 6px 8px !important;
    margin: 0 0 8px 0 !important;
}

/* 身份、章节等资料行 */
.l-side .bd.txt-sm p {
    margin: 6px 0 !important;
    line-height: 1.45 !important;
}

/* 分隔线改成像素系统线 */
.l-side .bd.txt-sm hr {
    border: 0 !important;
    height: 2px !important;
    margin: 10px 0 !important;
    background:
        repeating-linear-gradient(
            90deg,
            #ff77dd 0,
            #ff77dd 4px,
            transparent 4px,
            transparent 8px
        ) !important;
    opacity: 0.75 !important;
}

/* STM / LTM 记忆块 */
.l-side .c-cyan,
.l-side .c-pink {
    display: block !important;
    padding: 7px 8px !important;
    border: 1px solid rgba(0,0,0,0.16) !important;
    background: rgba(255,255,255,0.62) !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.88),
        1px 1px 0 rgba(0,0,0,0.08) !important;
}

.l-side .c-cyan {
    color: #008b8b !important;
    border-left: 4px solid #00d9ff !important;
}

.l-side .c-pink {
    color: #ff007f !important;
    border-left: 4px solid #ff77dd !important;
}
/* ==================================================
   📱 右侧 Poketter.app 美化
   统一成粉蓝电子社交终端质感
   ================================================== */

.r-side .bd.sns {
    background:
        linear-gradient(180deg, rgba(250,252,255,0.92), rgba(255,242,250,0.90)) !important;
    border: 2px inset #d8d8d8 !important;
    padding: 10px !important;
    max-height: 62vh !important;
    overflow-y: auto !important;
}

/* SNS 顶部时间地点条 */
.r-side .sns-time {
    position: sticky !important;
    top: 0 !important;
    z-index: 5 !important;

    background:
        linear-gradient(90deg, rgba(255,119,221,0.22), rgba(111,250,255,0.18)),
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(239,245,250,0.96)) !important;

    border: 1px solid rgba(0,0,0,0.18) !important;
    border-left: 4px solid #ff77dd !important;
    padding: 6px 8px !important;
    margin: 0 0 10px 0 !important;

    color: #4a4a4a !important;
    font-weight: bold !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.92),
        1px 1px 0 rgba(0,0,0,0.1) !important;
}

/* 主推文：更像窗口内的帖子卡 */
.r-side .tw.main {
    border: 2px solid !important;
    border-color: #ffffff #8f8f8f #8f8f8f #ffffff !important;
    border-left: 5px solid #00e5ff !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,250,252,0.96)) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.92),
        2px 2px 0 rgba(0,0,0,0.16),
        0 0 8px rgba(111,250,255,0.08) !important;
}

/* 糖糖小号黑泥推文：保留暗色，但加像素屏幕质感 */
.r-side .tw.main.dark {
    border: 2px solid !important;
    border-color: #6f5e88 #000000 #000000 #6f5e88 !important;
    border-left: 5px solid #9a5cff !important;

    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,0.035),
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 3px
        ),
        linear-gradient(180deg, #302838, #1d1823) !important;

    color: #fff !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.12),
        inset 0 0 14px rgba(255,119,221,0.10),
        2px 2px 0 rgba(0,0,0,0.26),
        0 0 10px rgba(141,99,255,0.14) !important;
}

/* 评论区：收进线程感 */
.r-side .tw.rep {
    margin: -3px 0 8px 18px !important;
    padding: 6px 9px !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.76), rgba(247,243,249,0.76)) !important;

    border: 1px solid rgba(0,0,0,0.12) !important;
    border-left: 3px solid rgba(255,119,221,0.55) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.82),
        1px 1px 0 rgba(0,0,0,0.06) !important;
}

/* 推文头像统一像素边框 */
.r-side .tw-h .av {
    border: 2px solid #000 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.5),
        1px 1px 0 rgba(255,119,221,0.45) !important;
}

/* 右侧 SNS 滚动条统一 */
.r-side .bd.sns::-webkit-scrollbar {
    width: 12px !important;
    background: #dfdfdf !important;
    border-left: 2px solid #808080 !important;
}

.r-side .bd.sns::-webkit-scrollbar-thumb {
    background:
        linear-gradient(180deg, #fff, #d8d8d8) !important;
    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;
}

.r-side .bd.sns::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
}

.l-side { left: 0 !important; }
.l-side summary { left: 0 !important; }
.l-side .win { margin-left: 45px !important; }

.r-side { right: 0 !important; top: 10% !important; }
.r-side summary { right: 0 !important; }
.r-side .win {
    position: absolute !important;
    right: 45px !important;
    max-height: 70vh !important;
    overflow-y: auto !important;
}
.r-side .win::-webkit-scrollbar {
    width: 12px !important;
    background: #dfdfdf !important;
    border-left: 2px solid #808080 !important;
}
.r-side .win::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #ededed, #c8c8c8) !important;
    border: 1px solid #fff !important;
    border-right-color: #000 !important;
    border-bottom-color: #000 !important;
}

.c-cyan { color: #008b8b !important; }
.c-pink { color: #ff007f !important; }
.txt-sm { font-size: 12px !important; }

/* ==================================================
   🎵 精修版 BGM：从“外挂工具”改成“舞台监视器挂件”
   ================================================== */
.bgm-tray {
    position: absolute !important;
    top: 42px !important;
    right: 8px !important;
    z-index: 1000 !important;
    width: 210px !important;
    height: 52px !important;
    pointer-events: none !important;
}

.bgm-tray > * {
    pointer-events: auto !important;
}

.bgm-chk {
    display: none !important;
}

/* CD 按钮：更像亚克力挂件 / 房间配件，而不是硬核工具按钮 */
.bgm-cd-btn {
    position: absolute !important;
    top: 1px !important;
    right: -10px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 21px !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 35% 35%, rgba(255,255,255,0.9) 0 8%, rgba(255,255,255,0.38) 8%, rgba(255,183,238,0.4) 20%, rgba(255,119,221,0.95) 45%, rgba(143,99,255,0.92) 76%, rgba(50,20,90,1) 100%) !important;
    border: 2px solid #000 !important;
    box-shadow:
        inset 0 0 0 2px rgba(255,255,255,0.22),
        inset 0 0 10px rgba(255,255,255,0.18),
        2px 2px 0 rgba(0,0,0,0.45),
        0 0 10px rgba(255,119,221,0.18) !important;
    transition: all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    z-index: 1002 !important;
}

.bgm-cd-btn::before {
    content: "" !important;
    position: absolute !important;
    width: 9px !important;
    height: 9px !important;
    border-radius: 50% !important;
    background: linear-gradient(180deg, #f4f4f4, #c5c5c5) !important;
    border: 1px solid #000 !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.8) !important;
}

.bgm-cd-btn::after {
    content: "" !important;
    position: absolute !important;
    inset: 4px !important;
    border-radius: 50% !important;
    border: 1px dotted rgba(255,255,255,0.45) !important;
    opacity: 0.8 !important;
}

/* 面板主体：从黑客终端改成糖果电子设备 */
.bgm-panel {
    position: absolute !important;
    top: -1px !important;
    right: 0 !important;
    width: 196px !important;
    background:
        linear-gradient(180deg, rgba(252,247,251,0.98), rgba(231,228,236,0.98)) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        -4px 4px 0 rgba(0,0,0,0.28),
        0 0 0 1px rgba(255,255,255,0.15),
        0 0 12px rgba(255,119,221,0.12) !important;
    padding: 2px !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(20px) scale(0.98) !important;
    transform-origin: top right !important;
    transition: all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    z-index: 1001 !important;
    overflow: hidden !important;
}

.bgm-panel::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.18), transparent 35%),
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.03) 0px,
            rgba(255,255,255,0.03) 1px,
            transparent 1px,
            transparent 3px
        ) !important;
    pointer-events: none !important;
}

.bgm-cd-btn:has(.bgm-chk:checked) ~ .bgm-panel {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(0) scale(1) !important;
}

.bgm-cd-btn:has(.bgm-chk:checked) {
    right: 176px !important;
    background:
        radial-gradient(circle at 35% 35%, rgba(255,255,255,1) 0 8%, rgba(255,255,255,0.5) 8%, rgba(255,183,238,0.48) 20%, rgba(255,119,221,1) 45%, rgba(111,250,255,0.95) 76%, rgba(50,20,90,1) 100%) !important;
    box-shadow:
        inset 0 0 0 2px rgba(255,255,255,0.28),
        inset 0 0 10px rgba(255,255,255,0.2),
        2px 2px 0 rgba(0,0,0,0.45),
        0 0 12px rgba(255,119,221,0.22),
        0 0 10px rgba(111,250,255,0.18) !important;
    animation: spinCD 2.4s linear infinite !important;
}

@keyframes spinCD {
    100% { transform: rotate(360deg); }
}

.bgm-panel .hd {
    background:
        repeating-linear-gradient(to bottom, #8b6cff, #8b6cff 1px, #7355eb 1px, #7355eb 2px),
        linear-gradient(90deg, rgba(255,255,255,0.12), transparent 60%, rgba(111,250,255,0.10)) !important;
    color: #fff !important;
    font-size: 11px !important;
    padding: 4px 6px !important;
    font-weight: bold !important;
    letter-spacing: 1px !important;
    border-bottom: 1px solid #000 !important;
    white-space: nowrap !important;
    text-shadow: 1px 1px 0 #000 !important;
}

.bgm-panel .bd {
    padding: 6px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(237,233,242,0.92)) !important;
    position: relative !important;
}

.bgm-panel .bd::before {
    content: "NOW PLAYING" !important;
    display: block !important;
    font-size: 9px !important;
    line-height: 1 !important;
    margin-bottom: 4px !important;
    color: #ff4fcf !important;
    text-shadow: 1px 1px 0 rgba(255,255,255,0.8) !important;
}

.bgm-track {
    color: #00b8d4 !important;
    font-family: monospace !important;
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    margin-bottom: 4px !important;
    display: block !important;
    text-shadow:
        1px 1px 0 rgba(255,255,255,0.85),
        0 0 4px rgba(111,250,255,0.16) !important;
    background: rgba(255,255,255,0.55) !important;
    border: 1px solid rgba(0,0,0,0.12) !important;
    padding: 2px 4px !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.8) !important;
}

.bgm-audio {
    width: 100% !important;
    height: 30px !important;
    outline: none !important;
    filter:
        saturate(0.92)
        contrast(1.03) !important;
}

/* 让播放器开启时更像舞台的一部分 */
.bgm-cd-btn:has(.bgm-chk:checked) ~ .bgm-panel,
.bgm-cd-btn:has(.bgm-chk:checked) {
    will-change: transform !important;
}

.stg:has(.bgm-chk:checked) .stg-view::before {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.06), transparent 16%, transparent 84%, rgba(0,0,0,0.18)),
        radial-gradient(circle at 82% 16%, rgba(255,183,238,0.22), transparent 18%),
        radial-gradient(circle at 16% 10%, rgba(111,250,255,0.12), transparent 18%) !important;
}

.stg:has(.bgm-chk:checked) .stg-qt {
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        0 0 0 1px rgba(255,119,221,0.12),
        0 0 12px rgba(255,119,221,0.14),
        0 2px 0 rgba(0,0,0,0.2) !important;
}
/* ==================================================
   🪽 Angel Thinking：隐藏思维链，仅显示思考提示
   这版重点：
   1. 与下方窗口同宽对齐
   2. 去掉左侧爱心图标，保证标题真正居中
   3. 保留一点像素风动态感，但更克制
   ================================================== */

.nso-sys .angel-thinking {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 16px 0 !important;
    padding: 2px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.90), rgba(255,239,248,0.88)) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        3px 3px 0 rgba(0,0,0,0.22),
        0 0 10px rgba(255,119,221,0.14) !important;
}

/* details 默认箭头去掉 */
.nso-sys .angel-thinking > summary {
    list-style: none !important;
}
.nso-sys .angel-thinking > summary::-webkit-details-marker {
    display: none !important;
}

/* 标题栏：完全对齐普通 win 的宽度逻辑 */
.nso-sys .angel-thinking > .hd,
.nso-sys .angel-thinking > summary.hd {
    position: relative !important;
    min-height: 28px !important;
    padding: 4px 34px 4px 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    cursor: default !important;
    user-select: none !important;
    overflow: hidden !important;

    background:
        repeating-linear-gradient(
            to bottom,
            #ff9ae9,
            #ff9ae9 1px,
            #ff79dd 1px,
            #ff79dd 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.14), transparent 50%, rgba(111,250,255,0.08)) !important;

    color: #fff !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    letter-spacing: 1px !important;
    text-shadow:
        1px 1px 0 #000,
        -1px 1px 0 #000 !important;
    border-bottom: 2px solid #000 !important;

    animation: angelThinkingPulse 1.8s steps(2) infinite !important;
}

/* 去掉之前左侧爱心装饰 */
.nso-sys .angel-thinking > .hd::before,
.nso-sys .angel-thinking > summary.hd::before {
    display: none !important;
    content: none !important;
}

/* 右上角保留一个像素小提示块，但别抢戏 */
.nso-sys .angel-thinking > .hd::after,
.nso-sys .angel-thinking > summary.hd::after {
    content: "✦" !important;
    margin-left: 0 !important;
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;

    width: 18px !important;
    height: 18px !important;
    font-size: 11px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    background: linear-gradient(180deg, #fefefe, #e7d8ef) !important;
    color: #ff4fcf !important;
    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;
    text-shadow: none !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;

    animation: angelStarBlink 1.2s steps(2) infinite !important;
}

/* 真正思维链内容：彻底隐藏 */
.nso-sys .angel-thinking .thk-hidden,
.nso-sys .angel-thinking > .bd {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    pointer-events: none !important;
}

/* 禁止点击 */
.nso-sys .angel-thinking > summary.hd {
    pointer-events: none !important;
}

/* 底部细光条：作为“思考中”动态提示 */
.nso-sys .angel-thinking::after {
    content: "" !important;
    display: block !important;
    height: 4px !important;
    background: linear-gradient(
        90deg,
        rgba(255,119,221,0.15),
        rgba(255,255,255,0.95),
        rgba(111,250,255,0.65),
        rgba(255,119,221,0.18)
    ) !important;
    background-size: 200% 100% !important;
    border-top: 1px solid rgba(255,255,255,0.65) !important;
    animation: angelLoadingBar 2.2s linear infinite !important;
}

/* 如果你还想保留一点可爱感，把心收进这里，而不是放标题左边 */
.nso-sys .angel-thinking::before {
    content: "SYSTEM PROCESSING... ♡" !important;
    display: block !important;
    padding: 4px 8px !important;
    text-align: center !important;
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
    color: #8d63ff !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(255,241,250,0.82)) !important;
    border-top: 1px solid rgba(0,0,0,0.12) !important;
    text-shadow: 1px 1px 0 #fff !important;
}

/* 动画 */
@keyframes angelThinkingPulse {
    0%, 100% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.08);
    }
}

@keyframes angelStarBlink {
    0%, 100% {
        opacity: 1;
        transform: translateY(-50%) scale(1);
    }
    50% {
        opacity: 0.72;
        transform: translateY(-50%) scale(1.08);
    }
}

@keyframes angelLoadingBar {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* 移动端 */
@media screen and (max-width: 768px) {
    .nso-sys .angel-thinking {
        margin: 0 0 10px 0 !important;
    }

    .nso-sys .angel-thinking > .hd,
    .nso-sys .angel-thinking > summary.hd {
        font-size: 12px !important;
        padding: 4px 30px !important;
        letter-spacing: 0.5px !important;
    }

    .nso-sys .angel-thinking::before {
        font-size: 9px !important;
        letter-spacing: 0.5px !important;
    }
}
/* ==================================================
   🧬 STATUS TAG：异常状态标签系统
   用于替代原 .st-cond 当前状态行
   ================================================== */

.st-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    position: relative !important;
    overflow: visible !important;

    background:
        linear-gradient(180deg, rgba(255,245,252,0.98), rgba(245,238,255,0.96)) !important;
    border: 1px solid #ffb3d9 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        inset 0 0 12px rgba(255,119,221,0.08),
        1px 1px 0 rgba(0,0,0,0.08) !important;
}

.st-tags-label {
    font-size: 11px !important;
    font-weight: 900 !important;
    color: #ff007f !important;
    letter-spacing: 1px !important;
    margin-right: 2px !important;
    text-shadow: 1px 1px 0 #fff !important;
}

/* details 基础清理 */
.tag-pop {
    position: relative !important;
    display: inline-block !important;
    overflow: visible !important;
}

.tag-pop > summary {
    list-style: none !important;
    cursor: help !important;
    user-select: none !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 22px !important;
    padding: 3px 9px !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.5px !important;

    border: 2px solid #000 !important;
    box-shadow:
        2px 2px 0 rgba(0,0,0,0.55),
        inset 1px 1px 0 rgba(255,255,255,0.55) !important;

    transition:
        transform 0.15s steps(2),
        filter 0.15s steps(2),
        box-shadow 0.15s steps(2) !important;
}

.tag-pop > summary::-webkit-details-marker {
    display: none !important;
}

/* 通用 hover */
.tag-pop:hover > summary,
.tag-pop[open] > summary {
    transform: translate(-1px, -1px) !important;
    filter: brightness(1.08) contrast(1.05) !important;
    box-shadow:
        3px 3px 0 rgba(0,0,0,0.65),
        0 0 8px rgba(255,119,221,0.28),
        inset 1px 1px 0 rgba(255,255,255,0.65) !important;
}

/* 说明弹窗 */
.tag-desc {
    display: none !important;
    position: absolute !important;
    left: 0 !important;
    bottom: calc(100% + 8px) !important;
    z-index: 3000 !important;

    width: 230px !important;
    padding: 9px 10px !important;

    font-size: 12px !important;
    line-height: 1.45 !important;
    font-weight: bold !important;
    color: #222 !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(240,238,248,0.98)) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        3px 3px 0 rgba(0,0,0,0.55),
        inset 1px 1px 0 rgba(255,255,255,0.95),
        0 0 10px rgba(255,119,221,0.14) !important;
}

/* 小箭头 */
.tag-desc::after {
    content: "" !important;
    position: absolute !important;
    left: 14px !important;
    bottom: -7px !important;
    width: 10px !important;
    height: 10px !important;
    background: rgba(240,238,248,0.98) !important;
    border-right: 2px solid #000 !important;
    border-bottom: 2px solid #000 !important;
    transform: rotate(45deg) !important;
}

/* hover 或点击 open 都显示 */
.tag-pop:hover .tag-desc,
.tag-pop[open] .tag-desc {
    display: block !important;
    animation: tagDescBoot 0.18s steps(2) both !important;
}

@keyframes tagDescBoot {
    0% {
        opacity: 0;
        transform: translateY(4px) scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ==================================================
   四种 TAG 的独立视觉与动效
   ================================================== */

/* 1. 尝试了过量：失焦、闪烁、低稳定性 */
.tag-overdose > summary {
    color: #ffffff !important;
    background:
        repeating-linear-gradient(
            90deg,
            #3d3d3d 0px,
            #3d3d3d 4px,
            #5c4f66 4px,
            #5c4f66 8px
        ) !important;
    text-shadow:
        1px 1px 0 #000,
        -1px 0 0 rgba(111,250,255,0.65),
        1px 0 0 rgba(255,79,207,0.65) !important;
    animation: tagOverdoseBlur 2.4s steps(2) infinite !important;
}

@keyframes tagOverdoseBlur {
    0%, 100% {
        filter: blur(0px) contrast(1);
        transform: translate(0, 0);
    }
    35% {
        filter: blur(0.4px) contrast(1.15);
        transform: translate(1px, 0);
    }
    36% {
        filter: blur(0px) contrast(1);
        transform: translate(-1px, 0);
    }
    70% {
        opacity: 0.86;
    }
}

/* 2. 易燃天使：火花、压力、危险升温 */
.tag-flame > summary {
    color: #fff !important;
    background:
        linear-gradient(180deg, #ff9a3d, #ff3355 58%, #8b001a) !important;
    text-shadow:
        1px 1px 0 #000,
        0 0 5px rgba(255,240,120,0.6) !important;
    animation: tagFlame 0.9s steps(2) infinite !important;
}

.tag-flame > summary::before {
    content: "🔥" !important;
    margin-right: 4px !important;
    font-size: 12px !important;
}

@keyframes tagFlame {
    0%, 100% {
        box-shadow:
            2px 2px 0 rgba(0,0,0,0.55),
            0 0 4px rgba(255,70,40,0.35),
            inset 1px 1px 0 rgba(255,255,255,0.5);
    }
    50% {
        box-shadow:
            2px 2px 0 rgba(0,0,0,0.55),
            0 0 11px rgba(255,80,30,0.75),
            inset 1px 1px 0 rgba(255,255,255,0.65);
    }
}

/* 3. DARKER ANGEL：暗紫、侵蚀、轻微故障 */
.tag-dark > summary {
    color: #d8d3ff !important;
    background:
        linear-gradient(180deg, #2d2538, #120d1d) !important;
    text-shadow:
        1px 1px 0 #000,
        0 0 6px rgba(154,92,255,0.75) !important;
    border-color: #9a5cff #000 #000 #9a5cff !important;
    animation: tagDarkPulse 1.8s steps(2) infinite !important;
}

.tag-dark > summary::before {
    content: "◆" !important;
    color: #9a5cff !important;
    margin-right: 5px !important;
}

@keyframes tagDarkPulse {
    0%, 100% {
        letter-spacing: 0.5px;
        filter: brightness(1);
    }
    50% {
        letter-spacing: 1.4px;
        filter: brightness(1.18);
    }
}

/* 4. 爱因爱而崩坏：甜蜜、过饱和、心跳式危险 */
.tag-love > summary {
    color: #fff !important;
    background:
        linear-gradient(180deg, #ffb7ee, #ff4fcf 55%, #cc168f) !important;
    text-shadow:
        1px 1px 0 #000,
        0 0 6px rgba(255,255,255,0.45) !important;
    animation: tagLoveBeat 1.25s cubic-bezier(.2,.8,.2,1) infinite !important;
}

.tag-love > summary::before {
    content: "♡" !important;
    margin-right: 5px !important;
    color: #fff !important;
}

@keyframes tagLoveBeat {
    0%, 100% {
        transform: scale(1);
        filter: saturate(1);
    }
    45% {
        transform: scale(1.04);
        filter: saturate(1.35) brightness(1.08);
    }
    55% {
        transform: scale(0.99);
    }
}

/* 无异常状态 */
.tag-none {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 22px !important;
    padding: 3px 9px !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    color: #008b8b !important;

    background:
        linear-gradient(180deg, rgba(230,255,255,0.95), rgba(210,245,248,0.95)) !important;
    border: 2px solid !important;
    border-color: #ffffff #008b8b #008b8b #ffffff !important;
    box-shadow:
        2px 2px 0 rgba(0,0,0,0.2),
        inset 1px 1px 0 rgba(255,255,255,0.8) !important;
}

/* 移动端：说明框别太宽 */
@media screen and (max-width: 768px) {
    .st-tags {
        gap: 6px !important;
        padding: 7px !important;
    }

    .tag-pop > summary {
        font-size: 11px !important;
        padding: 3px 7px !important;
    }

    .tag-desc {
        width: 68vw !important;
        max-width: 260px !important;
        left: 0 !important;
        bottom: calc(100% + 7px) !important;
        font-size: 11px !important;
    }
}
/* ==================================================
   📱 移动端适配
   ================================================== */
@media screen and (max-width: 768px) {
    .m-auto.max-w-3xl,
    [class*="max-w-3xl"],
    .group {
        max-width: 100% !important;
        padding: 2px !important;
        width: 100% !important;
    }

    .nso-sys .win {
        margin-bottom: 8px !important;
    }

    .st-main {
        flex: 100% !important;
        border-right: none !important;
        border-bottom: 2px dashed #ff77dd !important;
        padding-bottom: 5px !important;
    }

    .st-main::after {
        display: none !important;
    }

    .r-side .win {
        width: 80vw !important;
        right: 40px !important;
    }

    .r-side[open] summary::before {
        right: 42px !important;
    }

    .bgm-tray {
        top: 40px !important;
        right: 6px !important;
        width: 180px !important;
        height: 46px !important;
    }

    .bgm-cd-btn {
        right: 0 !important;
        width: 40px !important;
        height: 40px !important;
        font-size: 19px !important;
    }

    .bgm-panel {
        width: 166px !important;
    }

    .bgm-chk:checked ~ .bgm-cd-btn {
        right: 148px !important;
    }

    .nso-sys .stg-qt {
        font-size: 14px !important;
        padding: 8px 10px !important;
        bottom: 18px !important;
    }
}

  /* --- Characters: Ame --- */
.ti.ame.angry       { background-image: url('https://i.postimg.cc/hGLgn0cj/Ame-Angry.png') !important; }
.ti.ame.smile       { background-image: url('https://i.postimg.cc/xdvYQPnj/Ame-Happy.png') !important; }
.ti.ame.normal      { background-image: url('https://i.postimg.cc/cJRZWc03/Ame-Normal.png') !important; }
.ti.ame.sad         { background-image: url('https://i.postimg.cc/1zGPSKsX/Ame-Sad.png') !important; }
.ti.ame.shy         { background-image: url('https://i.postimg.cc/mrYR4SB2/Ame-Shy.png') !important; }
.ti.ame.surprised   { background-image: url('https://i.postimg.cc/wBXHzkgy/Ame-Surprised.png') !important; }

/* --- Characters: Cho --- */
.ti.cho.angry       { background-image: url('https://i.postimg.cc/7L3D4NwS/Cho-Angry.png') !important; }
.ti.cho.smile       { background-image: url('https://i.postimg.cc/nL4Zx1pD/Cho-Happy.png') !important; }
.ti.cho.normal      { background-image: url('https://i.postimg.cc/KYPFb5x5/Cho-Normal.png') !important; }
.ti.cho.sad         { background-image: url('https://i.postimg.cc/KYPFb5xQ/Cho-Sad.png') !important; }
.ti.cho.shy         { background-image: url('https://i.postimg.cc/V6zwkbkt/Cho-Shy.png') !important; }
.ti.cho.surprised   { background-image: url('https://i.postimg.cc/26CYSBSn/Cho-Surprised.png') !important; }

/* --- Backgrounds --- */
.bg.convenience-store { background-image: url('https://i.postimg.cc/xTnf1hcd/Convenience-Store.png'); }
.bg.cross-street      { background-image: url('https://i.postimg.cc/qM4JvSzv/Cross-Street.png'); }
.bg.outdoor-day       { background-image: url('https://i.postimg.cc/15B9nBqn/Out-Door-Day.png'); }
.bg.outdoor-dusk      { background-image: url('https://i.postimg.cc/MK5WM5QV/Out-Door-Dusk.png'); }
.bg.outdoor-night     { background-image: url('https://i.postimg.cc/28GzbGZH/Out-Door-Night.png'); }
.bg.room              { background-image: url('https://i.postimg.cc/m2jbzjHV/Room.png'); }
.bg.shopping-mall     { background-image: url('https://i.postimg.cc/zX7Jb7gQ/Shopping-Mall.png'); }
.bg.street-night      { background-image: url('https://i.postimg.cc/7ZLqgz3K/Street-at-night.png'); }
/* --- Characters: Ame --- */
.ti.ame.angry       { background-image: url('https://i.postimg.cc/hGLgn0cj/Ame-Angry.png') !important; }
.ti.ame.smile       { background-image: url('https://i.postimg.cc/xdvYQPnj/Ame-Happy.png') !important; }
.ti.ame.normal      { background-image: url('https://i.postimg.cc/cJRZWc03/Ame-Normal.png') !important; }
.ti.ame.sad         { background-image: url('https://i.postimg.cc/1zGPSKsX/Ame-Sad.png') !important; }
.ti.ame.shy         { background-image: url('https://i.postimg.cc/mrYR4SB2/Ame-Shy.png') !important; }
.ti.ame.surprised   { background-image: url('https://i.postimg.cc/wBXHzkgy/Ame-Surprised.png') !important; }

/* --- Characters: Cho --- */
.ti.cho.angry       { background-image: url('https://i.postimg.cc/7L3D4NwS/Cho-Angry.png') !important; }
.ti.cho.smile       { background-image: url('https://i.postimg.cc/nL4Zx1pD/Cho-Happy.png') !important; }
.ti.cho.normal      { background-image: url('https://i.postimg.cc/KYPFb5x5/Cho-Normal.png') !important; }
.ti.cho.sad         { background-image: url('https://i.postimg.cc/KYPFb5xQ/Cho-Sad.png') !important; }
.ti.cho.shy         { background-image: url('https://i.postimg.cc/V6zwkbkt/Cho-Shy.png') !important; }
.ti.cho.surprised   { background-image: url('https://i.postimg.cc/26CYSBSn/Cho-Surprised.png') !important; }

/* --- Backgrounds --- */
.bg.convenience-store { background-image: url('https://i.postimg.cc/xTnf1hcd/Convenience-Store.png'); }
.bg.cross-street      { background-image: url('https://i.postimg.cc/qM4JvSzv/Cross-Street.png'); }
.bg.outdoor-day       { background-image: url('https://i.postimg.cc/15B9nBqn/Out-Door-Day.png'); }
.bg.outdoor-dusk      { background-image: url('https://i.postimg.cc/MK5WM5QV/Out-Door-Dusk.png'); }
.bg.outdoor-night     { background-image: url('https://i.postimg.cc/28GzbGZH/Out-Door-Night.png'); }
.bg.room              { background-image: url('https://i.postimg.cc/m2jbzjHV/Room.png'); }
.bg.shopping-mall     { background-image: url('https://i.postimg.cc/zX7Jb7gQ/Shopping-Mall.png'); }
.bg.street-night      { background-image: url('https://i.postimg.cc/7ZLqgz3K/Street-at-night.png'); }
/* ==================================================[NSO Style] 玩家输入气泡 · Win98 USER_INPUT.exe
   ================================================== */

/* 玩家侧气泡主体 */
.bg-gray-100\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\/90) {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,244,250,0.90)) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        3px 3px 0 rgba(0,0,0,0.22),
        0 0 12px rgba(111,250,255,0.10) !important;
    padding: 2px !important;
    position: relative !important;
    overflow: hidden !important;
    font-family: 'DotGothic16', 'MS PGothic', 'SimSun', monospace !important;
    -webkit-font-smoothing: none !important;
    image-rendering: pixelated !important;
}

/* 左侧卡带竖条 */
.bg-gray-100\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\/90)::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 5px !important;
    height: 100% !important;
    background: linear-gradient(180deg, #6ffaff, #00d9ff 50%, #6ffaff) !important;
    border-right: 1px solid #000 !important;
    z-index: 2 !important;
}

/* 标题栏 */
.bg-gray-100\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\/90)::after {
    content: "USER_INPUT.exe" !important;
    position: absolute !important;
    top: 0 !important;
    left: 5px !important;
    right: 0 !important;
    height: 22px !important;
    background:
        repeating-linear-gradient(to bottom, #6ffaff, #6ffaff 1px, #00d9ff 1px, #00d9ff 2px),
        linear-gradient(90deg, rgba(255,255,255,0.14), transparent 55%, rgba(255,119,221,0.08)) !important;
    color: #000 !important;
    font-weight: 900 !important;
    font-size: 12px !important;
    font-family: 'DotGothic16', monospace !important;
    padding: 0 6px !important;
    display: flex !important;
    align-items: center !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 rgba(255,255,255,0.6) !important;
    border-bottom: 2px solid #000 !important;
    box-sizing: border-box !important;z-index: 2 !important;
    pointer-events: none !important;
}

/* 文本内容区：留出标题栏高度 */
.bg-gray-100\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\/90) .markdown-body {
    margin-top: 22px !important;
    margin-left: 5px !important;
    padding: 8px 10px !important;
    font-family: 'DotGothic16', 'MS PGothic', 'SimSun', monospace !important;
    font-size: 14px !important;
    color: #1a1a2e !important;
    line-height: 1.6 !important;
    -webkit-font-smoothing: none !important;
    background: transparent !important;
    position: relative !important;
    z-index: 1 !important;
}

/* ==================================================
   [NSO Style] 输入框 · Win98 Inset
   ================================================== */

/* 文本输入区域 */
textarea,
input[type="text"],
[contenteditable="true"] {
    font-family: 'DotGothic16', 'MS PGothic', monospace !important;
    font-size: 14px !important;
    color: #1a1a2e !important;
    background:
        linear-gradient(180deg, #e8e8e8, #f4f4f4 4px, #ffffff) !important;
    border: 2px solid !important;
    border-color: #808080 #ffffff #ffffff #808080 !important;
    box-shadow:
        inset 1px 1px 0 #000000,
        inset -1px -1px 0 #dfdfdf !important;
    border-radius: 0 !important;
    padding: 6px 8px !important;
    outline: none !important;
    caret-color: #ff4fcf !important;
    -webkit-font-smoothing: none !important;
    image-rendering: pixelated !important;
    transition: box-shadow 0.1s steps(2) !important;
}

textarea:focus,
input[type="text"]:focus,
[contenteditable="true"]:focus {
    box-shadow:
        inset 1px 1px 0 #000000,
        inset -1px -1px 0 #dfdfdf,
        0 0 0 1px rgba(111,250,255,0.45),
        0 0 8px rgba(111,250,255,0.18) !important;
}

/* ==================================================
   [NSO Style] 发送/操作按钮 · Win98 Pixel Button
   ================================================== */

button:not(.MuiButtonBase-root),
[role="button"]:not(.MuiButtonBase-root) {
    font-family: 'DotGothic16', monospace !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    color: #000 !important;
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.2) !important;
    border-radius: 0 !important;
    padding: 4px 12px !important;
    cursor: pointer !important;
    transition: all 0.05s steps(1) !important;
    -webkit-font-smoothing: none !important;
    image-rendering: pixelated !important;
    letter-spacing: 0.5px !important;
}

button:not(.MuiButtonBase-root):hover,
[role="button"]:not(.MuiButtonBase-root):hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    color: #000 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.2) !important;
}

button:not(.MuiButtonBase-root):active,
[role="button"]:not(.MuiButtonBase-root):active {
    border-color: #000000 #ffffff #ffffff #000000 !important;
    box-shadow: inset 1px 1px 0 #808080 !important;
    transform: translate(2px, 2px) !important;
}

/* ==================================================
   [NSO Style] 底部附加元素
   ================================================== */

/* 复制/编辑/删除按钮 */
.MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary {
    font-family: 'DotGothic16', monospace !important;
    font-size: 11px !important;
    color: #6b38d1 !important;
    border-radius: 0 !important;
    padding: 2px 6px !important;
    min-width: unset !important;
    letter-spacing: 0.5px !important;
    transition: all 0.05s steps(1) !important;
    -webkit-font-smoothing: none !important;
}

.MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary:hover {
    color: #ff4fcf !important;
    background: rgba(255,119,221,0.08) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

/* 模型名称 */
.MuiTypography-root.MuiTypography-body2.css-6c0gf2 {
    font-family: 'DotGothic16', monospace !important;
    font-size: 11px !important;
    color: #8d63ff !important;
    letter-spacing: 1px !important;
    -webkit-font-smoothing: none !important;
}

/* Token消耗 */
.text-orange-500 {
    font-family: 'DotGothic16', monospace !important;
    font-size: 11px !important;
    color: #00b8d4 !important;
    letter-spacing: 0.5px !important;
    -webkit-font-smoothing: none !important;
}

/* ==================================================
   [NSO Style] 加载动画 · Win98 沙漏 (SMIL SVG)
   ================================================== */

/* 隐藏默认加载点 */
.style_dot-flashing__8L91Q.style_text__zGhNq {
    display: none !important;
}

/* 父容器 */
.flex.items-center.justify-center.w-6.h-5 {
    position: relative !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
}

/* SMIL SVG 沙漏：::before 承载图像，::after 承载像素边框装饰 */
.flex.items-center.justify-center.w-6.h-5::before {
    content: "" !important;
    position: absolute !important;
    width: 24px !important;
    height: 24px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3C!-- 沙漏外框 --%3E%3Crect x='4' y='2' width='16' height='2' fill='%23000'/%3E%3Crect x='4' y='20' width='16' height='2' fill='%23000'/%3E%3Crect x='4' y='2' width='2' height='4' fill='%23000'/%3E%3Crect x='18' y='2' width='2' height='4' fill='%23000'/%3E%3Crect x='4' y='18' width='2' height='4' fill='%23000'/%3E%3Crect x='18' y='18' width='2' height='4' fill='%23000'/%3E%3C!-- 上半沙 --%3E%3Cpolygon points='6,6 18,6 12,12' fill='%23ff79dd'/%3E%3C!-- 下半沙 --%3E%3Cpolygon points='8,18 16,18 12,13' fill='%236ffaff'/%3E%3C!-- 中间流沙粒 --%3E%3Crect x='11' y='12' width='2' height='1' fill='%23ff4fcf'%3E%3Canimate attributeName='y' values='12;13;14;15;16;17;12' dur='1.2s' repeatCount='indefinite' calcMode='discrete'/%3E%3Canimate attributeName='opacity' values='1;1;1;1;1;0;0' dur='1.2s' repeatCount='indefinite' calcMode='discrete'/%3E%3C/rect%3E%3C!-- 整体翻转动画 --%3E%3CanimateTransform attributeName='transform' type='rotate' values='0 12 12;0 12 12;0 12 12;180 12 12;180 12 12;180 12 12;360 12 12' dur='3.6s' repeatCount='indefinite' calcMode='discrete' additive='sum'/%3E%3C/svg%3E") !important;background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    image-rendering: pixelated !important;
}

/* 像素边框装饰圈 */
.flex.items-center.justify-center.w-6.h-5::after {
    content: "" !important;
    position: absolute !important;
    width: 30px !important;
    height: 30px !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.5),
        0 0 6px rgba(255,119,221,0.18) !important;
    pointer-events: none !important;
}

/* 移动端适配 */
@media (max-width: 480px) {
    .flex.items-center.justify-center.w-6.h-5 {
        width: 26px !important;
        height: 26px !important;
    }
    .flex.items-center.justify-center.w-6.h-5::before {
        width: 20px !important;
        height: 20px !important;
    }
    .flex.items-center.justify-center.w-6.h-5::after {
        width: 26px !important;
        height: 26px !important;
    }
}

/* 低动效模式：降低翻转频率 */
@media (prefers-reduced-motion: reduce) {
    .flex.items-center.justify-center.w-6.h-5::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='2' width='16' height='2' fill='%23000'/%3E%3Crect x='4' y='20' width='16' height='2' fill='%23000'/%3E%3Crect x='4' y='2' width='2' height='4' fill='%23000'/%3E%3Crect x='18' y='2' width='2' height='4' fill='%23000'/%3E%3Crect x='4' y='18' width='2' height='4' fill='%23000'/%3E%3Crect x='18' y='18' width='2' height='4' fill='%23000'/%3E%3Cpolygon points='6,6 18,6 12,12' fill='%23ff79dd'/%3E%3Cpolygon points='8,18 16,18 12,13' fill='%236ffaff'/%3E%3CanimateTransform attributeName='transform' type='rotate' values='0 12 12;180 12 12;360 12 12' dur='8s' repeatCount='indefinite' calcMode='discrete' additive='sum'/%3E%3C/svg%3E") !important;
    }
}
/* ==================================================
   [NSO Fix] 1. 输入框外层容器透明化================================================== */

.w-full.overflow-y-auto.p-\[5\.5px\].max-h-\[150px\] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
/* ==================================================
   [NSO Fix] 1. 输入框外层容器透明化================================================== */

.w-full.overflow-y-auto.p-\[5\.5px\].max-h-\[150px\] {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* ==================================================
   [NSO Fix] 2. 平台功能按钮 · Win98 Pixel Button
   ================================================== */

.flex.items-center.gap-2.pb-2 > button {
    font-family: 'DotGothic16', monospace !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    color: #000 !important;
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.2) !important;
    border-radius: 0 !important;
    padding: 4px 12px !important;
    cursor: pointer !important;
    transition: all 0.05s steps(1) !important;
    -webkit-font-smoothing: none !important;
    image-rendering: pixelated !important;
    letter-spacing: 0.5px !important;
}

.flex.items-center.gap-2.pb-2 > button:hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    color: #000 !important;
}

.flex.items-center.justify-between.gap-2 > button,
.flex.items-center.gap-2 > button {
    font-family: 'DotGothic16', monospace !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    color: #000 !important;
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.2) !important;
    border-radius: 0 !important;
    padding: 4px 10px !important;
    cursor: pointer !important;
    -webkit-font-smoothing: none !important;
    image-rendering: pixelated !important;
}

.flex.items-center.justify-between.gap-2 > button:hover,
.flex.items-center.gap-2 > button:hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    color: #000 !important;
}

.flex.items-center.justify-between.gap-2 > button:active,
.flex.items-center.gap-2 > button:active,
.flex.items-center.gap-2.pb-2 > button:active {
    border-color: #000000 #ffffff #ffffff #000000 !important;
    box-shadow: inset 1px 1px 0 #808080 !important;
    transform: translate(2px, 2px) !important;
}
/* ==================================================[NSO Style] TOPBAR · 顶部栏 · TASKBAR.exe
   ================================================== */

/* 顶部栏主容器：Win98任务栏质感 */
.sticky.w-full.top-0.flex.items-center {
    background:
        linear-gradient(180deg, rgba(240,235,245,0.97), rgba(220,215,230,0.97)) !important;
    border-bottom: 2px solid !important;
    border-color: #000 !important;
    box-shadow:
        inset 0 1px 0 #ffffff,
        inset 0 -1px 0 #808080,
        0 2px 0 rgba(0,0,0,0.12),
        0 3px 0 rgba(255,119,221,0.18) !important;
    font-family: 'DotGothic16', 'MS PGothic', monospace !important;
    position: relative !important;
}

/* 顶部栏底部装饰线（粉→青，与.nar::after呼应） */
.sticky.w-full.top-0.flex.items-center::after {
    content: "" !important;
    position: absolute !important;
    bottom: -4px !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, #ff5fb9, #ffb7ee 45%, #6ffaff 100%) !important;
    box-shadow: 0 0 6px rgba(255,119,221,0.35) !important;
    pointer-events: none !important;
}

/* 模型选择器：下拉控件样式 */
#ai-model-selector .group.flex.items-center {
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        inset -1px -1px 0 rgba(0,0,0,0.15) !important;
    border-radius: 0 !important;
    padding: 2px 6px !important;
    transition: all 0.05s steps(1) !important;
    position: relative !important;
}

#ai-model-selector .group.flex.items-center:hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    border-color: #ffffff #000 #000 #ffffff !important;
}

#ai-model-selector .group.flex.items-center:active {
    border-color: #808080 #ffffff #ffffff #808080 !important;
    box-shadow: inset 1px 1px 0 #808080 !important;
    transform: translate(1px, 1px) !important;
}

/* 模型名称：glitch色差文字 + 状态灯 */
#ai-model-selector .truncate.text-\[13px\] {
    font-family: 'DotGothic16', monospace !important;
    font-size: 13px !important;
    color: #1a1a2e !important;
    letter-spacing: 0.5px !important;
    -webkit-font-smoothing: none !important;
    /* 精致glitch：红青1px错位 */
    text-shadow:
        1px 0 rgba(255,80,180,0.55),
        -1px 0 rgba(111,250,255,0.45) !important;
    position: relative !important;
}

/* 模型名称左侧状态灯（粉色呼吸） */
#ai-model-selector .truncate.text-\[13px\]::before {
    content: "" !important;
    display: inline-block !important;
    width: 6px !important;
    height: 6px !important;
    background: #ff4fcf !important;
    border: 1px solid #000 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.6),
        0 0 4px rgba(255,79,207,0.6) !important;
    margin-right: 5px !important;
    vertical-align: middle !important;
    image-rendering: pixelated !important;
    animation: statusLedBlink 2s steps(2) infinite !important;
}

@keyframes statusLedBlink {
    0%, 100% { opacity: 1; box-shadow: inset 1px 1px 0 rgba(255,255,255,0.6), 0 0 4px rgba(255,79,207,0.6); }
    50% { opacity: 0.6; box-shadow: inset 1px 1px 0 rgba(255,255,255,0.3), 0 0 2px rgba(255,79,207,0.2); }
}

/* 下拉箭头 */
#ai-model-selector .shrink-0.flex.items-center svg {
    color: #6b38d1 !important;
    transition: transform 0.1s steps(2) !important;
}

#ai-model-selector .group.flex.items-center:hover .shrink-0.flex.items-center svg {
    transform: translateY(2px) !important;
}

/* 设置按钮：Win98工具栏图标按钮 */
#header-setting-button {
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
    border-radius: 0 !important;
    padding: 3px 5px !important;
    transition: all 0.05s steps(1) !important;
}

#header-setting-button:hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    border-color: #ffffff #000 #000 #ffffff !important;
}

#header-setting-button:active {
    border-color: #808080 #ffffff #ffffff #808080 !important;
    box-shadow: inset 1px 1px 0 #808080 !important;
    transform: translate(1px, 1px) !important;
}

#header-setting-button svg {
    color: #6b38d1 !important;
    transition: transform 0.1s steps(2) !important;
}

#header-setting-button:hover svg {
    transform: rotate(15deg) !important;
}

/* 历史记录图标hover像素位移 */
.sticky.w-full.top-0 svg.lucide-clock-8 {
    color: #8d63ff !important;
    transition: transform 0.05s steps(1) !important;
}

.sticky.w-full.top-0 svg.lucide-clock-8:hover {
    transform: translate(-1px, -1px) !important;
    filter: drop-shadow(1px 1px 0 rgba(255,119,221,0.5)) !important;
}

/* 历史记录未读角标 */
.sticky.w-full.top-0 span.MuiBadge-dot.md\:hidden {
    background: #ff4fcf !important;
    border: 1px solid #000 !important;
    box-shadow: 1px 1px 0 rgba(0,0,0,0.3) !important;
    animation: statusLedBlink 1.5s steps(2) infinite !important;
}

/* 音乐按钮 */
.sticky.w-full.top-0 button.MuiIconButton-root:has(svg.lucide-music-2) {
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    border-radius: 0 !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
    transition: all 0.05s steps(1) !important;
}

.sticky.w-full.top-0 button.MuiIconButton-root:has(svg.lucide-music-2):hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
}

.sticky.w-full.top-0 button.MuiIconButton-root svg.lucide-music-2 {
    color: #8d63ff !important;
}


/* ==================================================
   [NSO Style] PROLOGUE · 开场白选择器 · SCENARIO.exe
   ================================================== */

div.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*="border-gray"],
div.h-9.rounded-md.cursor-pointer.group:has(svg[data-icon="SlidersH"]) {
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.15) !important;
    border-radius: 0 !important;
    font-family: 'DotGothic16', monospace !important;
    transition: all 0.05s steps(1) !important;
}

div.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*="border-gray"]:hover,
div.h-9.rounded-md.cursor-pointer.group:has(svg[data-icon="SlidersH"]):hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    border-color: #ffffff #000 #000 #ffffff !important;
}

div.flex.items-center.h-9.cursor-pointer.group svg[data-icon="SlidersH"],
div.flex.items-center.h-9.cursor-pointer.group svg[data-icon="ChevronDown"] {
    color: #6b38d1 !important;
}
/* 排除输入框扩大按钮的 active 位移效果 */
button.absolute.top-2.right-2:active {
    transform: none !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
}
/* 发送评论按钮：收窄选择器，只命中评论区内的发送按钮 */
div[class*="w-full"][class*="bg-white"][class*="bottom-0"] div.cursor-pointer.group.flex.items-center.justify-center {
    background: linear-gradient(180deg, #f4f4f4, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #000 #000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.2) !important;
    border-radius: 0 !important;
    transition: all 0.05s steps(1) !important;
}

div[class*="w-full"][class*="bg-white"][class*="bottom-0"] div.cursor-pointer.group.flex.items-center.justify-center:hover {
    background: linear-gradient(180deg, #ffb7ee, #ff79dd) !important;
    transform: translate(-1px, -1px) !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        3px 3px 0 rgba(0,0,0,0.25) !important;
}

div[class*="w-full"][class*="bg-white"][class*="bottom-0"] div.cursor-pointer.group.flex.items-center.justify-center:active {
    border-color: #000 #ffffff #ffffff #000 !important;
    box-shadow: inset 1px 1px 0 #808080 !important;
    transform: translate(2px, 2px) !important;
}

div[class*="w-full"][class*="bg-white"][class*="bottom-0"] div[data-state="closed"] svg[data-icon="Send03"] {
    color: #6b38d1 !important;transition: transform 0.05s steps(1) !important;
}

div[class*="w-full"][class*="bg-white"][class*="bottom-0"] div.cursor-pointer.group.flex.items-center.justify-center:hover svg[data-icon="Send03"] {
    color: #000 !important;
    transform: translate(1px, -1px) !important;
}

/* ==================================================
   [NSO Fix] 修复代码块右上角悬浮按钮被 .group 撑开的问题
   ================================================== */
.absolute.top-2.right-2.z-10.group.w-8.h-8 {
    width: 32px !important; /* 对应 w-8 */
    max-width: 32px !important;
}
@import url('https://fonts.googleapis.com/css2?family=DotGothic16&display=swap');

/* ==================================================
   NSO INIT V2
   Game_Start 初始化界面
   风格：旧系统 / 像素 / 粉蓝紫 / 病态可爱 / 存档载入
   ================================================== */

.nso-init-v2 {
    --init-pink: #ff78d8;
    --init-pink-hi: #ffb9ef;
    --init-pink-deep: #ff39bd;

    --init-cyan: #6ffaff;
    --init-cyan-deep: #00d9ff;

    --init-violet: #8d63ff;
    --init-violet-deep: #5e38d6;

    --init-black: #111;
    --init-dark: #25202a;
    --init-gray: #d7d7d7;
    --init-white: #fff;

    position: relative !important;
    width: 100% !important;
    max-width: 980px !important;
    margin: 0 auto !important;
    padding: 14px !important;
    box-sizing: border-box !important;

    font-family: 'DotGothic16', 'MS PGothic', 'SimSun', monospace !important;
    color: #222 !important;
    line-height: 1.65 !important;
    image-rendering: pixelated !important;
    -webkit-font-smoothing: none !important;

    background:
        radial-gradient(circle at 8% 6%, rgba(255,185,239,0.34), transparent 22%),
        radial-gradient(circle at 92% 12%, rgba(111,250,255,0.18), transparent 23%),
        radial-gradient(circle at 50% 95%, rgba(141,99,255,0.13), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,0.78), rgba(255,239,249,0.62)) !important;

    border: 1px solid rgba(255,255,255,0.7) !important;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.7),
        inset 0 0 24px rgba(255,255,255,0.28),
        0 0 0 1px rgba(255,120,216,0.14),
        0 0 18px rgba(255,120,216,0.08) !important;

    overflow: hidden !important;
}

/* CRT 扫描线 */
.nso-init-crt {
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
    z-index: 50 !important;

    background:
        repeating-linear-gradient(
            0deg,
            rgba(0,0,0,0.04),
            rgba(0,0,0,0.04) 1px,
            transparent 1px,
            transparent 3px
        ),
        linear-gradient(
            90deg,
            rgba(255,80,180,0.035),
            rgba(0,255,255,0.025),
            rgba(255,80,180,0.035)
        ) !important;

    mix-blend-mode: multiply !important;
}

/* ==================================================
   通用窗口
   ================================================== */

.nso-init-v2 .init-window {
    position: relative !important;
    z-index: 2 !important;

    margin: 0 0 16px 0 !important;
    padding: 2px !important;
    box-sizing: border-box !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(236,233,242,0.94)) !important;

    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    box-shadow:
        inset 1px 1px 0 #fff,
        inset -1px -1px 0 #808080,
        4px 4px 0 rgba(0,0,0,0.25),
        0 0 0 1px rgba(255,255,255,0.18),
        0 0 14px rgba(255,120,216,0.1) !important;

    overflow: hidden !important;
}

.nso-init-v2 .init-window::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
    z-index: 0 !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.2), transparent 30%),
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.045) 0,
            rgba(255,255,255,0.045) 1px,
            transparent 1px,
            transparent 4px
        ) !important;
}

/* 标题栏 */
.nso-init-v2 .init-hd {
    position: relative !important;
    z-index: 2 !important;

    min-height: 28px !important;
    padding: 4px 34px 4px 9px !important;
    box-sizing: border-box !important;

    display: flex !important;
    align-items: center !important;
    gap: 7px !important;

    background:
        repeating-linear-gradient(
            to bottom,
            #ff9ae9,
            #ff9ae9 1px,
            #ff79dd 1px,
            #ff79dd 2px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,0.16),
            transparent 55%,
            rgba(111,250,255,0.12)
        ) !important;

    color: #fff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;

    text-shadow:
        1px 1px 0 #000,
        -1px 1px 0 #000 !important;

    border-bottom: 2px solid #000 !important;
}

.nso-init-v2 .init-hd::after {
    content: "X" !important;
    position: absolute !important;
    right: 5px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;

    width: 18px !important;
    height: 18px !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    font-size: 11px !important;
    color: #000 !important;
    text-shadow: none !important;

    background: linear-gradient(180deg, #ffffff, #d6d6d6) !important;

    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;

    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
}

.nso-init-v2 .init-hd-dot {
    width: 9px !important;
    height: 9px !important;
    display: inline-block !important;

    background: var(--init-cyan) !important;
    border: 1px solid #000 !important;

    box-shadow:
        1px 1px 0 rgba(0,0,0,0.5),
        0 0 5px rgba(111,250,255,0.35) !important;
}

.nso-init-v2 .init-bd {
    position: relative !important;
    z-index: 2 !important;

    padding: 12px !important;
    box-sizing: border-box !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,246,252,0.84)) !important;
}

/* ==================================================
   顶部 Boot 窗口
   ================================================== */

.nso-init-v2 .init-boot {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(244,239,250,0.96)) !important;
}

.nso-init-v2 .init-boot .init-hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #8d63ff,
            #8d63ff 1px,
            #7656e8 1px,
            #7656e8 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.16), transparent 56%, rgba(111,250,255,0.12)) !important;
}

.nso-init-v2 .boot-line {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 10px !important;

    padding: 7px 9px !important;
    margin-bottom: 8px !important;

    background:
        linear-gradient(90deg, rgba(255,120,216,0.14), rgba(111,250,255,0.12)) !important;

    border: 1px solid rgba(0,0,0,0.16) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        1px 1px 0 rgba(0,0,0,0.08) !important;
}

.nso-init-v2 .boot-label {
    color: var(--init-violet-deep) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
}

.nso-init-v2 .boot-status {
    padding: 2px 7px !important;

    color: #fff !important;
    background: var(--init-pink-deep) !important;

    border: 1px solid #000 !important;
    box-shadow: 1px 1px 0 #000 !important;

    font-size: 11px !important;
    font-weight: 900 !important;
    text-shadow: 1px 1px 0 #000 !important;

    animation: initBlink 1.6s steps(2) infinite !important;
}

.nso-init-v2 .boot-sub {
    color: #555 !important;
    font-size: 12px !important;
    margin-bottom: 8px !important;
}

.nso-init-v2 .boot-progress {
    position: relative !important;
    height: 14px !important;

    background:
        linear-gradient(180deg, #292929, #111) !important;

    border: 2px solid #000 !important;
    overflow: hidden !important;

    box-shadow:
        inset 0 2px 4px rgba(0,0,0,0.58),
        inset 0 0 0 1px rgba(255,255,255,0.08) !important;
}

.nso-init-v2 .boot-progress span {
    display: block !important;
    width: 76% !important;
    height: 100% !important;

    background-image:
        linear-gradient(
            -45deg,
            rgba(255,255,255,0.22) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255,255,255,0.22) 50%,
            rgba(255,255,255,0.22) 75%,
            transparent 75%,
            transparent
        ),
        linear-gradient(90deg, var(--init-pink), var(--init-cyan)) !important;

    background-size: 14px 14px, auto !important;
    animation: initStripe 1.5s linear infinite !important;
}

/* ==================================================
   第一部分：Profile
   ================================================== */

.nso-init-v2 .profile-hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #ff9ae9,
            #ff9ae9 1px,
            #ff79dd 1px,
            #ff79dd 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.16), transparent 55%, rgba(111,250,255,0.16)) !important;
}

.nso-init-v2 .sys-mini-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;

    margin-bottom: 8px !important;
    padding: 5px 7px !important;

    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;

    color: var(--init-violet-deep) !important;

    background:
        linear-gradient(90deg, rgba(255,120,216,0.14), rgba(111,250,255,0.10)) !important;

    border: 1px solid rgba(0,0,0,0.14) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        1px 1px 0 rgba(0,0,0,0.08) !important;
}

.nso-init-v2 .profile-code {
    position: relative !important;

    margin: 0 !important;
    padding: 13px 14px 13px 16px !important;

    white-space: pre-wrap !important;
    word-break: break-word !important;
    overflow-x: auto !important;

    color: #222 !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,245,252,0.94)) !important;

    border: 2px solid #000 !important;
    border-left: 6px solid var(--init-cyan-deep) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        inset 0 0 12px rgba(255,120,216,0.06),
        2px 2px 0 rgba(0,0,0,0.18) !important;

    font-family: 'DotGothic16', 'MS PGothic', monospace !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}

.nso-init-v2 .profile-code code {
    font-family: inherit !important;
    color: inherit !important;
}

/* ==================================================
   第二部分：Story
   ================================================== */

.nso-init-v2 .story-hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #8d63ff,
            #8d63ff 1px,
            #7252e3 1px,
            #7252e3 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.16), transparent 54%, rgba(255,120,216,0.12)) !important;
}

.nso-init-v2 .story-tag {
    display: inline-block !important;

    margin-bottom: 10px !important;
    padding: 3px 8px !important;

    color: #fff !important;
    background: var(--init-violet) !important;

    border: 1px solid #000 !important;
    box-shadow: 1px 1px 0 #000 !important;

    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #000 !important;
}

.nso-init-v2 .story-body {
    position: relative !important;

    padding: 18px 18px 16px 18px !important;

    color: #2a2430 !important;

    background:
        radial-gradient(circle at 92% 8%, rgba(255,185,239,0.18), transparent 24%),
        radial-gradient(circle at 10% 92%, rgba(111,250,255,0.12), transparent 24%),
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,247,252,0.88)) !important;

    border: 2px solid #000 !important;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.8),
        inset 0 0 18px rgba(255,120,216,0.06),
        2px 2px 0 rgba(0,0,0,0.16) !important;

    overflow: hidden !important;
}

.nso-init-v2 .story-body::before {
    content: "Narrative_Thread.exe" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;

    height: 24px !important;
    padding: 0 8px !important;
    box-sizing: border-box !important;

    display: flex !important;
    align-items: center !important;

    color: #fff !important;
    background:
        repeating-linear-gradient(
            to bottom,
            #ff9ae9,
            #ff9ae9 1px,
            #ff79dd 1px,
            #ff79dd 2px
        ) !important;

    border-bottom: 2px solid #000 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #000 !important;
}

.nso-init-v2 .story-body p {
    margin: 22px 0 0 0 !important;
    position: relative !important;
    z-index: 1 !important;

    font-size: 14px !important;
    line-height: 1.85 !important;
}

.nso-init-v2 .story-body p:first-of-type::first-letter {
    float: left !important;

    margin: 5px 8px 0 0 !important;

    font-size: 3.2em !important;
    line-height: 0.78 !important;

    color: var(--init-pink-deep) !important;

    text-shadow:
        2px 2px 0 var(--init-cyan),
        0 0 6px rgba(255,120,216,0.2) !important;
}

/* ==================================================
   第三部分：Warning
   ================================================== */

.nso-init-v2 .warning-hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #ff6fcf,
            #ff6fcf 1px,
            #ff42bd 1px,
            #ff42bd 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.18), transparent 50%, rgba(141,99,255,0.13)) !important;
}

.nso-init-v2 .warning-bd {
    display: flex !important;
    gap: 12px !important;
    align-items: flex-start !important;

    background:
        linear-gradient(180deg, rgba(255,243,251,0.96), rgba(245,238,255,0.92)) !important;

    border-top: 1px solid rgba(255,255,255,0.65) !important;
}

.nso-init-v2 .warning-icon {
    flex: 0 0 auto !important;

    width: 28px !important;
    height: 28px !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    color: #fff !important;
    background: var(--init-pink-deep) !important;

    border: 2px solid #000 !important;

    box-shadow:
        2px 2px 0 rgba(0,0,0,0.45),
        inset 1px 1px 0 rgba(255,255,255,0.35),
        0 0 8px rgba(255,120,216,0.2) !important;

    font-size: 20px !important;
    font-weight: 900 !important;
    text-shadow: 1px 1px 0 #000 !important;

    animation: initWarn 1.4s steps(2) infinite !important;
}

.nso-init-v2 .warning-text {
    flex: 1 !important;

    color: #2a2430 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.7 !important;
}

.nso-init-v2 .warning-text strong {
    color: var(--init-pink-deep) !important;
    text-shadow: 1px 1px 0 #fff !important;
}

/* ==================================================
   Day 1 Choices
   ================================================== */

.nso-init-v2 .choice-hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #6ffaff,
            #6ffaff 1px,
            #00d9ff 1px,
            #00d9ff 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.2), transparent 55%, rgba(255,120,216,0.16)) !important;
}

.nso-init-v2 .choice-title {
    margin-bottom: 10px !important;
    padding: 6px 8px !important;

    color: var(--init-violet-deep) !important;
    background:
        linear-gradient(90deg, rgba(111,250,255,0.16), rgba(255,120,216,0.12)) !important;

    border: 1px solid rgba(0,0,0,0.14) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        1px 1px 0 rgba(0,0,0,0.08) !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
}

.nso-init-v2 .choice-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
}

.nso-init-v2 .choice-card {
    position: relative !important;

    display: flex !important;
    gap: 10px !important;
    align-items: stretch !important;

    padding: 8px !important;

    color: #222 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,244,252,0.95)) !important;

    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        2px 2px 0 rgba(0,0,0,0.28),
        0 0 8px rgba(111,250,255,0.06) !important;

    cursor: pointer !important;

    transition:
        transform 0.14s steps(2),
        box-shadow 0.14s steps(2),
        filter 0.14s steps(2) !important;
}

.nso-init-v2 .choice-card::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    height: 3px !important;

    background:
        linear-gradient(90deg, var(--init-pink), var(--init-cyan), var(--init-violet)) !important;

    opacity: 0.72 !important;
}

.nso-init-v2 .choice-card:hover {
    transform: translate(-2px, -2px) !important;

    filter: brightness(1.04) contrast(1.03) !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        4px 4px 0 rgba(0,0,0,0.36),
        0 0 10px rgba(255,120,216,0.18),
        0 0 8px rgba(111,250,255,0.14) !important;
}

.nso-init-v2 .choice-key {
    flex: 0 0 34px !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    color: #fff !important;
    background:
        linear-gradient(180deg, var(--init-pink), var(--init-violet)) !important;

    border: 2px solid #000 !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.35),
        1px 1px 0 rgba(0,0,0,0.38) !important;

    font-size: 18px !important;
    font-weight: 900 !important;
    text-shadow: 1px 1px 0 #000 !important;
}

.nso-init-v2 .choice-text {
    flex: 1 !important;

    display: flex !important;
    align-items: center !important;

    font-size: 13px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
}

.nso-init-v2 .choice-footer {
    margin-top: 10px !important;
    padding: 5px 8px !important;

    color: #00a0b8 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.78), rgba(240,248,250,0.72)) !important;

    border: 1px solid rgba(0,0,0,0.14) !important;

    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;

    text-shadow: 1px 1px 0 #fff !important;
}

/* ==================================================
   动画
   ================================================== */

@keyframes initStripe {
    0% {
        background-position: 0 0, 0 0;
    }
    100% {
        background-position: 14px 0, 0 0;
    }
}

@keyframes initBlink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.72;
    }
}

@keyframes initWarn {
    0%, 100% {
        transform: scale(1);
        filter: brightness(1);
    }
    50% {
        transform: scale(1.06);
        filter: brightness(1.1);
    }
}

/* ==================================================
   移动端
   ================================================== */

@media screen and (max-width: 768px) {
    .nso-init-v2 {
        padding: 8px !important;
    }

    .nso-init-v2 .init-window {
        margin-bottom: 12px !important;
    }

    .nso-init-v2 .init-hd {
        font-size: 12px !important;
        min-height: 26px !important;
        padding-left: 7px !important;
    }

    .nso-init-v2 .init-bd {
        padding: 9px !important;
    }

    .nso-init-v2 .profile-code {
        font-size: 12px !important;
        line-height: 1.5 !important;
        padding: 10px !important;
    }

    .nso-init-v2 .story-body {
        padding: 15px 12px 13px 12px !important;
    }

    .nso-init-v2 .story-body p {
        font-size: 13px !important;
        line-height: 1.75 !important;
    }

    .nso-init-v2 .warning-bd {
        gap: 8px !important;
    }

    .nso-init-v2 .choice-card {
        padding: 7px !important;
    }

    .nso-init-v2 .choice-key {
        flex-basis: 30px !important;
        font-size: 16px !important;
    }

    .nso-init-v2 .choice-text {
        font-size: 12px !important;
    }
}


.gm-counter {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  user-select: none !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* ==================================================
   🕯 ENDING MODE：结局弹窗
   放在原有 .nso-sys 内，不改大架构
   ================================================== */

.nso-sys .end-pop {
    position: relative !important;
    z-index: 50 !important;
    width: min(520px, 92%) !important;
    margin: 18px auto 10px auto !important;
    padding: 2px !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(235,230,242,0.96)) !important;

    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        5px 5px 0 rgba(0,0,0,0.42),
        0 0 18px rgba(255,119,221,0.18),
        0 0 18px rgba(111,250,255,0.10) !important;

    overflow: hidden !important;
}

.nso-sys .end-pop .hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #8d63ff,
            #8d63ff 1px,
            #6b38d1 1px,
            #6b38d1 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.16), transparent 55%, rgba(255,119,221,0.14)) !important;

    color: #fff !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    padding: 4px 8px !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #000, -1px 1px 0 #000 !important;
    border-bottom: 2px solid #000 !important;
    display: flex !important;
    align-items: center !important;
}

.nso-sys .end-pop .hd::after {
    content: "X" !important;
    margin-left: auto !important;
    width: 18px !important;
    height: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: linear-gradient(180deg, #fefefe, #d5d5d5) !important;
    color: #000 !important;
    border: 1px solid !important;
    border-color: #fff #000 #000 #fff !important;
    font-size: 12px !important;
    text-shadow: none !important;
}

.nso-sys .end-pop .bd {
    padding: 16px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,243,250,0.86)),
        radial-gradient(circle at 12% 10%, rgba(255,183,238,0.22), transparent 28%),
        radial-gradient(circle at 88% 16%, rgba(111,250,255,0.14), transparent 30%) !important;

    border-top: 1px solid rgba(255,255,255,0.6) !important;
    text-align: center !important;
}

.nso-sys .end-no {
    display: inline-block !important;
    margin-bottom: 8px !important;
    padding: 3px 8px !important;

    font-size: 11px !important;
    font-weight: 900 !important;
    color: #fff !important;
    background: #111 !important;
    border: 1px solid #ff77dd !important;
    box-shadow:
        1px 1px 0 #000,
        0 0 8px rgba(255,119,221,0.22) !important;
}

.nso-sys .end-title {
    margin: 4px 0 10px 0 !important;
    font-size: 24px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
    color: #ff4fcf !important;

    text-shadow:
        2px 2px 0 #000,
        -1px -1px 0 #6ffaff,
        0 0 8px rgba(255,119,221,0.24) !important;
}

.nso-sys .end-copy {
    margin: 10px auto 14px auto !important;
    max-width: 430px !important;

    font-size: 13px !important;
    line-height: 1.65 !important;
    color: #222 !important;
    font-weight: bold !important;

    background: rgba(255,255,255,0.66) !important;
    border: 2px inset #d8d8d8 !important;
    padding: 10px 12px !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        inset 0 0 12px rgba(255,119,221,0.06) !important;
}

.nso-sys .end-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    margin: 12px 0 !important;
}

.nso-sys .end-stat {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(238,238,238,0.92)) !important;
    border: 1px solid !important;
    border-color: #fff #888 #888 #fff !important;
    padding: 6px 4px !important;
    font-size: 11px !important;
    font-weight: bold !important;
    color: #333 !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.8) !important;
}

.nso-sys .end-stat b {
    display: block !important;
    margin-top: 2px !important;
    font-size: 14px !important;
    color: #00b8d4 !important;
    text-shadow: 1px 1px 0 #fff !important;
}

.nso-sys .end-btns {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 12px !important;
}

.nso-sys .end-btn {
    min-width: 96px !important;
    padding: 5px 10px !important;

    background: linear-gradient(180deg, #ffffff, #d8d8d8) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    color: #111 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.9),
        2px 2px 0 rgba(0,0,0,0.25) !important;
}

.nso-sys .end-btn.primary {
    color: #fff !important;
    background:
        linear-gradient(180deg, #ff9ae9, #ff4fcf) !important;
    text-shadow: 1px 1px 0 #000 !important;
}

.nso-sys .end-log {
    margin-top: 10px !important;
    padding: 5px 8px !important;
    font-family: monospace !important;
    font-size: 11px !important;
    color: #00ff88 !important;
    background: #111 !important;
    border-left: 4px solid #00ff88 !important;
    text-align: left !important;
}

/* 结局气质变体，可按需加在 end-pop 上 */
.nso-sys .end-good .end-title {
    color: #00d9ff !important;
    text-shadow: 2px 2px 0 #000, -1px -1px 0 #ffb7ee !important;
}

.nso-sys .end-bad .end-title {
    color: #9a5cff !important;
    text-shadow: 2px 2px 0 #000, -1px -1px 0 #ff4fcf !important;
}

.nso-sys .end-true .end-title {
    color: #ffffff !important;
    background: #000 !important;
    display: inline-block !important;
    padding: 4px 10px !important;
    border: 1px dotted #ff4fcf !important;
}

/* ==================================================
   🩸 ENDING MODE：结局专属弹窗模板
   触发结局时替代常规回复模板
   ================================================== */

.nso-sys.end-mode {
    min-height: 520px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 14px !important;
    background:
        radial-gradient(circle at 50% 18%, rgba(255,119,221,0.22), transparent 24%),
        radial-gradient(circle at 50% 82%, rgba(111,250,255,0.12), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,0.56), rgba(245,238,248,0.42)) !important;
}

/* 结局主窗口 */
.nso-sys.end-mode .end-win {
    width: min(860px, 96%) !important;
    margin: 0 auto !important;
}

/* CG 框 */
.nso-sys.end-mode .end-cg {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    background:
        linear-gradient(180deg, #08080c, #17121d) !important;
    border: 2px inset #808080 !important;
    overflow: hidden !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.08),
        inset 0 0 30px rgba(0,0,0,0.72),
        0 0 14px rgba(255,119,221,0.12) !important;
}

/* CG 背景图：用 style="background-image:url(...)" 或 class 控制 */
.nso-sys.end-mode .end-cg-img {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    image-rendering: pixelated !important;
    filter: contrast(1.02) saturate(0.96) !important;
}

/* 无 CG 时的占位 */
.nso-sys.end-mode .end-cg-placeholder {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    text-align: center !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    text-shadow:
        1px 1px 0 #000,
        -1px 1px 0 #000,
        0 0 8px rgba(255,119,221,0.35) !important;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,0.035),
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 3px
        ),
        radial-gradient(circle at 50% 40%, rgba(255,119,221,0.18), transparent 28%),
        linear-gradient(180deg, #09090d, #181020) !important;
}

/* CG 下方字幕条 */
.nso-sys.end-mode .end-caption {
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    padding: 10px 12px !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    text-align: center !important;
    background:
        linear-gradient(180deg, rgba(141,99,255,0.88), rgba(72,43,132,0.88)) !important;
    border: 2px solid !important;
    border-color: rgba(255,255,255,0.5) #000 #000 rgba(255,255,255,0.5) !important;
    text-shadow: 1px 1px 0 #000, -1px 1px 0 #000 !important;
    box-shadow: 2px 2px 0 rgba(0,0,0,0.35) !important;
    z-index: 5 !important;
}

/* 结局结果弹窗 */
.nso-sys.end-mode .end-result {
    width: min(620px, 94%) !important;
    margin: 0 auto !important;
    text-align: center !important;
}

.nso-sys.end-mode .end-result .bd {
    padding: 18px 16px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,241,250,0.94)) !important;
}

/* ENDING 标题 */
.nso-sys.end-mode .ending-code {
    display: inline-block !important;
    margin-bottom: 8px !important;
    padding: 3px 10px !important;
    color: #fff !important;
    background: #000 !important;
    border: 1px dotted #ff4fcf !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    box-shadow:
        2px 2px 0 rgba(0,0,0,0.45),
        0 0 8px rgba(255,119,221,0.22) !important;
}

.nso-sys.end-mode .ending-title {
    margin: 4px 0 12px 0 !important;
    color: #ff4fcf !important;
    font-size: 28px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    text-shadow:
        2px 2px 0 #6ffaff,
        1px 1px 0 #000,
        0 0 8px rgba(255,119,221,0.22) !important;
}

.nso-sys.end-mode .ending-text {
    margin: 12px auto !important;
    max-width: 520px !important;
    color: #222 !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
    text-align: left !important;
}

/* 结局数据栏 */
.nso-sys.end-mode .ending-data {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    margin: 14px 0 !important;
}

.nso-sys.end-mode .ending-data div {
    padding: 7px 6px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(238,244,248,0.88)) !important;
    border: 2px solid !important;
    border-color: #ffffff #808080 #808080 #ffffff !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.9) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.nso-sys.end-mode .ending-data b {
    display: block !important;
    color: #ff007f !important;
    font-size: 10px !important;
    margin-bottom: 3px !important;
}

/* 系统按钮 */
.nso-sys.end-mode .ending-buttons {
    display: flex !important;
    justify-content: center !important;
    gap: 10px !important;
    margin-top: 14px !important;
}

.nso-sys.end-mode .ending-btn {
    min-width: 112px !important;
    padding: 6px 12px !important;
    color: #000 !important;
    background:
        linear-gradient(180deg, #fefefe, #d5d5d5) !important;
    border: 2px solid !important;
    border-color: #ffffff #000000 #000000 #ffffff !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        2px 2px 0 rgba(0,0,0,0.35) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.nso-sys.end-mode .ending-btn.danger {
    color: #fff !important;
    background:
        linear-gradient(180deg, #ff9ae9, #ff4fcf) !important;
    text-shadow: 1px 1px 0 #000 !important;
}

/* 结局底部系统信息 */
.nso-sys.end-mode .ending-log {
    width: min(620px, 94%) !important;
    margin: 0 auto !important;
    padding: 5px 8px !important;
    color: #00ff88 !important;
    background: #070707 !important;
    border-left: 4px solid #00ff88 !important;
    font-family: monospace !important;
    font-size: 12px !important;
    box-shadow:
        inset 0 0 8px rgba(0,255,136,0.08),
        2px 2px 0 rgba(0,0,0,0.35) !important;
}

/* 移动端 */
@media screen and (max-width: 768px) {
    .nso-sys.end-mode {
        min-height: auto !important;
        padding: 8px !important;
    }

    .nso-sys.end-mode .ending-title {
        font-size: 22px !important;
    }

    .nso-sys.end-mode .ending-data {
        grid-template-columns: 1fr !important;
    }

    .nso-sys.end-mode .ending-buttons {
        flex-direction: column !important;
        align-items: stretch !important;
    }
}
/* ==================================================
   🎵 ENDING BGM：结局音乐播放器
   ================================================== */

.nso-sys.end-mode .ending-bgm {
    width: min(620px, 94%) !important;
    margin: 0 auto !important;
}

.nso-sys.end-mode .ending-bgm .bd {
    padding: 8px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(238,234,246,0.94)) !important;
}

.nso-sys.end-mode .ending-bgm-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.nso-sys.end-mode .ending-bgm-icon {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    color: #fff !important;
    font-size: 18px !important;

    background:
        radial-gradient(circle at 35% 35%, #fff 0 8%, rgba(255,255,255,0.45) 8%, #ff77dd 45%, #8d63ff 100%) !important;
    border: 2px solid #000 !important;
    border-radius: 50% !important;

    box-shadow:
        inset 0 0 0 2px rgba(255,255,255,0.22),
        2px 2px 0 rgba(0,0,0,0.45),
        0 0 8px rgba(255,119,221,0.18) !important;

    animation: endingDiscSpin 3s linear infinite !important;
}

@keyframes endingDiscSpin {
    100% {
        transform: rotate(360deg);
    }
}

.nso-sys.end-mode .ending-bgm-info {
    flex: 1 !important;
    min-width: 0 !important;
}

.nso-sys.end-mode .ending-bgm-label {
    display: block !important;
    margin-bottom: 3px !important;
    color: #ff007f !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
    text-shadow: 1px 1px 0 #fff !important;
}

.nso-sys.end-mode .ending-bgm-track {
    display: block !important;
    padding: 2px 5px !important;
    color: #00b8d4 !important;
    background: rgba(255,255,255,0.66) !important;
    border: 1px solid rgba(0,0,0,0.16) !important;
    font-family: monospace !important;
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-shadow: 1px 1px 0 #fff !important;
}

.nso-sys.end-mode .ending-bgm-audio {
    width: 100% !important;
    height: 28px !important;
    margin-top: 5px !important;
    filter: saturate(0.9) contrast(1.02) !important;
}
/* =========================
   CG Base Layer
   ========================= */

.stg-cg {
  position: absolute;
  inset: 0;
  z-index: 20;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: none;
}

.stg-cg.active {
  display: block;
}

/* 触发 CG 时隐藏立绘层 */
.stg-cg.active ~ .stg-sp,
.stg.has-cg .stg-sp {
  display: none;
}
/* ==================================================
   🎮 Next_Action.bat：行动建议面板精修版
   目标：更像“可点击命令列表”，保留 NSO / Win98 / 粉蓝像素质感
   ================================================== */

.nso-sys .act-panel {
    margin-top: 16px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(241,236,247,0.96)) !important;
    box-shadow:
        inset 1px 1px 0 #ffffff,
        inset -1px -1px 0 #808080,
        4px 4px 0 rgba(0,0,0,0.30),
        0 0 14px rgba(255,119,221,0.16),
        0 0 18px rgba(111,250,255,0.08) !important;
}

/* 标题栏单独做成“执行文件”感觉 */
.nso-sys .act-panel > summary.hd {
    background:
        repeating-linear-gradient(
            to bottom,
            #ff8ee5,
            #ff8ee5 1px,
            #ff68d6 1px,
            #ff68d6 2px
        ),
        linear-gradient(90deg, rgba(255,255,255,0.20), transparent 42%, rgba(111,250,255,0.16)) !important;
}

.nso-sys .act-panel > summary.hd::before {
    content: "▶" !important;
    position: static !important;
    display: inline-flex !important;
    width: 16px !important;
    height: 16px !important;
    margin-right: 6px !important;
    align-items: center !important;
    justify-content: center !important;
    color: #6ffaff !important;
    background: #111 !important;
    border: 1px solid #000 !important;
    box-shadow: inset 1px 1px 0 rgba(255,255,255,0.18) !important;
    font-size: 10px !important;
    text-shadow: none !important;
}

/* 内容底板：从“空白文档”改成“命令选择器” */
.nso-sys .act-panel > .bd {
    padding: 12px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.84), rgba(255,239,249,0.78)),
        radial-gradient(circle at 8% 0%, rgba(255,119,221,0.16), transparent 28%),
        radial-gradient(circle at 92% 12%, rgba(111,250,255,0.13), transparent 30%) !important;
    border-top: 1px solid rgba(255,255,255,0.8) !important;
}

/* 列表主体 */
.nso-sys .act-list {
    list-style: none !important;
    counter-reset: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
}

/* 每个行动项：按钮卡片 */
.nso-sys .act-list li {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 34px 1fr !important;
    align-items: stretch !important;
    min-height: 54px !important;
    padding: 0 !important;
    overflow: hidden !important;

    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,244,251,0.96)) !important;

    border: 2px solid !important;
    border-color: #ffffff #7d7d7d #7d7d7d #ffffff !important;

    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        2px 2px 0 rgba(0,0,0,0.22),
        0 0 8px rgba(255,119,221,0.06) !important;

    color: #222 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    cursor: pointer !important;
    transition:
        transform 0.12s steps(2),
        box-shadow 0.12s steps(2),
        filter 0.12s steps(2) !important;
}

/* 扫描光 */
.nso-sys .act-list li::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.24), transparent 38%),
        repeating-linear-gradient(
            0deg,
            rgba(0,0,0,0.035),
            rgba(0,0,0,0.035) 1px,
            transparent 1px,
            transparent 3px
        ) !important;
    pointer-events: none !important;
    opacity: 0.75 !important;
}

/* A/B/C/D 小徽章 */
.nso-sys .act-list li > b {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 100% !important;

    background:
        linear-gradient(180deg, #1a1a1a, #050505) !important;

    color: #fff !important;
    font-family: 'Arial Black', 'DotGothic16', monospace !important;
    font-size: 18px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-shadow:
        1px 1px 0 #000,
        0 0 5px currentColor !important;

    border-right: 2px solid #000 !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.14),
        inset -1px -1px 0 rgba(0,0,0,0.7) !important;
    z-index: 1 !important;
}

/* 文案 */
.nso-sys .act-list li > span {
    display: block !important;
    padding: 8px 10px !important;
    position: relative !important;
    z-index: 1 !important;
}

/* 四项分色：A 安抚 / B 营业 / C 边界 / D 自由 */
.nso-sys .act-list li:nth-child(1) {
    border-left: 5px solid #ff77dd !important;
}
.nso-sys .act-list li:nth-child(1) > b {
    color: #ff9ae9 !important;
}

.nso-sys .act-list li:nth-child(2) {
    border-left: 5px solid #6ffaff !important;
}
.nso-sys .act-list li:nth-child(2) > b {
    color: #6ffaff !important;
}

.nso-sys .act-list li:nth-child(3) {
    border-left: 5px solid #8d63ff !important;
}
.nso-sys .act-list li:nth-child(3) > b {
    color: #b59cff !important;
}

.nso-sys .act-list li:nth-child(4) {
    border-left: 5px solid #111 !important;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,0.035),
            rgba(255,255,255,0.035) 1px,
            transparent 1px,
            transparent 3px
        ),
        linear-gradient(180deg, #2c2733, #17141d) !important;
    color: #fff !important;
}
.nso-sys .act-list li:nth-child(4) > b {
    color: #fff !important;
    background:
        linear-gradient(180deg, #ff79dd, #8d63ff) !important;
}

/* hover：像素按钮上浮 */
.nso-sys .act-list li:hover {
    transform: translate(-2px, -2px) !important;
    filter: saturate(1.08) contrast(1.02) !important;
    box-shadow:
        inset 1px 1px 0 rgba(255,255,255,0.95),
        4px 4px 0 rgba(0,0,0,0.34),
        0 0 12px rgba(255,119,221,0.20),
        0 0 10px rgba(111,250,255,0.12) !important;
}

/* active：按下去 */
.nso-sys .act-list li:active {
    transform: translate(1px, 1px) !important;
    box-shadow:
        inset 2px 2px 0 rgba(0,0,0,0.20),
        1px 1px 0 rgba(0,0,0,0.28) !important;
}

/* 底部状态条 */
.nso-sys .act-panel > .bd::after {
    content: "SELECT COMMAND  /  TYPE D FOR CUSTOM INPUT" !important;
    display: block !important;
    margin-top: 10px !important;
    padding: 4px 7px !important;
    background: #111 !important;
    color: #00ff88 !important;
    font-family: monospace !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    border-left: 4px solid #00ff88 !important;
    box-shadow:
        inset 0 0 8px rgba(0,255,136,0.10),
        1px 1px 0 rgba(0,0,0,0.25) !important;
}

/* 窄屏：自动变一列，防止挤压 */
@media (max-width: 720px) {
    .nso-sys .act-list {
        grid-template-columns: 1fr !important;
    }

    .nso-sys .act-list li {
        min-height: 48px !important;
    }
}
/* =========================
   CG Images
   ========================= */

.cg-a-joyful-romantic-light-comedy {
  background-image: url("https://i.postimg.cc/hjNKGwkC/A-Joyful-Romantic-Light-Comedy.png");
}

.cg-aphrodite-of-the-late-night-slot {
  background-image: url("https://i.postimg.cc/G26bpNWx/Aphrodite-of-the-Late-Night-Slot.png");
}

.cg-night-on-the-galactic-railroad {
  background-image: url("https://i.postimg.cc/SsHmK5Bg/Night-on-the-Galactic-Railroad.png");
}

.cg-palms-together {
  background-image: url("https://i.postimg.cc/0Qh9N3TC/palms-together.png");
}

.cg-self-harm {
  background-image: url("https://i.postimg.cc/DZR7zD9H/Self-harm.png");
}

.cg-shoot-the-angel {
  background-image: url("https://i.postimg.cc/vBCGmjJp/Shoot-the-Angel.png");
}

.cg-stress {
  background-image: url("https://i.postimg.cc/1X6sVBSY/Stress.png");
}

.cg-thank-you {
  background-image: url("https://i.postimg.cc/nr7p92xd/Thank-You.jpg");
}

.cg-the-ame-show {
  background-image: url("https://i.postimg.cc/pr8R5Cv3/The-Ame-show.png");
}

.cg-the-rainbow-magpie-bridge-she-vomited-forth {
  background-image: url("https://i.postimg.cc/j2NtncKr/The-Rainbow-Magpie-Bridge-She-Vomited-Forth.png");
}

.cg-unforgettable-tonight {
  background-image: url("https://i.postimg.cc/sxSsGmyj/Unforgettable-Tonight.png");
}

.cg-when-the-girl-fell {
  background-image: url("https://i.postimg.cc/0jmPKnxN/When-the-Girl-Fell.png");
}
/* Cho CGs */
.cg-cho-spooning-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_spooning1.png'); }
.cg-cho-spooning-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_spooning2.png'); }
.cg-cho-footjob-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_Footjob1.png'); }
.cg-cho-footjob-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_Footjob2.png'); }
.cg-cho-piledriver-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_piledriver_(sex)1.png'); }
.cg-cho-piledriver-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_piledriver_(sex)2.png'); }
.cg-cho-prone-bone-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_prone_bone1.png'); }
.cg-cho-prone-bone-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_prone_bone2.png'); }
.cg-cho-upright-straddle-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_upright_straddle1.png'); }
.cg-cho-upright-straddle-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_upright_straddle2.png'); }
.cg-cho-mating-press-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_mating%20press1.png'); }
.cg-cho-mating-press-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Cho_mating%20press2.png'); }

/* Ame CGs */
.cg-ame-doggystyle-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Doggystyle1.png'); }
.cg-ame-doggystyle-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Doggystyle2.png'); }
.cg-ame-standing-sex-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_StandingSex1.png'); }
.cg-ame-standing-sex-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_StandingSex2.png'); }
.cg-ame-fellatio-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Fellatio1.png'); }
.cg-ame-fellatio-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Fellatio2.png'); }
.cg-ame-missionary-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Missionary1.png'); }
.cg-ame-missionary-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Missionary2.png'); }
.cg-ame-cowgirl-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Cowgirl1%20.png'); }
.cg-ame-cowgirl-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_Cowgirl2%20.png'); }
.cg-ame-anvil-position-1 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_anvil_positionSex1.png'); }
.cg-ame-anvil-position-2 { background-image: url('https://file.garden/aUDHecPBjRiJY22D/Ame_anvil_positionSex2.png'); }
