:root { color-scheme: dark; --charcoal:#202020; --ivory:#f8f5f1; --pink:#e989b4; --watermelon:#df5861; }
* { box-sizing:border-box; }
html { min-width:320px; background:#151515; }
body { margin:0; color:var(--ivory); font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.page-shell { width:calc(100% - 24px); max-width:1660px; min-height:calc(100svh - 24px); margin:12px auto; padding:23px 21px 0; display:flex; flex-direction:column; border-radius:24px; overflow:hidden; background:radial-gradient(ellipse at 54% 54%,#292929 0,var(--charcoal) 70%); box-shadow:0 18px 45px rgba(0,0,0,.12); }
.masthead { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.brand-image { display:block; width:151px; height:auto; flex:none; }
.masthead-note,.eyebrow { display:inline-flex; align-items:center; gap:12px; margin:0; color:var(--ivory); text-transform:uppercase; font-size:9px; font-weight:700; letter-spacing:.21em; white-space:nowrap; }
.rule { display:inline-block; width:31px; height:1px; flex:none; background:var(--pink); }
.masthead-note .rule { width:24px; }
.hero { display:flex; flex:1; flex-direction:column; gap:26px; padding:22px 0 20px; }
.hero-art { display:flex; align-items:center; justify-content:center; min-width:0; overflow:hidden; border:1px solid rgba(248,245,241,.23); border-radius:26px; background:radial-gradient(ellipse at center,#303030 0%,#242424 75%); }
.hero-art img { display:block; width:100%; height:auto; max-width:650px; object-fit:contain; }
.hero-copy { position:relative; min-width:0; }
.eyebrow { margin:0 0 14px; }
.headline-wrap { position:relative; }
h1 { position:relative; z-index:1; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(45px,12vw,64px); line-height:.98; font-weight:400; letter-spacing:-.068em; }
h1 em { color:var(--watermelon); font-weight:400; }
.intro { position:relative; z-index:1; margin:17px 0 18px; color:#f1ece8; font-size:14px; line-height:1.48; letter-spacing:-.012em; }
.desktop-break { display:none; }
.contact-button { display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:49px; padding:0 22px; border:1px solid var(--pink); border-radius:999px; background:var(--pink); color:#191919; text-decoration:none; font-size:14px; font-weight:700; transition:background-color .2s ease,border-color .2s ease,color .2s ease; }
.contact-button:hover { background:#6b7451; border-color:#6b7451; color:var(--ivory); }
.contact-button:focus-visible { background:#191919; color:var(--pink); }
.contact-button:focus-visible,.footer a:focus-visible { outline:2px solid var(--pink); outline-offset:3px; }
.footer { display:flex; flex-direction:column-reverse; gap:4px; padding:13px 0 16px; border-top:1px solid rgba(248,245,241,.38); font-size:13px; line-height:1.35; letter-spacing:.01em; }
.footer a { display:inline-flex; align-items:center; min-height:40px; width:fit-content; color:var(--ivory); text-decoration:none; }
.footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.copyright { color:#ded8d2; }
.contact-dialog { width:min(420px,calc(100% - 32px)); max-height:calc(100% - 32px); padding:32px; border:1px solid rgba(248,245,241,.3); border-radius:24px; background:#252525; color:var(--ivory); box-shadow:0 24px 70px rgba(0,0,0,.55); }
.contact-dialog::backdrop { background:rgba(0,0,0,.72); }
.contact-dialog h2 { margin:15px 0 12px; font:400 42px/.98 Georgia,"Times New Roman",serif; letter-spacing:-.06em; }
.contact-dialog p:not(.eyebrow) { font-size:14px; line-height:1.5; }
.contact-dialog #contact-description { margin:0 0 24px; color:#f1ece8; }
.dialog-close { position:absolute; top:14px; right:18px; border:0; background:none; color:var(--ivory); font:32px/1 Arial,sans-serif; cursor:pointer; }
.contact-option { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin-top:10px; padding:10px 18px; border:1px solid var(--pink); border-radius:999px; background:transparent; color:var(--ivory); font:700 14px/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif; text-align:center; text-decoration:none; cursor:pointer; }
.contact-option:hover { background:#6b7451; border-color:#6b7451; }
.primary-option { background:var(--pink); color:#191919; }
.contact-dialog :focus-visible { outline:2px solid var(--pink); outline-offset:3px; }
.contact-dialog .contact-address { margin:20px 0 0; color:#ded8d2; text-align:center; overflow-wrap:anywhere; }
.contact-dialog .copy-status { min-height:21px; margin:8px 0 0; color:var(--pink); text-align:center; }
@media (max-width:359px) {
 .page-shell { width:calc(100% - 16px); min-height:calc(100svh - 16px); margin:8px auto; padding:18px 16px 0; }
 .brand-image { width:127px; }
 .masthead-note { gap:7px; font-size:8px; letter-spacing:.12em; }
 .masthead-note .rule { width:17px; }
 h1 { font-size:44px; }
 .contact-dialog { padding:26px 20px; }
}
@media (min-width:700px) {
 .page-shell { width:calc(100% - 40px); min-height:calc(100svh - 40px); margin:20px auto; padding:28px 32px 0; border-radius:26px; }
 .brand-image { width:176px; }
 .masthead-note { font-size:10px; }
 .masthead-note .rule { width:42px; }
 .hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; gap:clamp(28px,4vw,80px); padding:18px 0 40px; }
 .hero-art { align-self:stretch; min-height:420px; max-height:760px; border-radius:38px; }
 .hero-art img { max-height:100%; }
 .hero-copy { align-self:center; padding:35px 0 40px; }
 .eyebrow { margin-bottom:20px; font-size:10px; }
 .rule { width:42px; }
 h1 { font-size:clamp(60px,5.65vw,106px); line-height:.97; }
 .intro { margin:28px 0 30px; font-size:clamp(14px,1.25vw,17px); line-height:1.5; }
 .desktop-break { display:initial; }
 .contact-button { width:clamp(170px,16vw,230px); min-height:54px; }
 .footer { min-height:57px; padding:0 2px; flex-direction:row; align-items:center; justify-content:space-between; gap:20px; font-size:14px; }
}
@media (min-width:1100px) {
 .page-shell { padding:33px 40px 0; }
 .hero { gap:42px; }
 .hero-art { min-height:520px; }
}
@media (prefers-reduced-motion:reduce) { .contact-button { transition:none; } }
