:root{--paper:#f6f5f0;--ink:#202b25;--muted:#69736c;--line:#d8dcd3;--green:#254b3b;--lime:#dfef75;--white:#fff;--radius:6px;font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-size:16px}
*{box-sizing:border-box}body{margin:0;word-break:keep-all;overflow-wrap:anywhere}small{font-size:14px}button,input,select,textarea{font:inherit;font-size:16px}button,a,input,select{touch-action:manipulation}button,a{color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{text-decoration:none}img{display:block;max-width:100%}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #648e43;outline-offset:4px}.skip{position:absolute;top:-100px;left:20px;background:white;padding:12px;z-index:9}.skip:focus{top:10px}.announcement{text-align:center;background:var(--green);color:white;font-size:14px;padding:10px}.announcement span{margin-left:24px;color:var(--lime);font-size:14px;letter-spacing:.12em}.header{height:96px;max-width:1328px;margin:auto;padding:0 44px;display:flex;align-items:center;gap:70px;border-bottom:1px solid var(--line)}.logo{font-family:Georgia,serif;font-size:40px;font-weight:bold;letter-spacing:-2.5px;display:inline-flex;align-items:center;gap:5px}.logo span{font-size:31px;color:var(--green);margin-left:1px}nav{display:flex;gap:32px;font-size:16px;font-weight:600}.header>.button{margin-left:auto}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 21px;border:1px solid var(--line);border-radius:4px;background:transparent;font-size:16px;font-weight:600}.button.primary{background:var(--green);border-color:var(--green);color:white}.button.light{background:var(--lime);border-color:var(--lime);color:var(--ink)}.button.subtle{border:0;padding:12px 0}.button:hover{filter:brightness(.94)}.wide{width:100%}.eyebrow{display:block;font-size:14px;letter-spacing:.16em;font-weight:700;margin-bottom:20px}.page{max-width:1240px;margin:auto;padding:44px 0 80px}.hero{display:grid;grid-template-columns:1.05fr 1fr;background:#e8eadf;min-height:460px;overflow:hidden;border-radius:8px}.hero-copy{padding:52px 44px;display:flex;flex-direction:column;align-items:flex-start}.hero h1{font-size:48px;font-weight:500;letter-spacing:-2.5px;line-height:1.28;margin:4px 0 24px}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--green)}.hero-copy p{font-size:16px;line-height:1.9;color:#586459}.hero-copy .button{margin-top:30px}.hero-art{position:relative;background:var(--green);display:flex;align-items:center;justify-content:center;isolation:isolate;min-height:440px}.hero-art:before{content:"";position:absolute;width:440px;height:440px;border:1px solid #7c9675;border-radius:50%;z-index:-1}.hero-art:after{content:"";position:absolute;width:340px;height:340px;border:1px solid #7c9675;border-radius:50%;z-index:-1}.hero-poster{width:210px;transform:rotate(-9deg);box-shadow:8px 18px 30px #10271d70;border:7px solid #fff}.hero-ticket{position:absolute;right:22px;bottom:44px;transform:rotate(7deg);width:255px;background:var(--lime);padding:22px;color:var(--green);border-radius:4px;box-shadow:0 8px 20px #10271d50}.hero-ticket small{font-size:14px;letter-spacing:2px}.hero-ticket strong{display:block;font-family:Georgia,serif;font-size:30px;margin:10px 0}.ticket-bottom{flex-wrap:wrap;gap:8px;border-top:1px dashed #80914c;padding-top:12px;display:flex;justify-content:space-between;font-size:14px}.hero-index{position:absolute;top:24px;right:24px;color:#dce8d5;font-size:14px;letter-spacing:2px}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:64px 0 28px}.section-top h2{font-size:29px;letter-spacing:-1.2px;font-weight:600}.section-top p{color:var(--muted);font-size:16px;margin-top:10px}.search{display:flex;align-items:center;border-bottom:1px solid var(--ink);max-width:350px;width:100%;gap:12px}.search input{border:0;background:transparent;padding:12px 0;min-width:0;flex:1;outline:none}.search button{border:0;background:none;font-size:22px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filter{border:1px solid var(--line);border-radius:30px;background:transparent;padding:10px 20px;font-size:16px}.filter.active{background:var(--ink);color:white;border-color:var(--ink)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px 28px}.event-card .poster{aspect-ratio:3/4;overflow:hidden;background:#e2e6dc;border-radius:5px;position:relative}.event-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.event-card:hover img{transform:scale(1.035)}.event-card .tag{position:absolute;left:14px;top:14px;font-size:14px;background:#fffef1;padding:7px 10px;border-radius:2px}.card-info{padding:19px 0}.card-info .category{font-size:14px;color:var(--green);font-weight:bold;letter-spacing:.08em}.card-info h3{font-size:20px;margin:9px 0;letter-spacing:-.5px}.card-info p{font-size:14px;color:var(--muted);margin-bottom:15px}.card-price{display:flex;justify-content:space-between;font-size:18px;font-weight:bold}.card-price span:last-child{font-weight:400;color:var(--muted);font-size:14px}.feature-strip{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;margin-top:45px}.feature-strip span{font-size:14px;color:var(--muted)}.feature-strip strong{display:block;color:var(--ink);font-size:16px;margin-bottom:8px}.detail-top{display:grid;grid-template-columns:420px 1fr;gap:65px;margin-top:25px}.detail-top>img{width:100%;border-radius:6px}.detail-content{padding:22px 0}.detail-content h1{font-size:39px;letter-spacing:-1.5px;line-height:1.35;margin-bottom:25px}.detail-content>p{color:var(--muted);line-height:1.9;margin-bottom:24px}.detail-content dl{display:grid;grid-template-columns:90px 1fr;gap:17px;font-size:16px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 27px}.detail-content dt{color:var(--muted)}.detail-content dd{margin:0}.detail-price{font-size:30px;font-weight:600;margin:24px 0}.detail-price small{font-size:14px;font-weight:400;color:var(--muted)}.info-box{background:#e9ece3;padding:25px;line-height:1.9;border-radius:6px;margin-top:35px;font-size:16px}.info-box h2{font-size:19px;margin-bottom:10px}.back{font-size:14px;color:var(--muted);display:inline-block;margin-bottom:20px}.booking-head h1,.account-head h1{font-size:36px;letter-spacing:-1.5px;margin:10px 0 16px}.steps{display:flex;gap:0;list-style:none;padding:20px 0 30px;margin:0;border-bottom:1px solid var(--line)}.steps li{flex:1;font-size:14px;color:#8b948e;display:flex;align-items:center;gap:10px}.steps span{border:1px solid var(--line);border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:14px}.steps .current{color:var(--green);font-weight:bold}.steps .current span{background:var(--green);color:white;border-color:var(--green)}.booking-layout{display:grid;grid-template-columns:1fr 340px;gap:50px;margin-top:35px}.booking-form{background:white;border:1px solid var(--line);padding:32px;border-radius:6px;min-height:370px}.booking-form h2{font-size:25px;margin-bottom:10px}.booking-form .hint{font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:28px}.date-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:25px 0}.date-option{position:relative}.date-option input{position:absolute;opacity:0;width:1px;height:1px}.date-option span{display:block;padding:18px;border:1px solid var(--line);border-radius:4px}.date-option input:checked+span{border-color:var(--green);background:#edf2e9;outline:1px solid var(--green)}.date-option input:focus-visible+span{outline:3px solid #648e43}.date-option small{display:block;color:var(--muted);margin-top:8px}.field,label:has(>input:not([type=radio]):not([type=checkbox])),label:has(>select){display:grid;gap:9px;font-size:14px;margin-bottom:22px}input:not([type=radio]):not([type=checkbox]),select{padding:13px;border:1px solid var(--line);border-radius:4px;background:var(--white);min-width:0;font-size:16px}label.checkbox{display:flex;gap:9px;font-size:14px;margin:24px 0;align-items:flex-start;line-height:1.7}.booking-summary{align-self:start;background:#eceee6;border-radius:6px;padding:24px;position:sticky;top:20px}.summary-event{display:flex;gap:17px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}.summary-event img{width:70px;height:94px;object-fit:cover}.summary-event h3{font-size:17px;margin:5px 0 10px}.summary-event p{font-size:14px;color:var(--muted);line-height:1.6}.summary-row{display:flex;justify-content:space-between;gap:15px;font-size:14px;margin:17px 0;line-height:1.6}.summary-row.total{font-size:20px;border-top:1px solid var(--line);padding-top:22px;margin-top:25px;font-weight:bold}.summary-row span:first-child{color:var(--muted)}.actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px}.confirm-card{border:1px dashed #9da990;padding:25px;margin:24px 0;border-radius:6px;background:var(--paper)}.confirm-card p{margin:10px 0;font-size:16px}.success{max-width:680px;margin:30px auto;text-align:center}.success .seal{font-size:45px;color:var(--green);margin-bottom:20px}.success h1{font-size:36px;margin-bottom:20px}.success>p{color:var(--muted);line-height:1.8}.success .confirm-card{margin:35px 0;text-align:left}.ticket-number{font-family:Georgia,serif;font-size:29px;letter-spacing:2px;display:block;margin-bottom:20px}.order-list{display:grid;gap:20px;margin-top:30px}.order-card{background:white;border:1px solid var(--line);padding:25px;display:flex;align-items:center;gap:25px;border-radius:6px}.order-card img{width:85px;height:114px;object-fit:cover}.order-card h2{font-size:21px;margin-bottom:13px}.order-card p{font-size:16px;color:var(--muted);margin:7px 0}.order-card strong{font-size:14px}.order-total{margin-left:auto;text-align:right}.empty{text-align:center;padding:70px 20px;border:1px solid var(--line);margin:30px 0;line-height:2}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}.account-grid form{max-width:500px}.preview-link{display:inline-block;font-size:14px;color:var(--muted);text-decoration:underline;margin:0 0 20px}.loading{padding:100px 25px;text-align:center;color:var(--muted)}.error{color:#a52c2c;min-height:20px;font-size:14px;line-height:1.6}.error-page{padding:90px 25px;text-align:center}.error-page p{margin:20px}.preview-page{padding:40px}.preview-page h1{margin:30px 0}.preview-page p{margin-bottom:30px}footer{border-top:1px solid var(--line);padding:40px max(30px,calc((100vw - 1240px)/2));background:#eceee7}footer p{font-size:16px;color:var(--muted);margin:14px 0 30px}footer>div{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}footer small{font-size:14px;color:var(--muted);display:block;margin-top:15px}dialog{border:0;border-radius:8px;width:440px;max-width:calc(100vw - 32px);padding:38px;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0004}dialog::backdrop{background:#16261b88;backdrop-filter:blur(3px)}dialog h2{font-size:34px;line-height:1.3;letter-spacing:-1px;margin:15px 0}dialog>p{font-size:16px;color:var(--muted);margin-bottom:25px}.close{position:absolute;right:18px;top:13px;border:0;background:none;font-size:26px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;box-shadow:0 5px 20px #0003;border-radius:5px;padding:15px 25px;z-index:5;max-width:90vw;font-size:14px}
@media(min-width:1400px){.event-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1320px){.page{padding-left:35px;padding-right:35px}}@media(max-width:950px){.header{padding:0 28px;gap:30px}.hero h1{font-size:38px}.hero-copy{padding:38px 28px}.hero-ticket{width:210px;right:10px;bottom:36px}.hero-poster{width:180px}.detail-top{grid-template-columns:320px 1fr;gap:32px}.detail-content h1{font-size:30px}.booking-layout{grid-template-columns:1fr 280px;gap:25px}.booking-form{padding:25px}.event-grid{gap:25px 20px}.card-info h3{font-size:17px}}
@media(max-width:700px){.announcement{font-size:14px}.announcement span{display:none}.header{height:78px;padding:0 20px;gap:20px}.logo{font-size:32px}.logo span{font-size:25px}nav{gap:15px;font-size:16px}.header>.button{font-size:16px}.page{padding:24px 20px 50px}.hero{grid-template-columns:1fr}.hero-copy{padding:32px 25px}.hero h1{font-size:38px}.hero-art{min-height:345px}.hero-poster{width:170px;margin-right:65px}.hero-ticket{right:25px;bottom:30px}.hero-art:before{width:300px;height:300px}.hero-art:after{width:220px;height:220px}.section-top{margin:40px 0 22px;align-items:flex-start;flex-direction:column}.section-top h2{font-size:25px}.search{max-width:none}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.card-info h3{font-size:15px;line-height:1.5}.card-info p{font-size:14px;line-height:1.6}.card-price{font-size:18px;flex-wrap:wrap;gap:8px}.event-card .tag{font-size:14px;padding:5px 7px;top:8px;left:8px}.filter{padding:9px 15px}.feature-strip{flex-direction:column;gap:22px}.detail-top{grid-template-columns:1fr;gap:10px}.detail-top>img{max-width:330px;margin:auto}.detail-content h1{font-size:30px}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static;grid-row:1;padding:20px}.summary-event{margin:0}.booking-summary .summary-row:not(.total){display:none}.summary-row.total{font-size:18px;margin-bottom:0}.booking-head h1{font-size:30px}.steps{gap:8px}.steps li{font-size:14px;flex-direction:column;text-align:center;gap:7px}.steps span{width:24px;height:24px}.booking-form{padding:22px}.date-options{grid-template-columns:1fr}.account-grid{grid-template-columns:1fr}.order-card{padding:17px;gap:15px;flex-wrap:wrap}.order-card h2{font-size:17px}.order-total{margin-left:100px;text-align:left}.order-card img{width:70px;height:94px}footer{padding:30px 20px}footer>div{gap:20px}.search input{background:transparent;border:0}.success h1{font-size:28px}.ticket-number{font-size:23px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:700px){.header{display:grid;grid-template-columns:1fr auto;height:auto;padding:16px 20px;gap:13px 20px}.header .logo{grid-column:1;grid-row:1}.header>nav{grid-column:1/-1;grid-row:2;gap:25px}.header>.button{grid-column:2;grid-row:1;white-space:nowrap;margin-left:0;padding:7px 0}.header nav a{white-space:nowrap}.booking-head h1{font-size:27px}}
.confirm-card p:last-child strong,.order-total>strong{font-size:18px}
.ticket-bottom span{white-space:nowrap}
@media(max-width:700px){.actions .button{flex:1 1 180px}.card-info h3{font-size:16px}footer>div{flex-direction:column;gap:10px}}

.order-total .button{margin-top:12px}
dialog.mobile-ticket{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:32px 28px;color:var(--ink);background:var(--paper);overflow:auto}
.mobile-ticket .eyebrow{padding-right:28px;color:var(--green)}
.mobile-ticket h2{font-size:28px;margin-bottom:24px}
.mobile-ticket h3{font-size:24px;line-height:1.4;margin-bottom:24px}
.mobile-ticket dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px 12px;font-size:16px;line-height:1.6;margin:0}
.mobile-ticket dt{color:var(--muted)}
.mobile-ticket dd{margin:0}
.mobile-ticket-number{border-block:1px dashed var(--green);padding:24px 0;margin-top:28px;text-align:center}
.mobile-ticket-number span{display:block;font-size:14px;color:var(--muted);margin-bottom:10px}
.mobile-ticket-number strong{font-size:clamp(22px,6vw,30px);letter-spacing:1px;color:var(--green)}
.mobile-ticket-note{font-size:14px;color:var(--muted);line-height:1.7;margin:20px 0}
body:has(#ticket-dialog[open]){overflow:hidden}
