:root { --ink:#14141a; --night:#191723; --night-2:#24202e; --cream:#f4eddf; --paper:#fbf7ef; --orange:#ff6a1a; --acid:#c7f35a; --muted:#b8b1bd; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--night); color:var(--cream); font-family:Arial, Helvetica, sans-serif; line-height:1.55; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
.shell { width:min(1160px, calc(100% - 48px)); margin-inline:auto; }
.site-header { background:rgba(25,23,35,.94); border-bottom:1px solid rgba(255,255,255,.09); position:relative; z-index:20; }
.nav-wrap { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:900; letter-spacing:2.2px; line-height:1.1; }
.brand small { display:block; font-size:8px; letter-spacing:3.8px; color:var(--orange); margin-top:4px; }
.brand-mark { width:37px; height:43px; display:grid; place-items:center; background:var(--orange); color:var(--night); font:900 25px Georgia,serif; clip-path:polygon(50% 0,100% 18%,91% 84%,50% 100%,9% 84%,0 18%); }
nav { display:flex; gap:32px; align-items:center; font-size:13px; color:#d5ced9; }
nav a:hover, nav a:focus-visible { color:var(--orange); }
.nav-cta { border:1px solid rgba(255,255,255,.3); padding:11px 16px; font-size:12px; font-weight:800; letter-spacing:.7px; }
.nav-cta span { color:var(--orange); margin-left:8px; }
.hero { min-height:650px; display:grid; grid-template-columns:1.07fr .93fr; align-items:center; gap:30px; padding-block:84px 80px; position:relative; }
.hero:before { content:""; position:absolute; width:360px; height:360px; left:-220px; top:50px; border-radius:50%; border:1px solid rgba(255,106,26,.16); box-shadow:0 0 0 60px rgba(255,106,26,.025),0 0 0 120px rgba(255,106,26,.02); }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 22px; text-transform:uppercase; letter-spacing:3px; font-size:10px; font-weight:900; color:var(--orange); }
.eyebrow span { width:24px; height:2px; background:currentColor; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:26px; color:var(--paper); font:800 clamp(52px,6.3vw,88px)/.91 Georgia,serif; letter-spacing:-4.5px; }
h1 em { color:var(--orange); font-weight:400; }
.hero-intro { color:#c6bfca; width:min(530px,100%); font-size:17px; margin-bottom:34px; }
.button-row { display:flex; gap:14px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 21px; font-size:12px; font-weight:900; letter-spacing:.5px; border:1px solid transparent; transition:.2s ease; cursor:pointer; }
.button span { margin-left:18px; }
.button-primary { background:var(--orange); color:#16131d; }
.button-primary:hover { background:#ff8545; transform:translateY(-2px); }
.button-ghost { border-color:rgba(255,255,255,.35); color:var(--paper); }
.button-ghost:hover { border-color:var(--orange); }
.microcopy { color:#817a88; font-size:10px; letter-spacing:.5px; margin:20px 0 0; }
.hero-scene { height:490px; position:relative; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.22); background:radial-gradient(ellipse at 70% 30%,rgba(255,106,26,.12),transparent 45%); }
.moon { position:absolute; width:178px; height:178px; right:24px; top:12px; border-radius:50%; background:var(--acid); color:#1d1a25; display:grid; place-content:center; text-align:center; box-shadow:0 0 50px rgba(199,243,90,.12); }
.moon span { font:800 68px/.8 Georgia,serif; letter-spacing:-4px; }.moon small { font-size:10px; letter-spacing:5px; margin-top:12px; font-weight:900; }
.bat { position:absolute; font:80px/1 Georgia; transform:rotate(18deg); color:#0d0c12; }.bat-one{top:80px;left:30px}.bat-two{top:170px;right:190px;font-size:45px;transform:rotate(-18deg)}
.house { position:absolute; bottom:0; background:#0f0e14; border:1px solid #332e3d; }.house:before { content:""; position:absolute; left:-16px; right:-16px; top:-45px; height:60px; background:#0f0e14; clip-path:polygon(50% 0,100% 78%,100% 100%,0 100%,0 78%); }
.house b { position:absolute; width:29px; height:36px; top:58px; background:var(--orange); box-shadow:0 0 20px rgba(255,106,26,.25); }.house b:nth-of-type(1){left:24px}.house b:nth-of-type(2){right:24px}.house i{position:absolute;bottom:0;left:50%;width:42px;height:70px;background:#27222f;transform:translateX(-50%)}
.house-back{width:150px;height:220px;left:22px;opacity:.6}.house-front{width:218px;height:285px;right:38px}.house strong{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:var(--acid);z-index:2}
.pumpkin { position:absolute; bottom:3px; width:64px; height:52px; border-radius:46% 46% 42% 42%; background:var(--orange); color:#1b1720; display:grid; place-items:center; font:800 28px/1 Georgia; box-shadow:inset 12px 0 rgba(0,0,0,.08),inset -12px 0 rgba(0,0,0,.08); }.pumpkin:before{content:"";position:absolute;width:7px;height:13px;background:#52702f;top:-10px}.pumpkin-one{left:205px}.pumpkin-two{right:0;transform:scale(.72);transform-origin:bottom}
.choice-section { background:var(--cream); color:var(--ink); padding:100px 0 110px; }
.eyebrow.dark { color:#9c3a0c; }
.split-heading { display:flex; justify-content:space-between; gap:50px; align-items:flex-end; margin-bottom:46px; }
.split-heading h2,.memory-inner h2 { margin:0; font:800 clamp(39px,4.5vw,60px)/.98 Georgia,serif; letter-spacing:-2.5px; }.split-heading>p { width:390px; color:#5e5960; margin-bottom:5px; }
.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.choice-card { min-height:365px; padding:38px 42px; display:grid; grid-template-columns:170px 1fr; align-items:end; gap:18px; position:relative; overflow:hidden; }
.child-card { background:var(--orange); }.house-card { background:var(--night-2); color:var(--paper); }
.card-number { position:absolute; top:28px; left:34px; font-size:10px; letter-spacing:2px; font-weight:bold; opacity:.55; }
.card-icon { width:130px; height:150px; display:grid; place-items:center; align-self:center; font-size:34px; }
.ghost-icon { background:var(--paper); color:#18151e; border-radius:65px 65px 18px 18px; clip-path:polygon(0 0,100% 0,100% 100%,82% 85%,65% 100%,49% 85%,32% 100%,16% 85%,0 100%); }.ghost-icon:after{content:"  ●";white-space:pre;color:#18151e}
.door-icon { background:var(--acid); color:var(--night); border:12px solid #17151d; outline:1px solid #6a6570; font-size:27px; }
.card-label { text-transform:uppercase; letter-spacing:2px; font-size:9px; font-weight:900; margin-bottom:10px; opacity:.7; }
.choice-card h3 { font:800 27px/1.05 Georgia,serif; margin-bottom:15px; letter-spacing:-.7px; }.choice-card p:not(.card-label){font-size:13px;opacity:.76;margin-bottom:23px}.text-link{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:900;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link b{margin-left:12px}
.how-section { padding:110px 0; display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; }.how-title h2 { font:800 clamp(40px,4vw,58px)/1 Georgia,serif; letter-spacing:-2.5px; }.step{display:grid;grid-template-columns:50px 1fr;gap:20px;padding:25px 0;border-top:1px solid rgba(255,255,255,.14)}.step:last-child{border-bottom:1px solid rgba(255,255,255,.14)}.step>span{color:var(--orange);font:italic 20px Georgia,serif}.step h3{margin-bottom:7px;font:700 23px Georgia,serif}.step p{margin:0;color:#a8a1ad;font-size:13px;max-width:480px}
.memory-banner { background:var(--acid); color:var(--ink); padding:80px 0; }.memory-inner{display:grid;grid-template-columns:1.25fr .75fr;gap:100px;align-items:end}.memory-inner>div:last-child p{color:#4c5140;margin-bottom:24px}.button-dark{background:var(--ink);color:white}
.site-footer{padding:75px 0 30px;background:#111015}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:80px}.footer-grid>div:first-child p{max-width:360px;color:#837d89;font-size:13px;margin-top:24px}.footer-grid h3{color:var(--orange);font-size:10px;text-transform:uppercase;letter-spacing:2px;margin-bottom:18px}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:12px;color:#aaa3af}.footer-grid>div:not(:first-child) p{margin:8px 0 0}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.09);padding-top:24px;margin-top:60px;color:#67616c;font-size:9px;letter-spacing:.5px}
.page-hero{padding:85px 0 65px;border-bottom:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}.page-hero:after{content:attr(data-mark);position:absolute;right:6%;top:-25px;color:rgba(255,106,26,.07);font:900 220px/1 Georgia,serif}.page-hero h1{font-size:clamp(50px,6vw,78px);max-width:850px}.page-hero p:not(.eyebrow){color:#b4adba;max-width:650px;font-size:16px}.form-section{background:var(--cream);color:var(--ink);padding:85px 0 110px}.form-layout{display:grid;grid-template-columns:.68fr 1.32fr;gap:90px}.form-aside h2{font:800 38px/1 Georgia,serif;letter-spacing:-1.5px}.form-aside p{color:#645f66;font-size:13px}.note-box{border-top:3px solid var(--orange);background:#ebe1d2;padding:22px;margin-top:30px;font-size:12px}.registration-form{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:1.2px}.field input,.field select,.field textarea{width:100%;border:1px solid #cfc4b5;background:var(--paper);padding:13px 14px;color:var(--ink);border-radius:0;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);box-shadow:0 0 0 2px rgba(255,106,26,.15)}.field textarea{min-height:105px;resize:vertical}.checkbox-field{grid-column:1/-1;display:flex;gap:11px;align-items:flex-start;color:#5f5961;font-size:12px}.checkbox-field input{margin-top:4px;accent-color:var(--orange)}.form-actions{grid-column:1/-1;display:flex;align-items:center;gap:20px}.form-status{font-size:12px;color:#75401e;margin:0}.form-status.success{color:#2f611f}.form-status.error{color:#9c1f1f}
.gallery-section{background:var(--cream);color:var(--ink);padding:70px 0 110px}.gallery-intro{display:flex;justify-content:space-between;gap:50px;margin-bottom:40px}.gallery-intro h2{font:800 42px/1 Georgia,serif;letter-spacing:-1.5px}.gallery-intro p{max-width:430px;color:#665f68}.photo-grid{display:grid;grid-template-columns:1.25fr .75fr 1fr;grid-auto-rows:245px;gap:12px}.photo{position:relative;overflow:hidden;background:#2a2530}.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.05);transition:.35s}.photo:hover img{transform:scale(1.035);filter:saturate(1)}.photo:nth-child(1){grid-row:span 2}.photo:nth-child(4){grid-column:span 2}.photo:after{content:attr(data-caption);position:absolute;left:15px;bottom:12px;background:rgba(20,20,26,.78);color:white;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:7px 9px}.photo-note{margin-top:24px;color:#736c74;font-size:11px}
.sponsors-section{background:var(--cream);color:var(--ink);padding:90px 0 110px}.sponsors-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:48px}.sponsors-heading h2{font:800 clamp(42px,5vw,64px)/.95 Georgia,serif;letter-spacing:-2.5px;margin-bottom:0}.sponsors-heading>p{max-width:470px;color:#625c65;margin-bottom:4px}.sponsor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:270px;gap:14px;align-items:stretch}.sponsor-tile{box-sizing:border-box;width:100%;height:270px;margin:0;background:#fff;display:grid;grid-template-rows:145px minmax(0,1fr);align-items:center;justify-items:center;padding:34px 28px 28px;border-bottom:4px solid transparent;overflow:hidden;transition:.2s ease}.sponsor-tile:hover{border-bottom-color:var(--orange);transform:translateY(-3px)}.sponsor-tile img,.sponsor-tile.large img,.sponsor-tile.wide img{display:block;width:100%;height:115px;max-width:285px;max-height:none;object-fit:contain;object-position:center}.sponsor-tile figcaption{align-self:end;margin-top:18px;color:#6e6870;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:1.3px;text-align:center;line-height:1.4}.sponsor-cta{padding:90px 0;background:var(--night-2)}.sponsor-cta-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:100px;align-items:end}.sponsor-cta h2{font:800 clamp(40px,4.6vw,62px)/.96 Georgia,serif;letter-spacing:-2.5px;margin:0}.sponsor-cta-inner>div:last-child p{color:#b4adba;margin-bottom:24px;max-width:440px}
@media (max-width:850px){.shell{width:min(calc(100% - 32px),1160px)}nav{display:none}.nav-cta{display:none}.hero{grid-template-columns:1fr;padding-top:60px}.hero-scene{height:390px}.choice-grid,.how-section,.memory-inner,.form-layout,.sponsor-cta-inner{grid-template-columns:1fr}.split-heading,.sponsors-heading{display:block}.split-heading>p,.sponsors-heading>p{width:auto;margin-top:20px}.choice-card{grid-template-columns:120px 1fr;padding:32px 28px}.card-icon{width:105px;height:125px}.how-section{gap:45px}.memory-inner{gap:35px}.form-layout{gap:50px}.photo-grid{grid-template-columns:1fr 1fr}.photo:nth-child(1){grid-row:span 1}.photo:nth-child(4){grid-column:span 1}.sponsor-grid{grid-template-columns:1fr 1fr}.sponsor-cta-inner{gap:35px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media (max-width:560px){.nav-wrap{min-height:70px}.hero{padding-block:54px}.hero h1{font-size:48px;letter-spacing:-3px}.hero-scene{height:330px}.moon{width:125px;height:125px}.moon span{font-size:50px}.house-front{width:160px;height:220px}.house-back{height:175px}.choice-section,.how-section,.form-section,.gallery-section,.sponsors-section{padding-block:70px}.choice-grid{grid-template-columns:1fr}.choice-card{min-height:330px;grid-template-columns:95px 1fr;padding:32px 24px}.card-icon{width:82px;height:105px}.registration-form{grid-template-columns:1fr}.field,.field.full{grid-column:1}.form-actions{align-items:flex-start;flex-direction:column}.photo-grid{grid-template-columns:1fr;grid-auto-rows:250px}.gallery-intro{display:block}.sponsor-grid{grid-template-columns:1fr;grid-auto-rows:245px}.sponsor-tile{height:245px;grid-template-rows:125px minmax(0,1fr)}.sponsor-tile img,.sponsor-tile.large img,.sponsor-tile.wide img{height:100px;max-width:260px}.footer-grid{grid-template-columns:1fr;gap:36px}.footer-grid>div:first-child{grid-column:1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.children-list-new{grid-column:1/-1;display:grid;gap:14px}.child-row{margin:0;border:1px solid #cfc4b5;background:#eee5d8;padding:18px}.child-row legend{padding:0 8px;font:700 17px Georgia,serif}.child-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.remove-child,.add-child{border:0;background:transparent;color:#8e3109;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.7px;cursor:pointer}.remove-child{margin-top:13px;padding:0;border-bottom:1px solid currentColor}.add-child{border:1px solid #a99e90;padding:12px 15px;justify-self:start}.add-child:disabled{opacity:.5;cursor:not-allowed}
@media (max-width:560px){.child-fields{grid-template-columns:1fr}}
.photo-grid .photo{border:0;padding:0;cursor:zoom-in;text-align:inherit;font:inherit}.photo-grid .photo:focus-visible{outline:4px solid var(--orange);outline-offset:3px}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(10,9,14,.96);display:grid;grid-template-columns:90px minmax(0,1fr) 90px;grid-template-rows:70px minmax(0,1fr);align-items:center;color:var(--paper);padding:0 24px 24px}.lightbox-top{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;color:#aaa3af;font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.lightbox-close{background:transparent;border:0;color:var(--paper);font-size:11px;text-transform:uppercase;letter-spacing:1px;cursor:pointer;padding:12px}.lightbox-close b{color:var(--orange);font-size:26px;line-height:0;margin-left:8px;vertical-align:-3px}.lightbox-nav{width:58px;height:58px;border:1px solid rgba(255,255,255,.35);background:rgba(25,23,35,.75);color:var(--paper);font-size:24px;cursor:pointer;justify-self:center}.lightbox-nav:hover,.lightbox-nav:focus-visible{background:var(--orange);color:var(--ink);border-color:var(--orange)}.lightbox-figure{margin:0;width:100%;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:14px}.lightbox-figure img{display:block;max-width:100%;max-height:calc(100vh - 135px);width:auto;height:auto;object-fit:contain;align-self:center}.lightbox-figure figcaption{font:italic 15px Georgia,serif;color:#c7c0ca;text-align:center}.lightbox-prev{grid-column:1;grid-row:2}.lightbox-figure{grid-column:2;grid-row:2}.lightbox-next{grid-column:3;grid-row:2}
@media (max-width:650px){.lightbox{grid-template-columns:60px minmax(0,1fr) 60px;padding:0 8px 14px}.lightbox-nav{width:46px;height:46px}.lightbox-figure img{max-height:calc(100vh - 150px)}.lightbox-figure figcaption{font-size:13px}}
.video-section{margin-top:85px;padding-top:65px;border-top:1px solid #cfc4b5}.video-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:30px}.video-heading h2{font:800 clamp(36px,4vw,52px)/1 Georgia,serif;letter-spacing:-1.8px;margin:0}.video-heading>p{max-width:420px;color:#665f68;margin-bottom:4px}.video-frame{background:#14121a;padding:12px;box-shadow:10px 10px 0 var(--orange)}.video-frame video{display:block;width:100%;max-height:680px;aspect-ratio:16/9;background:#09080c;object-fit:contain}
@media (max-width:650px){.video-section{margin-top:60px;padding-top:48px}.video-heading{display:block}.video-heading>p{margin-top:18px}.video-frame{padding:7px;box-shadow:6px 6px 0 var(--orange)}}
