/* V2: vibrant 3D party world, inspired by the Leo birthday invitation. */
:root{--cream:#1b1039;--pink:#ff7cc8;--lilac:#ab8aff;--red:#ff7ac2;--ink:#fff5ec;--line:#ffffff22;--muted:#cbb6e0;--butter:#effa8c}body{background-color:#1b1039;background-image:radial-gradient(circle at 12% 10%,#c786ff 0 1px,transparent 2px),radial-gradient(circle at 73% 27%,#ffdd8f99 0 1px,transparent 2px),radial-gradient(circle at 42% 82%,#ffffff66 0 1px,transparent 2px),radial-gradient(ellipse at 90% 0,#6e328c55,transparent 50%);background-size:190px 220px,270px 290px,320px 270px,100% 900px}.gate{background-color:#241043;background-image:radial-gradient(ellipse at 12% 20%,#ae3eb65c,transparent 50%),radial-gradient(ellipse at 90% 80%,#4a3fbc66,transparent 55%),radial-gradient(circle at 50% 0,#3e1b65,transparent);isolation:isolate}.gate:before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 14% 24%,#fff 0 1px,transparent 2px),radial-gradient(circle at 77% 66%,#ffdc8c 0 1px,transparent 2px);background-size:180px 200px,250px 270px;opacity:.35;z-index:-1;pointer-events:none}.gate h1{font-family:'Arial Black',Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-5px;font-size:78px;line-height:.99;margin:25px 0}.gate h1 em{font-style:normal;color:#faff9c;text-shadow:0 5px 0 #715277;font-size:1.08em}.gate .mini{color:#f5c9fa;font-weight:bold;font-size:9px}.gate-description{color:#e9d5f3;font-size:13px;line-height:1.8}.gate-top span:first-child{color:#f7e2fb}.gate-top span:last-child,.gate-footer{color:#cba7db}.gate-footer{border-color:#ffffff26}.gate-star{opacity:1!important;filter:drop-shadow(0 0 20px #da73ff22)}.gate .star-one{color:#e8f685;left:7%;top:20%;font-size:115px}.gate .star-two{color:#fe8fd7;right:8%;bottom:17%;font-size:110px}.pass{background:#ff8bce;border:2px solid #ffc2e7;box-shadow:0 0 40px #ef57d32b,0 15px 0 #14072566;color:#4f235b;transform:rotate(-6deg);width:450px;height:185px}.pass-side{border-color:#a9599c;font-weight:bold}.pass-small{font-weight:bold}.pass-main>strong{font-family:'Arial Black',Arial,sans-serif;font-size:79px;letter-spacing:-7px;color:#5a205b}.pass-stub{background:#eafb8c;border-left:2px dashed #a99b68;color:#604078}.pass-stub:before,.pass-stub:after{background:#2b134b;border-color:#ca9dcb}.pass-stub>b{color:#8464aa}.gate-tap{color:#e1b8ee;font-weight:500}.header{border-color:#ffffff24;background:#1d103acc;max-width:1400px}.wordmark{font-family:Arial,sans-serif;font-size:25px;font-weight:900;font-style:normal;letter-spacing:-1px;color:#ffb8e2}.wordmark span{font-size:6px;font-weight:bold;letter-spacing:2.5px;color:#e5eaa2}.header nav{color:#e7d6f0;font-size:10px}.header nav a:hover{color:#effb8b}.top-date{color:#ddcee7}.top-date>span{color:#ff95cf}.hero{padding-top:60px;padding-bottom:70px;gap:50px;min-height:740px}.pill{background:#ffffff10;border:1px solid #ffffff30;color:#e8f5a4;font-weight:bold;font-size:8px;letter-spacing:1.2px;padding:10px 14px}.pill i{background:#ebf895;box-shadow:0 0 12px #ddf57d66}.hero-script{font-family:Arial,sans-serif;font-style:normal;letter-spacing:2.5px;text-transform:uppercase;font-size:9px;font-weight:bold;color:#ceafe8;margin-top:27px;margin-bottom:22px;transform:none}.hero h2{font-family:'Arial Black',Arial,Helvetica,sans-serif;font-weight:900;font-size:69px;letter-spacing:-3.5px;line-height:1.04;color:#fff5ed}.hero h2 em{font-style:normal;color:#ff94d3}.hero .age{font-size:1.16em;letter-spacing:-5px;color:#eafa88;line-height:1;display:inline-block;margin-left:0;text-shadow:0 5px 0 #6f597c}.age-star{color:#ffd487;font-size:25px;right:-22px;top:-3px;text-shadow:none}.hero-desc{color:#ccb7dc;font-size:13px;line-height:1.9;max-width:400px;margin:28px 0}.hero-desc strong{color:#f6daf0;font-weight:500}.button{background:#f796d7;border:1px solid #ffd0ed;color:#542345;font-weight:700;font-size:8px;letter-spacing:.9px;border-radius:12px;padding:16px 23px;box-shadow:0 5px 0 #8d457d,0 12px 25px #14092230}.button:hover{background:#f9b2e2;transform:translateY(-2px)}.button:active{transform:translateY(3px);box-shadow:0 2px 0 #8d457d}.hero-meta{color:#d8badd;font-size:8px;line-height:1.8;gap:13px}.hero-meta>span+span:before{color:#e2f185;margin-right:13px}.scrapbook{height:560px}.polaroid{padding:0;background:#32104c;border:1px solid #b689dc66;border-radius:230px 230px 22px 22px;overflow:hidden;width:100%;max-width:510px;box-shadow:0 0 70px #ae4cda25,0 20px 40px #09051f55;transform:none}.polaroid img{aspect-ratio:1;object-fit:cover;border-radius:inherit}.polaroid figcaption{position:absolute;left:0;right:0;bottom:0;color:#fff8ec;background:linear-gradient(transparent,#311047ee);font:bold 10px Arial,sans-serif;letter-spacing:2px;padding:45px 25px 23px}.polaroid figcaption span{font-size:24px;color:#ff9cd7}.tape-top{display:none}.sticker-lilac{background:#dafa92;color:#573d76;width:112px;height:112px;font-size:17px;left:-20px;top:28px;filter:drop-shadow(0 10px 15px #0003)}.sticker-lilac em{color:#77518a;font-size:21px}.doodle-star{font-size:55px;color:#fdc0ed;top:-8px;right:0;z-index:4;text-shadow:0 0 25px #fda4ff33}.sticker-date{background:#fbd4ed;border:2px solid #ffeaf6;box-shadow:0 8px 0 #7d4e8c55;right:-10px;bottom:22px;color:#78345a;z-index:5;width:82px}.sticker-date>strong{font-family:Arial,sans-serif;font-weight:900;font-size:40px;color:#7e305a}.sticker-date>span{font-weight:bold;font-size:7px}.sticker-date small{font-size:5px}.doodle-heart{font-size:60px;color:#e6fb8d;bottom:0;left:10px;z-index:5;transform:rotate(-15deg);text-shadow:0 5px 10px #19082888}.scrap-note{color:#e5c2f0;right:90px;bottom:-2px;font-family:Arial,sans-serif;font-style:normal;font-size:9px;font-weight:bold;letter-spacing:1px;transform:rotate(-4deg)}.ticker{background:#a3ee9d;border-top:2px solid #ccffb6;border-bottom:2px solid #73c788;box-shadow:0 0 35px #98f49714}.ticker>div{color:#3b4b50;font-weight:900;font-size:12px;letter-spacing:2px}.ticker span{color:#76528d;font-size:23px}.label{color:#bba0da;font-weight:bold;font-size:8px;letter-spacing:1.8px}.hello h2,.section-head h2,.plan-intro h2,.outfit h2,.details h2,.closing h2{font-family:'Arial Black',Arial,sans-serif;font-weight:800;letter-spacing:-1.9px}.hello h2{font-size:44px;line-height:1.15}.hello h2 em{font-style:normal;color:#ffa7dd;font-size:.9em}.bow{color:#e3beff;width:135px;filter:drop-shadow(0 0 12px #bd7bfa22)}.hello-letter{background:#fff4f0;border:1px solid #fffdf9;padding:35px 37px;transform:rotate(-3deg);box-shadow:8px 9px 0 #894fb459;color:#553245;border-radius:8px}.hello-letter>.script{color:#a84972;font-size:24px}.hello-letter>p:not(.script){color:#896573;font-size:12px;line-height:1.95}.hello-letter strong{color:#91476a;font-weight:bold}.letter-stamp{color:#cb75aa}.signature{color:#a97f91}.signature>span{color:#a54a7a;font-size:27px}.tape-letter{background:#d7f98cbb;backdrop-filter:blur(0);height:29px}.section-head h2{font-size:40px;line-height:1.13}.section-head h2 em{font-style:normal;color:#ff9cd4}.section-head>p{color:#c7aed8;font-size:11px}.spoiler-grid{gap:22px}.spoiler{border:2px solid #ffffff88;border-radius:18px;box-shadow:0 8px 0 #110a2b66;min-height:275px;padding:27px 25px;color:#4e2557}.spoiler.pink{background:#ffabd9;border-color:#ffd3ec}.spoiler.lilac{background:#bda4ff;border-color:#e6ceff}.spoiler.butter{background:#eafa93;border-color:#f6ffc6}.spoiler-num{color:#855280;font-size:9px;font-weight:bold}.spoiler-icon{color:#964c89;font-size:43px;top:27px;right:23px}.spoiler h3{font-family:Arial,sans-serif;font-weight:800;letter-spacing:-1.2px;font-size:28px;line-height:1.13;margin:40px 0 24px}.spoiler-tease{font-family:Arial,sans-serif;font-weight:600;font-size:9px;font-style:normal;color:#975785}.spoiler-secret{font-size:11px;line-height:1.85;color:#6f3d70}.spoiler[aria-expanded=true]{box-shadow:inset 0 0 0 2px #fff8,0 8px 0 #110a2b66}.plan-section{background:#533083;background-image:radial-gradient(ellipse at 0 100%,#9e409977,transparent 65%);border-top:1px solid #a976c955;border-bottom:1px solid #a976c955;padding-top:70px;padding-bottom:70px}.plan-section .label{color:#dcc6ff}.plan-intro h2{color:#fffbef;font-size:43px;line-height:1.15}.plan-intro h2 em{font-style:normal;color:#e4fa8f;font-size:.9em}.mini-note{background:#f9a8d8;color:#7c3e76;border:1px solid #ffdef3;box-shadow:4px 7px 0 #30215166}.mini-note>span:first-child{font-size:8px;font-weight:bold}.mini-note>p{font-family:Georgia,serif;font-size:18px;color:#7d3a67}.note-star{color:#e9f794}.timeline-row{border-color:#caa8ed44;grid-template-columns:58px 1fr 23px}.timeline-row time{font-family:Arial,sans-serif;font-weight:800;color:#eca7de;font-size:23px;letter-spacing:-.5px}.timeline-row h3{font-family:Arial,sans-serif;font-weight:700;font-size:20px;letter-spacing:-.6px;color:#fff9ee;line-height:1.3}.timeline-row p{color:#dac7ef;font-size:11px;line-height:1.9}.timeline-row>span{color:#e0f78e}.outfit-pill{color:#e7f99f;background:#ffffff10;font-size:7px}.outfit h2{font-size:41px;line-height:1.14}.outfit h2 em{font-style:normal;color:#ffa4dc}.outfit p:not(.script){color:#c6afd8;font-size:12px}.outfit p.muted{color:#a98dbe;font-size:10px}.moodboard{max-width:420px;gap:13px}.swatch{height:145px;border:6px solid #fff2f8;box-shadow:5px 8px 0 #603f8466;border-radius:3px}.swatch span{background:#fff2f8;color:#82596d;font-size:7px;font-weight:500}.moodboard-star{color:#e8f995;font-size:58px}.moodboard>.script{color:#f7b8e8;font-size:24px}.details h2{font-size:45px;line-height:1.13}.details h2 em{font-style:normal;color:#ff9dd8}.details-copy>p:not(.status){color:#ceb5e0;font-size:12px}.countdown b{font-family:Arial,sans-serif;font-weight:800;font-size:41px;letter-spacing:-1.5px;color:#e5f78e}.countdown span{color:#bba3d1;font-size:7px;font-weight:500;letter-spacing:1.5px}.countdown i{color:#8b63af}.status{color:#dab6eb;font-size:10px}.info-ticket{background:#bfa6f6;color:#4c2d65;border:2px solid #e7d2ff;border-radius:18px;box-shadow:7px 10px 0 #5c3c8266;padding:27px 30px}.ticket-head{border-color:#8b6bb8}.ticket-head>span{color:#765493;font-size:7px;font-weight:bold}.ticket-head>b{font-family:Arial,sans-serif;font-weight:900;font-size:25px;color:#6b448e}.info-row>span{color:#89699f;font-weight:bold}.info-row strong{font-family:Arial,sans-serif;font-weight:800;font-size:21px;letter-spacing:-.7px;color:#57326d}.info-row p{color:#7c5b93;font-size:11px}.demo-tag{border-color:#ac8fd4;color:#8b6aa7;font-size:5px}.ticket-bottom{border-color:#8b6bb8;color:#89679f}.ticket-bottom .barcode{color:#8760a6}.ticket-bottom>span:last-child{font-size:5px;font-weight:500}.parents{border-color:#ffffff22}.parents summary{color:#d6bfe6;font-size:11px}.parents summary>span{color:#e1b7eb}.parents p{color:#bba3cf;font-size:11px}.parents strong{color:#edd2f1;font-weight:600}.parents .parent-demo{font-size:9px;color:#957cae}.closing{background:#f585c8;color:#633360;border-top:2px solid #ffb7e2;background-image:radial-gradient(circle at 10% 22%,#fff8 0 2px,transparent 3px),radial-gradient(circle at 80% 65%,#d8f482aa 0 3px,transparent 4px);background-size:130px 145px,210px 190px}.closing h2{font-size:50px;color:#622d5e;line-height:1.12}.closing h2 em{font-style:normal;color:#843d8c}.closing .label{color:#9c477e;font-size:7px;font-weight:bold}.closing-star{color:#f4ffad;filter:drop-shadow(0 4px 0 #a2559166);font-size:60px}.closing>.script{font-size:26px;color:#985076}.button.light{background:#eafb92;border:1px solid #f9ffc9;box-shadow:0 5px 0 #bc8fa4;color:#554458;font-weight:bold}.button.light:hover{background:#f4ffbc}.party-status{color:#915078;font-size:10px}.closing-signature{color:#8f3d75;font-size:30px}.closing-signature>span{color:#a4598a;font-weight:bold;font-size:6px}.confetti-piece{text-shadow:0 0 8px #fff3}footer{border-color:#ffffff22;background:#180c31}footer>a{color:#e7cef3}footer>p{color:#947bab}footer>button{color:#bfa3d4;font-weight:500}.doodle-star,.sticker-lilac{animation:bob 5s ease-in-out infinite}.doodle-star{animation-delay:-2.5s}.gate .star-one{animation:star-turn 12s ease-in-out infinite}.gate .star-two{animation:bob 6s ease-in-out infinite}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -8px}}@keyframes star-turn{0%,100%{rotate:-6deg}50%{rotate:8deg}}
@media(max-width:1050px){.hero{gap:35px;padding:50px 45px 60px;min-height:660px}.hero h2{font-size:59px;letter-spacing:-2.8px}.hero .age{font-size:1.13em}.age-star{font-size:21px;right:-18px}.scrapbook{height:500px}.sticker-lilac{left:-12px;top:12px;width:100px;height:100px;font-size:15px}.sticker-lilac em{font-size:20px}.polaroid{max-width:430px}.hero-meta{font-size:7px;gap:10px}.hero-meta>span+span:before{margin-right:10px}.hero-desc{font-size:12px}.hello h2{font-size:39px}.section-head h2{font-size:37px}.spoiler h3{font-size:25px}.plan-intro h2{font-size:39px}.timeline-row h3{font-size:19px}.outfit h2{font-size:37px}.details h2{font-size:41px}.info-row strong{font-size:20px}.moodboard{gap:10px}.swatch{height:135px}.info-ticket{padding:25px}}
@media(max-width:750px){.gate h1{font-size:62px;letter-spacing:-3px;line-height:1.02}.gate-description{font-size:12px}.gate .mini{font-size:7px;letter-spacing:1.4px}.pass{width:355px;height:175px;border-radius:12px;margin-top:32px}.pass-main>strong{font-size:72px;letter-spacing:-6px}.pass-stub{width:104px}.gate .star-one{font-size:65px;left:-16px;top:19%}.gate .star-two{font-size:72px;right:-15px;bottom:15%}.gate-footer{font-size:5px}.gate-tap{font-size:5px}.header{padding:20px 26px}.header nav{gap:17px;font-size:8px}.wordmark{font-size:24px}.wordmark span{font-size:5px;letter-spacing:2px}.hero{grid-template-columns:1fr;padding:34px 27px 40px;gap:12px;min-height:auto;overflow:hidden}.hero-copy{max-width:500px}.pill{font-size:7px;padding:9px 12px;letter-spacing:1px}.hero-script{font-size:8px;letter-spacing:2px;margin-top:25px;margin-bottom:22px}.hero h2{font-size:57px;line-height:1.04;letter-spacing:-2.7px}.hero .age{font-size:1.1em;letter-spacing:-4px;margin-left:1px}.age-star{font-size:21px;top:-5px;right:-22px}.hero-desc{font-size:12px;line-height:1.9;margin:24px 0;max-width:365px}.button{font-size:7px;letter-spacing:.8px;padding:15px 19px;min-height:51px}.hero-meta{font-size:7px;gap:10px;line-height:1.8;margin-top:24px}.hero-meta>span+span:before{margin-right:10px;font-size:5px}.scrapbook{height:auto;min-height:430px;padding:32px 5px 33px;max-width:420px;margin:8px auto 0}.polaroid{width:100%;max-width:375px;border-radius:190px 190px 20px 20px;box-shadow:0 0 45px #ae4cda25,0 15px 25px #09051f55}.polaroid figcaption{padding:35px 20px 20px;font-size:8px}.polaroid figcaption span{font-size:22px}.sticker-lilac{width:93px;height:93px;left:-10px;top:20px;font-size:14px}.sticker-lilac em{font-size:20px}.doodle-star{font-size:48px;right:0;top:12px}.doodle-heart{font-size:48px;left:0;bottom:5px}.sticker-date{right:-2px;bottom:8px;width:76px;padding:9px}.sticker-date>strong{font-size:37px}.sticker-date>span{font-size:6px}.sticker-date small{font-size:4px}.scrap-note{font-size:8px;bottom:4px;right:83px;letter-spacing:.6px}.ticker{padding:15px 0}.ticker>div{font-size:10px;letter-spacing:1.5px;gap:25px}.ticker span{font-size:19px}.label{font-size:7px;letter-spacing:1.4px}.hello h2{font-size:38px;line-height:1.15;letter-spacing:-1.8px}.hello h2 em{font-size:.9em}.bow{width:105px;height:60px;margin-top:18px;margin-left:130px}.hello-letter{padding:28px 25px;box-shadow:6px 7px 0 #894fb459;transform:rotate(-2deg);margin:0 5px}.hello-letter>.script{font-size:23px}.hello-letter>p:not(.script){font-size:11px;line-height:2}.hello-letter .signature{font-size:8px}.signature>span{font-size:26px}.section-head h2{font-size:35px;line-height:1.14;letter-spacing:-1.7px}.section-head>p{font-size:11px;margin-top:20px}.spoiler-grid{gap:20px}.spoiler{min-height:225px;padding:25px;border-radius:17px;box-shadow:0 7px 0 #110a2b66}.spoiler h3{font-size:28px;letter-spacing:-1px;margin:28px 0 24px}.spoiler-icon{font-size:43px;top:24px;right:25px}.spoiler-num{font-size:8px}.spoiler-tease{font-size:9px}.spoiler-secret{font-size:11px;line-height:1.9}.plan-section{padding-top:48px;padding-bottom:48px}.plan-intro h2{font-size:38px;line-height:1.14;letter-spacing:-1.8px}.mini-note{margin:30px 12px 10px 35px}.timeline-row{grid-template-columns:53px 1fr 18px;gap:14px;padding:24px 0}.timeline-row time{font-size:22px;letter-spacing:-1px}.timeline-row h3{font-size:20px;line-height:1.25;letter-spacing:-.6px}.timeline-row p{font-size:10px;line-height:1.9}.timeline-row>span{font-size:22px}.outfit h2{font-size:36px;line-height:1.15;letter-spacing:-1.6px}.outfit-pill{font-size:6px}.outfit p:not(.script){font-size:11px;line-height:1.95}.outfit p.muted{font-size:10px}.moodboard{max-width:350px;gap:10px;padding-left:3px;padding-right:3px}.swatch{height:125px;border-width:5px}.swatch span{font-size:6px}.moodboard-star{font-size:47px;right:0;top:-8px}.moodboard>.script{font-size:22px}.details h2{font-size:40px;line-height:1.13;letter-spacing:-1.8px}.details-copy>p:not(.status){font-size:11px}.countdown b{font-size:41px}.countdown span{font-size:6px}.info-ticket{padding:25px;box-shadow:5px 8px 0 #5c3c8266;border-radius:16px;margin:0 4px}.ticket-head>span{font-size:6px}.ticket-head>b{font-size:25px}.info-row{grid-template-columns:40px 1fr;gap:15px}.info-row strong{font-size:22px;line-height:1.25;letter-spacing:-.8px}.info-row p{font-size:10px;line-height:1.9}.info-row>span{font-size:6px}.ticket-bottom>span:last-child{font-size:4.5px}.parents summary{font-size:10px}.parents p{font-size:10px}.parents .parent-demo{font-size:8px}.closing{padding:45px 25px}.closing h2{font-size:39px;line-height:1.13;letter-spacing:-1.8px}.closing .label{font-size:5px;letter-spacing:1px}.closing-star{font-size:52px}.closing>.script{font-size:24px}.closing-signature{font-size:28px}.party-status{font-size:9px}.closing-signature>span{font-size:5px}footer>a{font-size:21px}footer>p{font-size:7px}footer>button{font-size:5px}}
@media(max-width:380px){.hero h2{font-size:50px;letter-spacing:-2.3px}.hero .age{font-size:1.12em}.age-star{right:-18px;font-size:18px}.hero-meta{font-size:6px;gap:8px}.hero-meta>span+span:before{margin-right:8px}.hero{padding-left:24px;padding-right:24px}.scrapbook{min-height:380px;padding-top:25px}.sticker-lilac{width:83px;height:83px;left:-8px;top:12px;font-size:13px}.sticker-lilac em{font-size:17px}.sticker-date{width:67px;bottom:8px}.sticker-date>strong{font-size:34px}.doodle-heart{font-size:43px}.doodle-star{font-size:40px;top:8px}.scrap-note{font-size:7px;right:72px}.gate h1{font-size:54px;letter-spacing:-2.7px}.gate-description{font-size:11px}.pass{height:160px}.pass-stub{width:90px}.pass-main>strong{font-size:65px}.hello h2{font-size:34px}.section-head h2{font-size:31px}.plan-intro h2{font-size:34px}.timeline-row h3{font-size:18px}.timeline-row{gap:12px}.outfit h2{font-size:32px}.details h2{font-size:36px}.info-ticket{padding:22px}.info-row strong{font-size:20px}.closing h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
