@charset "UTF-8";
:root{--paper:#fbfaf5;--ink:#183f35;--muted:#6b746b;--line:#e4e5d9;--lime:#e8eea6;--orange:#d75b34;--error:#a52f29;--blue:#245dc1;--keyboard:0px;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:#eaece3;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:4px}[hidden]{display:none!important}.app-shell{position:relative;max-width:480px;min-height:100vh;min-height:100dvh;margin:auto;background:var(--paper);box-shadow:0 0 100px #173f350d}.brand-header{height:87px;margin:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;text-decoration:none;font-size:38px;font-weight:850;letter-spacing:-3px;line-height:1}.brand-star{font-size:31px;color:var(--orange);margin:0 6px 0 4px;letter-spacing:0}.brand-year{font-size:11px;line-height:1.1;letter-spacing:1px;border-left:1px solid #a9b2a5;padding-left:8px}.header-location{font-size:8px;font-weight:700;letter-spacing:1.1px;display:flex;gap:6px;align-items:center}.tiny-dot{width:5px;height:5px;border-radius:50%;background:var(--orange)}main{outline:none}.view{padding:25px 28px 0;animation:slide .2s ease-out}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px;text-transform:uppercase;display:flex;align-items:center;gap:8px}.eyebrow:before{content:"";width:17px;height:1px;background:currentColor}h1,h2,p{margin:0}h1{font-size:39px;letter-spacing:-1.8px;line-height:1.1;font-weight:650;margin:15px 0 12px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--orange)}.subtitle{font-size:13px;line-height:1.7;color:var(--muted);max-width:350px}.hero-art{height:153px;position:relative;overflow:hidden;border-radius:12px;background:var(--ink);margin:23px 0 0;color:var(--lime);isolation:isolate}.hero-art:before{content:"";position:absolute;width:270px;height:270px;border:1px solid #e8eea624;border-radius:50%;right:-70px;top:-59px;box-shadow:0 0 0 22px #e8eea608,0 0 0 44px #e8eea608,0 0 0 66px #e8eea605;z-index:-1}.art-caption{position:absolute;top:18px;left:19px;font-size:9px;letter-spacing:2px}.art-title{position:absolute;left:18px;top:41px;font-size:53px;letter-spacing:-4px;font-weight:800;line-height:1}.art-title span{font-family:Georgia,serif;font-weight:400;font-style:italic}.art-date{position:absolute;bottom:17px;left:20px;font-size:9px;letter-spacing:1.3px}.art-flower{position:absolute;right:17px;top:26px;width:93px;height:93px;transform:rotate(-10deg)}.free-tag{position:absolute;right:17px;bottom:14px;background:var(--lime);color:var(--ink);font-size:8px;letter-spacing:1.3px;font-weight:750;padding:5px 9px;border-radius:20px}.event-meta{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.5;padding:12px 0 20px;color:var(--muted)}.icon{display:inline-block;width:18px;height:18px;vertical-align:middle;flex-shrink:0}.steps{display:flex;align-items:center;gap:10px;margin:2px 0 22px}.step-item{display:flex;gap:6px;align-items:center;color:#767c71;font-size:10px;white-space:nowrap}.step-number{height:20px;width:20px;border-radius:50%;border:1px solid #d7dbcf;display:grid;place-items:center;font-size:9px}.step-item.active{color:var(--ink);font-weight:700}.active .step-number,.step-item.done .step-number{background:var(--ink);color:white;border-color:var(--ink)}.step-line{height:1px;flex:1;background:var(--line)}.step-count{margin-left:auto;font-size:11px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-heading h2{font-size:18px;letter-spacing:-.5px}.field{margin-bottom:17px}label.field-label{display:block;font-size:12px;font-weight:650;margin-bottom:8px}.optional-note{color:var(--muted);font-weight:400}.text-input,.phone-group,.zone-select{height:50px;width:100%;border:1px solid #daddd0;background:#fffefa;border-radius:7px;color:var(--ink)}.text-input{padding:0 13px;min-width:0;font-size:16px}.text-input::placeholder{color:#8a9085;font-size:13px}.text-input:hover,.phone-group:hover,.zone-select:hover{border-color:#9cae99}.text-input:focus{border-color:var(--ink);outline:2px solid #173f3520;outline-offset:0}.phone-group{display:flex;align-items:center}.phone-group select{width:111px;height:30px;padding-left:10px;border:0;border-right:1px solid var(--line);background:transparent;font-size:13px;flex-shrink:0}.phone-group input{border:0;height:46px;background:transparent;padding-left:12px}.field-hint{font-size:10px;line-height:1.6;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:5px}.field-hint .icon{width:12px;height:12px}.field-error{color:var(--error);font-size:11px;line-height:1.5;margin-top:6px}.invalid .text-input,.invalid .phone-group{border-color:var(--error)}.consent-row{display:flex;gap:10px;align-items:flex-start;margin:20px 0 0}.consent-row input{appearance:none;width:18px;height:18px;border:1px solid #acb4a4;flex-shrink:0;border-radius:4px;background:#fffefa;margin:1px 0 0;display:grid;place-items:center}.consent-row input:checked{background:var(--ink);border-color:var(--ink)}.consent-row input:checked:after{content:"✓";color:white;font-size:13px}.consent-row label{font-size:10px;line-height:1.7;color:var(--muted)}.link-button{padding:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-size:inherit}.honeypot{position:absolute;left:-10000px;height:1px;width:1px;overflow:hidden}.action-bar{position:fixed;bottom:var(--keyboard);left:50%;transform:translateX(-50%);width:min(100%,480px);padding:14px 28px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(#fbfaf5ee,var(--paper) 22%);border-top:1px solid var(--line);z-index:20}.primary,.secondary{min-height:50px;padding:13px 18px;border-radius:7px;font-weight:650;font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;text-decoration:none}.primary{border:1px solid var(--ink);background:var(--ink);color:#fff}.primary:hover:not(:disabled){background:#275748}.primary:disabled{background:#dce1d5;color:#62715d;border-color:#dce1d5}.primary .arrow{margin-left:auto;font-size:20px}.primary .button-label{margin-left:auto}.secondary{background:transparent;border:1px solid #cdd4c5}.secondary:hover{background:#eff0e7}.action-note{display:flex;gap:5px;justify-content:center;align-items:center;font-size:9px;color:var(--muted);margin-top:10px}.action-note .icon{width:12px;height:12px}.page-footer{display:flex;justify-content:space-between;gap:10px;margin:26px 28px 0;padding:18px 0 125px;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}.page-footer button{background:none;border:0;font-size:8px;padding:0}.network{position:sticky;top:0;z-index:40;background:#fff0d6;color:#75450e;padding:12px 18px;font-size:12px;display:flex;justify-content:space-between;gap:8px}.network button{border:0;background:transparent;text-decoration:underline;font-weight:700;font-size:12px}.message{font-size:12px;padding:12px 14px;border-radius:7px;background:#faeae3;color:var(--error);line-height:1.6;margin:15px 0}.message:empty{display:none}.message.success{color:var(--ink);background:#e7efdc}.message button{margin-top:10px}.back{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;font-size:11px;padding:0;margin:0 0 25px;min-height:24px}.inner-view .steps{margin-top:0;margin-bottom:35px}.large-symbol{width:64px;height:64px;background:#edf0df;border-radius:18px;display:grid;place-items:center;margin:8px 0 25px}.large-symbol .icon{height:29px;width:29px}.inner-view h1{font-size:32px;line-height:1.17;margin-bottom:13px}.phone-reminder{font-weight:650;color:var(--ink);white-space:nowrap}.edit-phone{display:block;font-size:12px;margin-top:13px}.otp-wrap{display:flex;justify-content:space-between;gap:6px;margin:30px 0 15px}.otp-input{width:48px;min-width:0;flex:0 1 48px;height:56px;text-align:center;border:1px solid #cbd3c1;border-radius:8px;background:#fffefa;font-size:23px;color:var(--ink);font-weight:650}.otp-input:focus{border-color:var(--ink);outline:2px solid #173f3520}.otp-wrap.has-error .otp-input{border-color:var(--error)}.otp-wrap.has-success .otp-input{border-color:#438147;background:#edf3e2}.otp-status{min-height:22px;font-size:12px;line-height:1.5;color:var(--error)}.otp-status.success{color:#35713f}.resend-row{text-align:center;font-size:12px;color:var(--muted);margin:22px 0}.resend-row button{font-size:12px;color:var(--ink);margin-top:7px;min-height:36px}.resend-row button:disabled{color:var(--muted);text-decoration:none}.info-card{display:flex;align-items:flex-start;gap:12px;background:#f0f1e6;border:1px solid var(--line);border-radius:10px;padding:17px;margin:28px 0;font-size:12px;line-height:1.7;color:var(--muted)}.info-card strong{color:var(--ink);display:block;font-size:12px}.mock-note{font-size:10px;line-height:1.6;color:var(--muted);text-align:center;margin-top:15px}.mock-note code{color:var(--ink);font-size:12px;letter-spacing:2px}.zone-view .steps{margin-bottom:26px}.zone-view h1{margin-top:0}.plan-toolbar{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;color:var(--muted);margin:23px 0 4px}.live-label{display:flex;align-items:center;gap:5px}.live-label:before{content:"";width:5px;height:5px;background:#58974e;border-radius:50%}.stadium{width:100%;margin:4px auto 10px}.stadium svg{display:block;width:100%;max-height:440px}.stadium-zone{cursor:pointer;outline:none}.stadium-zone path,.stadium-zone rect{fill:#d8e6b8;stroke:#b0c38c;stroke-width:1;transition:fill .15s,stroke .15s}.stadium-zone text{font-family:"Segoe UI",Arial,sans-serif;font-size:14px;font-weight:600;fill:#294834;pointer-events:none}.stadium-zone[data-status="almost"] path,.stadium-zone[data-status="almost"] rect{fill:#f0d5ac;stroke:#dbb47c}.stadium-zone[data-status="full"]{cursor:default}.stadium-zone[data-status="full"] path,.stadium-zone[data-status="full"] rect{fill:#e2e3dd;stroke:#c8cbc1}.stadium-zone[data-status="full"] text{fill:#6b7066}.stadium-zone.selected path,.stadium-zone.selected rect{fill:#d6e5ff;stroke:var(--blue);stroke-width:3}.stadium-zone.selected text{fill:#194792}.stadium-zone:hover:not([data-status="full"]) path,.stadium-zone:hover:not([data-status="full"]) rect,.stadium-zone:focus-visible path,.stadium-zone:focus-visible rect{stroke:var(--ink);stroke-width:3}.legend{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:10px;margin:15px 0 21px}.legend span{display:flex;align-items:center;gap:7px}.swatch{width:9px;height:9px;border-radius:3px;background:#cadcab;border:1px solid #a5bb7c}.swatch.almost{background:#efd4aa;border-color:#c8a067}.swatch.full{background:#e0e1da;border-color:#c6c8bd}.swatch.chosen{background:#caddfb;border-color:var(--blue)}.zone-select{font-size:13px;padding:0 12px}.plan-note{font-size:9px;color:var(--muted);line-height:1.6;margin-top:12px}.selection-info{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px}.selection-info strong{display:block;font-size:15px}.selection-info span{font-size:11px;color:var(--muted);display:block;margin-top:3px}.selection-info .remaining{text-align:right}.selection-info .remaining strong{font-size:14px}.selection-empty{font-size:11px;color:var(--muted);text-align:center;margin-bottom:11px}.zone-view{padding-bottom:45px}.ticket-view{text-align:center;padding-top:26px}.reserved-tag{display:inline-flex;align-items:center;gap:7px;background:#eaf0dd;border:1px solid #d4e1c1;border-radius:30px;padding:8px 13px;font-size:10px;font-weight:600}.reserved-tag .icon{width:15px;height:15px}.ticket-view h1{font-size:34px;margin-top:22px}.ticket-view .subtitle{margin:auto}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:23px 0 12px}.countdown-cell{padding:13px 2px 11px;background:#f0f1e8;border:1px solid var(--line);border-radius:9px}.countdown-cell strong{display:block;font-size:28px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-1px}.countdown-cell span{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.release-note{font-size:10px;color:var(--muted);line-height:1.6}.ticket{position:relative;margin:25px auto 22px;border:1px solid #d7dbce;background:#fffef9;border-radius:13px;box-shadow:0 10px 25px #173f3507;overflow:hidden;text-align:left}.ticket-top{background:var(--ink);color:var(--lime);padding:22px;position:relative;overflow:hidden}.ticket-top:after{content:"✳";position:absolute;right:14px;top:-18px;font-size:128px;line-height:1.1;color:#e8eea625;transform:rotate(15deg)}.ticket-brand{font-size:38px;font-weight:800;letter-spacing:-2px}.ticket-brand span{font-family:Georgia,serif;font-style:italic;font-weight:400}.ticket-caption{font-size:8px;letter-spacing:2px;margin-top:4px}.ticket-body{padding:20px 22px}.ticket-label{font-size:8px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}.ticket-name{font-size:21px;letter-spacing:-.4px;margin:6px 0 17px;overflow-wrap:anywhere}.ticket-zone{display:inline-flex;border:1px solid #d4dfc4;border-radius:5px;padding:6px 10px;font-size:11px;background:#eff3e5;margin:6px 0 20px}.ticket-details{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.7}.ticket-details+.ticket-details{margin-top:8px}.ticket-bottom{border-top:1px dashed #cdd5c3;position:relative;padding:22px;text-align:center}.ticket-bottom:before,.ticket-bottom:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:var(--paper);top:-11px;border:1px solid #d7dbce}.ticket-bottom:before{left:-12px}.ticket-bottom:after{right:-12px}.qr-wrap{position:relative;width:122px;height:122px;margin:0 auto 12px;background:white;overflow:hidden}.fake-qr{width:112px;height:112px;filter:blur(5px);opacity:.4;display:block;margin:5px}.qr-lock{position:absolute;inset:0;display:grid;place-items:center}.qr-lock span{width:43px;height:43px;border-radius:50%;background:var(--paper);display:grid;place-items:center;box-shadow:0 3px 15px #173f3515}.ticket-unlock{font-size:10px;color:var(--muted)}.ticket-reminder{font-size:11px;line-height:1.7;color:var(--muted);margin:15px 8px}.ticket-page .page-footer{padding-bottom:25px}.ticket-id{font-family:monospace;font-size:9px;letter-spacing:1.5px;color:#6d7567;margin-top:14px}.empty-view{text-align:center;padding-top:55px;padding-bottom:30px}.empty-view .large-symbol{margin:auto auto 25px}.empty-view .primary{margin-top:25px}.empty-view .subtitle{margin:auto}.initial-loading{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;font-size:13px;color:var(--muted)}.spinner{display:inline-block;width:17px;height:17px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;vertical-align:middle}.modal-overlay{position:fixed;inset:0;background:#102c2866;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--paper);max-width:420px;width:100%;border-radius:15px;padding:25px;max-height:85vh;overflow:auto;box-shadow:0 20px 70px #102c2833}.modal h2{font-size:23px;margin-bottom:20px}.modal p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:14px}.modal .primary{margin-top:20px}.skip-link{position:fixed;top:-60px;z-index:200;background:var(--ink);color:white;padding:12px}.skip-link:focus{top:0}.shake{animation:shake .25s ease-in-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes slide{from{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(min-width:600px){body{padding:28px 0}.app-shell{border:1px solid #dce1d3;border-radius:17px;overflow:hidden;min-height:calc(100vh - 56px)}.action-bar{border-left:1px solid #dce1d3;border-right:1px solid #dce1d3}.brand-header{height:88px}}
@media(max-width:359px){.brand-header{margin:0 20px;height:76px}.header-location{font-size:7px;letter-spacing:.5px}.view{padding-left:20px;padding-right:20px}h1{font-size:35px}.hero-art{height:141px}.art-title{font-size:47px}.art-flower{width:76px;right:13px}.action-bar{padding-left:20px;padding-right:20px}.page-footer{margin-left:20px;margin-right:20px}.step-item{font-size:9px}.steps{gap:6px}.otp-wrap{gap:5px}.otp-input{height:56px}.countdown-cell strong{font-size:25px}.inner-view h1{font-size:29px}}
/* Keep the opening message compact and the event artwork legible on small phones. */
.view:not(.inner-view):not(.ticket-view):not(.empty-view) h1{font-size:31px;letter-spacing:-1.2px;line-height:1.15}
.view:not(.inner-view):not(.ticket-view):not(.empty-view) h1 em{font-size:29px}
.hero-art{height:139px}.art-title{font-size:45px;letter-spacing:-3px;top:43px}.art-flower{width:68px;height:68px;top:38px;right:17px}
.plan-toolbar>span:first-child{text-transform:uppercase;font-size:8px}
#main:focus-visible{outline:none}.stadium-zone text{font-size:20px}
@media(max-width:359px){.view:not(.inner-view):not(.ticket-view):not(.empty-view) h1{font-size:29px}.view:not(.inner-view):not(.ticket-view):not(.empty-view) h1 em{font-size:26px}.art-title{font-size:39px}.art-flower{width:58px;height:58px;right:13px;top:42px}.plan-toolbar{letter-spacing:0;font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
