.ticket-page-root{--bg-color:#d8d1c2;--paper-color:#eee0c3;--ink-color:#171410;--accent-color:#c23f2d;--brass:#d7a84f;--verdigris:#2a8a7a;--night:#11100e;--cream:#f5ead5;--muted-cream:#bfb29d;background:radial-gradient(circle at 20% 12%, #fffae8b8, transparent 30%), radial-gradient(circle at 84% 84%, #2a8a7a2e, transparent 34%), linear-gradient(135deg, #e8e4d9 0%, var(--bg-color) 55%, #c6c0b2 100%);font-family:var(--font-instrument), sans-serif;color:var(--ink-color);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.ticket-container{font-family:var(--font-instrument), sans-serif;color:var(--ink-color);z-index:10;filter:drop-shadow(0 25px 45px #00000026)drop-shadow(0 4px 10px #0000000d);cursor:grab;gap:0;transition:gap .4s ease-out,transform .4s ease-out;display:flex;position:relative}.ticket-page-root *{box-sizing:border-box}.ambient-light{z-index:0;pointer-events:none;background:radial-gradient(circle,#fff6 0%,#0000 60%);width:50vw;height:50vh;position:absolute}.ticket-container:hover{gap:24px;transform:translateY(-5px)scale(1.02)}.ticket-container:active{cursor:grabbing}.ticket-container:focus-visible{outline-offset:8px;outline:2px solid #c23f2dc2}.ticket-main{background:#e8dcc4;border-radius:24px 36px 36px 24px;width:320px;height:230px;padding:24px;position:relative}@supports (corner-shape:bevel){.ticket-main{corner-shape:squircle scoop scoop squircle}}.ticket-content{flex-direction:column;justify-content:space-between;height:100%;display:flex}.ticket-header{letter-spacing:1.5px;text-transform:uppercase;color:#888;justify-content:space-between;font-size:.65rem;font-weight:700;display:flex}.serial{color:var(--accent-color)}.title{font-family:var(--font-playfair), serif;letter-spacing:0;text-align:center;margin:12px 0 6px;font-size:2.2rem;font-weight:700;line-height:1}.subtitle{letter-spacing:.5px;color:#666;text-align:center;font-size:.8rem}.ticket-footer{border-top:1px solid #0000001a;gap:24px;padding-top:12px;display:flex}.info-block{flex-direction:column;gap:4px;display:flex}.info-block .label{color:#888;text-transform:uppercase;letter-spacing:1px;font-size:.65rem}.info-block .value{font-size:.8rem;font-weight:700}.perforation-line{background-image:linear-gradient(#0000 50%,#00000026 50%);background-size:100% 12px;width:4px;transition:opacity .3s;position:absolute;top:40px;bottom:40px;right:-2px}.ticket-container:hover .perforation-line{opacity:0}.ticket-stub{background:#e8dcc4;border-radius:36px 24px 24px 36px;flex-direction:column;justify-content:center;align-items:center;gap:20px;width:110px;height:230px;padding:24px 0;display:flex;position:relative}@supports (corner-shape:bevel){.ticket-stub{corner-shape:scoop squircle squircle scoop}}.foil-seal{border-radius:50%;min-width:48px;min-height:48px}@supports (corner-shape:bevel){.foil-seal{corner-shape:notch}}.foil-seal{background:linear-gradient(135deg,#e0e0e0,#fff 40%,#a8a8a8 60%,#e0e0e0) 0 0/200% 200%;animation:3s linear infinite shimmer;box-shadow:0 4px 10px #0000001a}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.barcode{background:repeating-linear-gradient(90deg, var(--ink-color), var(--ink-color) 2px, transparent 2px, transparent 4px, var(--ink-color) 4px, var(--ink-color) 5px, transparent 5px, transparent 8px);opacity:.8;width:30px;height:80px}.stub-text{letter-spacing:.4em;writing-mode:vertical-rl;color:var(--accent-color);opacity:.9;margin-top:-30px;font-size:1rem;font-weight:800;transform:rotate(180deg)}.claim-shell{width:min(500px,100vw - 36px);min-height:292px;color:var(--ink-color);filter:drop-shadow(0 25px 45px #00000029)drop-shadow(0 4px 10px #0000000f);grid-template-columns:minmax(0,1fr) 88px;display:grid;position:relative}.claim-shell:before{content:"";z-index:3;background:var(--bg-color);border-radius:50%;width:30px;height:30px;position:absolute;top:-15px;right:72px;box-shadow:inset 0 0 12px #00000014}.claim-back{z-index:5;width:28px;height:28px;color:var(--ink-color);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:transform .18s,color .18s;display:grid;position:absolute;top:16px;right:104px}.claim-back:hover{color:var(--accent-color);transform:translate(-2px)}.claim-back:focus-visible,.submit-btn:focus-visible{outline-offset:3px;outline:2px solid #1714109e}.claim-panel{background:linear-gradient(90deg,#17141009 1px,#0000 1px) 0 0/34px 34px,radial-gradient(circle at 14% 16%,#ffffff70,#0000 30%),radial-gradient(circle at 90% 84%,#c23f2d17,#0000 26%),#e8dcc4;border:1px solid #17141029;border-right:1px dashed #1714103d;border-radius:24px 0 0 24px;grid-template-columns:1fr;padding:clamp(26px,4.5vw,40px);display:grid;position:relative;overflow:hidden}.claim-panel:after{content:"";pointer-events:none;border:1px solid #c23f2d38;position:absolute;inset:14px 16px 14px 14px}.claim-form{z-index:1;flex-direction:column;justify-content:center;gap:16px;min-width:0;min-height:196px;display:flex;position:relative}.claim-field{cursor:text;background:#fff8e85c;border:1px solid #17141024;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;min-height:68px;padding:12px 14px;transition:border-color .18s,background .18s,transform .18s;display:grid}.claim-field:hover{background:#fff8e894;border-color:#1714104d;transform:translateY(-1px)}.claim-field:focus-within{outline-offset:2px;background:#fff8e8a8;border-color:#1714106b;outline:2px solid #7d705752}.field-icon{width:34px;height:34px;color:var(--accent-color);background:#c23f2d14;border:1px solid #c23f2d33;place-items:center;display:grid}.field-text{flex-direction:column;gap:7px;min-width:0;display:flex}.field-label{color:#1714107a;letter-spacing:.18em;text-transform:uppercase;font-size:.68rem;font-weight:900}.claim-field input{width:100%;min-width:0;color:var(--ink-color);font:700 1rem/1.2 var(--font-instrument), sans-serif;background:0 0;border:0;outline:none}.claim-field input::placeholder{color:#1714104d;font-weight:600}.submit-btn{color:#fff4dc;min-height:48px;font-family:var(--font-instrument), sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#c23f2d;border:1px solid #52201857;border-radius:6px;justify-content:flex-start;align-items:center;margin-top:6px;padding:0 54px 0 62px;font-size:.82rem;font-weight:950;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #fff4dc2e,inset 0 -8px #52201814,0 10px 18px #451f182e}.submit-btn:before{content:"";opacity:.82;background:repeating-linear-gradient(90deg,#fff4dc 0 2px,#0000 2px 5px,#fff4dc 5px 6px,#0000 6px 9px);border-radius:2px;width:25px;height:30px;position:absolute;top:50%;left:19px;transform:translateY(-50%)}.submit-btn:after{content:"";border-top:2px solid #fff4dc;border-right:2px solid #fff4dc;width:9px;height:9px;transition:transform .18s;position:absolute;top:50%;right:22px;transform:translateY(-50%)rotate(45deg)}.submit-btn:hover{background:#cf4d39;transform:translateY(-2px);box-shadow:inset 0 0 0 1px #fff4dc33,inset 0 -8px #52201814,0 14px 24px #451f183d}.submit-btn:hover:after{transform:translate(3px,-50%)rotate(45deg)}.submit-btn:active{transform:translateY(0)scale(.99)}.claim-stub{color:var(--accent-color);letter-spacing:.24em;text-orientation:mixed;text-transform:uppercase;writing-mode:vertical-rl;background:repeating-linear-gradient(0deg,#0000 0 10px,#17141014 10px 11px),#e8dcc4;border:1px solid #17141029;border-left:0;border-radius:0 24px 24px 0;place-items:center;gap:14px;padding:24px 0;font-size:.7rem;font-weight:950;display:grid}.claim-stub-code{opacity:.76;background:repeating-linear-gradient(90deg,#171410 0 2px,#0000 2px 5px,#171410 5px 6px,#0000 6px 10px);width:46px;height:74px}.hecate-ticket-stage{isolation:isolate;overflow:visible;transform:translate(-43px)}.hecate-ticket-stage:before,.hecate-ticket-stage:after{content:"";pointer-events:none;z-index:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hecate-ticket-stage:before{filter:blur(16px);opacity:.44;background:radial-gradient(circle at 50% 48%,#c29a5342 0 12%,#805b2a24 30%,#41311b14 52%,#0000 74%),radial-gradient(circle at 45% 54%,#f1deb01a,#0000 58%);border-radius:999px;width:154px;height:108px;animation:4.8s ease-in-out infinite hecate-glow-breathe}.hecate-ticket-stage:after{filter:blur(11px);opacity:.34;background:linear-gradient(115deg,#0000 14%,#d2ae6924 45%,#0000 72%),radial-gradient(circle,#e2ca922e,#0000 68%);border-radius:18px;width:96px;height:62px;animation:3.7s ease-in-out infinite hecate-core-glow}.hecate-ticket-float{z-index:1;transform-origin:50%;will-change:transform, filter;filter:drop-shadow(0 22px 30px #0a08075c)drop-shadow(0 0 14px #a5733229);animation:5.4s ease-in-out infinite hecate-ticket-float;position:relative}@keyframes hecate-ticket-float{0%,to{transform:translateY(-4px)rotate(-1.4deg)}50%{transform:translateY(8px)rotate(1.2deg)}}@keyframes hecate-glow-breathe{0%,to{opacity:.32;transform:translate(-50%,-50%)scale(.94)}50%{opacity:.5;transform:translate(-50%,-50%)scale(1.06)}}@keyframes hecate-core-glow{0%,to{opacity:.22;transform:translate(-50%,-50%)rotate(-4deg)scale(.98)}50%{opacity:.38;transform:translate(-50%,-50%)rotate(-2deg)scale(1.03)}}@media (prefers-reduced-motion:reduce){.hecate-ticket-stage:before,.hecate-ticket-stage:after,.hecate-ticket-float{animation:none}}@media (max-width:760px){.ticket-page-root{align-items:flex-start;min-height:100dvh;padding:18px;overflow-y:auto}.claim-shell{grid-template-columns:minmax(0,1fr);width:100%;min-height:auto;padding-top:50px}.claim-shell:before,.claim-stub{display:none}.claim-back{color:#171410;background:0 0;top:0;left:0;right:auto}.claim-panel{border-right-style:solid;border-radius:8px;grid-template-columns:1fr;padding:28px}.claim-field{grid-template-columns:38px minmax(0,1fr);min-height:78px;padding:14px}.field-icon{width:38px;height:38px}}.ticket-container[data-status=winner] .ticket-main,.ticket-container[data-status=winner] .ticket-stub{background:linear-gradient(135deg,gold,#daa520);border:1px solid #fff9;box-shadow:0 0 30px #ffd70066,inset 0 0 20px #fff6}.ticket-container[data-status=winner] .title,.ticket-container[data-status=winner] .subtitle,.ticket-container[data-status=winner] .serial,.ticket-container[data-status=winner] .ticket-header,.ticket-container[data-status=winner] .info-block .label,.ticket-container[data-status=winner] .info-block .value,.ticket-container[data-status=winner] .stub-text{text-shadow:none;color:#000!important}.ticket-container[data-status=winner] .title{text-shadow:0 0 10px #fff6}.ticket-container[data-status=winner] .barcode{background:repeating-linear-gradient(90deg,#000,#000 2px,#0000 2px 4px,#000 4px 5px,#0000 5px 8px)}.ticket-container[data-status=winner] .foil-seal{background:linear-gradient(135deg,#daa520,gold 40%,#fff8dc 60%,#daa520);box-shadow:0 0 15px #ffd70099,inset 0 0 5px #fffc}.ticket-container[data-status=winner] .perforation-line{background-image:linear-gradient(#0000 50%,#0003 50%)}.ticket-container[data-status=lose] .ticket-main,.ticket-container[data-status=lose] .ticket-stub{background:#1f1f1f;border:1px solid #ffffff1a}.ticket-container[data-status=lose] .title,.ticket-container[data-status=lose] .subtitle,.ticket-container[data-status=lose] .serial,.ticket-container[data-status=lose] .ticket-header,.ticket-container[data-status=lose] .info-block .label,.ticket-container[data-status=lose] .info-block .value{color:#a3a3a3!important}.ticket-container[data-status=lose] .title{text-shadow:none;color:#555!important}.ticket-container[data-status=lose] .perforation-line{background-image:linear-gradient(#0000 50%,#00000026 50%)}.ticket-container[data-status=lose] .ticket-main,.ticket-container[data-status=lose] .ticket-stub{background:#111;border:1px solid #ffffff1a;overflow:hidden}.ticket-container[data-status=lose] .title{background:linear-gradient(90deg,#ff4d4d,#f9cb28,#20bdff,#a259ff);-webkit-text-fill-color:transparent;letter-spacing:-.02em;text-align:center;-webkit-background-clip:text;background-clip:text;font-weight:800}.ticket-container[data-status=lose] .subtitle{text-align:center;color:#666!important}.ticket-container[data-status=lose] .info-block .label,.ticket-container[data-status=lose] .info-block .value,.ticket-container[data-status=lose] .serial,.ticket-container[data-status=lose] .ticket-header{color:#555!important}.ticket-container[data-status=lose] .stub-text{color:#444440!important}
