@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans','Noto Sans SC','PingFang SC',sans-serif;color:#fff7e9;background:#211633;font-synthesis:none}
 [hidden]{display:none!important}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 75% 9%,#634290 0,#342147 36%,#211633 78%)}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #f5dc2b;outline-offset:4px}
.ambient{position:fixed;pointer-events:none;border-radius:50%;filter:blur(4px);opacity:.8}.ambient-one{width:55vw;height:55vw;right:-28vw;top:-23vw;background:radial-gradient(circle,#9f79bb88,transparent 70%)}.ambient-two{width:40vw;height:40vw;left:-24vw;bottom:-15vw;background:radial-gradient(circle,#6c59aa88,transparent 70%)}.grain{position:fixed;inset:0;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.36'/%3E%3C/svg%3E")}
.shell{width:min(1320px,calc(100% - 88px));margin:auto;position:relative;z-index:1}.topbar{height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff2d}.wordmark{font-size:25px;font-weight:700;letter-spacing:-1.8px;color:#fff;text-decoration:none}.wordmark-star{color:#eddf2b;font-size:17px;vertical-align:top;margin-left:5px}.edition{font-size:11px;letter-spacing:.28em;font-weight:700;color:#d6c9e8}
.stage{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);gap:clamp(28px,5vw,88px);align-items:center;min-height:calc(100vh - 152px);padding:38px 0 36px}.story{min-width:0}.eyebrow{display:flex;align-items:center;gap:14px;font-size:13px;font-weight:700;letter-spacing:.25em;color:#ebdcf7}.eyebrow-line{width:32px;height:1px;background:#f3df31}h1{font-size:clamp(56px,5.7vw,88px);line-height:1.18;letter-spacing:-.07em;margin:21px 0 23px;font-weight:700}h1 span{color:#f0df28}.lead{color:#d9cde9;line-height:1.9;font-size:clamp(15px,1.2vw,18px);margin:0}
.product-scene{position:relative;height:clamp(360px,38vw,560px);display:flex;justify-content:center;align-items:center;margin-top:-14px;isolation:isolate}.product-scene img{position:relative;z-index:2;width:min(100%,720px);max-height:100%;object-fit:contain;filter:drop-shadow(0 22px 22px #130b2299);animation:float 6s ease-in-out infinite}.scene-glow{position:absolute;width:70%;height:65%;border-radius:50%;background:radial-gradient(circle,#a184c469,transparent 70%);filter:blur(24px)}.orbit{position:absolute;inset:12% 8%;border:1px solid #d9c4ee2f;border-radius:50%;transform:rotate(-16deg)}.orbit-two{inset:5% 15%;transform:rotate(22deg);border-color:#d9c4ee19}.scene-caption{position:absolute;left:4%;right:4%;bottom:6%;display:flex;justify-content:space-between;color:#d4c2e5;font-size:10px;letter-spacing:.26em;z-index:3}
.voucher-area{width:min(100%,520px);justify-self:end}.section-kicker{font-size:11px;letter-spacing:.19em;color:#d3c0ea;margin:0 0 16px;font-weight:700}.section-kicker span{color:#f6e82f;padding:0 9px}.voucher{position:relative;overflow:hidden;border-radius:27px;background:linear-gradient(139deg,#a791cd 0%,#866bae 48%,#6c5198 100%);box-shadow:0 36px 80px #120a265e, inset 0 0 0 1px #ffffff87;transition:transform .75s cubic-bezier(.2,.85,.2,1),box-shadow .75s}.voucher::before{content:'';position:absolute;inset:0;background:linear-gradient(112deg,transparent 20%,#ffffff33 44%,transparent 58%);transform:translateX(-125%);pointer-events:none}.voucher.is-revealing{transform:rotateY(9deg) rotateZ(-3deg) scale(1.04);box-shadow:0 55px 110px #120a26b5}.voucher.is-revealing::before{animation:sheen 1.1s ease}.voucher.is-claimed{box-shadow:0 30px 80px #eadd425e,inset 0 0 0 1px #ffffff9c}.voucher-top{display:flex;justify-content:space-between;padding:26px 31px 0;align-items:start}.voucher-brand{font-size:21px;font-weight:700;letter-spacing:-1.5px}.voucher-brand span{color:#f6e82f;font-size:17px}.voucher-type{font-size:10px;letter-spacing:.12em;color:#f5ecff;text-align:right;margin-top:5px}.voucher-core{text-align:center;padding:25px 25px 30px}.moon{position:relative;width:94px;height:94px;margin:0 auto 19px;border:1px solid #ffffffe0;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 0 13px #ffffff1c,0 0 60px #f1df91a1}.moon-inner{height:66px;width:66px;background:#f6e9a1;border-radius:50%;box-shadow:inset -13px -5px 0 #ead882}.moon span{position:absolute;right:-30px;top:0;color:#f9e72a;font-size:27px}.voucher-label{font-size:12px;letter-spacing:.43em;color:#f6eeff}h2{font-size:clamp(44px,4vw,58px);line-height:1.18;letter-spacing:.04em;margin:14px 0 14px;font-weight:700}h2 em{font-style:normal;color:#f6e82f}.voucher-note{color:#f7f1ff;font-size:13px;margin:0}.perforation{height:1px;margin:0 24px;border-top:1px dashed #f5e9ffad;position:relative}.perforation span{position:absolute;top:-14px;width:28px;height:28px;background:#2d1d42;border-radius:50%}.perforation span:first-child{left:-39px}.perforation span:last-child{right:-39px}.voucher-bottom{padding:23px 31px 27px;display:flex;align-items:center;justify-content:space-between}.voucher-bottom small{display:block;color:#e9dafa;font-size:10px;letter-spacing:.23em;margin-bottom:5px}.voucher-bottom strong{font-size:12px;letter-spacing:.11em;font-weight:600;word-break:break-all}.ticket-seal{width:37px;height:37px;display:grid;place-items:center;border:1px solid #fff8;border-radius:50%;color:#f6e82f;font-size:22px}
.action-panel{position:relative;margin-top:18px;padding:22px 24px 23px;background:#fffdf6;border:1px solid #fff;border-radius:19px;color:#2b2040;box-shadow:0 15px 40px #170d2547}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#c6a7df;box-shadow:0 0 0 5px #c6a7df35;margin-right:9px}.status-dot.ok{background:#3c946b;box-shadow:0 0 0 5px #3c946b2a}.status-dot.warn{background:#ce8d44;box-shadow:0 0 0 5px #ce8d4425}.status-heading{display:inline;font-size:17px;font-weight:700;letter-spacing:.01em}.status-copy{font-size:13px;color:#766b84;line-height:1.65;margin:10px 0 0}.primary-button{display:block;width:100%;border:0;border-radius:12px;background:#eadf26;color:#271c3c;padding:15px 18px;margin-top:18px;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 6px 0 #c9b938;transition:transform .2s,box-shadow .2s,background .2s}.primary-button:hover{background:#f9ec42;transform:translateY(-2px);box-shadow:0 8px 0 #c9b938}.primary-button:active{transform:translateY(5px);box-shadow:0 1px 0 #c9b938}.primary-button:disabled{opacity:.65;cursor:wait}.text-button{display:block;border:0;background:none;color:#7c689d;font-size:12px;text-decoration:underline;margin:13px auto 0;cursor:pointer}.footnote{font-size:12px;color:#bdaece;line-height:1.6;text-align:center;margin:16px 0 0}footer{min-height:64px;border-top:1px solid #ffffff2d;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#b9a8ca;font-size:10px;letter-spacing:.18em}.confetti{position:fixed;inset:0;pointer-events:none;z-index:10;overflow:hidden}.confetti i{position:absolute;top:-30px;width:9px;height:17px;border-radius:2px;animation:fall 2.5s ease-in forwards}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes sheen{to{transform:translateX(125%)}}@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--rot));opacity:0}}
@media(max-width:980px){.shell{width:min(680px,calc(100% - 36px))}.stage{grid-template-columns:1fr;gap:0;padding:32px 0 48px}.voucher-area{justify-self:stretch;width:100%;display:flex;flex-direction:column}.action-panel{order:1;margin:0 0 23px}.section-kicker{order:2;text-align:center}.voucher{order:3}.footnote{order:4}.story{text-align:center}.eyebrow{justify-content:center}h1{font-size:clamp(52px,10vw,76px);margin:20px 0 14px}.product-scene{height:clamp(310px,70vw,470px);margin-top:-12px}.scene-caption{bottom:4%}.topbar{height:69px}footer{padding:17px 0}}
@media(min-width:981px) and (max-height:800px){.stage{padding:17px 0 22px}.topbar{height:70px}.eyebrow{font-size:11px}h1{font-size:clamp(52px,5vw,67px);margin:14px 0}.lead{font-size:14px}.product-scene{height:330px;margin-top:-15px}.voucher-top{padding:17px 25px 0}.voucher-core{padding:12px 20px 17px}.moon{width:65px;height:65px;margin-bottom:11px;box-shadow:0 0 0 9px #ffffff1c,0 0 48px #f1df91a1}.moon-inner{height:45px;width:45px}.voucher-label{font-size:10px}h2{font-size:43px;margin:9px 0}.voucher-bottom{padding:15px 25px 18px}.action-panel{padding:15px 19px;margin-top:12px}.status-heading{font-size:15px}.status-copy{margin-top:6px}.primary-button{padding:11px;margin-top:11px}.footnote{margin-top:9px}}
@media(max-width:540px){.shell{width:calc(100% - 30px)}.edition{font-size:9px;letter-spacing:.12em}.wordmark{font-size:21px}.stage{padding-top:19px}.eyebrow{font-size:11px}h1{font-size:clamp(44px,11vw,58px);line-height:1.2;margin:15px 0 11px}.lead{font-size:13px}.product-scene{height:clamp(245px,69vw,330px)}.scene-caption{font-size:8px}.voucher-top{padding:22px 22px 0}.voucher-brand{font-size:18px}.voucher-type{font-size:8px}.voucher-core{padding:26px 15px 27px}.moon{width:76px;height:76px}.moon-inner{height:52px;width:52px}.voucher-label{font-size:10px}.voucher-note{font-size:12px}.voucher-bottom{padding:21px 23px 25px}.action-panel{padding:20px}.footnote{font-size:11px}footer{font-size:9px;letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.voucher-frame{position:relative;isolation:isolate}.voucher-frame>.voucher{width:100%}.voucher-original{transition:opacity .16s ease}.voucher-result{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:13px;padding:25px;opacity:0;transform:scale(.86);transition:opacity .48s ease .18s,transform .65s cubic-bezier(.16,1,.3,1) .18s;pointer-events:none;background:radial-gradient(circle at 50% 28%,#e4d6ff69,transparent 51%)}.voucher-result strong{font-size:clamp(34px,3vw,48px);letter-spacing:.08em;color:#fffbea;text-shadow:0 3px 25px #3d216b8a}.result-spark{width:76px;height:76px;border:1px solid #fff9db;border-radius:50%;display:grid;place-items:center;color:#f7ed43;font-size:47px;box-shadow:0 0 0 10px #fff2,0 0 42px #f7ed43a1;animation:seal-breathe 2.8s ease-in-out infinite}.result-kicker{font-size:10px;letter-spacing:.28em;font-weight:700;color:#f9e946}.result-line{width:82px;height:1px;background:#f5e96c}.result-sub{font-size:12px;letter-spacing:.19em;color:#f8edff}.result-number{font-size:11px;letter-spacing:.15em;color:#fff;opacity:.85}.voucher.is-claimed .voucher-original{opacity:0}.voucher.is-claimed .voucher-result{opacity:1;transform:scale(1)}.voucher.is-claimed{background:radial-gradient(circle at 50% 24%,#b394db,#7053a4 80%)}.tear-fragment{position:absolute!important;inset:0;z-index:6;width:100%;height:100%;margin:0;pointer-events:none;overflow:hidden;will-change:transform,opacity}.tear-fragment .voucher-result{display:none}.tear-top{animation:tear-top 1.15s cubic-bezier(.22,.8,.22,1) forwards;transform-origin:20% 72%}.tear-bottom{animation:tear-bottom 1.15s cubic-bezier(.22,.8,.22,1) forwards;transform-origin:82% 77%}.voucher.is-tearing{box-shadow:0 34px 88px #f4e65870,inset 0 0 0 1px #fff9}.voucher.is-tearing .voucher-result{transition-delay:.28s}
@keyframes tear-top{0%,10%{transform:translate(0,0) rotate(0);opacity:1}35%{transform:translate(-5px,-15px) rotate(-2deg);opacity:1}100%{transform:translate(-46px,-85px) rotate(-10deg);opacity:0}}@keyframes tear-bottom{0%,10%{transform:translate(0,0) rotate(0);opacity:1}35%{transform:translate(4px,12px) rotate(2deg);opacity:1}100%{transform:translate(52px,90px) rotate(12deg);opacity:0}}@keyframes seal-breathe{0%,100%{box-shadow:0 0 0 10px #fff2,0 0 42px #f7ed43a1}50%{box-shadow:0 0 0 16px #fff1,0 0 58px #f7ed43b8}}
@media(max-width:980px){.voucher-frame{order:3}}@media(max-width:540px){.voucher-result{gap:10px}.result-spark{width:62px;height:62px;font-size:40px}.voucher-result strong{font-size:34px}}
