@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11.woff2) format("woff2");font-weight:100 499;font-display:swap}@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11-Bold.woff2) format("woff2");font-weight:500 900;font-display:swap}:root{--bg: #080808;--bg-alt: #0f0f0f;--surface: #161616;--surface-2: #1f1f1f;--text: #d2d2d2;--text-muted: #8a8a8a;--text-dim: #5a5a5a;--border: #2a2a2a;--border-strong: #3a3a3a;--accent: #4d8aff;--accent-fill: #2c6cff;--accent-hover: #6ba1ff;--red: #ff5555}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow-x:hidden;overscroll-behavior-y:none}body{font-family:Galmuri11,ui-monospace,SFMono-Regular,SF Mono,JetBrains Mono,IBM Plex Mono,Menlo,Consolas,monospace;font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}h1,h2,h3{line-height:1.2;font-weight:500}body.theater-lock{overflow-x:hidden;height:calc(100lvh + 200px)}button{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--border-strong);background:transparent;border-radius:4px;min-height:44px;padding:0 16px;touch-action:manipulation}button:active{border-color:var(--accent);color:var(--accent)}@media (hover: hover){button:hover{border-color:var(--accent);color:var(--accent)}}button.active{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;font-weight:500}button:disabled{border-color:var(--border);color:var(--text-dim);background:transparent}a{color:var(--text);text-decoration:none}a:active,a:hover{color:var(--accent);text-decoration:underline}input[type=text],input[type=password]{font:inherit;color:var(--text);background:var(--bg-alt);border:1px solid var(--border-strong);border-radius:4px;min-height:44px;padding:0 8px}input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--accent)}input::placeholder{color:var(--text-dim)}.home{max-width:720px;margin:0 auto;padding:24px 16px calc(32px + env(safe-area-inset-bottom))}.home-header{padding-bottom:16px;border-bottom:1px solid var(--border)}.home-header h1{font-size:20px}.home-header h1:before{content:"$ ";color:var(--accent)}.home-notice{margin-top:8px;color:var(--text-muted);font-size:12px}.drama-list{list-style:none}.drama-card{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border);padding:16px 8px;min-height:72px}.drama-card:active{background:var(--surface)}.drama-info{flex:1;min-width:0}.drama-title{font-weight:500;font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drama-meta{margin-top:8px;font-size:12px;color:var(--text-muted)}.drama-arrow{color:var(--text-dim);font-size:16px}.drama-header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}.drama-page-title{font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.episode-section{padding:16px 0 24px;border-bottom:1px solid var(--border)}.episode-section-disabled{opacity:.4}.episode-section-title{display:flex;align-items:center;gap:8px;font-size:16px;padding-bottom:16px}.part-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.part-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;padding:16px;min-height:72px}.part-card:active{border-color:var(--accent);background:var(--surface)}@media (hover: hover){.part-card:hover{border-color:var(--accent);text-decoration:none}}.part-card-disabled{opacity:.4}.part-label{font-weight:500;font-size:16px;color:var(--accent)}.badge{font-size:12px;padding:0;white-space:nowrap}.badge:before{content:"[";color:var(--text-dim)}.badge:after{content:"]";color:var(--text-dim)}.badge-ok{color:var(--accent)}.badge-muted{color:var(--text-dim)}.badge-review{background:var(--accent-fill);color:#fff;padding:0 4px;margin-left:8px;border-radius:4px;vertical-align:middle;font-weight:500}.badge-review:before,.badge-review:after{content:""}.preview-banner{margin-top:16px;border:1px solid var(--accent);border-radius:4px;padding:8px 16px;font-size:12px;color:var(--text)}.preview-banner:before{content:"# ";color:var(--accent)}.part-nav{display:flex;justify-content:space-between;align-items:center;gap:8px}.part-nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--border-strong);border-radius:4px;background:transparent;font-weight:500;color:var(--text)}.part-nav-link:active,.part-nav-link:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.watch{max-width:720px;margin:0 auto;padding-bottom:calc(32px + env(safe-area-inset-bottom))}.watch button,.watch .part-nav-link{border-radius:0}.watch-header{display:flex;align-items:center;gap:16px;padding:16px}.back-link{color:var(--accent);font-weight:500;padding:8px 0;white-space:nowrap}.watch-title{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.player-stage{position:relative;background:#000}.player-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden}.player-embed,.player-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.player-message{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border)}.player-error{color:var(--red);font-weight:500}.theater-toggle{position:absolute;right:8px;bottom:-56px;z-index:5;font-size:12px}.watch-theater .player-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.watch-theater .player-frame{width:min(100%,calc(100dvh * 16 / 9));max-height:100dvh}.watch-theater .theater-toggle{position:fixed;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));bottom:auto;z-index:110;background:var(--bg);transition:opacity .35s ease}.watch-theater .theater-toggle.chrome-hidden{opacity:0;pointer-events:none}.player-stage:fullscreen{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000}.player-stage:-webkit-full-screen{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000}.theater-hint{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:120;max-width:80vw;padding:8px 16px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text-muted);font-size:12px;text-align:center;pointer-events:none;animation:hint-fade 6s forwards}@keyframes hint-fade{0%{opacity:0}8%{opacity:1}80%{opacity:1}to{opacity:0}}.subtitle-overlay{position:absolute;left:4%;right:4%;bottom:8%;z-index:10;display:flex;justify-content:center;text-align:center;pointer-events:none}.subtitle-text{display:inline-block;max-width:100%;background:#000000bf;border-radius:4px;padding:4px 8px;line-height:1.5;font-weight:600;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;word-break:keep-all;overflow-wrap:break-word}.subtitle-line{display:block}.subtitle-small .subtitle-text{font-size:clamp(11px,2vw,16px)}.subtitle-medium .subtitle-text{font-size:clamp(13px,2.6vw,20px)}.subtitle-large .subtitle-text{font-size:clamp(16px,3.4vw,26px)}.watch-theater .subtitle-small .subtitle-text{font-size:clamp(12px,2.8dvh,20px)}.watch-theater .subtitle-medium .subtitle-text{font-size:clamp(14px,3.6dvh,26px)}.watch-theater .subtitle-large .subtitle-text{font-size:clamp(17px,4.8dvh,34px)}.controls{padding:72px 16px 8px;display:flex;flex-direction:column;gap:24px;max-width:720px;margin:0 auto}.control-group{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--border)}.control-label{font-size:14px;font-weight:500;color:var(--text-muted)}.offset-value{color:var(--accent)}.control-row{display:flex;flex-wrap:wrap;gap:8px}.control-row button{flex:1;min-width:64px}.control-hint{font-size:12px;color:var(--text-dim)}.notice{color:var(--text-muted);padding:8px 0}.admin{max-width:720px;margin:0 auto;padding:24px 16px calc(32px + env(safe-area-inset-bottom))}.admin h1{font-size:20px}.admin h1:before{content:"# ";color:var(--accent)}.admin-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}.admin-header-actions{display:flex;align-items:center;gap:16px}.admin-logout{font-size:12px;min-height:38px}.admin input[type=text],.admin input[type=password]{width:100%}.admin-token-form{display:flex;flex-direction:column;gap:8px;max-width:360px;margin-top:16px}.admin-message{background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:8px 16px;margin-bottom:16px;font-size:12px}.admin-message:before{content:"> ";color:var(--accent)}.admin-part{display:flex;flex-direction:column;gap:8px;background:var(--bg-alt);border:1px solid var(--border);border-radius:4px;padding:16px;margin-bottom:8px}.admin-subtitle-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.admin-upload{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--border-strong);border-radius:4px;background:transparent;font-size:12px;cursor:pointer}.admin-upload:active,.admin-upload:hover{border-color:var(--accent);color:var(--accent)}.admin-upload input[type=file]{display:none}.admin-remove{font-size:12px;min-height:40px;border-color:var(--border);color:var(--text-muted)}.admin-remove:active{border-color:var(--red);color:var(--red)}@media (hover: hover){.admin-remove:hover{border-color:var(--red);color:var(--red)}}.admin-save{width:100%;margin-top:16px;background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;font-weight:500}.admin-save:active{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}@media (hover: hover){.admin-save:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}}.admin-save:disabled{background:var(--surface-2);border-color:var(--surface-2);color:var(--text-dim)}.admin-drama{border:1px solid var(--border);border-radius:4px;padding:16px;margin-bottom:24px}.admin-drama-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}.admin-drama-head input[type=text]{flex:1;font-weight:500}.admin-publish{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text);white-space:nowrap;min-height:44px;cursor:pointer}.admin-publish input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.admin-unpublished-note{font-size:12px;color:var(--text-muted);margin-bottom:16px}.admin-unpublished-note:before{content:"! ";color:var(--accent);font-weight:500}.admin-episode{margin-bottom:16px;padding-top:16px;border-top:1px solid var(--border)}.admin-episode-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.admin-episode-head .episode-section-title{padding:0}.admin-episode-actions{display:flex;gap:8px}.admin-episode-actions button{font-size:12px;min-height:38px;padding:0 8px}.admin-add-episode{width:100%;border-style:dashed;border-color:var(--border-strong);color:var(--text-muted)}.admin-new-drama{display:flex;gap:8px;margin:8px 0}.admin-new-drama input{flex:1}.admin-new-drama button{white-space:nowrap}
