:root {
  color-scheme: light;
  --ink: #20312a;
  --muted: #68766f;
  --line: #e1e8df;
  --soft: #eef4ec;
  --paper: #f8faf5;
  --accent: #e66d4b;
  --accent-dark: #c84e32;
  --radius: 20px;
  --duration: 220ms;
}
html { scroll-behavior: smooth; background: var(--paper); overflow-x: clip; }
body { overflow-x: clip; }
body { background: var(--paper); color: var(--ink); }
a { text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid #e66d4b !important; outline-offset: 3px; }
.shell { padding-bottom: 110px; }
.top {
  position: sticky;
  top: 0;
  z-index: 20;
  height: auto;
  min-height: 76px;
  padding: 10px 16px;
  border: 1px solid rgba(225,232,223,.85);
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: rgba(248,250,245,.93);
  backdrop-filter: blur(16px);
  box-shadow: 0 8px 28px rgba(35,56,45,.05);
}
.top nav { gap: 4px; }
.top nav a { padding: 9px 11px; border-radius: 999px; transition: background var(--duration),color var(--duration),transform var(--duration); }
.top nav a:hover { background: var(--soft); color: var(--ink); transform: translateY(-1px); }
.top form { flex: none; }
.text-btn { padding: 9px 13px; border-radius: 999px; text-decoration: none; }
.wordmark { color: var(--ink); }
.button, .hero-button, .login-submit-btn { border-radius: 999px; box-shadow: 0 8px 22px rgba(32,49,42,.12); }
.button:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.button.secondary { border-color: var(--line); background: #fff; }
.card, .path, .opportunity, .curriculum-list li, .mission-row, .submission-strip, .course-card {
  border-radius: var(--radius);
}
.card { border-color: var(--line); box-shadow: 0 10px 32px rgba(32,49,42,.055); }
.field input, .field textarea, .field select { border-radius: 14px; border-color: #d4ded5; background: #fff; }
.notice { border: 1px solid #e5d6a6; border-left: 4px solid #e3ad51; border-radius: 16px; background: #fff8e4; }
.feedback { border-left: 3px solid var(--accent); border-radius: 0 14px 14px 0; background: #fff; }
.hero { padding-top: 62px; }
.policy-back { margin-bottom: 28px; }
.eyebrow, .kicker { color: #697a70; }
.dashboard-intro { border-bottom: 0; padding-top: 52px; }
.dashboard-intro h1 { color: var(--ink); }
.dashboard-profile span { background: #f5c8a7; color: #563a2a; }
.dashboard-stats { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; border: 0; }
.dashboard-stats article { min-height: 142px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(32,49,42,.04); }
.dashboard-stats article:first-child { padding-left: 22px; }
.dashboard-stats article:last-child { border: 1px solid var(--line); }
.dashboard-stats strong { color: var(--ink); }
.dashboard-feature { gap: 14px; border: 0; }
.dashboard-feature > div { padding: 38px; border: 1px solid #f2d6c6; border-radius: 26px; background: #fbeade; }
.dashboard-feature h2 { color: var(--ink); }
.dashboard-feature aside { padding: 38px; border-radius: 26px; background: #24382f; color: #f8faf5; }
.dashboard-feature aside p { color: #d1ddd4; }
.dashboard-feature aside a { color: #ffe0c9; font-weight: 700; }
.dashboard-feature aside .kicker { color: #d1ddd4; }
.dashboard-feature aside strong { color: #fff; }
.dashboard-bottom { gap: 16px; }
.dashboard-bottom > div { padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: #fff; }
.weekly-progress, .course-progress-mini { height: 10px; overflow: hidden; border-radius: 999px; background: #e8eee7; }
.weekly-progress b, .course-progress-mini b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#e9a16f,#df6747); transition: width .8s cubic-bezier(.2,.8,.2,1); }
.course-card { padding: 26px; border: 1px solid var(--line); background: #fff; box-shadow: 0 12px 32px rgba(32,49,42,.06); }
.course-card h2 { font-size: clamp(27px,3vw,38px); }
.course-card-foot { gap: 12px; flex-wrap: wrap; }
.curriculum-list li { margin: 10px 0; padding: 18px; border: 1px solid var(--line); background: #fff; }
.curriculum-list .is-locked { opacity: .58; }
.course-progress-bar { border-radius: 20px; background: #fff; }
.mission-row { padding: 22px; margin: 12px 0; border: 1px solid var(--line); background: #fff; box-shadow: 0 8px 24px rgba(32,49,42,.04); }
.opportunity { padding: 24px; margin: 12px 0; border: 1px solid var(--line); background: #fff; }
.admin-nav a { padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; background: #fff; }
.admin-nav a:hover { background: var(--soft); }
.table { background: #fff; border-radius: 16px; overflow: hidden; }
.tabs {
  height: calc(72px + env(safe-area-inset-bottom));
  padding: 7px 3px calc(7px + env(safe-area-inset-bottom));
  background: rgba(248,250,245,.96);
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -8px 26px rgba(32,49,42,.07);
  backdrop-filter: blur(15px);
  gap: 0;
}
.tabs a { flex: 1; min-width: 0; color: #64736b; text-align: center; font-size: 10px; font-weight: 700; text-decoration: none; }
.tabs a:hover { color: var(--accent-dark); }
.tabs .tab-icon { display: block; font-size: 20px; line-height: 1.1; }
.landing-orange {
  --orange: #e76c4a;
  --ink: #20312a;
  --milk: #f7f8f2;
  --rule: rgba(32,49,42,.16);
  background: var(--milk);
  color: var(--ink);
}
.landing-orange .landing-logo, .landing-orange .landing-links a, .landing-orange .landing-actions a { color: var(--ink); }
.landing-orange .landing-actions .nav-cta { background: var(--ink); color: #fff; }
.landing-orange .orange-hero h1 { color: var(--ink); font-size: clamp(60px,8vw,108px); }
.landing-orange .hero-description { color: #596960; }
.landing-orange .hero-art { border-radius: 30px; box-shadow: 0 24px 60px rgba(32,49,42,.12); }
.landing-orange .art-sun { background: #20312a; }
.landing-orange .art-message { color: #f9faf4; }
.landing-orange .orange-path-grid { gap: 14px; }
.landing-orange .orange-path { min-height: 280px; padding: 26px; border: 1px solid rgba(32,49,42,.13); border-radius: 22px; background: #fff; box-shadow: 0 10px 26px rgba(32,49,42,.055); }
.landing-orange .orange-path:hover { transform: translateY(-5px); background: #eef4ec; }
.landing-orange .orange-path h3 { font: 700 clamp(28px,3.2vw,42px)/1.02 var(--display); letter-spacing: -.035em; }
.landing-orange .orange-path p { line-height: 1.55; }
.landing-orange .orange-path b { display: flex; align-items: center; justify-content: space-between; color: var(--accent-dark); }
.landing-orange .black-path { color: #fff; background: #263a31; }
.landing-orange .black-path:hover { background: #31493d; }
.landing-orange .black-path b { color: #d9e4da; }
.landing-orange .landing-statement { max-width: none; }
.landing-orange .work-section { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 36px; margin: 0; padding: 84px 5vw; border-radius: 28px; background: #eaf1e8; }
.landing-orange .work-copy { max-width: 560px; }
.landing-orange .work-copy h2 { font: 700 clamp(42px,6vw,72px)/.95 var(--display); }
.landing-orange .work-copy > p:not(.kicker) { max-width: 500px; color: #58675e; }
.landing-orange .work-orbit { position: relative; display: grid; place-items: center; width: min(100%,370px); aspect-ratio: 1; margin: auto; border: 1px solid rgba(32,49,42,.22); border-radius: 50%; animation: orbitDrift 12s ease-in-out infinite alternate; }
.landing-orange .work-orbit:before,.landing-orange .work-orbit:after { content: ""; position: absolute; inset: 12%; border: 1px dashed rgba(32,49,42,.25); border-radius: 50%; transform: rotate(36deg); }
.landing-orange .work-orbit:after { inset: 26%; transform: rotate(-32deg); }
.landing-orange .work-orbit span { position: absolute; z-index: 1; display: grid; place-items: center; width: 88px; height: 88px; border-radius: 50%; background: #fff; color: var(--ink); font-size: 11px; font-weight: 800; box-shadow: 0 8px 22px rgba(32,49,42,.1); }
.landing-orange .work-orbit span:nth-child(1) { top: 4%; left: 38%; }
.landing-orange .work-orbit span:nth-child(2) { right: 1%; bottom: 29%; background: #e9b09a; }
.landing-orange .work-orbit span:nth-child(3) { bottom: 2%; left: 20%; background: #263a31; color: #fff; }
.friendly-empty { margin-top: 24px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.login-card { border: 1px solid #e1e8df; border-radius: 26px; box-shadow: 0 20px 60px rgba(32,49,42,.09); }
.login-submit-btn { background: #263a31; }
.login-submit-btn:hover { background: #355144; }
.login-input { border-radius: 14px; }
.login-error-notice { border-radius: 14px; }
@keyframes orbitDrift { from { transform: rotate(-4deg) translateY(0); } to { transform: rotate(4deg) translateY(-8px); } }
@keyframes friendlyRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) {
  .shell > section { animation: friendlyRise .48s ease both; }
  .shell > section:nth-of-type(2) { animation-delay: .04s; }
  .shell > section:nth-of-type(3) { animation-delay: .08s; }
  .shell > section:nth-of-type(4) { animation-delay: .12s; }
}
@media (max-width: 760px) {
  .shell { padding-right: 18px; padding-left: 18px; }
  .top { min-height: 65px; padding: 8px 11px; }
  .top nav { display: none; }
  .top form { margin-left: auto; }
  .dashboard-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-stats article { min-height: 130px; padding: 17px; }
  .dashboard-stats article:first-child { padding-left: 17px; }
  .dashboard-stats article:last-child { grid-column: auto; }
  .dashboard-feature, .dashboard-bottom { grid-template-columns: 1fr; }
  .dashboard-feature > div, .dashboard-feature aside, .dashboard-bottom > div { padding: 25px; }
  .landing-orange .work-section { grid-template-columns: 1fr; margin: 0 -20px; padding: 64px 20px; }
  .landing-orange .work-orbit { width: min(82vw,310px); }
  .tabs { display: flex; }
}
@media (max-width: 390px) {
  .tabs .tab-icon { font-size: 18px; }
  .tabs a { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
.profile-project { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:10px 0; padding:18px 20px; border:1px solid var(--line); border-radius:18px; background:#fff; text-decoration:none; transition:transform var(--duration),box-shadow var(--duration); }
.profile-project:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(32,49,42,.08); }
.profile-project span { display:grid; gap:4px; }
.profile-project small { color:var(--muted); }
.profile-project b { color:var(--accent-dark); font-size:13px; }
.team-feed { display:grid; gap:16px; max-width:780px; }
.staff-tabs { display:none; }
@media (max-width:760px) {
  .staff-tabs { position:fixed; bottom:0; left:0; right:0; z-index:30; display:flex; justify-content:center; gap:6px; overflow-x:auto; padding:12px 8px calc(12px + env(safe-area-inset-bottom)); border:1px solid var(--line); border-bottom:0; border-radius:18px 18px 0 0; background:rgba(248,250,245,.97); box-shadow:0 -8px 26px rgba(32,49,42,.07); }
  .staff-tabs a { flex:none; padding:8px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:11px; font-weight:700; text-decoration:none; }
  .profile-project { align-items:flex-start; }
}
@media (prefers-reduced-motion:no-preference) {
  .landing-orange > section { animation:friendlyRise .58s ease both; }
  .landing-orange > section:nth-of-type(2) { animation-delay:.04s; }
  .landing-orange > section:nth-of-type(3) { animation-delay:.09s; }
}
/* Path choice during signup */
.signup-path-picker{border:0;padding:0;margin:1.5rem 0;min-width:0}
.signup-path-picker legend{margin-bottom:.35rem}
.signup-path-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem;margin-top:.8rem}
.path-option{display:flex;align-items:flex-start;gap:.7rem;padding:1rem;border:1px solid var(--line,#dfe4db);border-radius:16px;background:rgba(255,255,255,.72);cursor:pointer;transition:border-color .2s,transform .2s,background .2s}
.path-option:hover{transform:translateY(-2px);border-color:var(--green,#263b32)}
.path-option:has(input:checked){border-color:var(--green,#263b32);background:#edf2ec;box-shadow:0 0 0 2px rgba(38,59,50,.08)}
.path-option input{accent-color:var(--green,#263b32);margin-top:.25rem;flex:0 0 auto}
.path-option span{display:grid;gap:.3rem}
.path-option strong{color:var(--green,#263b32)}
.path-option small{line-height:1.45;color:var(--muted,#68716b)}
.dashboard-goal{padding:.7rem 1rem;border-left:3px solid var(--clay,#d97b5b);background:#fff8f1;border-radius:0 12px 12px 0}
@media(prefers-reduced-motion:reduce){.path-option{transition:none}.path-option:hover{transform:none}}
.in-app-course-note{max-width:760px;margin:22px 0;padding:16px 20px;border-left:3px solid var(--accent);background:#fff8f1;color:var(--ink)}
.in-app-course-note strong{display:block;margin-bottom:4px}
.nav-count{display:inline-flex;min-width:1.25rem;height:1.25rem;align-items:center;justify-content:center;margin-left:.35rem;padding:0 .25rem;border-radius:999px;background:#dd6b4d;color:#fff;font-size:.72rem;font-weight:700;line-height:1;vertical-align:middle}
.guide-steps{list-style:none;counter-reset:guide-step;padding:0;margin:28px 0;border-top:1px solid var(--line)}
.guide-steps li{counter-increment:guide-step;display:grid;grid-template-columns:44px 1fr;gap:3px 14px;padding:18px 0;border-bottom:1px solid var(--line)}
.guide-steps li::before{content:"0" counter(guide-step);grid-row:span 2;color:var(--accent);font-weight:700}
.guide-steps li span{color:var(--muted);font-size:14px}
.guide-links{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.guide-shell>.muted{font-size:13px}
.guide-shell .messages{min-height:120px;max-height:460px;overflow:auto;padding:10px 0}
.guide-shell .message{padding:15px 17px;margin:12px 0;border:1px solid var(--line);background:rgba(255,255,255,.72)}
.guide-shell .message.user{margin-left:12%;background:var(--soft)}
.guide-shell .message.assistant{margin-right:12%}
.guide-shell .message-content{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:7px;font-weight:400}
.guide-shell .message .button{margin-top:12px}
@media(max-width:700px){.guide-links{align-items:stretch;flex-direction:column}.guide-links .button{width:100%}}
.parent-auth{max-width:620px}
.parent-auth .signup-form{display:grid;gap:12px}
.parent-auth .signup-form .field{display:grid}
.parent-auth .signup-form .field input{padding:13px 14px;border:1px solid var(--line);background:#fff;border-radius:var(--radius);font:16px var(--sans);text-transform:none;letter-spacing:0}
.parent-login-link{margin-top:16px;font-size:14px;color:var(--muted)}
.parent-hero{padding-bottom:38px}
.parent-student-picker{display:flex;gap:12px;flex-wrap:wrap}
.parent-student-chip{display:grid;gap:5px;min-width:180px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);text-decoration:none}
.parent-student-chip small,.linked-parent small{color:var(--muted)}
.parent-student-chip.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--soft)}
.parent-summary{margin:24px 0 55px;padding:clamp(22px,5vw,46px);border:1px solid var(--line);border-radius:22px;background:#fff}
.parent-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:25px;border-bottom:1px solid var(--line)}
.parent-summary-head h2{margin:6px 0;font:700 clamp(38px,5vw,58px)/.9 var(--display);letter-spacing:-.04em}
.parent-summary-head p:last-child{color:var(--muted)}
.parent-stats{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.parent-stats article{padding:25px 22px 25px 0}
.parent-stats article+article{padding-left:24px;border-left:1px solid var(--line)}
.parent-stats small,.parent-profile .kicker{font-size:10px;font-weight:700;letter-spacing:.1em}
.parent-stats strong{display:block;margin:14px 0;font:700 38px/.95 'Archivo Narrow',sans-serif}
.parent-stats strong i{font:500 15px var(--sans);font-style:normal;color:var(--muted)}
.parent-stats p,.parent-profile p:not(.kicker){color:var(--muted);font-size:14px;line-height:1.55}
.parent-profile{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding-top:25px}
.parent-mentor{padding:12px 0;border-top:1px solid var(--line)}
.parent-mentor p{margin:7px 0 0}
.parent-progress-list{border-top:1px solid var(--ink)}
.parent-progress-list article{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
.parent-progress-list article>div{display:grid;gap:3px}
.parent-progress-list small{color:var(--muted)}
.parent-progress-list article>span:last-child{font-size:12px;color:var(--muted)}
.progress-mark{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--soft);font-weight:700}
.progress-mark.done{background:var(--accent);color:white}
.parent-data-note{font-size:12px;margin-top:18px}
.parent-link-form{max-width:580px}
.family-access{border-top:2px solid var(--ink)}
.parent-code-reveal{margin:20px 0;padding:22px;border-radius:var(--radius);background:var(--soft)}
.parent-code-reveal strong{display:block;font:700 clamp(24px,5vw,36px) 'Archivo Narrow',sans-serif;letter-spacing:.09em;word-break:break-word}
.parent-code-reveal p:last-child{font-size:13px;color:var(--muted)}
.linked-parent{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}
.linked-parent>span{display:grid;gap:4px}
.family-access small{display:block;margin-top:12px;color:var(--muted)}
@media(max-width:700px){.parent-summary-head{flex-direction:column}.parent-summary-head .button{width:100%}.parent-stats,.parent-profile{grid-template-columns:1fr}.parent-stats article+article{padding-left:0;border-left:0;border-top:1px solid var(--line)}.parent-progress-list article{grid-template-columns:30px 1fr}.parent-progress-list article>span:last-child{grid-column:2}.parent-student-chip{flex:1}.linked-parent{align-items:flex-start;flex-direction:column}.linked-parent form,.linked-parent button{width:100%}}
