:root{color-scheme:light;--navy:#101d2e;--ink:#15263a;--muted:#586473;--cream:#f7f3ea;--paper:#fffdf8;--gold:#e6bb70;--line:#ded8ca;--green:#13644d;--red:#9a352d;font-family:"Kantumruy Pro",Tahoma,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;color:var(--ink);background:var(--cream)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:4px}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.58}
a{color:inherit}
.wrap{width:min(1100px,calc(100% - 40px));margin:auto}
.top,.hero,footer{background:var(--navy);color:#fff8ea}
.nav,.footer,.section-head,.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav{min-height:72px;border-bottom:1px solid #ffffff25}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:700}
.brand-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e6bb7070;border-radius:50%;color:var(--gold)}
nav,.actions,.legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.link,.primary,.secondary,.danger{border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:700;text-decoration:none;display:inline-block}
.link{background:none;color:inherit;padding-inline:6px}
.link:hover{text-decoration:underline}
.primary{background:var(--gold);color:#201b15}
.primary:hover{background:#f4cf8c}
.secondary{background:var(--paper);color:var(--ink);border-color:var(--line)}
.secondary:hover{background:#f3ede0}
.danger{background:#a0342b;color:white}
.hero{overflow:hidden;background:radial-gradient(ellipse at 81% 52%,#304152 0,var(--navy) 62%)}
.hero-inner{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:35px;min-height:398px;padding-block:44px}
.hero-copy{position:relative;z-index:1}
.eyebrow{font-size:.85rem;font-weight:700;color:#765522;margin:0 0 7px}
.hero .eyebrow{color:var(--gold)}
h1,h2,h3,p{margin-top:0}
h1{font:clamp(3rem,7vw,6rem)/.98 "DM Serif Text",Georgia,serif;letter-spacing:-.055em;margin-bottom:18px}
h1 em{font-weight:400;color:var(--gold)}
h2{font-size:clamp(1.45rem,4vw,2.2rem);line-height:1.15;margin-bottom:0}
h3{font-size:1.18rem;margin-bottom:8px}
.subtitle{font-size:clamp(1.13rem,3vw,1.55rem);margin-bottom:25px}
.hero-art{position:relative;display:grid;place-items:center;min-height:300px;isolation:isolate}
.orbit{position:absolute;border:1px solid #e6bb7075;width:252px;height:252px;border-radius:50%;transform:rotate(-25deg) scaleX(1.24)}
.orbit.inner{border-style:dashed;transform:rotate(25deg) scaleX(1.18);opacity:.7}
.cap{font-size:108px;line-height:1;filter:drop-shadow(0 10px 18px #10141e)}
.star,.year{position:absolute;color:var(--gold)}
.s1{top:8%;left:26%;font-size:28px}.s2{top:18%;right:20%;font-size:40px}.s3{bottom:21%;left:15%;font-size:18px}.s4{bottom:15%;right:22%;font-size:22px}
.year{bottom:11%;letter-spacing:.3em;font-weight:700}
.section{padding-block:34px}
.section-head{margin-bottom:18px;align-items:end}
.metrics,.tag{font-size:.9rem;color:var(--muted)}
.metrics strong{color:var(--green)}
.map-panel,.panel,.booking{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:clamp(15px,3vw,28px)}
.stage{width:min(350px,70%);margin:0 auto 22px;text-align:center;padding:6px;border-radius:4px 4px 18px 18px;background:var(--navy);color:#fff8ea;font-size:.9rem}
.map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.table{padding:8px 2px;color:var(--ink);background:#f9f6ee;border:1px solid var(--line);border-radius:13px;display:grid;justify-items:center;gap:4px}
.table:not(:disabled):hover,.table[aria-pressed="true"]{border-color:#8b682f;background:#fff1cd}
.table:disabled{opacity:1}
.diagram{position:relative;display:grid;place-items:center;width:64px;height:64px}
.diagram b{border:1px solid #b1c7ba;color:var(--green);background:#e2eee5;border-radius:50%;width:37px;height:37px;display:grid;place-items:center}
.table.held .diagram b{background:#f6e7bf;color:#6f501d;border-color:#e1c483}
.table.full .diagram b{background:#e8e8ea;color:#565b64;border-color:#bfc0c4}
.table.unknown .diagram b{background:#eae7df;color:#5c5b54;border-color:#cecabf}
.seat{position:absolute;width:7px;height:7px;border-radius:50%;background:#95b3a5;transform:rotate(var(--angle)) translateY(-26px)}
.seat.occupied{background:#caa55e}
.table.unknown .seat,.table.full .seat{background:#aaaab0}
.table small{font-size:.78rem;color:var(--muted)}
.legend{justify-content:center;font-size:.83rem;margin-top:16px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#95b3a5;margin-right:4px}
.legend i.held{background:#caa55e}.legend i.full{background:#aaaab0}
.hint{color:var(--muted);font-size:.9rem;margin:10px 0 0}
.hint:empty{display:none}
.panel{max-width:720px}
form:not([method="dialog"]){display:grid;gap:14px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:grid;gap:5px;font-weight:600;min-width:0}
input,select,textarea{width:100%;min-width:0;border:1px solid #bfb9ad;border-radius:8px;background:white;color:var(--ink);padding:10px}
input[type="file"]{padding:8px}
.notice{padding:11px 14px;border-radius:9px;background:#e5efe7;color:#15533e}
.notice.error{background:#f8e6e3;color:#7d201b}
.booking{margin-bottom:12px;overflow-wrap:anywhere}
.booking summary{cursor:pointer;font-weight:700}
.booking form{margin-top:15px}
.booking .actions{margin-top:12px}
.tag{display:inline-block;border-radius:5px;padding:3px 8px;background:#eee9de}
.tag.review{background:#f6e7bf;color:#624615}.tag.confirmed{background:#dcefe2;color:#1e5941}
.amount{font-size:1.45rem;color:var(--green);font-weight:700}
footer{margin-top:30px}
.footer{min-height:82px}
dialog{width:min(640px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:20px;color:var(--ink);background:var(--paper)}
dialog::backdrop{background:#101d2eb0}
.dialog-top{margin-bottom:14px}
dialog img,dialog iframe{width:100%;max-height:60vh;object-fit:contain;border:0}
dialog iframe{height:50vh}
@media(max-width:700px){.hero-inner{grid-template-columns:1fr;min-height:auto;gap:0;padding-block:38px}.hero-art{min-height:175px;margin-top:18px}.orbit{width:145px;height:145px}.cap{font-size:64px}.year{bottom:4%}.section-head{align-items:start;flex-direction:column;gap:8px}.nav{padding-block:10px;flex-wrap:wrap}.map{gap:6px}.table small{font-size:.73rem}.wrap{width:calc(100% - 26px)}}
@media(max-width:400px){.map{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{grid-template-columns:1fr}}
