:root{--bg:#101513;--panel:#19211d;--gold:#e8c17c;--text:#f6f4eb;--muted:#b2b7ad}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:6px} .skip{position:absolute;top:-80px;z-index:100;background:var(--gold);color:#101513;padding:12px}.skip:focus{top:0}.announcement{background:var(--gold);color:#22291e;text-align:center;padding:7px 20px;font-size:10px;font-weight:700;letter-spacing:1.8px}.announcement span{margin-left:20px;letter-spacing:.5px}header{display:flex;align-items:center;justify-content:space-between;padding:24px 6%;border-bottom:1px solid #ffffff13;background:#101513;position:relative;z-index:5}.brand{display:flex;gap:10px;align-items:center;font-size:23px;line-height:1.15;font-weight:800;letter-spacing:-1px}.brand-icon{color:var(--gold);font-size:42px;font-weight:400}.gold{color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:8px;font-weight:400}nav{display:flex;align-items:center;gap:30px;font-size:12px}nav>a:hover{color:var(--gold)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:36px;background:var(--gold);color:#192018;padding:17px 25px;font-size:13px;font-weight:700;border:1px solid var(--gold);transition:background .2s,transform .2s}.button:hover{background:#f6d9a6;transform:translateY(-2px);color:#192018}.button span,.outline-button span{font-size:19px}.small{padding:10px 19px;gap:22px}.menu-toggle{display:none}.hero{position:relative;min-height:660px;overflow:hidden;display:flex;align-items:center}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101513 2%,#101513e8 22%,#10151330 70%),linear-gradient(0deg,#101513 0%,transparent 26%)}.hero-content{position:relative;padding:65px 8% 100px;width:100%}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:700;color:var(--gold);margin:0 0 23px}.eyebrow>span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:middle}h1{font-size:clamp(54px,6.4vw,94px);line-height:1.04;font-weight:500;letter-spacing:-4px;margin:0 0 25px}em{font-family:Georgia,serif;font-weight:400;color:var(--gold)}.hero-copy{font-size:15px;line-height:1.85;color:#c3c5ba;margin-bottom:30px}.text-link{font-size:12px;margin-left:25px;border-bottom:1px solid #ffffff50;padding-bottom:7px}.text-link span{margin-left:12px}.hero-note{position:absolute;bottom:25px;left:8%;right:8%;display:flex;justify-content:space-between;color:#a9ada1;font-size:8px;letter-spacing:1.9px}.ribbon{display:flex;justify-content:space-around;gap:20px;padding:24px 5%;border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14;color:#c9cfc3;font-size:12px}.ribbon b{font-size:20px;color:var(--gold);margin-right:12px;font-weight:400}.section{padding:95px 8%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}h2{font-size:clamp(32px,3.2vw,47px);font-weight:400;line-height:1.18;letter-spacing:-1.5px;margin:0 0 22px}.section-heading>p,.section p,.closing>p:last-child{font-size:14px;color:var(--muted)}.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.occasion{position:relative;overflow:hidden;min-height:390px;background:#242e25;display:flex;flex-direction:column;justify-content:space-between;padding:27px;isolation:isolate;transition:transform .25s}.occasion:hover{transform:translateY(-6px)}.number{font-size:8px;letter-spacing:1.8px;color:#e0d4bb}.occasion h3{font-size:27px;font-weight:400;letter-spacing:-.8px;margin:0 0 8px}.occasion p{font-size:12px;color:#d3d3c7;margin:0 0 23px}.card-link{border-top:1px solid #ffffff30;padding-top:18px;display:flex;justify-content:space-between;font-size:11px}.card-link b{font-size:18px;font-weight:400}.card-art{font-family:Georgia,serif;position:absolute;z-index:-1;right:-15px;top:5px;font-size:220px;color:#e7c17b;opacity:.6;line-height:1;transform:rotate(12deg);text-shadow:0 0 50px #dba85260}.august{background:radial-gradient(ellipse at 75% 20%,#55603c,transparent 65%),#273124}.silvester{background:radial-gradient(ellipse at 75% 20%,#664c2d,transparent 65%),#292820}.silvester .card-art{color:#ecc17a;font-size:250px;top:-5px}.wedding{background:radial-gradient(ellipse at 75% 20%,#5e6350,transparent 70%),#2c3329}.wedding .card-art{font-size:290px;top:-25px}.discovery{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#151c17}.discovery>div>p{max-width:470px;line-height:1.9}.discovery .button{margin-top:18px}.types>div{position:relative;border-bottom:1px solid #ffffff20;padding:18px 0 25px}.types span{position:absolute;left:0;top:25px;color:var(--gold);font-size:10px}.types h3{font-size:21px;font-weight:400;margin:0}.types p{margin:6px 0 0;font-size:12px}.professional{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:8%;border-bottom:1px solid #ffffff15}.pro-symbol{font-size:220px;text-align:center;line-height:1;color:var(--gold);background:radial-gradient(ellipse,#e7c17b12,transparent 65%)}.professional p{line-height:1.9;max-width:600px}.outline-button{display:inline-flex;align-items:center;gap:35px;padding:13px 22px;border:1px solid #e8c17c70;color:var(--gold);font-size:12px;margin-top:15px}.outline-button:hover{background:#e8c17c15}.knowledge{display:grid;grid-template-columns:1fr 1.35fr;gap:8%}.faqs details{border-bottom:1px solid #ffffff20}.faqs summary{cursor:pointer;font-size:14px;list-style:none;padding:21px 30px 21px 0;position:relative}.faqs summary:after{content:'+';position:absolute;right:0;color:var(--gold);font-size:21px;top:16px}.faqs details[open] summary:after{content:'−'}.faqs details p{font-size:13px;margin:0 30px 22px 0;line-height:1.8}.closing{text-align:center;padding:80px 20px 85px;background:radial-gradient(ellipse at 50% 100%,#38432b 0%,#1b241b 55%,#19211b 100%);border-top:1px solid #ffffff12}.closing h2{font-size:clamp(38px,4vw,59px)}.closing .button{margin:10px 0 12px}.closing>p:last-child{font-size:11px}footer{padding:50px 8% 22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}footer>p,footer>a:not(.brand){font-size:11px;color:var(--muted)}footer p a{color:var(--gold)}.footer-bottom{width:100%;display:flex;justify-content:space-between;border-top:1px solid #ffffff15;padding-top:20px;margin-top:25px;font-size:9px;color:#8a9487;letter-spacing:.6px}@media(min-width:1500px){header,.section,footer{padding-left:max(8%,calc((100% - 1250px)/2));padding-right:max(8%,calc((100% - 1250px)/2))}.hero-content{padding-left:max(8%,calc((100% - 1250px)/2))}}@media(max-width:850px){nav{gap:15px}nav>a:not(.button){font-size:11px}.brand{font-size:20px}.hero{min-height:620px}.hero-content{padding-left:6%}.hero-shade{background:linear-gradient(90deg,#101513f0,#10151355),linear-gradient(0deg,#101513,transparent 50%)}.section{padding:65px 6%}.occasion{padding:20px;min-height:360px}.occasion h3{font-size:23px}.occasion p br{display:none}.text-link{display:block;width:max-content;margin:22px 0 0}.ribbon{font-size:10px;gap:10px}.ribbon b{margin-right:5px}.professional{gap:4%}.pro-symbol{font-size:160px}}@media(max-width:620px){.announcement{font-size:8px;letter-spacing:1px}.announcement>span{display:none}header{padding:18px 6%}.brand{font-size:20px}.brand-icon{font-size:33px}.menu-toggle{display:block;background:none;border:1px solid #ffffff30;color:var(--text);font-size:12px;padding:7px 12px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:#19211d;padding:25px;flex-direction:column;align-items:stretch;gap:20px;border-bottom:1px solid #e8c17c50}nav.open{display:flex}nav>a:not(.button){font-size:14px}.hero{min-height:650px}.hero-art{object-position:65% center}.hero-content{padding:60px 6% 100px}h1{font-size:59px;letter-spacing:-2.5px}.hero-copy{font-size:14px;max-width:330px}.hero-note{left:6%;font-size:7px;right:6%}.hero-note>span:last-child{display:none}.ribbon{justify-content:center;padding:18px}.ribbon>span:not(:first-child){display:none}.section-heading{display:block;margin-bottom:28px}.section-heading>p{font-size:13px}.occasion-grid{grid-template-columns:1fr}.occasion{min-height:335px;padding:27px}.card-art{right:20px}.occasion h3{font-size:30px}.occasion p{font-size:13px}.discovery,.knowledge,.professional{grid-template-columns:1fr;gap:30px}.professional{padding-top:40px}.pro-symbol{font-size:110px;text-align:left}.knowledge{gap:12px}.closing{padding:65px 6%}footer{padding:35px 6% 22px;align-items:start;flex-direction:column}.footer-bottom{font-size:8px;gap:15px}.eyebrow{font-size:9px;letter-spacing:1.7px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Occasion illustrations */
.occasion .card-art{width:210px;height:180px;top:35px;right:9px;transform:none;opacity:.85;font-size:0;line-height:0;text-shadow:none}.occasion-icon{display:block;width:100%;height:100%;overflow:visible;color:var(--gold)}.occasion .clock-icon{transform:rotate(-8deg)}@media(max-width:850px) and (min-width:621px){.occasion .card-art{width:170px;height:150px;top:42px;right:0}}@media(max-width:620px){.occasion .card-art{width:190px;height:162px;top:30px;right:16px}}
/* Interactive hero fireworks */
.hero.has-game .hero-art{opacity:.12}.hero.has-game .hero-shade{pointer-events:none}.hero.has-game .hero-content{width:56%;padding-right:0;z-index:1}.firework-game[hidden]{display:none}.firework-game{position:absolute;right:2%;top:0;bottom:65px;width:47%;isolation:isolate;z-index:2;border-radius:4px;background:radial-gradient(ellipse at 50% 45%,#24332b70,transparent 70%);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='64' viewBox='0 0 48 64'%3E%3Cpath d='M15 24L38 57' stroke='%23d9b581' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M15 26C-2 19 20 0 15 2C33 19 26 27 15 26Z' fill='%23ff983c'/%3E%3Cpath d='M15 23C7 20 18 9 17 11C24 20 21 25 15 23Z' fill='%23fff2a1'/%3E%3C/svg%3E") 16 12,crosshair}.firework-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.game-caption{position:absolute;top:35px;left:0;right:0;text-align:center;pointer-events:none}.game-caption .eyebrow{font-size:9px;letter-spacing:2px}.game-caption p{font-size:12px;color:#d5d4c4;line-height:1.8;margin-top:8px}.game-caption p span{font-size:9px;color:#a8b0a4}.rocket-rack{position:absolute;bottom:24px;left:10%;right:10%;display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #e8c17c40;padding-bottom:4px}.game-rocket{position:relative;width:17%;max-width:62px;height:140px;border:0;background:none;padding:0;cursor:inherit;transform:rotate(var(--tilt));transform-origin:50% 100%;transition:filter .2s,opacity .25s}.game-rocket svg{height:100%;width:100%;filter:drop-shadow(0 0 8px #e8c17c18)}.game-rocket:hover,.game-rocket:focus-visible{filter:brightness(1.3)}.game-rocket.is-launched svg{opacity:0;transition:none}.game-rocket.is-launched{pointer-events:none}.game-rocket:focus-visible{outline:2px dashed var(--gold);outline-offset:3px}.rocket-spark{position:absolute;right:0;top:60%;color:#ffdc86;opacity:.7;font-size:16px}.game-status{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:10px;color:#b5bcae;pointer-events:none;letter-spacing:.5px}.hero.has-game .hero-note{z-index:3;pointer-events:none}@media(max-width:1000px) and (min-width:701px){.hero.has-game h1{font-size:64px}.hero.has-game .hero-copy{font-size:13px}.firework-game{width:43%;right:0}.game-caption p{font-size:10px}.game-caption .eyebrow{font-size:8px}.rocket-rack{left:5%;right:5%}}@media(max-width:700px){.hero.has-game{display:block}.hero.has-game .hero-content{width:100%;padding:50px 6% 20px}.hero.has-game .hero-art{opacity:.08}.firework-game{position:relative;top:auto;bottom:auto;right:auto;width:100%;height:440px;margin:0 0 65px}.game-caption{top:10px}.hero.has-game .hero-note{bottom:20px}.rocket-rack{left:12%;right:12%}.game-rocket{height:125px}}@media(prefers-reduced-motion:reduce){.game-rocket{transition:none}}
/* More readable game instructions and status, including tablet widths. */
.firework-game .game-caption{padding-inline:14px}
.firework-game .game-caption .eyebrow{font-size:11px;letter-spacing:1.6px}
.firework-game .game-caption p{font-size:14px;line-height:1.75}
.firework-game .game-caption p span{font-size:12px}
.firework-game .game-status{font-size:12px;line-height:1.5;padding-inline:10px}
@media(max-width:1000px) and (min-width:701px){.firework-game .game-caption p{font-size:13px}.firework-game .game-caption p span{font-size:11px}.firework-game .game-caption .eyebrow{font-size:10px}}
/* Animated match follows the pointer only within the fireworks game. */
.match-cursor{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none;z-index:10;opacity:0;will-change:transform}
.firework-game.match-active,.firework-game.match-active .game-rocket{cursor:none}
.match-active .match-cursor{opacity:1}
.match-stick{position:absolute;left:-2px;top:3px;width:5px;height:43px;background:linear-gradient(90deg,#9f7040,#efd09a 55%,#bf8c55);border-radius:3px;transform:rotate(-34deg);transform-origin:50% 0}
.match-flame{position:absolute;left:-9px;top:-25px;width:18px;height:29px;border-radius:70% 30% 50% 50%;background:linear-gradient(0deg,#ff6325 5%,#ffb132 55%,#ffe299);transform-origin:50% 95%;filter:drop-shadow(0 0 5px #ff9b3b);animation:match-flicker .27s ease-in-out infinite alternate;animation-play-state:paused}
.match-core{position:absolute;left:5px;bottom:1px;width:9px;height:19px;border-radius:65% 35% 55% 45%;background:linear-gradient(0deg,#fffbe0,#ffe982 75%,#fff3b4);transform-origin:50% 100%;animation:match-core-flicker .19s ease-in-out infinite alternate;animation-play-state:paused}
.match-active .match-flame,.match-active .match-core{animation-play-state:running}
@keyframes match-flicker{0%{transform:rotate(-9deg) scale(.9,1.06);border-radius:70% 30% 50% 50%}35%{transform:rotate(5deg) scale(1.06,.9)}70%{transform:rotate(-4deg) scale(.94,1.16)}100%{transform:rotate(8deg) scale(1.04,1);border-radius:35% 65% 45% 55%}}
@keyframes match-core-flicker{from{transform:rotate(7deg) scale(.85,1)}to{transform:rotate(-9deg) scale(1.1,.8)}}
@media(prefers-reduced-motion:reduce){.match-flame,.match-core{animation:none}}
@media(hover:none) and (pointer:coarse){.match-cursor{display:none}.firework-game.match-active,.firework-game.match-active .game-rocket{cursor:auto}}

/* Keep mobile touch targets stable and canvas rendering in its own layer. */
.firework-canvas{z-index:0;transform:translateZ(0)}
.game-caption,.rocket-rack,.game-status{z-index:1}
.game-rocket{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(hover:none){.game-rocket:hover{filter:none}.game-rocket svg{filter:none}}
