@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600&display=swap');
:root{--ink:#0a0a0a;--muted:#707075;--line:#dedee2;--bg:#fafafa;--accent:linear-gradient(105deg,#8c6a20,#f5e7a3,#a9a9a9,#fff,#e7c968,#8a681f)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}a{text-decoration:none;color:inherit}
.nav{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:18px 4vw;background:rgba(250,250,250,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}.brand{font-weight:600;letter-spacing:.15em;font-size:11px;display:flex;align-items:center;gap:9px}.brand-icon{width:16px;text-align:center;color:#8c6a20;transition:.18s}.nav nav{display:flex;gap:23px;font-size:11px}.nav nav a:hover{opacity:.5}
.hero{min-height:76vh;padding:125px 8vw 70px;display:grid;align-items:center;background:radial-gradient(circle at 78% 40%,rgba(214,183,88,.07),transparent 35%)}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:600;color:#777;margin:0 0 17px}.hero h1,h2{font-size:clamp(58px,9vw,135px);line-height:.91;letter-spacing:-.055em;margin:0;font-weight:500}.hero h1 em,h2 em{font-family:"Playfair Display",serif;font-weight:500}.hero-tagline{font-weight:500;font-size:clamp(15px,1.7vw,21px);letter-spacing:.12em;text-transform:uppercase;margin:22px 0 32px;color:#4b4b4f}.lede{max-width:480px;color:var(--muted);font-size:16px;line-height:1.65}.button{display:inline-flex;gap:20px;align-items:center;border:0;background:#0a0a0a;color:#fff;padding:14px 19px;font-size:11px;letter-spacing:.06em;cursor:pointer}.button:hover{transform:translateY(-2px)}
.ticker{height:46px;border-block:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;font-size:8px;letter-spacing:.2em;color:#777}.section{padding:95px 8vw}.split{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.body-copy{max-width:600px;font-size:18px;line-height:1.7;color:#444;padding-top:20px}.quick{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.quick a{padding:35px 28px;border-right:1px solid var(--line);min-height:145px}.quick a:last-child{border-right:0}.quick span,.quick small{display:block;color:#888;font-size:9px;letter-spacing:.15em}.quick strong{display:block;font-size:19px;margin:18px 0 7px;font-weight:500}.section-head,.panel-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:42px}.search{border:0;border-bottom:1px solid #111;background:transparent;padding:12px 0;outline:none;font:inherit}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}.member{background:var(--bg);padding:28px}.member-photo{aspect-ratio:1;background:linear-gradient(135deg,#ddd,#f7f7f7);margin-bottom:20px;display:grid;place-items:center;font-size:42px;color:#aaa}.member h3{margin:0 0 7px;font-weight:500}.member p{margin:0;color:#777;font-size:12px}.member code{display:block;margin-top:17px;font-size:9px;letter-spacing:.12em}.notice{border-top:1px solid #111;padding:28px 0;display:grid;grid-template-columns:110px 1fr;gap:30px}.notice h3{font-size:27px;font-weight:500;margin:0 0 10px}.notice p{color:#777}.dark-section{background:#0a0a0a;color:#fff}.dark-section .eyebrow{color:#999}.event{margin-top:65px;border-block:1px solid #333;padding:24px 0;display:flex;justify-content:space-between}.event h3{font-size:29px;font-weight:400;margin:9px 0}.event span{font-size:9px;letter-spacing:.2em;color:#999}.event-date{align-self:center;color:#999}.verify{padding:85px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw;background:var(--accent);background-size:260% 260%;color:white}.verify .eyebrow{color:rgba(255,255,255,.65)}.verify h2{font-size:clamp(45px,6vw,82px)}.verify>div:nth-child(2){display:flex;align-items:center;gap:22px;flex-wrap:wrap}.code-input{color:white;border:0;border-bottom:1px solid rgba(255,255,255,.65);background:transparent;padding:13px 0;outline:none;min-width:230px;font:inherit}.code-input::placeholder{color:rgba(255,255,255,.6)}.verify .button{background:white;color:#111}.verify-result{width:100%;font-size:13px;line-height:1.6}.waitlist form{max-width:650px;display:grid;gap:16px;margin-top:48px}.waitlist input,.waitlist textarea,.form textarea,.form input{border:0;border-bottom:1px solid #111;padding:15px 0;background:transparent;font:inherit;outline:none}.waitlist textarea{min-height:110px;resize:vertical}.public-list{margin-top:65px;border-top:1px solid #111;padding-top:25px}.wait-item{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}footer{padding:25px 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:8px;letter-spacing:.15em;color:#777}
.admin-body{background:#f3f3f0}.admin-login{min-height:100vh;display:grid;place-items:center}.admin-card{width:min(430px,90vw);background:#fff;padding:48px;border:1px solid #ddd}.admin-card h1{font-size:46px;letter-spacing:-.05em;font-weight:500;margin:0 0 12px}.admin-card input{width:100%;border:0;border-bottom:1px solid #111;padding:15px 0;margin:28px 0;outline:none;font:inherit}.error{color:#a33;font-size:12px}.hidden{display:none!important}.admin-top{height:64px;background:#fff;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center;padding:0 4vw}.text-btn{background:none;border:0;cursor:pointer;font:inherit;font-size:11px}.dashboard-grid{display:grid;grid-template-columns:210px 1fr;min-height:calc(100vh - 64px)}.dashboard aside{background:#111;color:#fff;padding:35px 20px}.dashboard aside button{display:block;width:100%;text-align:left;background:none;border:0;color:#aaa;padding:13px 8px;cursor:pointer;font:inherit;font-size:12px}.dashboard aside button:hover{color:#fff}.panel{padding:55px 6vw;max-width:1200px}.panel h1,.panel h2{font-size:55px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:50px}.stats div{background:#fff;padding:30px}.stats b{display:block;font-size:42px;font-weight:500}.stats span{font-size:10px;color:#777;letter-spacing:.12em}.admin-row{background:#fff;border-bottom:1px solid #ddd;padding:18px 20px;display:flex;justify-content:space-between;align-items:center}.admin-row strong{font-weight:500}.admin-actions button{margin-left:8px;background:none;border:1px solid #ccc;padding:7px 10px;cursor:pointer}.form{background:#fff;padding:30px;max-width:700px}.form label{display:grid;gap:10px;font-size:11px;color:#777}.form textarea{min-height:180px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 0;z-index:50}.modal-card{background:#fff;width:min(600px,92vw);max-height:calc(100vh - 48px);overflow-y:auto;padding:38px;position:relative}.close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:25px;cursor:pointer}.modal-card form{display:grid;gap:15px}.modal-card input,.modal-card textarea,.modal-card select{border:0;border-bottom:1px solid #111;padding:12px 0;font:inherit;outline:none}.modal-card textarea{min-height:100px}
@media(max-width:800px){.nav nav{display:none}.hero{min-height:70vh;padding-inline:7vw}.quick{grid-template-columns:1fr 1fr}.quick a{border-bottom:1px solid var(--line)}.split,.verify,.dashboard-grid{grid-template-columns:1fr}.member-grid{grid-template-columns:1fr}.section{padding:75px 7vw}.panel{padding:40px 6vw}.dashboard aside{display:flex;overflow:auto}.dashboard aside button{min-width:max-content}.stats{grid-template-columns:1fr 1fr}.panel h1,.panel h2{font-size:45px}footer{gap:15px;flex-wrap:wrap}}

/* Production admin additions */
.admin-user{display:flex;align-items:center;gap:18px;font-size:13px;color:#555}
.admin-message{min-height:22px;margin:8px 0 18px;color:#333}
.admin-message.error{color:#a11}
.admin-card input + input{margin-top:10px}
.admin-card .button{margin-top:12px}
.modal-card label{display:block;margin:0 0 14px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#666}
.modal-card label input,.modal-card label textarea,.modal-card label select{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:12px 13px;border:1px solid #d8d8d8;background:#fff;font:inherit;text-transform:none;letter-spacing:normal;color:#111}
.modal-card label textarea{min-height:120px;resize:vertical}
.modal-card label.check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-size:14px;color:#222}
.modal-card label.check input{width:auto;margin:0}
.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:20px}
.wait-row p{margin:8px 0 0;color:#555;max-width:650px}
.empty-state{color:#777}

.modal-error{display:none;margin-top:14px;padding:12px 14px;background:#fff1f1;border:1px solid #e0b6b6;color:#8b2222;font-size:12px;line-height:1.5;text-transform:none;letter-spacing:normal}
.modal-error:not(:empty){display:block}
.modal-actions .button:disabled{opacity:.55;cursor:wait}
.member-body{background:#f3f3f0;min-height:100vh}.member-login{min-height:100vh;display:grid;place-items:center;padding:100px 20px}.member-card{width:min(450px,92vw);background:#fff;border:1px solid #ddd;padding:48px}.member-card h1{font-size:52px;letter-spacing:-.05em;font-weight:500;margin:0 0 14px}.member-card input{width:100%;border:0;border-bottom:1px solid #111;padding:15px 0;margin:18px 0;outline:none;font:inherit}.member-card .button{margin-top:10px}.member-card .text-btn{display:block;margin-top:18px}.member-message{min-height:20px;font-size:12px;color:#444;line-height:1.5}.member-message.error{color:#a11}.member-portal{padding-top:64px}.member-hero{padding:85px 8vw 65px;background:#0a0a0a;color:#fff;display:flex;justify-content:space-between;align-items:flex-end}.member-hero h1{font-size:clamp(44px,5.6vw,78px);line-height:.96;letter-spacing:-.045em;font-weight:500;margin:0}.member-name-line{display:inline-flex;align-items:center;gap:18px;white-space:nowrap}.member-name{font-family:"DM Sans",Arial,sans-serif;font-style:normal;font-weight:500;letter-spacing:-.045em}.hero-cycle-icon{display:inline-flex;align-items:center;justify-content:center;font-family:"DM Sans",Arial,sans-serif;font-size:.58em;line-height:1;font-weight:400;min-width:.85em;text-align:center;color:#ff2b2b;animation:heroIconColour 4.5s linear infinite;will-change:color}.hero-cycle-symbol{display:inline-block;transform-origin:50% 50%;will-change:transform,opacity}.hero-cycle-symbol.is-changing{animation:heroIconSwap .32s ease-out}.member-code{margin-top:25px;letter-spacing:.2em;color:#aaa;font-size:11px}.logout-btn{color:#aaa}.member-grid-portal{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#dedee2}.membership-card,.member-details{background:#fafafa;padding:45px}.membership-card{min-height:430px}.portal-photo{width:150px;aspect-ratio:1;background:linear-gradient(135deg,#ddd,#f7f7f7);display:grid;place-items:center;margin:35px 0 25px;font-size:48px;color:#aaa;overflow:hidden}.portal-photo img{width:100%;height:100%;object-fit:cover}.membership-card h2{font-size:28px;margin:0}.card-number{font-size:11px;letter-spacing:.18em;color:#777;margin-top:8px}.member-details .detail{padding:22px 0;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;gap:20px}.member-details .detail span{color:#777;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.member-details .detail strong{font-size:14px;font-weight:500;text-align:right}.member-edit{padding:85px 8vw;background:#fff}.member-edit h2{font-size:65px;margin-bottom:15px}.member-edit .muted{max-width:620px;color:#777;line-height:1.7}.member-edit textarea{display:block;width:min(700px,100%);min-height:160px;border:0;border-bottom:1px solid #111;padding:15px 0;margin:35px 0 20px;font:inherit;outline:none;resize:vertical}.member-edit input[type=file]{display:block;margin:0 0 25px;font-size:12px}.member-edit .button{margin-bottom:10px}
@media(max-width:800px){.member-hero{padding:65px 7vw 50px;align-items:flex-start;gap:30px;flex-direction:column}.member-grid-portal{grid-template-columns:1fr}.membership-card,.member-details{padding:35px 7vw}.member-edit{padding:65px 7vw}.member-edit h2{font-size:48px}}

.photo-actions{display:flex;gap:14px;margin:-8px 0 30px;flex-wrap:wrap;align-items:center}.photo-actions .button{font-size:10px;padding:11px 18px;border-radius:999px;letter-spacing:.04em}.button-light{background:#111;color:#fff}.button-quiet{background:#fff;color:#111;border:1px solid #d2d2d2}.photo-actions .button:hover{transform:translateY(-1px)}
@keyframes heroIconColour{0%{color:#ff2b2b}12.5%{color:#ff5a36}25%{color:#ffb02e}37.5%{color:#e34cff}50%{color:#7a5cff}62.5%{color:#3f8cff}75%{color:#25c99a}87.5%{color:#8fd14f}100%{color:#ff2b2b}}
@keyframes heroIconFloat{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(90deg) scale(1.08)}}
@keyframes heroIconSwap{0%{opacity:.25;transform:rotate(-90deg) scale(.72)}100%{opacity:1;transform:rotate(0deg) scale(1)}}.photo-upload{display:flex;flex-direction:column;gap:7px;width:min(700px,100%);padding:18px 0;border-bottom:1px solid #111;cursor:pointer}.photo-upload-title{font-size:12px;letter-spacing:.04em;color:#111}.photo-upload small{font-size:11px;color:#777}.photo-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-help{width:min(700px,100%);margin:10px 0 25px;color:#777;font-size:11px;line-height:1.5}.member-edit #saveProfile{border-radius:999px;padding:13px 22px}.member-edit{scroll-margin-top:80px}

@media(max-width:600px){.member-hero h1{font-size:clamp(38px,11vw,58px)}.member-name-line{gap:12px}.hero-cycle-icon{font-size:.62em}.photo-actions{gap:10px}}
