:root{--cream:#f7f1e7;--paper:#fffdfa;--peach:#e69a6b;--peach-soft:#f4d5bc;--sage:#a8b879;--sage-soft:#dfe6cc;--brown:#4b1f14;--brown-soft:#7a5545;--line:#eadfce;--shadow:0 20px 50px #4b1f1414;--shadow-soft:0 12px 28px #4b1f140f;--success:#52714d;--danger:#8d473a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #e69a6b24, transparent 22%), radial-gradient(circle at top right, #a8b8792e, transparent 20%), var(--cream);color:var(--brown);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:DM Sans,Arial,sans-serif;line-height:1.55}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #a8b879bf}h1,h2,h3,p,ol{margin-top:0}h1,h2,h3{color:var(--brown);font-family:Playfair Display,Georgia,serif}.brand-shell{width:min(1200px,100% - 32px);margin:0 auto}.site-header{justify-content:space-between;align-items:center;gap:18px;padding:22px 0 14px;display:flex}.brand-lockup,.sidebar-brand{align-items:center;gap:14px;display:flex}.brand-lockup strong,.sidebar-brand strong{font-family:Playfair Display,Georgia,serif;font-size:28px;font-weight:500;line-height:1;display:block}.brand-lockup span,.sidebar-brand span{color:var(--brown-soft);letter-spacing:.18em;text-transform:uppercase;margin-top:6px;font-size:11px;display:block}.brand-logo{aspect-ratio:1;background:#ffffffb8;border:1px solid #e69a6b38;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:78px;padding:10px;display:inline-flex;box-shadow:0 10px 24px #4b1f1414}.brand-logo.large{width:146px;padding:14px}.brand-logo img{object-fit:contain;width:100%;height:100%}.quiet-link,.sidebar-bottom a,.sidebar-bottom button,.text-button{color:var(--brown-soft);align-items:center;gap:8px;font-size:14px;display:inline-flex}.quiet-link:hover,.sidebar-bottom a:hover,.sidebar-bottom button:hover,.text-button:hover{color:var(--brown)}.join-layout{grid-template-columns:1.05fr .95fr;gap:34px;padding:18px 0 30px;display:grid}.story-panel,.join-panel,.hero-card,.auth-card,.data-panel,.settings-card,.qr-description,.profile-modal,.help,.stat,.qr-poster{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-soft);background:#fffdfae6;border:1px solid #eadfcef2}.story-panel{flex-direction:column;gap:22px;display:flex}.hero-card{border-radius:36px;padding:34px;position:relative;overflow:hidden}.hero-card:before,.join-panel:before,.auth-card:before,.settings-card:before,.qr-poster:before,.qr-description:before,.profile-modal:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #e69a6b2e;position:absolute;inset:10px}.eyebrow{letter-spacing:.16em;color:var(--brown-soft);text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:700;display:inline-flex}.eyebrow>span,.owner-badge>span{background:linear-gradient(135deg, var(--peach), var(--sage));border-radius:50%;flex-shrink:0;width:8px;height:8px}.center-eyebrow{justify-content:center}.story-panel h1,.title-row h1,.help h1{letter-spacing:-.04em;margin:22px 0 18px;font-size:clamp(40px,5vw,66px);line-height:1.02}.story-panel h1 em,.qr-poster h2 em,.qr-description h2 em{color:var(--peach);font-style:italic}.intro,.title-row p,.help p,.help li,.hero-card p,.auth-card p,.settings-card p,.qr-description p,.qr-poster p{color:var(--brown-soft);font-size:15px}.benefit-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px;display:grid}.benefit-list div,.steps>div{background:linear-gradient(#ffffffd6,#f7f1e7e6);border:1px solid #eadfcee6;border-radius:18px;padding:16px}.benefit-list b,.steps b{min-width:30px;min-height:30px;color:var(--peach);background:#e69a6b24;border-radius:999px;justify-content:center;align-items:center;margin-bottom:10px;font-size:12px;display:inline-flex}.benefit-list span,.steps span{font-size:13px;font-weight:600;display:block}.benefit-list div>span:last-child,.steps small,.form-heading p,label small,.optional,.notice,small,.pagination span,.muted,.privacy,.help code,.profile-balance small,.activity-list small,.table-toolbar span,.card-caption,.card-bottom{color:var(--brown-soft)}.benefit-list div>span:last-child{margin-top:4px;font-weight:400}.club-card{color:#fff9f3;box-shadow:var(--shadow);background:linear-gradient(135deg,#e69a6bf2,#a8b879f2);border-radius:26px;padding:24px;transform:rotate(-1.8deg)}.card-top,.card-bottom,.steps,.action-row,.stats,.title-row,.table-toolbar,.pagination,.profile-balance,.activity-heading,.qr-panel,.footer-bar,.dash-header{justify-content:space-between;align-items:center;display:flex}.card-top{font-family:Playfair Display,Georgia,serif;font-size:24px}.card-caption,.card-bottom{letter-spacing:.12em;text-transform:uppercase;font-size:11px}.card-caption{color:#fff9f3d6;margin:10px 0 18px}.card-bottom{color:#fff9f3db;margin-top:18px}.stamp-row{gap:12px;display:flex}.stamp-row>span{border:1px dashed #fff9f3b3;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.stamp-row>span.filled{color:var(--peach);background:#fff9f3eb;border-color:#0000}.steps{align-items:stretch;gap:14px}.steps>div{flex:1}.steps small{margin-top:4px;font-size:12px;display:block}.join-panel,.auth-card,.settings-card,.qr-description,.qr-poster,.profile-modal,.help{border-radius:34px;position:relative}.join-panel,.auth-card,.settings-card,.qr-description,.qr-poster,.profile-modal{padding:30px}.form-heading{text-align:center;margin-bottom:10px}.form-heading h2,.success h2,.auth-card h2,.settings-card h2,.qr-description h2,.qr-poster h2,.profile-modal h2{margin:14px 0 10px;font-size:clamp(30px,3vw,42px);line-height:1.08}form label{margin:16px 0;font-size:13px;font-weight:600;display:block}label>span:not(.optional){color:var(--peach)}label input:not([type=checkbox]),label select,label textarea{border:1px solid var(--line);width:100%;min-height:52px;color:var(--brown);background:#fffdfa;border-radius:16px;margin-top:8px;padding:14px 16px}input::placeholder,textarea::placeholder{color:#aa978c}.optional{float:right;font-size:12px;font-weight:500}.check-label{align-items:flex-start;gap:10px;font-weight:400;display:flex}.check-label input{accent-color:var(--sage);flex-shrink:0;width:16px;height:16px;margin-top:4px}.check-label>span{color:var(--brown);font-size:13px}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:13px 18px;font-size:14px;font-weight:700;transition:transform .15s,background .15s,border-color .15s;display:inline-flex}.button:hover{transform:translateY(-1px)}.primary{background:linear-gradient(135deg, var(--brown), #6b3525);width:100%;color:var(--cream);justify-content:space-between;box-shadow:0 12px 24px #4b1f142e}.secondary{color:var(--brown);background:#ffffffc2;border-color:#e69a6b40}.compact{width:auto;min-height:42px;padding:10px 16px}.center-button{justify-content:center}.honeypot{position:absolute;left:-9999px}.error,.notice{border-radius:16px;align-items:center;gap:8px;margin-top:14px;padding:13px 14px;font-size:14px;display:flex}.error{color:var(--danger);background:#8d473a17;border:1px solid #8d473a29}.notice{color:var(--success);background:#52714d14;border:1px solid #52714d29}.privacy{align-items:flex-start;gap:8px;margin-top:16px;font-size:12px;display:flex}.soft-center{justify-content:center}.success{text-align:center;flex-direction:column;align-items:center;display:flex}.success-icon{width:64px;height:64px;color:var(--success);background:#a8b8792e;border-radius:50%;place-items:center;margin:18px 0 12px;display:grid}.member-number{color:var(--brown);letter-spacing:.08em;background:linear-gradient(135deg,#e69a6b24,#a8b87929);border-radius:18px;margin:12px 0 16px;padding:16px 20px;font-size:clamp(24px,4vw,34px);display:inline-block}.copy-member{margin-bottom:16px}.footer-bar{color:var(--brown-soft);padding:22px 0 40px;font-size:13px}.auth-shell{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:24px 0;display:flex}.auth-card{text-align:center;width:min(560px,100%)}.dashboard{grid-template-columns:300px minmax(0,1fr);min-height:100dvh;display:grid}.dashboard>aside{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9f3d1;border-right:1px solid #eadfcef2;flex-direction:column;gap:20px;padding:28px 20px;display:flex}.sidebar-label{color:var(--brown-soft);letter-spacing:.18em;font-size:11px;font-weight:700}nav{gap:10px;display:grid}nav button{width:100%;color:var(--brown);border:1px solid #0000;border-radius:18px;align-items:center;gap:10px;padding:14px 16px;display:flex}nav button.active,nav button:hover{background:#e69a6b24;border-color:#e69a6b2e}.sidebar-bottom{gap:12px;margin-top:auto;display:grid}.dashboard-main{padding:32px}.dash-header{flex-wrap:wrap;gap:12px}.owner-badge{color:var(--brown-soft);background:#ffffffbf;border:1px solid #e69a6b29;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:inline-flex}.title-row{gap:20px;margin:16px 0 22px}.stats{gap:16px;margin-bottom:18px}.stat{border-radius:28px;flex:1;min-width:0;padding:22px}.stat>div{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.stat strong{font-size:clamp(30px,4vw,42px);display:block}.stat-0{background:linear-gradient(135deg,#ffffffeb,#f4d5bca6)}.stat-1{background:linear-gradient(135deg,#ffffffeb,#dfe6ccb8)}.stat-2{background:linear-gradient(135deg,#ffffffeb,#e69a6b24)}.data-panel{border-radius:30px;padding:22px}.table-toolbar{gap:16px;margin-bottom:18px}.search{border:1px solid var(--line);background:#fffdfa;border-radius:999px;align-items:center;gap:10px;width:min(380px,100%);padding:0 14px;display:flex}.search input{background:0 0!important;border:0!important;min-height:auto!important;margin-top:0!important;padding:14px 0!important}.table-scroll{border:1px solid #eadfcecc;border-radius:22px;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:780px}th,td{text-align:left;border-bottom:1px solid #eadfceb3;padding:14px 16px;font-size:14px}th{color:var(--brown-soft);background:#f7f1e78c;font-weight:700}td strong,.activity-list strong{display:block}td small,.activity-list small{margin-top:4px;display:block}tbody tr{cursor:pointer;transition:background .12s}tbody tr:hover{background:#e69a6b0f}.balance-pill{min-width:42px;color:var(--brown);background:#a8b8792e;border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-weight:700;display:inline-flex}.icon-button{width:38px;height:38px;color:var(--brown);background:#e69a6b1f;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.empty{text-align:center;color:var(--brown-soft);padding:34px 16px 18px}.empty svg{margin:0 auto 10px}.pagination{gap:16px;margin-top:16px}.pagination>div{gap:10px;display:flex}.pagination button{background:#ffffffb8;border:1px solid #e69a6b2e;border-radius:999px;min-height:40px;padding:10px 14px}.program-strip{background:linear-gradient(135deg,#e69a6b1f,#a8b8792e);border-radius:20px;gap:14px;margin-top:18px;padding:14px 18px}.program-strip button{color:var(--brown);align-items:center;gap:6px;font-weight:700;display:inline-flex}.info{color:var(--brown-soft);background:#a8b8791f;border-radius:18px;margin:10px 0 18px;padding:14px 16px}.qr-panel{align-items:stretch;gap:20px}.qr-poster,.qr-description{flex:1}.qr-poster{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.qr{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(280px,80%);padding:18px}.modal-backdrop{z-index:30;background:#2e191257;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.profile-modal{width:min(760px,100%);max-height:92dvh;overflow:auto}.close{position:absolute;top:22px;right:22px}.mono{color:var(--brown-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.profile-balance{background:#a8b8791f;border-radius:20px;margin:18px 0;padding:16px 18px}.profile-balance strong{font-size:28px;display:block}.confirm,.award-form,details{margin-top:18px}details summary{cursor:pointer;margin-bottom:12px;font-weight:700}.activity-heading{margin-top:18px}.activity-list{gap:12px;margin-top:10px;display:grid}.activity-list>div{background:#ffffffb3;border:1px solid #eadfcecc;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:14px;display:grid}.activity-list p{margin:4px 0}.activity-symbol{border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.activity-symbol.award{background:#a8b8792e}.activity-symbol.redeem{background:#e69a6b2e}.help{width:min(900px,100% - 24px);margin:24px auto;padding:28px}.help h2{margin-top:26px;font-size:28px}.help code{background:#e69a6b1f;border-radius:999px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@media (max-width:1024px){.join-layout,.dashboard{grid-template-columns:1fr}.dashboard>aside{border-bottom:1px solid #eadfcef2;border-right:0}.stats,.qr-panel,.benefit-list,.steps,.title-row,.footer-bar{flex-direction:column;align-items:stretch}.benefit-list{grid-template-columns:1fr}.table-toolbar{flex-direction:column;align-items:stretch}.search{width:100%}}@media (max-width:640px){.brand-shell{width:min(100% - 20px,1200px)}.site-header{flex-direction:column;align-items:flex-start;padding-top:14px}.brand-lockup strong,.sidebar-brand strong{font-size:22px}.brand-logo{width:68px}.brand-logo.large{width:118px}.hero-card,.join-panel,.auth-card,.settings-card,.qr-poster,.qr-description,.profile-modal,.help,.data-panel{border-radius:26px;padding:22px}.story-panel h1,.title-row h1,.help h1{font-size:38px}.stats{gap:12px}.dashboard-main{padding:18px}.program-strip,.pagination,.card-top,.card-bottom,.profile-balance,.dash-header{flex-direction:column;align-items:flex-start}.activity-list>div{grid-template-columns:1fr}}
