/* V17: pale-blue digital paper, brushed silver frames, restrained signal loss. */
.type-copy>mxh-letter{opacity:1}
.type-copy.typing-pending>mxh-letter:not(.ink-visible){opacity:0}
.galgame.narrative-dialog .gal-body{background:linear-gradient(110deg,#dce8f4,#f2f5fa 48%,#c2d3e8);border:1px solid #7993b1;border-top:1px solid #faffff;box-shadow:inset 0 0 0 3px #e1eaf6,inset 0 0 0 4px #8ca2bd,0 10px 38px #020b3180;color:#172c55;padding:18px 25px 20px;outline:none}
.galgame.narrative-dialog .gal-body header{color:#eaf4ff;background:linear-gradient(#6985bd,#274885 48%,#4767a0 50%,#2a4978);border:1px solid #899fbc;box-shadow:inset 0 1px #edf5ff80;padding:5px 10px;margin:-9px -16px 14px;font:13px/1.4 'Courier New',SimSun,monospace;letter-spacing:.12em}
.dialog-indicator{margin-left:auto;font-size:9px;letter-spacing:3px;color:#bdcdea}
.galgame.narrative-dialog .typed-line{font:clamp(17px,1.65vw,23px)/1.75 'Courier New',SimSun,monospace;color:#182e57;text-shadow:0 1px #fff;min-height:3.5em;margin:8px 0 16px;letter-spacing:.035em}
.galgame .gal-options[hidden]{display:none}
.galgame.narrative-dialog .gal-options{min-height:35px;gap:12px}
.galgame.narrative-dialog .gal-options button{background:linear-gradient(#f7fbff,#cad8eb 49%,#b7cae3 51%,#e6effa);color:#244579;border:1px solid #7c96b8;box-shadow:inset 1px 1px #fff,inset -1px -1px #9baec9;font:14px/1.4 'Courier New',SimSun,monospace;padding:8px 18px}
.galgame.narrative-dialog .gal-options button:hover{background:#f4fbff;box-shadow:inset 0 0 0 1px #446caa,0 0 9px #a8c8ff}
.dialog-next{position:absolute;right:19px;bottom:12px;color:#315489;animation:next-pulse 1.8s ease-in-out infinite}
.galgame[data-typing="true"] .dialog-next,.galgame[data-page="3"] .dialog-next,.galgame[data-pages="1"] .dialog-next{visibility:hidden}
@keyframes next-pulse{50%{opacity:.35}}
.screen-signal{background:transparent;animation:signal-envelope 1.35s linear both}
.signal-ghost{opacity:.15;mix-blend-mode:screen}
.ghost-0{filter:sepia(.2) saturate(.7) hue-rotate(155deg)}
.ghost-1{filter:sepia(.2) saturate(.8) hue-rotate(220deg)}
.signal-raster{opacity:.09;background:repeating-linear-gradient(0deg,transparent 0 3px,#31517a55 3px 4px)}
.signal-dropout{height:1.2%;opacity:.13;background:linear-gradient(transparent,#d7eaff,transparent);border:0;mix-blend-mode:screen}
@keyframes signal-envelope{0%,100%{opacity:0}18%{opacity:.3}26%{opacity:.7}38%{opacity:.2}65%{opacity:.6}85%{opacity:.15}}
@keyframes signal-left{0%,100%{transform:none}22%{transform:translateX(3px)}37%{transform:translateX(-2px)}64%{transform:translateX(1px)}}
@keyframes signal-right{0%,100%{transform:none}29%{transform:translateX(-3px)}48%{transform:translateX(2px)}76%{transform:translateX(-1px)}}
@keyframes screen-offset{0%,100%{transform:none;filter:none}24%{transform:translateX(-1px);filter:contrast(1.02)}38%{transform:none;filter:none}66%{transform:translateX(1px);filter:saturate(.97)}}
.log-glitch:before{height:2px;opacity:.15;transform:none;backdrop-filter:none}
@keyframes log-signal-break{0%,100%{transform:none;filter:none}35%{transform:translateX(-1px);filter:drop-shadow(1px 0 #78acde40)}62%{transform:translateX(1px)}}
.log-home{background:#e2eaf4;color:#263e64;filter:none}
.log-home:after{opacity:.18}
.log-tabs{background:linear-gradient(#f5f8fc,#c7d6e9 46%,#a6bbd5 50%,#dee8f5);border-color:#8198b7}
.log-tabs button{color:#38527b;background:linear-gradient(#f7fbff,#d0dff1);border-color:#99afca}
.log-tabs button.selected{color:#193e78;background:#edf5ff;box-shadow:inset 0 3px #6d99d0}
.log-mast{background:linear-gradient(90deg,#dbeaff99 1px,transparent 1px) 0 0/26px 26px,linear-gradient(#9abbe52b 1px,transparent 1px) 0 0/26px 26px,linear-gradient(125deg,#e1edfc,#a2bfe6 65%,#e9f4ff);border-color:#819fc7;box-shadow:inset 0 0 0 4px #e5eefb,3px 4px #6483b142}
.log-mast>div:first-child{background:#eaf3ffde;border-left:2px solid #6489bc}
.log-mast h1{color:#254f90;text-shadow:1px 1px #fff;letter-spacing:.04em}
.log-mast h1 span,.log-mast small{color:#456b9c}
.log-mast>p{background:linear-gradient(100deg,#274d87,#4f75a6);border-color:#c1d7f4}
.log-barcode{filter:sepia(1) saturate(2) hue-rotate(165deg);opacity:.55}
.log-board{background:radial-gradient(circle,#628fc048 .65px,transparent 1px) 0 0/5px 5px,linear-gradient(135deg,#edf4ff,#d6e4f5 65%,#becfe8)}
.mini-window{background:#eaf1fa;border-color:#859cbc;box-shadow:inset 1px 1px #fff,3px 4px #6d88ae44}
.mini-window h2{background:linear-gradient(#eff5ff,#bacde6 44%,#9cb4d4 50%,#dbe6f5);color:#284d81;border-color:#829cbd}
.log-note>div{background:#f1f6fc}.log-entry{background:#edf4fc;border-color:#8ba4c7}.film-entry{background:#dce8f6}
.log-entry header b,.log-note p,.identity-card dd{color:#29466d}.log-entry header small,.pinned-still figcaption,.log-paper small{color:#5b7a9c}
.log-player{background:linear-gradient(130deg,#f5faff,#a6bddb 52%,#e1eaf7);border-radius:10px 10px 22px 10px}.log-player>b{color:#264b81}
.log-player img{filter:saturate(.85) contrast(1.03);border-color:#afc8e8}
.player-track{background:#294d81}.player-track i{background:#eff6ff;border-color:#7795b9}
.log-paper{background:#edf3fb;border-color:#7d9ac1}.log-paper h3{color:#31598e}
.log-footer{background:#d7e3f2;color:#587397}.identity-card>button{color:#2d5283;background:linear-gradient(#f5faff,#c4d5eb)}
.digital-portrait{background:linear-gradient(0deg,#7ba1d51a 1px,transparent 1px) 0 0/22px 22px,linear-gradient(90deg,#7ba1d51a 1px,transparent 1px) 0 0/22px 22px,linear-gradient(130deg,#b3cbe9,#f4f8fd 52%,#9dbadd);box-shadow:inset 0 0 24px #41679729}
.portrait-signal .profile-character{object-fit:contain;object-position:center bottom;filter:none}
.portrait-signal{left:50%;right:auto;width:auto;height:100%;aspect-ratio:2/3;transform:translateX(-50%);background:none}
.profile-eye-strip{position:absolute;z-index:2;left:35%;top:16.2%;width:29%;height:3%;background:repeating-linear-gradient(90deg,#203456 0 3px,#385c88 3px 4px,#a9c9e1 4px 5px,#223b5d 5px 8px);box-shadow:0 1px #b6d3ef88;clip-path:polygon(0 5%,35% 5%,35% 0,70% 0,70% 15%,100% 15%,100% 95%,67% 95%,67% 100%,30% 100%,30% 85%,0 85%)}
.portrait-signal:after{opacity:.1;animation:portrait-tracking 13s linear infinite}
@keyframes portrait-tracking{from{transform:translateY(-40px);opacity:.08}to{transform:translateY(290px);opacity:.08}}
body[data-scene="desktop"] .desktop:before{display:block;background:linear-gradient(115deg,#abcfff16,transparent 60%,#3275cf12);mix-blend-mode:screen}
.desktop-atmosphere{background:linear-gradient(115deg,#193b7110,transparent 60%,#a9c9f615)}
@keyframes signal-cut{0%,100%{opacity:0;transform:none}35%,80%{opacity:.16;transform:translateX(2px)}}
.galgame.narrative-dialog .gal-figure img{animation:none;transform:none;filter:drop-shadow(0 0 5px #729dca35);opacity:1}
.galgame.narrative-dialog .gal-figure .xin-main{filter:brightness(.36) contrast(1.15);opacity:.85}
.galgame.narrative-dialog .gal-figure .xin-eyes{position:absolute;inset:0;z-index:2;clip-path:polygon(38% 15%,61% 15%,61% 20.5%,38% 20.5%);filter:none;opacity:1}
.galgame.narrative-dialog .gal-figure:after{display:none}
.xin-digit-field{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:bottom;pointer-events:none;mix-blend-mode:screen;opacity:.78}
.galgame.narrative-dialog .gal-figure{width:min(330px,44vh);height:auto;aspect-ratio:2/3;bottom:125px}
.desktop-glint{position:absolute;width:16px;height:16px;background:#eff7ff;clip-path:polygon(50% 0,56% 42%,100% 50%,56% 57%,50% 100%,43% 57%,0 50%,43% 42%);filter:drop-shadow(0 0 6px #dcf4ff);animation:desktop-glimmer 6s ease-in-out infinite;opacity:.4}
.desktop-glint:nth-of-type(3){left:28%;top:11%;animation-delay:-1s}.desktop-glint:nth-of-type(4){left:54%;top:26%;width:10px;height:10px;animation-delay:-3s}.desktop-glint:nth-of-type(5){left:91%;top:37%;animation-delay:-4s}.desktop-glint:nth-of-type(6){left:74%;top:8%;width:24px;height:24px;animation-delay:-2s}
@keyframes desktop-glimmer{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:.65;transform:scale(1.05)}}
@media(max-width:680px){.galgame.narrative-dialog .gal-figure{width:min(210px,40vh);height:auto;aspect-ratio:2/3;bottom:165px;left:4px}}
@media(max-width:680px){.galgame.narrative-dialog .gal-body{padding:15px 18px 18px}.galgame.narrative-dialog .typed-line{font-size:17px;min-height:5.25em}.galgame.narrative-dialog .gal-body header{margin:-7px -10px 12px}.galgame.narrative-dialog .gal-options button{font-size:13px;padding:9px 12px}}
