/* BASALTO — static, responsive, dependency-free. */
:root { color-scheme: dark; --bg:#141716; --surface:#1b1e1c; --surface-light:#242824; --ink:#f2eee6; --muted:#b5b7ae; --bronze:#c3a581; --line:#343932; --paper:#e9e8df; --paper-ink:#252a26; --serif:Georgia,'Times New Roman',serif; --sans:'Segoe UI',Arial,sans-serif; }
* { box-sizing:border-box; }
h1,h2,h3,p,a,li { overflow-wrap:break-word; }
html { scroll-behavior:smooth; scroll-padding-top:7rem; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:1rem; line-height:1.7; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
img { max-width:100%; display:block; }
figure,p,h1,h2,h3 { margin:0; }
p + p { margin-top:1rem; }
::selection { background:var(--bronze); color:var(--bg); }
:focus-visible { outline:2px solid var(--bronze); outline-offset:5px; }
.container { width:min(1280px,calc(100% - 7rem)); margin-inline:auto; }
.skip-link { position:fixed; left:1rem; top:-6rem; z-index:100; background:var(--ink); color:var(--bg); padding:1rem; }
.skip-link:focus { top:1rem; }
.site-header { border-bottom:1px solid var(--line); position:relative; z-index:30; background:var(--bg); }
.header-inner { min-height:112px; display:flex; justify-content:space-between; align-items:center; gap:1.25rem 2rem; flex-wrap:wrap; padding-block:1rem; }
.wordmark { display:inline-flex; flex-direction:column; font-family:var(--serif); font-size:2rem; line-height:1.15; letter-spacing:.14em; }
.wordmark span { font-family:var(--sans); font-size:.75rem; letter-spacing:.22em; line-height:1.5; margin-top:.45rem; }
.main-nav { display:flex; gap:1.75rem; align-items:center; font-size:.875rem; flex-wrap:wrap; max-width:100%; }
.main-nav > a:not(.button) { padding-block:.7rem; border-bottom:1px solid transparent; }
.main-nav > a:not(.button):hover { color:var(--bronze); border-color:var(--bronze); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1rem 1.4rem; border:1px solid var(--bronze); color:var(--bg); background:var(--bronze); font-size:.9375rem; font-weight:600; line-height:1.5; min-height:50px; transition:background .2s,color .2s; }
.button:hover { background:#d8bc9c; border-color:#d8bc9c; }
.button span { font-size:1.25rem; font-weight:400; }
.button-small { padding:.75rem 1rem; min-height:44px; font-size:.875rem; }
.text-link { font-size:.9375rem; border-bottom:1px solid var(--muted); padding-bottom:.25rem; }
.text-link:hover { color:var(--bronze); border-color:var(--bronze); }
.menu-toggle { display:none; }
.hero { display:grid; grid-template-columns:1.08fr 1fr; gap:0 4.5rem; padding-top:4.3rem; }
.hero-copy { padding-top:1rem; padding-bottom:3.5rem; }
.eyebrow { display:flex; gap:.85rem; align-items:center; color:var(--bronze); font-size:.75rem; font-weight:600; letter-spacing:.12em; line-height:1.6; }
.short-rule { width:2rem; height:1px; background:var(--bronze); flex-shrink:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h1 { font-size:clamp(3.7rem,6.35vw,6.2rem); line-height:1.04; letter-spacing:-.045em; margin-block:1.8rem; }
h1 em,h2 em { color:var(--bronze); font-weight:400; }
.hero-intro { font-size:1.25rem; line-height:1.5; }
.hero-description { color:var(--muted); max-width:26rem; font-size:1rem; margin-top:1.15rem; }
.hero-actions { display:flex; gap:1.6rem; align-items:center; flex-wrap:wrap; margin-top:2.25rem; }
.hero-art { padding-top:.5rem; display:flex; flex-direction:column; }
.art-frame { position:relative; background:#1c1f1c; border:1px solid var(--line); aspect-ratio:4/5; min-height:420px; }
.art-label { position:absolute; left:1.5rem; bottom:1.5rem; right:1.5rem; font-size:.75rem; letter-spacing:.14em; color:var(--bronze); }
.hero-art figcaption { display:flex; justify-content:space-between; gap:1rem; margin-top:1rem; color:var(--bronze); font-size:.75rem; letter-spacing:.08em; }
.hero-art figcaption span { color:var(--muted); letter-spacing:0; text-align:right; max-width:17rem; }
.hero-bottom { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:2rem 0; border-top:1px solid var(--line); font-size:.75rem; letter-spacing:.09em; color:var(--muted); }
.hero-bottom a { display:flex; gap:2rem; color:var(--ink); }
.section { padding-block:7rem; border-top:1px solid var(--line); }
.section-head { display:grid; grid-template-columns:1fr 2fr; gap:3rem; margin-bottom:3rem; }
.section-head .eyebrow { align-self:start; margin-top:.6rem; }
h2 { font-size:clamp(2.3rem,3.65vw,3.7rem); line-height:1.15; letter-spacing:-.035em; }
.intro-columns { display:grid; grid-template-columns:1fr 1fr; gap:5rem; }
.intro-columns > div { color:var(--muted); }
.lead { font-family:var(--serif); font-size:1.8rem; line-height:1.5; }
.site-footer { border-top:1px solid var(--line); padding-block:3rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.site-footer p,.site-footer > a:not(.wordmark) { color:var(--muted); font-size:.875rem; }
.muted,.small-note,.section-note { color:var(--muted); }
.small-note,.section-note { font-size:.875rem; line-height:1.65; margin-top:1rem; }
.small-note a,.section-note a,.rule-section a:not(.button) { text-decoration:underline; text-underline-offset:4px; }
.index-number { font-family:var(--serif); font-size:1.25rem; color:var(--bronze); }
.principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem; margin-top:4rem; }
.principles article { border-top:1px solid var(--line); padding-top:1.6rem; }
.principles h3 { font-size:1.5rem; line-height:1.3; margin-block:1.25rem .75rem; }
.principles p { color:var(--muted); }
.experience-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:4rem; }
.dining-figure { display:flex; flex-direction:column; }
.dining-image { flex:1; background:var(--surface); min-height:500px; overflow:hidden; position:relative; }
.dining-image img { height:100%; width:100%; object-fit:cover; object-position:40% center; position:absolute; inset:0; }
.dining-figure figcaption { font-size:.75rem; line-height:1.6; color:var(--muted); padding-top:.8rem; }
.experience-copy { padding-top:.8rem; }
.experience-copy > .muted { margin-top:1.5rem; }
.format-row { display:grid; grid-template-columns:2.1rem 1fr; gap:1.25rem; padding-top:1.65rem; margin-top:1.65rem; border-top:1px solid var(--line); }
.format-row h3 { font-size:1.6rem; margin-block:.5rem .6rem; line-height:1.3; }
.format-row div > p:last-child { color:var(--muted); }
.section-paper { background:var(--paper); color:var(--paper-ink); padding-block:6rem; }
.section-paper .eyebrow { color:#67523e; }
.section-paper h2 em { color:#6b5942; }
.season-intro { display:grid; grid-template-columns:1fr 1fr; gap:4rem; color:#525a51; }
.season-intro p { margin:0; }
.season-intro strong { font-weight:600; color:var(--paper-ink); }
.season-calendar { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); margin-top:3rem; border-top:1px solid #c2c7bb; padding-top:1.8rem; gap:.6rem; }
.month { font-size:.875rem; color:var(--paper-ink); letter-spacing:.05em; }
.month > span { display:block; font-size:.75rem; color:#5a6257; margin-bottom:.6rem; }
.month i { display:block; height:4px; background:#69745f; margin-top:.8rem; }
.month.paused i { background:#c6caba; }
.month.paused { color:#646d5d; }
.month.partial-july i { background:linear-gradient(to right,#69745f 61.3%,#c6caba 61.3%); }
.month.partial-september i { background:linear-gradient(to right,#c6caba 33.3%,#69745f 33.3%); }
.calendar-caption { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-top:1.2rem; font-size:.75rem; color:#535e4f; }
.calendar-caption span { display:flex; align-items:center; gap:.5rem; }
.calendar-caption span:last-child { margin-left:auto; }
.legend-active,.legend-pause { display:inline-block; width:15px; height:4px; background:#69745f; }
.legend-pause { background:#c6caba; }
.cost-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:3.5rem; border-top:1px solid #c2c7bb; padding-top:2.4rem; gap:3rem; }
.cost-grid article + article { border-left:1px solid #c2c7bb; padding-left:3rem; }
.cost-value { font-family:var(--serif); font-size:4rem; line-height:1.2; letter-spacing:-.04em; margin:1rem 0; }
.cost-value span { font-size:2.2rem; padding-left:.3rem; }
.cost-word { font-style:italic; font-size:3.6rem; }
.cost-grid article > p:last-child { color:#525a51; margin-top:0; }
.card-fee { margin-top:2rem; padding-top:1.5rem; border-top:1px solid #c2c7bb; display:flex; gap:2rem; justify-content:space-between; color:#525a51; }
.card-fee strong { color:var(--paper-ink); font-weight:600; }
.card-fee p { margin:0; max-width:45rem; }
.card-fee a { color:#67523e; align-self:flex-start; flex-shrink:0; }
.membership { border-top:none; }
.membership-intro { display:flex; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; align-items:flex-end; }
.membership-intro > p:first-child { max-width:39rem; }
.points-key { display:flex; gap:1.8rem; flex-shrink:0; font-size:.875rem; }
.points-key span { display:flex; flex-direction:column; color:var(--muted); }
.points-key strong { color:var(--bronze); font-weight:500; }
.status-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:1rem; }
.status-card { background:var(--surface); padding:1.7rem 1.35rem 1.35rem; border:1px solid var(--line); display:flex; flex-direction:column; }
.status-card .eyebrow { font-size:.75rem; letter-spacing:.06em; }
.status-card h3 { font-size:1.6rem; margin-top:1.65rem; letter-spacing:.015em; }
.status-rule { display:block; height:1px; width:2rem; background:var(--bronze); margin:1.8rem 0; }
.status-metric { font-size:1rem; font-weight:600; color:var(--ink); }
.status-card > p:not(.eyebrow):not(.status-metric) { color:var(--muted); font-size:.9375rem; }
.status-card .status-footnote { border-top:1px solid var(--line); padding-top:1.2rem; margin-top:auto; font-size:.75rem!important; }
.status-card > p:nth-last-child(2) { padding-bottom:1.75rem; }
.status-card.signature { background:#20251f; border-color:#485142; }
.status-card.elite { border-color:var(--bronze); background:#262720; }
.status-card.elite h3 { color:var(--bronze); }
.special-status { display:grid; grid-template-columns:1fr 2fr; gap:2rem; margin-top:2rem; padding-block:1.5rem; border-block:1px solid var(--line); }
.special-status p { margin:0; font-size:.875rem; display:flex; align-items:baseline; gap:1rem; }
.special-status strong { color:var(--bronze); font-weight:500; font-family:var(--serif); letter-spacing:.05em; }
.special-status span { color:var(--muted); }
.admission { display:grid; grid-template-columns:.9fr 1.2fr; gap:3rem 6rem; }
.admission-heading h2 { margin-block:1.75rem; }
.admission-heading > p.muted { max-width:24rem; margin-bottom:2rem; }
.requirements article { display:grid; grid-template-columns:2rem 1fr; gap:1.3rem; padding-block:1.8rem; border-top:1px solid var(--line); }
.requirements article:first-child { padding-top:0; border:0; }
.requirements h3 { font-size:1.55rem; line-height:1.35; margin-bottom:.75rem; }
.requirements p { color:var(--muted); }
.requirements strong { color:var(--ink); font-weight:500; }
.admission-process { grid-column:1/-1; border-top:1px solid var(--line); padding-top:2rem; }
.admission-process ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem; list-style:none; padding:0; margin:2rem 0 0; }
.admission-process li { display:flex; gap:1.2rem; }
.admission-process li > span { font-family:var(--serif); color:var(--bronze); font-size:1.25rem; }
.admission-process strong { font-weight:500; }
.admission-process li p { color:var(--muted); font-size:.9375rem; margin-top:.5rem; }
.faq-section { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; }
.faq-heading h2 { margin-block:1.5rem 2rem; font-size:clamp(2rem,3vw,3rem); }
.faq-list details { border-bottom:1px solid var(--line); padding-block:1.3rem; }
.faq-list details:first-child { border-top:1px solid var(--line); }
summary { cursor:pointer; list-style:none; position:relative; padding-right:2rem; font-size:1rem; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; position:absolute; right:0; top:-.1rem; color:var(--bronze); font-size:1.4rem; font-weight:300; }
details[open] summary::after { content:'−'; }
summary:hover { color:var(--bronze); }
.faq-list details p { color:var(--muted); margin-top:1rem; padding-right:1.5rem; }
.closing-cta { text-align:center; padding:5rem 1rem 6rem; border-top:1px solid var(--line); }
.closing-cta .eyebrow { justify-content:center; }
.closing-cta h2 { font-size:clamp(3rem,5vw,5rem); margin-block:1.8rem 2.2rem; }
.closing-cta > p:last-child { color:var(--muted); font-size:.875rem; margin-top:1.1rem; }
.footer-middle { max-width:32rem; }
.site-footer .footer-fine { font-size:.75rem; margin-top:.35rem; }
.site-footer nav { display:flex; gap:1.3rem; font-size:.875rem; }
.site-footer nav a:hover { color:var(--bronze); }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; width:100%; border-top:1px solid var(--line); margin-top:1rem; padding-top:1.5rem; font-size:.75rem; color:var(--muted); letter-spacing:.03em; }
.breadcrumb { display:inline-block; font-size:.75rem; letter-spacing:.08em; color:var(--muted); margin-bottom:2.5rem; }
.breadcrumb:hover { color:var(--bronze); }
.page-heading { padding-top:2.5rem; padding-bottom:4rem; }
.page-heading h1 { font-size:clamp(3rem,5.5vw,5.5rem); margin-block:1.4rem 1.8rem; }
.page-lead { color:var(--muted); font-size:1.125rem; max-width:40rem; }
.document-status { display:flex; gap:1rem 2rem; flex-wrap:wrap; font-size:.75rem; letter-spacing:.08em; margin-top:2.5rem; color:var(--bronze); }
.document-status span + span { color:var(--muted); }
.rules-layout { display:grid; grid-template-columns:15rem minmax(0,1fr); gap:5rem; padding-bottom:4rem; }
.rules-sidebar { position:sticky; top:2rem; align-self:start; }
.rules-sidebar nav { display:flex; flex-direction:column; border-top:1px solid var(--line); padding-top:1.5rem; gap:.15rem; }
.rules-sidebar nav .eyebrow { margin-bottom:1rem; }
.rules-sidebar nav a { font-size:.875rem; color:var(--muted); padding-block:.4rem; }
.rules-sidebar nav a:hover { color:var(--bronze); }
.text-button { color:var(--bronze); border:0; background:transparent; border-bottom:1px solid var(--bronze); margin-top:1.5rem; padding:.5rem 0; font-size:.875rem; text-align:left; }
.text-button span { margin-left:1rem; }
.notice { padding:1.5rem; background:var(--surface); border:1px solid var(--line); border-left:2px solid var(--bronze); font-size:.9375rem; }
.notice strong { color:var(--ink); font-weight:600; }
.notice p { color:var(--muted); margin-top:.5rem; }
.rule-section { padding-block:2.5rem; border-bottom:1px solid var(--line); }
.rule-section .eyebrow { margin-bottom:.8rem; }
.rule-section h2 { font-size:2rem; margin-bottom:1.25rem; }
.rule-section h3 { font-size:1.4rem; margin-block:1.5rem .65rem; }
.rule-section > p,.rule-section li { color:var(--muted); }
.rule-section strong { color:var(--ink); font-weight:600; }
.rule-section ul { padding-left:1.2rem; margin-block:1.1rem; }
.rule-section li + li { margin-top:.6rem; }
.formula { font-family:var(--serif); font-size:1.25rem; color:var(--ink)!important; padding:1.3rem; border:1px solid var(--line); background:var(--surface); }
.table-wrap { width:100%; overflow-x:auto; margin-block:1.5rem; }
table { border-collapse:collapse; width:100%; font-size:.9375rem; text-align:left; }
caption { text-align:left; padding-bottom:.9rem; color:var(--muted); font-size:.875rem; }
th,td { padding:1rem; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:var(--surface); color:var(--bronze); font-size:.875rem; font-weight:500; }
td { color:var(--muted); }
td:first-child { color:var(--ink); min-width:8rem; }
.procedure-list { padding-left:1.3rem; }
.procedure-list li { padding-left:.5rem; }
.procedure-list li::marker { color:var(--bronze); font-family:var(--serif); }
.rule-section .button { margin-top:1.5rem; }
.privacy-body { max-width:850px; padding-bottom:4rem; }
.privacy-body .rule-section:first-child { border-top:1px solid var(--line); }
.privacy-body .text-link { display:inline-block; margin-top:1.5rem; }
.application-layout { padding-block:3rem 6rem; display:grid; grid-template-columns:.9fr 1.2fr; gap:6rem; align-items:start; }
.application-intro { position:sticky; top:2rem; }
.application-intro h1 { font-size:clamp(2.8rem,4.4vw,4.3rem); margin-block:1.5rem; line-height:1.1; }
.application-intro .breadcrumb { margin-bottom:3rem; }
.application-facts { padding-block:1rem; margin-block:1.5rem; }
.application-facts p { font-size:.9375rem; display:flex; gap:1.3rem; padding-block:.65rem; border-bottom:1px solid var(--line); margin:0; }
.application-facts span { color:var(--bronze); font-family:var(--serif); }
.application-intro > .small-note { max-width:25rem; margin-top:2.5rem; }
.application-panel { min-width:0; }
.application-panel .notice { margin-bottom:2rem; }
.form-caption { font-size:.875rem; color:var(--muted); margin-bottom:1.75rem; }
fieldset { min-width:0; padding:0; border:0; margin:0 0 2.3rem; }
legend { padding:0 0 .7rem; font-size:.875rem; letter-spacing:.05em; color:var(--bronze); margin-bottom:1.4rem; width:100%; border-bottom:1px solid var(--line); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 1.25rem; }
.field { display:flex; flex-direction:column; gap:.5rem; min-width:0; }
.field label { font-size:.875rem; color:var(--ink); }
.field label span { color:var(--muted); }
.field input,.field select,.field textarea { background:var(--surface); border:1px solid #4b5147; color:var(--ink); border-radius:0; width:100%; min-height:50px; padding:.8rem .9rem; font-size:1rem; line-height:1.5; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--bronze); }
.field textarea { resize:vertical; min-height:115px; }
.field input::placeholder,.field textarea::placeholder { color:#969e92; opacity:1; }
.field select { cursor:pointer; }
.field-hint { font-size:.875rem; color:var(--muted); line-height:1.5; }
.full-width { grid-column:1/-1; }
.check-label { display:flex; align-items:flex-start; gap:.9rem; font-size:.9375rem; color:var(--muted); cursor:pointer; padding-block:.6rem; }
.check-label input { appearance:auto; accent-color:var(--bronze); width:19px; height:19px; flex:0 0 19px; margin:.2rem 0 0; }
.check-label a { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.bottom-caption { margin-block:1.25rem 0; }
.form-error { color:#ffd1c6; padding:1rem; border:1px solid #bc8576; background:#302321; margin-bottom:1.5rem; }
[aria-invalid="true"] { border-color:#dcaa9b!important; }
.button:disabled { opacity:.5; cursor:not-allowed; }
.button-outline { background:transparent; color:var(--bronze); }
.button-outline:hover { background:var(--surface-light); color:var(--ink); border-color:var(--bronze); }
.application-review { background:var(--surface); border:1px solid var(--bronze); padding:2rem; }
.application-review h2 { font-size:2.4rem; margin-block:1.25rem; }
.application-review > p:not(.eyebrow) { color:var(--muted); }
.application-review dl { margin-block:2rem; border-top:1px solid var(--line); }
.application-review dl > div { padding:1rem 0; border-bottom:1px solid var(--line); }
.application-review dt { color:var(--bronze); font-size:.875rem; }
.application-review dd { margin:.35rem 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-actions { display:flex; gap:1rem; flex-wrap:wrap; }
[hidden] { display:none!important; }
.art-frame img { width:100%; height:100%; object-fit:cover; object-position:center; position:absolute; inset:0; }
.art-label { z-index:1; padding-top:2rem; text-shadow:0 1px 8px #000; }
.art-frame::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.7)); pointer-events:none; }
@media (min-width:1600px) { .hero { padding-top:5rem; } }
@media (max-width:1100px) { .container { width:calc(100% - 4rem); } .main-nav { gap:1.1rem; } .hero { gap:0 2.5rem; } .hero-actions { gap:1rem; } .hero-art figcaption span { max-width:13rem; } }
@media (max-width:900px) { .header-inner { flex-wrap:wrap; padding-block:1.3rem; min-height:90px; } .main-nav { width:100%; flex-wrap:wrap; } .js .menu-toggle { display:flex; background:none; border:1px solid var(--line); color:var(--ink); gap:.8rem; align-items:center; padding:.6rem .8rem; min-height:44px; font-size:.875rem; } .menu-toggle i { width:17px; height:8px; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); } .js .main-nav { display:none; } .js .main-nav.is-open { display:flex; } .hero { grid-template-columns:1.1fr 1fr; gap:0 2rem; padding-top:2.5rem; } h1 { font-size:4.1rem; } .art-frame { min-height:490px; height:100%; } .hero-art figcaption { display:block; } .hero-art figcaption span { display:block; text-align:left; margin-top:.4rem; } .section-head { grid-template-columns:1fr; gap:1.25rem; } .intro-columns { gap:2.5rem; } }
@media (max-width:640px) { .container { width:calc(100% - 2.5rem); } .wordmark { font-size:1.6rem; } .main-nav { flex-direction:column; align-items:stretch; gap:.4rem; padding-top:1rem; } .main-nav > a { padding:.65rem 0; } .hero { display:block; padding-top:1.75rem; } .hero-copy { padding-top:.5rem; padding-bottom:2.2rem; } h1 { font-size:clamp(3.65rem,15vw,5rem); margin-block:1.5rem; } .hero .eyebrow { font-size:.75rem; letter-spacing:.05em; } .short-rule { width:1.2rem; } .hero-description { max-width:100%; } .hero-actions { align-items:flex-start; gap:1.3rem; margin-top:1.75rem; } .hero-art { padding-bottom:2rem; } .art-frame { min-height:0; height:auto; aspect-ratio:1.2; } .hero-art figcaption { display:flex; } .hero-art figcaption span { max-width:13rem; margin:0; text-align:right; } .hero-bottom { padding:1.5rem 0; font-size:.75rem; align-items:flex-start; } .hero-bottom > span { max-width:12rem; } .hero-bottom a { gap:.5rem; text-align:right; } .section { padding-block:4rem; } .section-head { margin-bottom:2rem; } .intro-columns { grid-template-columns:1fr; gap:1.5rem; } .lead { font-size:1.5rem; } .site-footer { flex-direction:column; align-items:flex-start; gap:1.2rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
@media (max-width:1100px) {
  .status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
  .status-card { padding:1.75rem; }
  .admission,.application-layout { gap:3rem; }
  .rules-layout { gap:3rem; grid-template-columns:13rem minmax(0,1fr); }
  .membership-intro { align-items:flex-start; }
}
@media (max-width:900px) {
  .principles,.cost-grid { gap:1.5rem; }
  .principles h3 { font-size:1.3rem; }
  .experience-grid,.season-intro { gap:2.5rem; }
  .dining-image { min-height:550px; }
  .cost-grid article + article { padding-left:1.5rem; }
  .cost-value { font-size:3.3rem; }
  .cost-word { font-size:3rem; }
  .card-fee { flex-direction:column; gap:1rem; }
  .special-status { grid-template-columns:1fr; gap:1rem; }
  .faq-section { gap:2.5rem; grid-template-columns:1fr 1.2fr; }
  .rules-layout { grid-template-columns:1fr; gap:2rem; }
  .rules-sidebar,.application-intro { position:static; }
  .rules-sidebar nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.1rem 1rem; }
  .rules-sidebar nav .eyebrow { grid-column:1/-1; }
  .application-layout { grid-template-columns:1fr; gap:3rem; }
  .application-intro h1 { font-size:3.8rem; }
  .application-intro > .small-note { max-width:35rem; margin-top:1.5rem; }
  .application-intro .breadcrumb { margin-bottom:2rem; }
  .application-facts { max-width:40rem; }
}
@media (max-width:640px) {
  .principles { grid-template-columns:1fr; margin-top:2.5rem; gap:1.7rem; }
  .principles article { position:relative; padding-left:2.2rem; padding-top:1.25rem; }
  .principles .index-number { position:absolute; left:0; top:1.15rem; }
  .principles h3 { margin-top:0; font-size:1.45rem; }
  .experience-grid { grid-template-columns:1fr; gap:2rem; }
  .dining-image { min-height:0; height:auto; aspect-ratio:4/3; }
  .experience-copy { padding-top:0; }
  .experience-copy .lead br { display:none; }
  .section-paper { padding-block:4rem; }
  .season-intro { grid-template-columns:1fr; gap:1rem; }
  .season-calendar { grid-template-columns:repeat(6,minmax(0,1fr)); gap:1.25rem .6rem; margin-top:2rem; }
  .calendar-caption { gap:.75rem 1.2rem; }
  .calendar-caption span:last-child { margin-left:0; flex-basis:100%; }
  .cost-grid { grid-template-columns:1fr; gap:1.5rem; margin-top:2rem; padding-top:1.5rem; }
  .cost-grid article + article { border-left:0; border-top:1px solid #c2c7bb; padding:1.5rem 0 0; }
  .cost-value { margin-block:.8rem; font-size:3.5rem; }
  .cost-word { font-size:3.1rem; }
  .membership-intro { flex-direction:column; gap:1.4rem; }
  .points-key { margin:0; width:100%; gap:2.5rem; }
  .status-grid { gap:.85rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr)); }
  .status-card { padding:1.1rem .9rem; }
  .status-card h3 { font-size:1.35rem; letter-spacing:-.01em; margin-top:1rem; }
  .status-card .eyebrow { letter-spacing:0; font-size:.75rem; }
  .status-rule { margin-block:1.1rem; }
  .status-metric { font-size:.9375rem; }
  .status-card > p:not(.eyebrow):not(.status-metric) { font-size:.875rem; }
  .special-status { margin-top:1.5rem; }
  .special-status p { display:grid; grid-template-columns:5.5rem 1fr; gap:.8rem; }
  .admission { grid-template-columns:1fr; gap:2.5rem; }
  .admission-heading h2 { margin-block:1.5rem; }
  .admission-heading > p.muted { max-width:100%; }
  .requirements article { gap:1rem; grid-template-columns:1.75rem 1fr; }
  .requirements article:first-child { border-top:1px solid var(--line); padding-top:1.5rem; }
  .requirements h3 { font-size:1.4rem; }
  .admission-process ol { grid-template-columns:1fr; gap:1.5rem; }
  .admission-process { padding-top:1.5rem; }
  .faq-section { grid-template-columns:1fr; gap:2rem; }
  .faq-heading h2 { margin-block:1.3rem; }
  .closing-cta { padding:3.5rem .5rem 4rem; }
  .closing-cta h2 { font-size:2.8rem; }
  .footer-bottom { flex-wrap:wrap; gap:.8rem; }
  .footer-bottom > span:last-child { flex-basis:100%; }
  .page-heading { padding-top:1.5rem; padding-bottom:2.5rem; }
  .page-heading h1 { font-size:clamp(2.55rem,11vw,4rem); }
  .page-heading .breadcrumb { margin-bottom:2rem; }
  .document-status { gap:.65rem; margin-top:1.75rem; }
  .rules-sidebar nav a { padding-block:.55rem; }
  .rule-section { padding-block:2rem; }
  .rule-section h2 { font-size:1.8rem; }
  th,td { padding:.8rem .5rem; font-size:.875rem; }
  td:first-child { min-width:6.7rem; }
  .notice { padding:1.2rem; }
  .application-layout { padding-block:1.5rem 4rem; }
  .application-intro h1 { font-size:clamp(2.8rem,11.3vw,4rem); }
  .form-grid { grid-template-columns:1fr; }
  .application-review { padding:1.3rem; }
  .application-review h2 { font-size:2rem; }
  .review-actions { flex-direction:column; align-items:stretch; }
  .art-frame img { object-position:center 40%; }
}
@media (max-width:360px) {
  .status-grid { grid-template-columns:1fr; }
  .status-card { padding:1.5rem; }
  .status-card h3 { font-size:1.75rem; }
  .hero-bottom { flex-direction:column; gap:.8rem; }
  .hero-bottom > span { max-width:none; }
}
@media print {
  :root { color-scheme:light; --bg:#fff; --ink:#111; --muted:#333; --line:#bbb; --surface:#f5f5f5; --bronze:#56412d; }
  body { background:#fff; color:#111; font-size:11pt; }
  .site-header,.site-footer,.skip-link,.rules-sidebar,.breadcrumb,.rule-section .button { display:none!important; }
  .container { width:100%; max-width:none; }
  .page-heading { padding:0 0 1cm; }
  .page-heading h1 { font-size:32pt; }
  .rules-layout { display:block; }
  .rule-section { padding-block:.6cm; }
  h2,h3,caption { break-after:avoid; }
  tr,.notice { break-inside:avoid; }
  .table-wrap { overflow:visible; }
  th,td { padding:.3cm; }
  p { orphans:3; widows:3; }
  a { color:inherit; }
  @page { margin:1.8cm; }
}

/* --- BASALTO premium public / member architecture --- */
.hero-premium .hero-description { max-width:33rem; }
.hero-premium .hero-intro { max-width:36rem; }
.hero-premium .art-frame::after { inset:48% 0 0; }
.premium-story { padding-top:8rem; }
.statement-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:6rem; align-items:start; }
.statement-copy { max-width:38rem; margin-left:auto; }
.statement-copy > p:not(.lead) { color:var(--muted); }
.values-line { margin-top:5rem; padding-block:1.5rem; border-block:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; font-size:.875rem; color:var(--muted); }
.values-line span + span { border-left:1px solid var(--line); padding-left:2rem; }
.experience-grid-premium { align-items:stretch; }
.premium-copy { display:flex; flex-direction:column; justify-content:center; }
.premium-copy h2 { margin-bottom:2rem; }
.premium-copy .lead { font-size:1.55rem; }
.audience-strip { margin-top:2.2rem; border-top:1px solid var(--line); }
.audience-strip > div { display:grid; grid-template-columns:8rem 1fr; gap:1.2rem; padding:1.25rem 0; border-bottom:1px solid var(--line); }
.audience-strip strong { color:var(--bronze); font-size:.8rem; letter-spacing:.12em; font-weight:600; }
.audience-strip span { color:var(--muted); font-size:.9375rem; }
.access-section { padding-block:7rem; }
.access-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:5rem; align-items:end; margin-bottom:3rem; }
.access-heading > p { color:#596057; max-width:34rem; justify-self:end; }
.access-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.access-card { background:#f4f2ea; border:1px solid #c8c5b8; padding:2.2rem; min-height:410px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.access-card::after { content:''; position:absolute; width:240px; height:240px; border:1px solid rgba(103,82,62,.18); border-radius:50%; right:-100px; top:-100px; pointer-events:none; }
.access-card-top { display:flex; align-items:center; justify-content:space-between; color:#67523e; margin-bottom:4rem; }
.access-index { font-family:var(--serif); font-size:2rem; line-height:1; }
.access-kicker { font-size:.75rem; letter-spacing:.14em; font-weight:700; }
.access-card h3 { font-size:2.25rem; color:var(--paper-ink); margin-bottom:1rem; }
.access-card > p { color:#596057; max-width:28rem; }
.access-card > .button { margin-top:auto; align-self:flex-start; }
.button-dark { background:#171a18; border-color:#171a18; color:#f2eee6; }
.button-dark:hover { background:#2a2f2a; border-color:#2a2f2a; color:#fff; }
.member-access-card { background:#deded2; border-color:#a9aa9d; }
.member-login { margin-top:1.7rem; padding-top:1.6rem; border-top:1px solid #b6b6a9; display:grid; gap:1rem; }
.login-row { display:grid; grid-template-columns:6.4rem 1fr; gap:1rem; align-items:center; }
.login-row label { color:#4b504a; font-size:.875rem; }
.login-row input { min-height:46px; border:1px solid #929489; background:#f6f4ed; color:#20231f; padding:.7rem .8rem; border-radius:0; }
.login-error { color:#8b3027!important; font-size:.875rem; margin:0!important; }
.member-login .button { justify-self:start; margin-top:.3rem; }
.access-note { margin-top:1.2rem; color:#64695f; font-size:.78rem; }
.premium-closing { max-width:980px; }
.premium-closing > p:not(.eyebrow) { max-width:42rem; color:var(--muted); margin:0 auto 2rem; }

.guest-hero { padding-block:4.5rem 6rem; }
.guest-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:end; }
.guest-hero h1 { margin-bottom:0; }
.guest-copy { padding-bottom:1rem; }
.guest-copy > p:not(.lead) { color:var(--muted); }
.guest-columns { display:grid; grid-template-columns:1fr 1fr; gap:6rem; }
.guest-columns h2 { margin-bottom:1.5rem; }
.guest-columns p { color:#596057; }
.guest-columns .button { margin-top:1.5rem; }

.nav-logout,.footer-logout { border:0; background:transparent; color:var(--muted); font-size:.875rem; padding:.7rem 0; }
.nav-logout:hover,.footer-logout:hover { color:var(--bronze); }
.member-area { background:#111412; }
.member-header { background:#111412; }
.member-dashboard { padding-block:4.5rem 4rem; }
.member-welcome { display:flex; justify-content:space-between; gap:3rem; align-items:flex-end; padding-bottom:3rem; border-bottom:1px solid var(--line); }
.member-welcome h1 { font-size:clamp(3.5rem,5.6vw,5.7rem); margin-block:1rem .8rem; }
.member-welcome > div > p:last-child { color:var(--muted); }
.season-mark { text-align:right; display:flex; flex-direction:column; }
.season-mark span { color:var(--muted); font-size:.75rem; letter-spacing:.14em; }
.season-mark strong { font-family:var(--serif); font-size:3rem; color:var(--bronze); font-weight:400; }
.member-kpi-grid { display:grid; grid-template-columns:1.4fr .8fr; gap:1.25rem; margin-top:1.25rem; }
.status-overview,.points-overview { border:1px solid var(--line); background:#181c19; min-height:300px; padding:2rem; }
.status-overview { display:grid; grid-template-columns:8rem 1fr; gap:2rem; align-items:center; }
.status-emblem { width:7rem; height:7rem; border:1px solid var(--bronze); border-radius:50%; display:grid; place-items:center; position:relative; }
.status-emblem::before,.status-emblem::after { content:''; position:absolute; inset:.45rem; border:1px solid rgba(195,165,129,.35); border-radius:50%; }
.status-emblem::after { inset:1rem; }
.status-emblem span { font-family:var(--serif); font-size:2rem; color:var(--bronze); z-index:1; letter-spacing:.08em; }
.kpi-label { font-size:.72rem; letter-spacing:.14em; color:var(--muted); margin-bottom:.6rem; }
.status-overview h2 { font-size:2.7rem; letter-spacing:-.02em; }
.status-overview h2 em { display:inline; }
.status-overview p:not(.kpi-label) { color:var(--muted); max-width:34rem; margin-top:.9rem; }
.founder-chip { display:inline-block; margin-top:1rem; border:1px solid #665743; color:#c3a581; font-size:.7rem; letter-spacing:.13em; padding:.35rem .55rem; }
.points-overview { display:flex; flex-direction:column; justify-content:center; }
.points-overview > strong { font-family:var(--serif); font-size:4.2rem; line-height:1; font-weight:400; color:var(--ink); }
.points-overview > span { color:var(--bronze); font-size:.85rem; margin-top:.4rem; }
.points-line { height:3px; background:#2d332e; margin:1.8rem 0 1rem; }
.points-line i { display:block; height:100%; background:var(--bronze); }
.points-overview > p:last-child { color:var(--muted); font-size:.78rem; }
.member-section { padding-block:6rem; border-top:1px solid var(--line); }
.member-section-head { display:grid; grid-template-columns:1fr .8fr; gap:4rem; align-items:end; margin-bottom:2.5rem; }
.member-section-head h2 { margin-top:.5rem; }
.member-section-head > p { color:var(--muted); max-width:34rem; justify-self:end; }
.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.event-card { border:1px solid var(--line); background:#181c19; padding:1.6rem; min-height:270px; display:flex; flex-direction:column; }
.event-card time { color:var(--bronze); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.event-type { color:var(--muted); font-size:.7rem; letter-spacing:.13em; margin-top:.35rem; }
.event-card h3 { font-size:1.65rem; margin:2.6rem 0 1rem; }
.event-place { color:var(--ink); font-size:.9rem; }
.event-note { color:var(--muted); font-size:.84rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); }
.member-club-note { padding-block:6rem; }
.club-note-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:6rem; }
.club-note-grid > div:last-child > p:not(.lead) { color:#596057; }
.club-note-grid .button { margin-top:2rem; }
.members-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.member-card { border:1px solid var(--line); background:#181c19; overflow:hidden; }
.member-photo { aspect-ratio:4/3; background:#151816; position:relative; overflow:hidden; }
.member-photo img { width:100%; height:100%; object-fit:cover; object-position:center 34%; filter:saturate(.45) contrast(1.04); }
.member-photo span { z-index:2; position:absolute; right:1rem; bottom:1rem; font-family:var(--serif); color:#c3a581; font-size:1rem; letter-spacing:.1em; padding:.25rem .45rem; background:rgba(17,20,18,.72); }
.member-card-body { padding:1.4rem; }
.member-badge-line { display:flex; align-items:center; gap:.7rem; min-height:30px; }
.status-mini { width:28px; height:28px; border:1px solid var(--bronze); border-radius:50%; display:grid; place-items:center; color:var(--bronze); font-size:.65rem; font-family:var(--serif); }
.member-badge-line strong { color:var(--bronze); font-size:.72rem; letter-spacing:.08em; font-weight:600; }
.founder-tag { margin-left:auto; color:var(--muted); font-size:.62rem; letter-spacing:.12em; border-left:1px solid var(--line); padding-left:.7rem; }
.member-card h3 { font-size:1.65rem; margin:1.2rem 0 1.4rem; }
.member-card dl { margin:0; border-top:1px solid var(--line); }
.member-card dl > div { display:grid; grid-template-columns:5.5rem 1fr; gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--line); }
.member-card dt { color:var(--muted); font-size:.75rem; }
.member-card dd { margin:0; font-size:.85rem; color:var(--ink); }

@media (max-width:900px) {
  .statement-grid,.guest-hero-grid,.guest-columns,.club-note-grid { grid-template-columns:1fr; gap:2.5rem; }
  .statement-copy { margin-left:0; }
  .access-heading,.member-section-head { grid-template-columns:1fr; gap:1.5rem; }
  .access-heading > p,.member-section-head > p { justify-self:start; }
  .access-grid,.member-kpi-grid { grid-template-columns:1fr; }
  .event-grid,.members-grid { grid-template-columns:1fr 1fr; }
  .status-overview { grid-template-columns:7rem 1fr; }
  .values-line { grid-template-columns:1fr; gap:0; }
  .values-line span { padding:1rem 0; }
  .values-line span + span { border-left:0; border-top:1px solid var(--line); padding-left:0; }
}
@media (max-width:640px) {
  .premium-story { padding-top:5rem; }
  .access-section { padding-block:4.5rem; }
  .access-card { padding:1.5rem; min-height:360px; }
  .access-card-top { margin-bottom:3rem; }
  .login-row { grid-template-columns:1fr; gap:.35rem; }
  .guest-hero { padding-block:2.5rem 4rem; }
  .member-dashboard { padding-block:2.5rem 3rem; }
  .member-welcome { align-items:flex-start; flex-direction:column; gap:1rem; }
  .season-mark { text-align:left; }
  .status-overview { grid-template-columns:1fr; }
  .status-emblem { width:5.8rem; height:5.8rem; }
  .status-overview h2 { font-size:2.15rem; }
  .event-grid,.members-grid { grid-template-columns:1fr; }
  .member-section { padding-block:4rem; }
  .member-section-head { margin-bottom:2rem; }
  .audience-strip > div { grid-template-columns:1fr; gap:.35rem; }
}

/* --- BASALTO dimensional refinement v3 --- */
:root {
  --shadow-ambient:0 26px 70px rgba(0,0,0,.24);
  --shadow-deep:0 38px 90px rgba(0,0,0,.34);
  --shadow-card:0 18px 42px rgba(0,0,0,.22),0 4px 12px rgba(0,0,0,.14);
  --shadow-card-hover:0 30px 64px rgba(0,0,0,.32),0 10px 22px rgba(0,0,0,.18);
  --edge-light:rgba(255,255,255,.065);
  --edge-dark:rgba(0,0,0,.34);
}

body {
  background:
    radial-gradient(1200px 620px at 50% -180px,rgba(195,165,129,.055),transparent 72%),
    linear-gradient(180deg,#151816 0%,#121513 52%,#101311 100%);
}

.site-header {
  box-shadow:0 12px 32px rgba(0,0,0,.12);
}

.button {
  box-shadow:
    0 8px 18px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(77,56,35,.22);
  transition:transform .24s ease,box-shadow .24s ease,background .2s,color .2s,border-color .2s;
}

.button-dark {
  box-shadow:
    0 10px 22px rgba(42,39,31,.18),
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(0,0,0,.35);
}

.section-paper {
  position:relative;
  background:
    radial-gradient(900px 430px at 16% 0%,rgba(255,255,255,.42),transparent 68%),
    linear-gradient(180deg,#eeede5 0%,#e6e5dc 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.85),
    inset 0 20px 45px rgba(255,255,255,.12),
    inset 0 -22px 55px rgba(58,58,48,.055);
}

.art-frame,
.dining-image {
  border-color:#3d423b;
  box-shadow:
    0 34px 70px rgba(0,0,0,.3),
    0 10px 24px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.06);
}

.art-frame::before,
.dining-image::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 1px 0 0 rgba(255,255,255,.045),
    inset 0 -1px 0 rgba(0,0,0,.38),
    inset -1px 0 0 rgba(0,0,0,.2);
}

.access-grid,
.member-kpi-grid,
.event-grid,
.members-grid {
  perspective:1400px;
}

.access-card {
  isolation:isolate;
  border-color:#c7c3b5;
  background:
    linear-gradient(145deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.16) 28%,transparent 54%),
    linear-gradient(160deg,#f6f4ed 0%,#ebe8de 100%);
  box-shadow:
    0 30px 64px rgba(69,64,51,.18),
    0 8px 18px rgba(75,68,54,.10),
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 1px 0 0 rgba(255,255,255,.44),
    inset 0 -1px 0 rgba(91,85,70,.12),
    inset -1px 0 0 rgba(91,85,70,.07);
  transition:transform .34s cubic-bezier(.2,.7,.2,1),box-shadow .34s ease,border-color .34s ease;
  transform:translateZ(0);
}

.access-card::before {
  content:'';
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(110deg,rgba(255,255,255,.34),transparent 28% 72%,rgba(91,79,60,.04)),
    radial-gradient(460px 180px at 15% 0%,rgba(255,255,255,.52),transparent 70%);
  opacity:.7;
}

.access-card > * {
  position:relative;
  z-index:1;
}

.member-access-card {
  background:
    linear-gradient(145deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.08) 34%,transparent 60%),
    linear-gradient(160deg,#e3e2d8 0%,#d3d3c7 100%);
  border-color:#a8aa9c;
  box-shadow:
    0 32px 68px rgba(63,65,55,.22),
    0 8px 18px rgba(63,65,55,.12),
    inset 0 1px 0 rgba(255,255,255,.76),
    inset 0 -1px 0 rgba(66,69,58,.14);
}

.member-login {
  position:relative;
}

.login-row input {
  box-shadow:
    inset 0 2px 6px rgba(72,70,59,.12),
    inset 0 1px 0 rgba(255,255,255,.76),
    0 1px 0 rgba(255,255,255,.42);
}

.status-overview,
.points-overview,
.event-card,
.member-card,
.notice,
.application-review {
  position:relative;
  border-color:#343a34;
  background:
    linear-gradient(145deg,rgba(255,255,255,.032),transparent 32%),
    linear-gradient(160deg,#1b201c 0%,#151916 100%);
  box-shadow:
    var(--shadow-card),
    inset 0 1px 0 var(--edge-light),
    inset 1px 0 0 rgba(255,255,255,.025),
    inset 0 -1px 0 var(--edge-dark);
  transition:transform .32s cubic-bezier(.2,.7,.2,1),box-shadow .32s ease,border-color .32s ease;
  transform:translateZ(0);
}

.status-overview::before,
.points-overview::before,
.event-card::before,
.member-card::before,
.application-review::before {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:linear-gradient(110deg,rgba(255,255,255,.035),transparent 24% 72%,rgba(195,165,129,.018));
}

.status-overview > *,
.points-overview > *,
.event-card > *,
.member-card > *,
.application-review > * {
  position:relative;
  z-index:1;
}

.status-overview {
  box-shadow:
    0 24px 56px rgba(0,0,0,.28),
    0 6px 16px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 -1px 0 rgba(0,0,0,.42);
}

.points-overview {
  background:
    radial-gradient(420px 220px at 100% 0%,rgba(195,165,129,.08),transparent 72%),
    linear-gradient(145deg,rgba(255,255,255,.035),transparent 34%),
    linear-gradient(160deg,#1a1f1b,#141815);
}

.status-emblem {
  background:radial-gradient(circle at 38% 30%,rgba(195,165,129,.08),transparent 58%);
  box-shadow:
    0 14px 28px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -10px 22px rgba(0,0,0,.18),
    0 0 0 1px rgba(195,165,129,.06);
}

.points-line {
  box-shadow:inset 0 1px 3px rgba(0,0,0,.48),0 1px 0 rgba(255,255,255,.03);
}

.points-line i {
  box-shadow:0 0 12px rgba(195,165,129,.2),inset 0 1px 0 rgba(255,255,255,.28);
}

.event-card {
  overflow:hidden;
}

.event-card::after {
  content:'';
  position:absolute;
  width:140px;
  height:140px;
  border-radius:50%;
  border:1px solid rgba(195,165,129,.08);
  right:-74px;
  top:-74px;
  pointer-events:none;
}

.member-card {
  overflow:hidden;
}

.member-photo {
  box-shadow:inset 0 -28px 44px rgba(0,0,0,.2);
}

.member-photo::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 38%,rgba(0,0,0,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(0,0,0,.42);
}

.member-photo span {
  box-shadow:0 8px 20px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(7px);
}

.status-mini {
  background:radial-gradient(circle at 35% 30%,rgba(195,165,129,.09),transparent 66%);
  box-shadow:0 5px 12px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.07);
}

.notice {
  border-left-color:var(--bronze);
  box-shadow:
    0 16px 34px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.045),
    inset 3px 0 0 rgba(195,165,129,.16);
}

.application-review {
  border-color:#8d765c;
  box-shadow:
    0 28px 64px rgba(0,0,0,.3),
    0 8px 20px rgba(0,0,0,.17),
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 0 1px rgba(195,165,129,.06);
}

@media (hover:hover) and (pointer:fine) {
  .button:hover {
    transform:translateY(-2px);
    box-shadow:
      0 14px 28px rgba(0,0,0,.20),
      inset 0 1px 0 rgba(255,255,255,.20),
      inset 0 -1px 0 rgba(77,56,35,.18);
  }

  .button:active {
    transform:translateY(0);
    box-shadow:0 5px 12px rgba(0,0,0,.16),inset 0 1px 3px rgba(0,0,0,.12);
  }

  .access-card:hover {
    transform:translateY(-9px) rotateX(.65deg) rotateY(-.35deg);
    border-color:#b8b19f;
    box-shadow:
      0 44px 86px rgba(69,64,51,.25),
      0 14px 30px rgba(75,68,54,.13),
      inset 0 1px 0 rgba(255,255,255,.96),
      inset 0 -1px 0 rgba(91,85,70,.11);
  }

  .member-access-card:hover {
    transform:translateY(-9px) rotateX(.65deg) rotateY(.35deg);
    box-shadow:
      0 44px 88px rgba(63,65,55,.28),
      0 14px 30px rgba(63,65,55,.14),
      inset 0 1px 0 rgba(255,255,255,.8),
      inset 0 -1px 0 rgba(66,69,58,.13);
  }

  .status-overview:hover,
  .points-overview:hover,
  .event-card:hover,
  .member-card:hover {
    transform:translateY(-6px);
    border-color:#454c44;
    box-shadow:
      var(--shadow-card-hover),
      inset 0 1px 0 rgba(255,255,255,.075),
      inset 0 -1px 0 rgba(0,0,0,.4);
  }

  .member-card:hover .member-photo img {
    transform:scale(1.018);
    filter:saturate(.52) contrast(1.055);
  }

  .member-photo img {
    transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .5s ease;
  }
}

@media (max-width:640px) {
  .access-card,
  .status-overview,
  .points-overview,
  .event-card,
  .member-card,
  .notice,
  .application-review {
    box-shadow:
      0 16px 34px rgba(0,0,0,.2),
      0 4px 10px rgba(0,0,0,.1),
      inset 0 1px 0 rgba(255,255,255,.05),
      inset 0 -1px 0 rgba(0,0,0,.28);
  }

  .art-frame,
  .dining-image {
    box-shadow:0 20px 42px rgba(0,0,0,.25),0 6px 14px rgba(0,0,0,.14);
  }
}

@media (prefers-reduced-motion:reduce) {
  .button,
  .access-card,
  .status-overview,
  .points-overview,
  .event-card,
  .member-card,
  .member-photo img {
    transition:none!important;
    transform:none!important;
  }
}

/* Production states and protected content */
html.auth-pending body { visibility:hidden; }
.rule-note { margin-block:1.75rem; padding:1.35rem 1.5rem; border:1px solid var(--line); border-left:2px solid var(--bronze); background:var(--surface); box-shadow:0 14px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.035); }
.rule-note h3 { margin-top:0; }
.rule-note p { color:var(--muted); }
.rule-note p + p { margin-top:.85rem; }
.not-found { min-height:70vh; display:grid; place-items:center; padding-block:5rem; }

.progress-0 { width:0%; }
.progress-5 { width:5%; }
.progress-10 { width:10%; }
.progress-15 { width:15%; }
.progress-20 { width:20%; }
.progress-25 { width:25%; }
.progress-30 { width:30%; }
.progress-35 { width:35%; }
.progress-40 { width:40%; }
.progress-45 { width:45%; }
.progress-50 { width:50%; }
.progress-55 { width:55%; }
.progress-60 { width:60%; }
.progress-65 { width:65%; }
.progress-70 { width:70%; }
.progress-75 { width:75%; }
.progress-80 { width:80%; }
.progress-85 { width:85%; }
.progress-90 { width:90%; }
.progress-95 { width:95%; }
.progress-100 { width:100%; }

/* Founder Control */
.founder-area { background:#101311; min-height:100vh; }
.founder-topbar { background:#101311; border-color:#2d322d; position:sticky; top:0; }
.founder-topbar-inner { min-height:92px; }
.founder-top-actions { display:flex; align-items:center; gap:1.35rem; font-size:.875rem; }
.founder-shell { display:grid; grid-template-columns:15rem minmax(0,1fr); gap:3rem; padding-block:2.5rem 6rem; }
.founder-sidebar { align-self:start; position:sticky; top:7.2rem; min-height:calc(100vh - 10rem); display:flex; flex-direction:column; padding:1.25rem; border:1px solid #2f352f; background:linear-gradient(160deg,#191d1a,#121512); box-shadow:0 24px 56px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.04); }
.founder-identity { display:flex; align-items:center; gap:.85rem; padding-bottom:1.4rem; border-bottom:1px solid var(--line); }
.founder-monogram { width:2.5rem; height:2.5rem; display:grid; place-items:center; border:1px solid var(--bronze); color:var(--bronze); font-family:var(--serif); font-size:1.25rem; box-shadow:0 8px 18px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05); }
.founder-identity strong { display:block; font-size:.78rem; letter-spacing:.14em; color:var(--bronze); }
.founder-identity small { display:block; color:var(--muted); font-size:.72rem; margin-top:.2rem; }
.founder-nav { display:flex; flex-direction:column; gap:.25rem; margin-top:1.4rem; }
.founder-nav button { appearance:none; border:0; background:transparent; color:var(--muted); text-align:left; padding:.8rem .75rem; border-left:1px solid transparent; font-size:.9rem; }
.founder-nav button:hover,.founder-nav button.is-active { color:var(--ink); background:rgba(255,255,255,.025); border-left-color:var(--bronze); }
.founder-sidebar-foot { margin-top:auto; padding-top:1.3rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; align-items:end; }
.founder-sidebar-foot span { color:var(--muted); font-size:.68rem; letter-spacing:.12em; }
.founder-sidebar-foot strong { color:var(--bronze); font-family:var(--serif); font-weight:400; font-size:1.5rem; }
.founder-content { min-width:0; }
.founder-panel { animation:founderFade .2s ease; }
@keyframes founderFade { from { opacity:.4; transform:translateY(4px); } to { opacity:1; transform:none; } }
.founder-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:3rem; align-items:end; border-bottom:1px solid var(--line); padding:1rem 0 2.5rem; }
.founder-heading h1 { font-size:clamp(3rem,5vw,5.5rem); margin:1rem 0 0; }
.founder-heading-copy { color:var(--muted); max-width:30rem; justify-self:end; padding-bottom:.55rem; }
.founder-metrics { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:.8rem; margin-top:1.25rem; }
.founder-metric { min-height:145px; padding:1.2rem; border:1px solid #343a34; background:linear-gradient(150deg,rgba(255,255,255,.035),transparent 36%),linear-gradient(160deg,#1b201c,#141815); box-shadow:0 18px 40px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05),inset 0 -1px 0 rgba(0,0,0,.34); display:flex; flex-direction:column; justify-content:space-between; }
.founder-metric span { font-size:.67rem; letter-spacing:.1em; color:var(--muted); }
.founder-metric strong { font-family:var(--serif); font-weight:400; font-size:2.6rem; line-height:1; }
.founder-metric small { color:var(--muted); }
.founder-metric-primary { border-color:#4b5147; }
.founder-metric-bronze { border-color:#765f48; background:radial-gradient(240px 130px at 100% 0%,rgba(195,165,129,.1),transparent 70%),linear-gradient(160deg,#211f19,#151714); }
.founder-metric-bronze strong { color:var(--bronze); }
.founder-overview-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:1rem; margin-top:1rem; }
.founder-surface { position:relative; border:1px solid #343a34; padding:1.5rem; background:linear-gradient(145deg,rgba(255,255,255,.03),transparent 32%),linear-gradient(160deg,#1a1f1b,#141815); box-shadow:0 22px 50px rgba(0,0,0,.24),0 5px 14px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.05),inset 0 -1px 0 rgba(0,0,0,.35); }
.founder-surface h2 { font-size:2rem; margin:.8rem 0 .5rem; }
.founder-inline-stat { border-top:1px solid var(--line); margin-top:2rem; padding-top:1rem; display:flex; justify-content:space-between; align-items:end; color:var(--muted); }
.founder-inline-stat strong { font-family:var(--serif); font-weight:400; color:var(--ink); font-size:2rem; }
.quick-actions { display:flex; flex-direction:column; gap:.8rem; margin-top:1.2rem; }
.quick-actions .text-button { align-self:flex-start; }
.founder-section-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; border-bottom:1px solid var(--line); padding:1rem 0 2rem; }
.founder-section-head h2 { margin:.7rem 0 .45rem; }
.founder-section-head p:last-child { color:var(--muted); }
.founder-toolbar { display:flex; gap:1rem; align-items:end; margin:1.25rem 0; }
.founder-search { flex:1; }
.founder-search,.founder-filter { display:flex; flex-direction:column; gap:.4rem; color:var(--muted); font-size:.75rem; }
.founder-search input,.founder-filter select,.table-select { background:#171b18; color:var(--ink); border:1px solid #3a4039; padding:.72rem .8rem; min-height:44px; }
.founder-filter select { min-width:11rem; }
.founder-table-wrap,.participants-table-wrap { width:100%; overflow:auto; border:1px solid #303630; background:#151915; box-shadow:0 18px 42px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.025); }
.founder-table { min-width:850px; }
.founder-table th { background:#1c211d; font-size:.72rem; letter-spacing:.06em; }
.founder-table td { background:#151915; color:var(--muted); }
.founder-table tr:hover td { background:#181d19; }
.founder-table tr.is-inactive td { opacity:.54; }
.founder-table td strong { color:var(--ink); font-weight:500; display:block; }
.founder-table td small { color:#858c83; display:block; font-size:.72rem; margin-top:.18rem; }
.admin-status { display:inline-flex; padding:.24rem .48rem; border:1px solid #485048; color:var(--ink); font-size:.7rem; letter-spacing:.05em; }
.admin-status.is-elite { border-color:var(--bronze); color:var(--bronze); }
.admin-founder { color:var(--bronze)!important; letter-spacing:.08em; }
.access-state { color:#a8afa5; }
.access-state.is-on::before { content:''; display:inline-block; width:.4rem; height:.4rem; border-radius:50%; background:#9fb393; margin-right:.45rem; box-shadow:0 0 10px rgba(159,179,147,.4); }
.table-action { appearance:none; background:transparent; border:0; color:var(--bronze); border-bottom:1px solid rgba(195,165,129,.55); padding:.2rem 0; font-size:.8rem; }
.table-action:disabled { color:#666; border-color:#555; cursor:not-allowed; }
.founder-empty { color:var(--muted); padding:2rem 0; text-align:center; }
.founder-event-list { display:flex; flex-direction:column; gap:.75rem; margin-top:1.25rem; }
.founder-event-card { display:grid; grid-template-columns:11rem 1fr auto; gap:1.5rem; align-items:center; padding:1.25rem 1.35rem; border:1px solid #343a34; background:linear-gradient(145deg,rgba(255,255,255,.025),transparent 36%),#171b18; box-shadow:0 15px 34px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.035); }
.founder-event-card.is-cancelled { opacity:.5; }
.founder-event-date { display:flex; flex-direction:column; border-right:1px solid var(--line); padding-right:1.2rem; }
.founder-event-date span { color:var(--muted); font-size:.8rem; }
.founder-event-date strong { font-family:var(--serif); font-size:1.8rem; font-weight:400; color:var(--bronze); }
.founder-event-kickers { display:flex; gap:.55rem; flex-wrap:wrap; }
.founder-event-kickers span { font-size:.65rem; letter-spacing:.08em; color:var(--bronze); border:1px solid #4e4b40; padding:.16rem .4rem; }
.founder-event-body h3 { font-size:1.45rem; margin:.45rem 0 .2rem; }
.founder-event-body p { color:var(--muted); font-size:.88rem; }
.founder-event-stats { display:flex; gap:1.2rem; margin-top:.75rem; color:var(--muted); font-size:.76rem; }
.founder-event-stats strong { color:var(--ink); font-weight:500; }
.founder-event-actions { display:flex; align-items:center; gap:1rem; }
.founder-communications-grid { display:grid; grid-template-columns:1.4fr .7fr; gap:1rem; margin-top:1.25rem; align-items:start; }
.founder-mail-form fieldset { margin-bottom:1.6rem; }
.founder-mail-form legend { border:0; margin:0 0 .8rem; padding:0; }
.founder-mail-form .field + .field { margin-top:1rem; }
.status-flags { display:flex; gap:.55rem; flex-wrap:wrap; }
.status-flags label { cursor:pointer; }
.status-flags input { position:absolute; opacity:0; pointer-events:none; }
.status-flags span { display:inline-flex; padding:.5rem .7rem; border:1px solid #424842; color:var(--muted); font-size:.72rem; letter-spacing:.04em; transition:.2s; }
.status-flags input:checked + span { color:#141716; background:var(--bronze); border-color:var(--bronze); box-shadow:0 8px 18px rgba(0,0,0,.18); }
.founder-mail-form textarea { min-height:230px; }
.mail-compose-foot { border-top:1px solid var(--line); padding-top:1.1rem; margin-top:1.25rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.mail-compose-foot p { color:var(--muted); font-size:.82rem; }
.mail-compose-foot > div { display:flex; gap:.6rem; }
.founder-feedback { margin-top:1rem; padding:.75rem .9rem; border:1px solid #3d493c; background:#172019; color:#b8c6b3; font-size:.84rem; }
.founder-feedback.is-error { border-color:#69453e; background:#241916; color:#e0b5a9; }
.founder-campaigns { position:sticky; top:7.5rem; }
.campaign-row { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.8rem; }
.campaign-row strong { display:block; color:var(--ink); font-weight:500; }
.campaign-row span { color:var(--muted); }
.campaign-row > span { white-space:nowrap; }
.founder-dialog { width:min(850px,calc(100% - 2rem)); max-height:90vh; padding:0; border:1px solid #4a5149; background:#141815; color:var(--ink); box-shadow:0 45px 110px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.05); }
.founder-dialog::backdrop { background:rgba(5,7,5,.78); backdrop-filter:blur(5px); }
.founder-dialog-wide { width:min(1120px,calc(100% - 2rem)); }
.dialog-shell { padding:1.6rem; margin:0; }
.dialog-head { display:flex; justify-content:space-between; gap:2rem; align-items:start; padding-bottom:1.25rem; border-bottom:1px solid var(--line); }
.dialog-head h2 { font-size:2rem; margin-top:.35rem; }
.dialog-close { appearance:none; border:1px solid #3d433d; background:#181c19; color:var(--muted); width:2.4rem; height:2.4rem; font-size:1.5rem; line-height:1; }
.dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.35rem; }
.dialog-checks { display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:1rem; }
.dialog-actions { border-top:1px solid var(--line); margin-top:1.4rem; padding-top:1rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.dialog-actions > div { display:flex; gap:.6rem; margin-left:auto; }
.dialog-actions-end { justify-content:flex-end; }
.danger-action { color:#d6a096; border-color:#82584f; }
.attendance-toggle { display:flex; gap:.55rem; align-items:center; cursor:pointer; }
.attendance-toggle input { accent-color:var(--bronze); width:18px; height:18px; }
.participants-table td { vertical-align:middle; }
body.is-loading-data .founder-content { opacity:.72; }

@media (hover:hover) and (pointer:fine) {
  .founder-metric,.founder-surface,.founder-event-card { transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease; }
  .founder-metric:hover,.founder-surface:hover { transform:translateY(-3px); border-color:#454d45; box-shadow:0 26px 58px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.055); }
  .founder-event-card:hover { transform:translateY(-2px); border-color:#444b44; box-shadow:0 20px 44px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045); }
}

@media (max-width:1100px) {
  .founder-shell { grid-template-columns:12rem minmax(0,1fr); gap:1.5rem; }
  .founder-metrics { grid-template-columns:repeat(3,1fr); }
  .founder-metric-primary { grid-column:span 2; }
  .founder-event-card { grid-template-columns:9rem 1fr; }
  .founder-event-actions { grid-column:1/-1; justify-content:flex-end; border-top:1px solid var(--line); padding-top:.8rem; }
  .founder-communications-grid { grid-template-columns:1fr; }
  .founder-campaigns { position:static; }
}

@media (max-width:800px) {
  .founder-topbar { position:relative; }
  .founder-topbar-inner { min-height:auto; }
  .founder-top-actions { width:100%; justify-content:space-between; border-top:1px solid var(--line); padding-top:.8rem; }
  .founder-shell { grid-template-columns:1fr; padding-block:1rem 4rem; }
  .founder-sidebar { position:static; min-height:auto; padding:.85rem; }
  .founder-identity,.founder-sidebar-foot { display:none; }
  .founder-nav { margin:0; flex-direction:row; overflow:auto; }
  .founder-nav button { white-space:nowrap; border-left:0; border-bottom:1px solid transparent; }
  .founder-nav button.is-active { border-bottom-color:var(--bronze); }
  .founder-heading { grid-template-columns:1fr; gap:1rem; padding-bottom:1.6rem; }
  .founder-heading-copy { justify-self:start; }
  .founder-overview-grid { grid-template-columns:1fr; }
  .founder-section-head { align-items:start; flex-direction:column; }
  .founder-section-head .button { width:100%; }
  .founder-toolbar { flex-direction:column; align-items:stretch; }
  .founder-filter select { width:100%; }
  .mail-compose-foot { flex-direction:column; align-items:stretch; }
  .mail-compose-foot > div { flex-direction:column; }
  .dialog-grid { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  .founder-metrics { grid-template-columns:1fr 1fr; }
  .founder-metric-primary { grid-column:1/-1; }
  .founder-metric { min-height:120px; }
  .founder-event-card { grid-template-columns:1fr; gap:.8rem; }
  .founder-event-date { border-right:0; border-bottom:1px solid var(--line); padding:0 0 .7rem; flex-direction:row; justify-content:space-between; align-items:end; }
  .founder-event-actions { grid-column:auto; justify-content:flex-start; }
  .founder-event-stats { flex-wrap:wrap; }
  .dialog-shell { padding:1rem; }
  .dialog-actions { align-items:stretch; flex-direction:column; }
  .dialog-actions > div { margin-left:0; flex-direction:column; }
  .dialog-actions .button { width:100%; }
}
