@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--forest:#1a3c2b;--paper:#f7f7f5;--line:#dedfd9;--muted:#72786e;--mint:#e8f2df;--gold:#f4d35e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:#242823;font:14px 'DM Sans',sans-serif}h1,h2,h3,.brand{font-family:'Space Grotesk',sans-serif}h1{font-size:36px;letter-spacing:-1.3px;margin:8px 0 12px}h2{font-size:21px;margin:0 0 20px}h3{margin:0 0 12px}p{line-height:1.6}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--forest);min-height:42px;padding:10px 16px;border-radius:3px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{background:#eef2e9}button.primary,.primary{background:var(--forest);color:white;border-color:var(--forest)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #c1a93c;outline-offset:3px}input,select,textarea{border:1px solid #cbd0c5;background:white;border-radius:3px;padding:12px;max-width:100%;width:100%}label{display:block;font-size:12px;font-weight:600;margin-bottom:7px}small,.muted{color:var(--muted)}.shell{display:flex;min-height:100vh}.sidebar{width:224px;flex-shrink:0;background:#eef0e9;border-right:1px solid var(--line);padding:32px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:30px;font-weight:700;letter-spacing:-1.5px;color:var(--forest)}.brand span{color:#9aab87}.nav{display:grid;gap:6px;margin-top:40px}.nav button{border:0;background:none;justify-content:start;color:#666e60}.nav button.active{background:var(--forest);color:white}.nav .num{font-size:11px;opacity:.5;width:20px}.sidebottom{margin-top:auto;font-size:12px;line-height:1.6}.main{flex:1;min-width:0}header{min-height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:20px 36px;gap:16px;background:#ffffff80}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}main{max-width:1400px;margin:auto;padding:36px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700;color:var(--forest)}.notice{border:1px solid var(--line);background:#efefe6;padding:12px 16px;font-size:12px;margin:24px 0;color:#5c6355;line-height:1.6}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:26px 0}.card{border:1px solid var(--line);padding:24px;background:white;border-radius:3px}.metric strong{display:block;font:600 32px 'Space Grotesk';margin:12px 0 5px}.grid{display:grid;grid-template-columns:2fr 1fr;gap:22px;margin:24px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.badge{display:inline-block;font-size:10px;padding:5px 8px;background:var(--mint);color:var(--forest);border-radius:2px;white-space:nowrap}.badge.pending{background:#fff0cf;color:#775a16}.badge.demo{background:#e9e9df}.row{display:flex;justify-content:space-between;gap:12px;align-items:center}.divider{border-bottom:1px solid var(--line);padding:16px 0}.bar{height:7px;background:#edf0e9;margin-top:10px}.bar span{display:block;height:100%;background:var(--forest)}.chart{display:flex;height:200px;gap:12px;align-items:end;border-bottom:1px solid var(--line);margin-top:28px}.column{flex:1;text-align:center;height:100%;display:flex;justify-content:end;flex-direction:column;gap:8px}.column span{display:block;background:var(--forest);min-height:2px;opacity:.85}.column small{font-size:10px;padding-bottom:8px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:500}td,th{border-bottom:1px solid var(--line);padding:15px 12px}td:first-child,th:first-child{padding-left:0}td button{min-height:32px;padding:6px 10px;font-size:12px}.filters{display:flex;gap:12px;margin:20px 0}.filters input{flex:1}.filters select{width:180px}.field{margin:16px 0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fields .field{margin:0}.public{max-width:1180px;margin:auto;padding:0 28px}.public header{padding:24px 0}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;padding:60px 0}.hero h1{font-size:68px;line-height:1.05;letter-spacing:-3px}.poster{background:var(--forest);color:#f7f7f5;min-height:460px;padding:36px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.poster .year{font:700 130px 'Space Grotesk';letter-spacing:-9px;color:var(--gold);line-height:1}.poster h2{font-size:45px;line-height:1.05;max-width:300px}.poster .seal{width:110px;height:110px;border:1px solid #ffffff70;border-radius:50%;display:grid;place-items:center;text-align:center;align-self:end;font-size:12px;transform:rotate(-12deg)}.tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ticketchoice{display:block;text-align:left;padding:18px}.ticketchoice.selected{border:2px solid var(--forest);background:#edf2e8}.ticketchoice strong{display:block;font-size:23px;margin:12px 0}.section{padding:32px 0;border-top:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:4px;width:min(540px,94vw);padding:28px;max-height:90vh;overflow:auto}dialog::backdrop{background:#10241988}.close{float:right;padding:4px 10px;min-height:32px}.ticket{border:1px dashed var(--forest);padding:24px;text-align:center;margin:20px 0}.qr{display:flex;justify-content:center;margin:20px}.qr img{max-width:160px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--forest);color:white;padding:14px 22px;z-index:999;border-radius:3px;display:none;max-width:90vw}video{width:100%;max-height:300px;background:#111}.empty{text-align:center;padding:40px;color:var(--muted)}.wide{width:100%}.danger{color:#a23d2c}.topgap{margin-top:24px}footer{padding:30px 0;color:var(--muted);font-size:12px}#qrerror{font-size:12px}@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.hero h1{font-size:50px}.sidebar{width:190px}}@media(max-width:720px){.shell{display:block}.sidebar{width:100%;height:auto;position:static;padding:18px}.nav{display:flex;overflow-x:auto;margin-top:16px}.nav button{white-space:nowrap}.nav .num,.sidebottom{display:none}header{padding:16px;flex-wrap:wrap}main{padding:22px 16px}.metrics{gap:10px}.card{padding:18px}.metric strong{font-size:27px}.hero,.two{grid-template-columns:1fr}.hero{padding:32px 0;gap:24px}.hero h1{font-size:48px}.poster{min-height:370px}.tickets{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.filters{flex-wrap:wrap}.public{padding:0 18px}.filters select{width:100%}h1{font-size:30px}.chart{gap:6px}.row{flex-wrap:wrap}}@media print{body *{visibility:hidden}dialog,dialog *{visibility:visible}dialog{position:absolute;inset:0;max-height:none;width:100%;border:0}dialog button{display:none}}
.view-switch{padding:14px 30px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;justify-content:space-between}.view-home{font:700 25px 'Space Grotesk',sans-serif;color:var(--forest);text-decoration:none;letter-spacing:-1px}.view-home span{color:#9aab87}.view-tabs{display:flex;gap:5px}.view-tabs a{padding:10px 18px;color:var(--muted);text-decoration:none;border-radius:3px;min-height:44px;display:flex;align-items:center}.view-tabs a:hover{background:var(--paper)}.view-tabs a[aria-current]{background:var(--forest);color:white}.experience-home{max-width:1120px;padding-top:72px}.experience-home h1{font-size:44px}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0}.experience-card{display:flex;flex-direction:column;min-height:290px;background:white;border:1px solid var(--line);padding:30px;text-decoration:none;color:inherit;transition:transform .15s,border-color .15s}.experience-card:hover{border-color:var(--forest);transform:translateY(-3px)}.experience-card h2{margin-top:32px;font-size:26px}.experience-card p{color:var(--muted);margin:0 0 30px}.experience-card strong{margin-top:auto;color:var(--forest)}.ticket-page{max-width:900px}.admission-ticket{background:white;border:1px solid var(--line);margin-top:28px}.ticket-head,.ticket-foot{padding:20px 26px;font-size:11px;color:var(--muted);letter-spacing:1px}.ticket-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#eef2e9}.ticket-body{display:grid;grid-template-columns:1.3fr 1fr;padding:32px;gap:28px}.ticket-body h2{font-size:32px;margin:12px 0 28px}.ticket-holder{font-size:23px;font-weight:600;margin-bottom:0}.ticket-qr{border-left:1px dashed var(--line);padding:16px 0 16px 28px;text-align:center;display:flex;flex-direction:column;justify-content:center}.ticket-foot{border-top:1px dashed var(--line);text-align:center}.arrival-guide{margin-top:40px}.arrival-guide ol{padding-left:24px;line-height:2.3;color:var(--muted)}.gate-workspace{max-width:1100px}.gate-counter{padding:16px 22px;background:white;border:1px solid var(--line)}.gate-counter strong{font:600 32px 'Space Grotesk'}.gate-result{padding:32px;border:1px solid var(--line);background:white;min-height:300px;display:flex;flex-direction:column;align-items:start;justify-content:center}.gate-result h2{font-size:28px;margin:20px 0 8px}.gate-result p{margin:8px 0 18px}.gate-result.success{background:#e9f3e4;border-color:#a7c399}.gate-result.error{background:#fff0e8;border-color:#e9b7a5}.gate-result.duplicate{background:#fff7de;border-color:#e6d38b}details summary{cursor:pointer;color:var(--forest);padding:10px 0;min-height:44px}.gate-result button{margin-top:12px}@media(max-width:760px){.view-switch{padding:12px 16px;gap:12px;flex-wrap:wrap}.view-switch>.badge{display:none}.view-tabs{gap:0}.view-tabs a{padding:10px 12px;font-size:12px}.experience-home{padding-top:35px}.experience-home h1{font-size:34px}.experience-grid{grid-template-columns:1fr;gap:14px;margin:26px 0}.experience-card{min-height:220px;padding:24px}.experience-card h2{margin-top:20px}.ticket-body{grid-template-columns:1fr;padding:22px}.ticket-qr{border-left:0;border-top:1px dashed var(--line);padding:20px 0}.ticket-head{padding:16px;gap:12px}.gate-workspace .two{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{body:has(.ticket-page) *{visibility:visible}body:has(.ticket-page) .view-switch,body:has(.ticket-page) .actions,body:has(.ticket-page) .notice{display:none}}
.ui-icon{width:18px;height:18px;flex-shrink:0;display:inline-block;vertical-align:middle}.view-tabs a{gap:8px}.startup{min-height:70vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.startup p{margin:0}.spinner{display:inline-block;width:22px;height:22px;border:2px solid #cdd8c7;border-top-color:var(--forest);border-radius:50%;animation:loading-spin .8s linear infinite;flex-shrink:0}.inline-status{display:flex;gap:12px;align-items:center;padding:14px;background:var(--paper);margin:16px 0}.chart-toggle{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:4px}.chart-toggle button{border:0;min-height:36px;padding:8px 12px;font-size:12px}.chart-toggle button[aria-pressed="true"]{background:var(--forest);color:white}.line-chart{width:100%;height:auto;display:block;overflow:visible;margin-top:22px}.line-chart text,.donut text{font-family:'DM Sans',sans-serif;font-size:11px;fill:var(--muted)}.chart-grid{stroke:#e8ebe4;stroke-width:1}.line-chart circle:hover{r:6}.chart-data{border-top:1px solid var(--line);margin-top:10px;font-size:12px}.chart-data summary{color:var(--muted)}.donut-wrap{display:flex;justify-content:center;margin-top:10px}.donut{width:190px;height:190px}.donut .donut-number{font:600 32px 'Space Grotesk',sans-serif;fill:var(--forest)}.legend{display:flex;justify-content:center;gap:18px;font-size:12px}.legend span{display:flex;gap:6px;align-items:center}.legend i{display:block;width:8px;height:8px;border-radius:50%;background:var(--forest)}.legend i.pale{background:#dce2d4}.chart-caption{text-align:center;font-size:12px;margin-bottom:0}.ticket-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:16px}.ticket-bars small{display:block;margin-top:10px}.ticket-bars .bar{height:9px}.revenue-row{display:grid;grid-template-columns:100px 1fr 110px;gap:20px;align-items:center;margin:24px 0}.revenue-row strong{text-align:right}.revenue-row .bar{margin:0;height:14px}.qr[aria-busy="true"]{min-width:160px;min-height:160px;align-items:center}.qr[aria-busy="true"] .spinner{width:30px;height:30px}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(max-width:720px){.ticket-bars{grid-template-columns:1fr;gap:22px}.revenue-row{grid-template-columns:75px 1fr 90px;gap:12px;font-size:12px}.view-tabs a{gap:5px}.view-tabs .ui-icon{width:14px;height:14px}.chart-toggle{margin-top:8px}.line-chart text{font-size:12px}}@media(prefers-reduced-motion:reduce){.spinner{animation:none;border-style:dotted}}
