*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#20112e;color:#fff0da;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.8}body:before{content:"";position:absolute;inset:0 0 auto;height:600px;background:radial-gradient(ellipse at 80% 0,#69336580,transparent 65%);pointer-events:none}a{color:inherit}header,main,footer{position:relative;width:min(1120px,90%);margin:auto}header{padding:28px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #624668}header a{text-decoration:none;font-size:12px}.brand{font-family:Georgia,serif;font-size:19px;letter-spacing:.06em}.brand span{color:#ffb858}.intro{padding:56px 0 38px}.kicker{font-size:11px;letter-spacing:.16em;color:#d6e88c;font-weight:bold}h1{font-size:clamp(32px,4.4vw,54px);line-height:1.4;margin:15px 0}em{font-style:normal;color:#ffb858}.intro>p:not(.kicker){color:#d8c4de;font-size:15px}.steps{display:flex;align-items:center;gap:16px;font-size:12px;margin-top:27px}.steps i{font-style:normal;color:#ad7fa9}.layout{display:grid;grid-template-columns:1.1fr .9fr;gap:55px;align-items:start}fieldset{border:0;margin:0 0 38px;padding:0;min-width:0}legend{font-size:21px;font-weight:bold;margin-bottom:22px}legend b{font:italic 26px Georgia,serif;color:#ffb858;margin-right:12px}.seat{position:relative;display:flex;gap:14px;padding:23px;margin-bottom:15px;border:2px solid #695270;background:#2b1b38;border-radius:12px;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}.seat:has(input:checked){background:#ffce90;color:#301b3a;border-color:#ffc277;box-shadow:0 7px 0 #0e081850}.seat.observer:has(input:checked){background:#decbf7;border-color:#decbf7}.seat:hover{transform:translateY(-2px)}input{accent-color:#6a3283;flex-shrink:0;width:20px;height:20px;margin:5px 0 0}.seat-content{display:grid;gap:6px;min-width:0}.tag{font-size:11px;font-weight:bold;letter-spacing:.02em}.seat strong{font-size:23px}.seat small{font-size:11px;font-weight:normal;display:inline-block;margin-left:8px}.amount{font-size:33px;font-weight:bold;line-height:1.5}.seat-content>span:last-child{font-size:12px}.conditions{border-top:1px solid #624668;padding-top:24px}.conditions legend{padding-top:24px}.conditions>p{font-size:13px;color:#d7c4df}.conditions label{display:flex;align-items:flex-start;gap:12px;margin:20px 0;cursor:pointer;font-size:14px}.conditions strong{color:#ffcb88}.fine{font-size:12px!important;line-height:1.9}.text-link{font-size:12px;text-underline-offset:4px}.ticket-wrap{position:sticky;top:24px;padding-bottom:25px}.ticket{background:#fff0da;color:#302039;border-radius:16px;overflow:hidden;box-shadow:0 25px 65px #09040f55;transform:rotate(1deg)}.ticket-art{height:172px;padding:20px 25px;background:linear-gradient(90deg,#21102da0,#21102d20),url('./assets/haunted-town.webp') center 52%/cover;color:#fff0da}.ticket-art>span{display:inline-block;border:1px solid #ffcf90;padding:2px 10px;font:11px Georgia,serif;letter-spacing:.18em;color:#ffcf90}.ticket-art>div{font-size:22px;font-weight:bold;margin-top:15px;line-height:1.5;text-shadow:0 2px 8px #000}.ticket-body{padding:25px 28px}.ticket .kicker{color:#7d4b79;font-size:9px}.ticket h2{margin:9px 0 22px;font-size:25px}dl{margin:0}dl>div{display:flex;gap:20px;margin:13px 0}dt{font-size:10px;color:#876f88;min-width:44px;letter-spacing:.1em;padding-top:4px}dd{margin:0;font-size:14px;font-weight:bold}dd small{font-size:10px;display:block;font-weight:normal}.total{border-top:1px dashed #b99eb6;margin-top:23px;padding-top:18px;display:flex;justify-content:space-between;align-items:center;gap:12px}.total>span{font-size:11px}.total strong{font-size:33px}button{font:inherit;border:0;width:100%;border-radius:7px;background:#4a235c;color:#fff0da;padding:16px 10px;margin-top:16px;cursor:pointer;font-weight:bold}button:hover:not(:disabled){background:#6c3581}button:disabled{background:#d6c6d1;color:#5c495e;cursor:not-allowed}#checkout-status{font-size:12px;margin:12px 0;color:#614f64}.secure{font-size:10px;color:#7b6a7b;line-height:1.8}.ticket-stub{border-top:2px dashed #b99eb6;text-align:center;padding:14px;letter-spacing:.25em;font:12px Georgia,serif;background:#f8e4c9}.below-ticket{text-align:center;color:#c6afce;font-size:11px;margin-top:20px}footer{border-top:1px solid #624668;margin-top:45px;padding:25px 0;font:12px Georgia,serif;display:flex;justify-content:space-between;gap:20px;color:#bda5c7}:focus-visible{outline:3px solid #d3e58e;outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:5;background:#20112e;padding:10px}@media(max-width:780px){.layout{grid-template-columns:1fr;gap:0}.ticket-wrap{position:static;max-width:500px;width:100%;margin:auto}.ticket{transform:none}.intro{padding-top:32px}.steps{gap:9px;font-size:10px}.seat{padding:20px 17px}header .brand{font-size:14px}header>a:last-child{font-size:10px}footer{flex-direction:column;gap:8px}.ticket-body{padding:22px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.seat:hover{transform:none}}

.application-bonus{margin:0 0 38px;border:1px solid #a98252;border-radius:12px;overflow:hidden;background:#2b1b38}.application-bonus img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.application-bonus>div{padding:20px 23px}.application-bonus .kicker{margin:0 0 8px}.application-bonus h2{font:26px Georgia,serif;color:#ffce90;margin:0 0 12px}.application-bonus p:not(.kicker){font-size:14px}.application-bonus small{font-size:11px;color:#d8c4de;display:block}

.booking-policy{margin:24px 0;padding:20px;border:1px solid #735478;border-radius:10px;background:#281a35}.booking-policy h3{font-size:16px;margin:0 0 12px;color:#ffce90}.booking-policy p{font-size:12px;color:#dccbe3;line-height:1.9}

#participation-check{scroll-margin-top:24px}

.refund-rules{display:grid;gap:14px;margin:18px 0}
.refund-rule{padding:18px;border:1px solid #85618d;border-left:4px solid #e6bf88;border-radius:8px;background:#33223f}
.refund-heading{font-size:16px;font-weight:bold;line-height:1.6;color:#fff0da}
.refund-result{display:inline-block;padding:3px 12px;border-radius:5px;font-size:14px;font-weight:bold;background:#d6e88c;color:#292039}
.nonrefundable{border-left-color:#e0a7bc}
.nonrefundable .refund-result{background:#eec5d4;color:#452637}
.booking-policy .refund-rule p{margin:12px 0 0;font-size:14px;color:#f0e3f5;line-height:1.9}
.booking-policy .organizer-cancellation{font-size:13px;margin:18px 0 26px}
#payment-ticket{scroll-margin-top:24px}

.refund-rule summary{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;cursor:pointer;list-style:none}
.refund-rule summary::-webkit-details-marker{display:none}
.refund-rule .refund-heading{grid-column:1}
.refund-rule .refund-result{grid-column:1;justify-self:start}
.refund-rule summary::after{content:"＋";grid-column:2;grid-row:1 / 3;color:#ffce90;font-size:24px;line-height:1}
.refund-rule[open] summary::after{content:"−"}
.refund-rule summary:hover .refund-heading{color:#ffce90}

/* Keep the same mobile composition on desktop. */
@media(min-width:761px){.layout{grid-template-columns:1fr;gap:0}.ticket-wrap{position:static;max-width:500px;width:100%;margin:auto}.ticket{transform:none}.intro{padding-top:32px}.steps{gap:9px;font-size:10px}.seat{padding:20px 17px}header .brand{font-size:14px}header>a:last-child{font-size:10px}footer{flex-direction:column;gap:8px}.ticket-body{padding:22px}}

[hidden]{display:none!important}.refund-heading small{display:block;margin-top:6px;font-size:12px;font-weight:400;line-height:1.5}.conditions a{color:#d2efa0;text-decoration:underline}

/* Clear, grouped level information on the application page. */
.level-guide{padding:22px 20px}.level-guide>h3{font-size:18px;margin:0 0 20px}.level-block{padding:18px 0;border-top:1px solid #584563}.level-block:last-child{padding-bottom:0}.level-block h4{display:flex;align-items:center;gap:9px;margin:0 0 9px;color:#fff0da;font-size:15px;line-height:1.6}.level-block h4>span{font-size:20px;flex-shrink:0}.level-guide .level-block p{font-size:13px;line-height:1.85;margin:0;color:#e2d5e9}.level-guide .level-block .level-note{margin-top:9px;font-size:12px;color:#c9b7d2}.level-guide .level-line-button{display:flex;justify-content:center;align-items:center;min-height:48px;margin-top:16px;padding:12px 16px;border:0;border-radius:8px;background:#06c755;color:#fff;font-size:14px;font-weight:700;text-decoration:none;line-height:1.5}.level-guide .level-line-button:hover{background:#05b34c}.level-guide .level-deadline p>strong{font-size:16px;color:#ffce90}.level-guide .level-deadline p>span{font-size:12px;color:#c9b7d2}

.level-guide .level-block.level-deadline{margin-top:8px;padding:20px 18px;border:1px solid #735478}.level-guide .level-deadline h4{margin-bottom:14px}.level-guide .level-deadline p{display:flex;flex-direction:column;gap:8px;margin:0}.level-guide .level-deadline p>strong{line-height:1.6}.level-guide .level-deadline p>span{line-height:1.7}
