@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root{color-scheme:light;--paper:#f5f0e7;--ink:#25231f;--muted:#706b62;--gold:#a68b54;--line:#ded7ca}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 'DM Sans',sans-serif}.shell{max-width:1240px;margin:auto;padding:0 56px}header{height:130px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:18px;align-items:center;color:inherit;text-decoration:none;font-size:14px;letter-spacing:2px;font-weight:600}.brand small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:3px}.monogram{font:38px 'Playfair Display',serif;letter-spacing:-6px;padding-right:8px}.monogram span{font-size:20px;color:var(--gold)}main{display:grid;grid-template-columns:1fr 1fr;gap:85px;min-height:720px;padding:78px 0 64px}.intro{position:relative;padding:20px 0}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:700}h1{font:46px/1.25 'Playfair Display',serif;letter-spacing:-1px;margin:26px 0}h1 em{font-weight:400;color:#8a7044}.intro>p{max-width:350px;color:var(--muted);font-size:15px}.brand-rule{height:1px;width:50px;background:var(--gold);margin:35px 0 23px}.promise{font-family:'Playfair Display',serif;font-size:19px!important;font-style:italic}.botanical{position:absolute;bottom:25px;right:10px;font-size:155px;line-height:1;color:#d9ddce;font-weight:400;transform:rotate(15deg);z-index:-1}.panel{align-self:start;background:#fffefa;border:1px solid #e5e2d9;border-radius:22px;padding:34px;box-shadow:0 16px 55px #263b3206}h2{font:28px/1.3 'Playfair Display',serif;margin:0 0 10px}.subtle{color:var(--muted);font-size:13px;margin:0 0 23px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:23px 0}.tabs button{flex:1;padding:12px 4px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:500 13px 'DM Sans',sans-serif}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--gold)}label{display:block;font-size:12px;font-weight:600;margin:16px 0 6px}input:not([type=checkbox]){width:100%;min-height:49px;background:white;border:1px solid #d8ddd5;border-radius:9px;padding:12px 14px;font:15px 'DM Sans',sans-serif;color:var(--ink)}input:focus{outline:2px solid #a4844880;outline-offset:2px}.check{display:flex;align-items:start;gap:9px;font-weight:400;line-height:1.5}.check input{margin-top:4px;accent-color:var(--ink)}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}.primary,.secondary{width:100%;min-height:49px;border-radius:9px;font:600 13px 'DM Sans',sans-serif;padding:12px 18px}.primary{background:var(--ink);border:1px solid var(--ink);color:#fff;margin-top:22px}.secondary{background:transparent;border:1px solid var(--line);color:var(--ink);margin-top:12px}.text-button{border:0;background:none;color:var(--muted);font:12px 'DM Sans',sans-serif;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.forgot{display:block;margin:12px 0 0 auto}.hint{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.6}#notice{background:#f2f4ec;border:1px solid #d7decc;padding:12px;border-radius:9px;font-size:13px;margin-bottom:20px}#notice.error{background:#fff3ed;border-color:#ebc9b8;color:#823e2c}.loading{color:var(--muted);font-size:13px;padding:20px 0}.member-card{background:var(--ink);color:#faf6e9;border-radius:15px;padding:25px;position:relative;overflow:hidden}.member-card:after{content:'✳';position:absolute;right:-10px;top:-45px;font-size:150px;color:#ffffff0a}.member-card small{font-size:9px;letter-spacing:2px;color:#d5c7a5}.points{font:48px/1.2 'Playfair Display',serif;margin:14px 0 4px}.points span{font:12px 'DM Sans',sans-serif}.progress{height:4px;background:#ffffff25;border-radius:5px;margin:18px 0 10px;overflow:hidden}.progress>div{height:100%;background:#d9c28b}.reward{font-size:12px;color:#e4dac2}.qr-area{display:grid;grid-template-columns:112px 1fr;gap:20px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line)}.qr-area svg{width:112px;height:112px}.qr-area h3,.history h3{font-size:14px;margin:0 0 5px}.qr-area p{font-size:12px;color:var(--muted);margin:0}.history{margin-top:24px}.history-item{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #eceee6;font-size:12px}.history-item small{display:block;color:var(--muted);font-size:11px}.delta{white-space:nowrap;font-weight:600}.empty{font-size:13px;color:var(--muted);padding:16px 0}footer{border-top:1px solid var(--line);padding:26px 0;display:flex;gap:25px;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}footer>span:first-child{letter-spacing:2px;font-size:9px}dialog{max-width:480px;border:1px solid var(--line);border-radius:18px;padding:30px;color:var(--ink);font-size:13px}dialog::backdrop{background:#152b2360}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}@media(max-width:800px){.shell{padding:0 24px}header{height:96px}.brand{font-size:12px;gap:12px}.monogram{font-size:32px}main{grid-template-columns:1fr;gap:24px;padding:32px 0 40px;min-height:0}.intro{padding:0}.eyebrow{font-size:8px}h1{font-size:35px;margin:16px 0}.intro>p{font-size:13px;margin-bottom:0}.brand-rule,.promise,.botanical{display:none}.panel{padding:25px;border-radius:16px}footer{flex-wrap:wrap;gap:10px;font-size:9px}footer>span:nth-child(2){order:3;width:100%}h2{font-size:25px}}@media(prefers-reduced-motion:no-preference){.panel{animation:arrive .4s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}

/* Sillane: typography-first identity, matching the ivory and charcoal card. */
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;letter-spacing:0}
.wordmark{font:500 34px/1 'Playfair Display',Georgia,serif;letter-spacing:5px}
.brand-caption{font-size:8px;letter-spacing:2px;color:var(--muted)}
.existing-card{margin-top:30px;padding:20px 22px;border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:0 12px 12px 0;max-width:390px;background:#fffaf280}
.existing-label{font-size:9px;letter-spacing:1.5px;font-weight:700}
.existing-card p{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0 0}
a{color:inherit;text-underline-offset:3px}
.opening-note{padding:16px 18px;background:#f7f0e3;border:1px solid #e3d6bb;border-radius:10px;margin:22px 0;font-size:12px;color:#5f4e30;line-height:1.6}
.opening-note strong{display:block;color:var(--ink);margin-bottom:4px;font-size:12px}
.opening-note p{margin:0 0 8px}
.opening-note a{font-weight:600}
fieldset{border:0;padding:0;margin:0;min-width:0}
input:disabled{background:#f4f2ed;color:#857f75}
button:disabled{cursor:default}
footer{flex-wrap:wrap;gap:16px 24px}
.contact-link{font-size:11px;overflow-wrap:anywhere}
.privacy-note{width:100%;order:5}
@media(max-width:800px){
 .wordmark{font-size:27px;letter-spacing:4px}.brand-caption{font-size:7px}
 header{height:110px}.shell{padding:0 20px}main{padding-top:26px}.intro h1{font-size:36px}
 .existing-card{margin-top:20px;padding:16px 18px;max-width:none}.panel{padding:24px 20px}
 .intro .existing-card{margin-bottom:0}.existing-card p{font-size:12px}.tabs button{min-height:44px}
 input:not([type=checkbox]){font-size:16px}.opening-note{margin:18px 0}footer .text-button{min-height:44px}
 footer>span:nth-child(2){order:initial;width:auto}
}

.eyebrow{color:#7b6034}.existing-card summary{cursor:pointer;min-height:24px;line-height:24px}.existing-card[open] summary{margin-bottom:8px}
