/* =========================================================
   라공에디션 - 게시글 임베드형 비주얼노벨 플레이어
   (list/view/write.skin.php의 style.css와는 별개로,
    VN 로그가 첨부된 게시글에서만 추가로 로드됩니다)
   ========================================================= */
.lgvn-root{
	user-select:none;
	-webkit-user-select:none;
	-ms-user-select:none;
	--lgvn-accent:#e4e4e8;
	--lgvn-accent-soft:rgba(255,255,255,.08);
	--lgvn-text:#f3efe6;
	--lgvn-text-dim:#a7a3b3;
	--lgvn-text-faint:#6a6779;
	--lgvn-ok:#7fb8e0;
	--lgvn-crit:#ffd76a;
	--lgvn-fail:#e0716c;
	--lgvn-fumble:#b33a3a;
	position:relative;
	width:100%;
	aspect-ratio:16/9;
	max-height:min(76vh,653px);
	min-height:280px;
	border-radius:0;
	overflow:hidden;
	background:#2c2c2c;
	color:var(--lgvn-text);
	font-family:"Noto Sans KR","Pretendard","Apple SD Gothic Neo","Malgun Gothic",-apple-system,BlinkMacSystemFont,sans-serif;
	display:flex;
	flex-direction:column;
	box-shadow:0 10px 30px rgba(0,0,0,.35);
	outline:none;
	margin-bottom:22px;
}
.lgvn-root:fullscreen,
.lgvn-root:-webkit-full-screen{
	width:100vw;
	height:100vh;
	max-height:none;
	aspect-ratio:auto;
	border-radius:0;
	margin-bottom:0;
}
.lgvn-root:fullscreen .lgvn-dialogue-zone,
.lgvn-root:-webkit-full-screen .lgvn-dialogue-zone{
	padding:0;
}
.lgvn-root:fullscreen .lgvn-dialogue-box,
.lgvn-root:-webkit-full-screen .lgvn-dialogue-box{
	max-width:min(1200px, 78vw);
	padding:26px 36px 30px;
	height:190px;
}
.lgvn-root:fullscreen .lgvn-nameplate,
.lgvn-root:-webkit-full-screen .lgvn-nameplate{
	font-size:21px;
}
.lgvn-root:fullscreen .lgvn-dialogue-text,
.lgvn-root:-webkit-full-screen .lgvn-dialogue-text{
	font-size:17px;line-height:1.7;
}
.lgvn-root:fullscreen .lgvn-roll-line,
.lgvn-root:-webkit-full-screen .lgvn-roll-line{
	font-size:15px;
}
.lgvn-root *{box-sizing:border-box;}

.lgvn-progress-track{ position:relative;z-index:2; height:2px; background:rgba(255,255,255,.08); flex-shrink:0; }
.lgvn-progress-fill{ height:100%; background:var(--lgvn-accent); width:0%; transition:width .25s ease; }

.lgvn-toolbar{
	position:relative;z-index:2;
	display:flex;align-items:center;justify-content:space-between;
	padding:8px 12px;flex-shrink:0;
}
.lgvn-toolbar-left{font-size:11.5px;color:#ffffff;}
.lgvn-toolbar-right{display:flex;gap:6px;}
.lgvn-icon-btn{
	background:rgba(255,255,255,.05);
	border:1px solid rgba(255,255,255,.1);
	color:#ffffff;
	font-size:11.5px;
	padding:6px 10px;
	border-radius:0;
	cursor:pointer;
	display:flex;align-items:center;gap:5px;
}
.lgvn-icon-btn:hover{ color:var(--lgvn-text); border-color:var(--lgvn-accent); }
.lgvn-icon-btn.on{ background:var(--lgvn-accent-soft); border-color:var(--lgvn-accent); color:var(--lgvn-accent); }

.lgvn-stage{
	flex:1;
	display:flex;
	align-items:flex-start;
	justify-content:flex-start;
	position:relative;
	z-index:2;
	min-height:0;
	overflow:hidden;
	cursor:pointer;
	padding:0;
}
.lgvn-stage-bg{ position:absolute;inset:0; background-size:cover;background-position:center; display:none; z-index:0; }
.lgvn-stage-overlay{
	display:none;
}
.lgvn-sprite-wrap{
	position:absolute;z-index:2;
	top:0; bottom:0; left:15%;
	width:30%;
	max-width:320px;
	display:flex;align-items:flex-end;justify-content:center;
	transition:opacity .18s ease;
}
.lgvn-sprite-img{
	height:65%;
	width:100%;
	object-fit:contain;
	object-position:bottom center;
	border-radius:0;
	filter:drop-shadow(0 14px 22px rgba(0,0,0,.5));
	-webkit-user-drag:none;
	user-drag:none;
	pointer-events:none;
}

.lgvn-hint{
	position:absolute;right:14px;bottom:150px;
	font-size:10.5px;color:var(--lgvn-text-faint);
	opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:3;
}
.lgvn-hint.show{opacity:1;}

.lgvn-dialogue-zone{ position:relative;z-index:2; flex-shrink:0; padding:0 14px 14px; }
.lgvn-dialogue-box{
	max-width:760px;margin:0 auto;
	background:#121212;
	border-radius:3px;
	backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
	padding:14px 24px 26px;
	position:relative;height:150px;
	display:flex;flex-direction:column;
}
.lgvn-nameplate{
	flex-shrink:0;
	color:#ffffff;
	font-family:"Noto Sans KR","Pretendard","Apple SD Gothic Neo","Malgun Gothic",-apple-system,BlinkMacSystemFont,sans-serif;
	font-weight:700;font-size:16px;letter-spacing:.01em;
	margin-bottom:12px;
}
.lgvn-dialogue-text{
	flex:1;
	min-height:0;
	overflow-y:auto;
	font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;
	margin-top:0;
	padding-right:6px;
	scrollbar-width:thin;
	scrollbar-color:#2c2c2c transparent;
}
.lgvn-dialogue-text::-webkit-scrollbar{ width:6px; }
.lgvn-dialogue-text::-webkit-scrollbar-track{ background:transparent; }
.lgvn-dialogue-text::-webkit-scrollbar-thumb{ background:#2c2c2c; border-radius:3px; }
.lgvn-roll-line{
	flex-shrink:0;
	margin-top:10px;display:none;align-items:center;gap:6px;
	font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	padding:7px 10px;border-radius:0;
	background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
	color:var(--lgvn-text-dim); white-space:pre-wrap;word-break:break-word;
}
.lgvn-roll-line.show{display:flex;}
.lgvn-roll-line.ok{color:var(--lgvn-ok);border-color:rgba(127,184,224,.35);}
.lgvn-roll-line.crit{color:var(--lgvn-crit);border-color:rgba(255,215,106,.4);}
.lgvn-roll-line.fail{color:var(--lgvn-fail);border-color:rgba(224,113,108,.35);}
.lgvn-roll-line.fumble{color:var(--lgvn-fumble);border-color:rgba(179,58,58,.45);}

.lgvn-end{
	display:none;position:absolute;inset:0;background:rgba(4,4,6,.82);
	align-items:center;justify-content:center;flex-direction:column;text-align:center;
	padding:20px;z-index:5;
}
.lgvn-end.show{display:flex;}
.lgvn-end-title{font-family:"Noto Serif KR",serif;font-size:22px;font-weight:700;color:var(--lgvn-accent);margin-bottom:6px;}
.lgvn-end-sub{font-size:12px;color:var(--lgvn-text-dim);margin-bottom:18px;}
.lgvn-btn{
	font-size:13px;font-weight:500;padding:9px 18px;border-radius:0;
	border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);
	color:var(--lgvn-text);cursor:pointer;
}
.lgvn-btn:hover{ border-color:var(--lgvn-accent); }
.lgvn-btn-primary{ background:var(--lgvn-accent); border-color:var(--lgvn-accent); color:#16161a; font-weight:700; }

.lgvn-log-panel{
	position:absolute;inset:0;background:rgba(5,5,8,.94);backdrop-filter:blur(6px);
	z-index:20;display:none;flex-direction:column;
}
.lgvn-log-panel.show{display:flex;}
.lgvn-log-header{
	display:flex;align-items:center;justify-content:space-between;
	padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;
}
.lgvn-log-header h4{ font-family:"Noto Serif KR",serif;margin:0;font-size:14px; }
.lgvn-log-close{ background:none;border:none;color:var(--lgvn-text-dim);font-size:20px;cursor:pointer;line-height:1; }
.lgvn-log-list{ flex:1;overflow-y:auto;padding:6px 16px 24px; }
.lgvn-log-item{ padding:9px 10px;border-radius:0;cursor:pointer;border-left:3px solid transparent; }
.lgvn-log-item:hover{ background:rgba(255,255,255,.04); }
.lgvn-log-item.current{ border-left-color:var(--lgvn-accent); background:var(--lgvn-accent-soft); }
.lgvn-log-item .ln{ font-size:11px;font-weight:700;margin-right:6px; }
.lgvn-log-item .lt{ font-size:12.5px;color:var(--lgvn-text-dim);white-space:pre-wrap;word-break:break-word; }

.lgvn-error{
	margin:auto;padding:20px;text-align:center;color:var(--lgvn-text-dim);font-size:13px;
}

/* ---------- 설정 화면 ---------- */
.lgvn-setup{
	height:100%;
	overflow-y:auto;
	padding:22px 24px 26px;
	background:#2c2c2c;
}
.lgvn-setup-eyebrow{
	font-size:10.5px;letter-spacing:.12em;color:var(--lgvn-accent);margin:0 0 8px;
}
.lgvn-setup-title{
	font-family:"Noto Serif KR",serif;font-weight:900;font-size:20px;margin:0 0 8px;
}
.lgvn-setup-sub{
	font-size:12.5px;color:var(--lgvn-text-dim);line-height:1.6;margin:0 0 20px;
}
.lgvn-section-heading{
	font-size:12px;color:var(--lgvn-text-dim);margin:0 0 8px;font-weight:600;
}
.lgvn-tab-filter{
	display:flex;flex-wrap:wrap;gap:8px;
}
.lgvn-tab-chip{
	display:inline-flex;align-items:center;gap:6px;
	font-size:12px;color:var(--lgvn-text);
	background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);
	padding:6px 12px;border-radius:999px;cursor:pointer;
	transition:opacity .15s ease;
}
.lgvn-tab-chip.off{ opacity:.4; }
.lgvn-tab-chip input{ accent-color:var(--lgvn-accent); cursor:pointer; }

.lgvn-select-toolbar{
	display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;
}
.lgvn-mini-btn{
	font-size:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);
	color:var(--lgvn-text-dim);padding:6px 10px;border-radius:0;cursor:pointer;
}
.lgvn-mini-btn:hover{ color:var(--lgvn-text); border-color:var(--lgvn-accent); }
.lgvn-range-inputs{
	display:flex;align-items:center;gap:5px;font-size:11px;color:var(--lgvn-text-faint);margin-left:auto;
}
.lgvn-range-inputs input{
	width:48px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);
	border-radius:0;color:var(--lgvn-text);padding:5px 6px;font-size:11.5px;
}
.lgvn-select-list{
	max-height:180px;overflow-y:auto;border:1px solid rgba(255,255,255,.16);border-radius:0;
	background:rgba(255,255,255,.015);margin-bottom:20px;
}
.lgvn-select-item{
	display:flex;align-items:flex-start;gap:8px;padding:7px 10px;
	border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;
}
.lgvn-select-item:last-child{ border-bottom:none; }
.lgvn-select-item:hover{ background:rgba(255,255,255,.03); }
.lgvn-select-item.off{ opacity:.35; }
.lgvn-select-item input{ margin-top:3px;flex-shrink:0;accent-color:var(--lgvn-accent); }
.lgvn-select-item .si-idx{ font-size:10px;color:var(--lgvn-text-faint);width:20px;flex-shrink:0;padding-top:1px; }
.lgvn-select-item .si-body{ min-width:0;flex:1; }
.lgvn-select-item .si-name{ font-size:10.5px;font-weight:700;margin-bottom:2px; }
.lgvn-select-item .si-text{
	font-size:11.5px;color:var(--lgvn-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.lgvn-select-count{ color:var(--lgvn-accent);font-weight:600; }

.lgvn-cast-grid{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;margin-bottom:20px;
}
.lgvn-cast-card{ text-align:center; }
.lgvn-cast-thumb{
	width:52px;height:52px;border-radius:0;margin:0 auto 6px;
	background-size:cover;background-position:center;
	display:flex;align-items:center;justify-content:center;
	font-family:"Noto Serif KR",serif;font-weight:700;font-size:18px;
	cursor:pointer;border:2px solid rgba(255,255,255,.08);
}
.lgvn-cast-name{
	font-size:10.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;
}
.lgvn-cast-tag{ display:block;font-size:9px;min-height:11px;margin-bottom:3px; }
.lgvn-cast-tag.auto{ color:var(--lgvn-accent); }
.lgvn-cast-btn{
	font-size:9.5px;background:none;border:none;color:var(--lgvn-text-faint);
	cursor:pointer;text-decoration:underline;padding:1px 3px;
}
.lgvn-cast-btn:hover{ color:var(--lgvn-accent); }
.lgvn-file-input{ display:none; }

.lgvn-start-btn{ width:100%;margin-top:4px;padding:13px; font-size:14px; }
.lgvn-primary-hint{
	font-size:11px;color:var(--lgvn-text-faint);text-align:center;margin:8px 0 0;line-height:1.5;
}

@media (max-width:640px){
	.lgvn-root{ aspect-ratio:auto; height:min(70vh,560px); max-height:none; }
	.lgvn-stage{ padding:0; }
	.lgvn-sprite-wrap{ width:42%; max-width:220px; }
	.lgvn-dialogue-text{ font-size:12px; }
	.lgvn-nameplate{ font-size:14px; margin-bottom:10px; }
	.lgvn-toolbar-left{ display:none; }
}
