:root { --black:#000; --ink:#171717; --gold:#d8c894; --gold-dark:#766329; --cream:#f5f3ed; --white:#fff; --muted:#646464; --line:#dedbd2; --error:#8d241f; --max:1180px; --shadow:0 24px 70px rgba(0,0,0,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font:400 16px/1.6 Inter,Arial,sans-serif; }
img { display:block; max-width:100%; }
a { color:inherit; }
.container { width:min(var(--max),calc(100% - 48px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; top:-60px; left:16px; padding:10px 16px; color:#fff; background:#000; }
.skip-link:focus { top:16px; }
h1,h2,h3,.brand strong,legend { margin:0; font-family:"Barlow Condensed",Impact,sans-serif; line-height:.98; text-transform:uppercase; letter-spacing:-.02em; }
h1 { font-size:clamp(3.5rem,7vw,7rem); }
h2 { font-size:clamp(2.8rem,5vw,5rem); }
h3 { font-size:2rem; }
p { margin:0 0 1.25rem; }
.eyebrow { margin-bottom:15px; color:#fff; font-size:.76rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow.gold,.tag { color:var(--gold-dark); }
.tag { margin-bottom:12px; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.site-header { position:absolute; z-index:10; width:100%; color:#fff; }
.site-header.compact { position:relative; background:#000; }
.nav-wrap { display:flex; min-height:104px; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; }
.brand img { width:64px; height:64px; object-fit:contain; }
.brand strong { display:block; color:#fff; font-size:1.55rem; letter-spacing:.02em; }
.brand small { display:block; margin-top:2px; font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.back-link { font-size:.76rem; font-weight:800; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; }
.back-link span { color:var(--gold); }
.page-hero { min-height:620px; padding:190px 0 95px; color:#fff; background:radial-gradient(circle at 82% 30%,#302c20 0,transparent 28%),linear-gradient(115deg,#000 35%,#171717); }
.page-hero h1 { color:#fff; }
.page-hero h1 em { color:var(--gold); font-style:normal; }
.page-hero .container>p:last-child { max-width:660px; margin-top:28px; color:#ddd8cc; font-size:clamp(1.05rem,1.8vw,1.3rem); }
.section { padding:105px 0; }
.camps-section { background:var(--cream); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:52px; }
.section-heading>p { max-width:440px; color:var(--muted); }
.camp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.camp-card { display:flex; min-height:510px; flex-direction:column; background:#fff; border:1px solid var(--line); box-shadow:0 9px 30px rgba(0,0,0,.06); }
.camp-card-top { display:flex; justify-content:space-between; padding:20px 25px; color:#fff; background:#000; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.camp-card-top strong { color:var(--gold); font-size:1rem; }
.camp-card-body { display:flex; flex:1; flex-direction:column; padding:32px 28px; }
.camp-card-body h3 { margin-bottom:18px; }
.camp-card-body>p:not(.tag) { color:var(--muted); white-space:pre-line; }
.camp-card dl { margin:10px 0 28px; border-top:1px solid var(--line); }
.camp-card dl div { display:grid; grid-template-columns:85px 1fr; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); }
dt { color:var(--muted); font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
dd { margin:0; font-size:.84rem; font-weight:600; }
.camp-card .button { width:100%; margin-top:auto; }
.button { display:inline-flex; min-height:54px; align-items:center; justify-content:center; padding:0 24px; border:2px solid var(--gold); color:#000; background:var(--gold); font:800 .76rem Inter,sans-serif; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:.2s; }
.button:hover { transform:translateY(-2px); background:#ece2c1; }
.button:disabled,.button.disabled { opacity:.52; cursor:not-allowed; transform:none; }
.button-dark { color:#fff; background:#000; border-color:#000; }
.status-card { grid-column:1/-1; padding:55px; border:2px dashed #c9c4b9; text-align:center; }
.status-card p { margin:10px 0 0; color:var(--muted); }
.help-band { padding:72px 0; background:var(--gold); }
.help-band .container { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.help-band .eyebrow { color:#594b22; }
.site-footer { padding:28px 0; color:#bdb8ae; background:#000; }
.footer-row { display:flex; justify-content:space-between; gap:20px; }
.footer-row p { margin:0; font-size:.76rem; }
.registration-main { padding:80px 0 100px; background:var(--cream); }
.registration-layout { display:grid; grid-template-columns:minmax(250px,360px) minmax(0,1fr); gap:55px; align-items:start; }
.registration-aside { position:sticky; bottom:35px; align-self:start; }
.registration-aside h1 { font-size:clamp(3rem,5vw,5rem); overflow-wrap:anywhere; }
.registration-aside dl { margin:32px 0; border-top:1px solid #c9c4b9; }
.registration-aside dl div { padding:13px 0; border-bottom:1px solid #c9c4b9; }
.registration-aside dd { margin-top:3px; font-size:.9rem; }
.steps { display:flex; margin:32px 0 0; padding:0; gap:8px; list-style:none; }
.steps li { color:#777; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.steps li+li::before { margin-right:8px; color:#aaa; content:"—"; }
.form-panel { padding:clamp(25px,5vw,62px); background:#fff; box-shadow:var(--shadow); }
form[hidden] { display:none; }
fieldset { min-width:0; margin:0 0 55px; padding:0; border:0; }
legend { width:100%; margin-bottom:27px; padding-bottom:16px; border-bottom:2px solid #000; font-size:1.65rem; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
label { display:flex; flex-direction:column; gap:7px; font-size:.75rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
label.full { grid-column:1/-1; }
.field-grid label { display:block; }
.field-grid input,.field-grid select,.field-grid textarea { margin-top:7px; }
input,textarea,select { width:100%; border:1px solid #bbb7ad; border-radius:0; padding:13px 14px; color:#171717; background:#fff; font:400 1rem/1.4 Inter,sans-serif; text-transform:none; }
input:focus,textarea:focus,select:focus,.waiver-document:focus { outline:3px solid rgba(216,200,148,.55); outline-offset:1px; border-color:#675925; }
.required { color:#9b211b; }
.camp-description { margin-top:25px; color:var(--muted); font-size:.84rem; }
.waiver-meta { display:flex; justify-content:space-between; gap:20px; margin-bottom:12px; }
.waiver-meta strong { font-size:.9rem; }
.waiver-meta span { color:var(--muted); font-size:.67rem; }
.waiver-document { max-height:400px; overflow:auto; padding:25px; border:1px solid #bbb7ad; background:#fbfaf7; font:400 .86rem/1.75 Inter,sans-serif; white-space:pre-wrap; }
.waiver-documents { display:grid; grid-template-columns:1fr; gap:9px; margin-top:16px; padding:20px; border-left:4px solid var(--gold); background:var(--cream); }
.waiver-documents strong { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.waiver-documents a { color:#29220d; font-size:.85rem; font-weight:700; }
.waiver-documents a span { color:var(--gold-dark); }
.attestation { margin-top:24px; padding:4px 20px 22px; border:1px solid var(--line); background:#fbfaf7; }
.check { display:grid; grid-template-columns:22px 1fr; gap:12px; margin-top:20px; align-items:start; font-size:.77rem; font-weight:600; line-height:1.6; letter-spacing:0; text-transform:none; }
.check input { width:20px; height:20px; margin:2px 0 0; accent-color:#000; }
.signature { margin-top:28px; }
.signature small { color:var(--muted); font-weight:400; letter-spacing:0; text-transform:none; }
.signature input { padding:15px; font-size:1.1rem; }
.signature-disclosure { margin-top:12px; color:var(--muted); font-size:.72rem; }
.submit-row { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-top:26px; border-top:2px solid #000; }
.submit-row span { display:block; color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.submit-row strong { font:800 2rem "Barlow Condensed",sans-serif; }
.secure-note { margin:15px 0 0; color:var(--muted); font-size:.7rem; text-align:right; }
.notice { margin-bottom:25px; padding:16px 18px; border-left:4px solid var(--error); color:#5d1713; background:#f8e8e6; font-size:.86rem; font-weight:600; }
.completion { display:grid; min-height:100vh; place-items:center; padding:30px; background:var(--cream); }
.payment-main { min-height:calc(100vh - 104px); padding:80px 0 100px; background:var(--cream); }
.payment-layout { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr); gap:55px; align-items:start; }
.payment-intro h1 { font-size:clamp(3.5rem,6vw,6rem); }
.payment-intro>p:not(.eyebrow,.payment-help) { margin-top:25px; color:var(--muted); }
.payment-intro .reference { text-align:left; }
.payment-help { color:var(--muted); font-size:.75rem; }
.payment-status { padding:12px 15px; border-left:4px solid var(--gold); background:#fff; color:var(--ink); font-size:.78rem; font-weight:700; }
.payment-widget { min-height:420px; padding:clamp(22px,4vw,45px); background:#fff; box-shadow:var(--shadow); }
.completion-card { width:min(670px,100%); padding:60px; background:#fff; box-shadow:var(--shadow); text-align:center; }
.confetti { position:fixed; inset:0; z-index:10; overflow:hidden; pointer-events:none; }
.confetti i { position:absolute; top:-20px; left:var(--x); width:var(--size); height:calc(var(--size) * 1.7); border-radius:1px; background:var(--color); animation:confetti-fall var(--duration) cubic-bezier(.18,.7,.28,1) var(--delay) forwards; }
@keyframes confetti-fall { to { transform:translate3d(var(--drift),calc(100vh + 40px),0) rotate(var(--turn)); } }
.completion-card img { margin:0 auto 25px; }
.completion-card h1 { font-size:clamp(3.5rem,8vw,6rem); }
.completion-card>p:not(.eyebrow) { max-width:510px; margin:25px auto; color:var(--muted); }
.reference { margin:28px 0; padding:18px; background:var(--cream); }
.reference span { display:block; color:var(--muted); font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.reference strong { display:block; margin-top:5px; font-size:.8rem; overflow-wrap:anywhere; }
@media (max-width:900px) { .camp-grid { grid-template-columns:1fr 1fr; } .registration-layout,.payment-layout { grid-template-columns:1fr; } .registration-aside { position:static; } }
@media (max-width:650px) { .container { width:min(var(--max),calc(100% - 30px)); } .brand img { width:52px; height:52px; } .brand strong { font-size:1.25rem; } .brand small { font-size:.57rem; } .back-link { font-size:.65rem; } .page-hero { min-height:550px; padding-top:170px; } .section { padding:75px 0; } .section-heading,.help-band .container,.footer-row,.submit-row { align-items:flex-start; flex-direction:column; } .camp-grid,.field-grid { grid-template-columns:1fr; } label.full { grid-column:auto; } .form-panel { padding:28px 20px; } .waiver-meta { flex-direction:column; gap:5px; } .submit-row .button { width:100%; } .secure-note { text-align:left; } .completion-card { padding:38px 22px; } }
@media print { .site-header,.registration-aside .steps,.submit-row,.site-footer { display:none; } .registration-main { padding:0; background:#fff; } .registration-layout { display:block; width:100%; } .registration-aside { margin-bottom:25px; } .form-panel { padding:0; box-shadow:none; } .waiver-document { max-height:none; overflow:visible; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } .confetti { display:none; } }
