.drama-shell{max-width:1500px;margin:auto;padding:0 38px;min-height:100svh;display:flex;flex-direction:column}.drama-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;padding:32px 0;flex:1;align-items:start}.drama-player-column{min-width:0}.video-stage{position:relative;min-height:440px;aspect-ratio:16/9;background:#292137;border-radius:22px;overflow:hidden;display:grid;place-items:center}.video-stage video{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;background:#17121f}.video-empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fffaf1;background:linear-gradient(140deg,#594375,#292137 68%);padding:26px}.video-empty>span{font-size:9px;letter-spacing:2px;color:#dac9e9}.video-empty h1{font-size:clamp(27px,3vw,44px);line-height:1.06;letter-spacing:-1.5px;margin:18px 0 22px}.video-empty h1 em{font-style:normal;color:#ffc28a}.video-empty button{font:700 14px Arial;background:var(--orange);border:0;border-radius:30px;color:var(--ink);padding:14px 22px;display:flex;gap:24px;cursor:pointer}.video-caption{display:flex;align-items:center;justify-content:space-between;padding:17px 4px 10px}.video-caption strong{font-size:14px}.video-caption a{font-size:12px;color:var(--purple)}.video-note{font-size:11px;color:var(--muted);margin:2px 4px}.drama-detail{border:1px solid var(--line);border-radius:22px;padding:22px;background:#fffdf9}.drama-detail>.eyebrow{font-size:9px;letter-spacing:1.4px}.detail-poster{display:block;width:100%;max-height:200px;object-fit:cover;object-position:center 25%;border-radius:13px}.drama-detail h2{font-size:24px;letter-spacing:-.6px;line-height:1.15;margin:18px 0 12px}.drama-detail .drama-meta{margin:0 0 16px}.synopsis{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 20px}.episode-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;margin-top:14px}.episode-heading h3{font-size:15px}.episode-heading span{font-size:10px;color:var(--purple);font-weight:bold}.episode-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:13px;max-height:220px;overflow:auto;padding:2px 3px 5px}.episode-button{border:1px solid var(--line);border-radius:9px;background:#fffaf1;color:var(--ink);font-size:11px;padding:9px 2px;cursor:pointer}.episode-button:hover{border-color:var(--purple);background:#f2ebf9}.episode-button[aria-current="true"]{background:var(--purple);border-color:var(--purple);color:white}.episode-button:focus-visible,.video-empty button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.drama-shell footer{min-height:64px}
@media(max-width:1050px){.drama-shell{padding:0 24px}.drama-layout{grid-template-columns:minmax(0,1fr) 310px;gap:18px}.drama-detail{padding:18px}.episode-list{grid-template-columns:repeat(6,minmax(0,1fr))}.video-stage{min-height:360px}}
@media(max-width:760px){.drama-shell{padding:0 18px}.drama-layout{grid-template-columns:1fr;padding-top:20px;gap:14px}.video-stage{aspect-ratio:16/9;min-height:210px;border-radius:16px}.drama-detail{order:2;padding:18px}.episode-list{grid-template-columns:repeat(7,minmax(0,1fr));max-height:180px}.detail-poster{height:170px;max-height:none;object-position:center 27%}.drama-detail h2{font-size:21px;margin:14px 0 10px}.synopsis{font-size:12px;line-height:1.65;margin-top:18px}.drama-shell footer{margin-top:20px}.video-empty h1{font-size:25px}.drama-shell header{height:auto;min-height:0;flex-wrap:wrap;row-gap:12px;padding:16px 0}.drama-shell header nav{gap:16px;font-size:11px}}
.video-loading{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(28,20,39,.76);color:#fffaf1;font-size:13px;text-align:center;padding:24px}.loading-spinner{width:38px;height:38px;border:3px solid rgba(255,250,241,.28);border-top-color:var(--orange);border-radius:50%;animation:episode-spin .8s linear infinite}@keyframes episode-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation-duration:2s}}
.video-loading[hidden]{display:none}
.video-empty[hidden]{display:none}
@media(max-width:760px){.episode-button{min-height:40px;font-size:12px}.episode-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-height:220px}}
.video-prefetch{position:fixed!important;left:-2px!important;top:-2px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.episode-list{height:220px;max-height:220px;min-height:0;overflow-x:hidden;overflow-y:auto;align-content:start;grid-auto-rows:minmax(36px,auto);overscroll-behavior:contain}
@media(max-width:760px){.episode-list{height:220px;max-height:220px;grid-auto-rows:minmax(40px,auto)}}
.episode-picker{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffaf1}.episode-picker .episode-heading{margin:0;padding:0;border:0}.episode-picker .episode-list{height:180px;max-height:180px;margin-top:12px;padding:5px;border-radius:11px;background:#fffdf9;grid-auto-rows:minmax(38px,auto);overscroll-behavior:contain}.episode-picker .episode-list::-webkit-scrollbar{width:7px}.episode-picker .episode-list::-webkit-scrollbar-thumb{background:#d8c9df;border:2px solid #fffdf9;border-radius:8px}.episode-picker .episode-list::-webkit-scrollbar-track{background:transparent}.synopsis{margin-top:18px}
@media(max-width:760px){.episode-picker{padding:12px}.episode-picker .episode-list{height:180px;max-height:180px;grid-auto-rows:minmax(40px,auto)}}
