@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,fieldset,figure,dl,dd{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,svg{max-width:100%;display:block}[hidden]{display:none!important}}@layer base{:root{color:#173d35;--pine:#173d35;--gold:#f3d78b;--red:#982e40;--snow:#f5f3ec;--muted:#5b7167;background:#f5f3ec;font-family:Trebuchet MS,Lucida Sans Unicode,sans-serif;font-size:16px;line-height:1.5}body{min-width:320px}h1,h2,.brand,.character-plaque strong{font-family:Georgia,Times New Roman,serif;font-weight:400}h1{letter-spacing:-.04em;font-size:clamp(2.25rem,3.6vw,3.45rem);line-height:1.12}h2{letter-spacing:-.025em;font-size:1.65rem;line-height:1.22}p{max-width:72ch}button,a{color:inherit}:focus-visible{outline-offset:5px;outline:3px solid #b44d47}button:disabled{cursor:wait;opacity:.65}button svg{flex-shrink:0}input,textarea{accent-color:var(--pine)}input:not([type=radio]):not([type=checkbox]),textarea{width:100%;color:var(--pine);background:#fffcf5;border:1px solid #b4c1b5;border-radius:5px;padding:.75rem .85rem}textarea{resize:vertical}input[type=radio],input[type=checkbox]{flex-shrink:0;width:18px;height:18px}fieldset{border:0;min-width:0;padding:0}legend{margin-bottom:.65rem;padding:0;font-weight:700}::selection{color:#173d35;background:#e7ca84}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.icon{flex-shrink:0;width:22px;height:22px}.small-label{color:var(--muted);margin-bottom:.6rem;font-size:.85rem}.fine-print{color:var(--muted);font-size:.8rem}.button{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.7rem;min-height:48px;padding:.8rem 1.4rem;font-weight:700;text-decoration:none;transition:background .18s,transform .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button-small{min-height:42px;padding:.55rem 1.2rem;font-size:.9rem}.button-pine{background:var(--pine);color:#fff9e8}.button-pine:hover{background:#275a4d}.button-gold{background:var(--gold);color:var(--pine)}.button-gold:hover{background:#ffe4a3}.button-outline{background:0 0;border-color:#9daa9e}.button-light{background:var(--snow);color:var(--pine)}.text-button{text-underline-offset:5px;background:0 0;border:0;justify-content:center;align-items:center;gap:.45rem;min-height:44px;padding:.55rem 0;font-size:.875rem;-webkit-text-decoration:underline #a9b4a6;text-decoration:underline #a9b4a6;display:inline-flex}.text-button:hover{-webkit-text-decoration-color:var(--pine);text-decoration-color:var(--pine)}.icon-button{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:inline-grid}.icon-button:hover{background:#e6eadf}.skip-link{z-index:99;background:var(--gold);padding:.7rem 1rem;position:fixed;top:-100px;left:1rem}.skip-link:focus{top:1rem}}@layer layout{.masthead{background:var(--pine);color:#f8f0db;border-bottom:4px solid #d5ae65;justify-content:space-between;align-items:center;gap:1rem;min-height:98px;padding:18px max(32px,50vw - 620px);display:flex}.brand{align-items:center;gap:.9rem;font-size:1.4rem;line-height:1.2;text-decoration:none;display:flex}.brand>.icon{width:38px;height:38px;color:var(--gold);transform:rotate(-13deg)}.brand small{letter-spacing:.015em;color:#d5dfcd;margin-top:5px;font-family:Trebuchet MS,sans-serif;font-size:.67rem;display:block}.ampersand{color:#e3c47b;font-style:italic}.masthead nav{align-items:center;gap:1.8rem;display:flex}.nav-link{color:inherit;background:0 0;border:0;padding:.65rem 0;font-size:.9rem}#scene{outline:none}.wardrobe-page{max-width:1240px;margin:auto;padding:38px 32px 0}.page-intro{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:27px;display:flex}.page-intro h1{margin-bottom:10px}.page-intro p:not(.small-label){color:var(--muted);font-size:.94rem}.style-picker{background:#e5e9de;border:1px solid #c8d1c1;border-radius:6px;flex-shrink:0;align-items:center;margin-bottom:1px;padding:4px;display:flex}.style-picker button{background:0 0;border:0;border-radius:3px;min-height:40px;padding:.55rem 1rem;font-size:.8rem}.style-picker [aria-pressed=true]{background:#fcfaf2;font-weight:700;box-shadow:0 1px 4px #173d3516}.dressing-room{grid-template-columns:minmax(0,1.12fr) minmax(360px,1fr);align-items:start;gap:34px;display:grid}.stage-column{min-width:0}.character-stage{isolation:isolate;background:#193e34 url(/art/winter-stage.webp) 50%/cover;border-radius:10px 10px 40%/10px 10px 12px;height:510px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #173d351a}.hero-character{filter:drop-shadow(3px 5px 3px #191c1b26);width:280px;height:403px;position:absolute;bottom:54px;left:50%;transform:translate(-50%)}.character-svg{width:100%;height:100%;overflow:visible}.stage-corner{color:#fff0cb;text-shadow:0 1px 3px #0008;align-items:center;gap:.4rem;font-size:.7rem;display:flex;position:absolute;top:20px;left:22px}.stage-corner .icon{width:17px;height:17px;color:var(--gold)}.jingle-button{color:#fff4d9;background:#15382ebd;border:1px solid #f8efcf4d;border-radius:20px;align-items:center;gap:.3rem;min-height:36px;padding:.45rem .65rem;font-size:.68rem;display:flex;position:absolute;top:16px;right:17px}.jingle-button .icon{width:16px;height:16px}.character-plaque{text-align:center;background:#f6edd7f5;border:1px solid #d5bd87;border-radius:5px;width:max-content;min-width:230px;max-width:calc(100% - 30px);padding:7px 20px 9px;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 3px 8px #3f311215}.character-plaque strong{overflow-wrap:anywhere;font-size:1.3rem;line-height:1.35;display:block}.character-plaque span{color:#586b55;font-size:.66rem;display:block}.stage-tools{justify-content:space-between;align-items:center;padding:7px 2px 0;display:flex}.stage-tools .text-button{font-size:.8rem;text-decoration:none}.stage-tools .icon{width:18px;height:18px}.wardrobe-panel{background:#fffdf6;border:1px solid #d2dacb;border-radius:10px;min-height:510px;padding:24px 27px 21px}.panel-heading{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.panel-heading h2{font-size:1.7rem}.panel-heading .icon-button{width:32px;height:32px}.panel-heading .icon{width:18px;height:18px}.panel-description{color:var(--muted);margin:6px 0 23px;font-size:.78rem}.coat-options legend{margin-bottom:8px;font-size:.8rem}.swatch-row{align-items:center;gap:10px;display:flex}.color-swatch{background:var(--swatch);color:#fff;border:3px solid #fffdf6;border-radius:50%;outline:1px solid #ced7c8;place-items:center;width:31px;height:31px;display:grid}.color-swatch .icon{width:15px;height:15px}.color-swatch[aria-pressed=true]{outline:2px solid #173d35}.color-swatch:focus-visible{outline-offset:4px;outline:3px solid #b44d47}.swatch-row>span{color:var(--muted);margin-left:2px;font-size:.69rem}.wardrobe-tabs{border-bottom:1px solid #d9dfd1;gap:15px;margin:22px 0 13px;display:flex}.wardrobe-tabs button{color:#647566;background:0 0;border:0;min-height:34px;padding:0 0 9px;font-size:.77rem;line-height:1.2;position:relative}.wardrobe-tabs [aria-pressed=true]{color:var(--pine);font-weight:700}.wardrobe-tabs [aria-pressed=true]:after{content:"";background:var(--pine);border-radius:2px;height:3px;position:absolute;bottom:-1px;left:0;right:0}.wardrobe-choices{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:7px;min-height:96px;display:grid}.wardrobe-choice{text-align:center;background:#f5f5ed;border:1px solid #dce1d5;border-radius:5px;flex-direction:column;justify-content:start;align-items:center;gap:3px;min-height:93px;padding:7px 3px;font-size:.62rem;line-height:1.2;display:flex;position:relative}.wardrobe-choice[aria-pressed=true]{background:#edf0e3;border-color:#416657;box-shadow:inset 0 0 0 1px #416657}.wardrobe-choice:hover{background:#edf0e3}.choice-art{width:61px;max-width:100%;height:57px}.choice-art svg{width:100%;height:100%}.choice-check{background:var(--pine);color:#fff;border-radius:50%;padding:1px;position:absolute;top:3px;right:3px}.choice-check .icon{width:11px;height:11px}.glasses-toggle{border-bottom:1px solid #e4e7db;align-items:center;gap:.6rem;padding:11px 0 16px;font-size:.75rem;display:flex}.glasses-toggle input{width:15px;height:15px;margin:0}.glasses-art{color:#a68743;letter-spacing:-4px;margin-left:auto;margin-right:7px;font-size:1.5rem;line-height:1}.nickname-label{margin-top:17px;margin-bottom:7px;font-size:.76rem;font-weight:700;display:block}.nickname-label span{color:var(--muted);font-size:.68rem;font-weight:400}.wardrobe-panel .nickname-input{min-height:40px;padding:.55rem .7rem;font-size:.8rem}.join-button{width:100%;min-height:47px;margin-top:17px;padding:.7rem .9rem;font-size:.84rem}.join-button .icon{width:18px;height:18px}.join-hint{text-align:center;color:var(--muted);margin-top:8px;font-size:.66rem}.cast-section{margin-top:26px}.cast-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:14px;display:flex}.cast-heading h2{font-size:1.4rem}.cast-heading p{color:var(--muted);margin-top:5px;font-size:.78rem}.cast-shelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.cast-choice{text-align:left;background:#eeefe5;border:1px solid #d4dccb;border-radius:7px;align-items:center;gap:.6rem;min-width:0;min-height:85px;padding:6px 12px 6px 5px;display:flex}.cast-choice[aria-pressed=true]{background:#e5eadc;border-color:#315e4b;box-shadow:inset 0 0 0 1px #315e4b}.cast-choice>.icon{width:15px;height:15px;margin-left:auto}.cast-portrait{background:#dce2d4;border-radius:6px;flex-shrink:0;width:67px;height:68px;position:relative;overflow:hidden}.cast-portrait .character-svg{width:116px;max-width:none;height:166px;position:absolute;top:-7px;left:-24px}.cast-name{font-size:.75rem;font-weight:700}.cast-name small{color:var(--muted);margin-top:4px;font-size:.63rem;font-weight:400;display:block}.invitation-reminder{border-top:1px solid #d5dccb;justify-content:center;align-items:center;gap:1.4rem;margin-top:28px;padding:16px 0;display:flex}.invitation-reminder>.icon{color:#a7813c}.invitation-reminder span{font-family:Georgia,serif;font-size:1rem}.invitation-reminder button{font-size:.8rem}.site-footer{color:#657667;border-top:1px solid #d5dccb;justify-content:space-between;align-items:center;gap:1rem;max-width:1240px;margin:auto;padding:15px 32px 23px;font-size:.69rem;display:flex}.site-footer .text-button{font-size:.69rem}}@layer components{dialog{width:calc(100% - 32px);max-width:620px;color:var(--pine);background:#fffcf2;border:1px solid #d8c796;border-radius:12px;max-height:calc(100dvh - 40px);padding:0;box-shadow:0 25px 90px #08261b59}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c2821b3}.dialog-inner{padding:39px;position:relative}.dialog-inner h2{margin-bottom:12px;font-size:2.5rem}.close-dialog{position:absolute;top:12px;right:12px}.party-lead{margin:17px 0;font-family:Georgia,serif;font-size:1.25rem}.party-facts{border-top:1px solid #d4dccb;border-bottom:1px solid #d4dccb;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0;padding:17px 0;display:grid}.party-facts dt{color:var(--muted);margin-bottom:5px;font-size:.72rem}.party-facts dd{font-size:.88rem}.dialog-inner>p{font-size:.9rem}.moments{gap:11px;margin:24px 0;padding:0;font-size:.86rem;list-style:none;display:grid}.moments li{align-items:center;gap:.7rem;display:flex}.moments .icon{color:#ab7b2b;width:15px;height:15px}.draft-note{background:#f5ecd2;border-left:3px solid #bd8c3b;margin:15px 0;padding:10px 14px;font-size:.8rem}.toast{z-index:10;color:#fff5d9;pointer-events:none;background:#173d35;border-radius:8px;width:max-content;max-width:min(90vw,550px);padding:12px 20px;font-size:.85rem;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 4px 22px #0003}.group-page{text-align:center;max-width:1024px;margin:auto;padding:38px 32px}.group-page>p{margin-left:auto;margin-right:auto}.group-page h1{margin-bottom:12px}.group-page h1+p{color:var(--muted)}.group-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;margin-top:22px;display:flex}.group-page>.fine-print{margin-top:17px}.welcome-page{background:var(--pine);color:#fff3d8;grid-template-columns:1fr .8fr;align-items:center;gap:65px;min-height:710px;padding:65px max(32px,50vw - 588px);display:grid}.welcome-copy h1{font-size:clamp(2.7rem,4.5vw,4.4rem)}.welcome-copy>p:not(.small-label){color:#d9e4d2;margin-top:20px}.welcome-page .small-label{color:#ddcb93}.welcome-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:30px;display:flex}.door-scene{perspective:1200px;background:#203d31;border:15px solid #a17c4a;border-bottom:7px solid #c19b66;width:100%;max-width:365px;height:485px;position:relative;box-shadow:0 12px 40px #071c1a60}.door-reveal{background:url(/art/jinglers-finale.webp) 50%/cover;position:absolute;inset:0}.front-door{transform-origin:0;width:100%;transform-style:preserve-3d;backface-visibility:hidden;background:#486b4b;border:4px solid #6b8556;transition:transform 1.2s cubic-bezier(.2,.7,.1,1);position:absolute;inset:0;box-shadow:inset 2px 0 10px #0003}.door-top-panel,.door-bottom-panel{border:8px ridge #617f50;width:76%;position:absolute;left:12%;box-shadow:inset 2px 4px 8px #173d354f}.door-top-panel{height:47%;top:8%}.door-bottom-panel{height:29%;bottom:7%}.door-wreath{color:#efd58b;background:#315736a8;border:22px dotted #245b35;border-radius:50%;place-items:center;width:120px;height:120px;display:grid;position:absolute;top:80px;left:calc(50% - 60px);box-shadow:0 3px 8px #0003}.door-wreath .icon{width:38px;height:38px}.doorknob{background:#dfb85d;border-radius:50%;width:20px;height:20px;position:absolute;top:60%;right:9%;box-shadow:inset -3px -2px 3px #a98132}.door-knock{color:#f1e4ba;font-family:Georgia,serif;font-size:1.1rem;position:absolute;top:240px;left:0;right:0}.door-scene.is-open .front-door{pointer-events:none;visibility:hidden;transition:transform 1.2s cubic-bezier(.2,.7,.1,1),visibility 0s linear 1.2s;transform:rotateY(-115deg)}.door-invitation{margin-top:30px}.door-invitation h2{color:var(--gold);font-size:1.8rem}.door-invitation p{margin:15px 0;font-size:.92rem}.door-invitation .button{margin:5px 10px 0 0}.rsvp-page{max-width:730px;margin:0 auto;padding:35px 32px 55px}.rsvp-page>.small-label{margin-top:25px}.rsvp-page h1{margin-bottom:12px}.rsvp-page h1+p{color:var(--muted);margin-bottom:20px}#rsvp-form{gap:25px;margin-top:25px;display:grid}#rsvp-form label{flex-direction:column;gap:6px;font-size:.86rem;display:flex}#rsvp-form legend{font-size:.98rem}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}#rsvp-form .radio-row{flex-wrap:wrap;gap:25px;display:flex}#rsvp-form .radio-row label,#rsvp-form .radio-column label,#rsvp-form .song-list label{flex-direction:row;align-items:center;gap:7px;display:flex}.radio-column,.song-list{gap:10px;display:grid}.song-list{grid-template-columns:1fr 1fr;margin-bottom:17px}.field-hint{color:var(--muted);margin-bottom:12px;font-size:.78rem}#rsvp-form fieldset+label{margin-top:0}#instrument-detail{margin-top:17px}.rsvp-mode{background:#e9edde;border-radius:6px;padding:12px 16px}.rsvp-mode .field-hint{margin:9px 0 0}.honey{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-error{color:#7f2932;background:#f8e2da;border:1px solid #ba6e69;padding:13px 17px}.receipt-page{min-height:65vh;padding-top:70px}.receipt-page .group-actions{justify-content:flex-start}.change-link-box{background:#fdfbf3;border:1px solid #c9d5bf;border-radius:7px;margin-top:25px;padding:18px}.change-link-box label{margin-bottom:9px;font-size:.85rem;display:block}}@layer responsive{@media (min-width:1500px){.wardrobe-page{padding-top:46px}.page-intro{margin-bottom:32px}.character-stage{height:540px}.hero-character{width:296px;height:426px;bottom:57px}.wardrobe-panel{min-height:540px;padding-top:30px}.wardrobe-choices{min-height:105px}}@media (max-width:1060px){.wardrobe-page{padding:30px 24px 0}.dressing-room{grid-template-columns:1fr 1fr;gap:23px}.wardrobe-panel{padding:22px 18px 18px}.stage-corner{display:none}.hero-character{width:270px}.wardrobe-tabs{gap:12px}.wardrobe-tabs button{font-size:.69rem}.wardrobe-choice{font-size:.58rem}.cast-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.swatch-row{gap:8px}.swatch-row>span{font-size:.62rem}}@media (max-width:760px){.masthead{min-height:85px;padding:15px 20px}.brand{gap:8px;font-size:1.1rem}.brand>.icon{width:29px;height:29px}.brand small{font-size:.57rem}.masthead nav{gap:14px}.nav-link{font-size:.78rem}.masthead .button-small{min-height:38px;padding:.4rem .75rem;font-size:.78rem}.masthead .button-small .icon{display:none}.wardrobe-page{padding:26px 20px 0}.page-intro{flex-direction:column;align-items:flex-start;gap:19px;margin-bottom:20px}.page-intro h1{font-size:2.65rem}.page-intro p:not(.small-label){font-size:.83rem}.style-picker{align-self:flex-end;margin-top:-3px}.style-picker button{min-height:34px;padding:.45rem 1rem;font-size:.75rem}.dressing-room{display:block}.character-stage{background-position:50%;height:440px}.hero-character{width:254px;height:365px;bottom:46px}.character-plaque{bottom:12px}.character-plaque strong{font-size:1.2rem}.character-plaque span{font-size:.63rem}.jingle-button{top:14px;right:14px}.stage-tools{padding-top:4px;padding-bottom:13px}.stage-tools .text-button{font-size:.75rem}.wardrobe-panel{min-height:0;padding:21px}.panel-heading h2{font-size:1.65rem}.panel-description{font-size:.75rem}.wardrobe-tabs{gap:22px}.wardrobe-tabs button{min-height:40px;font-size:.76rem}.wardrobe-choice{min-height:98px;font-size:.62rem}.wardrobe-choices{gap:7px}.swatch-row{gap:12px}.swatch-row>span{font-size:.7rem}.color-swatch{width:34px;height:34px}.coat-options legend{font-size:.85rem}.glasses-toggle{padding-bottom:19px;font-size:.8rem}.nickname-label{font-size:.8rem}.join-button{min-height:50px;font-size:.88rem}.cast-heading{flex-direction:column;align-items:flex-start;gap:5px}.cast-heading .text-button{min-height:36px}.cast-choice{gap:.45rem;padding-right:8px}.cast-name{font-size:.72rem}.cast-name small{display:none}.cast-portrait{width:57px}.cast-choice>.icon{width:13px;height:13px}.cast-shelf{gap:9px}.cast-heading p{font-size:.72rem}.invitation-reminder{flex-wrap:wrap;gap:0 20px;padding:17px 0 8px}.invitation-reminder>.icon{display:none}.invitation-reminder span{text-align:center;flex-basis:100%;margin-bottom:7px}.site-footer{text-align:center;flex-direction:column;gap:1px;padding:17px 20px 23px;font-size:.67rem}.group-page{padding:30px 20px}.group-page h1{font-size:2.65rem}.group-actions .button{width:100%}.group-page>.fine-print{font-size:.73rem}.welcome-page{grid-template-columns:1fr;gap:35px;padding:35px 24px 45px}.welcome-copy h1{font-size:2.9rem}.door-scene{justify-self:center;width:290px;height:420px}.door-wreath{top:65px}.door-knock{top:210px}.door-invitation .button{width:100%}.rsvp-page{padding:25px 22px 40px}.form-grid{grid-template-columns:1fr;gap:17px}.song-list{grid-template-columns:1fr}#rsvp-form .radio-row{gap:13px 22px}.dialog-inner{padding:35px 23px 25px}.dialog-inner h2{font-size:2.15rem}.party-facts{grid-template-columns:1fr}.receipt-page{padding-top:40px}}@media (max-width:390px){.brand{font-size:.96rem}.brand small{font-size:.5rem}.brand>.icon{width:25px;height:25px}.masthead{padding:14px}.masthead nav{gap:10px}.nav-link{font-size:.7rem}.wardrobe-page{padding-left:15px;padding-right:15px}.page-intro h1{font-size:2.3rem}.wardrobe-panel{padding:18px 15px}.wardrobe-tabs{gap:17px}.wardrobe-tabs button{font-size:.7rem}.wardrobe-choices{gap:5px}.wardrobe-choice{font-size:.57rem}.swatch-row{gap:9px}.swatch-row>span{font-size:.63rem}.cast-name{font-size:.65rem}.cast-portrait{width:48px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.door-scene.is-open .front-door{visibility:hidden}}}@layer worlds{body{--world-stage:url(/art/winter-stage.webp);--world-background:#f5f3ec;background:var(--world-background)}body[data-style=cutout]{--pine:#16465a;--gold:#ffe16d;--muted:#496574;--world-background:#eff7fa;--world-stage:url(/art/cutout-stage.webp);color:#173e51}body[data-style=storybook]{--pine:#465e24;--gold:#e8ed82;--muted:#5d713f;--world-background:#f4f6e4;--world-stage:url(/art/storybook-stage.webp);color:#3e5027}.world-nav{z-index:6;min-height:54px;color:var(--pine);background:var(--world-background);border-bottom:1px solid #b9c5ad;justify-content:center;align-items:center;gap:25px;padding:7px 24px;display:flex;position:sticky;top:0}.world-nav>span{font-size:.73rem}.world-nav>div{gap:4px;display:flex}.world-nav [data-style]{background:0 0;border:1px solid #0000;border-radius:4px;min-height:34px;padding:6px 14px;font-size:.76rem}.world-nav [aria-pressed=true]{background:var(--pine);color:#fff9e1}.world-nav>.text-button{min-height:30px;margin-left:12px;font-size:.7rem}.character-stage,.door-reveal{background-image:var(--world-stage)}.door-cast{position:absolute;inset:0}.door-cast .character-svg{filter:drop-shadow(1px 2px 2px #0003);width:68%;max-width:none;height:auto;margin:0;position:absolute;bottom:0}.door-cast .character-svg:first-child{left:-7%}.door-cast .character-svg:nth-child(2){right:-7%}.door-cast .character-svg:nth-child(3){z-index:1;left:16%}.door-cast .character-svg:nth-child(4){z-index:2;right:8%}.door-scene{overflow:visible}.door-reveal{isolation:isolate;overflow:hidden}body[data-style=cutout] h1,body[data-style=cutout] h2,body[data-style=cutout] .brand,body[data-style=cutout] .character-plaque strong{letter-spacing:-.035em;font-family:Trebuchet MS,sans-serif;font-weight:800}body[data-style=cutout] .masthead{border-bottom-color:#172c36}body[data-style=cutout] .wardrobe-panel,body[data-style=cutout] .wardrobe-choice,body[data-style=cutout] .cast-choice,body[data-style=cutout] .character-stage{box-shadow:none;border:2px solid #263e47;border-radius:2px}body[data-style=cutout] .wardrobe-panel{background:#fbfdff}body[data-style=cutout] .character-plaque{background:#fff5bd;border:2px solid #263e47;border-radius:1px}body[data-style=cutout] .front-door{box-shadow:none;background:#228340;border:4px solid #142e22}body[data-style=cutout] .door-scene{border:9px solid #45332d}body[data-style=cutout] .door-top-panel,body[data-style=cutout] .door-bottom-panel{box-shadow:none;border:4px solid #174d28}body[data-style=cutout] .welcome-page{background:#16465a}body[data-style=storybook] .masthead{border-bottom:4px double #e7d964}body[data-style=storybook] h1{letter-spacing:-.045em}body[data-style=storybook] .wardrobe-panel{background:#fffef2;border:1.5px solid #778450;border-radius:15px 26px 17px 28px}body[data-style=storybook] .character-stage{border:2px solid #6b7846;border-radius:16px 30px 17px 23px}body[data-style=storybook] .wardrobe-choice{background:#f5f5d8;border-radius:12px 6px 11px 5px}body[data-style=storybook] .character-plaque{background:#f6efc5;border-radius:14px 7px 15px 6px}body[data-style=storybook] .welcome-page{background:#465e24}body[data-style=storybook] .door-scene{border:11px solid #dcce86;border-radius:46% 49% 10px 10px}body[data-style=storybook] .front-door{background:#b33247;border:4px solid #7d2936;border-radius:46% 49% 7px 7px}body[data-style=storybook] .door-reveal{border-radius:inherit}body[data-style=storybook] .door-top-panel{border-style:solid;border-color:#922e3f;border-radius:45% 50% 8px 6px}body[data-style=storybook] .door-bottom-panel{border-style:solid;border-color:#922e3f;border-radius:10px}body[data-style=storybook] .door-wreath{background:#5d7c29;border-color:#547d23}.houses-page{color:#fff4db;background:#183e35;overflow:hidden}.houses-intro{text-align:center;padding:38px 24px 0}.houses-intro .small-label{color:#e2cf96}.houses-intro h1{font-size:clamp(2.7rem,4.2vw,4rem);line-height:1.08;font-family:Georgia,serif!important;font-weight:400!important}.houses-intro h1+p{color:#d3e0cc;margin:16px auto 0;font-size:.9rem}.houses-street{transform-origin:bottom;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1230px;min-height:420px;margin:8px auto 0;padding:0 22px;display:grid}.house-choice{color:#fff4db;transform-origin:50% 80%;background:0 0;border:0;flex-direction:column;justify-content:end;align-items:center;min-width:0;padding:10px 0 24px;transition:transform .75s cubic-bezier(.3,.1,.15,1),opacity .45s;display:flex}.house-choice:disabled{opacity:1;cursor:default}.house-choice img{object-fit:contain;filter:drop-shadow(0 8px 8px #05181133);width:100%;height:auto;max-height:365px;transition:transform .25s}.house-choice:hover img{transform:translateY(-7px)}.house-choice:focus-visible{border-radius:12px;outline-color:#f4d78c}.house-label{justify-items:center;gap:6px;padding-top:8px;display:grid}.house-label strong{font-family:Georgia,serif;font-size:1.65rem;font-weight:400}.house-label>span{color:#d3e0cc;font-size:.73rem}.house-label small{color:#f4d78c;border-bottom:1px solid #dfcc91;align-items:center;gap:5px;padding:4px 3px;font-size:.75rem;display:inline-flex}.house-label .icon{width:15px;height:15px}.is-entering .house-choice{opacity:0;pointer-events:none}.is-entering .house-choice.chosen-house{opacity:1}.is-entering .house-felt.chosen-house{transform:translate(65%)scale(2.8)}.is-entering .house-cutout.chosen-house{transform:scale(2.8)}.is-entering .house-storybook.chosen-house{transform:translate(-65%)scale(2.8)}.is-entering .house-label{opacity:0}.houses-bottom{--snowbank:#e9eee1;--curve-height:16px;background:linear-gradient(transparent var(--curve-height), var(--snowbank) var(--curve-height));color:#173d35;isolation:isolate;justify-content:center;align-items:center;gap:25px;padding:20px 24px 25px;display:flex;position:relative}.houses-bottom:before{z-index:-1;content:"";height:var(--curve-height);background:var(--snowbank);border-radius:50% 50% 0 0/100% 100% 0 0;position:absolute;inset:0 -2% auto}.houses-bottom>span{font-family:Georgia,serif;font-size:.92rem}.houses-bottom .text-button{font-size:.76rem}@media (max-width:1000px){.world-nav{gap:15px}.houses-street{min-height:350px}.house-label strong{font-size:1.4rem}.house-label>span{text-align:center;max-width:20ch;font-size:.66rem}.houses-bottom{flex-wrap:wrap;gap:15px}.houses-bottom>span{text-align:center;flex-basis:100%}}@media (max-width:760px){.world-nav{gap:7px;min-height:46px;padding:6px 10px}.world-nav>span{display:none}.world-nav [data-style]{padding:5px 11px;font-size:.71rem}.world-nav>.text-button{margin-left:4px;font-size:.65rem}.page-intro{gap:8px}.page-intro>.text-button{min-height:32px}.houses-intro{padding-top:35px}.houses-intro h1{font-size:2.7rem}.houses-intro h1+p{max-width:34ch;font-size:.8rem}.houses-street{align-items:end;gap:0;min-height:280px;padding:15px 8px 0}.house-choice{padding-bottom:26px}.house-choice img{object-fit:contain;width:100%;height:165px;max-height:none}.house-label{gap:8px;padding-top:10px}.house-label strong{font-size:1.04rem}.house-label>span{display:none}.house-label small{font-size:.65rem}.house-label .icon{width:12px;height:12px}.houses-bottom{gap:2px 18px;padding:20px 15px}.houses-bottom>span{max-width:31ch;margin-bottom:6px;font-size:.9rem}.houses-bottom .text-button{font-size:.68rem}.world-nav [data-style]:focus-visible{outline-offset:1px}body[data-style=cutout] .page-intro h1{font-size:2.25rem}}}@layer updates{.world-nav{gap:18px}.world-nav>span{flex-shrink:0;font-weight:700}.world-nav>div{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));max-width:740px;display:grid}.world-nav [data-style]{align-content:center;gap:2px;min-height:48px;padding:6px 12px;line-height:1.3;display:grid}.location-place{font-weight:700}.location-region{font-size:.68rem}.house-label{text-align:center;padding-inline:7px}.house-label strong{line-height:1.15}.house-label .house-region{font-size:.8rem}.wardrobe-choices.prop-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.prop-choices .wardrobe-choice{min-height:99px}.choice-art svg{overflow:visible}.cast-portrait .portrait-only{width:100%;height:100%;position:static}.invitation-paragraph{margin:13px 0}.menu-title{margin:24px 0 9px;font-family:Georgia,serif;font-size:1.2rem;font-weight:400}.party-menu{gap:6px;margin:0 0 18px;padding-left:20px;font-size:.86rem;display:grid}.welcome-copy .welcome-date{color:var(--gold);font-size:.92rem;font-weight:700}.wardrobe-choices{min-height:100px}@media (min-width:761px){.stage-column{position:sticky;top:95px}}@media (max-width:760px){.world-nav{flex-wrap:wrap;justify-content:space-between;gap:4px 8px;padding:6px 12px}.world-nav>span{order:0;display:block}.world-nav>.text-button{order:1;margin-left:0}.world-nav>div{flex-basis:100%;order:2;max-width:none}.world-nav [data-style]{padding:7px 5px;font-size:.7rem}.location-region{font-size:.61rem}.house-label .house-region{max-width:14ch;font-size:.66rem;display:block}}@media (max-width:390px){.wardrobe-choices.prop-choices{gap:6px}.prop-choices .wardrobe-choice{font-size:.62rem}}.wardrobe-categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:22px 0 14px;display:grid}.wardrobe-categories button{text-align:left;background:#f3f3e9;border:1px solid #c8d3c0;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:46px minmax(0,1fr);align-items:center;column-gap:7px;min-height:72px;padding:9px 8px;display:grid}.wardrobe-categories button>span{grid-row:1/3;width:44px;height:46px}.wardrobe-categories svg{width:100%;height:100%;overflow:visible}.wardrobe-categories strong{align-self:end;font-size:.78rem;line-height:1.25}.wardrobe-categories small{color:#52664e;align-self:start;padding-top:4px;font-size:.63rem}.wardrobe-categories [aria-pressed=true]{background:#e4ead8;border-color:#315c49;box-shadow:inset 0 0 0 1px #315c49}.wardrobe-categories button:hover{background:#e9eddc}.wardrobe-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.wardrobe-choice.is-locked{background:#f0eee5;border-style:dashed}.wardrobe-choice.is-locked .choice-art{opacity:.8}.silly-extras h3{margin:0 0 8px;font-family:Georgia,serif;font-size:1.25rem;font-weight:400}.silly-extras p{color:#52664e;margin:6px 0 10px;font-size:.8rem}.wardrobe-choices.extra-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.extra-choices .wardrobe-choice{min-height:98px;padding:8px 4px}.choice-lock{color:#fff9e8;background:#534018;border-radius:50%;padding:2px;position:absolute;top:4px;right:4px}.choice-lock .icon{width:15px;height:15px}.bonus-unlock{width:100%;min-height:45px;margin-top:13px;padding:.7rem;font-size:.77rem}.bonus-unlock .icon{width:18px;height:18px}.bonus-receipt{background:#ebeedd;border-left:3px solid #cba252;margin-top:20px;padding:13px 16px}@media (min-width:761px){.stage-column{position:sticky;top:90px}}@media (max-width:1060px) and (min-width:761px){.wardrobe-categories button{grid-template-columns:34px minmax(0,1fr);column-gap:5px;padding:8px 5px}.wardrobe-categories button>span{width:32px;height:40px}.wardrobe-categories strong{font-size:.71rem}.wardrobe-categories small{font-size:.58rem}}@media (max-width:390px){.wardrobe-categories{gap:7px}.wardrobe-categories button{grid-template-columns:37px minmax(0,1fr);column-gap:5px;padding:8px 6px}.wardrobe-categories button>span{width:35px;height:42px}.wardrobe-categories strong{font-size:.73rem}.wardrobe-categories small{font-size:.6rem}}}@layer usability{body{--focus-ring:var(--pine)}.masthead,.welcome-page,.houses-intro,.houses-street{--focus-ring:#f3d78b}:focus-visible{outline-color:var(--focus-ring)}.house-choice[aria-disabled=true]{cursor:default}html{scroll-padding-top:calc(var(--world-nav-height,64px) + 16px)}@keyframes carol-bob{0%,to{translate:0}50%{translate:0 -3.5%}}.character-stage.is-singing .hero-character{animation:.7s ease-in-out 3 carol-bob}input:not([type=radio]):not([type=checkbox]),textarea{font-size:max(1rem,16px)}#rsvp-form .radio-row label,#rsvp-form .radio-column label,#rsvp-form .song-list label{min-height:44px}#rsvp-form .radio-column,#rsvp-form .song-list{row-gap:0}@media (max-width:760px){.masthead .button-small,.masthead .nav-link{min-height:44px}.welcome-page{flex-direction:column;align-items:stretch;gap:0;display:flex}.welcome-copy{display:contents}.welcome-copy>*{order:2}.welcome-copy>.small-label,.welcome-copy>h1{order:0}.door-scene{order:1;align-self:center;width:250px;height:340px;margin:22px 0 6px}.door-wreath{top:45px}.door-knock{top:175px}}@media (max-width:760px) and (min-height:640px){.stage-column{top:var(--world-nav-height,98px);z-index:3;background:var(--world-background,#f5f3ec);position:sticky}.character-stage{height:min(300px,37vh)}.hero-character{aspect-ratio:254/365;width:auto;height:calc(min(300px,37vh) - 62px);bottom:50px}.character-plaque{min-width:0;padding:4px 14px 5px;bottom:8px}.character-plaque strong{font-size:1.05rem}.stage-tools{padding-top:2px;padding-bottom:6px}html:has(body[data-scene=wardrobe]){scroll-padding-top:calc(var(--world-nav-height,98px) + min(300px, 37vh) + 44px)}}.reply-help{background:#f5ead3;border-inline-start:3px solid #ae8034;margin:14px 0;padding:12px 16px}.rsvp-fields{gap:25px;display:grid}.rsvp-form-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.rsvp-form-actions .text-button{min-height:44px}#turnstile-widget:empty{display:none}.receipt-summary{background:#fffdf4;border:1px solid #c9d5bf;border-radius:7px;gap:5px;padding:13px 16px;display:grid}.receipt-summary div{flex-wrap:wrap;gap:4px 16px;display:flex}.receipt-summary dt{font-weight:700}.receipt-summary dd{overflow-wrap:anywhere}.calendar-title,[data-calendar-status]{flex-basis:100%}.receipt-page .calendar-action{margin-block:16px}.change-link-box .field-hint{margin-bottom:0}.change-link-box .text-button{min-height:44px}.bonus-code-form{gap:6px;margin-top:14px;display:grid}.bonus-code-form label{font-size:.875rem;font-weight:700}.bonus-code-form div{gap:8px;display:flex}.bonus-code-form input{min-width:0}.bonus-code-form .button{flex:none;min-height:44px;padding-inline:12px}.bonus-code-form .bonus-code-status{color:#652d35;margin:0}.wardrobe-choice.is-previewed{background:#f1e5b4;box-shadow:inset 0 0 0 1px #916c2b}}@layer invitation{:root{--house-pine:#173d35;--house-pine-deep:#0f2b25;--house-pine-raised:#20493f;--house-gold:#f3d78b;--house-gold-ink:#8a6420;--house-cream:#fbf6e8;--house-berry:#8f2a3b;--house-sage:#d3e0cc;--house-muted:#4c6357}body[data-style=house]{--pine:var(--house-pine);--gold:var(--house-gold);--muted:var(--house-muted);--world-background:#f5f3ec}.app-bar{z-index:8;background:var(--pine);color:#fff8e6;border-bottom:2px solid color-mix(in srgb, var(--gold) 70%, transparent);--focus-ring:var(--house-gold);position:sticky;top:0}.app-bar-inner{max-width:1240px;padding:4px max(12px, env(safe-area-inset-left)) 4px max(12px, env(safe-area-inset-right));justify-content:space-between;align-items:center;gap:8px;min-height:52px;margin:0 auto;display:flex}.app-bar-link{min-height:44px;color:inherit;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:5px;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:4px 6px;font-size:.9rem;display:inline-flex}.app-bar-link:hover{text-decoration-color:currentColor}.app-bar-home{font-family:Georgia,Times New Roman,serif;font-size:1.02rem;text-decoration:none}.app-bar-mark{background:var(--house-berry);border:2px solid var(--house-gold);width:32px;height:32px;color:var(--house-gold);border-radius:50%;place-items:center;display:inline-grid}.app-bar-mark .icon{width:17px;height:17px;transform:rotate(-12deg)}.app-bar-back .icon{width:18px;height:18px}.app-bar-actions{align-items:center;gap:6px;margin-inline-start:auto;display:inline-flex}.app-bar .button-small{color:#1d2b25;min-height:44px;padding:6px 18px;font-size:.9rem}.app-bar [aria-current=page]{text-decoration:none}body[data-scene=houses] .app-bar{visibility:hidden;transition:transform .25s,visibility 0s linear .25s;position:fixed;inset:0 0 auto;transform:translateY(-110%)}body[data-scene=houses] .app-bar.is-shown{visibility:visible;transition:transform .25s;transform:none}body[data-scene=houses]{background:var(--house-pine)}.home-page{--focus-ring:var(--house-gold);isolation:isolate;color:#fff6dc;background:radial-gradient(circle at 12% 8%, #ffffff30 0 1.5px, transparent 2px) 0 0 / 97px 89px, radial-gradient(circle at 70% 40%, #ffffff26 0 1px, transparent 1.5px) 0 0 / 61px 73px, radial-gradient(circle at 40% 80%, #f3d78b30 0 1.5px, transparent 2px) 0 0 / 131px 117px, radial-gradient(120% 60% at 50% 0%, #22524600 40%, #0f2b2580 100%), var(--house-pine);position:relative}.home-card{padding:42px 16px 28px}.invite-card{--focus-ring:var(--house-pine);background:var(--house-cream);max-width:460px;color:var(--house-pine);text-align:center;border-radius:14px;margin:0 auto;padding:40px 26px 22px;position:relative;box-shadow:inset 0 1px #fffdf6,0 22px 50px -18px #04140fcc,0 3px #d8c58e}.invite-card:before{content:"";pointer-events:none;border:1.5px dashed #c6a256;border-radius:9px;position:absolute;inset:9px}.invite-card-home:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3d78b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16h12l-2-3V9a4 4 0 0 0-8 0v4z'/%3E%3Cpath d='M10 19h4M12 3V2'/%3E%3C/svg%3E") center / 26px no-repeat, radial-gradient(circle at 35% 30%, #b13a4e, var(--house-berry) 60%, #6e1f2d);width:54px;height:54px;box-shadow:0 0 0 3px var(--house-cream), 0 0 0 5px #c6a256, 0 6px 12px #04140f66;border-radius:50%;position:absolute;top:-27px;left:calc(50% - 27px)}.invite-eyebrow{color:var(--house-berry);margin:0 auto 2px;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-style:italic}.invite-title{letter-spacing:-.035em;color:var(--house-pine);margin:0 auto;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.05rem,9.4vw,2.9rem);font-weight:400;line-height:1.04}.invite-amp{color:var(--house-gold-ink);padding-inline:.02em;font-style:italic}.invite-tagline{color:var(--house-muted);margin:6px auto 0;font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-style:italic}.invite-facts{gap:9px;margin:16px auto 0;padding-top:16px;display:grid;position:relative}.invite-facts:before{content:"✦";background:var(--house-cream);color:#b48c3e;padding-inline:10px;font-size:.8rem;line-height:18px;position:absolute;top:-9px;left:50%;transform:translate(-50%)}.invite-facts:after{content:"";z-index:-1;background:linear-gradient(90deg,#0000,#c6a256 20% 80%,#0000);height:1px;position:absolute;top:0;left:18%;right:18%}.invite-facts p{max-width:none;margin:0 auto}.invite-when,.invite-where{gap:1px;display:grid}.invite-date,.invite-venue{font-size:1.05rem;font-weight:700}.invite-time,.invite-address{font-size:.95rem}.invite-address{color:#2c4a40;min-height:1.5em}.address-part{display:inline-block}.directions-link{min-height:44px;color:var(--house-berry);text-underline-offset:4px;white-space:nowrap;align-items:center;padding-inline:4px;font-weight:700;display:inline-flex}.invite-reply-by{color:#5a3a12;background:#f1e3bd;border-radius:999px;justify-self:center;padding:3px 12px;font-size:.875rem;font-weight:700}.invite-actions{gap:10px;max-width:360px;margin:18px auto 0;display:grid}.invite-actions .button{width:100%;min-height:50px;font-size:1.02rem}.invite-actions .button-pine{background:var(--house-pine);box-shadow:0 3px #0b241e}.invite-actions .button-pine:hover{background:#24594c}.invite-practice{border:2px solid var(--house-pine);color:var(--house-pine);background:0 0}.invite-practice:hover{background:#efe6cb}.invite-summary{color:#2c4a40;max-width:36ch;margin:18px auto 0;font-size:.95rem;line-height:1.55}.invite-card .calendar-disclosure{justify-items:center;margin-top:8px;display:grid}.calendar-toggle{gap:7px;font-size:.9rem;font-weight:700;text-decoration-color:#b0a37d}.calendar-toggle .icon{width:19px;height:19px}.calendar-toggle[aria-expanded=true]{text-decoration:none}.invite-card .calendar-action{width:min(100%,300px);margin:4px auto 0;display:grid}.invite-card .calendar-action .button{border-color:#8ea292;min-height:44px;padding:6px 14px;font-size:.875rem}.invite-questions{color:var(--house-muted);margin:8px auto 0;font-size:.875rem}.practice-section{text-align:center;padding:30px 16px 0;position:relative;overflow:hidden}.practice-heading{max-width:560px;margin:0 auto}.practice-eyebrow{color:var(--house-gold);margin:0 auto 4px;font-family:Georgia,Times New Roman,serif;font-size:1.02rem;font-style:italic}.practice-section h2{color:#fff6dc;scroll-margin-top:calc(var(--world-nav-height,52px) + 18px);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.75rem,7vw,2.4rem);line-height:1.1}.practice-section h2:focus-visible{outline-offset:6px;border-radius:4px}.practice-intro{max-width:38ch;color:var(--house-sage);margin:8px auto 0;font-size:.95rem}.practice-crew{color:var(--house-gold);border:1px solid #f3d78b66;border-radius:999px;align-items:center;gap:8px;margin:12px auto 0;padding:5px 14px;font-family:Georgia,Times New Roman,serif;font-size:1rem;display:inline-flex}.practice-crew .icon{width:20px;height:20px}.step-progress{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.step-label{letter-spacing:.01em;margin:0;font-size:.875rem;font-weight:700}.step-dots{--dot:24px;--dot-gap:24px;align-items:center;gap:var(--dot-gap);margin:0;padding:0;list-style:none;display:flex}.step-dots li{width:var(--dot);height:var(--dot);border:2px solid color-mix(in srgb, currentColor 60%, transparent);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;line-height:1;display:grid;position:relative}.step-dots li+li:before{content:"";width:calc(var(--dot-gap) - 4px);background:color-mix(in srgb, currentColor 45%, transparent);height:2px;position:absolute;right:calc(100% + 4px)}.step-dots .is-done{background:currentColor;border-color:currentColor}.step-dots .is-done .icon{width:calc(var(--dot) * .58);height:calc(var(--dot) * .58);color:var(--world-background,#f5f3ec);stroke-width:3px}.step-dots .is-current{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 22%, transparent);border-color:currentColor}.step-progress-home{color:#fff6dc;flex-direction:column;justify-content:center;margin:22px auto 14px}.step-progress-home .step-dots .is-current{background:var(--house-gold);border-color:var(--house-gold);color:var(--house-pine)}.practice-section .houses-street{transform-origin:50% 40%;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px;max-width:760px;min-height:0;margin:0 auto;padding:0 0 26px;display:grid}.practice-section .house-choice{background:linear-gradient(180deg, #20493f00 0%, #20493fcc 55%, var(--house-pine-raised) 100%);color:#fff6dc;text-align:center;border:1px solid #f3d78b40;border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:center;gap:0;min-width:0;padding:8px 4px 12px;display:flex}.practice-section .house-choice:hover{border-color:#f3d78b99}.practice-section .house-choice:hover img{transform:translateY(-5px)}.practice-section .house-choice:focus-visible{outline:3px solid var(--house-gold);outline-offset:3px}.house-art{aspect-ratio:1;width:100%;display:block}.practice-section .house-choice img{object-fit:contain;filter:drop-shadow(0 8px 8px #05181155);width:100%;height:100%;max-height:none;transition:transform .25s}.practice-section .house-label{flex:1;grid-template-rows:auto auto 1fr;justify-items:center;gap:2px;padding:4px 2px 0;display:grid}.practice-section .house-label strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(.9rem,3.6vw,1.2rem);font-weight:400;line-height:1.15}.practice-section .house-label .house-region{max-width:none;color:var(--house-sage);font-size:.75rem;display:block}.house-cta{background:var(--house-gold);min-height:30px;color:var(--house-pine);white-space:nowrap;border-radius:999px;justify-content:center;align-self:end;align-items:center;margin-top:8px;padding:3px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.practice-section .is-entering .house-choice{opacity:0}.practice-section .is-entering .house-choice.chosen-house{opacity:1;background:0 0;border-color:#0000}.practice-section .is-entering .house-label{opacity:0}.practice-section .is-entering .house-felt.chosen-house{transform:translate(105%)scale(2.3)}.practice-section .is-entering .house-cutout.chosen-house{transform:scale(2.3)}.practice-section .is-entering .house-storybook.chosen-house{transform:translate(-105%)scale(2.3)}.practice-section:after{content:"";background:#e9eee1;border-radius:50% 50% 0 0/100% 100% 0 0;height:34px;margin:-22px -16px 0;display:block}body[data-scene=houses] .site-footer{color:#364c42;background:#e9eee1;border-top:0;max-width:none;margin:0;padding-inline:16px}.practice-page{max-width:1240px;margin:0 auto;padding:18px 16px 0}.step-header{border-bottom:1px solid color-mix(in srgb, var(--pine) 22%, transparent);color:var(--pine);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;margin-bottom:18px;padding-bottom:14px;display:flex}.neighborhood-control{position:relative}.neighborhood-line{flex-wrap:wrap;align-items:center;column-gap:6px;margin:0;font-size:.875rem;line-height:1.35;display:flex}.neighborhood-line>span:first-child{color:var(--muted);flex-basis:100%;font-size:.8125rem}.neighborhood-line strong{font-weight:700}.neighborhood-change{min-height:44px;color:inherit;padding-inline:4px;font-size:.875rem;font-weight:700}.world-choices{z-index:7;border:1px solid color-mix(in srgb, var(--pine) 35%, transparent);background:var(--world-background,#f5f3ec);border-radius:10px;gap:4px;width:min(320px,100vw - 32px);padding:6px;display:grid;position:absolute;top:calc(100% + 2px);left:0;box-shadow:0 10px 28px #102a2840}.world-choices[hidden]{display:none}.world-choices button{min-height:56px;color:var(--pine);text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;grid-template-rows:auto auto;grid-template-columns:48px minmax(0,1fr);align-items:center;column-gap:10px;padding:4px 10px 4px 4px;display:grid}.world-choices img{object-fit:contain;grid-row:1/3;width:48px;height:48px}.world-choices .location-place{align-self:end;font-size:.9rem;font-weight:700}.world-choices .location-region{align-self:start;font-size:.78rem}.world-choices button:hover{background:color-mix(in srgb, var(--pine) 8%, transparent)}.world-choices [aria-pressed=true]{background:var(--pine);color:#fff9e1}.step-action{z-index:4;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--world-background,#f5f3ec) 26%);justify-items:center;gap:4px;margin:18px -16px 0;display:grid;position:sticky;bottom:0}.step-next{width:100%;max-width:420px;min-height:52px;box-shadow:0 3px 0 color-mix(in srgb, var(--pine) 70%, #000);font-size:1.02rem}.step-action .join-hint{text-align:center;color:var(--muted);margin:0}:is(html:has(body[data-scene=character]),html:has(body[data-scene=wardrobe])){scroll-padding-bottom:100px}.door-welcome{align-items:center;gap:16px;margin-bottom:18px;display:flex}.picker-column{min-width:0}.door-frame{--door-scale:.4;width:calc(290px * var(--door-scale));height:calc(400px * var(--door-scale));flex:none}.door-frame .door-scene{width:290px;max-width:none;height:400px;transform:scale(var(--door-scale));transform-origin:0 0;order:0;place-self:start;margin:0}.door-frame .door-wreath{top:58px}.door-frame .door-knock{top:200px}.door-welcome-copy{min-width:0}.door-welcome-title{color:var(--pine);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.3rem,5.6vw,1.8rem);line-height:1.15}.door-welcome-caption,.door-welcome-hosts{color:var(--muted);margin:4px 0 0;font-size:.875rem}.picker-heading h1{margin:0 0 4px;font-size:clamp(2rem,8vw,2.6rem)}.picker-heading p{color:var(--muted);margin:0 0 16px}.picker-group h2{margin:0 0 8px;font-size:1.2rem}.picker-group+.picker-group{margin-top:20px}.picker-hint{color:var(--muted);margin:-2px 0 10px;font-size:.875rem}.character-page .cast-shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.character-page .cast-choice{text-align:center;background:color-mix(in srgb, var(--world-background,#f5f3ec) 60%, #fff);border:1px solid color-mix(in srgb, var(--pine) 22%, transparent);border-radius:10px;flex-direction:column;align-items:stretch;gap:6px;min-height:0;padding:6px 6px 10px;display:flex;position:relative}.character-page .cast-choice:hover{border-color:color-mix(in srgb, var(--pine) 50%, transparent)}.character-page .cast-choice[aria-pressed=true]{border-color:var(--pine);box-shadow:inset 0 0 0 2px var(--pine);background:color-mix(in srgb, var(--pine) 8%, #fff)}.character-page .cast-portrait{aspect-ratio:176/144;background:color-mix(in srgb, var(--pine) 10%, #e9ece1);border-radius:7px;width:100%;height:auto}.character-page .cast-name{font-size:.8125rem;line-height:1.25}.character-page .cast-name small{margin-top:3px;font-size:.75rem;line-height:1.3;display:none}.cast-check{background:var(--pine);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:6px;right:6px}.cast-check .icon{stroke-width:2.6px;width:14px;height:14px}.crew-toggle{border-color:color-mix(in srgb, var(--pine) 45%, transparent);min-height:46px;color:var(--pine);gap:8px;margin-top:14px}.crew-toggle .icon{width:20px;height:20px}.crew-toggle+.picker-group{margin-top:20px}.wardrobe-page.practice-page{padding-top:18px}.wardrobe-page .page-intro{margin-bottom:16px;display:block}.wardrobe-page .page-intro h1{margin-bottom:4px;font-size:clamp(2rem,8vw,2.6rem)}.wardrobe-page .page-intro p{color:var(--muted);font-size:.95rem}.stage-change{z-index:2;color:#fff4d9;background:#173d35e6;border:1px solid #f8efcf66;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:6px 14px 6px 10px;font-size:.8125rem;font-weight:700;display:inline-flex;position:absolute;top:12px;left:12px}.stage-change .icon{width:17px;height:17px}.stage-change:hover{background:#173d35}.wardrobe-page .join-button{margin-top:0}body[data-style=felt] .character-stage{--focus-ring:#f3d78b}body[data-scene=character] .toast,body[data-scene=wardrobe] .toast{bottom:calc(108px + env(safe-area-inset-bottom))}.site-footer,.site-footer .text-button,.jingle-button,.character-plaque span,.wardrobe-categories small,.wardrobe-categories strong,.wardrobe-choice,.swatch-row>span,.cast-name,.cast-name small,.join-hint,.nickname-label span,.group-page>.fine-print{font-size:.75rem}.site-footer{color:#465c50}.site-footer .text-button{min-height:44px}.cast-name{overflow-wrap:anywhere}.cast-portrait .portrait-only{object-fit:contain}.jingle-button{background:#173d35;min-height:44px}.character-plaque span{color:#3c523a}.color-swatch:focus-visible{outline-color:var(--focus-ring)}.panel-heading .icon-button{flex:0 0 44px;width:44px;height:44px}.color-swatch{flex-shrink:0;width:44px;height:44px}.swatch-row{flex-wrap:wrap}.wardrobe-choice>span:not(.choice-art):not(.choice-check):not(.choice-lock){overflow-wrap:anywhere}.stage-column{top:calc(var(--world-nav-height,52px) + 8px)}.glasses-toggle{min-height:44px}.nickname-label{font-size:.875rem}.rsvp-page{padding-top:22px}.rsvp-page h1{margin-bottom:6px;font-size:clamp(2.2rem,9vw,3rem)}.rsvp-intro{color:var(--muted);margin-bottom:4px}.status-note{color:#4a3410;background:#f1e3bd;border-radius:8px;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;font-size:.9rem;display:flex}.status-note .icon{width:20px;height:20px;margin-top:1px}.receipt-page .status-note{margin:4px 0 18px}.receipt-lead{color:var(--muted);margin-bottom:18px}.receipt-actions{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:22px;display:flex}#rsvp-form textarea::placeholder,#rsvp-form input::placeholder{color:#5f7166}.form-grid-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.rsvp-mode legend{float:left;width:100%;margin-bottom:8px}.rsvp-mode .radio-row{clear:both}.dialog-toolbar{z-index:2;background:var(--house-cream);border-bottom:1px solid #ded7bc;justify-content:flex-end;padding-inline:12px;display:flex;position:sticky;inset-block-start:0}.dialog-toolbar .close-dialog{min-height:44px;padding-inline:6px;font-weight:700;text-decoration:none;position:static}.dialog-toolbar .icon{width:18px;height:18px}#party-dialog{--focus-ring:var(--house-pine)}.dialog-toolbar .close-dialog:focus-visible{outline-offset:-4px}dialog{background:var(--house-cream);max-width:520px}.dialog-inner{padding:14px 12px 16px}.invite-card-dialog{box-shadow:none;padding:28px 22px 22px}.invite-card-dialog .invite-title{font-size:clamp(2rem,8vw,2.6rem)}.invite-card-dialog .invite-actions{grid-template-columns:1fr;max-width:320px}.calendar-action{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.receipt-page .calendar-action .button{flex:180px;max-width:260px}@media (min-width:600px){.character-page .cast-shelf{grid-template-columns:repeat(4,minmax(0,1fr))}.character-page .cast-name small{display:block}.door-frame{--door-scale:.5}.practice-page{padding-inline:24px}.step-action{margin-inline:-24px;padding-inline:24px}}@media (min-width:761px){.practice-page{padding-top:26px}.door-frame{--door-scale:.55}.practice-page .step-action{background:var(--world-background,#f5f3ec);border-radius:14px 14px 0 0;width:-moz-fit-content;width:fit-content;margin:18px 0 0 auto;padding:10px 12px 12px;box-shadow:0 -6px 18px -10px #102a2840}.practice-page .step-next{width:auto;min-width:280px}.character-page .cast-shelf{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}}@media (min-width:1000px){.character-layout{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:40px;display:grid}.character-layout .door-welcome{top:calc(var(--world-nav-height,52px) + 20px);flex-direction:column;align-items:flex-start;gap:14px;margin:0;position:sticky}.character-layout .door-frame{--door-scale:.8}.home-page{background-attachment:fixed;grid-template-columns:minmax(400px,470px) minmax(0,1fr);align-items:center;gap:40px;max-width:1240px;min-height:100dvh;margin:0 auto;padding:30px 40px 24px;display:grid}body[data-scene=houses] main{background:inherit}body[data-scene=houses]{background:radial-gradient(circle at 12% 8%, #ffffff30 0 1.5px, transparent 2px) 0 0 / 97px 89px, radial-gradient(circle at 70% 40%, #ffffff26 0 1px, transparent 1.5px) 0 0 / 61px 73px, radial-gradient(circle at 40% 80%, #f3d78b30 0 1.5px, transparent 2px) 0 0 / 131px 117px, var(--house-pine)}.home-page{background:0 0}.home-card{padding:30px 0 0}.invite-card{padding:38px 30px 22px}.invite-title{font-size:2.85rem}.invite-actions{grid-template-columns:1fr 1fr;max-width:none}.practice-section{padding:0;overflow:visible}.practice-section:after{display:none}.practice-section h2{font-size:2.5rem}.practice-section .houses-street{gap:14px;padding-bottom:0}.practice-section .house-choice{padding:10px 8px 16px}body[data-scene=houses] .site-footer{color:var(--house-sage);background:0 0;justify-content:center;max-width:1240px;margin:0 auto;padding:4px 40px 18px}}@media (min-width:1000px) and (max-height:760px){.home-page{padding-block:22px 8px}.invite-card{padding-block:34px 18px}.invite-facts{gap:6px;margin-top:12px;padding-top:14px}.invite-actions{margin-top:14px}.invite-summary{margin-top:12px}.step-progress-home{margin:16px auto 10px}}@media (min-width:761px) and (max-width:1060px){.jingle-button{min-width:44px}.jingle-button span{display:none}.wardrobe-choices.prop-choices,.wardrobe-choices{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:761px) and (max-height:780px){.wardrobe-page{padding-top:22px}.character-stage{height:420px}.hero-character{aspect-ratio:254/365;width:auto;height:338px}}@media (max-width:760px){.jingle-button{min-width:44px;padding:4px 10px}.jingle-button span{display:none}.page-intro>.text-button{min-height:44px}.stage-column{top:var(--world-nav-height,52px)}.jingle-button{inset-block-start:9px;inset-inline-end:9px}.stage-change{background:#173d35d9;gap:4px;padding:4px 12px 4px 8px;font-size:.75rem;top:8px;left:8px}.stage-change .icon{width:15px;height:15px}.wardrobe-panel .nickname-input{font-size:16px}.wardrobe-choice{min-width:0}.prop-choices .wardrobe-choice{font-size:.75rem}.step-header{gap:6px 16px;margin-bottom:14px;padding-bottom:10px}.step-progress:not(.step-progress-home) .step-dots{--dot:20px;--dot-gap:14px}}@media (max-width:390px){.app-bar-link{padding-inline:4px;font-size:.85rem}.app-bar .button-small{padding-inline:14px}.app-bar-mark{width:30px;height:30px}}@media (max-width:360px){.wardrobe-choices.prop-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.home-card{padding-inline:12px}.invite-card{padding-inline:18px}.practice-section{padding-inline:10px}.practice-section .houses-street{gap:6px}.house-cta{padding-inline:8px}.character-page .cast-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px) and (max-height:639px){.stage-column{z-index:3;background:var(--world-background);position:sticky}.character-stage{height:min(165px,29dvh)}.hero-character{aspect-ratio:254/365;width:auto;height:calc(min(165px,29dvh) - 28px);bottom:18px}.character-plaque{min-width:0;padding:1px 9px;inset-block-end:4px}.character-plaque strong{font-size:.83rem}.character-plaque span{display:none}.stage-tools{padding-block:1px}.jingle-button{min-height:44px;padding:4px 10px}.jingle-button span{display:none}.stage-change{justify-content:center;width:44px;padding:0}.stage-change span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.jingle-button .icon{width:20px;height:20px}html:has(body[data-scene=wardrobe]){scroll-padding-top:calc(var(--world-nav-height,52px) + min(165px, 29dvh) + 54px)}.step-next{min-height:48px}.step-action{padding-block:8px calc(8px + env(safe-area-inset-bottom))}}@media (max-width:760px) and (max-height:600px){.character-page .step-header{margin-bottom:10px;padding-bottom:6px}.door-welcome{margin-bottom:10px}.door-frame{--door-scale:.3}.picker-heading h1{font-size:1.75rem}.picker-heading p{margin-bottom:8px}}@media (max-width:760px) and (max-height:479px){.stage-column,.step-action{position:static}:is(html:has(body[data-scene=wardrobe]),html:has(body[data-scene=character])){scroll-padding-top:calc(var(--world-nav-height,52px) + 16px);scroll-padding-bottom:0}}@media (prefers-reduced-motion:reduce){body[data-scene=houses] .app-bar,body[data-scene=houses] .app-bar.is-shown{transition:none}}}@layer finale{.finale-page{padding-block:24px 32px}.finale-page h1{margin-bottom:4px}.finale-picture{background:var(--pine);border-radius:12px;width:min(100%,790px,max(420px,150dvh - 450px));margin:18px auto 0;overflow:hidden;box-shadow:0 8px 28px #173d3529}.finale-scene{width:100%;height:auto;display:block}.finale-bob{transform-box:fill-box}.finale-scene.is-singing .finale-bob{animation:carol-bob .7s ease-in-out 3 var(--bob-delay,0s)}.finale-tools,.finale-music,.finale-photo-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.finale-tools{margin-top:16px}.finale-tools .button{min-height:44px;padding:6px 12px;font-size:.875rem}.finale-tools button[aria-pressed=true]{background:var(--pine);color:#fff9e8}.finale-photo-links{gap:18px}.finale-photo-links[hidden]{display:none}.finale-status{margin-top:8px;font-size:.875rem}.finale-page{max-width:1040px;padding-top:18px}.finale-page .step-header{text-align:left}.finale-eyebrow{margin-bottom:2px;font-family:Georgia,Times New Roman,serif;font-size:1rem;font-style:italic}.finale-lead{color:var(--muted)}.finale-now-playing{background:color-mix(in srgb, var(--pine) 9%, transparent);border-radius:999px;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px auto 0;padding:4px 14px;font-size:.9rem;display:inline-flex}.finale-now-playing .finale-track{font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700}.finale-now-playing.is-playing{background:var(--pine);color:#fff9e8}.practice-prompt{--focus-ring:#f3d78b;background:var(--pine);color:#fff6dc;border-radius:12px;justify-items:center;gap:12px;max-width:520px;margin:22px auto 0;padding:20px 22px;display:grid;position:relative}.practice-prompt:before{content:"";border:1.5px dashed color-mix(in srgb, var(--gold) 65%, transparent);pointer-events:none;border-radius:8px;position:absolute;inset:7px}.practice-prompt p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;line-height:1.35}.practice-prompt .button{color:#1d2b25;min-width:200px}.finale-links{flex-wrap:wrap;justify-content:center;gap:0 20px;margin-top:10px;display:flex}.finale-links .text-button{min-height:44px;font-size:.875rem}@media (max-width:760px){.finale-page{padding:16px 16px 28px}.finale-links{flex-direction:column;align-items:center}.finale-page h1{font-size:clamp(1.9rem,8vw,2.65rem)}.finale-picture{margin-top:12px}}@media (prefers-reduced-motion:reduce){.finale-scene.is-singing .finale-bob{animation:none}}}
