.game-shell.ui-dialogue-custom .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),
.screen.ui-dialogue-custom .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only){background:var(--ui-dialogue-image) center/100% 100% no-repeat!important;border:0!important;box-shadow:none!important;clip-path:none!important}
.game-shell.ui-cursor-custom,.game-shell.ui-cursor-custom button,.screen.ui-cursor-custom{cursor:var(--ui-cursor-image),pointer!important}

.style-library{margin-top:18px;padding:16px;border:1px solid #343b46;border-radius:10px;background:#11161d;color:#c9d1dc}
.style-library h3{margin:0 0 5px;color:#e2c58c;font-size:16px}
.style-library p{margin:0;color:#97a2ae;font-size:12px;line-height:1.6}
.style-library-group{margin-top:18px;padding-top:15px;border-top:1px solid #303741}
.style-library-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.style-library-group-head b{font-size:13px;color:#e7d5af}
.style-library button,.style-library .style-upload{padding:6px 10px;border:1px solid #5d626a;border-radius:5px;background:#222831;color:#e5d2a9;cursor:pointer;font-size:12px;white-space:nowrap}
.style-library button:hover,.style-library .style-upload:hover{border-color:#c7a267;background:#2b3037}
.style-library-grid{display:grid;gap:9px}
.style-library-card{display:grid;grid-template-columns:minmax(116px,42%) minmax(0,1fr);gap:12px;align-items:center;padding:10px;border:1px solid #39414b;border-radius:7px;background:#171d25}
.style-library-card.selected{border-color:#c69e5c;box-shadow:inset 0 0 0 1px #c69e5c}
.style-preview{height:90px;display:grid;place-items:center;overflow:hidden;border:1px solid #525961;border-radius:4px;background-color:#ededed;background-image:linear-gradient(45deg,#c8c8c8 25%,transparent 25%),linear-gradient(-45deg,#c8c8c8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c8c8c8 75%),linear-gradient(-45deg,transparent 75%,#c8c8c8 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}
.style-preview-image{display:block;max-width:100%;max-height:100%;object-fit:contain}
/* The built-in thumbnail follows the existing game's dialogue polish: gold nameplate,
   dark translucent panel, corner treatment and continue control. */
.style-sample{position:relative;display:flex;flex-direction:column;justify-content:center;gap:5px;width:92%;height:70%;padding:13px 10px 7px;color:#f4efe6;font:10px 'Noto Serif SC','SimSun',serif;border:1px solid rgba(216,189,138,.32);border-radius:2px 13px 2px 13px;background:linear-gradient(100deg,rgba(5,8,11,.97),rgba(7,10,13,.88) 60%,rgba(14,16,17,.78));box-shadow:0 8px 22px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.035)}
.style-sample::before{content:'';position:absolute;top:-1px;left:12px;width:55px;height:2px;background:linear-gradient(90deg,#e1c58f,transparent)}
.style-sample b{position:absolute;top:-8px;left:10px;padding:2px 10px;color:#f5e3c0;font:10px 'Noto Serif SC','SimSun',serif;border:1px solid rgba(216,189,138,.75);background:linear-gradient(180deg,#453422,#1b1917)}
.style-sample span{font-size:10px;letter-spacing:.04em}
.style-sample i{position:absolute;right:7px;bottom:5px;color:#ead5a8;font:9px 'Noto Sans SC','Microsoft YaHei',sans-serif}
.style-cursor-sample{display:grid;place-items:center;width:55px;height:55px;color:#f5deb0;font-size:33px;line-height:1}
.style-info{min-width:0}
.style-info>b,.style-info>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.style-info>b{margin-bottom:4px;color:#f0e6d3;font-size:13px}
.style-info>small{margin-top:3px;color:#9da8b5;font-size:11px}
.style-actions{display:flex;gap:6px;margin-top:9px}
.style-actions .style-use{color:#f2d39a;border-color:#9e7942;background:#3c3020}
.style-library-card.selected .style-use{color:#b9e5c8;border-color:#5b8b6d;background:#1c3328}
.style-actions .style-delete{color:#e6a19a}
.style-variant-upload{display:inline-block;margin-top:7px!important}
.style-library .style-library-size{margin-top:16px;padding:9px 10px;border-left:2px solid #c39a5f;background:#1b222b}
.style-library input[type=file]{display:none}
@media(max-width:420px){.style-library-card{grid-template-columns:100px minmax(0,1fr);gap:8px}.style-preview{height:78px}.style-actions{flex-wrap:wrap}}

.style-library-group-head small{color:#8e9aa9;font-size:11px}
.style-mode-card .style-info>small{white-space:normal;line-height:1.4}
.style-mode-sample{position:relative;width:92%;min-height:60%;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:13px 10px 7px;color:#f5f1e8;font:11px 'Noto Serif SC','SimSun',serif}
.style-mode-sample b{position:absolute;left:9px;top:-8px;min-width:40px;padding:2px 7px;color:#17130e;background:linear-gradient(110deg,#ead5a8,#b9955d);border:1px solid rgba(255,242,205,.5);border-radius:2px 8px 2px 8px;text-align:center;font:700 9px 'Noto Sans SC','Microsoft YaHei',sans-serif}
.style-mode-dialogue{border:1px solid rgba(216,189,138,.5);border-radius:2px 13px 2px 13px;background:linear-gradient(100deg,rgba(5,8,11,.97),rgba(7,10,13,.88) 60%,rgba(14,16,17,.78));box-shadow:0 8px 22px rgba(0,0,0,.45)}
.style-mode-dialogue::before{content:'';position:absolute;top:-1px;left:10px;width:50px;height:2px;background:linear-gradient(90deg,#e1c58f,transparent)}
.style-mode-overlay{background:rgba(0,0,0,.08);text-shadow:0 2px 4px #000,0 0 10px #000}
.style-mode-overlay b{position:static;width:max-content;padding:0 3px 3px;color:#d8bd8a;background:transparent;border:0;border-bottom:1px solid #d8bd8a;border-radius:0;text-align:left;text-shadow:0 2px 4px #000}
.style-mode-narration{border:1px solid rgba(255,255,255,.16);border-radius:3px 12px 3px 12px;background:linear-gradient(100deg,rgba(7,11,17,.58),rgba(10,14,20,.42));font-family:'Noto Sans SC','Microsoft YaHei',sans-serif}
.style-mode-blank{align-items:center;color:#37404a;font-family:'Noto Sans SC','Microsoft YaHei',sans-serif}

/* Canonical Lanting suite: independent translucent skin, outside speaker and flowing text. */
:is(.game-shell,.screen).ui-dialogue-lanting,.style-sample-lanting{--lanting-frame:url("./ui-assets/lanting-dialogue.png");--lanting-font:18px;--lanting-name-font:20px;--lanting-inset:28px;--lanting-skin-opacity:.65;--lanting-pad-top:22px;--lanting-pad-bottom:16px;--lanting-continue-size:40px;--lanting-continue-icon:36px;--lanting-text-end:0px}
.screen.ui-dialogue-lanting{container-type:inline-size;--lanting-font:4.615cqw;--lanting-name-font:5.128cqw;--lanting-inset:7.18cqw}
.game-shell.canvas-portrait.ui-dialogue-lanting{--lanting-font:14px;--lanting-name-font:14px;--lanting-inset:20px;--lanting-pad-top:12px;--lanting-pad-bottom:12px;--lanting-continue-size:24px;--lanting-continue-icon:16px;--lanting-text-end:18px}
.screen.portrait.ui-dialogue-lanting{--lanting-font:3.59cqw;--lanting-name-font:3.59cqw;--lanting-inset:5.128cqw;--lanting-pad-top:3.077cqw;--lanting-pad-bottom:3.077cqw;--lanting-continue-size:6.154cqw;--lanting-continue-icon:4.103cqw;--lanting-text-end:4.615cqw}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only),.style-sample-lanting){isolation:isolate;overflow:visible!important;min-height:0!important;height:auto!important;max-height:none!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;clip-path:none!important;backdrop-filter:none!important;padding:var(--lanting-pad-top) var(--lanting-inset) var(--lanting-pad-bottom)!important;color:#f6eee0}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only),.style-sample-lanting)::before,:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only),.style-sample-lanting)::after{content:''!important;display:block!important;position:absolute!important;inset:0!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:var(--lanting-frame) center/103% 200% no-repeat!important;box-shadow:none!important;pointer-events:none;z-index:-1}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only),.style-sample-lanting)::before{opacity:var(--lanting-skin-opacity)}
/* Keep metallic frame opaque while the interior texture remains translucent. */
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode),.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only),.style-sample-lanting)::after{opacity:1;padding:9px;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode) .speaker,.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only) strong){position:absolute!important;top:auto!important;bottom:calc(100% + 10px)!important;left:var(--lanting-name-left,var(--lanting-inset))!important;right:var(--lanting-name-right,auto)!important;display:block;min-width:0!important;width:max-content;max-width:calc(100% - 2 * var(--lanting-inset))!important;margin:0!important;padding:0 0 6px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#f3ddb2!important;font-family:'Noto Serif SC','SimSun',serif!important;font-size:var(--lanting-name-font)!important;font-weight:500!important;line-height:1.3!important;letter-spacing:.06em!important;text-align:var(--lanting-name-align,left)!important;text-shadow:0 2px 5px #000,0 0 10px #0008;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode) .speaker,.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only) strong)[hidden]{display:none!important}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode:not(.overlay-mode):not(.silent-mode) .speaker,.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration):not(.preview-interaction-only) strong)::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,#e2c18b,transparent)}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.nameplate-right,.screen.ui-dialogue-lanting .preview-box.nameplate-right){--lanting-name-left:auto;--lanting-name-right:var(--lanting-inset);--lanting-name-align:right}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode.nameplate-right .speaker,.screen.ui-dialogue-lanting .preview-box.nameplate-right strong)::after{background:linear-gradient(270deg,#e2c18b,transparent)}
:is(.game-shell.ui-dialogue-lanting .dialogue-panel.character-mode .line,.screen.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration) p){min-height:0!important;margin:0!important;padding:0 var(--lanting-text-end) 0 0!important;font-family:'Noto Serif SC','SimSun',serif!important;font-size:var(--lanting-font)!important;font-weight:400!important;line-height:1.65!important;letter-spacing:.02em!important;color:#fff3df!important;white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere;line-break:strict;text-shadow:0 2px 4px #0009}
.game-shell.ui-dialogue-lanting .choice-list{grid-template-columns:1fr;gap:12px}
.game-shell.ui-dialogue-lanting .choice-list button:not(.timeline-continue){border:1px solid #dfb775;border-radius:3px 20px 3px 20px;background:linear-gradient(110deg,#112c30ed,#173b37e8 65%,#0b242ce8);box-shadow:inset 0 0 0 4px #10212b,inset 0 0 0 5px #b28c52;min-height:54px;color:#fff1d8;padding:14px 28px;font-family:'SimSun',serif;letter-spacing:.08em}
.game-shell.ui-dialogue-lanting .choice-list button:not(.timeline-continue):nth-child(odd){background:linear-gradient(110deg,#102330ed,#213d50e8,#102731ed)}
.game-shell.ui-dialogue-lanting .choice-list button:not(.timeline-continue):hover,.game-shell.ui-dialogue-lanting .choice-list button:not(.timeline-continue):focus-visible{border-color:#fff0bf;box-shadow:inset 0 0 0 4px #10212b,inset 0 0 0 5px #eed3a0,0 0 18px #ddb87835}
.game-shell.ui-dialogue-lanting .choice-list em{background:none;border:0;color:#f5d59d;border-radius:0;font-size:0}
.game-shell.ui-dialogue-lanting .choice-list em::before{content:'✦';font-size:24px}
.game-shell.ui-dialogue-lanting .timeline-continue,.screen.ui-dialogue-lanting .preview-segment-action{width:var(--lanting-continue-size)!important;min-width:var(--lanting-continue-size)!important;height:var(--lanting-continue-size)!important;min-height:var(--lanting-continue-size)!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.game-shell.ui-dialogue-lanting .timeline-continue em,.screen.ui-dialogue-lanting .preview-segment-action em{display:block!important;width:var(--lanting-continue-icon)!important;height:var(--lanting-continue-icon)!important;font-size:0!important;transform:none!important;border:0!important;border-radius:0!important;padding:0!important;background:url("./ui-assets/lanting-continue.svg") center/contain no-repeat!important;filter:drop-shadow(0 0 5px #e6b97570)}
.game-shell.ui-dialogue-lanting .timeline-continue em::before,.game-shell.ui-dialogue-lanting .timeline-continue em::after,.screen.ui-dialogue-lanting .preview-segment-action em::before,.screen.ui-dialogue-lanting .preview-segment-action em::after{content:none!important}
.screen.ui-dialogue-lanting #pChoices:has(.preview-segment-action){display:flex;justify-content:flex-end;width:100%}
.game-shell.canvas-portrait.ui-dialogue-lanting .dialogue-panel.character-mode .timeline-continue-host,.screen.portrait.ui-dialogue-lanting #pChoices:has(.preview-segment-action){position:absolute;right:6px;bottom:6px;display:flex;width:var(--lanting-continue-size);min-height:0;margin:0;justify-content:center;align-items:center}
.game-shell.canvas-portrait.ui-dialogue-lanting .dialogue-panel.character-mode .timeline-continue-host[hidden]{display:none!important}
.style-sample-lanting{width:96%;height:80%;padding:12px 22px!important}.style-sample-lanting b{display:block;top:-12px;left:22px;padding:0;background:none;border:0;color:#f3ddb2;font-size:10px;box-shadow:none}
.style-info>.style-dimensions{white-space:normal;line-height:1.5}


.style-inspection-sample{width:86%;height:84%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#e7d1a8;background:radial-gradient(ellipse,#334155,#101720);font-size:30px}.style-inspection-sample.lanting{background:url('./ui-assets/lanting-inspection.png') center/100% 100% no-repeat}.style-inspection-sample small{font-size:8px}
.style-inspection-sample>span{width:36px;height:36px;font-size:0;background:url('./ui-assets/lanting-magnifier.svg') center/contain no-repeat}
.style-inspection-sample.frameless{background:transparent}
.cover-start,.cover-preview-copy button{border:0!important;border-radius:0!important;background:url('./ui-assets/lanting-cover-button.svg') center/100% 100% no-repeat!important;color:#f0d08a!important;box-shadow:none!important;min-height:48px;padding:14px 34px!important;font-family:'Noto Serif SC','SimSun',serif!important;letter-spacing:.2em;cursor:pointer;text-shadow:0 1px 3px #000}
.cover-start:hover,.cover-preview-copy button:hover{filter:brightness(1.16)}
.cover-start:focus-visible,.cover-preview-copy button:focus-visible{outline:2px solid #ebcb83;outline-offset:4px}

.game-shell.canvas-portrait.ui-dialogue-lanting .choice-list:empty{display:none;margin:0}

/* Portrait dialogue reserves exactly two visible text lines; longer copy scrolls. */
:is(.game-shell.canvas-portrait.ui-dialogue-lanting .dialogue-panel.character-mode .line,.screen.portrait.ui-dialogue-lanting .preview-box:not(.preview-overlay):not(.preview-narration) p){min-height:calc(var(--lanting-font) * 3.3)!important;max-height:calc(var(--lanting-font) * 3.3);overflow-y:auto;pointer-events:auto;scrollbar-width:thin}
