:root{--blue:#103d71;--deep:#102d50;--gold:#eabb51;--paper:#f7f5ef;--ink:#18334c;--muted:#63707a;--line:#dce0df;--white:#fff;--green:#18704c;--red:#b23336;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 'Segoe UI',Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}:focus-visible{outline:3px solid #b66a05;outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.13}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:normal}h1{font-size:clamp(44px,5.2vw,74px);letter-spacing:-2px}h1 em{font-weight:normal;color:var(--gold)}h2{font-size:42px;letter-spacing:-1px}h3{font-size:22px}p{margin:12px 0}.small{font-size:13px}.muted{color:var(--muted)}.eyebrow,.overline{font-size:11px;font-weight:750;letter-spacing:2px}.eyebrow{margin:0 0 17px}.header{max-width:1240px;margin:auto;padding:21px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:18px;line-height:1.1;letter-spacing:1px}.brand small{display:block;font-size:11px;letter-spacing:3.3px;margin-top:6px}.brand img{object-fit:contain}.header nav{display:flex;gap:30px;font-size:14px}.header nav a{text-decoration:none}.active{font-weight:750}.hero{background:var(--deep);color:white;padding:64px max(40px,calc((100vw - 1160px)/2));display:grid;grid-template-columns:1.1fr 1fr;gap:54px;align-items:center}.hero .eyebrow{color:#b8cbe0}.intro{max-width:465px;color:#d9e3ee;font-size:17px;margin:25px 0}.event-meta{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0;font-size:13px}.event-meta span+span:before{content:'·';margin-right:12px;color:var(--gold)}.hero figure{position:relative;align-self:stretch;min-height:330px;padding-top:16px}.hero figure img{width:100%;height:100%;max-height:405px;object-fit:cover;object-position:45% center;border-radius:120px 12px 12px 12px}.hero figcaption{background:var(--gold);color:var(--deep);padding:12px 17px;position:absolute;bottom:18px;left:-22px;font-family:Georgia,serif;font-style:italic;font-size:18px;box-shadow:0 4px 20px #0002}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;border:1px solid var(--blue);background:var(--blue);color:white;border-radius:7px;padding:13px 21px;font-weight:650;text-decoration:none}.button:hover{filter:brightness(1.1)}.button.gold{background:var(--gold);border-color:var(--gold);color:var(--deep)}.button.secondary{background:transparent;color:var(--blue)}.text-button{border:0;background:none;color:var(--blue);padding:9px 2px;text-decoration:underline}.booking,.faq{max-width:1240px;padding:64px 40px;margin:auto}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.pill,.pin-label{display:inline-block;font-size:12px;border-radius:30px;padding:6px 12px;background:#e9eee8;color:#365442;font-weight:600}.pill.danger{background:#fae7e6;color:var(--red)}.booking-grid{display:grid;grid-template-columns:1fr 310px;gap:30px;align-items:start}.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ticket-card{position:relative;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;display:flex;flex-direction:column}.ticket-card h3{margin:15px 0 0}.ticket-card p{font-size:14px;color:var(--muted);flex:1}.ticket-card .price{display:block;font-size:27px;line-height:1.2;margin:16px 0}.ticket-card .price small{font-size:12px;font-weight:400}.supporter{border:1px solid #d6b46d;background:#fffcf5}.supporter .overline{color:#835917}.pin-label{background:#f9e9bd;color:#72501a;align-self:start}.quantity{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:20px;padding-top:16px;font-size:13px}.quantity input{width:72px;padding:8px}.summary{background:#efede6;padding:26px;border-radius:var(--radius);border-top:3px solid var(--blue);position:sticky;top:20px}.summary h3{font:26px/1.2 Georgia,serif}.total{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cccfc8;padding-top:18px;margin-top:22px}.total strong{font-size:27px}.secure{font-size:12px;border-top:1px solid #cccfc8;margin-top:23px;padding-top:17px;color:var(--blue)}.basket-line{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:12px 0}.notice{padding:14px 18px;border-radius:8px;background:#e9eef3;color:var(--deep);font-size:14px;margin:0 0 22px;border-left:3px solid #839bb6}.notice.error{background:#fff0ee;color:#86262b;border-color:var(--red)}.notice.success{background:#e3f2e9;color:var(--green);border-color:var(--green)}.checkout-section{margin-top:30px;background:white;padding:26px;border:1px solid var(--line);border-radius:var(--radius)}label{display:block;font-size:14px;font-weight:600;margin:16px 0}input,select,textarea{display:block;border:1px solid #bcc7ce;border-radius:6px;background:white;color:var(--ink);padding:11px 12px;width:100%;min-width:0}textarea{min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.check{display:flex;align-items:flex-start;gap:11px;font-weight:400}.check input{width:18px;height:18px;flex:0 0 18px;margin-top:3px}.how{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:32px;padding:42px max(40px,calc((100vw - 1160px)/2));background:#eeeee7}.how h2{font-size:34px}.how article>span{font:29px Georgia,serif;color:#8f783f;display:block;margin-bottom:20px}.how h3{font-size:17px}.how p{font-size:14px;color:var(--muted)}.faq{max-width:880px}.faq h2{margin-bottom:28px}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font-weight:600}details p{color:var(--muted);font-size:14px}footer{max-width:1240px;margin:auto;padding:32px 40px 42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;font-size:13px}footer p{color:var(--muted);margin:4px 0}footer nav{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.skip{position:absolute;top:-100px;left:10px;padding:10px;background:white;z-index:99}.skip:focus{top:10px}dialog{border:0;border-radius:18px;padding:32px;width:min(92vw,820px);max-height:90vh;color:var(--ink);box-shadow:0 16px 80px #102d5055}dialog::backdrop{background:#102d50a6}.close-dialog{display:block;margin-left:auto;margin-bottom:14px}.prose{white-space:pre-wrap;overflow-wrap:anywhere}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--deep);color:white;padding:14px 22px;border-radius:8px;z-index:100;max-width:92vw}.issued-ticket{border:1px dashed #7890a1;border-radius:12px;padding:24px;display:grid;grid-template-columns:1fr 140px;gap:20px;margin-top:20px;break-inside:avoid}.issued-ticket code{display:block;font-size:13px;overflow-wrap:anywhere;margin-top:15px}.issued-ticket .qr img{width:140px;height:140px;image-rendering:pixelated}.admin-main{max-width:1220px;margin:auto;padding:35px 40px 80px}.admin-nav{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:28px}.admin-nav button{border:0;border-radius:5px;background:transparent;padding:10px 16px;color:var(--blue)}.admin-nav button.active{background:var(--blue);color:white}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:25px;margin:22px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metric{background:white;border:1px solid var(--line);border-radius:10px;padding:18px}.metric strong{font-size:30px;display:block}.metric span{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:13px 10px;vertical-align:top}th{color:var(--muted);font-weight:600}td .text-button{padding:0}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.login{max-width:480px;margin:45px auto}.scan-result{border-radius:12px;padding:25px;font-size:22px;background:#e9eef3}.scan-result.ok{background:#d9f2e4;border:2px solid var(--green);color:#125134}.scan-result.bad{background:#fae1df;border:2px solid var(--red);color:#842025}.scan-result p{font-size:16px}.camera{width:100%;max-height:320px;object-fit:cover;background:#102d50;border-radius:10px}.inline-message{min-height:24px;color:var(--red);font-size:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:25px}.danger-button{color:var(--red)}@media(max-width:1000px){.hero{gap:25px}.booking-grid{grid-template-columns:1fr 270px;gap:20px}.ticket-grid{grid-template-columns:1fr}.how{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr}}@media(max-width:720px){.header{padding:17px 20px}.brand{font-size:13px}.brand small{font-size:8px;letter-spacing:2.5px}.brand img{width:37px;height:37px}.header nav{gap:15px;font-size:12px}.hero{padding:38px 22px 40px;grid-template-columns:1fr;gap:20px}.hero figure{min-height:200px;height:210px;padding:0;margin:8px 0 0 12px}.hero figure img{border-radius:70px 10px 10px 10px;object-position:center 40%}.hero figcaption{font-size:14px;left:-12px;bottom:12px}.intro{font-size:16px;margin:18px 0}.event-meta{margin:18px 0}.booking,.faq{padding:38px 20px}.booking-grid{grid-template-columns:1fr}.ticket-grid{grid-template-columns:1fr 1fr;gap:12px}.ticket-card{padding:18px}.ticket-card h3{font-size:19px}.overline{font-size:9px;letter-spacing:1px}.ticket-card .price{font-size:23px}.section-heading{align-items:start;flex-direction:column;gap:12px}h2{font-size:36px}.summary{position:static}.how{padding:30px 22px;gap:26px}.form-grid,.split{grid-template-columns:1fr}footer{padding:26px 20px;flex-direction:column}.admin-main{padding:25px 20px}.admin-top{align-items:start;flex-direction:column}.panel{padding:18px}.issued-ticket{grid-template-columns:1fr}.issued-ticket .qr{grid-row:1}.metrics{gap:10px}.metric strong{font-size:24px}dialog{padding:22px}}@media(max-width:400px){.ticket-grid,.how{grid-template-columns:1fr}.header nav a:last-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{background:white}body>*:not(#order-dialog){display:none!important}#order-dialog{display:block!important;position:static;max-height:none;width:100%;padding:0;box-shadow:none}#order-dialog::backdrop{display:none}#order-dialog button{display:none}.issued-ticket{grid-template-columns:1fr 140px}.issued-ticket .qr{grid-row:auto}}
