:root{
  --bg:#EFF3EE;
  --surface:#FFFFFF;
  --surface-2:#F5F7F3;
  --ink:#1F2E2A;
  --ink-soft:#54655F;
  --line:#DDE4DD;
  --primary:#3F6C63;
  --primary-dark:#2A4A43;
  --primary-soft:#DCE9E4;
  --accent:#A66B84;
  --accent-soft:#F1E3EA;
  --risk-high:#C2554A;
  --risk-high-soft:#F7E3E0;
  --risk-med:#B8862E;
  --risk-med-soft:#F3E9D4;
  --risk-low:#5C8874;
  --risk-low-soft:#E4EEE7;
  --radius:14px;
  --shadow:0 1px 2px rgba(31,46,42,.05), 0 8px 24px -12px rgba(31,46,42,.12);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans',sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
h1,h2,h3,.display{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}

/* ---- Ring signature element ---- */
.ring{
  --pct: 60;
  --ring-color: var(--primary);
  width:56px;height:56px;border-radius:50%;
  background: conic-gradient(var(--ring-color) calc(var(--pct)*1%), var(--line) 0);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ring-inner{
  width:42px;height:42px;border-radius:50%;background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink);
}
.ring.sm{width:34px;height:34px;}
.ring.sm .ring-inner{width:25px;height:25px;font-size:8px;}

@keyframes breathe{
  0%,100%{ transform:scale(1); opacity:1;}
  50%{ transform:scale(1.06); opacity:.85;}
}
.brandmark{
  width:30px;height:30px;border-radius:50%;
  background:conic-gradient(var(--primary) 0 270deg, var(--accent) 270deg 360deg);
  animation:breathe 4.5s ease-in-out infinite;
  flex-shrink:0;
}

/* ---- App shell ---- */
.app{max-width:1180px;margin:0 auto;padding:28px 24px 64px;}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:26px;flex-wrap:wrap;gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand .name{font-size:20px;}
.brand .tag{font-size:12px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;}

.roleswitch{display:flex;align-items:center;gap:14px;}
.roleswitch .who{font-size:13px;color:var(--ink-soft);}
.roleswitch .who strong{color:var(--ink);}
.btn-logout{
  border:1px solid var(--line);background:#fff;padding:9px 16px;border-radius:999px;
  font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;color:var(--ink-soft);
  cursor:pointer;text-decoration:none;
}
.btn-logout:hover{color:var(--risk-high);border-color:var(--risk-high-soft);}

.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--primary);margin-bottom:6px;display:block;
}
.viewhead{margin-bottom:22px;}
.viewhead h1{font-size:26px;margin:0 0 4px;color:var(--ink);}
.viewhead p{margin:0;color:var(--ink-soft);font-size:14.5px;max-width:620px;}

/* ---- Layout grid ---- */
.grid{display:grid;gap:18px;}
.cols-student{grid-template-columns:220px 1fr 260px;}
.cols-counsellor{grid-template-columns:300px 1fr;}
.cols-admin{grid-template-columns:1fr;}
@media (max-width:920px){
  .cols-student, .cols-counsellor{grid-template-columns:1fr;}
}

.card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);
}
.card-pad{padding:18px;}

/* ---- Student: nav ---- */
.snav{padding:14px 10px;}
.snav .who{
  display:flex;align-items:center;gap:10px;padding:8px 10px 16px;
  border-bottom:1px solid var(--line);margin-bottom:10px;
}
.snav .who .avatar{
  width:34px;height:34px;border-radius:50%;background:var(--primary-soft);
  display:flex;align-items:center;justify-content:center;color:var(--primary-dark);
  font-weight:600;font-size:13px;
}
.snav .who .meta strong{display:block;font-size:13.5px;}
.snav .who .meta span{font-size:11.5px;color:var(--ink-soft);}
.snav a{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  font-size:13.5px;font-weight:500;color:var(--ink-soft);text-decoration:none;margin-bottom:2px;
  cursor:pointer;
}
.snav a.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600;}
.snav a:hover:not(.active){background:var(--surface-2);}
.snav .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;}

/* ---- Student: chat ---- */
.chatpanel{display:flex;flex-direction:column;height:560px;overflow:hidden;}
.chathead{
  padding:16px 18px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
}
.chathead .id{display:flex;align-items:center;gap:10px;}
.chathead .id .avatar{
  width:36px;height:36px;border-radius:50%;background:var(--accent-soft);
  display:flex;align-items:center;justify-content:center;color:var(--accent);font-weight:600;
}
.chathead .id strong{font-size:14px;display:block;}
.chathead .id span{font-size:11.5px;color:var(--ink-soft);}
.badge{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;padding:4px 9px;border-radius:999px;
  background:var(--risk-low-soft);color:var(--risk-low);letter-spacing:.03em;
}
.thread{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--surface-2);}
.msg{max-width:72%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.5;}
.msg.in{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px;}
.msg.out{background:var(--primary);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.msg .time{display:block;font-size:10px;margin-top:4px;opacity:.55;font-family:'IBM Plex Mono',monospace;}
.composer{
  padding:14px 16px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;background:#fff;
}
.composer input{
  flex:1;border:1px solid var(--line);border-radius:999px;padding:11px 16px;font-size:13.5px;
  font-family:'Work Sans',sans-serif;background:var(--surface-2);
}
.composer button{
  background:var(--primary);color:#fff;border:none;width:38px;height:38px;border-radius:50%;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.privacy-note{
  display:flex;gap:8px;align-items:center;padding:9px 16px;background:var(--primary-soft);
  color:var(--primary-dark);font-size:11.5px;
}

/* ---- Student: right rail ---- */
.rail-card{padding:16px;}
.rail-card h3{font-size:13px;margin:0 0 12px;}
.checkin{display:flex;align-items:center;gap:12px;}
.checkin .txt strong{display:block;font-size:13px;}
.checkin .txt span{font-size:11.5px;color:var(--ink-soft);}
.therapy-row{
  display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;
  text-decoration:none;color:var(--ink);
}
.therapy-row:last-child{border:none;}
.icon-tile{
  width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;
}

/* ---- Counsellor ---- */
.queue{padding:0;overflow:hidden;}
.queue-head{padding:16px 16px 10px;border-bottom:1px solid var(--line);}
.queue-head h3{margin:0 0 2px;font-size:14px;}
.queue-head span{font-size:11.5px;color:var(--ink-soft);}
.qitem{
  display:flex;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;
  text-decoration:none;color:inherit;
}
.qitem.selected{background:var(--surface-2);}
.qitem:hover{background:var(--surface-2);}
.qitem .bar{width:3px;border-radius:2px;flex-shrink:0;}
.qitem .bar.high{background:var(--risk-high);}
.qitem .bar.med{background:var(--risk-med);}
.qitem .bar.low{background:var(--risk-low);}
.qitem .body{flex:1;min-width:0;}
.qitem .row1{display:flex;justify-content:space-between;gap:8px;}
.qitem .row1 strong{font-size:13px;}
.qitem .row1 time{font-size:10.5px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;}
.qitem p{margin:3px 0 0;font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qitem .tags{display:flex;gap:6px;margin-top:6px;}
.tag-pill{font-size:9.5px;font-family:'IBM Plex Mono',monospace;padding:2px 7px;border-radius:999px;}
.tag-pill.high{background:var(--risk-high-soft);color:var(--risk-high);}
.tag-pill.med{background:var(--risk-med-soft);color:var(--risk-med);}
.tag-pill.low{background:var(--risk-low-soft);color:var(--risk-low);}

.convo{display:flex;flex-direction:column;height:620px;}
.convo-head{
  padding:16px 20px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
}
.convo-head .l strong{font-size:15px;display:block;}
.convo-head .l span{font-size:11.5px;color:var(--ink-soft);}
.convo-actions{display:flex;gap:8px;}
.btn{
  font-family:'Work Sans',sans-serif;font-size:12.5px;font-weight:600;border-radius:9px;
  padding:8px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;
}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;}
.btn.ghost{background:transparent;}
.btn.danger{color:var(--risk-high);border-color:var(--risk-high-soft);}
.insight-strip{
  display:flex;gap:14px;padding:12px 20px;background:var(--risk-high-soft);
  border-bottom:1px solid var(--line);font-size:12px;color:#7a3a32;align-items:center;
}
.empty-state{padding:40px 20px;text-align:center;color:var(--ink-soft);font-size:13.5px;}

/* ---- Admin ---- */
.admin-tabs{display:flex;gap:6px;margin-bottom:16px;}
.admin-tabs a{
  border:1px solid var(--line);background:#fff;padding:9px 16px;border-radius:9px;
  font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;text-decoration:none;
}
.admin-tabs a.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.stat{padding:16px;}
.stat .n{font-family:'Fraunces',serif;font-size:26px;display:block;}
.stat .l{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-family:'IBM Plex Mono',monospace;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{
  text-align:left;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:12px 16px;
  border-bottom:1px solid var(--line);
}
td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
.role-chip{
  font-size:10.5px;font-family:'IBM Plex Mono',monospace;padding:3px 9px;border-radius:999px;
  background:var(--surface-2);color:var(--ink-soft);
}
.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;}
.status-dot::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--risk-low);}
.status-dot.suspended::before{background:var(--risk-high);}
.action-link{color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;margin-right:10px;background:none;border:none;font-family:inherit;padding:0;text-decoration:none;}
.action-link.danger{color:var(--risk-high);}

.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media (max-width:920px){.resource-grid{grid-template-columns:1fr;} .stat-row{grid-template-columns:1fr 1fr;}}
.resource-card{padding:16px;}
.resource-card .kicker{font-size:10.5px;color:var(--accent);font-family:'IBM Plex Mono',monospace;text-transform:uppercase;margin-bottom:8px;display:block;}
.resource-card h4{margin:0 0 6px;font-size:14.5px;font-family:'Fraunces',serif;font-weight:600;}
.resource-card p{margin:0 0 12px;font-size:12.5px;color:var(--ink-soft);line-height:1.5;}
.resource-card .foot{display:flex;justify-content:space-between;align-items:center;}

.footnote{margin-top:26px;font-size:11.5px;color:var(--ink-soft);text-align:center;}

/* ---- Forms (auth pages, DASS-21, feedback, admin forms) ---- */
.auth-wrap{max-width:420px;margin:64px auto;padding:0 20px;}
.form-card{padding:28px;}
.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
.form-group input,.form-group select,.form-group textarea{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13.5px;
  font-family:'Work Sans',sans-serif;background:var(--surface-2);color:var(--ink);
}
.form-group textarea{resize:vertical;min-height:90px;}
.form-hint{font-size:11.5px;color:var(--ink-soft);margin-top:4px;}
.btn-block{
  width:100%;background:var(--primary);color:#fff;border:none;padding:12px;border-radius:10px;
  font-size:14px;font-weight:600;cursor:pointer;font-family:'Work Sans',sans-serif;
}
.btn-block:hover{background:var(--primary-dark);}
.auth-switch{text-align:center;margin-top:16px;font-size:13px;color:var(--ink-soft);}
.auth-switch a{color:var(--primary);font-weight:600;text-decoration:none;}

.alert{padding:11px 16px;border-radius:10px;font-size:13px;margin-bottom:14px;}
.alert.error{background:var(--risk-high-soft);color:#7a3a32;}
.alert.success{background:var(--risk-low-soft);color:var(--primary-dark);}
.alert.info{background:var(--primary-soft);color:var(--primary-dark);}

/* ---- DASS-21 questionnaire ---- */
.dass-q{padding:16px 0;border-bottom:1px solid var(--line);}
.dass-q:last-child{border:none;}
.dass-q p{margin:0 0 10px;font-size:13.5px;}
.dass-opts{display:flex;gap:8px;flex-wrap:wrap;}
.dass-opts label{
  flex:1;min-width:130px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;
  font-size:12px;text-align:center;cursor:pointer;background:var(--surface-2);
}
.dass-opts input{margin-right:6px;}
.result-row{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0;}
.result-card{flex:1;min-width:150px;padding:16px;text-align:center;}
.result-card .lvl{font-family:'Fraunces',serif;font-size:18px;margin-top:8px;}

/* ---- Therapy modules ---- */
.breathing-circle{
  width:180px;height:180px;border-radius:50%;background:var(--primary-soft);margin:30px auto;
  display:flex;align-items:center;justify-content:center;color:var(--primary-dark);font-weight:600;
  animation:breathecircle 8s ease-in-out infinite;
}
@keyframes breathecircle{
  0%,100%{transform:scale(0.8);}
  50%{transform:scale(1.15);}
}
.colour-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-width:420px;margin:0 auto;}
.colour-grid button{aspect-ratio:1;border:1px solid var(--line);border-radius:6px;cursor:pointer;}
.bubble-wrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:10px;}
.bubble{
  width:44px;height:44px;border-radius:50%;background:var(--primary-soft);border:none;cursor:pointer;
  transition:.15s ease;
}
.bubble.popped{background:transparent;border:1px dashed var(--line);}
.playlist-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;}
.playlist-row:last-child{border:none;}

/* =====================================================================
   ADD-ONS: notification bell, SOS panel, expandable privacy notice.
   Appended only — nothing above this line was changed. All selectors
   are new, and reuse the existing tokens declared in :root.
   ===================================================================== */

/* ---- Notification bell ---- */
.notif{position:relative;display:flex;align-items:center;}
.notif-btn{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--ink-soft);
  cursor:pointer;padding:0;
}
.notif-btn:hover{color:var(--primary);border-color:var(--primary-soft);}
.notif-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.notif-badge{
  position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;
  border-radius:999px;background:var(--risk-high);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;line-height:17px;
  text-align:center;border:2px solid var(--bg);box-sizing:content-box;
}
.notif-panel{
  display:none;position:absolute;top:calc(100% + 10px);right:0;width:310px;max-width:80vw;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;z-index:60;
}
.notif-panel.open{display:block;}
.notif-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:13px 16px;border-bottom:1px solid var(--line);
  font-size:13px;font-weight:600;color:var(--ink);
}
.notif-head span{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;
  font-weight:400;color:var(--ink-soft);
}
.notif-row{
  display:flex;gap:9px;align-items:flex-start;
  padding:11px 16px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink);font-size:12.5px;line-height:1.45;
}
.notif-row:last-child{border-bottom:none;}
.notif-row:hover{background:var(--surface-2);}
.notif-row .notif-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px;
  background:var(--risk-high);
}
.notif-row .notif-text{flex:1;min-width:0;}
.notif-row time{
  display:block;margin-top:3px;font-family:'IBM Plex Mono',monospace;
  font-size:10px;color:var(--ink-soft);
}
/* Unread: tinted, weighted, red dot. Read: plain, muted, hollow dot. */
.notif-row.is-unread{background:var(--primary-soft);font-weight:600;}
.notif-row.is-unread:hover{background:#d2e2dc;}
.notif-row.is-read{color:var(--ink-soft);font-weight:400;}
.notif-row.is-read .notif-dot{background:transparent;border:1px solid var(--line);}
.notif-empty{padding:26px 16px;text-align:center;font-size:12.5px;color:var(--ink-soft);}

@media (max-width:520px){
  .notif-panel{right:auto;left:0;}
}

/* ---- SOS / emergency help (inside the student nav card) ---- */
.sos{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.sos-head{display:flex;align-items:center;gap:7px;padding:0 2px;margin-bottom:6px;}
.sos-head strong{font-size:12.5px;color:var(--ink);}
.sos-mark{display:inline-flex;color:var(--risk-high);}
.sos-lede{
  margin:0 0 10px;padding:0 2px;font-size:11px;line-height:1.5;color:var(--ink-soft);
}
.sos-call{
  display:block;text-decoration:none;color:inherit;margin-bottom:6px;
  padding:8px 10px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface-2);
}
.sos-call:hover{border-color:var(--primary);background:#fff;}
.sos-call:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.sos-call .l{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);
}
.sos-call .n{
  display:block;font-family:'Fraunces',serif;font-size:19px;font-weight:600;
  line-height:1.2;color:var(--primary-dark);
}
.sos-call .s{display:block;font-size:10.5px;color:var(--ink-soft);margin-top:1px;}
.sos-call.urgent{background:var(--risk-high-soft);border-color:#eecfca;}
.sos-call.urgent .n{color:var(--risk-high);}
.sos-call.urgent:hover{border-color:var(--risk-high);}
.sos-foot{margin:8px 2px 0;font-size:10.5px;color:var(--ink-soft);}

/* ---- Expandable privacy notice (chat panel) ---- */
.privacy-details{display:block;cursor:default;}
.privacy-details > summary{
  cursor:pointer;list-style:none;display:block;line-height:1.5;
}
.privacy-details > summary::-webkit-details-marker{display:none;}
.privacy-details > summary::after{
  content:' ▾';font-size:10px;opacity:.7;
}
.privacy-details[open] > summary::after{content:' ▴';}
.privacy-details > summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.privacy-body{padding-top:8px;font-size:11.5px;line-height:1.6;}
.privacy-body p{margin:0 0 6px;}
.privacy-body ul{margin:0;padding-left:16px;}
.privacy-body li{margin-bottom:3px;}

@media (prefers-reduced-motion:reduce){
  .sos-call,.notif-btn{transition:none;}
}


/* ============================================================
   SafeTalk public landing page
   Additive styles only — existing application styles preserved.
   ============================================================ */
html{scroll-behavior:smooth;}
.landing-page{background:var(--bg);overflow-x:hidden;}
.landing-page a{text-decoration:none;}
.landing-container{width:min(1160px,calc(100% - 40px));margin:0 auto;}
.landing-nav{position:sticky;top:0;z-index:100;background:rgba(239,243,238,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(221,228,221,.8);}
.landing-nav-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:28px;}
.landing-brand .name{font-size:21px;}
.landing-links{display:flex;align-items:center;gap:6px;}
.landing-links>a{padding:10px 13px;border-radius:999px;color:var(--ink-soft);font-size:13px;font-weight:600;transition:.2s ease;}
.landing-links>a:hover{color:var(--primary-dark);background:var(--surface);}
.landing-links .landing-nav-cta{background:var(--primary);color:#fff;padding:11px 19px;margin-left:8px;box-shadow:0 8px 20px -12px rgba(42,74,67,.8);}
.landing-links .landing-nav-cta:hover{background:var(--primary-dark);color:#fff;}
.landing-menu{display:none;border:1px solid var(--line);background:var(--surface);width:42px;height:42px;border-radius:12px;cursor:pointer;}
.landing-menu span{display:block;width:18px;height:1.5px;background:var(--ink);margin:4px auto;}

.landing-hero{position:relative;padding:86px 0 96px;background:
 radial-gradient(circle at 82% 34%,rgba(166,107,132,.13),transparent 28%),
 radial-gradient(circle at 20% 20%,rgba(63,108,99,.10),transparent 30%);}
.landing-hero-grid{display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:60px;min-height:580px;}
.landing-hero h1{font-size:clamp(44px,5.5vw,72px);line-height:.99;margin:12px 0 22px;max-width:700px;}
.landing-hero h1 em,.landing-section h2 em,.landing-cta h2 em{font-style:normal;color:var(--primary);}
.landing-lede{font-size:16px;line-height:1.75;color:var(--ink-soft);max-width:590px;margin:0 0 28px;}
.landing-actions{display:flex;flex-wrap:wrap;gap:10px;}
.landing-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:13px 19px;border-radius:999px;font-size:13px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;}
.landing-btn:hover{transform:translateY(-2px);}
.landing-btn.primary{background:var(--primary);color:#fff;box-shadow:0 12px 28px -15px rgba(42,74,67,.9);}
.landing-btn.primary:hover{background:var(--primary-dark);}
.landing-btn.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink);}
.landing-btn.light{background:#fff;color:var(--primary-dark);box-shadow:0 14px 30px -18px rgba(0,0,0,.4);}
.landing-btn.ghost-light{border:1px solid rgba(255,255,255,.38);color:#fff;background:rgba(255,255,255,.06);}
.landing-trust{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:11px;margin-top:20px;font-family:'IBM Plex Mono',monospace;}
.trust-dot{width:7px;height:7px;border-radius:50%;background:var(--risk-low);box-shadow:0 0 0 5px var(--risk-low-soft);}
.trust-divider{opacity:.45;margin:0 3px;}

.landing-visual{min-height:500px;position:relative;display:flex;align-items:center;justify-content:center;}
.hero-visual-card{position:relative;width:min(390px,80%);padding:28px 30px 24px;background:rgba(255,255,255,.92);border:1px solid rgba(221,228,221,.95);border-radius:30px;box-shadow:0 30px 70px -35px rgba(31,46,42,.35);transform:rotate(2deg);z-index:2;}
.visual-top{display:flex;justify-content:space-between;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--ink-soft);letter-spacing:.08em;}
.visual-status{padding:5px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);}
.visual-heart{width:70px;height:70px;border-radius:22px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:39px;margin:38px 0 18px;}
.hero-visual-card h2{font-size:31px;line-height:1.05;margin:0 0 24px;}
.hero-visual-card h2 span{color:var(--primary);}
.mood-row{display:flex;align-items:center;gap:9px;font:10px 'IBM Plex Mono',monospace;color:var(--ink-soft);}
.mood-line{height:6px;flex:1;background:var(--line);border-radius:99px;overflow:hidden;}
.mood-line i{display:block;width:67%;height:100%;background:var(--primary);border-radius:inherit;}
.visual-note{display:flex;align-items:center;gap:12px;padding-top:24px;margin-top:22px;border-top:1px solid var(--line);}
.visual-note strong,.visual-note small{display:block;}
.visual-note strong{font-size:12px;}
.visual-note small{font-size:10px;color:var(--ink-soft);margin-top:3px;}
.mini-ring{width:34px;height:34px;border-radius:50%;background:conic-gradient(var(--accent) 0 75%,var(--accent-soft) 0);position:relative;flex:none;}
.mini-ring:after{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%;}
.orb{position:absolute;border-radius:50%;filter:blur(.2px);}
.orb-one{width:250px;height:250px;background:var(--primary-soft);right:5%;top:7%;opacity:.75;}
.orb-two{width:130px;height:130px;background:var(--accent-soft);left:4%;bottom:10%;opacity:.8;}
.floating-chip{position:absolute;z-index:3;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;box-shadow:var(--shadow);font-size:11px;font-weight:600;color:var(--ink);}
.floating-chip span{color:var(--accent);margin-right:6px;}
.chip-chat{left:1%;top:27%;transform:rotate(-5deg);}
.chip-care{right:0%;bottom:21%;transform:rotate(4deg);}

.landing-section{padding:110px 0;}
.about-section{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.landing-two-col{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;}
.landing-section h2{font-size:clamp(34px,4vw,52px);line-height:1.03;margin:10px 0 0;}
.landing-copy{max-width:650px;}
.landing-copy p{font-size:15px;line-height:1.8;color:var(--ink-soft);margin:0 0 17px;}
.about-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.about-pills span{border:1px solid var(--line);background:var(--surface-2);padding:8px 11px;border-radius:999px;font-size:11px;font-weight:600;color:var(--ink-soft);}

.feature-section{background:var(--bg);}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px;}
.section-heading>p{max-width:320px;color:var(--ink-soft);font-size:13px;line-height:1.65;margin:0 0 4px;}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;}
.feature-card{position:relative;min-height:250px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.feature-card:hover{transform:translateY(-6px);box-shadow:0 20px 38px -24px rgba(31,46,42,.3);border-color:#cbd8d0;}
.feature-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:31px;}
.feature-number{position:absolute;right:20px;top:23px;color:#9aa8a2;font:10px 'IBM Plex Mono',monospace;}
.feature-card h3{font-size:18px;margin:0 0 9px;font-family:'Fraunces',serif;}
.feature-card p{font-size:12px;line-height:1.65;color:var(--ink-soft);margin:0;max-width:245px;}
.feature-arrow{position:absolute;right:20px;bottom:19px;color:var(--primary);font-size:18px;}

.process-section{background:var(--surface);}
.centered{text-align:center;display:block;}
.centered .eyebrow{display:block;}
.centered h2{margin:10px auto 12px;}
.centered p{margin:0 auto;color:var(--ink-soft);font-size:13px;max-width:510px;line-height:1.7;}
.process-grid{display:grid;grid-template-columns:1fr 50px 1fr 50px 1fr;align-items:center;margin-top:54px;}
.process-step{text-align:center;}
.process-step>span{display:block;color:#9aa8a2;font:10px 'IBM Plex Mono',monospace;margin-bottom:12px;}
.process-icon{width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:25px;}
.process-step h3{font-size:18px;margin:0 0 8px;}
.process-step p{font-size:12px;line-height:1.65;color:var(--ink-soft);max-width:230px;margin:0 auto;}
.process-line{height:1px;background:var(--line);position:relative;}
.process-line:after{content:"→";position:absolute;right:-3px;top:-9px;background:var(--surface);color:#9aa8a2;padding-left:5px;}

.why-section{background:var(--primary-dark);color:#fff;}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;}
.why-card .eyebrow{color:#b7d2ca;}
.why-card h2{max-width:570px;}
.why-card h2 em{color:#b9d9cf;}
.why-card p{color:rgba(255,255,255,.68);font-size:13px;line-height:1.75;max-width:520px;margin-top:20px;}
.why-list>div{display:flex;gap:20px;padding:23px 0;border-bottom:1px solid rgba(255,255,255,.13);}
.why-list>div:first-child{border-top:1px solid rgba(255,255,255,.13);}
.why-list b{font:10px 'IBM Plex Mono',monospace;color:#9dbdb3;padding-top:3px;}
.why-list strong,.why-list small{display:block;}
.why-list strong{font-size:14px;margin-bottom:6px;}
.why-list small{font-size:11px;line-height:1.6;color:rgba(255,255,255,.62);}

.landing-cta{padding:110px 0;background:linear-gradient(135deg,var(--accent-soft),var(--primary-soft));text-align:center;}
.cta-inner h2{font-size:clamp(38px,5vw,61px);line-height:1;margin:12px 0 17px;}
.cta-inner p{font-size:14px;color:var(--ink-soft);margin:0 0 25px;}
.centered-actions{justify-content:center;}

.landing-footer{background:#1d2926;color:#fff;padding:55px 0 22px;}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:35px;padding-bottom:42px;}
.footer-brand .tag{color:rgba(255,255,255,.45);}
.footer-brand p{font-size:11px;line-height:1.65;color:rgba(255,255,255,.5);max-width:270px;margin-top:18px;}
.footer-links span{display:block;color:#fff;font-size:11px;font-weight:700;margin-bottom:13px;}
.footer-links a,.footer-links p{display:block;color:rgba(255,255,255,.5);font-size:11px;margin:0 0 9px;line-height:1.5;}
.footer-links a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:17px;display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.38);font:9px 'IBM Plex Mono',monospace;}

.landing-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease;}
.landing-reveal.is-visible{opacity:1;transform:none;}
.feature-card:nth-child(2){transition-delay:.05s}.feature-card:nth-child(3){transition-delay:.1s}.feature-card:nth-child(4){transition-delay:.15s}
.feature-card:nth-child(5){transition-delay:.05s}.feature-card:nth-child(6){transition-delay:.1s}.feature-card:nth-child(7){transition-delay:.15s}.feature-card:nth-child(8){transition-delay:.2s}

@media (max-width:1000px){
  .landing-hero-grid{gap:30px;}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .landing-two-col,.why-grid{gap:55px;}
  .footer-grid{grid-template-columns:1.5fr 1fr 1fr;}
  .footer-grid .footer-links:last-child{grid-column:2 / -1;}
}
@media (max-width:760px){
  .landing-container{width:min(100% - 28px,600px);}
  .landing-nav-inner{min-height:68px;}
  .landing-menu{display:block;}
  .landing-links{position:absolute;left:14px;right:14px;top:62px;display:none;flex-direction:column;align-items:stretch;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);}
  .landing-links.open{display:flex;}
  .landing-links>a{padding:12px 13px;}
  .landing-links .landing-nav-cta{margin:3px 0 0;text-align:center;}
  .landing-hero{padding:54px 0 65px;}
  .landing-hero-grid{grid-template-columns:1fr;min-height:auto;}
  .landing-hero h1{font-size:45px;}
  .landing-visual{min-height:420px;}
  .hero-visual-card{width:min(350px,83%);}
  .chip-chat{left:0;top:20%;}.chip-care{right:0;bottom:13%;}
  .landing-section{padding:78px 0;}
  .landing-two-col,.why-grid{grid-template-columns:1fr;gap:30px;}
  .section-heading{display:block;margin-bottom:28px;}
  .section-heading>p{margin-top:15px;}
  .feature-grid{grid-template-columns:1fr;}
  .feature-card{min-height:210px;}
  .process-grid{grid-template-columns:1fr;gap:22px;margin-top:40px;}
  .process-line{width:1px;height:34px;margin:auto;}
  .process-line:after{content:"↓";top:11px;right:-5px;padding:3px 0;}
  .why-section{padding-bottom:80px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-grid .footer-links:last-child{grid-column:auto;}
  .footer-bottom{display:block;line-height:1.8;}
}
@media (max-width:430px){
  .landing-hero h1{font-size:40px;}
  .landing-lede{font-size:14px;}
  .landing-trust{flex-wrap:wrap;}
  .trust-divider{display:none;}
  .hero-visual-card{padding:23px;width:86%;}
  .hero-visual-card h2{font-size:27px;}
  .floating-chip{font-size:10px;padding:8px 10px;}
  .chip-chat{left:-3%;}.chip-care{right:-3%;}
  .footer-grid{grid-template-columns:1fr;}
}
