*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#1a1a1d;--bg2:#232326;--bg3:#2c2c30;--accent:#d9a86c;--text:#f5f5f5;--muted:#a3a3a8;--border:#3a3a3f}
body{
  background:
    radial-gradient(circle at 15% 20%, rgba(96,64,190,.30), transparent 45%),
    radial-gradient(circle at 85% 12%, rgba(168,42,110,.26), transparent 50%),
    radial-gradient(circle at 78% 82%, rgba(217,168,108,.14), transparent 55%),
    radial-gradient(circle at 18% 88%, rgba(40,84,158,.26), transparent 50%),
    #14121f;
  background-attachment:fixed;
  padding-top:70px;color:var(--text);font-family:'Noto Sans KR','Apple SD Gothic Neo',sans-serif;min-height:100vh
}

.logo-img {
  height: 65px;      /* PC 기본 */
  width: auto;
  filter: drop-shadow(0 0 8px rgba(147,112,219,0.8));
}
@media(max-width:768px){
	nav { height: 50px; }
  nav { height: 50px; }
  .logo-img { height: 45px; }  /* 모바일 */
}

nav{background:rgba(13,11,30,.95);backdrop-filter:blur(10px);position:fixed;top:0;left:0;right:0;z-index:100;padding:0 24px;height:70px;display:flex;align-items:center;gap:16px}
.logo{font-size:22px;font-weight:800;color:var(--accent);text-decoration:none;display:flex;align-items:center;gap:8px}
.logo-avatar{display:inline-block;width:36px;height:36px;border-radius:50%;overflow:hidden;vertical-align:middle}
.logo-avatar img{width:135%;height:135%;object-fit:cover;margin:-17.5% 0 0 -17.5%}
.back-btn{margin-left:auto;background:var(--bg3);border:1px solid var(--border);color:var(--muted);padding:8px 18px;border-radius:20px;cursor:pointer;font-size:14px;text-decoration:none}
.back-btn:hover{border-color:var(--accent);color:var(--accent)}
.loading{text-align:center;padding:100px;color:var(--muted);font-size:17px}

/* 페이지 전체 로딩 오버레이 - 다 준비되기 전까지 회색 화면 위에 로딩 효과 */
#pageLoadingOverlay{position:fixed;inset:0;background:#2a2a2d;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .3s ease}
#pageLoadingOverlay.hide{opacity:0;pointer-events:none}
.page-spinner{width:152px;height:152px;position:relative;margin-bottom:16px}
.page-spinner svg{width:100%;height:100%;transform:rotate(-90deg)}
.page-spinner circle{fill:none;stroke-width:5;transform-origin:50% 50%}
.page-spinner .bg-ring{stroke:#3a3a3d}
.page-spinner .arc-a{stroke:var(--accent);stroke-dasharray:58 74;animation:pgSpinCW 1.7s linear infinite}
.page-spinner .arc-b{stroke:#e8c896;stroke-dasharray:46 54;animation:pgSpinCCW 2.3s linear infinite}
.page-spinner .arc-c{stroke:#f3ddb8;stroke-dasharray:32 37;animation:pgSpinCW 1.3s linear infinite}
.page-spinner-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--accent);font-family:'Noto Sans KR','Apple SD Gothic Neo',sans-serif}
@keyframes pgSpinCW{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pgSpinCCW{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
#pageLoadingOverlay p{color:var(--muted);font-size:14px}
.detail-wrap{max-width:1000px;margin:0 auto;padding:32px 24px}
.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:24px}
.breadcrumb a{color:var(--accent);text-decoration:none}
.breadcrumb span{margin:0 8px}
.detail-top{display:grid;grid-template-columns:280px 1fr;gap:32px;margin-bottom:32px}
@media(max-width:768px){.detail-top{grid-template-columns:1fr}}
.poster-box{border-radius:16px;overflow:hidden;background:var(--bg2);border:1px solid var(--border);aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-size:80px}
.poster-box img{width:100%;height:100%;object-fit:contain}
.info-box h1{font-size:26px;font-weight:800;line-height:1.45;margin-bottom:16px}
.tag-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.tag{display:inline-block;background:var(--bg3);border:1px solid var(--border);color:var(--accent);font-size:13px;padding:5px 13px;border-radius:20px}
.free-tag{background:rgba(111,207,151,.15);border-color:#6fcf97;color:#6fcf97}
.ongoing-tag{background:rgba(242,153,74,.15);border-color:#f2994a;color:#f2994a}
.info-table{width:100%;border-collapse:collapse;margin-bottom:24px}
.info-table tr{border-bottom:1px solid var(--border)}
.info-table tr:last-child{border-bottom:none}
.info-table th{padding:12px 16px 12px 0;color:var(--muted);font-size:14px;font-weight:600;white-space:nowrap;width:90px;vertical-align:top}
.info-table td{padding:12px 0;font-size:15px;line-height:1.65}
.btn-wrap{display:flex;gap:12px;flex-wrap:wrap}
.primary-btn{background:var(--accent);color:#0d0b1e;border:none;padding:15px 23px;border-radius:24px;font-weight:700;cursor:pointer;font-size:16px;text-decoration:none;display:inline-block}
.primary-btn:hover{background:#c9944f}
@keyframes neonPulse{
  0%,100%{box-shadow:0 4px 20px rgba(0,0,0,.25),0 0 8px rgba(217,168,108,.35),0 0 16px rgba(217,168,108,.15);border-color:rgba(217,168,108,.3)}
  50%{box-shadow:0 4px 24px rgba(0,0,0,.25),0 0 18px rgba(217,168,108,.85),0 0 36px rgba(217,168,108,.5);border-color:rgba(217,168,108,.8)}
}
@keyframes arrowBlink{
  0%,100%{opacity:1}
  50%{opacity:.3}
}
.secondary-btn{background:none;border:1px solid var(--accent);color:var(--accent);padding:15px 23px;border-radius:24px;font-weight:600;cursor:pointer;font-size:16px;text-decoration:none;display:inline-block}
.secondary-btn:hover{background:var(--accent);color:#0d0b1e}
.disabled-btn{background:var(--bg3);color:var(--muted);border:1px solid var(--border);padding:15px 34px;border-radius:24px;font-weight:700;font-size:16px;cursor:not-allowed;display:inline-block}
.waiting-btn{background:rgba(242,153,74,.15);color:#f2994a;border:1px solid #f2994a;padding:15px 34px;border-radius:24px;font-weight:700;font-size:16px;cursor:not-allowed;display:inline-block}
.closed-btn{background:rgba(235,87,87,.15);color:#eb5757;border:1px solid #eb5757;padding:15px 34px;border-radius:24px;font-weight:700;font-size:16px;cursor:not-allowed;display:inline-block}
.section-box{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:20px}
.section-box h2{font-size:17px;font-weight:700;color:var(--accent);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.section-box p{font-size:15px;color:var(--muted);line-height:1.85}
.section-box img{width:100%;border-radius:8px;margin-bottom:8px;display:block}
.contact-box{background:linear-gradient(135deg,#2a2a2e,#1f1f22);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:20px;text-align:center}
.contact-box h3{font-size:15px;color:var(--muted);margin-bottom:8px}
.contact-box .phone{font-size:25px;font-weight:800;color:var(--accent);letter-spacing:2px}
.contact-box .hours{font-size:13px;color:var(--muted);margin-top:6px}
.source-box{text-align:center;padding:20px;font-size:13px;color:#555;border-top:1px solid var(--border);margin-top:32px}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:768px){.related-grid{grid-template-columns:repeat(2,1fr)}}
.r-card{background:var(--bg3);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s}
.r-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.r-card-img{height:100px;display:flex;align-items:center;justify-content:center;font-size:28px;overflow:hidden;background:linear-gradient(135deg,#2a2a2e,#1f1f22)}
.r-card-img img{width:100%;height:100%;object-fit:cover}
.r-card-body{padding:8px 10px}
.r-card-title{font-size:13px;font-weight:600;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r-card-meta{font-size:12px;color:var(--muted);margin-top:4px}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:1000;display:flex;align-items:center;justify-content:center}
.modal{background:rgba(35,35,38,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:36px 32px;max-width:520px;width:92%;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.55), 0 10px 28px rgba(0,0,0,.35);word-break:keep-all;line-height:1.6}
.modal h3{font-size:19px;font-weight:700;margin-bottom:12px;color:var(--accent)}
.modal p{font-size:15px;color:var(--muted);line-height:1.65;margin-bottom:24px;white-space:pre-line}
.modal-btn{background:var(--accent);color:#0d0b1e;border:none;padding:11px 30px;border-radius:20px;font-weight:700;cursor:pointer;font-size:15px}
.modal-btn:hover{background:#c9944f}
footer{background:transparent;padding:40px 24px 24px;margin-top:40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px;margin-bottom:32px}
.footer-logo{font-size:24px;font-weight:800;color:var(--accent);margin-bottom:10px}
.footer-desc{font-size:14px;color:var(--muted);line-height:1.9}
.footer-col h4{color:var(--text);font-size:15px;font-weight:700;margin-bottom:12px}
.footer-col a{display:block;color:var(--muted);font-size:14px;text-decoration:none;margin-bottom:8px}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between}
.footer-bottom p{font-size:13px;color:var(--muted)}
.footer-logo-avatar{display:inline-block;width:40px;height:40px;border-radius:50%;overflow:hidden;vertical-align:middle;margin-right:8px}
.footer-logo-avatar img{width:135%;height:135%;object-fit:cover;margin:-17.5% 0 0 -17.5%}

.sameshow-box .sameshow-list{display:flex;flex-direction:column;gap:8px}
.sameshow-item{display:flex;align-items:center;gap:12px;background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:12px 16px;text-decoration:none;color:var(--text)}
.sameshow-item:hover{border-color:var(--accent)}
.ss-venue{font-weight:600}
.ss-date{color:var(--muted);font-size:14px}
.ss-go{margin-left:auto;color:var(--accent);font-weight:700;font-size:14px}