:root{--bg:#f7f7fb;--surface:#fff;--surface-2:#f1f1f7;--ink:#15151c;--muted:#71717f;--subtle:#9b9baa;--line:#e5e5ed;--brand:#635bff;--brand-strong:#4f46e5;--brand-soft:#eeedff;--accent:#ff7448;--green:#138a5b;--red:#dc4059;--header:68px;--left:246px;--right:300px;--shadow:0 12px 36px rgba(28,27,48,.07)}
*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:15px/1.5 "DM Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button,input,textarea,select{outline:none}:focus-visible{outline:3px solid rgba(99,91,255,.3);outline-offset:2px}[hidden]{display:none!important}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.eyebrow{color:var(--brand);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.brand-mark{position:relative;display:inline-grid;width:34px;height:34px;place-items:center;border-radius:11px;background:linear-gradient(145deg,#7b74ff,#5148ec);box-shadow:0 7px 18px rgba(99,91,255,.24)}.brand-mark:before{content:"u";font:800 24px/1 Manrope,sans-serif;color:#fff;transform:translateY(-1px)}.brand-mark:after{content:none}
.topbar{position:fixed;inset:0 0 auto;z-index:30;height:var(--header);padding:0 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(18px);display:grid;grid-template-columns:var(--left) minmax(280px,580px) var(--right);justify-content:space-between;align-items:center}.brand{width:max-content;border:0;background:none;display:flex;align-items:center;gap:10px;font:800 1.15rem/1 Manrope,sans-serif;letter-spacing:-.05em}.global-search{justify-self:center;width:min(100%,520px);height:42px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:#f7f7fa;color:var(--muted);display:flex;align-items:center;gap:9px;transition:.2s ease}.global-search:focus-within{border-color:#bbb7ff;background:#fff;box-shadow:0 0 0 4px rgba(99,91,255,.08)}.global-search input{flex:1;min-width:0;border:0;background:none;color:var(--ink)}.global-search kbd{padding:1px 6px;border:1px solid #dad9e2;border-bottom-width:2px;border-radius:5px;color:var(--subtle);font:600 .7rem/1.4 "DM Sans"}.top-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.icon-button,.avatar-button{width:40px;height:40px;border:0;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;position:relative;transition:.18s ease}.icon-button:hover{background:var(--brand-soft);color:var(--brand)}.avatar-button{padding:0;background:none}.notification-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:var(--accent)}.avatar{width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,#252536,#59596d);color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:800}
.app-shell{max-width:1500px;min-height:100vh;margin:auto;padding-top:var(--header);display:grid;grid-template-columns:var(--left) minmax(0,1fr) var(--right)}.left-rail,.right-rail{position:sticky;top:var(--header);height:calc(100vh - var(--header));overflow-y:auto;scrollbar-width:none}.left-rail::-webkit-scrollbar,.right-rail::-webkit-scrollbar{display:none}.left-rail{padding:24px 16px 26px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column}.nav-stack{display:grid;gap:5px}.nav-link{min-height:46px;padding:0 12px;border:0;border-radius:13px;background:none;color:#60606d;display:flex;align-items:center;gap:12px;font-weight:600;text-align:left;transition:.18s ease}.nav-link:hover{background:#eeeef4;color:var(--ink)}.nav-link.active{background:var(--brand-soft);color:var(--brand-strong)}.nav-link.active .icon{stroke-width:2.4}.nav-count{min-width:23px;height:23px;margin-left:auto;border-radius:999px;background:#e6e5ec;display:grid;place-items:center;font-size:.68rem}.nav-link.active .nav-count{background:#d9d6ff}.new-pill{margin-left:auto;min-height:20px;padding:0 7px;border-radius:999px;background:#ffe3ec;color:#c12b59;display:inline-flex;align-items:center;font-size:.6rem;font-weight:800}.rail-section{margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.rail-heading,.panel-heading{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.rail-heading>span{color:var(--subtle);font-size:.69rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.rail-heading button,.panel-heading button{border:0;background:none;color:var(--brand);font-size:.72rem;font-weight:700}.rail-list,.side-list{display:grid;gap:5px}.circle-link{width:100%;min-height:48px;padding:5px 7px;border:0;border-radius:12px;background:none;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;text-align:left;transition:.18s ease}.circle-link:hover{background:#efeff5}.circle-icon,.community-logo{display:grid;place-items:center;color:#fff;font-weight:800}.circle-icon{width:34px;height:34px;border-radius:10px;font-size:.65rem}.circle-link strong{display:block;font-size:.78rem}.circle-link small{display:block;color:var(--subtle);font-size:.66rem}.campus-pass{margin-top:auto;padding:15px;border:1px solid #dcd9ff;border-radius:15px;background:linear-gradient(145deg,#f9f8ff,#efedff)}.verified-label{color:var(--green);display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:800}.verified-dot{width:17px;height:17px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.62rem}.campus-pass strong{display:block;margin-top:8px;font-size:.82rem}.campus-pass>span{color:var(--muted);font-size:.68rem}.community-card{cursor:pointer}.community-detail-head{overflow:hidden;margin-bottom:15px}.community-cover{height:132px;padding:24px;background:radial-gradient(circle at 86% 0,#9993ff 0,transparent 34%),linear-gradient(135deg,#171720,#353368);color:#fff;display:flex;align-items:flex-end}.community-cover h1{margin:0;font:800 1.8rem Manrope;letter-spacing:-.05em}.community-about{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.community-about p{max-width:520px;margin:0;color:var(--muted)}
.main-content{width:100%;max-width:760px;margin:0 auto;padding:28px 28px 90px}.page-enter{animation:page-in .24s ease both}@keyframes page-in{from{opacity:0;transform:translateY(5px)}}.page-header{margin-bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.page-header h1{margin:3px 0 0;font:800 clamp(1.65rem,3vw,2.2rem)/1.1 Manrope,sans-serif;letter-spacing:-.055em}.page-header p{margin:7px 0 0;color:var(--muted)}.button{min-height:42px;padding:0 16px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;transition:.18s ease}.button.primary{background:var(--brand);color:#fff;box-shadow:0 7px 18px rgba(99,91,255,.18)}.button.primary:hover{background:var(--brand-strong);transform:translateY(-1px)}.button.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.button.secondary:hover{border-color:#c5c2ff;color:var(--brand)}.button.ghost{background:var(--surface-2)}.button.small{min-height:34px;padding:0 12px;border-radius:10px;font-size:.74rem}.button.wide{width:100%;min-height:49px}.card{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 1px 1px rgba(20,20,32,.02)}
.campus-banner{position:relative;overflow:hidden;margin-bottom:16px;padding:24px;background:#171720;color:#fff}.campus-banner:after{content:"";position:absolute;right:-30px;top:-70px;width:210px;height:210px;border:34px solid rgba(123,116,255,.55);border-radius:50%}.campus-banner:before{content:"";position:absolute;right:75px;bottom:-85px;width:170px;height:170px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.campus-banner>*{position:relative;z-index:1}.campus-banner span{color:#bcb8ff;font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.campus-banner h2{max-width:450px;margin:7px 0 6px;font:800 1.35rem/1.25 Manrope,sans-serif;letter-spacing:-.035em}.campus-banner p{max-width:480px;margin:0;color:#b7b7c3;font-size:.82rem}.composer{padding:16px;margin-bottom:15px}.composer-top{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start}.avatar.medium{width:42px;height:42px;border-radius:13px}.composer textarea{width:100%;min-height:72px;padding:10px 12px;border:0;border-radius:12px;resize:vertical;background:#f6f6f9;color:var(--ink)}.composer textarea:focus{box-shadow:0 0 0 3px rgba(99,91,255,.1);background:#fff}.composer-bottom{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.composer-modes{display:flex;gap:5px}.mode-chip{min-height:34px;padding:0 11px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:.73rem;font-weight:700}.mode-chip:hover,.mode-chip.active{background:var(--brand-soft);color:var(--brand)}.feed-filter{margin:18px 0 12px;display:flex;gap:7px}.filter-pill{min-height:35px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.73rem;font-weight:700}.filter-pill.active{border-color:var(--ink);background:var(--ink);color:#fff}.feed{display:grid;gap:14px}.post-card{overflow:hidden}.post-header{padding:16px 17px 8px;display:flex;align-items:center;gap:11px}.avatar-color-0{background:linear-gradient(145deg,#635bff,#968fff)}.avatar-color-1{background:linear-gradient(145deg,#e55278,#ff8a72)}.avatar-color-2{background:linear-gradient(145deg,#07866a,#4ac79d)}.avatar-color-3{background:linear-gradient(145deg,#2777c7,#67b5ff)}.post-author{flex:1;min-width:0}.post-author strong{display:flex;align-items:center;gap:6px;font-size:.86rem}.post-author span{display:block;color:var(--muted);font-size:.7rem}.post-body{padding:5px 17px 16px}.post-body p{margin:0;color:#353540;line-height:1.62;white-space:pre-wrap}.post-actions{padding:6px 9px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(2,1fr)}.post-action{min-height:38px;border:0;border-radius:10px;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;font-size:.74rem;font-weight:700}.post-action:hover{background:var(--surface-2)}.post-action.active{color:var(--brand)}.post-action .icon{width:17px;height:17px}.comment-form{display:none;padding:12px 16px 16px;border-top:1px solid var(--line);gap:8px}.comment-form.open{display:flex}.comment-form input{flex:1;min-width:0;height:39px;padding:0 13px;border:1px solid var(--line);border-radius:11px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.person-card,.community-card,.plan-card{padding:17px}.person-card{min-height:208px;display:flex;flex-direction:column;align-items:flex-start}.avatar.large{width:56px;height:56px;border-radius:17px;font-size:.86rem}.person-card h3,.community-card h3,.plan-card h3{margin:14px 0 2px;font:800 .95rem/1.3 Manrope,sans-serif;letter-spacing:-.025em}.person-card .handle,.meta{color:var(--muted);font-size:.72rem}.person-card .course{margin:8px 0 16px;color:#44444f;font-size:.78rem}.person-card .button{margin-top:auto}.community-card{min-height:220px;display:flex;flex-direction:column}.community-logo{width:48px;height:48px;border-radius:15px}.community-card p{margin:8px 0 16px;color:var(--muted);font-size:.77rem}.community-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.member-stack{display:flex}.mini-avatar{width:26px;height:26px;margin-left:-7px;border:2px solid #fff;border-radius:50%;background:#dedcfb;display:grid;place-items:center;color:var(--brand);font-size:.55rem;font-weight:800}.mini-avatar:first-child{margin-left:0}.plan-card{display:grid;grid-template-columns:62px 1fr;gap:15px}.date-tile{width:62px;height:67px;border-radius:15px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;align-content:center;font-weight:800;line-height:1}.date-tile small{margin-bottom:5px;font-size:.61rem;letter-spacing:.09em;text-transform:uppercase}.date-tile strong{font-size:1.25rem}.plan-card h3{margin-top:0}.plan-card p{margin:7px 0 12px;color:var(--muted);font-size:.76rem}.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.tag{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border-radius:7px;background:var(--brand-soft);color:var(--brand);font-size:.65rem;font-weight:800}
.profile-hero{overflow:hidden}.profile-cover{height:145px;background:radial-gradient(circle at 70% 0%,#a49fff 0,transparent 38%),linear-gradient(135deg,#191925,#444178 60%,#635bff)}.profile-main{position:relative;padding:0 22px 22px}.profile-avatar{width:92px;height:92px;margin-top:-46px;border:5px solid #fff;border-radius:26px;background:linear-gradient(145deg,#252536,#68687a);color:#fff;display:grid;place-items:center;font:800 1.45rem Manrope}.profile-actions{position:absolute;right:22px;top:16px;display:flex;gap:8px}.profile-main h1{margin:14px 0 1px;font:800 1.45rem Manrope;letter-spacing:-.04em}.profile-main .handle{color:var(--muted)}.profile-bio{max-width:520px;margin:13px 0;color:#41414c}.profile-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:.74rem}.profile-stats{margin-top:17px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:32px}.profile-stat strong{display:block;font:800 1.05rem Manrope}.profile-stat span{color:var(--muted);font-size:.68rem}.section-title{margin:24px 0 12px;display:flex;align-items:center;justify-content:space-between}.section-title h2{margin:0;font:800 1rem Manrope;letter-spacing:-.03em}
.vibe-intro{overflow:hidden;position:relative;padding:28px;background:linear-gradient(135deg,#221824,#49243b 55%,#7b3157);color:#fff}.vibe-intro:after{content:"";position:absolute;width:220px;height:220px;right:-65px;top:-90px;border:34px solid rgba(255,121,157,.22);border-radius:50%}.vibe-intro>*{position:relative;z-index:1}.vibe-intro .eyebrow{color:#ffb4c9}.vibe-intro h2{max-width:520px;margin:8px 0;font:800 1.55rem/1.15 Manrope;letter-spacing:-.045em}.vibe-intro p{max-width:540px;margin:0;color:#dcc8d1}.privacy-row{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}.privacy-chip{min-height:29px;padding:0 9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);display:inline-flex;align-items:center;font-size:.68rem;font-weight:700}.vibe-deck{margin-top:15px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);gap:14px}.vibe-card{overflow:hidden;min-height:430px;display:flex;flex-direction:column}.vibe-visual{height:190px;padding:22px;background:radial-gradient(circle at 80% 10%,#ff9ab8 0,transparent 34%),linear-gradient(135deg,#5d2947,#8f4164);color:#fff;display:flex;align-items:flex-end}.vibe-avatar{width:76px;height:76px;border:3px solid rgba(255,255,255,.8);border-radius:23px;display:grid;place-items:center;background:rgba(255,255,255,.16);font:800 1.25rem Manrope}.vibe-copy{padding:20px;flex:1;display:flex;flex-direction:column}.vibe-copy h2{margin:0;font:800 1.3rem Manrope;letter-spacing:-.04em}.vibe-copy p{margin:10px 0;color:var(--muted)}.interest-list{display:flex;flex-wrap:wrap;gap:6px}.interest-pill{min-height:28px;padding:0 9px;border-radius:999px;background:#f6edf1;color:#7c3152;display:inline-flex;align-items:center;font-size:.67rem;font-weight:700}.vibe-actions{margin-top:auto;padding-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.button.vibe{background:#c73567;color:#fff}.button.vibe:hover{background:#a92551}.vibe-sidebar{display:grid;gap:14px;align-content:start}.vibe-note{padding:18px}.vibe-note h3{margin:0 0 7px;font:800 .9rem Manrope}.vibe-note p{margin:0;color:var(--muted);font-size:.75rem}.match-celebration{text-align:center;padding:28px 22px}.match-circles{width:94px;height:72px;margin:0 auto 18px;position:relative}.match-circles span{position:absolute;top:8px;width:58px;height:58px;border:4px solid #fff;border-radius:20px;display:grid;place-items:center;color:#fff;font-weight:800}.match-circles span:first-child{left:4px;background:var(--brand)}.match-circles span:last-child{right:4px;background:#c73567}.match-celebration h2{margin:0;font:800 1.45rem Manrope;letter-spacing:-.04em}.match-celebration p{color:var(--muted)}
.empty-state,.loading-state,.error-state{padding:56px 24px;text-align:center}.empty-symbol{width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.empty-state h2,.error-state h2{margin:0;font:800 1.1rem Manrope}.empty-state p,.error-state p{max-width:390px;margin:8px auto 18px;color:var(--muted)}.rail-skeleton{overflow:hidden;position:relative;background:#ececf2;border-radius:9px;height:42px}.rail-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:shimmer 1.2s infinite}.rail-skeleton.short{width:72%}@keyframes shimmer{to{transform:translateX(100%)}}
.right-rail{padding:24px 24px 30px 16px;border-left:1px solid var(--line)}.side-panel{padding:16px;margin-bottom:13px;border:1px solid var(--line);border-radius:16px;background:#fff}.campus-pulse{overflow:hidden;position:relative;background:#191920;color:#fff}.campus-pulse:after{content:"";position:absolute;right:-40px;top:-40px;width:110px;height:110px;border:18px solid rgba(99,91,255,.5);border-radius:50%}.pulse-number{margin-top:8px;font:800 2rem/1 Manrope}.campus-pulse p{margin:5px 0 15px;color:#a8a8b5;font-size:.7rem}.pulse-strip{height:26px;display:flex;align-items:flex-end;gap:4px}.pulse-strip span{width:8px;border-radius:4px;background:#7b74ff}.pulse-strip span:nth-child(1){height:35%}.pulse-strip span:nth-child(2){height:70%}.pulse-strip span:nth-child(3){height:50%}.pulse-strip span:nth-child(4){height:100%}.pulse-strip span:nth-child(5){height:75%}.panel-heading h2{margin:0;font:800 .88rem Manrope}.side-plan,.side-person{min-height:49px;padding:7px 0;display:grid;align-items:center;gap:9px}.side-plan{grid-template-columns:36px 1fr}.side-person{grid-template-columns:34px 1fr}.side-date{height:38px;border-radius:9px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-size:.64rem;font-weight:800}.side-plan strong,.side-person strong{display:block;font-size:.73rem}.side-plan span,.side-person span{color:var(--muted);font-size:.63rem}
.auth-screen{position:fixed;inset:0;z-index:100;background:#fff;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(430px,.9fr)}.auth-screen.hidden{display:none}.auth-art{position:relative;overflow:hidden;padding:clamp(42px,7vw,100px);background:#17171f;color:#fff;display:flex;align-items:flex-end}.auth-art:before{content:"";position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:42px 42px}.campus-ring{position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%;transform:rotate(-18deg)}.ring-one{width:620px;height:220px;left:5%;top:14%;box-shadow:0 0 0 45px rgba(99,91,255,.09)}.ring-two{width:300px;height:300px;right:-80px;top:-70px;border-width:45px;border-color:rgba(255,116,72,.2)}.auth-copy{position:relative;z-index:1;max-width:620px}.auth-kicker{color:#aaa5ff;font-size:.7rem;font-weight:800;letter-spacing:.13em}.auth-copy h2{margin:18px 0;font:800 clamp(2.8rem,6vw,5.7rem)/.94 Manrope;letter-spacing:-.075em}.auth-copy p{max-width:520px;color:#aaaab7;font-size:1rem}.auth-panel{padding:32px;display:grid;place-items:center}.auth-box{width:min(100%,420px)}.auth-brand{margin-bottom:62px;display:flex;align-items:center;gap:10px;font:800 1.2rem Manrope;letter-spacing:-.05em}.auth-box h1{margin:8px 0;font:800 2rem/1.1 Manrope;letter-spacing:-.055em}.auth-box p{margin:0 0 25px;color:var(--muted)}.form-field{display:grid;gap:7px;margin-bottom:12px}.form-field>span{font-size:.72rem;font-weight:800}.form-field input,.form-field textarea,.form-field select{width:100%;min-height:48px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.form-field textarea{min-height:96px;padding-top:12px;resize:vertical}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:#aaa5ff;box-shadow:0 0 0 4px rgba(99,91,255,.08)}.form-error{min-height:20px;margin-top:8px;color:var(--red);font-size:.72rem}.auth-trust{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:.7rem}.back-button{margin:0 0 40px;padding:0;border:0;background:none;color:var(--muted);font-weight:700}.otp-row{margin:22px 0 14px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.otp-input{width:100%;aspect-ratio:1;min-width:0;border:1px solid var(--line);border-radius:12px;text-align:center;font-size:1.15rem;font-weight:800}.otp-input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(99,91,255,.09)}
.modal-layer{position:fixed;inset:0;z-index:80;padding:22px;background:rgba(18,18,28,.58);backdrop-filter:blur(7px);display:grid;place-items:center}.modal-card{width:min(100%,560px);max-height:calc(100vh - 44px);overflow:auto;border-radius:22px;background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.25)}.modal-header{padding:20px 22px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:3px 0 0;font:800 1.25rem Manrope;letter-spacing:-.04em}.modal-body{padding:20px 22px 22px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;z-index:120;left:50%;bottom:24px;padding:11px 15px;border-radius:11px;background:#17171f;color:#fff;box-shadow:var(--shadow);transform:translate(-50%,18px);opacity:0;pointer-events:none;transition:.2s ease;font-size:.76rem}.toast.show{transform:translate(-50%,0);opacity:1}.mobile-nav{display:none}
@media(max-width:1120px){:root{--right:0px}.right-rail{display:none}.topbar{grid-template-columns:var(--left) minmax(260px,520px) auto}}@media(max-width:780px){:root{--header:60px}body{padding-bottom:70px}.topbar{padding:0 13px;grid-template-columns:42px 1fr auto;gap:8px}.brand>span:last-child,.global-search kbd,.top-actions .icon-button{display:none}.brand-mark{width:34px;height:34px}.global-search{height:40px}.app-shell{display:block}.left-rail{display:none}.main-content{padding:18px 12px 40px}.page-header{align-items:center}.page-header h1{font-size:1.55rem}.page-header p{display:none}.grid-2{grid-template-columns:1fr}.campus-banner{padding:21px}.composer-bottom{align-items:flex-end}.composer-modes{overflow-x:auto}.mobile-nav{position:fixed;inset:auto 0 0;z-index:40;height:68px;padding:5px max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);display:grid;grid-template-columns:repeat(5,1fr)}.mobile-link{border:0;background:none;color:#858593;display:grid;justify-items:center;align-content:center;gap:2px;font-size:.59rem;font-weight:700}.mobile-link.active{color:var(--brand)}.mobile-link .icon{width:21px;height:21px}.mobile-create{align-self:center;justify-self:center;width:45px;height:45px;border:0;border-radius:15px;background:var(--brand);color:#fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(99,91,255,.28)}.auth-screen{grid-template-columns:1fr}.auth-art{display:none}.auth-panel{padding:24px}.auth-brand{margin-bottom:54px}.profile-cover{height:120px}.profile-actions{position:static;margin-top:15px}}@media(max-width:470px){.composer-top{grid-template-columns:1fr}.composer-top .avatar{display:none}.composer-bottom{align-items:stretch;flex-direction:column}.composer-bottom .button{width:100%}.field-row{grid-template-columns:1fr}.plan-card{grid-template-columns:52px 1fr;padding:14px}.date-tile{width:52px;height:59px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:780px){.vibe-deck{grid-template-columns:1fr}.vibe-intro{padding:22px}.community-about{align-items:flex-start;flex-direction:column}.community-cover{height:112px}}

/* Product polish: content-first social network */
:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f0f2f5;--ink:#111318;--muted:#656b76;--subtle:#8b919c;--line:#dfe3e8;--brand:#2563eb;--brand-strong:#1d4ed8;--brand-soft:#eaf1ff;--header:64px;--left:240px;--right:288px;--shadow:0 10px 30px rgba(16,24,40,.08)}
body{font-size:15px;background:var(--bg)}
.topbar{padding:0 20px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}
.brand-mark{border-radius:10px;background:var(--brand);box-shadow:none}
.global-search{height:40px;border-color:transparent;border-radius:999px;background:var(--surface-2)}
.global-search:focus-within{border-color:#b8ccff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.left-rail{padding:20px 14px 24px 20px;background:#fff}.right-rail{padding:20px 20px 28px 14px;background:#fff}
.nav-link{min-height:44px;border-radius:10px}.nav-link:hover{background:#f2f4f7}.nav-link.active{background:var(--brand-soft);color:var(--brand)}
.campus-pass{border-color:var(--line);border-radius:12px;background:#f8fafc}
.main-content{max-width:700px;padding:26px 24px 88px}
.page-header{margin-bottom:18px;align-items:center}.page-header h1{font-size:1.9rem;letter-spacing:-.045em}.page-header p{margin-top:4px}
.home-heading{padding-bottom:2px}
.card{border-color:var(--line);border-radius:14px;box-shadow:none}
.button{border-radius:10px}.button.primary{box-shadow:none}.button.primary:hover{transform:none}.button.secondary:hover{border-color:#9db8ff;background:#f7faff}
.composer{padding:14px;margin-bottom:12px}.composer textarea{min-height:64px;background:#f6f7f9}.composer-bottom{margin-top:10px;padding-top:10px}
.feed-filter{margin:14px 0 10px}.feed{gap:10px}.post-card{border-radius:14px}.post-header{padding:14px 15px 7px}.post-body{padding:5px 15px 15px}.post-actions{padding:4px 7px}
.person-card,.community-card,.plan-card{padding:15px}.person-card,.community-card{min-height:196px}.community-card{transition:border-color .18s ease,background .18s ease}.community-card:hover{border-color:#b8c8e6;background:#fcfdff}
.community-cover{height:118px;padding:20px;background:#172033}.community-cover .eyebrow{color:#a9c3ff}.community-about{padding:15px 18px}
.profile-cover{height:118px;background:linear-gradient(135deg,#dce7ff,#edf2ff 52%,#dbe4f5)}
.profile-main{padding:0 20px 20px}.profile-avatar{width:88px;height:88px;margin-top:-44px;border-radius:50%;overflow:hidden;background:#334155}.profile-actions{right:20px;top:14px}.profile-main h1{margin-top:12px}.profile-stats{gap:38px}
.avatar,.profile-avatar,.profile-photo-preview{overflow:hidden}.avatar img,.profile-avatar img,.profile-photo-preview img,.vibe-visual>img{width:100%;height:100%;display:block;object-fit:cover}
.avatar{border-radius:50%}.avatar.medium{border-radius:50%}.avatar.large{border-radius:50%}
.photo-editor{margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8f9fb;display:grid;grid-template-columns:76px 1fr;align-items:center;gap:14px}.profile-photo-preview{width:76px;height:76px;border-radius:50%;color:#fff;display:grid;place-items:center;font:800 1.15rem Manrope}.photo-editor>div:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.photo-editor small{width:100%;color:var(--muted);font-size:.7rem}
.vibe-intro{border:0;background:linear-gradient(135deg,#24131e,#6b2144)}.vibe-card{min-height:410px}.vibe-visual{height:210px;padding:18px;background:#7b3157;overflow:hidden}.vibe-visual>img{margin:-18px;width:calc(100% + 36px);height:calc(100% + 36px)}
.side-panel{border-radius:13px}.campus-pulse{background:#172033}.pulse-strip span{background:#5f8fff}
.verified-dot{width:16px;height:16px;background:#16855b}.eyebrow{color:var(--brand)}
@media(max-width:780px){body{font-size:16px}.main-content{padding:16px 12px 92px}.page-header h1{font-size:1.65rem}.page-header .button{min-height:40px;padding:0 12px}.post-card,.composer,.profile-hero,.community-detail-head{border-radius:12px}.mobile-nav{height:72px}.photo-editor{grid-template-columns:64px 1fr}.profile-photo-preview{width:64px;height:64px}}

/* First-time campus identity */
.auth-panel{overflow-y:auto}.auth-box:has(.onboarding-step:not([hidden])){width:min(100%,520px);padding:28px 0}.auth-box:has(.onboarding-step:not([hidden])) .auth-brand{margin-bottom:32px}
.onboarding-heading{margin-bottom:22px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.onboarding-heading h1{margin-top:6px}.onboarding-heading p{margin:8px 0 0;max-width:420px;font-size:.88rem}.setup-badge{margin-top:2px;padding:6px 10px;border-radius:999px;background:#e8f7ef;color:#11734d;font-size:.68rem;font-weight:800}
.onboarding-photo-row{margin-bottom:18px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;display:grid;grid-template-columns:68px 1fr;align-items:center;gap:13px}.onboarding-photo-row .profile-photo-preview{width:68px;height:68px}.onboarding-photo-row>div:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.onboarding-photo-row small{width:100%;color:var(--muted);font-size:.68rem}.photo-remove{min-height:32px;padding:0 7px;border:0;background:transparent;color:var(--muted);font-size:.7rem;font-weight:700}.photo-remove:hover{color:var(--red)}
.onboarding-step .form-field{margin-bottom:11px}.onboarding-step .form-field>span{display:flex;justify-content:space-between}.onboarding-step .form-field em{color:var(--subtle);font-style:normal;font-weight:500}.username-control{height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center}.username-control:focus-within{border-color:#8dafef;box-shadow:0 0 0 4px rgba(37,99,235,.08)}.username-control>span{padding-left:13px;color:var(--subtle);font-weight:700}.username-control input{height:100%;min-height:0!important;padding-left:3px!important;border:0!important;box-shadow:none!important}.field-hint{margin-top:-1px;color:var(--subtle);font-size:.66rem}.field-hint.success{color:var(--green);font-weight:700}.field-hint.error{color:var(--red);font-weight:700}.field-hint.checking{color:var(--brand)}.onboarding-submit{margin-top:8px}.onboarding-submit span{font-weight:800}.onboarding-step .form-error{margin-top:7px}
@media(max-width:780px){.auth-panel{display:block;padding:22px 20px}.auth-box,.auth-box:has(.onboarding-step:not([hidden])){width:100%;max-width:520px;margin:0 auto;padding:0}.auth-box:has(.onboarding-step:not([hidden])) .auth-brand{margin:0 0 26px}.onboarding-heading{margin-bottom:18px}.onboarding-heading h1{font-size:1.75rem}.setup-badge{display:none}.onboarding-photo-row{grid-template-columns:58px 1fr}.onboarding-photo-row .profile-photo-preview{width:58px;height:58px}}

/* uni.social violet system: freedom, confidence, and clean white space */
:root{--bg:#f8f7fc;--surface:#fff;--surface-2:#f2eff8;--ink:#181322;--muted:#686273;--subtle:#8c8597;--line:#e5e0ec;--brand:#6d28d9;--brand-strong:#5420aa;--brand-soft:#f0e9fc;--accent:#8b5cf6;--shadow:0 14px 42px rgba(64,32,104,.09)}
body{background:var(--bg)}
.topbar,.left-rail,.right-rail{background:#fff}.topbar{border-color:var(--line)}
.brand-mark{background:var(--brand)}.global-search{background:#f5f3f8}.global-search:focus-within{border-color:#bca7df;box-shadow:0 0 0 3px rgba(109,40,217,.1)}
.nav-link:hover{background:#f6f3fa}.nav-link.active{background:var(--brand-soft);color:var(--brand)}.new-pill{background:#ede4fb;color:#6422c7}.nav-link.active .nav-count{background:#dfd0f6}.campus-pass{background:#faf8fe;border-color:#dfd5ed}
.card{border-color:var(--line)}.button.primary{background:var(--brand)}.button.primary:hover{background:var(--brand-strong)}.button.secondary:hover{border-color:#bba3dc;background:#faf8fe;color:var(--brand)}.button.vibe{background:var(--brand);color:#fff}.button.vibe:hover{background:var(--brand-strong)}
.filter-pill.active{background:#2a2037;border-color:#2a2037}.mode-chip:hover,.mode-chip.active{background:var(--brand-soft);color:var(--brand)}.post-action.active{color:var(--brand)}
.avatar-color-0{background:#6d28d9}.avatar-color-1{background:#7c3aed}.avatar-color-2{background:#5b21b6}.avatar-color-3{background:#8b5cf6}.mini-avatar{background:#e7ddf7;color:var(--brand)}
.community-cover{background:#2e174d}.community-cover .eyebrow{color:#d7c2f7}.profile-cover{background:linear-gradient(135deg,#e8def8,#f7f3fc 60%,#ded0f2)}
.campus-pulse{background:#28183e}.campus-pulse:after{border-color:rgba(167,111,255,.38)}.pulse-strip span{background:#a78bfa}
.auth-art{background:#21172f}.auth-kicker{color:#c7a8f4}.ring-one{box-shadow:0 0 0 45px rgba(126,62,214,.12)}.ring-two{border-color:rgba(167,139,250,.18)}.auth-copy p{color:#c8c0d2}.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.username-control:focus-within{border-color:#a78bda;box-shadow:0 0 0 4px rgba(109,40,217,.09)}

.vibe-teaser{margin:12px 0 4px;padding:15px 16px;border:1px solid #ddd0ef;border-radius:14px;background:#fff;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px}.vibe-teaser-icon{width:42px;height:42px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.vibe-teaser-icon .icon{width:19px;height:19px}.vibe-teaser strong{display:block;margin-top:2px;font:800 .86rem Manrope}.vibe-teaser p{margin:2px 0 0;color:var(--muted);font-size:.7rem}
.vibe-intro{min-height:148px;padding:24px;border:1px solid #6d28d9;background:#5b21b6;display:flex;flex-direction:column;justify-content:space-between}.vibe-intro:after{right:-72px;top:-98px;width:230px;height:230px;border:38px solid rgba(255,255,255,.1)}.vibe-intro .eyebrow{color:#e7d8ff}.vibe-intro h2{max-width:500px;margin:7px 0 0;color:#fff}.privacy-row{margin-top:18px}.privacy-chip{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff}
.vibe-deck{grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);gap:12px}.vibe-card{min-height:530px;border-color:#dcd3e8}.vibe-visual{position:relative;height:300px;padding:18px;background:radial-gradient(circle at 85% 5%,#a78bfa 0,transparent 38%),#4c1d95}.vibe-visual>img{margin:-18px;width:calc(100% + 36px);height:calc(100% + 36px)}.vibe-avatar{width:82px;height:82px;border-radius:50%;background:rgba(255,255,255,.16)}.vibe-intent-badge{position:absolute;left:16px;bottom:16px;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(33,18,54,.68);backdrop-filter:blur(9px);color:#fff;display:flex;align-items:center;font-size:.68rem;font-weight:800}.vibe-copy{padding:18px}.vibe-copy h2{font-size:1.35rem}.vibe-copy blockquote{margin:14px 0;color:#342b3e;font:600 .88rem/1.55 "DM Sans",sans-serif}.interest-pill{background:var(--brand-soft);color:#5a249d}.vibe-actions{gap:8px}.vibe-actions .button{min-height:46px}.vibe-actions .icon{width:17px;height:17px}
.vibe-note{padding:17px}.vibe-note-heading{display:flex;align-items:center;gap:8px}.vibe-note-heading h3{margin:0}.match-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 5px var(--brand-soft)}.match-list .circle-link{margin-top:8px}.safety-note{background:#faf8fe}.safety-note .eyebrow{font-size:.62rem}.safety-note h3{margin-top:6px}.vibe-caught-up{min-height:320px;display:grid;place-items:center}
.intent-fieldset{margin:18px 0;border:0;padding:0}.intent-fieldset legend{margin-bottom:8px;font-size:.72rem;font-weight:800}.intent-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.intent-options label{position:relative;cursor:pointer}.intent-options input{position:absolute;opacity:0;pointer-events:none}.intent-options span{min-height:72px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;justify-content:center;transition:.18s ease}.intent-options strong{font-size:.76rem}.intent-options small{margin-top:3px;color:var(--muted);font-size:.62rem}.intent-options input:checked+span{border-color:#8f5fd2;background:var(--brand-soft);box-shadow:0 0 0 2px rgba(109,40,217,.08)}.intent-options input:focus-visible+span{outline:3px solid rgba(109,40,217,.25);outline-offset:2px}.consent-check{padding:12px;border:1px solid var(--line);border-radius:12px;background:#faf9fc;display:flex;align-items:flex-start;gap:9px;color:var(--muted);font-size:.72rem}.consent-check input{margin-top:3px;accent-color:var(--brand)}.vibe-modal-actions{display:grid;grid-template-columns:auto 1fr auto auto}.pause-vibe{color:var(--red)}
.match-circles span:first-child{background:#5b21b6}.match-circles span:last-child{background:#8b5cf6}

@media(max-width:780px){.vibe-teaser{grid-template-columns:40px 1fr}.vibe-teaser .button{grid-column:1/-1;width:100%}.vibe-deck{grid-template-columns:1fr}.vibe-card{min-height:500px}.vibe-visual{height:280px}.vibe-intro{min-height:180px}.intent-options{grid-template-columns:1fr}.intent-options span{min-height:58px}.vibe-modal-actions{grid-template-columns:1fr 1fr}.vibe-modal-actions .pause-vibe{grid-column:1/-1}.vibe-modal-actions>span{display:none}}

/* Campus notes: public warmth with private, enforceable controls */
.person-actions{width:100%;margin-top:auto;display:flex;gap:8px}.person-actions .button{margin-top:0;flex:1}
.profile-wall{margin-top:14px;padding:20px}.profile-wall-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.profile-wall-head h2{margin:4px 0 3px;font:800 1.08rem Manrope;letter-spacing:-.035em}.profile-wall-head p{margin:0;max-width:470px;color:var(--muted);font-size:.75rem}.wall-status{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#f0edf3;color:var(--muted);font-size:.64rem;font-weight:800}.wall-status.on{background:#e9f7ef;color:#16724e}
.profile-note-composer{margin-top:18px;padding:14px;border:1px solid #ddd2eb;border-radius:13px;background:#fbf9fe}.profile-note-composer>label{display:block;margin-bottom:8px;font-size:.72rem;font-weight:800}.profile-note-composer textarea{width:100%;min-height:92px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;resize:vertical;line-height:1.5}.profile-note-composer textarea:focus{border-color:#a78bda;box-shadow:0 0 0 4px rgba(109,40,217,.09)}.profile-note-compose-footer{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:14px}.anonymous-choice{display:flex;align-items:flex-start;gap:8px;color:var(--muted);cursor:pointer}.anonymous-choice input{margin-top:3px;accent-color:var(--brand)}.anonymous-choice strong,.anonymous-choice small{display:block}.anonymous-choice strong{color:var(--ink);font-size:.7rem}.anonymous-choice small{margin-top:1px;font-size:.63rem}
.campus-notes{margin-top:14px;display:grid;gap:9px}.campus-note{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.campus-note.is-hidden{border-style:dashed;background:#faf9fb}.campus-note-head{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px}.campus-note-head .avatar{width:34px;height:34px}.campus-note-head strong,.campus-note-head span{display:block}.campus-note-head strong{font:800 .74rem Manrope}.campus-note-head div>span{margin-top:2px;color:var(--muted);font-size:.62rem}.campus-note>p{margin:11px 0 0;color:#332b3c;font-size:.78rem;line-height:1.55;white-space:pre-wrap}.hidden-badge{padding:4px 7px;border-radius:999px;background:#ede9f0;color:#6e6873!important;font-size:.58rem!important;font-weight:800}.campus-note-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:10px}.note-action{min-height:32px;padding:0;border:0;background:transparent;color:var(--brand);font-size:.66rem;font-weight:800}.note-action.danger{color:var(--red)}.notes-empty,.notes-disabled,.wall-setup-state{padding:20px;border:1px dashed #dcd3e6;border-radius:12px;text-align:center}.notes-empty strong,.notes-disabled strong,.wall-setup-state strong{font:800 .78rem Manrope}.notes-empty p,.notes-disabled p,.wall-setup-state p{margin:5px 0 0;color:var(--muted);font-size:.7rem}.notes-disabled{margin-top:16px;background:#faf9fb}.wall-safety{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--subtle);font-size:.62rem}.wall-setup-state{margin-top:14px;background:#fff}
.profile-wall-setting{position:relative;margin-top:17px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#faf9fc;display:grid;grid-template-columns:1fr 42px;align-items:center;gap:15px;cursor:pointer}.profile-wall-setting strong,.profile-wall-setting small{display:block}.profile-wall-setting strong{font-size:.76rem}.profile-wall-setting small{max-width:380px;margin-top:4px;color:var(--muted);font-size:.66rem;line-height:1.4}.profile-wall-setting input{position:absolute;opacity:0;pointer-events:none}.profile-wall-setting i{position:relative;width:42px;height:24px;border-radius:999px;background:#d8d3dc;transition:.18s}.profile-wall-setting i:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.18s}.profile-wall-setting input:checked+i{background:var(--brand)}.profile-wall-setting input:checked+i:after{transform:translateX(18px)}.profile-wall-setting input:focus-visible+i{outline:3px solid rgba(109,40,217,.25);outline-offset:3px}
@media(max-width:600px){.profile-wall{padding:15px}.profile-wall-head{display:block}.wall-status{display:inline-flex;margin-top:10px}.profile-note-compose-footer{align-items:stretch;flex-direction:column}.profile-note-compose-footer .button{width:100%;min-height:44px}.campus-note{padding:12px}.note-action{min-height:44px}.person-actions{flex-direction:column}.profile-actions{gap:5px}.profile-actions .button{padding:0 9px}}

/* Compact social profile — content first, not a dashboard template */
.profile-page{max-width:740px;margin:0 auto}.profile-v2{border-radius:16px}.profile-v2 .profile-cover{position:relative;height:78px;background:linear-gradient(120deg,#211a35 0%,#4c3381 52%,#7c5ce3 100%)}.profile-v2 .profile-cover:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% -40%,rgba(255,255,255,.4),transparent 44%)}.profile-v2 .profile-cover>span{position:absolute;z-index:1;right:17px;top:16px;padding:5px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(27,17,47,.26);color:#fff;font-size:.59rem;font-weight:800;letter-spacing:.025em;backdrop-filter:blur(8px)}
.profile-v2 .profile-main{padding:0 18px 16px}.profile-identity-row{min-width:0;display:flex;align-items:flex-end;gap:13px}.profile-v2 .profile-avatar{flex:0 0 auto;width:84px;height:84px;margin-top:-34px;border:4px solid #fff;border-radius:50%;font-size:1.15rem;box-shadow:0 5px 16px rgba(33,23,48,.13)}.profile-name-block{min-width:0;padding-bottom:4px}.profile-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.profile-name-line h1{margin:0;font:800 1.32rem/1.15 Manrope;letter-spacing:-.045em}.profile-name-line .verified-label{min-height:22px;padding:0 7px;border-radius:999px;background:#eef8f2;color:#16724e;display:inline-flex;align-items:center;gap:4px;font-size:.6rem;font-weight:800}.profile-name-line .verified-dot{width:13px;height:13px;font-size:.5rem}.profile-name-block .handle{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}.profile-v2 .profile-actions{position:static;margin:0 0 2px auto;display:flex;gap:7px}.profile-v2 .profile-actions .button{min-height:36px;padding:0 12px}
.profile-v2 .profile-bio{max-width:590px;margin:15px 0 8px;color:#342d3b;font-size:.8rem;line-height:1.55}.profile-v2 .profile-meta{gap:6px 14px;color:var(--muted);font-size:.68rem}.profile-v2 .profile-meta span{position:relative}.profile-v2 .profile-meta span+span:before{content:"·";position:absolute;left:-9px;color:#b7b1bd}.profile-interests{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}.profile-interests span{padding:5px 8px;border:1px solid #e3d9ef;border-radius:999px;background:#faf8fd;color:#5c377e;font-size:.62rem;font-weight:700}.profile-v2 .profile-stats{margin-top:15px;padding-top:13px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.profile-v2 .profile-stat{min-height:45px;padding:0 14px;border:0;border-right:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.profile-v2 .profile-stat:first-child{padding-left:0}.profile-v2 .profile-stat:last-child{border-right:0}.profile-v2 .profile-stat:hover strong{color:var(--brand)}.profile-v2 .profile-stat:focus-visible{outline:3px solid rgba(109,40,217,.2);outline-offset:2px;border-radius:8px}.profile-v2 .profile-stat strong{font-size:.95rem;transition:color .18s}.profile-v2 .profile-stat span{margin-top:1px;font-size:.62rem}
.profile-tabs{margin-top:10px;padding:5px;display:grid;grid-template-columns:1fr 1fr;border-radius:12px}.profile-tabs button{min-height:38px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.69rem;font-weight:800;cursor:pointer}.profile-tabs button:hover{background:#f7f4fa;color:var(--ink)}.profile-tabs button.active{background:var(--brand-soft);color:var(--brand)}#profile-wall,#profile-posts{scroll-margin-top:78px}.profile-page .profile-wall{margin-top:10px}.profile-page .section-title{margin:18px 2px 9px}.profile-empty{min-height:0;padding:18px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px}.profile-empty .empty-symbol{width:42px;height:42px;margin:0;border-radius:12px}.profile-empty .empty-symbol .icon{width:17px;height:17px}.profile-empty h2{margin:0;font:800 .82rem Manrope}.profile-empty p{margin:3px 0 0;color:var(--muted);font-size:.68rem}.profile-page .empty-state{padding:34px 20px}.profile-page .empty-state .empty-symbol{width:48px;height:48px;margin-bottom:12px}.profile-page .empty-state h2{font-size:.94rem}.profile-page .empty-state p{font-size:.73rem}
@media(max-width:600px){.profile-v2 .profile-cover{height:64px}.profile-v2 .profile-cover>span{display:none}.profile-v2 .profile-main{padding:0 14px 14px}.profile-identity-row{align-items:flex-start;flex-wrap:wrap}.profile-v2 .profile-avatar{width:74px;height:74px;margin-top:-28px}.profile-name-block{padding-top:8px}.profile-name-line{display:block}.profile-name-line .verified-label{margin-top:4px}.profile-v2 .profile-actions{width:100%;margin:2px 0 0}.profile-v2 .profile-actions .button{flex:1;min-height:44px}.profile-v2 .profile-meta span+span:before{display:none}.profile-v2 .profile-stats{grid-template-columns:repeat(4,1fr)}.profile-v2 .profile-stat{padding:0 8px;text-align:center}.profile-v2 .profile-stat:first-child{padding-left:0}.profile-v2 .profile-stat:last-child{padding-right:0}.profile-empty{grid-template-columns:40px 1fr}.profile-empty .button{grid-column:1/-1;width:100%;min-height:44px}}

/* Tokenmaxxing: compact campus rankings and a clear, opt-in laptop connection. */
.token-page{max-width:760px;margin:0 auto}.token-page-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.token-page-header h1{margin-top:6px}.token-dot{color:var(--brand)}.token-beta{white-space:nowrap;padding:6px 9px;border:1px solid #ded2ed;border-radius:99px;background:#f6f1fb;color:var(--brand);font-size:.68rem;font-weight:800}
.token-intro{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:20px;padding:25px;background:#282134;color:#fff}.token-intro .eyebrow{color:#c7b1e6}.token-intro h2{margin:8px 0 8px;font:700 1.34rem/1.25 "DM Sans",sans-serif;letter-spacing:-.035em}.token-intro p{max-width:480px;margin:0;color:#d7d1df;font-size:.83rem;line-height:1.55}.token-personal{padding:14px 16px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.07)}.token-personal span,.token-personal small{display:block;color:#d7d1df;font-size:.67rem}.token-personal strong{display:block;margin:3px 0;font:800 2rem/1.2 "DM Sans",sans-serif;letter-spacing:-.05em}
.token-board,.token-connect{margin-top:16px;padding:22px}.token-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;padding-bottom:15px;border-bottom:1px solid var(--line)}.token-section-heading h2,.token-connect h2{margin:4px 0 0;font:700 1.08rem/1.3 "DM Sans",sans-serif;letter-spacing:-.025em}.token-tabs{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.token-tabs button{min-height:31px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.71rem;font-weight:700}.token-tabs button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(38,33,45,.08)}.token-row{display:flex;align-items:center;gap:12px;min-height:70px;border-bottom:1px solid var(--line)}.token-row:last-child{border-bottom:0}.token-row.is-you{background:linear-gradient(90deg,#faf7ff,transparent)}.token-rank{width:26px;color:var(--subtle);font-size:.78rem;font-weight:800}.token-row:nth-child(-n+3) .token-rank{color:var(--brand)}.token-person{min-width:0;flex:1}.token-person strong,.token-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-person strong{font-size:.82rem}.token-person small{color:var(--muted);font-size:.68rem}.token-count{text-align:right;font:800 .93rem/1.2 "DM Sans",sans-serif;letter-spacing:-.02em}.token-count small{display:block;margin-top:3px;color:var(--muted);font:500 .65rem/1.2 "DM Sans",sans-serif;letter-spacing:0}.token-footnote{margin:12px 0 0;color:var(--muted);font-size:.67rem}.token-empty{text-align:center;padding:36px 16px}.token-empty-mark{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 12px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-size:1.4rem}.token-empty h3{margin:0;font-size:.96rem}.token-empty p{margin:5px 0 0;color:var(--muted);font-size:.76rem}
.token-connect{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:24px}.token-connect-copy p,.token-privacy p{margin:8px 0 0;color:var(--muted);font-size:.78rem;line-height:1.6}.token-command{display:flex;align-items:center;gap:10px;margin-top:17px;padding:10px 10px 10px 12px;border:1px solid #e4deeb;border-radius:9px;background:#f8f6fa}.token-command code{min-width:0;flex:1;overflow:auto;white-space:nowrap;color:#32233f;font-size:.69rem}.token-command button{padding:6px 8px;border:0;border-radius:6px;background:#e9e1f1;color:var(--brand);font-size:.68rem;font-weight:800}.token-connect-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:15px}.token-connect-actions .button{min-height:40px}.token-connect-actions a{color:var(--brand);font-size:.72rem;font-weight:700;text-decoration:none}.token-connect-actions a:hover{text-decoration:underline}.token-privacy{padding:16px;border:1px solid var(--line);border-radius:9px;background:#faf9f7}.token-privacy-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#e9f5ef;color:var(--green);font-size:.85rem;font-weight:800}.token-privacy h3{margin:11px 0 0;font-size:.8rem}.token-preview{padding:0;margin-top:12px;border:0;background:transparent;color:var(--brand);font-size:.7rem;font-weight:800;text-align:left}.token-code{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px;padding:11px;border:1px solid #cfc0e1;border-radius:9px;background:#f8f3ff}.token-code span{width:100%;color:var(--muted);font-size:.68rem}.token-code strong{min-width:0;overflow-wrap:anywhere;font:700 .82rem/1.4 monospace;letter-spacing:.03em}.token-code .button{min-height:34px}.token-devices{margin-top:22px}.token-devices h3{font-size:.86rem}.token-device{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.token-device strong,.token-device small{display:block}.token-device strong{font-size:.76rem}.token-device small{color:var(--muted);font-size:.67rem}
@media(max-width:680px){.token-page-header{align-items:start}.token-beta{display:none}.token-intro{grid-template-columns:1fr;padding:21px}.token-personal{max-width:180px}.token-connect{grid-template-columns:minmax(0,1fr);padding:19px}.token-connect-copy,.token-command{min-width:0}.token-privacy{padding:14px}.token-device{align-items:start;flex-direction:column}.token-device .button{min-height:40px}.token-section-heading{align-items:start;flex-direction:column}.token-tabs{align-self:stretch}.token-tabs button{flex:1;min-height:38px}.token-row{gap:8px}.token-row .avatar{width:34px;height:34px}}

/* A quieter, content-first campus interface. */
:root{--bg:#faf9f7;--surface:#fff;--surface-2:#f7f5f3;--ink:#26212d;--muted:#706b75;--subtle:#938d99;--line:#eae6ec;--brand:#6036a4;--brand-strong:#4c2788;--brand-soft:#f2edf8;--left:216px;--right:0px;--shadow:none}
body{background:var(--bg);font-size:15px}
.topbar{padding:0 32px;grid-template-columns:var(--left) minmax(280px,720px) 1fr;background:rgba(250,249,247,.96);box-shadow:none}
.brand{font-size:1.1rem;letter-spacing:-.04em}
.brand-mark{width:31px;height:31px;border-radius:9px;background:var(--brand);box-shadow:none}
.brand-mark:before{font-size:22px}
.global-search{height:39px;border-radius:9px;background:#fff;box-shadow:none}
.global-search:focus-within{border-color:#b7a4d2;box-shadow:0 0 0 3px rgba(96,54,164,.1)}
.icon-button{background:transparent;border-radius:9px}
.notification-dot{display:none}
.app-shell{max-width:1180px;grid-template-columns:var(--left) minmax(0,1fr)}
.left-rail{padding:30px 14px 26px 24px;border-right:0;background:transparent}
.right-rail{display:none}
.nav-stack{gap:3px}
.nav-link{min-height:42px;padding:0 12px;border-radius:9px;font-size:.88rem}
.nav-link:hover{background:#f0edf2}
.nav-link.active{background:var(--brand-soft);color:var(--brand)}
.new-pill{display:none}
.rail-heading>span{letter-spacing:.05em}
.campus-pass{border-color:var(--line);border-radius:10px;background:#fff}
.main-content{max-width:760px;padding:38px 32px 90px}
.page-header{margin-bottom:24px}
.page-header h1{font:700 clamp(1.75rem,3vw,2.1rem)/1.15 "DM Sans",sans-serif;letter-spacing:-.045em}
.page-header p{font-size:.85rem}
.card,.side-panel{border-color:var(--line);border-radius:11px;box-shadow:none}
.button{border-radius:9px;box-shadow:none}
.button.primary{box-shadow:none}
.button.primary:hover{transform:none}
.button.secondary:hover{background:var(--brand-soft)}
.composer{padding:18px;margin-bottom:20px}
.composer textarea{background:transparent}
.vibe-teaser{display:none}
.feed-filter{margin-top:0}
.profile-v2 .profile-cover{background:#eee8f5}
.profile-v2 .profile-cover:after{display:none}
.auth-screen{display:block;background:var(--bg)}
.auth-art{display:none}
.auth-panel{min-height:100vh;padding:48px 24px;display:grid;place-items:center}
.auth-box{width:min(100%,460px)}
.auth-brand{margin-bottom:76px;font:700 1.12rem "DM Sans",sans-serif;letter-spacing:-.04em}
.auth-box .eyebrow{font-size:.67rem;letter-spacing:.08em}
.auth-box h1{max-width:440px;margin:15px 0 14px;font:700 clamp(2.25rem,5vw,3.05rem)/1.08 "DM Sans",sans-serif;letter-spacing:-.06em}
.auth-box p{max-width:430px;margin-bottom:31px;color:var(--muted);font-size:.96rem;line-height:1.65}
.auth-box .form-field>span{font-size:.78rem}
.auth-box .form-field input{height:51px;border-radius:9px}
.auth-box .button.wide{height:50px;margin-top:6px}
.auth-trust{margin-top:29px;padding-top:17px;border-top:1px solid var(--line);gap:10px 18px;font-size:.72rem}
.auth-trust span+span:before{content:"·";margin-right:18px;color:#b8b1be}
.back-button{margin-bottom:55px;color:var(--brand)}
.onboarding-photo-row,.profile-note-composer{background:#fff}
@media(max-width:780px){
  .topbar{padding:0 14px;grid-template-columns:42px 1fr auto}
  .app-shell{display:block}
  .main-content{padding:24px 15px 96px}
  .auth-panel{display:grid;padding:32px 22px}
  .auth-box,.auth-box:has(.onboarding-step:not([hidden])){max-width:460px}
  .auth-brand{margin-bottom:54px}
  .auth-box h1{font-size:2.35rem}
  .auth-trust span+span:before{margin-right:10px}
}

/* Public landing page */
.auth-screen{overflow-y:auto;overscroll-behavior:contain}
.landing-page{min-height:100%;background:#faf9f7;color:#26212d}
.landing-page a{text-decoration:none;color:inherit}
.landing-page button,.landing-page a{-webkit-tap-highlight-color:transparent}
.landing-header,.landing-main,.landing-footer{width:min(100% - 80px,1240px);margin-inline:auto}
.landing-header{height:86px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid #e8e4e9}
.landing-brand{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;font-size:1.13rem;font-weight:700;letter-spacing:-.055em}
.landing-brand .brand-mark{width:30px;height:30px}
.landing-links{display:flex;align-items:center;gap:34px;margin-left:auto;color:#68616c;font-size:.83rem;font-weight:600}
.landing-links a:hover,.landing-footer>a:last-child:hover{color:var(--brand)}
.landing-nav-cta{min-height:43px;padding:0 17px;border:1px solid #29222f;border-radius:7px;background:transparent;font-size:.8rem;font-weight:700;white-space:nowrap}
.landing-nav-cta:hover{background:#29222f;color:#fff}
.landing-nav-cta span{margin-left:10px}
.landing-hero{min-height:675px;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(380px,.94fr);align-items:center;gap:clamp(32px,5vw,90px);padding:70px 0 90px}
.landing-overline,.landing-section-index{display:inline-flex;align-items:center;gap:9px;color:#6f547f;font-size:.69rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.landing-live-dot{width:7px;height:7px;border-radius:50%;background:#6e48aa}
.landing-hero h1{margin:27px 0 25px;font:700 clamp(3.5rem,5.7vw,5.5rem)/.97 "DM Sans",sans-serif;letter-spacing:-.087em;white-space:nowrap}
.landing-full-stop{color:var(--brand)}
.landing-hero-copy>p{max-width:500px;margin:0;color:#635d66;font-size:1.11rem;line-height:1.7}
.landing-hero-actions{display:flex;align-items:center;gap:24px;margin-top:37px}
.landing-button{min-height:52px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid transparent;border-radius:7px;font-size:.85rem;font-weight:700;text-align:center}
.landing-button-primary{background:#6036a4;color:#fff}
.landing-button-primary:hover{background:#4c2788}
.landing-button-text{padding:0 3px;color:#53475d!important}
.landing-button-text:hover{color:var(--brand)!important}
.landing-hero-note{display:block;margin-top:17px;color:#6f547f;font-size:.78rem;font-weight:600}
.landing-preview{width:100%;overflow:hidden;border:1px solid #e8e3e9;border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(47,34,55,.08)}
.landing-preview-top{min-height:52px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #efecf0;color:#342b3b;font-size:.75rem;font-weight:700}
.landing-preview-top>span:first-child{display:flex;align-items:center;gap:8px}
.landing-preview-mark{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#6036a4;color:#fff;font-weight:800}
.landing-preview-slash{margin:0 2px;color:#c0b8c4}
.landing-preview-example{padding:4px 7px;border:1px solid #e5dfe9;border-radius:5px;color:#8d838e;font-size:.62rem;font-weight:600}
.landing-preview-body{padding:28px 27px 27px;background:#fbfafb}
.landing-preview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.landing-section{padding:105px 0 110px;border-top:1px solid #e8e4e9;scroll-margin-top:28px}
.landing-section-top{display:grid;grid-template-columns:minmax(150px,.28fr) minmax(380px,.9fr) minmax(180px,.4fr);gap:20px;align-items:start}
.landing-section-top .landing-section-index{padding-top:11px}
.landing-section h2,.landing-campus h2{margin:0;font:700 clamp(2.6rem,4.4vw,4.7rem)/1.07 "DM Sans",sans-serif;letter-spacing:-.075em}
.landing-section-top>p{max-width:280px;margin:10px 0 0;color:#77717a;font-size:.9rem;line-height:1.65}
.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:82px}
.landing-partner-grid{margin-top:65px}
.landing-feature{min-height:205px;padding:18px 0;border-top:1px solid #cfc6d5}
.landing-feature>span,.landing-steps>div>span{color:#8c71a9;font-size:.68rem;font-weight:800;letter-spacing:.06em}
.landing-feature h3,.landing-steps h3{margin:39px 0 8px;font-size:1.1rem;letter-spacing:-.045em}
.landing-feature p,.landing-steps p{max-width:235px;margin:0;color:#77717a;font-size:.82rem;line-height:1.6}
.landing-how .landing-section-top{grid-template-columns:minmax(150px,.28fr) 1fr}
.landing-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:76px}
.landing-steps>div{min-height:175px;padding:18px 0;border-top:1px solid #cfc6d5}
.landing-steps h3{margin-top:29px}
.landing-campus{min-height:380px;margin:0 0 100px;padding:70px 74px;display:flex;align-items:flex-end;justify-content:space-between;gap:38px;background:#2c2038;color:#fff;scroll-margin-top:30px}
.landing-campus .landing-section-index{color:#cbb9dd}
.landing-campus h2{margin-top:34px}
.landing-campus p{max-width:560px;margin:18px 0 0;color:#c9c0d0;font-size:.95rem;line-height:1.7}
.landing-button-light{flex:0 0 auto;background:#fff;color:#34253f}
.landing-button-light:hover{background:#eee8f3}
.landing-footer{min-height:110px;padding:26px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e8e4e9;color:#7b727e;font-size:.75rem}
.landing-footer .landing-brand{color:#26212d;font-size:1.05rem}
.auth-home{min-height:44px;margin:0 0 35px;padding:0;border:0;background:none;color:var(--brand);font-size:.78rem;font-weight:700}
.auth-home:hover{text-decoration:underline}
.landing-page :focus-visible,.auth-home:focus-visible{outline:3px solid #b5a1d1;outline-offset:3px}
@media(max-width:1100px){
  .landing-hero{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:30px}
  .landing-hero h1{font-size:clamp(3.5rem,5.7vw,5rem)}
  .landing-section-top{grid-template-columns:145px 1fr}.landing-section-top>p{grid-column:2;margin-top:0}
}
@media(max-width:800px){
  .landing-header,.landing-main,.landing-footer{width:min(100% - 44px,640px)}
  .landing-header{height:72px}.landing-links{display:none}
  .landing-hero{min-height:0;grid-template-columns:1fr;gap:55px;padding:72px 0 85px}
  .landing-hero h1{font-size:clamp(4.5rem,11vw,6.5rem)}
  .landing-preview{max-width:590px}
  .landing-section{padding:80px 0}
  .landing-section-top,.landing-how .landing-section-top{grid-template-columns:1fr;gap:18px}
  .landing-section-top>p{grid-column:auto}
  .landing-feature-grid{grid-template-columns:repeat(2,1fr);margin-top:55px}
  .landing-campus{margin-bottom:75px;padding:50px;align-items:flex-start;flex-direction:column}
}
@media(max-width:560px){
  .landing-header,.landing-main,.landing-footer{width:calc(100% - 36px)}
  .landing-nav-cta{padding:0 11px;font-size:.72rem}.landing-nav-cta span{display:none}
  .landing-brand{font-size:1.02rem}
  .landing-hero{gap:44px;padding:67px 0 70px}
  .landing-overline{font-size:.61rem}
  .landing-hero h1{margin:23px 0 21px;font-size:clamp(3.35rem,12vw,4.7rem);white-space:normal}
  .landing-hero-copy>p{font-size:.99rem;line-height:1.65}
  .landing-hero-actions{align-items:stretch;flex-direction:column;gap:8px;margin-top:28px}
  .landing-button{width:100%}.landing-button-text{justify-content:flex-start;padding-left:0}
  .landing-hero-note{margin-top:13px}
  .landing-preview-body{padding:19px 15px}
  .landing-preview-top{padding:0 12px;font-size:.68rem}.landing-preview-example{font-size:.56rem}
  .landing-section{padding:65px 0}
  .landing-section h2,.landing-campus h2{font-size:clamp(2.6rem,10vw,3.5rem)}
  .landing-feature-grid,.landing-steps{grid-template-columns:1fr;gap:0;margin-top:44px}
  .landing-feature,.landing-steps>div{min-height:0;padding:18px 0 27px}
  .landing-feature h3,.landing-steps h3{margin-top:22px}
  .landing-campus{min-height:0;margin-bottom:55px;padding:38px 24px;gap:34px}
  .landing-campus h2{margin-top:25px}.landing-campus p{font-size:.86rem}
  .landing-footer{min-height:120px;flex-wrap:wrap}.landing-footer>span{order:3;width:100%;margin-top:-16px}
  .auth-home{margin-bottom:20px}
}

/* Campus discovery: people, events, flatmates and opportunities */
.campus-hubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 20px}
.campus-hubs button{min-height:90px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;transition:border-color .18s,background .18s}
.campus-hubs button:hover{border-color:#c7b5dc;background:#fbf9fd}
.campus-hubs strong,.campus-hubs span{display:block}
.campus-hubs strong{font-size:.85rem;letter-spacing:-.025em}
.campus-hubs span{margin-top:7px;color:var(--muted);font-size:.68rem}
.housing-own{min-height:130px;margin-bottom:20px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.housing-own h2{margin:6px 0 4px;font-size:1.12rem;letter-spacing:-.035em}
.housing-own p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}
.housing-own-actions{display:flex;gap:7px;flex:0 0 auto}
.campus-filter{margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:10px;align-items:end}
.campus-filter label{min-width:0;display:grid;gap:6px}
.campus-filter label span{color:#61596a;font-size:.64rem;font-weight:700}
.campus-filter select,.campus-filter input{width:100%;height:42px;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:.75rem}
.campus-filter select:focus-visible,.campus-filter input:focus-visible{border-color:#ad91d1;outline:3px solid rgba(96,54,164,.12)}
.campus-filter .button{min-height:42px}
.housing-grid{align-items:stretch}
.housing-grid>.empty-state{grid-column:1/-1}
.housing-card{padding:19px;display:flex;flex-direction:column;align-items:flex-start}
.housing-card-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.housing-card-head>div{display:grid;gap:2px}
.housing-card-head strong{font-size:.78rem}
.housing-card-head span:not(.avatar){color:var(--muted);font-size:.65rem}
.housing-card h3{margin:12px 0 6px;font-size:1rem;letter-spacing:-.035em}
.housing-card>p{min-height:52px;margin:0;color:var(--muted);font-size:.75rem;line-height:1.55}
.housing-match-tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:5px}
.housing-match-tags span{padding:4px 7px;border-radius:5px;background:#f2edf8;color:#6036a4;font-size:.61rem;font-weight:700}
.housing-card-meta{width:100%;margin:15px 0;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:4px;color:#5d5364;font-size:.7rem}
.housing-card>.button{margin-top:auto}
.campus-safety-note{margin:22px 2px 0;color:#817986;font-size:.7rem;line-height:1.55}
.opportunity-filter{grid-template-columns:minmax(180px,280px) auto;justify-content:start}
.opportunity-list{display:grid;gap:12px}
.opportunity-card{padding:20px}
.opportunity-card-top,.opportunity-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.opportunity-card h3{margin:16px 0 7px;font-size:1.1rem;letter-spacing:-.035em}
.opportunity-card>p{margin:0;color:#655c68;font-size:.79rem;line-height:1.6;white-space:pre-wrap}
.opportunity-card-meta{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:5px 14px;color:#817986;font-size:.68rem}
.opportunity-card-actions{justify-content:flex-start;margin-top:15px}
.modal-more{padding:12px 20px 20px;display:grid}
.modal-more button{min-height:56px;padding:0 8px;border:0;border-bottom:1px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:space-between;text-align:left;font-weight:700}
.modal-more button:hover{color:var(--brand)}
.modal-more button span{font-weight:400}
@media(max-width:780px){
  .campus-hubs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .campus-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .campus-filter .button{width:100%}
  .opportunity-filter{grid-template-columns:1fr auto}
  .mobile-link{min-height:44px}
}
@media(max-width:520px){
  .housing-own{align-items:flex-start;flex-direction:column}
  .housing-own-actions{width:100%}.housing-own-actions .button{flex:1;min-height:44px}
  .campus-filter{grid-template-columns:1fr}.campus-filter select,.campus-filter input,.campus-filter .button{height:46px}
  .opportunity-filter{grid-template-columns:1fr}
  .opportunity-card-actions{align-items:stretch;flex-direction:column}
  .opportunity-card-actions .button{width:100%;min-height:44px}
}

/* Product polish: a readable, consistent scale across the public site and app. */
:root{
  --bg:#f8f7f5;
  --surface:#fff;
  --surface-2:#f5f2f6;
  --ink:#241e29;
  --muted:#5f5865;
  --subtle:#746d79;
  --line:#e5e0e6;
  --brand:#5b3294;
  --brand-strong:#442574;
  --brand-soft:#f0ebf6;
}
body{font-size:16px;line-height:1.5}
button,a,input,select,textarea{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #b89cdb;outline-offset:3px}
#main-content:focus-visible{outline:0}
.app-shell{max-width:1360px}
.main-content{max-width:1000px;padding:40px clamp(28px,4vw,52px) 100px}
.topbar{grid-template-columns:var(--left) minmax(280px,1fr) auto}
.global-search{max-width:620px;width:100%;height:43px;border:1px solid var(--line);border-radius:11px}
.global-search input{font-size:.91rem}
.nav-link{min-height:46px;font-size:.9rem}
.nav-link .icon{flex:0 0 auto}
.campus-pass{padding:18px}
.campus-pass strong{font-size:.88rem;line-height:1.35}
.campus-pass>span{overflow-wrap:anywhere;font-size:.75rem}
.page-header{align-items:flex-end;gap:24px;margin-bottom:26px}
.page-header>div{min-width:0}
.page-header h1{font:700 clamp(2rem,3vw,2.55rem)/1.12 "DM Sans",sans-serif;letter-spacing:-.05em}
.page-header p{max-width:610px;margin-top:9px;font-size:.95rem;line-height:1.55}
.page-header .button{flex:0 0 auto;min-height:46px}
.eyebrow{font-size:.73rem;letter-spacing:.09em}
.card{border-color:var(--line);border-radius:14px}
.button{min-height:44px;border-radius:9px}
.button.small{min-height:40px;padding:0 14px;font-size:.82rem}
.grid-2{gap:16px}
.grid-2>.empty-state,.housing-grid>.empty-state{grid-column:1/-1}
.empty-state{min-height:180px;padding:32px;display:grid;grid-template-columns:54px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:20px;text-align:left}
.empty-symbol{grid-column:1;grid-row:1/3;width:52px;height:52px;margin:0;border-radius:13px}
.empty-state h2{grid-column:2;margin:0;font:700 1.18rem/1.3 "DM Sans",sans-serif;letter-spacing:-.03em}
.empty-state p{grid-column:2;max-width:540px;margin:6px 0 0;font-size:.92rem;line-height:1.6}
.empty-state .button{grid-column:2;justify-self:start;margin-top:16px}
.meta,.person-card .handle,.person-card .course,.community-card p,.plan-card p,.plan-row .meta,.tag,.housing-card>p,.housing-card-meta,.housing-card-head strong,.housing-card-head span:not(.avatar),.opportunity-card>p,.opportunity-card-meta,.campus-safety-note{font-size:max(.78rem,12px);line-height:1.5}
.campus-safety-note{max-width:720px;color:var(--muted)}
.person-card h3,.community-card h3,.plan-card h3,.housing-card h3,.opportunity-card h3{font-size:1.05rem}
.campus-hubs{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:25px}
.campus-hubs button{min-height:102px;padding:16px;border-radius:12px;transition:border-color .2s,background .2s,transform .2s}
.campus-hubs button:hover{border-color:#bda9d3;background:#fbf9fe;transform:translateY(-2px)}
.campus-hubs button:focus-visible{outline:3px solid #b89cdb;outline-offset:2px}
.campus-hubs strong{font-size:.91rem}
.campus-hubs span{font-size:.76rem;line-height:1.4}
.housing-own,.opportunity-card,.housing-card{border-radius:14px}
.housing-own p,.housing-card-head span:not(.avatar){font-size:.82rem}
.campus-filter{gap:13px;padding:18px;border-radius:14px}
.campus-filter label span{font-size:.76rem}
.campus-filter select,.campus-filter input{height:44px;font-size:.87rem}
.housing-card-head{margin-bottom:16px}
.housing-card h3{font-size:1.08rem}
.housing-match-tags span{font-size:.75rem}
.opportunity-card h3{font-size:1.16rem}
.modal-more button{font-size:.95rem}
.form-field>span,.auth-box .form-field>span{font-size:.84rem}
.form-field input,.form-field textarea,.form-field select{font-size:1rem}

/* Public pages use the same contrast and type scale as the product. */
.landing-page{background:var(--bg);color:var(--ink)}
.landing-header{border-color:var(--line)}
.landing-links{font-size:.88rem;color:var(--muted)}
.landing-nav-cta{min-height:45px;padding:0 18px;border-color:var(--ink);border-radius:9px;font-size:.86rem;transition:background .2s,color .2s}
.landing-overline,.landing-section-index{color:#5b3b7b;font-size:.76rem;letter-spacing:.095em}
.landing-live-dot{background:var(--brand)}
.landing-hero{min-height:660px;padding:65px 0 82px}
.landing-hero h1{margin:25px 0 24px;letter-spacing:-.075em}
.landing-hero-copy>p{max-width:565px;color:var(--muted);font-size:1.13rem;line-height:1.65}
.landing-hero-actions{gap:16px;margin-top:34px}
.landing-button{min-height:52px;border-radius:9px;font-size:.9rem;transition:background .2s,color .2s,border-color .2s}
.landing-page .landing-button-primary{background:var(--brand);color:#fff}
.landing-button-primary:hover{background:var(--brand-strong)}
.landing-button-text{border-color:var(--line);padding:0 20px;color:var(--ink)!important}
.landing-button-text:hover{border-color:#c6b5d7;background:#fff;color:var(--brand)!important}
.landing-hero-note{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:20px;color:var(--muted);font-size:.78rem;font-weight:500;line-height:1.5}
.landing-hero-note>span{width:7px;height:7px;margin-right:2px;border-radius:50%;background:var(--brand)}
.landing-hero-note strong{color:var(--ink);font-weight:700}
.landing-preview{border-color:#dcd4e3;border-radius:16px;box-shadow:0 28px 65px rgba(44,27,58,.09)}
.landing-preview-top{min-height:56px;color:var(--ink);font-size:.78rem}
.landing-preview-mark{background:var(--brand)}
.landing-preview-example{border-color:var(--line);font-size:.65rem;letter-spacing:.06em}
.landing-preview-body{padding:28px;background:#fbfafc}
.landing-preview-heading{align-items:center}
.landing-preview-heading>div{display:grid;gap:3px}
.landing-preview-heading small{color:#775e92;font-size:.66rem;font-weight:800;letter-spacing:.1em}
.landing-preview-heading strong{font-size:1.22rem;letter-spacing:-.04em}
.landing-preview-round{width:36px;height:36px;border-radius:50%;background:#e9e0f3;color:var(--brand);display:grid;place-items:center;font-size:.85rem;font-weight:800}
.landing-preview-featured{margin-top:22px;padding:22px;border:1px solid #e8e1ee;border-radius:12px;background:#fff}
.landing-preview-featured>span,.landing-preview-grid>div>span{color:#70508d;font-size:.67rem;font-weight:800;letter-spacing:.09em}
.landing-preview-featured h3{margin:15px 0 5px;font-size:1.17rem;letter-spacing:-.04em}
.landing-preview-featured p{max-width:310px;margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}
.landing-preview-featured b{display:block;margin-top:20px;padding-top:15px;border-top:1px solid var(--line);color:var(--brand);font-size:.8rem}
.landing-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.landing-preview-grid>div{min-height:112px;padding:16px;border:1px solid #e8e1ee;border-radius:12px;background:#fff;display:grid;align-content:start;gap:4px}
.landing-preview-grid strong{margin-top:8px;font-size:.92rem;letter-spacing:-.03em}
.landing-preview-grid small{color:var(--muted);font-size:.75rem}
.landing-preview-foot{display:flex;align-items:center;gap:7px;margin-top:16px;color:var(--muted);font-size:.76rem}
.landing-preview-foot>span{width:18px;height:18px;border-radius:50%;background:#e7f4ec;color:#1e754b;display:grid;place-items:center;font-size:.68rem;font-weight:800}
.landing-section{padding:98px 0 105px;border-color:var(--line)}
.landing-section-top>p{color:var(--muted);font-size:.95rem}
.landing-feature-grid{gap:26px;margin-top:70px}
.landing-feature{min-height:170px;border-color:#cfc3d7}
.landing-feature>span,.landing-steps>div>span{font-size:.75rem;color:#6e4b91}
.landing-feature h3,.landing-steps h3{margin-top:30px;font-size:1.16rem}
.landing-feature p,.landing-steps p{max-width:300px;color:var(--muted);font-size:.91rem}
.landing-campus{border-radius:16px;background:#2b2036}
.landing-campus p{color:#e1d9e8;font-size:1rem}
.landing-footer{border-color:var(--line);font-size:.8rem}
@media(max-width:1000px){
  .campus-hubs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .main-content{padding-inline:26px}
}
@media(max-width:780px){
  .topbar{grid-template-columns:42px minmax(0,1fr) auto;padding-inline:16px}
  .main-content{padding:28px 18px calc(105px + env(safe-area-inset-bottom))}
  .page-header{align-items:stretch;flex-direction:column;gap:16px;margin-bottom:20px}
  .page-header .button{width:100%;min-height:46px}
  .page-header h1{font-size:2rem}
  .page-header p{font-size:.91rem}
  .mobile-nav{padding-bottom:env(safe-area-inset-bottom)}
  .campus-hubs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .campus-hubs button:last-child:nth-child(odd){grid-column:1/-1;min-height:76px}
  .landing-hero{min-height:0;padding:66px 0 80px}
  .landing-section{padding:78px 0}
}
@media(max-width:560px){
  .landing-hero{gap:42px;padding:58px 0 68px}
  .landing-hero h1{font-size:clamp(3.15rem,12vw,4.3rem)}
  .landing-hero-copy>p{font-size:1rem}
  .landing-hero-actions{gap:9px}
  .landing-button-text{justify-content:center}
  .landing-preview-body{padding:18px}
  .landing-preview-featured{padding:18px}
  .landing-preview-grid>div{padding:13px}
  .landing-feature-grid{margin-top:48px}
  .landing-feature,.landing-steps>div{padding:18px 0 24px}
  .empty-state{min-height:155px;padding:23px 20px;grid-template-columns:42px minmax(0,1fr);column-gap:14px}
  .empty-symbol{width:42px;height:42px;border-radius:11px}
  .empty-state h2{font-size:1.05rem}
  .empty-state p{font-size:.87rem}
}
@media(prefers-reduced-motion:reduce){
  .page-enter{animation:none}
  .campus-hubs button,.landing-button,.landing-nav-cta{transition:none}
}

/* Signed-in product branding. Keep the public landing page on its own palette. */
body.product-active{
  --bg:#FFFCF4;
  --surface:#fffefd;
  --surface-2:#f5f0e8;
  --ink:#211B20;
  --muted:#605760;
  --subtle:#786d78;
  --line:#e8e0dc;
  --brand:#472983;
  --brand-strong:#361e68;
  --brand-soft:#eee8f6;
  background:var(--bg);
  color:var(--ink);
}
body.product-active :focus-visible{outline-color:#a98ac9}
body.product-active .topbar{
  background:rgba(255,252,244,.95);
  border-color:var(--line);
}
body.product-active .brand{gap:11px;color:var(--ink);letter-spacing:-.035em}
body.product-active .brand-image{
  display:block;
  width:34px;
  height:34px;
  flex:0 0 auto;
  border-radius:9px;
}
body.product-active .left-rail{background:transparent}
body.product-active .global-search{background:var(--surface)}
body.product-active .global-search:focus-within{
  border-color:#9e83bb;
  box-shadow:0 0 0 3px rgba(71,41,131,.11);
}
body.product-active .nav-link{color:#5d515c}
body.product-active .nav-link:hover{background:#f3eee9;color:var(--ink)}
body.product-active .nav-link.active{background:var(--brand-soft);color:var(--brand)}
body.product-active .nav-link.active .nav-count{background:#ddd1ec}
body.product-active .circle-link:hover{background:#f3eee9}
body.product-active .campus-pass{
  background:var(--surface);
  border-color:var(--line);
}
body.product-active .button.primary,
body.product-active .mobile-create{background:var(--brand);color:#FFFCF4}
body.product-active .button.primary:hover{background:var(--brand-strong)}
body.product-active .button.secondary{background:var(--surface)}
body.product-active .button.secondary:hover{
  border-color:#ae99c7;
  background:var(--brand-soft);
  color:var(--brand);
}
body.product-active .filter-pill.active{
  background:var(--brand);
  border-color:var(--brand);
  color:#FFFCF4;
}
body.product-active .avatar-color-0{background:#472983}
body.product-active .avatar-color-1{background:#65449c}
body.product-active .avatar-color-2{background:#332052}
body.product-active .avatar-color-3{background:#8065aa}
body.product-active .mini-avatar{background:#e9def3}
body.product-active .community-cover,
body.product-active .token-intro,
body.product-active .vibe-intro{
  background:#472983;
  color:#FFFCF4;
}
body.product-active .community-cover .eyebrow,
body.product-active .token-intro .eyebrow,
body.product-active .vibe-intro .eyebrow{color:#e3d4f4}
body.product-active .token-intro p,
body.product-active .token-personal span,
body.product-active .token-personal small,
body.product-active .vibe-intro p{color:#eee7f7}
body.product-active .vibe-intro{border-color:var(--brand)}
body.product-active .vibe-visual{background:#65449c}
body.product-active .interest-pill{background:var(--brand-soft);color:var(--brand)}
body.product-active .button.vibe{background:var(--brand);color:#FFFCF4}
body.product-active .button.vibe:hover{background:var(--brand-strong)}
body.product-active .match-circles span:last-child{background:#8065aa}
body.product-active .profile-v2 .profile-cover{background:#e8def2}
body.product-active .profile-interests span{
  background:#f6f0fa;
  border-color:#e5d9ee;
  color:var(--brand);
}
body.product-active .token-beta{
  background:var(--brand-soft);
  border-color:#dccde9;
}
body.product-active .token-row.is-you{background:linear-gradient(90deg,#f5eef9,transparent)}
body.product-active .token-command,
body.product-active .token-privacy{background:#f9f6f0;border-color:var(--line)}
body.product-active .token-command code{color:var(--ink)}
body.product-active .token-command button{background:#e9def2}
body.product-active .token-code{background:#f6f0fa}
body.product-active .mobile-nav{
  background:rgba(255,252,244,.96);
  border-color:var(--line);
}
@media(max-width:780px){
  body.product-active .brand-image{width:34px;height:34px}
}
