:root{--bg:#0E0E10;--bg2:#17171B;--card:#1C1C21;--line:#2D2D35;--pink:#E5339A;--pink2:#FF5DB1;--green:#3FB86B;--cream:#F6EBDD;--mut:#B9AFA4;--gold:#F2C14E;--fd:'Bricolage Grotesque',system-ui,sans-serif;--fb:'DM Sans',system-ui,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;background:var(--bg);color:var(--cream);font:17px/1.6 var(--fb);overflow-x:hidden}
img{max-width:100%;display:block}a{color:var(--pink2)}h1,h2,h3{font-family:var(--fd);margin:0;line-height:1.02;font-weight:800}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--pink);color:#000;padding:8px 14px;border-radius:999px;z-index:9}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.muted{color:var(--mut)}.small{font-size:.86rem}.eyebrow{color:var(--green);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin:0 0 12px}
em{font-style:normal;color:var(--pink)}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(16px,4vw,48px);background:rgba(14,14,16,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-family:var(--fd);font-weight:800;font-size:1.35rem;color:var(--cream);text-decoration:none;letter-spacing:-.01em}.brand span,h1 span{color:var(--pink)}
.top nav{display:flex;gap:6px;align-items:center}.top nav a{color:var(--cream);text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:500}.top nav a:hover{background:var(--card)}
.pill,.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font-weight:700;text-decoration:none;cursor:pointer;font:700 1rem var(--fb);padding:10px 20px;border:0;transition:transform .15s,background .15s}
.pill{background:var(--pink);color:var(--on-pink,#160611)}.pill:hover{background:var(--pink2);transform:translateY(-2px)}
.ghost{background:transparent;color:var(--green);border:2px solid var(--green)}.ghost:hover{background:rgba(63,184,107,.12);transform:translateY(-2px)}
.top nav a.pill{color:var(--on-pink,#160611);padding:9px 18px}.top nav a.pill:hover{background:var(--pink2)}
.big{padding:14px 26px;font-size:1.05rem}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(20px,4vw,60px);align-items:center;padding:clamp(28px,6vw,80px) clamp(16px,4vw,48px) clamp(40px,6vw,90px);max-width:1280px;margin:0 auto}
.hero h1{font-size:clamp(3.2rem,7.4vw,7rem);overflow-wrap:anywhere;letter-spacing:-.035em;margin:0 0 18px}
.tag{font-family:var(--fd);font-weight:500;font-size:clamp(1.25rem,2.4vw,1.8rem);line-height:1.2;margin:0 0 16px;max-width:30ch}
.intro{color:var(--mut);max-width:52ch;margin:0 0 28px}.ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-art{position:relative;aspect-ratio:1/1;perspective:900px}
.frame{position:absolute;inset:9%;border-radius:46% 54% 50% 50%/52% 46% 54% 48%;overflow:hidden;background:#000;box-shadow:0 0 0 6px var(--pink),0 0 0 14px var(--bg),0 0 0 17px var(--green),0 30px 80px rgba(229,51,154,.35);transform-style:preserve-3d;transition:transform .25s ease-out;animation:blob 14s ease-in-out infinite}
.frame img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
@keyframes blob{50%{border-radius:54% 46% 46% 54%/46% 54% 46% 54%}}
.hib{position:absolute;filter:drop-shadow(0 10px 24px rgba(0,0,0,.5))}
.h1{width:30%;top:-4%;left:-6%;animation:spin 26s linear infinite}.h2{width:20%;bottom:2%;right:-3%;animation:spin 20s linear infinite reverse}.h3{width:13%;top:8%;right:4%;animation:float 7s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-16px) rotate(20deg)}}
.band{background:var(--pink);color:var(--on-pink,#160611);overflow:hidden;transform:rotate(-1.5deg);margin:0 -20px;padding:14px 0;border-block:4px solid var(--green)}
.track{display:flex;gap:34px;white-space:nowrap;width:max-content;animation:marq 32s linear infinite;font-family:var(--fd);font-weight:800;font-size:clamp(1.2rem,2.6vw,1.9rem)}
.track span::after{content:"✿";margin-left:34px;color:#fff}
@keyframes marq{to{transform:translateX(-50%)}}
.sec{padding:clamp(56px,8vw,110px) clamp(16px,4vw,48px);max-width:1280px;margin:0 auto}.sec.alt{max-width:none;background:var(--bg2)}.sec.alt>*{max-width:1184px;margin-left:auto;margin-right:auto}
.sec h2{font-size:clamp(2.2rem,5.6vw,4.2rem);letter-spacing:-.025em;margin-bottom:28px;max-width:18ch}
.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:start}.prose p{margin:0 0 16px;font-size:1.08rem}
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.person{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:14px;transition:transform .2s}.person:hover{transform:translateY(-4px) rotate(-1deg)}
.person .ph{aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,var(--pink),#7A1347);display:grid;place-items:center;margin-bottom:12px}.person .ph img{width:100%;height:100%;object-fit:cover}
.person .ph svg{width:55%}.person b{font-family:var(--fd);font-size:1.3rem;display:block}.person span{color:var(--green);font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}.chips span{border:2px solid var(--line);border-radius:999px;padding:9px 18px;font-weight:700;background:var(--card)}
.chips span:nth-child(3n+1){border-color:var(--pink)}.chips span:nth-child(3n+2){border-color:var(--green)}.chips span:nth-child(3n){border-color:var(--gold)}
.videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-bottom:24px}.videos iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:18px;background:#000}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.gallery img{aspect-ratio:1/1;object-fit:cover;border-radius:16px;width:100%}
.cal-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:start;margin-top:10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:clamp(16px,2.4vw,26px)}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.cal-head b{font-family:var(--fd);font-size:1.4rem}
.nav-btn{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);background:transparent;color:var(--cream);font-size:1.4rem;cursor:pointer}.nav-btn:hover{border-color:var(--pink)}.nav-btn:disabled{opacity:.3;cursor:default}
.dow,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dow span{text-align:center;font-size:.75rem;color:var(--mut);font-weight:700}
.grid{margin-top:8px}.day{aspect-ratio:1/1;border-radius:12px;border:0;font:700 .95rem var(--fb);display:grid;place-items:center;background:#0A0A0C;color:#4A4650;position:relative}
.day.off{background:repeating-linear-gradient(135deg,#0A0A0C 0 6px,#111115 6px 12px)}.day.empty{background:transparent}
.day.free{background:rgba(229,51,154,.14);color:var(--cream);box-shadow:inset 0 0 0 2px var(--pink);cursor:pointer}.day.free:hover{background:rgba(229,51,154,.3)}
.day.sel{background:var(--pink);color:var(--on-pink,#160611)}.day.today::after{content:"";position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--green)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0 6px;font-size:.85rem;color:var(--mut)}.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:6px}
.lf{box-shadow:inset 0 0 0 2px var(--pink);background:rgba(229,51,154,.14)}.lb{background:repeating-linear-gradient(135deg,#0A0A0C 0 3px,#22222a 3px 6px)}.ls{background:var(--pink)}
.form{display:grid;gap:14px}.form h3{font-size:1.8rem}.form label{display:block;font-weight:700;font-size:.92rem}.form label>input,.form label>select,.form label>textarea{display:block;margin-top:6px}.form small{font-weight:400;color:var(--mut);margin-left:4px}.two{align-items:end}
.form input,.form select,.form textarea{width:100%;background:#0E0E10;color:var(--cream);border:2px solid var(--line);border-radius:14px;padding:12px 14px;font:1rem var(--fb)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--green);outline:0}.form select:disabled{opacity:.5}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.picked{border-radius:14px;padding:12px 14px;background:rgba(63,184,107,.1);border:2px dashed var(--green);font-weight:500}
.picked.on{border-style:solid;background:rgba(63,184,107,.16)}.err{color:var(--pink2);font-weight:700;min-height:1.2em;margin:0}
.done{text-align:center;padding:30px 10px;display:grid;gap:14px;justify-items:center}.done svg{width:90px}.done h3{font-size:2rem}
.testi{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.testi blockquote{margin:0;background:var(--card);border-radius:22px;padding:22px;border-left:6px solid var(--pink);font-size:1.08rem}.testi cite{display:block;margin-top:10px;color:var(--green);font-style:normal;font-weight:700}
.foot{padding:40px clamp(16px,4vw,48px);border-top:1px solid var(--line);display:grid;gap:12px;justify-items:center;text-align:center}.social{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.social a{color:var(--cream);border:2px solid var(--line);border-radius:999px;padding:8px 16px;text-decoration:none;font-weight:700}.social a:hover{border-color:var(--pink)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}.reveal.in{opacity:1;transform:none}
.hero-text{min-width:0}@media(max-width:900px){.hero h1{font-size:clamp(3.2rem,15vw,6rem)}.hero,.about-grid,.cal-wrap{grid-template-columns:1fr}.hero-art{max-width:460px;width:100%;margin:0 auto;order:-1}.top nav a:not(.pill){display:none}}
@media(max-width:520px){.two{grid-template-columns:1fr}.day{border-radius:9px;font-size:.85rem}.dow,.grid{gap:4px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}.reveal{opacity:1;transform:none}}
html.calm *{animation:none!important;transition:none!important}html.calm .reveal{opacity:1;transform:none}
