:root{--pink:#ff3d8b;--deep:#c4175f;--black:#000;--white:#fff;--soft:#fff0f6;--ink:#1a1a1a}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--white);background:var(--black);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
h1,h2,.brand span{font-family:"Fraunces",Georgia,"Times New Roman",serif}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--white);outline-offset:3px}

/* Curtains */
.curtain{position:fixed;top:0;bottom:0;width:11vw;z-index:1;pointer-events:none;
background:repeating-linear-gradient(90deg,var(--deep) 0,var(--pink) 28%,var(--deep) 56%,var(--deep) 60%);
background-size:34px 100%;box-shadow:0 0 40px rgba(0,0,0,.6)}
.curtain.left{left:0;transform-origin:left top;border-right:4px solid #000;animation:sway 7s ease-in-out infinite}
.curtain.right{right:0;transform-origin:right top;border-left:4px solid #000;animation:sway 7s ease-in-out infinite reverse}
@keyframes sway{0%,100%{transform:scaleX(1) skewX(0)}50%{transform:scaleX(1.12) skewX(1.5deg)}}

/* Header */
header{position:relative;z-index:3;background:var(--white);padding:.6rem 1rem .6rem calc(11vw + 1rem);border-bottom:6px solid var(--pink)}
.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--black)}
.brand img{height:56px;width:auto;display:block}
.brand span{font-size:1.25rem;font-weight:700}
nav{float:right;padding-right:calc(11vw + .5rem);padding-top:.9rem}
nav a{color:var(--black);font-weight:600;text-decoration:none;border-bottom:3px solid var(--pink)}

/* Stage */
main{position:relative;z-index:2;flex:1;padding:0 calc(11vw + 1.25rem)}
.hero{text-align:center;padding:4rem 0 3rem;max-width:44rem;margin:0 auto}
.since{display:inline-block;background:var(--pink);color:var(--black);font-weight:700;padding:.3rem 1rem;border-radius:99px;margin-bottom:1.5rem}
h1{font-size:clamp(2.1rem,6vw,3.8rem);line-height:1.1;font-weight:800}
.hero p{font-size:1.15rem;margin-top:1.25rem;color:#f3f3f3}
.notify{margin-top:2rem}
.notify label{display:block;font-weight:700;margin-bottom:.6rem}
.row{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
input[type=email]{flex:1 1 15rem;min-width:0;padding:.85rem 1rem;font-size:1rem;border:3px solid var(--pink);border-radius:8px;background:var(--white);color:var(--black)}
button{padding:.85rem 1.4rem;font-size:1rem;font-weight:700;border:3px solid var(--pink);border-radius:8px;background:var(--pink);color:var(--black);cursor:pointer}
button:hover{background:var(--white);border-color:var(--white)}
.small{font-size:.85rem;margin-top:.6rem;color:#ccc}

/* Panels */
.panel{max-width:44rem;margin:0 auto 2.5rem;background:var(--white);color:var(--ink);padding:2rem;border-radius:4px;border-left:8px solid var(--pink)}
.panel h2{font-size:1.7rem;margin-bottom:.75rem;color:var(--black)}
.panel p+p{margin-top:.8rem}
.panel a{color:var(--deep);font-weight:600}
.btn{display:inline-block;margin-top:1rem;padding:.6rem 1.2rem;background:var(--black);color:var(--white)!important;text-decoration:none;border-radius:8px}
address{font-style:normal}
address p{margin-bottom:.5rem}

footer{position:relative;z-index:3;text-align:center;padding:1.2rem 1rem;background:var(--black);border-top:4px solid var(--pink);font-size:.9rem;color:#ddd}

.page{padding-top:2.5rem}

@media (max-width:640px){
.curtain{width:6vw;background-size:18px 100%}
header{padding-left:calc(6vw + .75rem)}
nav{float:none;padding:.3rem 0 0}
.brand img{height:44px}.brand span{font-size:1.05rem}
main{padding:0 calc(6vw + .9rem)}
.hero{padding-top:2.5rem}
.panel{padding:1.25rem}
}
@media (prefers-reduced-motion:reduce){.curtain{animation:none}}
