:root{
  --cream:#F1E6D2;--cream-2:#E9DCC5;--paper:#F8F3E8;--green:#263A28;--green-2:#304632;
  --sage:#8D9878;--sage-2:#A5AB8A;--tape:#CDBA96;--tape-2:#D8C7A8;--gold:#B9934F;
  --ink:#223125;--muted:#667062;--line:#c7b99e;--danger:#8e3f35;--shadow:0 5px 14px rgba(46,54,40,.08);
  --serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}html{background:var(--cream);color:var(--ink)}body{margin:0;font-family:var(--sans);background:
  radial-gradient(circle at 15% 10%,rgba(255,255,255,.35),transparent 25%),
  linear-gradient(rgba(38,58,40,.022) 1px,transparent 1px),var(--cream);background-size:auto,100% 28px,auto;min-height:100vh}
button,input,textarea,select{font:inherit;color:inherit}button,a{touch-action:manipulation}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:.78rem}.small{font-size:.88rem}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* landing */
.landing{min-height:100vh;display:grid;place-items:center;padding:28px 18px 80px;position:relative;overflow:hidden}.landing:before,.landing:after{content:"";position:absolute;width:150px;height:44px;background:rgba(205,186,150,.68);transform:rotate(-7deg);z-index:0}.landing:before{top:6%;left:-35px}.landing:after{bottom:7%;right:-35px;transform:rotate(8deg)}
.landing-card{position:relative;z-index:1;width:min(100%,980px);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;overflow:hidden}.landing-hero{padding:42px 26px 34px;position:relative;background:linear-gradient(150deg,#f8f3e8 0 73%,#ede0c8 73%)}.landing-login{padding:28px 24px;background:#f5eddd;border-top:1px dashed var(--line)}
.brand-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;color:var(--sage);font-weight:800}.brand-title{font-family:var(--serif);font-size:clamp(2.5rem,8vw,5.5rem);line-height:.9;margin:12px 0 14px;color:var(--green);letter-spacing:-.045em}.brand-title span{display:block;font-style:italic;font-weight:400}.brand-sub{font-size:1.02rem;line-height:1.55;max-width:560px}.paper-note{display:inline-block;margin-top:22px;background:#fffdf7;padding:10px 14px;border:1px solid #d4c8b0;transform:rotate(-1.5deg);font-family:var(--serif);font-style:italic}.login-title{font-family:var(--serif);font-size:1.55rem;margin:0 0 7px}.field{display:grid;gap:6px;margin:14px 0}.field label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--green-2)}.input,.textarea,.select{width:100%;border:1px solid #b9ad96;background:#fffdf7;padding:12px 13px;border-radius:2px;outline:none}.input:focus,.textarea:focus,.select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(48,70,50,.1)}.textarea{min-height:96px;resize:vertical}.btn{border:1px solid var(--green);background:var(--green);color:#fffdf7;padding:10px 14px;min-height:42px;border-radius:2px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn:hover{filter:brightness(.96)}.btn.secondary{background:var(--paper);color:var(--green)}.btn.ghost{background:transparent;color:var(--green);border-color:transparent}.btn.sage{background:var(--sage);border-color:var(--sage)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.small{padding:7px 10px;min-height:34px;font-size:.83rem}.btn.wide{width:100%}.login-actions{display:grid;gap:9px;margin-top:18px}.demo-note{font-size:.76rem;line-height:1.45;color:var(--muted);margin-top:12px}

/* onboarding */
.onboarding-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.onboarding{width:min(100%,720px);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);position:relative;padding:28px 22px}.onboarding:before{content:"";position:absolute;width:130px;height:28px;background:rgba(205,186,150,.68);top:-12px;left:50%;transform:translateX(-50%) rotate(-2deg)}.progress{display:flex;gap:6px;margin:16px 0 22px}.progress i{height:6px;flex:1;background:#d8cdb9}.progress i.active{background:var(--green)}.onboarding h1{font-family:var(--serif);font-size:2rem;margin:0}.choice-grid{display:flex;flex-wrap:wrap;gap:8px}.choice{border:1px solid #b9ad96;background:#fffdf7;padding:8px 10px;cursor:pointer}.choice.selected{background:var(--green);color:white;border-color:var(--green)}.onboarding-nav{display:flex;justify-content:space-between;gap:10px;margin-top:24px}

/* app shell */
.shell{min-height:100vh}.topbar{height:62px;position:sticky;top:0;z-index:30;background:rgba(248,243,232,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 15px}.mini-brand{text-decoration:none;display:flex;align-items:baseline;gap:7px;color:var(--green)}.mini-brand strong{font-family:var(--serif);font-size:1.35rem;letter-spacing:-.03em}.mini-brand span{font-size:.72rem;color:var(--sage);font-weight:800}.top-actions{display:flex;align-items:center;gap:6px}.icon-btn{width:40px;height:40px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:1.1rem;position:relative}.icon-btn:hover{background:rgba(48,70,50,.08)}.dot{position:absolute;width:8px;height:8px;background:var(--gold);border-radius:50%;right:7px;top:7px;border:2px solid var(--paper)}
.app-grid{width:min(100%,1240px);margin:auto;display:grid;grid-template-columns:1fr;gap:18px;padding:15px 14px 88px}.left-nav,.right-rail{display:none}.main{min-width:0}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:35;background:rgba(248,243,232,.98);border-top:1px solid var(--line);height:68px;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:max(0px,env(safe-area-inset-bottom))}.mobile-nav a{font-size:.68rem;text-decoration:none;display:grid;place-items:center;align-content:center;gap:3px;color:var(--muted)}.mobile-nav a b{font-size:1rem}.mobile-nav a.active{color:var(--green);font-weight:900}.desktop-post{display:none}
.nav-card{background:rgba(248,243,232,.72);border:1px solid var(--line);padding:9px}.nav-card a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:10px 9px;border-left:3px solid transparent;font-size:.9rem}.nav-card a:hover,.nav-card a.active{background:#ece4d3;border-left-color:var(--green);font-weight:800}.nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--sage);padding:10px 10px 3px}

/* reusable paper UI */
.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:5px 0 14px}.page-title h1{font-family:var(--serif);font-size:clamp(1.65rem,5vw,2.35rem);margin:0;color:var(--green);letter-spacing:-.025em}.page-title p{margin:4px 0 0;color:var(--muted);font-size:.88rem}.paper{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.torn{clip-path:polygon(0 1%,4% 0,8% 1%,12% 0,17% 1%,22% 0,27% 1%,31% 0,36% 1%,41% 0,46% 1%,51% 0,56% 1%,61% 0,66% 1%,72% 0,77% 1%,82% 0,87% 1%,92% 0,96% 1%,100% 0,100% 99%,95% 100%,90% 99%,84% 100%,79% 99%,73% 100%,68% 99%,62% 100%,57% 99%,52% 100%,46% 99%,40% 100%,34% 99%,28% 100%,22% 99%,16% 100%,10% 99%,5% 100%,0 99%)}.section-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:var(--sage)}.hand{font-family:'Comic Sans MS','Bradley Hand',cursive;font-weight:700;transform:rotate(-1deg)}.rule{height:1px;background:var(--line);margin:15px 0}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #b9ad96;background:#f3ead9;padding:4px 8px;font-size:.75rem;line-height:1.2;border-radius:99px}.pill.green{background:#e4e8da;border-color:#adb79a;color:#314332}.pill.gold{background:#efe2c6;border-color:#c7aa6b}.stack{display:grid;gap:12px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.avatar{width:42px;height:42px;border-radius:50%;background:var(--green-2);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:900;border:2px solid #d9cbae;flex:0 0 auto}.avatar.lg{width:72px;height:72px;font-size:1.3rem}.avatar.sm{width:32px;height:32px;font-size:.72rem}.username{font-size:.77rem;color:var(--muted)}

/* home */
.prompt{padding:19px 17px;margin-bottom:13px;position:relative}.prompt:before{content:"";position:absolute;width:96px;height:22px;background:rgba(205,186,150,.6);top:-9px;right:16%;transform:rotate(3deg)}.prompt h2{font-family:var(--serif);font-size:1.3rem;margin:0 0 12px}.composer-mini{display:flex;gap:10px}.composer-trigger{flex:1;text-align:left;border:1px solid #c0b49d;background:#fffdf7;padding:11px 12px;color:var(--muted);cursor:text}.filter-tabs{display:flex;gap:5px;overflow:auto;padding:2px 0 11px;scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.tab{border:1px solid #b9ad96;background:#f3ead9;padding:7px 11px;white-space:nowrap;cursor:pointer;font-size:.82rem}.tab.active{background:var(--green);color:white;border-color:var(--green)}.post{padding:16px;margin-bottom:11px}.post-head{display:flex;align-items:flex-start;gap:10px}.post-meta{min-width:0;flex:1}.post-name{font-weight:900;line-height:1.2}.post-time{font-size:.73rem;color:var(--muted);margin-top:2px}.post-body{font-size:.98rem;line-height:1.52;margin:13px 0;white-space:pre-wrap}.post-tags{display:flex;gap:6px;flex-wrap:wrap}.post-actions{display:flex;justify-content:space-between;gap:7px;margin-top:14px;border-top:1px dashed #d4c7ae;padding-top:10px}.post-action{border:0;background:transparent;padding:6px 7px;cursor:pointer;font-size:.8rem;color:var(--muted)}.post-action:hover,.post-action.active{color:var(--green);font-weight:800}.pagination{display:flex;align-items:center;justify-content:space-between;padding:15px 2px 4px}.page-count{font-size:.78rem;color:var(--muted)}
.daily{padding:16px;background:#e9eadf;border:1px solid #b5bda8}.daily strong{font-family:var(--serif);font-size:1.05rem;display:block;margin:5px 0}.daily a{font-size:.8rem;font-weight:800}.rail-card{padding:14px;margin-bottom:12px}.rail-card h3{font-family:var(--serif);font-size:1.08rem;margin:0 0 11px}.vibe{display:flex;gap:9px;padding:9px 0;border-bottom:1px dashed #d0c3aa}.vibe:last-child{border-bottom:0}.vibe strong{font-size:.86rem}.vibe .small{font-size:.75rem}.status-picker select{width:100%;padding:8px;border:1px solid #b7ab94;background:#fffdf7;margin:8px 0}

/* explore */
.searchbox{padding:13px;margin-bottom:14px}.searchbox .input{font-size:1rem}.section{margin:20px 0}.section h2{font-family:var(--serif);font-size:1.35rem;margin:0 0 10px}.card-grid{display:grid;grid-template-columns:1fr;gap:10px}.person-card,.major-card,.club-card,.mini-card{padding:14px}.person-card{position:relative}.common{font-size:.76rem;color:var(--muted);margin:9px 0}.badge-row{display:flex;flex-wrap:wrap;gap:5px}.campus-now{display:grid;grid-template-columns:1fr;gap:8px}.status-card{display:flex;align-items:center;gap:10px;padding:11px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--sage)}.tag-cloud{display:flex;gap:7px;flex-wrap:wrap}.tag-cloud .pill{cursor:pointer}
.search-results{margin-top:13px}.result-group{margin:14px 0}.result-group h3{font-family:var(--serif);font-size:1.02rem;margin:0 0 8px}.result{display:flex;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px dashed #d5c8ae;font-size:.87rem}

/* majors/clubs */
.major-card a,.club-card a{text-decoration:none}.major-card h3,.club-card h3{font-family:var(--serif);margin:0 0 5px;font-size:1.05rem}.major-card p,.club-card p{margin:0;color:var(--muted);font-size:.8rem}.major-card:hover,.club-card:hover{outline:2px solid rgba(48,70,50,.14)}.major-hero{padding:20px;margin-bottom:14px;background:linear-gradient(130deg,#f8f3e8 0 66%,#e5e6d8 66%)}.major-hero h1{font-family:var(--serif);font-size:2rem;margin:4px 0}.student-strip{display:flex;overflow:auto;gap:9px;padding-bottom:3px}.student-chip{min-width:150px;padding:10px}.club-toolbar{display:grid;gap:8px;margin:12px 0}.club-card .club-meta{display:grid;gap:4px;margin:10px 0;font-size:.79rem}.club-actions{display:flex;gap:6px;flex-wrap:wrap}.state-btn.active{background:var(--green);color:white}.source-note{padding:12px 14px;background:#eee5d3;border-left:4px solid var(--gold);font-size:.8rem;line-height:1.45;margin:12px 0}

/* messages */
.messages-shell{background:var(--paper);border:1px solid var(--line);min-height:560px;display:grid;grid-template-columns:1fr}.chat-list{border-bottom:1px solid var(--line)}.chat-list-head{padding:13px;border-bottom:1px solid var(--line)}.chat-list-head .filter-tabs{padding-bottom:0}.chat-row{padding:11px 12px;display:flex;gap:9px;cursor:pointer;border-bottom:1px solid #e2d8c5}.chat-row:hover,.chat-row.active{background:#ebe5d8}.chat-row .preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.76rem;max-width:220px}.chat-pane{min-width:0}.chat-head{padding:12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px}.messages{padding:15px;display:flex;flex-direction:column;gap:9px;min-height:380px;background:linear-gradient(#f8f3e8cc,#f8f3e8cc),repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(48,70,50,.07) 28px)}.bubble{max-width:78%;padding:9px 11px;border:1px solid #c6baa2;background:white;font-size:.88rem;line-height:1.35}.bubble.me{margin-left:auto;background:#e4e8da;border-color:#abb497}.chat-compose{padding:10px;border-top:1px solid var(--line);display:flex;gap:7px}.chat-compose input{flex:1}

/* profile */
.profile-cover{height:100px;background:linear-gradient(110deg,#b7bea4,#e8dec9);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.profile-cover:after{content:"NOVA  ✦  ANNANDALE  ✦  NOVA  ✦  ANNANDALE";position:absolute;inset:auto -20px 10px;color:rgba(38,58,40,.18);font-family:var(--serif);font-weight:900;font-size:1.55rem;white-space:nowrap;transform:rotate(-2deg)}.profile-main{padding:0 16px 18px}.profile-top{margin-top:-36px;position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.profile-top .avatar{border:4px solid var(--paper)}.profile-name{font-family:var(--serif);font-size:1.55rem;margin:10px 0 0}.profile-bio{line-height:1.5;font-size:.9rem}.profile-tabs{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:13px -16px 0}.profile-tabs button{flex:1;border:0;background:transparent;padding:11px 6px;cursor:pointer}.profile-tabs button.active{background:#ece6d9;font-weight:900}.about-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.about-card{padding:12px;background:#f3ead9;border:1px solid #d2c5ad}.wall-item{padding:11px 0;border-bottom:1px dashed #cfbea0}.wall-compose{display:flex;gap:7px;margin-bottom:8px}

/* notifications/settings/admin */
.notice{padding:13px;display:flex;gap:10px;border-bottom:1px solid #ddd1ba}.notice.unread{background:#eceddf}.notice-text{font-size:.86rem;line-height:1.4}.settings-group{padding:16px;margin-bottom:12px}.settings-group h2{font-family:var(--serif);font-size:1.25rem;margin:0 0 12px}.toggle-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px dashed #d4c7ae}.switch{width:44px;height:24px;background:#c9c1b0;border-radius:99px;position:relative;cursor:pointer;border:0;flex:0 0 auto}.switch:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:white;left:3px;top:3px;transition:.15s}.switch.on{background:var(--green)}.switch.on:after{left:23px}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.admin-stat{padding:14px}.admin-stat strong{font-family:var(--serif);font-size:1.8rem;display:block}.report-row{padding:12px 0;border-bottom:1px solid #ddd0b9;display:grid;gap:5px}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(27,34,28,.48);z-index:70;display:grid;place-items:end center;padding:0}.modal{width:min(100%,650px);max-height:92vh;overflow:auto;background:var(--paper);border:1px solid var(--line);padding:18px;box-shadow:0 -10px 30px rgba(0,0,0,.18)}.modal h2{font-family:var(--serif);margin:0}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-close{border:0;background:transparent;font-size:1.4rem;cursor:pointer}.modal-grid{display:grid;grid-template-columns:1fr;gap:10px}.checkline{display:flex;align-items:center;gap:8px;font-size:.86rem}.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:100;background:var(--green);color:white;padding:10px 14px;font-size:.82rem;box-shadow:var(--shadow);animation:toast .2s ease-out}@keyframes toast{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

@media(min-width:640px){
  .landing-card{grid-template-columns:1.4fr .8fr}.landing-login{border-top:0;border-left:1px dashed var(--line)}
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campus-now{grid-template-columns:repeat(2,1fr)}.club-toolbar{grid-template-columns:1fr 180px}.about-grid{grid-template-columns:repeat(2,1fr)}.modal{margin-bottom:5vh;place-self:center;border-radius:2px}.messages-shell{grid-template-columns:260px 1fr}.chat-list{border-right:1px solid var(--line);border-bottom:0}.admin-grid{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:940px){
  .topbar{padding:0 28px}.app-grid{grid-template-columns:180px minmax(0,650px) 260px;padding:22px 18px 40px;align-items:start}.left-nav,.right-rail{display:block;position:sticky;top:82px}.mobile-nav{display:none}.desktop-post{display:flex;margin-top:10px;width:100%}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main.wide-main{grid-column:2/4}.messages-shell{min-height:650px}.messages{min-height:485px}
}
@media(min-width:1180px){.app-grid{grid-template-columns:190px minmax(0,660px) 280px}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Build 2 additions */
.auth-tabs{display:flex;gap:6px;margin-bottom:15px}.auth-tabs .tab{flex:1}.setup-card code{font-size:.84em;background:#ece4d4;padding:2px 4px}.setup-steps{padding-left:20px;line-height:1.65;font-size:.9rem}.loading-card,.empty-state,.error-state{padding:28px;text-align:center}.loading-card{display:grid;place-items:center;gap:10px}.spinner{width:24px;height:24px;border:3px solid #cfc2aa;border-top-color:var(--green);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-bad{background:var(--danger)}.linkish{border:0;background:transparent;padding:0;color:var(--green);font-weight:800;cursor:pointer;text-align:left}.onboarding-grid{display:grid;grid-template-columns:1fr;gap:0 14px}.course-picks{max-height:170px;overflow:auto;padding:3px}.profile-tabs a{flex:1;text-align:center;text-decoration:none;padding:11px 6px}.profile-tabs a.active{background:#ece6d9;font-weight:900}.post-name a{text-decoration:none}.post-name a:hover{text-decoration:underline}.status-card,.student-chip{color:inherit;text-decoration:none}.student-chip{display:grid;gap:4px}.result a{color:inherit;text-decoration:none;font-weight:700}.chat-row{color:inherit;text-decoration:none}.comments-list{max-height:55vh;overflow:auto}.error-state h2,.empty-state h2{font-family:var(--serif)}.club-card .ghost{min-height:34px}.source-note code{font-size:.85em}.btn:disabled{opacity:.6;cursor:not-allowed}
@media(min-width:640px){.onboarding-grid{grid-template-columns:1fr 1fr}.onboarding-grid .full{grid-column:1/-1}}


/* Build 3: real profile pictures + edit-profile controls */
.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-editor{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.avatar-editor-actions{display:grid;gap:8px;min-width:0;flex:1}.file-input{max-width:100%;font:inherit;color:var(--text)}.file-input::file-selector-button{font:inherit;font-weight:800;color:var(--green);background:#efe7d7;border:1px solid #cbbc9f;padding:8px 10px;margin-right:9px;cursor:pointer}.day-picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.day-choice input{position:absolute;opacity:0;pointer-events:none}.day-choice span{display:inline-grid;place-items:center;min-width:48px;padding:9px 10px;border:1px solid #b9ad96;background:#fffdf7;cursor:pointer;font-size:.82rem;font-weight:800}.day-choice input:checked+span{background:var(--green);border-color:var(--green);color:white}.day-choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}.settings-grid{display:grid;grid-template-columns:1fr;gap:0 14px}.account-sync-card{background:#eef0e5}.profile-top .avatar.lg{box-shadow:0 3px 0 rgba(38,58,40,.08)}
@media(min-width:640px){.settings-grid{grid-template-columns:1fr 1fr}}

/* Build 4 — posts, photos, comments */
.daily-inline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:16px 18px}.daily-inline strong{display:block;margin-top:4px;font-family:var(--serif);font-size:1.05rem}.owner-actions{display:flex;gap:4px;align-items:center;margin-left:auto}.danger-text{color:#8a342e!important}.post-image-wrap{display:block;width:100%;padding:0;margin:12px 0 4px;border:0;background:transparent;cursor:zoom-in}.post-image{display:block;width:100%;max-height:520px;object-fit:cover;border:1px solid rgba(38,58,40,.18);border-radius:12px}.upload-preview{display:block;max-width:100%;max-height:300px;object-fit:cover;border-radius:10px;border:1px solid rgba(38,58,40,.18);margin-top:10px}.image-lightbox{position:relative;display:flex;align-items:center;justify-content:center;min-height:180px}.image-lightbox img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px}.image-lightbox .modal-close{position:absolute;right:0;top:-4px;background:var(--paper);z-index:2}.comment-item{padding:12px 0}.comment-item+.comment-item{border-top:1px dashed rgba(38,58,40,.2)}.comment-reply{margin-left:26px;padding-left:12px;border-left:3px solid var(--sage)!important}.comment-body{margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere}.comment-tools{display:flex;gap:12px;margin-top:7px}.reply-context{margin-bottom:7px;color:var(--sage-dark,#5e684e)}.reply-banner{margin-top:10px;padding:8px 10px;background:rgba(141,152,120,.14);border:1px dashed rgba(38,58,40,.22);font-size:.86rem}.comments-list{max-height:52vh;overflow:auto;padding-right:3px}
@media(max-width:700px){.daily-inline{align-items:flex-start}.owner-actions{gap:0}.owner-actions .post-action{padding:6px}.comment-reply{margin-left:12px}.post-image{max-height:420px}}


/* Build 5: discovery + matching */
.vibe-card{position:relative}.vibe-score{margin-left:auto;font-size:.72rem;font-weight:800;padding:5px 8px;border:1px solid var(--green);background:var(--cream);transform:rotate(1deg)}
.shared-things{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 14px}.shared-things>strong{width:100%;font-size:.84rem}
.search-result-list{display:grid;gap:10px;margin-top:14px}.search-result-card{display:flex;align-items:center;gap:12px;padding:14px;text-decoration:none;color:inherit}.search-result-card:hover{transform:translateY(-1px)}
.search-kind{font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;background:var(--sage);padding:5px 7px;min-width:56px;text-align:center}.search-result-copy{min-width:0;flex:1}.search-snippet{margin-top:5px;line-height:1.45}.about-card.wide{grid-column:1/-1}.settings-group .choice-grid{max-height:220px;overflow:auto;padding-right:4px}
@media(max-width:700px){.searchbox{display:flex;gap:7px}.search-result-card{align-items:flex-start}.vibe-score{font-size:.65rem}.settings-group .choice-grid{max-height:260px}}

/* ============================================================
   BUILD 6 — messaging, badges, intro completion
   ============================================================ */
.count-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--gold);color:#1f2f21;font-size:.64rem;font-weight:900;line-height:1;margin-left:auto}.icon-btn .count-badge{position:absolute;right:1px;top:1px;margin:0;border:2px solid var(--paper);min-width:17px;height:17px}.mobile-badge{position:relative}.mobile-badge .count-badge{position:absolute;top:5px;right:15%;margin:0}.nav-with-badge .count-badge+ .count-badge{margin-left:2px;background:#d4c7ae}.static-field{min-height:40px;padding:10px 11px;border:1px solid var(--line);background:#eee7d9;color:var(--green);font-size:.86rem}.intro-nudge{padding:15px;display:flex;gap:8px;align-items:flex-start;flex-direction:column}.intro-nudge .btn{margin-top:3px}

.chat-row{align-items:center}.chat-row-copy{min-width:0;flex:1}.request-label{color:var(--gold);font-weight:900;margin-top:2px}.chat-list-pager,.message-history-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;font-size:.72rem;color:var(--muted)}.message-history-pager{padding:0 0 7px;border-bottom:1px dashed #d7ccb8;margin-bottom:4px}.chat-profile-link{margin-left:auto}.message-wrap{display:flex;flex-direction:column;align-items:flex-start}.message-wrap.me{align-items:flex-end}.message-tools{display:flex;gap:8px;padding:3px 3px 0}.message-tools .linkish{font-size:.7rem}.message-tools .active{color:var(--gold)}.message-meta{font-size:.65rem;color:var(--muted);margin-top:5px}.deleted-message{opacity:.7;font-style:italic;background:#eee8dd}.message-image-wrap{display:block;border:0;background:transparent;padding:0;margin-top:7px;cursor:pointer;max-width:100%}.message-image-wrap img{display:block;max-width:min(320px,100%);max-height:320px;object-fit:cover;border:1px solid var(--line)}.request-gate{margin:10px;padding:13px;display:grid;gap:8px}.build6-compose{display:block}.message-input-row{display:flex;gap:7px;align-items:center}.message-input-row .input{flex:1}.attach-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);background:#eee7d9;cursor:pointer;font-size:1rem}.message-upload-preview{margin-top:8px;display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted)}.message-upload-preview img{width:56px;height:56px;object-fit:cover;border:1px solid var(--line)}

.notification-list{overflow:hidden}.notice-button{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #ddd1ba;cursor:pointer;align-items:center}.notice-button:hover{background:#f0eadf}.notice-button>span:last-child{margin-left:auto;color:var(--green);font-weight:900}.notice-button.unread{background:#eceddf}

@media (max-width:699px){.messages-shell{min-height:calc(100vh - 150px)}.chat-list{max-height:260px;overflow:auto}.chat-pane{border-top:1px solid var(--line)}.messages{min-height:330px;max-height:52vh;overflow:auto}.message-input-row{align-items:stretch}.attach-btn{flex:0 0 40px}.bubble{max-width:88%}}


/* ============================================================
   Build 7 — privacy, safety & moderation
   ============================================================ */
.safety-actions{display:grid;gap:8px}
.safety-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid rgba(38,58,40,.16);background:var(--paper,#F8F3E8);font:inherit;text-align:left;cursor:pointer}
.safety-row:hover{transform:translateY(-1px)}
.safety-row span{display:grid;gap:3px}.safety-row small{color:var(--muted,#68705f);line-height:1.35}
.danger-row strong,.danger-text{color:#8a342e}
.safety-list{display:grid;gap:8px;margin-top:12px}
.safety-list-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0;border-top:1px dashed rgba(38,58,40,.18)}
.safety-list-row:first-child{border-top:0}
.account-warning{margin-bottom:14px;padding:10px 14px;border-left:4px solid #B9934F;display:grid;gap:2px}
.account-warning strong{text-transform:lowercase}
.restriction-card .paper-note{max-width:34rem}
.admin-tabs{padding:7px;margin-bottom:12px;display:flex;gap:6px;flex-wrap:wrap}
.moderation-list{display:grid;gap:12px}
.moderation-card{padding:16px}
.moderation-card h3{margin:2px 0}
.moderation-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.78rem;color:var(--muted,#68705f);margin:8px 0}
.reported-preview{padding:12px;background:rgba(141,152,120,.10);border-left:3px solid #8D9878;white-space:pre-wrap;margin:10px 0}
.anonymous-staff-note{display:flex;gap:8px;flex-wrap:wrap;padding:10px;margin:10px 0;background:rgba(185,147,79,.12);border:1px dashed rgba(185,147,79,.7);font-size:.82rem}
.report-details{margin-top:10px}.report-details p{margin:4px 0 0}
.moderation-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.moderation-history-row{padding:13px 0;border-bottom:1px dashed rgba(38,58,40,.18)}
.moderation-history-row:last-child{border-bottom:0}
@media (max-width:680px){
  .moderation-actions .btn{flex:1 1 auto}
  .safety-list-row{grid-template-columns:auto 1fr}
  .safety-list-row .btn{grid-column:1/-1}
}


/* ============================================================
   Build 8 — v1 accessibility, account management & launch polish
   ============================================================ */
.skip-link{position:fixed;left:12px;top:10px;z-index:9999;padding:10px 14px;background:#263A28;color:#fff;text-decoration:none;transform:translateY(-160%);transition:transform .15s ease;border-radius:4px}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid #B9934F;outline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #B9934F;outline-offset:2px}
.auth-helper{text-align:right;margin:-4px 0 10px}.auth-helper a,.auth-back{font-size:.86rem;color:#304632}
.compact-auth .landing-login{align-self:center}
.settings-save-row{display:flex;justify-content:flex-end;margin:14px 0 28px}
.account-settings{margin-top:10px}
.account-setting-block{padding:16px 0;border-bottom:1px dashed rgba(38,58,40,.22)}
.account-setting-block:last-of-type{border-bottom:0}
.account-setting-block h3{margin:0 0 6px}
.inline-account-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.input-prefix{display:flex;align-items:center;border:1px solid rgba(38,58,40,.24);background:#fff}
.input-prefix>span{padding-left:12px;font-weight:700;color:#68705f}
.input-prefix .input{border:0;box-shadow:none}
.danger-zone{margin-top:18px;padding:16px;border:1px solid rgba(138,52,46,.38);background:rgba(138,52,46,.045)}
.delete-summary{display:grid;gap:12px;margin-bottom:16px}
.delete-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.delete-counts span{padding:9px;background:rgba(141,152,120,.10);font-size:.82rem}
.delete-counts strong{display:block;font-size:1.05rem}
.modal-backdrop{overscroll-behavior:contain}
.modal[role="dialog"]{outline:none}
@media (max-width:680px){
  .inline-account-form{grid-template-columns:1fr}
  .inline-account-form .btn{width:100%}
  .delete-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .btn,.icon-btn,.mobile-nav a{min-height:44px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
