@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@400;500;600;700&display=swap');
.home-link{display:block;width:fit-content;margin:0 0 22px;color:var(--purple);font-size:14px;font-weight:700;text-decoration:none;border:1px solid #d6c6df;border-radius:30px;padding:8px 16px}.quote-card{background:#fff;border:2px solid #d7bfe5;border-radius:25px;padding:28px;margin-bottom:35px;box-shadow:0 12px 35px #71389a0a}.quote-card h2{font-size:34px}.quote-card dl{margin:25px 0}.quote-card dl>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #eee}.quote-card dt{font-size:14px}.quote-card dd{margin:0;font-weight:700;font-size:14px;text-align:right;flex-shrink:0}.quote-total{background:#f0e6f8;border-radius:14px;padding:18px;display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.quote-total strong{color:var(--purple);font-size:23px}.quote-pending{font-size:13px;color:var(--muted)}.quote-extras{border:1px solid #d6c6df;border-radius:12px;padding:15px}.quote-extras .check{margin:10px 0}.booking-sidebar{position:sticky;top:20px}@media(max-width:760px){.booking-sidebar{position:static}.quote-card{padding:22px}.quote-card dd{flex-shrink:1}}
:root{--purple:#693396;--pink:#d82368;--ink:#302443;--cream:#fffaf2;--yellow:#ffd25a;--muted:#6d6475}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}h1,h2,h3,.brand{font-family:Fredoka,'Trebuchet MS',sans-serif;line-height:1.08}h1{font-size:clamp(44px,6.8vw,86px);font-weight:500;letter-spacing:-2.7px;margin:20px 0}h2{font-size:clamp(32px,4vw,50px);font-weight:500;letter-spacing:-1px;margin:12px 0 24px}h3{font-size:25px;font-weight:500}p{max-width:650px}a{color:inherit}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #167d99;outline-offset:5px}.draft{background:var(--purple);color:#fff;text-align:center;font-size:12px;letter-spacing:.5px;padding:9px}.draft span{opacity:.85}header{max-width:1320px;margin:auto;padding:26px 5%;display:flex;justify-content:space-between;align-items:center;gap:30px}.brand{font-size:29px;font-weight:600;text-decoration:none;color:var(--purple);white-space:nowrap}.brand span{color:var(--pink)}.brand small{display:block;font:8px/2 'DM Sans',sans-serif;letter-spacing:1.3px;color:var(--ink)}nav{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:600}nav a{text-decoration:none}nav a[aria-current=page]{color:var(--pink)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--pink);color:#fff;border:0;border-radius:100px;padding:16px 27px;text-decoration:none;font-weight:700;cursor:pointer;box-shadow:0 4px 0 #a81950}.button:hover{background:#b91d58;transform:translateY(-1px)}.button.small{padding:11px 21px;font-size:13px}.secondary{background:transparent;box-shadow:none;border:1px solid #d6c6df;color:var(--purple)}.secondary:hover{background:#efe3f7}.menu{display:none}.hero{max-width:1320px;margin:auto;padding:42px 5% 75px;display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:32px}.eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--purple)}.hero h1 em{font-style:normal;color:var(--pink)}.hero p{color:var(--muted);font-size:18px;max-width:460px}.actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:30px}.hero-art{position:relative;background:#fff;border-radius:48% 48% 42% 42%;padding:25px 4px;transform:rotate(2deg);box-shadow:0 22px 65px #71389a12}.hero-art img{width:100%;display:block;transform:rotate(-2deg);border-radius:40%}.sticker{position:absolute;bottom:-12px;right:5%;background:var(--yellow);border:5px solid var(--cream);padding:18px 25px;border-radius:50%;font:22px/1.05 Fredoka,sans-serif;color:var(--purple);transform:rotate(-10deg);text-align:center}.spark{position:absolute;left:0;top:10px;font-size:50px;color:#f0b622}.ribbon{background:#f0e6f8;border-block:1px solid #e6d7ef;display:flex;justify-content:center;gap:7%;padding:22px 5%;color:var(--purple);font-weight:600}.section{max-width:1220px;margin:auto;padding:85px 5%}.center{text-align:center}.center p{margin-inline:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px}.section-head>a{white-space:nowrap;color:var(--purple);font-weight:700;text-underline-offset:5px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:32px}.card{background:#fff;border:1px solid #ebdfef;border-radius:25px;overflow:hidden}.card-body{padding:25px}.card-body h3{margin:8px 0 12px}.card p{color:var(--muted);font-size:15px}.portrait{height:235px;background:#f2e8fa;display:grid;place-items:center;position:relative}.portrait.two{background:#fff0c7}.portrait.three{background:#ddf4f7}.portrait img{width:100%;height:100%;object-fit:cover}.symbol{font-size:85px;color:var(--purple);opacity:.65}.portrait small{position:absolute;bottom:18px;font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:#6a5378}.tag{display:inline-block;padding:4px 11px;border-radius:30px;background:#f3eaf8;color:var(--purple);font-size:11px;font-weight:700;letter-spacing:.4px}.placeholder{color:#74557e;background:#f2eaf5;border:1px dashed #c6adcf;padding:2px 9px;border-radius:7px;display:inline-block;font-size:14px}.band{background:#f0e7f6}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.number{width:45px;height:45px;border-radius:50%;background:var(--yellow);color:var(--purple);display:grid;place-items:center;font:24px Fredoka,sans-serif;flex-shrink:0}.step{display:flex;gap:20px;padding:18px 0}.step h3{margin:2px 0 8px}.step p{margin:0;color:var(--muted)}.note{font-size:13px;color:var(--muted)}.cta{background:var(--purple);color:white;border-radius:32px;margin:15px auto 75px;padding:55px;max-width:1100px;text-align:center;position:relative}.cta p{margin-inline:auto;color:#eadff1}.cta .eyebrow{color:var(--yellow)}.page-head{padding:50px 5% 35px;max-width:1150px;margin:auto;text-align:center}.page-head h1{font-size:clamp(40px,6vw,65px)}.page-head p{margin-inline:auto;color:var(--muted);font-size:18px}.page-head+.section{padding-top:30px}.details{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail{background:#fff;border:1px solid #e9dfef;border-radius:17px;padding:24px}.detail strong{display:block;margin-bottom:9px;color:var(--purple)}.package{padding:35px;border-top:7px solid var(--pink)}.price{font:36px Fredoka,sans-serif;color:var(--purple)}.package ul{list-style:none;padding:0}.package li{padding:12px 0;border-bottom:1px solid #eee}.package li strong{display:block;font-size:13px}details{border-bottom:1px solid #dfd0e6;padding:22px 0}summary{cursor:pointer;font-weight:700;color:var(--purple);font-size:18px}details p{color:var(--muted)}.faq{max-width:800px;margin:auto}.story-art{background:#fff0c7;border-radius:35px;padding:45px;text-align:center;font:45px/1.2 Fredoka,sans-serif;color:var(--purple)}.story-art span{font-size:90px;display:block;margin-bottom:20px}form{background:white;border:1px solid #e9dfef;border-radius:25px;padding:35px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:14px;font-weight:600}input,select,textarea{display:block;width:100%;border:1px solid #cec3d5;border-radius:10px;padding:12px;background:#fff;margin-top:7px;color:var(--ink)}textarea{min-height:120px;resize:vertical}.full{grid-column:1/-1}.notice{padding:20px;border-radius:15px;background:#fff0c7;margin-bottom:25px;font-size:14px}.check{display:flex;gap:10px;align-items:flex-start;margin:22px 0}.check input{width:auto;margin-top:6px}.result{margin-top:22px}.result textarea{min-height:250px}.hidden{display:none}footer{border-top:1px solid #e7ddec;max-width:1300px;margin:auto;padding:45px 5%;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:35px;font-size:13px;color:var(--muted)}footer a:not(.brand){display:block;margin:9px 0;text-decoration:none}footer .brand{font-size:26px}.skip{position:absolute;left:15px;top:-90px;background:#fff;padding:12px;z-index:10}.skip:focus{top:10px}@media(max-width:950px){nav{gap:15px;font-size:12px}.hero{gap:15px}h1{letter-spacing:-1.5px}.split{gap:30px}}@media(max-width:760px){header{padding:20px 6%;flex-wrap:wrap}.brand{font-size:25px}.menu{display:block;border:1px solid #d6c6df;background:white;border-radius:25px;padding:8px 15px;color:var(--purple)}nav{display:none;width:100%;flex-direction:column;align-items:stretch;font-size:16px;gap:0}nav.open{display:flex}nav a{padding:12px}.hero{grid-template-columns:1fr;padding:25px 6% 55px}.hero-art{max-width:480px;margin:28px auto 0}.hero h1{font-size:59px;max-width:500px}.hero p{font-size:17px}.ribbon{gap:16px;font-size:12px;flex-wrap:wrap}.section{padding:55px 6%}.grid,.split,.details{grid-template-columns:1fr}.grid{gap:20px}.portrait{height:250px}.section-head{display:block}.section-head>a{display:inline-block;margin:0 0 8px}.cta{margin:10px 6% 50px;padding:40px 22px}.fields{grid-template-columns:1fr}form{padding:23px}.full{grid-column:auto}footer{grid-template-columns:1fr;gap:15px}.draft span{display:none}.page-head{padding-top:30px}.page-head h1{font-size:46px}.split{gap:35px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;transform:none!important}}

/* Preserve intrinsic image proportions and allow grid children to shrink. */
img{max-width:100%;height:auto}
.hero>*,.split>*,.grid>*,.fields>*{min-width:0}
.placeholder{max-width:100%;overflow-wrap:anywhere}
.hero .hero-art{width:100%;max-width:600px;justify-self:center;padding:24px 12px 55px;border-radius:36px;transform:none}
.hero .hero-art img{height:auto;aspect-ratio:3 / 2;object-fit:contain;border-radius:0;transform:none}
.hero .sticker{bottom:-12px;font-size:19px;padding:15px 22px}
.hero .spark{left:-10px;top:-20px}
@media(min-width:761px) and (max-width:900px){header{flex-wrap:wrap;justify-content:center}nav{justify-content:center;flex-wrap:wrap;width:100%}}
@media(max-width:760px){.hero .hero-art{margin-top:15px;width:100%}.hero h1{font-size:clamp(39px,10.5vw,59px)}.story-art{font-size:clamp(29px,8vw,45px);padding:30px 20px}input,select,textarea{min-width:0}.portrait small{padding-inline:12px;text-align:center}.cta{overflow-wrap:break-word}}
nav a.button[aria-current="page"]{color:#fff}
header .brand{display:block;flex-shrink:0}header .header-logo{display:block;width:170px;height:auto;object-fit:contain;border-radius:12px}.hero .party-photo{margin:0;padding:0 0 28px;background:transparent;box-shadow:none}.hero .party-photo img{aspect-ratio:4/5;object-fit:cover;object-position:78% center;border-radius:36px;box-shadow:0 22px 65px #71389a18}.party-photo figcaption{font-size:10px;color:var(--muted);margin:12px 0 0;text-align:center}.hero .party-photo .sticker{bottom:55px;right:-12px}.service-section{border-bottom:1px solid #e7ddec}@media(max-width:760px){header .header-logo{width:135px}.hero .party-photo{max-width:480px;margin:20px auto 0}.hero .party-photo img{aspect-ratio:5/4;object-position:75% 38%}.hero .party-photo .sticker{right:0;bottom:42px;font-size:17px}}
.hero .photo-placeholder{padding:22px;background:#f0e6f8;border:2px dashed #c6adcf;box-shadow:none;border-radius:36px}.photo-placeholder-inner{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}.photo-icon{font-size:70px;line-height:1;color:var(--purple);margin-bottom:25px}.photo-placeholder-inner h2{font-size:38px;color:var(--purple);margin-bottom:12px}.photo-placeholder-inner p{font-size:13px}.hero .photo-placeholder .sticker{bottom:-16px}@media(max-width:760px){.photo-placeholder-inner{min-height:270px;padding:15px}.photo-placeholder-inner h2{font-size:30px}.photo-icon{font-size:55px}}
header .header-logo{width:220px;height:auto;background:transparent;border-radius:0}@media(max-width:760px){header .header-logo{width:165px}}
.hero-identity{margin-bottom:10px}.hero .hero-location{margin:0 0 4px;font-size:17px;font-weight:600;letter-spacing:1px;color:var(--purple)}.hero-wordmark{display:block;width:100%;max-width:510px;height:auto;margin:0}.hero h1{font-size:clamp(40px,5.4vw,66px);margin-top:8px}@media(max-width:760px){.hero .hero-location{font-size:16px}.hero h1{font-size:clamp(36px,9.5vw,52px)}.hero-wordmark{max-width:450px}}
.hero .hero-location{font-family:Fredoka,"Trebuchet MS",sans-serif;font-size:clamp(25px,3vw,34px);font-weight:500;line-height:1.1;letter-spacing:-.4px;margin:0 0 -9px}.hero-identity{margin-bottom:-12px}.hero-wordmark{margin:0;display:block}.hero h1{margin-top:0}@media(max-width:760px){.hero .hero-location{font-size:clamp(25px,6.8vw,32px);margin-bottom:-6px}.hero-identity{margin-bottom:-9px}}
.hero .hero-location{margin-bottom:-19px}.hero-identity{margin-bottom:-22px}@media(max-width:760px){.hero .hero-location{margin-bottom:-14px}.hero-identity{margin-bottom:-17px}}
nav{font-size:17px;gap:28px}nav .button.small{font-size:16px;padding:14px 25px}@media(min-width:761px) and (max-width:1100px){header{flex-wrap:wrap;justify-content:center}nav{width:100%;justify-content:center;flex-wrap:wrap;gap:22px}}@media(max-width:760px){nav{font-size:18px;gap:0}.menu{font-size:17px;padding:10px 18px}nav .button.small{font-size:17px}}
.hero .hero-location{display:flex;align-items:center;gap:12px;font-size:clamp(30px,3.8vw,42px);line-height:1.15}.utah-icon{display:block;flex:none;width:.72em;height:.9em;color:inherit}@media(max-width:760px){.hero .hero-location{font-size:clamp(25px,7.5vw,34px);gap:9px}}
.utah-icon{overflow:visible;transform:perspective(120px) rotateY(-16deg) rotateZ(12deg);filter:drop-shadow(1px 1px 0 #502672) drop-shadow(2px 2px 0 #502672) drop-shadow(2px 4px 3px #69339633)}
.utah-icon{transform:perspective(160px) rotateY(-8deg) rotateZ(8deg);filter:drop-shadow(1px 1px 0 #57307b) drop-shadow(1px 2px 2px #69339620)}
header .header-logo{width:100px;height:100px;object-fit:contain;border-radius:50%}.hero .hero-location{margin:0 0 12px}.hero-identity{margin-bottom:18px}.hero .hero-wordmark{width:100%;max-width:560px;height:auto;margin:0}.hero h1{font-size:clamp(28px,3vw,39px);line-height:1.15;letter-spacing:-.6px;margin:12px 0 18px}.hero{grid-template-columns:1.15fr 1fr;gap:45px}@media(max-width:760px){header .header-logo{width:80px;height:80px}.hero{grid-template-columns:1fr;gap:25px}.hero .hero-location{margin-bottom:10px;font-size:clamp(25px,7.5vw,34px)}.hero-identity{margin-bottom:12px}.hero h1{font-size:clamp(27px,7.5vw,36px)}.hero .photo-placeholder{margin-top:20px}}


.hero .hero-wordmark{transform:translateX(-68px)}@media(max-width:760px){.hero .hero-wordmark{transform:translateX(-46px)}}

.hero .hero-wordmark{position:relative;left:-68px;transform:none}@media(max-width:760px){.hero .hero-wordmark{left:-46px;transform:none}}

.hero .hero-wordmark{position:relative;left:-18%;transform:none;margin-left:0;margin-right:0}@media(max-width:760px){.hero .hero-wordmark{left:-18%;transform:none}}

@media(min-width:761px){.hero{grid-template-columns:1.05fr 1fr;gap:34px;align-items:stretch}.hero .photo-placeholder{align-self:stretch;display:flex;align-items:center;justify-content:center;margin-top:0;min-height:580px}.hero .photo-placeholder-inner{width:100%;min-height:100%;padding:35px 20px}}@media(max-width:760px){.hero .photo-placeholder{min-height:330px}.hero .photo-placeholder-inner{min-height:285px}}

@media(min-width:761px){.hero{grid-template-columns:.88fr 1.12fr;gap:28px}}

@media(max-width:760px){.hero .hero-wordmark{position:relative;left:0;transform:none;margin-left:auto;margin-right:auto}}

.hero .actions{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:15px;width:100%;max-width:440px}.hero .actions .button:first-child{width:100%;font-size:20px;padding:20px 28px;min-height:65px}.hero .actions .secondary{font-size:16px;padding:13px 24px;min-height:50px;justify-self:center;width:auto}.hero .actions .button{max-width:100%;text-align:center}@media(max-width:760px){.hero .actions{margin-left:auto;margin-right:auto;max-width:360px}.hero .actions .button:first-child{font-size:19px;min-height:62px;padding:18px 22px}}

@media(min-width:761px){.hero .actions{justify-items:start}.hero .actions .secondary{justify-self:start}}

.coming-soon-card{background:#f6f3f8;border-style:dashed}.coming-soon-card .portrait{background:#eae6ee;filter:grayscale(1);opacity:.65}.coming-soon-card h3,.coming-soon-card p{color:#716b78}.unavailable-label{display:inline-block;border:1px solid #d8d0df;border-radius:24px;padding:7px 13px;color:#716b78;font-size:13px}.coming-soon-card .tag{background:#e9e5ee;color:#6a6373}

.coming-soon-card{background:#f1eff3;border:1px solid #ded9e3}.coming-soon-card .portrait{opacity:.4}.coming-soon-card .card-body{opacity:.75}.coming-soon-card .tag{background:#ded9e3;color:#514a5c}.unavailable-label{background:#e8e4ed;color:#605868;border-color:#d8d0df}
