:root{--ink:#171514;--cream:#f8f6f1;--gold:#ae8951;--muted:#77736d;--line:#e5e0d7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.wrap{max-width:1180px;margin:auto;padding:0 30px}.nav{height:86px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1.35}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.21em;color:var(--muted)}.links{display:flex;align-items:center;gap:32px;font-size:13px}.links a:hover{color:var(--gold)}.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:14px 23px;border-radius:3px;display:inline-flex;gap:20px;align-items:center;justify-content:center;font-weight:600;font-size:13px}.btn:hover{background:#3b3028}.btn.light{background:transparent;color:var(--ink)}.btn.gold{background:var(--gold);border-color:var(--gold);color:white}.hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:590px;background:#ebe7de}.hero-copy{padding:80px 9% 75px 9%;display:flex;flex-direction:column;justify-content:center}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.24em;font-weight:700;color:var(--gold)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.1;letter-spacing:-.035em}h1{font-size:clamp(65px,7.3vw,106px);font-weight:500;margin:25px 0}h2{font-size:clamp(37px,4.4vw,58px);font-weight:500;margin:12px 0 20px}h3{font-size:25px;font-weight:500;margin:12px 0}.hero-copy p{max-width:380px;color:#625d56;margin:0 0 30px}.hero-visual{position:relative;min-height:500px;background:#2a0c36;overflow:hidden}.hero-visual img{width:100%;height:100%;object-fit:cover;display:block}.hero-visual:after{content:'THE ROAD IS CALLING';position:absolute;bottom:25px;left:30px;color:white;letter-spacing:.28em;font-size:10px;font-weight:700}.section{padding:105px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:32px}.section-head p{max-width:440px;color:var(--muted);margin:0}#sections{background:#3b0b52;color:#fff;box-shadow:0 0 0 100vmax #3b0b52;clip-path:inset(0 -100vmax)}#sections .section-head p,#sections .costume p,#sections .note{color:#d9c7e2}#sections .costume{background:#4b1762;border-color:#704282}#sections .costume:hover{border-color:#d4a64c}#sections .costume button{color:#f2c66d}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.costume{background:#fff;border:1px solid var(--line);padding:24px 20px 20px;min-height:240px;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}.costume:hover{transform:translateY(-5px);border-color:var(--gold)}.swatch{width:35px;height:35px;border-radius:50%;margin-bottom:25px;border:1px solid #ddd}.costume h3{font-size:22px;margin:0 0 9px}.costume p{font-size:12px;color:var(--muted);margin:0 0 20px}.costume button{margin-top:auto;border:0;background:none;text-align:left;padding:0;font-size:12px;font-weight:700;color:var(--gold)}.note{font-size:12px;color:var(--muted);margin-top:20px}.dark{background:#1b1918;color:#fff}.dark .section-head p{color:#bcb8b2}.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.price{border:1px solid #4a4541;padding:30px;min-height:200px}.price .tag{color:#b8a999;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.price strong{display:block;font-size:25px;font-weight:600;margin:20px 0 8px}.price p{color:#bcb8b2;font-size:13px;margin:0}.disclaimer{font-size:12px;color:#bcb8b2;margin-top:20px}.register{display:grid;grid-template-columns:.75fr 1.25fr;gap:65px}.register .intro p{color:var(--muted);max-width:340px}.form{background:#fff;border:1px solid var(--line);padding:35px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;font-weight:700}.field input,.field select{width:100%;border:1px solid #dedbd4;background:#fff;border-radius:2px;padding:12px;color:var(--ink);min-height:47px}.field input:focus,.field select:focus{outline:2px solid #d8c5a6;outline-offset:1px}.check{display:flex;align-items:flex-start;gap:10px;font-size:12px;margin:25px 0}.check input{margin-top:5px;accent-color:var(--ink)}.form .btn{width:100%}.hint{font-size:11px;color:var(--muted);margin:12px 0 0}.faq{max-width:780px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}.faq summary:after{content:'+';font-size:20px;font-weight:400}.faq details[open] summary:after{content:'−'}.faq p{color:var(--muted);font-size:13px}.footer{border-top:1px solid var(--line);padding:32px 0;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.footer strong{color:var(--ink)}@media(max-width:900px){.cards{grid-template-columns:repeat(3,1fr)}.register{grid-template-columns:1fr;gap:20px}.hero-copy{padding:55px 8%}.hero{min-height:480px}}@media(max-width:620px){.wrap{padding:0 19px}.nav{height:70px}.links{gap:14px}.links a:not(:last-child){display:none}.links .btn{padding:10px 13px}.hero{grid-template-columns:1fr}.hero-copy{padding:65px 27px}.hero-visual{min-height:400px;height:430px}.section{padding:75px 0}.section-head{display:block}.cards{grid-template-columns:repeat(2,1fr)}.costume{min-height:215px}.prices{grid-template-columns:1fr}.price{min-height:0}.fields{grid-template-columns:1fr}.form{padding:22px}.footer{display:block}}

/* Updated Carnival homepage */
:root{--gold:#b68116;--purple:#4a004e}
.wrap{max-width:1440px}
.nav{height:112px}
.brand-logo{display:flex;align-items:center;gap:18px;letter-spacing:.03em;font-size:17px;line-height:1.04}
.brand-logo img{height:92px;width:92px;object-fit:contain;border-radius:50%}
.brand-name{display:block}
.brand-name small{font-size:11px;color:#94600c;letter-spacing:.34em;margin-top:10px}
.links{gap:27px;font-weight:600}
.nav-cta{margin-left:8px}
.hero{min-height:520px;grid-template-columns:1fr 1fr;background:#f5f0e8}
.hero-copy{padding:48px 7% 48px 8%}
.hero-copy h1{font-style:italic;font-size:clamp(70px,7.5vw,120px);line-height:.84;margin:23px 0 25px;letter-spacing:-.055em}
.hero-copy p{max-width:500px;color:#292521;font-size:17px;line-height:1.55}
.hero-actions{display:flex;gap:15px;flex-wrap:wrap}
.hero-visual{min-height:520px;background:#29002e}
.hero-visual img{object-fit:contain;background:#29002e}
.hero-visual:after{display:none}
.sections-purple{background:linear-gradient(125deg,#420047,#5a005c 50%,#350039);color:white;padding:80px max(30px,calc((100vw - 1380px)/2)) 90px}
.sections-purple .section-head{align-items:center}
.sections-purple .section-head h2{font-size:clamp(38px,4.1vw,61px);margin:0}
.sections-purple .section-head p{color:#fff;font-size:16px;max-width:440px}
.sections-purple .cards{gap:16px}
.sections-purple .costume{border:0;border-radius:10px;min-height:255px;padding:24px;background:#fcf9f4;color:#171514;box-shadow:0 8px 22px #16001926}
.sections-purple .costume h3{font-weight:600}
.sections-purple .costume p{font-size:13px;color:#302d2a}
.sections-purple .costume button{color:#9c6408}
.sections-purple .note{color:#e7d6e7}
@media(max-width:1000px){.brand-logo img{width:70px;height:70px}.brand-logo{font-size:13px}.links{gap:14px}.hero-copy h1{font-size:clamp(62px,7vw,90px)}.sections-purple{padding-left:30px;padding-right:30px}}
@media(max-width:700px){.nav{height:88px}.brand-logo img{width:64px;height:64px}.brand-logo{gap:10px;font-size:11px}.brand-name small{font-size:9px;letter-spacing:.18em}.links a:not(.nav-cta){display:none}.nav-cta{padding:10px 12px;margin:0;font-size:11px}.hero{grid-template-columns:1fr}.hero-copy{padding:65px 26px}.hero-copy h1{font-size:clamp(72px,14vw,105px)}.hero-visual{min-height:450px;height:450px}.sections-purple{padding:65px 20px}.sections-purple .section-head{display:block}.sections-purple .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.sections-purple .costume{min-height:235px}}
@media(max-width:380px){.brand-name{font-size:10px}.brand-logo img{width:55px;height:55px}.sections-purple .cards{grid-template-columns:1fr}}

/* Screenshot-matched homepage refinements */
:root{--cream:#f8f3ed;--gold:#a76b07;--ink:#151515}
body{background:var(--cream)}
.site-header{background:#fbf7f2}
.site-header .nav{height:140px;max-width:1380px;margin:0 auto;padding:0 20px;gap:30px}
.brand-logo{gap:25px;font-size:25px;font-weight:700;letter-spacing:.025em;line-height:.98}
.brand-logo img{width:150px;height:150px;align-self:flex-start;position:relative;z-index:2;border-radius:50%;object-fit:contain}
.brand-name{border-left:1px solid #999;padding-left:25px;white-space:nowrap}
.brand-name small{font-size:16px;letter-spacing:.42em;margin-top:12px;color:#986000}
.links{gap:32px;font-size:16px;white-space:nowrap}
.links>a:not(.btn){padding:12px 0;border-bottom:2px solid transparent}
.links>a.active{color:#9b5e00;border-color:#9b5e00}
.nav-cta{padding:13px 28px;border-radius:4px;font-size:15px}
.hero-shell{width:100%;background:#f7f2eb}
.hero{max-width:none;min-height:486px;height:486px;display:grid;grid-template-columns:46% 54%;background:#f7f2eb;overflow:hidden}
.hero-copy{padding:40px 10px 28px max(7.5vw,calc((100vw - 1320px)/2));position:relative;z-index:1}
.hero-copy .eyebrow{font-size:16px;letter-spacing:.26em;color:#986000;white-space:nowrap}
.hero-copy h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(72px,7.25vw,112px);line-height:.79;letter-spacing:-.075em;font-weight:600;font-style:italic;margin:23px 0 24px}
.hero-copy p{font-size:18px;line-height:1.35;max-width:550px;margin:0 0 22px;color:#191919}
.hero-actions{gap:20px}
.hero-actions .btn{font-size:15px;border-radius:4px;padding:13px 24px}
.hero-actions .btn.gold{background:linear-gradient(#b8861b,#a66a00);border-color:#a66a00}
.hero-actions .btn.light{background:transparent;border-color:#111}
.hero-visual{height:486px;min-height:0;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);background:#26002b}
.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 45%;background:#26002b}
.sections-purple{padding:37px max(5.4vw,calc((100vw - 1380px)/2)) 70px;background:linear-gradient(125deg,#430044,#530050 55%,#3b003e)}
.sections-purple .section-head{margin-bottom:28px;display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}
.sections-purple .section-head h2{font-size:clamp(40px,4vw,61px);white-space:nowrap;font-weight:500;letter-spacing:-.045em}
.sections-purple .section-head p{font-size:17px;line-height:1.35;border-left:2px solid #c29428;padding-left:55px;max-width:600px}
.sections-purple .cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.sections-purple .costume{min-height:245px;background:#fbf7f2;border-radius:10px;padding:18px 24px 20px;box-shadow:0 10px 18px #16001928}
.sections-purple .costume h3{font-size:25px;line-height:1.05;margin:5px 0 10px;letter-spacing:-.035em}
.sections-purple .costume p{font-size:14px;line-height:1.4;margin-bottom:17px}
.sections-purple .costume button{font-size:14px;font-weight:700;color:#995d00}
.section-icon{width:110px;height:70px;object-fit:contain;align-self:center;margin-bottom:4px}
.lion-icon{height:72px;width:80px}
@media(max-width:1150px){.site-header .nav{height:110px}.brand-logo img{width:95px;height:95px;align-self:center}.brand-logo{font-size:17px;gap:13px}.brand-name{padding-left:14px}.brand-name small{font-size:11px}.links{gap:16px;font-size:13px}.nav-cta{padding:11px 15px;font-size:13px}.hero-copy .eyebrow{font-size:12px;white-space:normal}.hero-copy h1{font-size:clamp(67px,7.5vw,95px)}.hero-copy p{font-size:15px}.sections-purple{padding-left:30px;padding-right:30px}.sections-purple .costume{padding:16px}.sections-purple .costume h3{font-size:21px}}
@media(max-width:750px){.site-header .nav{height:88px;padding:0 17px}.brand-logo img{width:65px;height:65px}.brand-logo{font-size:12px}.brand-name small{font-size:9px;letter-spacing:.18em}.links a:not(.nav-cta){display:none}.hero{height:auto;display:flex;flex-direction:column}.hero-copy{padding:56px 25px 40px}.hero-copy h1{font-size:clamp(76px,14vw,110px)}.hero-copy p{font-size:17px}.hero-visual{height:420px;clip-path:none}.hero-visual img{object-fit:contain}.sections-purple{padding:48px 20px 65px}.sections-purple .section-head{display:block}.sections-purple .section-head h2{font-size:clamp(37px,7vw,52px);white-space:normal}.sections-purple .section-head p{border-left:2px solid #c29428;padding-left:18px;margin-top:18px}.sections-purple .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sections-purple .costume{min-height:250px}}
@media(max-width:420px){.brand-logo{font-size:10px;gap:7px}.brand-logo img{width:54px;height:54px}.brand-name{padding-left:8px}.brand-name small{font-size:8px}.nav-cta{padding:9px 10px;font-size:11px}.hero-actions .btn{padding:11px 14px;font-size:12px}.sections-purple .costume{padding:13px;min-height:255px}.sections-purple .costume h3{font-size:19px}.sections-purple .costume p{font-size:12px}}

/* Hero/banner spacing aligned to supplied 1536 × 1024 reference */
@media (min-width: 751px){
  .hero{height:486px;min-height:486px;grid-template-columns:44% 56%;}
  .hero-copy{padding:44px 12px 27px max(8.9vw,calc((100vw - 1260px)/2));justify-content:center;align-items:flex-start;}
  .hero-copy .eyebrow{margin:0 0 9px;line-height:1.25;}
  .hero-copy h1{font-size:clamp(70px,7.05vw,108px);line-height:.79;margin:8px 0 20px;}
  .hero-copy p{margin:0 0 20px;max-width:540px;}
  .hero-actions{gap:26px;}
  .hero-visual{height:486px;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);}
  .hero-visual img{object-position:center 48%;}
}
@media (min-width:751px) and (max-width:1150px){
  .hero-copy{padding-left:7vw;}
  .hero-copy h1{font-size:clamp(65px,7.4vw,85px);}
  .hero-actions{gap:12px;}
}
@media (max-width:750px){
  .hero-copy{padding:54px 25px 42px;}
  .hero-copy .eyebrow{margin-bottom:16px;}
  .hero-copy h1{margin:12px 0 26px;line-height:.86;}
  .hero-copy p{margin-bottom:24px;}
}

/* Scale down the Carnival banner artwork without cropping it. */
@media (min-width:751px) {
  .hero-visual { display:flex; align-items:center; justify-content:center; }
  .hero-visual img { width:84%; height:90%; object-fit:contain; object-position:center; }
}
@media (max-width:750px) {
  .hero-visual { display:flex; align-items:center; justify-content:center; }
  .hero-visual img { width:88%; height:92%; object-fit:contain; object-position:center; }
}

/* Exact reference banner artwork placement: the diagonal and the full
   horizontal composition are included in banner-reference.png. */
@media (min-width:751px){
.hero{grid-template-columns:44% 56%;height:488px;min-height:488px}
.hero-visual{height:488px;min-height:488px;clip-path:none;background:#f7f2eb}
.hero-visual img{width:100%;height:100%;object-fit:fill;object-position:center;background:transparent}
}
@media (max-width:750px){
.hero-visual{clip-path:none;background:#29002e}
.hero-visual img{width:100%;height:100%;object-fit:contain;background:#29002e}
}

/* Header logo breathing room: keep the emblem clear of the viewport top. */
@media (min-width:1151px){
  .site-header .nav{height:140px;}
  .brand-logo img{width:122px;height:122px;align-self:center;}
}

/* White costume section headings */
.sections-purple .costume h3 { color: #fff; }

/* Hide the hero banner artwork on screens narrower than 746px. */
@media (max-width: 745px) {
  .hero-visual { display: none !important; }
}

/* Additional spacing for registration and FAQ sections */
#register { padding-left: 54px; padding-right: 30px; }
#faq { padding-left: 54px; padding-right: 54px; }
@media (max-width: 750px) {
  #register { padding-left: 26px; padding-right: 20px; }
  #faq { padding-left: 26px; padding-right: 26px; }
}
