@font-face{font-family:Onest;src:url(/assets/fonts/Onest-wght.ttf) format("truetype");font-weight:100 900;font-display:swap}
:root{--saf:#F2A81D;--saf2:#E89A0C;--cream:#FFF1D0;--ink:#2A1A12;--coral:#D9432A;--plum:#4A1E4C;--r:28px;--f:Onest,"Segoe UI","Noto Sans",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--saf);color:var(--ink);font:400 1.06rem/1.6 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;background-image:radial-gradient(var(--ink) .6px,transparent .7px);background-size:5px 5px}
a{color:inherit;text-decoration-color:var(--plum);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--plum);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--f);line-height:1.08;letter-spacing:-.025em;margin:0 0 .5em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--ink);color:var(--cream);padding:.6em 1em;border-radius:99px}.skip:focus{left:12px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.narrow{max-width:820px}
.center{text-align:center}
/* nav */
.navwrap{position:sticky;top:12px;z-index:40;display:flex;justify-content:center;padding:12px 12px 0}
.bubble{position:relative;display:flex;align-items:center;gap:10px;background:var(--cream);border:2px solid var(--ink);border-radius:999px;padding:6px 8px 6px 14px;box-shadow:6px 6px 0 var(--ink);max-width:1000px;width:100%}
.bubble::after{content:"";position:absolute;left:46px;bottom:-12px;width:18px;height:18px;background:var(--cream);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg)}
.brand{display:flex}.wm{height:38px;width:auto}
.wm-dot{transform-origin:20px 22px;animation:wob 4s ease-in-out infinite}
@keyframes wob{50%{transform:translate(3px,-2px) scale(1.15)}}
.navlist{display:flex;align-items:center;gap:2px;list-style:none;margin:0 0 0 auto;padding:0}
.navlist>li>a,.dd-b{display:inline-flex;gap:6px;align-items:center;font:600 .95rem var(--f);padding:.55em .95em;border-radius:99px;background:none;border:0;color:var(--ink);cursor:pointer;text-decoration:none}
.navlist>li>a:hover,.dd-b:hover,[aria-current=page]{background:var(--saf)}
.nav-cta{background:var(--ink)!important;color:var(--cream)!important}
.lang{border:2px solid var(--ink)!important;font-size:.85rem!important}
.dd{position:relative}
.dd-m{position:absolute;top:calc(100% + 10px);left:0;min-width:230px;list-style:none;margin:0;padding:8px;background:var(--cream);border:2px solid var(--ink);border-radius:20px;box-shadow:5px 5px 0 var(--ink);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s}
.dd-b[aria-expanded=true]+.dd-m{opacity:1;visibility:visible;transform:none}
.dd-b span{transition:transform .2s}.dd-b[aria-expanded=true] span{transform:rotate(180deg)}
.dd-m a{display:block;padding:.55em .8em;border-radius:12px;text-decoration:none;font-weight:500}.dd-m a:hover{background:var(--saf)}
.burger{display:none;margin-left:auto;font:700 .95rem var(--f);background:var(--ink);color:var(--cream);border:0;border-radius:99px;padding:.6em 1.1em;cursor:pointer}
/* buttons */
.btn{display:inline-block;font:700 1rem var(--f);background:var(--coral);color:#FFF6E6;border:2px solid var(--ink);border-radius:99px;padding:.85em 1.5em;text-decoration:none;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn.ghost{background:var(--cream);color:var(--ink)}
.btn.sm{padding:.6em 1.1em;font-size:.92rem;background:var(--cream);color:var(--ink)}
.btn:disabled{opacity:.6}
.link{font-weight:700}
.linkbtn{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}
/* hero stage */
.stage{position:relative;min-height:min(92dvh,860px);display:grid;place-items:center;text-align:center;padding:60px 18px 80px;overflow:hidden}
.ring{position:absolute;inset:6% 2% 4%}
.table{position:absolute;inset:14% 6%;width:88%;height:72%}
.seat{position:absolute;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);border-radius:50%;background:var(--c);border:2px solid var(--ink);animation:bob 6s ease-in-out var(--d) infinite}
.seat::after{content:"";position:absolute;left:50%;bottom:-38%;width:130%;height:55%;transform:translateX(-50%);border-radius:50% 50% 12px 12px;background:inherit;border:2px solid var(--ink)}
@keyframes bob{50%{transform:translateY(-10px)}}
.stage-in{position:relative;max-width:900px}
.kicker{font:600 .82rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase;display:inline-block;background:var(--ink);color:var(--saf);padding:.55em .9em;border-radius:99px}
.mega{font-size:clamp(2.5rem,7.4vw,6rem);font-weight:850;letter-spacing:-.045em;line-height:.98;margin:.35em 0}
.mega em{font-style:normal;color:var(--cream);background:var(--plum);padding:0 .18em;border-radius:.3em;display:inline-block;transform:rotate(-2deg)}
.lede{font-size:clamp(1.05rem,1.6vw,1.28rem);max-width:640px;margin:0 auto 1.4em}
.row-c{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* photo */
.photo-band{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(20px,4vw,48px);align-items:end;margin-top:-30px}
.photo{margin:0}
.ph-frame{width:100%;overflow:hidden;border:2px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 4px;box-shadow:8px 8px 0 var(--ink);background:var(--cream)}
.ph-frame img{display:block;width:100%;height:100%;object-fit:cover}
.photo.tall{max-width:420px;margin-top:24px}
.photo.tall .ph-frame{border-radius:200px 200px var(--r) var(--r)}
figcaption{font-size:.8rem;margin-top:.8em;line-height:1.45}
.photo-note{font-size:clamp(1.15rem,2vw,1.45rem);font-weight:600;line-height:1.35;border-left:6px solid var(--coral);padding-left:18px}
/* sections */
.band{padding:clamp(56px,8vw,110px) clamp(18px,4vw,40px)}
.h2{font-size:clamp(1.9rem,4vw,3.1rem);font-weight:800;text-align:center;margin-bottom:1em}
.notes{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.note{background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:26px 28px;position:relative}
.notes .note:nth-child(odd){transform:rotate(-.6deg)}.notes .note:nth-child(even){transform:rotate(.6deg) translateY(18px)}
.note-n{position:absolute;top:-16px;right:22px;background:var(--plum);color:var(--cream);font:700 .85rem ui-monospace,monospace;padding:.35em .7em;border-radius:99px}
.note h3{font-size:1.4rem}
.split-c{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,5vw,64px);align-items:start;padding-block:40px}
.quote p{font-size:clamp(1.4rem,2.6vw,2.1rem);font-weight:700;line-height:1.22;letter-spacing:-.02em;margin:0}
.quote p::before{content:"“";display:block;font-size:4em;line-height:.6;color:var(--coral)}
.facts{margin:0;display:grid;gap:12px}
.facts div{background:var(--ink);color:var(--cream);border-radius:20px;padding:16px 20px}
.facts dt{font:600 .75rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--saf)}.facts dd{margin:.3em 0 0}
.path{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:a;position:relative}
.path::before{content:"";position:absolute;top:30px;left:10%;right:10%;border-top:3px dashed var(--ink)}
.path li{text-align:center;padding:0 10px;position:relative}
.path b{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 12px;border-radius:50%;background:var(--cream);border:2px solid var(--ink);font-size:1.3rem}
.path li:nth-child(3) b{background:var(--coral);color:var(--cream)}
.path h3{font-size:1.1rem}.path p{font-size:.93rem;margin:0}
.invite{margin:40px auto 90px;max-width:900px;text-align:center;background:var(--ink);color:var(--cream);border-radius:200px 200px var(--r) var(--r);padding:70px 30px 50px}
.invite h2{font-size:clamp(1.7rem,3.5vw,2.6rem)}
.ticks{list-style:none;padding:0;margin:.4em 0}.ticks li{padding-left:1.6em;position:relative;margin:.35em 0}
.ticks li::before{content:"";position:absolute;left:0;top:.45em;width:.8em;height:.8em;border-radius:50%;background:var(--coral);border:2px solid var(--ink)}
/* page head */
.phead{position:relative;text-align:center;padding:70px 20px 90px;margin-bottom:50px;background:var(--saf2);border-bottom:2px solid var(--ink);border-radius:0 0 50% 50%/0 0 70px 70px;overflow:hidden}
.phead h1{font-size:clamp(2.4rem,7vw,5.4rem);font-weight:850;letter-spacing:-.045em;position:relative;margin-top:.4em}
.phead .lede{position:relative}
.pnum{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(12rem,30vw,24rem);font-weight:900;line-height:1;color:transparent;-webkit-text-stroke:2px rgba(42,26,18,.18);pointer-events:none}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px}
.chips a{background:var(--cream);border:2px solid var(--ink);border-radius:99px;padding:.45em 1em;text-decoration:none;font-weight:600;font-size:.93rem}
.chips a:hover{background:var(--ink);color:var(--cream)}
.svc{display:grid;grid-template-columns:120px 1.3fr 1fr;gap:30px;padding:36px 0;border-top:2px solid var(--ink);scroll-margin-top:110px}
.svc-n{font-size:4.5rem;font-weight:900;line-height:.9;color:var(--plum)}
.svc h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.svc-d{background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:20px 22px}
.svc.alt .svc-d{background:var(--ink);color:var(--cream)}
.svc-d h3{font:600 .8rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em}
.ladder{list-style:none;padding:0;margin:40px auto;max-width:860px}
.ladder li{display:flex;gap:22px;align-items:flex-start;margin-bottom:16px}
.ladder li:nth-child(even){margin-left:clamp(0px,8vw,90px)}
.ladder span{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ink);color:var(--saf);font-weight:800;font-size:1.2rem}
.ladder div{background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:16px 22px;flex:1}
.ladder p{margin:0}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:40px 0 80px}
.table-wrap{overflow-x:auto;border:2px solid var(--ink);border-radius:var(--r);background:var(--cream);margin-bottom:70px}
.grid{width:100%;border-collapse:collapse;min-width:680px}
.grid th,.grid td{text-align:left;vertical-align:top;padding:16px 18px;border-bottom:1px solid rgba(42,26,18,.2)}
.grid thead th{background:var(--ink);color:var(--saf);font:600 .8rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}
.notes+*{margin-top:70px}
.guide{background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:0;margin-bottom:34px;overflow:hidden;scroll-margin-top:110px}
.guide header{background:var(--ink);color:var(--cream);padding:24px 28px}.guide header span{font:600 .8rem ui-monospace,monospace;color:var(--saf);text-transform:uppercase;letter-spacing:.1em}
.guide h2{margin:.3em 0 0;font-size:clamp(1.4rem,2.6vw,2rem)}
.guide ol{margin:0;padding:24px 28px 24px 56px}.guide li{margin:.5em 0}.guide li::marker{font-weight:800;color:var(--coral)}
.gloss{display:grid;grid-template-columns:max-content 1fr;gap:10px 22px;margin:0}.gloss dt{font-weight:800}.gloss dd{margin:0}
.faq{max-width:860px;margin:0 auto 40px}
.faq details{background:var(--cream);border:2px solid var(--ink);border-radius:22px;margin-bottom:12px}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;transition:transform .2s}.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 22px 18px;margin:0}
.big{font-size:2.2rem;font-weight:850;line-height:1.05;margin:.2em 0}
.tpl{background:var(--saf);border-radius:14px;padding:14px;font:500 .9rem ui-monospace,monospace;white-space:pre-wrap}
/* planner */
.planner{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:30px 0}
.planner fieldset{background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:20px 22px;margin:0}
.planner legend{font-weight:800;background:var(--ink);color:var(--saf);padding:.3em .9em;border-radius:99px}
.planner input[type=range]{width:75%;accent-color:var(--coral)}
.planner output{font:800 1.6rem var(--f);margin-left:12px}
.pill{display:inline-block;margin:5px 4px}.pill input{position:absolute;opacity:0}
.pill span{display:inline-block;border:2px solid var(--ink);border-radius:99px;padding:.4em .9em;cursor:pointer;font-weight:600;font-size:.93rem}
.pill input:checked+span{background:var(--plum);color:var(--cream)}
.pill input:focus-visible+span{outline:3px solid var(--plum);outline-offset:2px}
select,input,textarea{font:inherit;color:var(--ink);background:#FFF8E7;border:2px solid var(--ink);border-radius:14px;padding:.7em .9em;width:100%}
.plan-out{background:var(--ink);color:var(--cream);border-radius:var(--r);padding:28px;margin-bottom:24px}
.po-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px dashed var(--saf);padding-bottom:16px;margin-bottom:16px}
.po-head strong{font-size:1.8rem;color:var(--saf)}
.meter{flex:1;min-width:120px;height:12px;border-radius:99px;background:rgba(255,241,208,.2);position:relative;overflow:hidden}
.meter::after{content:"";position:absolute;inset:0;background:var(--coral);transform-origin:left;transform:scaleX(var(--v));transition:transform .4s}
.po-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}.po-cols ol{padding-left:1.2em}.po-cols li{margin-bottom:.7em}
.plan-out h3{color:var(--saf);font-size:1.1rem}
/* contact */
.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;margin-bottom:90px}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);padding:28px;box-shadow:8px 8px 0 var(--ink)}
.fld label{display:block;font-weight:700;margin-bottom:6px}.req{font-weight:400;font-size:.85em}
.wide{grid-column:1/-1}
.chk{display:flex;gap:12px;align-items:flex-start}.chk input{width:22px;height:22px;flex:none;accent-color:var(--coral)}.chk label{font-weight:500}
[aria-invalid=true]{border-color:var(--coral);box-shadow:0 0 0 3px rgba(217,67,42,.25)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status:empty{display:none}.status{border-radius:16px;padding:14px 16px;font-weight:600;background:var(--saf)}
.status.ok{background:#CFE3B8;border:2px solid var(--ink)}.status.err{background:#F7C7B8;border:2px solid var(--coral)}
.side{display:grid;gap:22px;align-content:start}
.mapph{position:relative;aspect-ratio:5/3;border:2px dashed var(--ink);border-radius:20px;background:repeating-linear-gradient(45deg,#FFE7AE 0 12px,var(--cream) 12px 24px);display:grid;place-items:center;text-align:center;overflow:hidden;margin:12px 0}
.mapph svg{position:absolute;inset:0;width:100%;height:100%}
.mapph span{position:relative;background:var(--ink);color:var(--cream);font-size:.85rem;padding:.5em .9em;border-radius:12px;max-width:85%}
.small{font-size:.88rem}
.pol{border-top:2px solid var(--ink);padding:22px 0}.pol h2{font-size:1.4rem;display:flex;gap:14px;align-items:center}
.pol h2 span{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--plum);color:var(--cream);font-size:1rem}
/* footer */
.foot{background:var(--ink);color:var(--cream);margin-top:60px;position:relative;padding:90px 0 30px;-webkit-mask:radial-gradient(40px at 50% 0,#0000 98%,#000) 50% 0/80px 100%;mask:radial-gradient(40px at 50% 0,#0000 98%,#000) 50% 0/80px 100%}
.foot-in{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.foot-big{font-size:clamp(4rem,17vw,14rem);font-weight:900;letter-spacing:-.06em;line-height:.8;color:transparent;-webkit-text-stroke:2px var(--saf);margin-bottom:40px}
.fcols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px}
.fcols h2{font:600 .8rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--saf)}
.fcols ul{list-style:none;padding:0;margin:0;columns:2}.fcols li{margin:.25em 0}
.fcols a{color:var(--cream);text-decoration-color:var(--saf)}
.ftag{font-size:1.3rem;font-weight:700;color:var(--saf)}
.credits{font-size:.78rem;opacity:.75;margin-top:40px;border-top:1px solid rgba(255,241,208,.2);padding-top:18px}
/* cookie */
.cookie{position:fixed;left:16px;bottom:16px;z-index:60;max-width:440px;background:var(--cream);border:2px solid var(--ink);border-radius:24px;padding:18px 20px;box-shadow:6px 6px 0 var(--ink)}
.cookie p{margin:0 0 12px;font-size:.93rem}.cookie-b{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cookie[hidden]{display:none}
/* reveal */
.js-rv .rv{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .7s cubic-bezier(.2,.7,.2,1.2),transform .7s cubic-bezier(.2,.7,.2,1.2)}
.js-rv .rv.in{opacity:1;transform:none}
.js-rv .notes .note.rv.in:nth-child(odd){transform:rotate(-.6deg)}.js-rv .notes .note.rv.in:nth-child(even){transform:rotate(.6deg) translateY(18px)}
@media (max-width:900px){
 .burger{display:block}.navlist{display:none;position:absolute;top:calc(100% + 12px);left:0;right:0;flex-direction:column;align-items:stretch;background:var(--cream);border:2px solid var(--ink);border-radius:24px;padding:12px;box-shadow:6px 6px 0 var(--ink);max-height:80dvh;overflow:auto}
 .navlist.open{display:flex}.dd-m{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;display:none;padding:0 0 0 12px}.dd-b[aria-expanded=true]+.dd-m{display:block}
 .bubble::after{display:none}
 .photo-band,.split-c,.contact-grid,.cols2,.planner,.po-cols,.fcols{grid-template-columns:1fr}
 .svc{grid-template-columns:1fr;gap:12px}.svc-n{font-size:3rem}
 .path{grid-template-columns:1fr;gap:18px}.path::before{display:none}
 .photo-band{margin-top:0}
}
@media (max-width:640px){
 .notes,.cform{grid-template-columns:1fr}.notes .note{transform:none!important}
 .seat{--s:30px!important}.ring{opacity:.55}
 .gloss{grid-template-columns:1fr}.cookie{right:16px;max-width:none}.cookie-b{grid-template-columns:1fr}
 .fcols ul{columns:1}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* planner intrinsic sizing fixes */
.planner,.planner>*,.plan-out,.po-cols,.po-cols>*,.po-head>*,.contact-grid>*,.cform>*,.split-c>*,.photo-band>*{min-width:0}
.planner fieldset{min-width:0;max-width:100%;inline-size:100%}
.planner select,.planner input[type=range]{max-width:100%;min-width:0}
.pill{position:relative;max-width:100%}
.pill input{left:0;top:0;width:1px;height:1px;margin:0}
.pill span{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.plan-out,.plan-out li,.planner,.lede{overflow-wrap:anywhere;word-break:normal}
.plan-out{max-width:100%}
.po-head strong{font-size:clamp(1.3rem,5vw,1.8rem)}
.pg-planner .center .btn{margin:6px 4px;max-width:100%;white-space:normal}
@media (max-width:640px){.plan-out{padding:20px}.planner fieldset{padding:16px}.planner input[type=range]{width:100%}.planner output{display:block;margin:6px 0 0}}
