:root { --black:#101010; --soft-black:#191919; --pink:#ef167d; --pale:#f8f5f6; --muted:#767176; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--pale); color:var(--black); font-family:"DM Sans",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.announcement { background:var(--black); color:#fff; font-size:10px; font-weight:600; letter-spacing:.13em; padding:12px 5%; text-align:center; text-transform:uppercase; }
.announcement span { color:var(--pink); padding:0 10px; }
.site-header { align-items:center; background:var(--pale); display:flex; height:82px; justify-content:space-between; padding:0 5%; position:relative; z-index:3; }
.brand { font-size:27px; font-weight:700; letter-spacing:.12em; line-height:1; }.brand span { color:var(--pink); }.brand-logo { background:#050505; display:block; height:64px; overflow:hidden; width:76px; }.brand-logo img { display:block; height:100%; object-fit:contain; object-position:center; transform:none; width:100%; }
.main-nav { display:flex; gap:32px; margin-left:110px; }.main-nav a,.bag { font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }.main-nav a:hover,.text-link:hover { color:var(--pink); }.bag span { background:var(--pink); border-radius:50%; color:#fff; display:inline-grid; height:18px; margin-left:5px; place-items:center; width:18px; }
.menu-toggle { background:none; border:0; display:none; font-size:22px; }
.hero { background:var(--black); color:#fff; display:grid; grid-template-columns:52% 48%; min-height:650px; overflow:hidden; padding-left:10%; position:relative; }.hero-copy { align-self:center; max-width:480px; padding:80px 0; position:relative; z-index:1; }.eyebrow { color:var(--pink); font-size:11px; font-weight:700; letter-spacing:.15em; margin:0 0 18px; text-transform:uppercase; }.hero h1,.intro h2,.section-heading h2,.statement h2,.newsletter h2 { font-family:"Playfair Display",Georgia,serif; font-weight:600; letter-spacing:-.045em; line-height:.98; margin:0; }.hero h1 { font-size:clamp(58px,7vw,104px); }.hero h1 em,.intro em,.newsletter em { color:var(--pink); font-weight:600; }.hero-text { color:#d1cdd0; font-size:16px; line-height:1.65; margin:28px 0 34px; max-width:400px; }.button { align-items:center; display:inline-flex; font-size:12px; font-weight:700; gap:28px; letter-spacing:.06em; padding:17px 21px; text-transform:uppercase; transition:transform .2s; }.button:hover { transform:translateY(-3px); }.button-pink { background:var(--pink); color:#fff; }.button span { font-size:20px; line-height:0; }.hero-art { background:linear-gradient(120deg,rgba(0,0,0,.18),rgba(239,22,125,.08)), radial-gradient(circle at 48% 23%,#f46aa9 0 5%,transparent 5.4%), radial-gradient(ellipse at 60% 44%,#b72d62 0 18%,transparent 18.4%), radial-gradient(ellipse at 48% 78%,#e7b3c8 0 13%,transparent 13.5%), linear-gradient(135deg,#5c263a,#e06295 46%,#a81b55 100%); min-height:650px; position:relative; }.hero-art:after { border:1px solid rgba(255,255,255,.52); border-radius:50% 47% 50% 44%; content:""; height:82%; left:12%; position:absolute; top:10%; transform:rotate(-16deg); width:63%; }.hero-art:before { background:rgba(15,15,15,.58); bottom:0; clip-path:polygon(30% 0,100% 12%,100% 100%,0 100%); content:""; height:43%; position:absolute; right:0; width:78%; }.hero-note { bottom:26px; color:#c7bec3; font-size:10px; letter-spacing:.11em; position:absolute; text-transform:uppercase; }.line { background:var(--pink); display:inline-block; height:1px; margin:0 11px 3px 0; width:40px; }
.intro { margin:auto; max-width:860px; padding:140px 30px 130px; text-align:center; }.intro h2 { font-size:clamp(37px,5vw,65px); }.intro > p:last-child { color:var(--muted); font-size:16px; line-height:1.75; margin:30px auto 0; max-width:650px; }
.collection { background:#fff; padding:105px 5% 116px; }.section-heading { align-items:end; display:flex; justify-content:space-between; margin:0 auto 44px; max-width:1200px; }.section-heading h2 { font-size:clamp(37px,4vw,58px); }.text-link { border-bottom:1px solid var(--black); font-size:12px; font-weight:700; letter-spacing:.07em; padding-bottom:8px; text-transform:uppercase; }.text-link span { color:var(--pink); font-size:17px; margin-left:14px; }.product-grid { display:grid; gap:18px; grid-template-columns:repeat(3,1fr); margin:auto; max-width:1200px; }.product-image { aspect-ratio:.84; color:#fff; overflow:hidden; padding:20px; position:relative; }.product-image span { font-size:10px; letter-spacing:.1em; }.product-image p { bottom:20px; font-family:"Playfair Display",Georgia,serif; font-size:31px; font-style:italic; line-height:.96; margin:0; position:absolute; }.image-one { background:linear-gradient(135deg,#3a3a3a,#a7a7a7 60%,#272727); }.image-two { background:linear-gradient(135deg,#ed5497,#bd1557 55%,#56142f); }.image-three { background:linear-gradient(135deg,#a77b89,#e7bec8 49%,#8d5668); }.product-image:after { border:1px solid rgba(255,255,255,.5); content:""; height:58%; position:absolute; right:11%; top:18%; transform:rotate(28deg); width:40%; }.image-two:after { border-radius:48% 52% 45% 55%; transform:rotate(-16deg); }.product-info { align-items:center; display:flex; justify-content:space-between; padding:19px 4px; }.product-info h3 { font-size:15px; margin:0 0 4px; }.product-info p { color:var(--muted); font-size:12px; margin:0; }.product-info > a { border:1px solid #cac6c7; border-radius:50%; display:grid; font-size:18px; height:35px; place-items:center; transition:.2s; width:35px; }.product-info > a:hover { background:var(--pink); border-color:var(--pink); color:white; }
.statement { display:grid; grid-template-columns:1fr 1fr; min-height:560px; }.statement-image { background:linear-gradient(160deg,rgba(0,0,0,.15),transparent),radial-gradient(ellipse at 37% 39%,#f497bf 0 17%,transparent 17.5%),radial-gradient(ellipse at 61% 70%,#201b20 0 34%,transparent 34.5%),linear-gradient(135deg,#f1a2c4,#b83770); }.statement-copy { align-self:center; padding:80px 15%; }.statement h2 { font-size:clamp(42px,5vw,65px); }.statement-copy > p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.7; margin:27px 0 33px; max-width:380px; }.button-dark { background:var(--black); color:#fff; }
.payments { align-items:center; display:grid; gap:70px; grid-template-columns:1fr 1fr; margin:auto; max-width:1200px; padding:125px 5%; }.payments h2 { font-family:"Playfair Display",Georgia,serif; font-size:clamp(40px,4.6vw,64px); font-weight:600; letter-spacing:-.045em; line-height:1; margin:0; }.payments h2 em { color:var(--pink); }.payments-heading > p:not(.eyebrow) { color:var(--muted); line-height:1.7; margin:26px 0 0; max-width:330px; }.payment-options { display:grid; gap:14px; }.payment-card { align-items:center; background:#fff; display:flex; gap:20px; padding:22px; }.payment-icon { align-items:center; background:var(--black); color:#fff; display:flex; flex:0 0 58px; font-size:12px; font-weight:700; height:58px; justify-content:center; letter-spacing:.03em; }.payment-card:nth-child(2) .payment-icon { background:var(--pink); font-size:11px; }.payment-card h3 { font-size:15px; margin:0 0 6px; }.payment-card p,.payment-note { color:var(--muted); font-size:13px; line-height:1.5; margin:0; }.payment-note { border-left:2px solid var(--pink); margin:10px 0 0; padding:5px 0 5px 14px; }
.newsletter { background:#f0e8eb; padding:115px 30px; text-align:center; }.newsletter h2 { font-size:clamp(42px,5.5vw,72px); }.newsletter > p:not(.eyebrow):not(.form-message) { color:var(--muted); margin:22px 0 28px; }.subscribe-form { border-bottom:1px solid var(--black); display:flex; margin:auto; max-width:440px; }.subscribe-form input { background:transparent; border:0; color:var(--black); font:14px "DM Sans"; outline:0; padding:16px 2px; width:100%; }.subscribe-form button { background:transparent; border:0; color:var(--pink); cursor:pointer; font-size:24px; }.form-message { color:var(--pink); font-size:13px; min-height:18px; }
footer { background:var(--black); color:#fff; display:grid; grid-template-columns:1fr 1fr 1fr; padding:50px 5% 30px; }.footer-links { display:flex; gap:22px; justify-content:center; }.footer-links a,footer p,footer small { color:#b3afb1; font-size:11px; }.footer-links a:hover { color:var(--pink); }footer small { grid-column:1/-1; margin-top:55px; }
.sr-only { height:1px; margin:-1px; overflow:hidden; position:absolute; width:1px; }
.catalog-loading { color:var(--muted); grid-column:1/-1; padding:48px 0; text-align:center; }
.checkout-modal{background:rgba(0,0,0,.55);inset:0;overflow:auto;padding:24px;position:fixed;z-index:20}.checkout-card{background:#fff;margin:auto;max-width:760px;padding:32px;position:relative}.checkout-card h2{font-family:"Playfair Display",serif;font-size:38px}.close-checkout{background:none;border:0;font-size:30px;position:absolute;right:22px;top:18px}.checkout-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}.checkout-card label{display:grid;font-size:12px;gap:6px}.checkout-card input,.checkout-card select,.checkout-card textarea{border:1px solid #ccc;font:14px "DM Sans";padding:11px}.address-fields{border:1px solid #ddd;margin:20px 0;padding:18px}.checkout-summary{background:var(--pale);margin:20px 0;padding:16px}.confirm-order{background:var(--pink);border:0;color:#fff;padding:15px;width:100%}.order-success{padding:30px 0;text-align:center}.order-success h3{font-family:"Playfair Display",serif;font-size:34px}
.bag { background:none; border:0; cursor:pointer; padding:0; }.catalog-grid { grid-template-columns:repeat(4,1fr); }.catalog-card { background:var(--pale); min-width:0; }.catalog-card > img { aspect-ratio:.72; display:block; object-fit:cover; object-position:center top; width:100%; }.catalog-details { padding:18px; }.catalog-details h3 { font-size:18px; margin:2px 0 8px; }.catalog-details > p:not(.product-color) { color:var(--muted); font-size:12px; line-height:1.5; margin:0; min-height:38px; }.product-color { color:var(--pink); font-size:11px; font-weight:700; letter-spacing:.1em; margin:0; text-transform:uppercase; }.catalog-bottom { align-items:center; display:flex; justify-content:space-between; margin-top:17px; }.catalog-bottom strong { font-size:15px; }.catalog-bottom label { color:var(--muted); font-size:11px; }.catalog-bottom select { background:transparent; border:0; border-bottom:1px solid #a5a0a3; font:600 12px "DM Sans"; margin-left:4px; outline:0; padding:2px 0; }.add-to-cart { background:var(--black); border:0; color:#fff; cursor:pointer; display:flex; font:700 11px "DM Sans"; justify-content:space-between; letter-spacing:.07em; margin-top:17px; padding:13px 14px; text-transform:uppercase; transition:background .2s; width:100%; }.add-to-cart:hover { background:var(--pink); }.add-to-cart span { font-size:18px; line-height:10px; }.cart-overlay { background:rgba(0,0,0,.44); inset:0; opacity:0; pointer-events:none; position:fixed; transition:opacity .25s; z-index:9; }.cart-panel { background:#fff; display:flex; flex-direction:column; height:100vh; max-width:430px; padding:28px; position:fixed; right:0; top:0; transform:translateX(100%); transition:transform .3s; width:100%; z-index:10; }.cart-panel.open { transform:translateX(0); }.cart-panel.open + .cart-overlay { opacity:1; pointer-events:auto; }.cart-top { align-items:start; display:flex; justify-content:space-between; }.cart-top h2 { font-family:"Playfair Display",Georgia,serif; font-size:42px; line-height:1; margin:0; }.close-cart { background:none; border:0; cursor:pointer; font-size:30px; line-height:1; }.cart-items { flex:1; overflow:auto; padding:28px 0; }.empty-cart { color:var(--muted); text-align:center; }.cart-line { align-items:center; border-bottom:1px solid #e5e1e3; display:grid; gap:12px; grid-template-columns:60px 1fr auto; padding:12px 0; }.cart-line img { height:76px; object-fit:cover; width:60px; }.cart-line h3 { font-size:13px; margin:0 0 4px; }.cart-line p { color:var(--muted); font-size:11px; margin:0; }.cart-line strong { font-size:12px; }.remove-item { background:none; border:0; color:var(--pink); cursor:pointer; font-size:18px; }.cart-footer { border-top:1px solid #dcd7da; padding-top:18px; }.shipping-status { background:#f6e4ed; color:#a0004c !important; font-size:11px !important; font-weight:700; margin:0 0 16px !important; padding:10px !important; }.cart-total { display:flex; font-size:14px; justify-content:space-between; margin-bottom:16px; }.checkout-button { background:var(--pink); border:0; color:#fff; cursor:pointer; font:700 12px "DM Sans"; letter-spacing:.06em; padding:16px; text-transform:uppercase; width:100%; }.checkout-button:disabled { background:#c9c4c7; cursor:not-allowed; }.cart-footer p { color:var(--muted); font-size:10px; line-height:1.45; text-align:center; }
@media (max-width:700px) { .announcement { font-size:8px; }.site-header { height:66px; }.brand-logo { height:54px; width:65px; }.main-nav,.bag { background:var(--pale); display:none; left:0; margin:0; padding:20px 5%; position:absolute; top:66px; width:100%; }.main-nav.open { display:grid; gap:20px; }.menu-toggle { display:block; }.hero { display:block; min-height:700px; padding:0 9%; }.hero-copy { padding:78px 0 36px; }.hero-art { min-height:300px; margin:0 -10%; }.hero-note { bottom:15px; font-size:8px; }.intro { padding:90px 24px; }.collection { padding:75px 5%; }.section-heading { align-items:start; flex-direction:column; gap:22px; }.product-grid { grid-template-columns:1fr; gap:24px; }.product-image { aspect-ratio:1.08; }.statement,.payments { grid-template-columns:1fr; }.statement-image { min-height:330px; }.statement-copy { padding:75px 9%; }.payments { gap:42px; padding:85px 9%; }.newsletter { padding:85px 24px; } footer { gap:22px; grid-template-columns:1fr; text-align:center; }.footer-links { justify-content:center; } footer small { margin-top:25px; } }
@media (max-width:700px) { .catalog-grid { grid-template-columns:1fr; }.catalog-card > img { aspect-ratio:.9; }.bag { background:none; display:block; left:auto; padding:0; position:static; width:auto; }.cart-panel { padding:24px; } }
@media (max-width:700px){.checkout-modal{padding:0}.checkout-card{min-height:100vh;padding:24px}.checkout-grid{grid-template-columns:1fr}}
