:root{
  color-scheme:light;
  --ink:#1b2b21;
  --muted:#748279;
  --paper:#f3f7f3;
  --surface:#fcfdfb;
  --line:#e1e9e2;
  --green:#dcebe0;
  --green-deep:#39765f;
  --coral:#b96e7d;
  --blue:#a9c8b6;
  --serif:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --body:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body{background:var(--paper);font-family:var(--body)}
button,textarea,input{font-family:var(--body)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #5f9278;outline-offset:3px}
.app-shell{width:min(100%,760px);padding:0 28px calc(112px + env(safe-area-inset-bottom))}
.topbar{height:76px;border-bottom:1px solid rgba(205,220,209,.68)}
.brand{gap:10px;color:var(--ink);font:700 13px/1 var(--serif);letter-spacing:-.03em}
.brand-mark{width:34px;height:34px;overflow:visible;border-radius:0;background:none}
.brand-copy{display:grid;gap:3px;min-width:0}
.brand-name{display:flex;align-items:baseline;gap:4px;font:700 13px/1.05 var(--serif);letter-spacing:-.02em}
.brand-name b{color:var(--green-deep);font:700 13px/1 var(--serif);letter-spacing:-.02em}
.brand-tagline{display:block;color:var(--muted);font:400 10px/1.15 var(--body);letter-spacing:0;white-space:nowrap}
.greeting{padding:32px 0 22px}
.greeting-date{gap:8px;margin-bottom:11px;color:#72847a;font-size:9px;letter-spacing:.13em}
.date-dot{width:6px;height:6px;background:#5f9278}
.greeting h1,.page-heading h1{font-weight:700;letter-spacing:-.06em}
.greeting h1{font-size:clamp(35px,7vw,46px)}
.subhead{max-width:500px;color:#6d7d73;font-size:14px;line-height:1.58}
.hero-card{min-height:356px;border:1px solid #dce8de;border-radius:26px;background:#edf5ee;box-shadow:0 12px 38px rgba(33,61,43,.065)}
.hero-art{inset:0 0 0 45%;overflow:hidden;background:#d7e7db}
.hero-art::after{position:absolute;inset:-35%;z-index:1;content:"";pointer-events:none;background:radial-gradient(ellipse at 20% 72%,rgba(249,255,248,.72),transparent 28%),radial-gradient(ellipse at 76% 30%,rgba(237,250,239,.58),transparent 32%);filter:blur(24px);opacity:.62;animation:light-drift 18s ease-in-out infinite alternate}
.growth-art{position:absolute;inset:0;width:100%;height:100%}
.plant-sway{transform-box:view-box;transform-origin:453px 440px;animation:plant-sway 4.8s ease-in-out infinite}
.plant-stem{stroke-dasharray:560;stroke-dashoffset:560;animation:stem-draw 3.4s cubic-bezier(.2,.72,.24,1) forwards}
.plant-leaf{opacity:0;transform-box:view-box;animation:leaf-reveal 1.4s ease-out forwards,leaf-sway 4.2s ease-in-out infinite alternate}
.plant-leaf-left{transform-origin:468px 347px;animation-delay:.65s,.65s}
.plant-leaf-right{transform-origin:474px 285px;animation-delay:1.15s,1.15s;animation-duration:1.4s,4.6s}
.plant-leaf-top{transform-origin:490px 221px;animation-delay:1.75s,1.75s;animation-duration:1.4s,3.8s}
.wind-stream{transform-box:view-box;transform-origin:0 0;opacity:0;animation:wind-cross 5.8s linear infinite;will-change:transform,opacity}
.wind-stream-two{animation-delay:-1.9s}
.wind-stream-three{animation-delay:-3.8s}
.growth-glow{transform-box:view-box;transform-origin:524px 150px;animation:glow-breathe 8s ease-in-out infinite alternate}
.growth-sparkles{transform-box:view-box;transform-origin:center;animation:sparkle-drift 14s ease-in-out infinite alternate}
@keyframes stem-draw{to{stroke-dashoffset:0}}
@keyframes plant-sway{0%,100%{transform:rotate(-.65deg)}55%{transform:rotate(2.1deg)}}
@keyframes leaf-reveal{from{opacity:0}to{opacity:1}}
@keyframes leaf-sway{from{transform:rotate(-1deg)}to{transform:rotate(1.35deg)}}
@keyframes wind-cross{0%{transform:translateX(-42%);opacity:0}10%{opacity:.22}28%{opacity:.82}76%{opacity:.58}100%{transform:translateX(42%);opacity:0}}
@keyframes glow-breathe{from{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}
@keyframes sparkle-drift{from{opacity:.48;transform:translate3d(-5px,3px,0)}to{opacity:1;transform:translate3d(7px,-8px,0)}}
@keyframes light-drift{from{transform:translate(3%,-2%);opacity:.35}to{transform:translate(-4%,3%);opacity:.75}}
.route-coordinate,.route-map,.map-scale{display:none}
.hero-content{width:50%;padding:31px 28px 25px}
.hero-content{width:47%;padding-right:15px}
.hero-haiku{display:none}
.card-kicker{gap:8px;color:#557762;font-size:9px;letter-spacing:.12em}
.kicker-mark{width:20px;height:20px;display:grid;place-items:center;border:1px solid #cbd8ce;border-radius:50%;color:#829588}
.kicker-mark svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.hero-card h2{margin:30px 0 10px;color:#21362a;font:700 clamp(29px,5vw,39px)/1.1 var(--serif);letter-spacing:-.065em}
.hero-card h2 em{color:#4b8062}
.hero-card p{max-width:320px;color:#5f7466;font-size:13px;line-height:1.55}
.primary-button,.secondary-button{min-height:45px;margin-top:18px;padding:0 16px;border:0;border-radius:14px;background:#244c39;color:#fff;font-size:12px;font-weight:650;box-shadow:0 5px 14px rgba(35,73,54,.13);transition:transform .18s ease,background .18s ease}
.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){transform:translateY(-1px);background:#326249}
.button-arrow{color:#d4ead8;font-size:16px}
.hero-foot{gap:9px;margin-top:14px;color:#6e8374;font-size:9px}
.foot-separator{width:3px;height:3px;background:#97b5a0}
.section-heading{margin:35px 0 14px}
.section-heading h2{font-size:21px;font-weight:700;letter-spacing:-.05em}
.eyebrow{margin-bottom:7px;color:#71887a;font-size:9px;letter-spacing:.13em}
.section-index{color:#81958a;font:600 9px var(--body)}
.principles-grid{gap:10px}
.principle-card{min-height:145px;padding:15px 14px;border:1px solid #e1eae2;border-radius:17px;background:rgba(252,253,251,.86)}
.principle-index{color:#8ba193;font-size:9px}
.principle-card h3{margin:28px 0 6px;font:700 12px var(--serif);letter-spacing:-.025em}
.principle-card p{color:#748178;font-size:10px;line-height:1.5}
.trust-line{gap:10px;margin:17px 2px;color:#718076;font-size:10px;line-height:1.5}
.trust-index{color:#527c61;font-size:9px;font-weight:700;letter-spacing:.12em}
.bottom-nav{left:50%;bottom:calc(9px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 24px),610px);height:62px;padding:5px 7px;overflow:hidden;border:1px solid rgba(255,255,255,.68);border-radius:22px;background:rgba(232,242,234,.4);box-shadow:0 12px 36px rgba(30,54,37,.16),inset 0 1px 0 rgba(255,255,255,.82),inset 0 -1px 0 rgba(255,255,255,.25);backdrop-filter:blur(22px) saturate(190%);-webkit-backdrop-filter:blur(22px) saturate(190%)}
.bottom-nav::before{position:absolute;inset:0;z-index:0;content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(155deg,rgba(255,255,255,.38),transparent 36%,rgba(255,255,255,.08) 76%,transparent);}
.nav-item{position:relative;z-index:1;min-width:0;padding:4px 2px;border:0;border-radius:15px;background:transparent;color:#849087;font:500 9px/1 var(--body);gap:3px;transition:background .18s ease,color .18s ease}
.nav-item svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.nav-item>span{font:600 8px/1 var(--body)}
.nav-item.selected{background:rgba(222,237,224,.52);color:#386d50;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
.nav-item.selected svg{stroke-width:1.9}
.nav-item.ai-nav>span{width:auto;height:auto;margin:0;border:0;border-radius:0;background:none;color:inherit;font:600 8px/1 var(--body)}
.screen[hidden]{display:none}
.home-tasks{padding-top:6px}
.task-preview,.task-row{border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.task-check{border-color:#b7cdbb;border-radius:8px}
.task-check.done{background:#4e8062}
.task-actions button,.route-actions button,.modal-actions button{border-color:#dce7de;border-radius:12px;background:#fff;color:#45654f}
.soft-button{border:1px solid #d6e5d8;border-radius:13px;background:#f9fcf9;color:#466b51;font-size:11px}
.interview-screen{height:calc(100dvh - 98px - env(safe-area-inset-top));padding-top:20px}
.interview-heading h2{font-weight:700}
.round-button{border-color:#dfe9e0;border-radius:50%;background:var(--surface);color:#42674f}
.text-button,.subtle-action{color:#557964;font-size:10px}
.interview-progress{padding:18px 0 5px}
.progress-copy{color:#5d7b67;font-size:10px}
.progress-track{height:4px;border-radius:8px;background:#e0ebe1}
.progress-track span{border-radius:8px;background:#5e9273}
.chat{gap:11px}
.bubble{padding:12px 14px;border-radius:17px;font-size:12px}
.bubble.assistant{border:1px solid #e2eae2;border-radius:17px 17px 17px 5px;background:var(--surface)}
.bubble.user{border-radius:17px 17px 5px 17px;background:#e2efe4}
.composer{gap:7px;padding:7px;border:1px solid #dce7dd;border-radius:17px;background:var(--surface);box-shadow:0 4px 15px rgba(30,54,37,.04)}
.composer textarea{font-size:12px}
.voice-button,.send-button{border-radius:12px}
.voice-button{background:#e8f1e8;color:#476e52}
.voice-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.voice-button.recording svg rect{fill:currentColor;stroke:none}
.voice-button.processing svg{animation:voice-spin .9s linear infinite}
.send-button{background:#315e43;color:#fff}
.composer-hint{color:#89958d;font-size:9px}
.page-screen,.navigator-screen{padding-top:31px}
.page-heading{margin-bottom:21px}
.page-heading h1{font-size:clamp(34px,7vw,43px)}
.page-heading .subhead{font-size:13px}
.empty-state,.route-card,.journal-card{padding:20px;border:1px solid #e0e9e1;border-radius:20px;background:var(--surface)}
.empty-state h2,.route-card h2,.journal-card h2{font-size:20px;font-weight:700;letter-spacing:-.045em}
.empty-state p,.route-card p,.journal-card p{color:#748178;font-size:12px}
.route-label{color:#60806a;font-size:9px;letter-spacing:.1em}
.route-stat span{border-color:#e0e9e1;border-radius:22px;color:#61756a;font-size:9px}
.milestone-dot{border-radius:50%;background:#e5f0e6;color:#4d7c5c}
.secondary-button{border:1px solid #d9e6da;background:#f1f7f1;color:#375f45;box-shadow:none}
.route-actions .primary-button,.modal-actions .primary-button{border:0;background:#244c39;color:#fff}
.quick-prompts{gap:7px}
.quick-prompts button{border:1px solid #dce8dd;border-radius:20px;background:#fbfdfb;color:#5d7664;font-size:10px}
.journal-card{background:linear-gradient(140deg,#e4efe5,#d5e8dc)}
.card-glyph{width:38px;height:38px;display:grid;place-items:center;border:1px solid #d4dfd5;border-radius:12px;background:rgba(238,245,239,.7);color:#758b7c}
.card-glyph svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.journal-entry{border:1px solid #e1eae2;border-radius:15px;background:var(--surface)}
.journal-entry time{color:#8c9a90;font-size:9px}
.profile-menu{border:1px solid #e0e9e1;border-radius:17px;background:var(--surface)}
.profile-menu button{border-bottom-color:#edf2ed}
.menu-icon{border-radius:10px;background:#edf3ed;color:#6c8473}
.menu-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.profile-menu b{font-size:11px;font-weight:700}
.profile-menu small{color:#849087;font-size:9px}
.privacy-copy{color:#7e8b82;font-size:10px}
.toast{border:1px solid rgba(255,255,255,.16);border-radius:13px;background:#244436;box-shadow:0 8px 25px rgba(25,54,36,.2)}
.modal-backdrop{background:rgba(27,48,35,.32);backdrop-filter:blur(6px)}
.modal{border:1px solid rgba(255,255,255,.8);border-radius:24px;background:var(--surface);box-shadow:0 18px 70px rgba(25,54,36,.18)}
.modal-close{border-color:#e0e9e1;border-radius:50%;color:#607c68}
.modal h2{font-size:23px;font-weight:700}
.modal p{color:#748178}
.review-section{border:1px solid #e3ebe3;border-radius:15px;background:#fff}
.review-section h3{font-weight:700}
.review-controls button{border-color:#e0e9e1;border-radius:9px;background:#fff}
.review-controls button.chosen{border-color:#a9cbb0;background:#eaf3eb;color:#416d4e}
.form-label,.modal-kicker{color:#5d7f67}
.form-control{border-color:#dce7dd;border-radius:11px;background:#fbfdfb;font:12px var(--body)}
.priority-option{border-color:#e1eae2;border-radius:13px;background:#fff}
.priority-option input,.consent-checks input{accent-color:#4d8060}
.status-pill{border-radius:20px;background:#eaf3e9;color:#557b5c}
.safety-note{border-left-color:#b96e7d;border-radius:0 11px 11px 0;background:#f8eef0;color:#76535b}
.consent-details{border-color:#e1eae2;border-radius:14px;background:#fbfdfb}
.consent-details summary:after{color:#4d8060}
.consent-details>div{color:#66766c}
.profile-portrait{border:1px solid #e0e9e1;background:#fff;border-radius:17px}
.profile-portrait .eyebrow{color:#5d7f67}
.profile-portrait{padding:18px;margin-bottom:16px}
.profile-portrait .eyebrow{margin:0 0 10px;line-height:1.35}
.profile-portrait h2{margin:0 0 12px}
.profile-portrait>p:not(.eyebrow){margin:0;line-height:1.55}
.profile-portrait .secondary-button{margin-top:4px}
.profile-portrait .review-section,.profile-portrait .profile-history{margin-top:14px}
.profile-menu+.profile-menu{margin-top:14px}
.profile-menu+.privacy-copy{margin-top:16px}
.profile-history{border-color:#e1eae2}
.profile-history>summary{color:#54775e}
.profile-history article{border-color:#e7eee7}
.profile-history article small{color:#698472}
.profile-history article p{color:#65756b}
.delete-review-button{color:#9b5967}
.profile-portrait .portrait-overview{padding:14px;margin:0 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--green)}
.profile-portrait .portrait-overview>.eyebrow{margin:0 0 7px}
.profile-portrait .portrait-overview .portrait-lead{margin:0;color:var(--ink);font-size:14px;font-weight:400;line-height:1.55}
.portrait-full-summary{margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}
.portrait-full-summary>summary{color:var(--green-deep);font-size:11px;font-weight:600;cursor:pointer;list-style:none}
.portrait-full-summary>summary::-webkit-details-marker,.portrait-group>summary::-webkit-details-marker{display:none}
.portrait-full-summary>summary::after{content:'＋';float:right;color:var(--green-deep)}
.portrait-full-summary[open]>summary::after{content:'−'}
.profile-portrait .portrait-full-summary>p{margin:9px 0 0;color:var(--muted);font-size:12px;font-weight:400;line-height:1.6}
.portrait-groups{display:grid;gap:8px}
.portrait-group{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.portrait-group>summary{display:flex;align-items:center;gap:8px;padding:13px 14px;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer;list-style:none}
.portrait-group>summary>span{flex:1;min-width:0}
.portrait-group>summary>small{color:var(--muted);font-size:10px;font-weight:400;white-space:nowrap}
.portrait-group>summary::after{content:'＋';color:var(--green-deep);font-size:13px}
.portrait-group[open]>summary{border-bottom:1px solid var(--line)}
.portrait-group[open]>summary::after{content:'−'}
.portrait-group-content{padding:0 14px 8px}
.portrait-topic{padding:11px 0;border-bottom:1px solid var(--line)}
.portrait-topic:last-child{border-bottom:0}
.portrait-topic h4{margin:0 0 5px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em}
.portrait-topic p,.portrait-topic .modal-list{margin:0;color:var(--muted);font-size:12px;font-weight:400;line-height:1.55}
.portrait-topic .modal-list{padding-left:17px}
.portrait-group>summary:focus-visible,.portrait-full-summary>summary:focus-visible{outline:2px solid var(--green-deep);outline-offset:-2px;border-radius:8px}
.voice-field{display:flex;align-items:stretch;gap:8px;width:100%}
.voice-field>.form-control{flex:1;min-width:0;width:auto}
.voice-field textarea.form-control{min-height:78px}
.inline-voice-button{flex:0 0 40px;width:40px;height:40px;align-self:center;display:grid;place-items:center;border:1px solid #d8e7da;border-radius:13px;background:#edf5ee;color:#477356;transition:background .16s ease,color .16s ease,transform .16s ease}
.inline-voice-button:hover{background:#e1eee3;transform:translateY(-1px)}
.inline-voice-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inline-voice-button.recording{border-color:#d6a6b0;background:#f7e8eb;color:#9b5362;animation:pulse 1s infinite}
.inline-voice-button.processing{background:#e3eee5;color:#477356}
.inline-voice-button.processing svg{animation:voice-spin .9s linear infinite}
@keyframes voice-spin{to{transform:rotate(360deg)}}
.voice-field-status{display:block;margin:6px 2px 2px;color:#64806c;font-size:10px;line-height:1.4}
.voice-field-status[hidden]{display:none}
@media(min-width:720px){
  .app-shell{padding-left:36px;padding-right:36px}
  .hero-card{min-height:366px}
  .hero-content{padding-left:31px}
  .bottom-nav{left:50%;width:min(calc(100% - 36px),610px)}
  .principle-card{min-height:155px;padding:16px}
  .principle-card h3{margin-top:27px;font-size:13px}
  .principle-card p{font-size:11px}
}
@media(max-width:600px){
  .app-shell{padding-left:19px;padding-right:19px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .topbar{height:68px}
  .brand-mark{width:32px;height:32px}
  .brand-tagline{font-size:9px}
  .greeting{padding:27px 0 20px}
  .greeting h1{font-size:39px}
  .subhead{font-size:13px}
  .hero-card{min-height:535px;border-radius:23px}
  .hero-art{inset:0 0 auto;height:222px}
  .hero-haiku{position:absolute;z-index:2;top:55px;left:20px;display:block;width:min(43%,175px);margin:0;color:#31503c;font:600 12px/1.75 var(--serif);white-space:pre-line;text-wrap:pretty;text-shadow:0 1px 10px rgba(239,248,240,.7);opacity:1;transition:opacity .48s ease,transform .48s ease}
  .hero-haiku.is-changing{transform:translateY(4px);opacity:0}
  .hero-content{width:100%;padding:244px 20px 20px}
  .hero-card h2{margin:19px 0 9px;font-size:34px}
  .hero-card p{font-size:13px}
  .hero-foot{flex-wrap:wrap;font-size:8px}
  .section-heading{margin-top:35px}
  .section-heading h2{font-size:21px}
  .principles-grid{grid-template-columns:1fr;gap:8px}
  .principle-card{min-height:0;padding:13px 14px;border-radius:14px}
  .principle-card h3{margin:7px 0 4px;font-size:13px}
  .principle-card p{max-width:none;font-size:10px}
  .bottom-nav{bottom:calc(7px + env(safe-area-inset-bottom));width:calc(100% - 18px);height:60px;padding-left:5px;padding-right:5px}
  .nav-item{gap:3px;font-size:8px}
  .nav-item svg{width:18px;height:18px}
  .nav-item>span{font-size:8px}
  .interview-screen{height:calc(100dvh - 82px - env(safe-area-inset-top))}
  .page-screen,.navigator-screen{padding-top:27px}
  .page-heading h1{font-size:36px}
  .navigator-screen{height:calc(100dvh - 135px)}
  .modal{padding:23px 18px max(22px,env(safe-area-inset-bottom))}
  .form-control,.composer textarea{font-size:16px}
  body.keyboard-open .modal-backdrop{top:var(--app-visual-top,0px);right:0;bottom:auto;left:0;height:var(--app-visual-height,100dvh);min-height:0;align-items:flex-end;overflow-y:auto;padding:8px 12px 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  body.keyboard-open .modal{max-height:calc(var(--app-visual-height,100dvh) - 10px);padding-bottom:14px;scroll-padding-block:18px}
  body.keyboard-open .interview-screen{height:calc(var(--app-visual-height,100dvh) - 82px - env(safe-area-inset-top));min-height:0}
  body.keyboard-open .navigator-screen{height:calc(var(--app-visual-height,100dvh) - 135px);min-height:0}
  body.keyboard-open .bottom-nav{display:none}
}
@media(max-width:370px){
  .app-shell{padding-left:15px;padding-right:15px}
  .hero-card{min-height:550px}
  .hero-content{padding-left:16px;padding-right:16px}
  .bottom-nav{width:calc(100% - 14px);padding-left:2px;padding-right:2px}
  .nav-item>span{font-size:7px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}.plant-stem{stroke-dasharray:none;stroke-dashoffset:0}.plant-leaf{opacity:1}.wind-stream{transform:translateX(0)!important;opacity:.32}.growth-glow,.growth-sparkles,.hero-art::after{opacity:.7}.hero-haiku{opacity:1!important;transform:none!important}}
