
    :root{
      --forest:#153e38;--forest2:#204f45;--forest3:#285d50;--ink:#1d332f;--muted:#60726c;
      --cream:#f6f7f2;--paper:#ffffff;--stroke:#dfe6df;--peach:#f8e9d5;--gold:#edb35d;
      --mint:#e4f3e9;--good:#246747;--blue:#e9eff9;--warning:#fff0db;--shadow:0 12px 38px rgba(21,62,56,.06);
      --radius:22px;--sidebar:258px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--cream);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);line-height:1.52;font-size:16px}
    button,input,textarea,select{font:inherit}
    button{cursor:pointer}
    button:disabled{opacity:.53;cursor:not-allowed}
    a{color:inherit}
    :focus-visible{outline:3px solid #dca452;outline-offset:3px}
    .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
    .ico{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}
    .app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100dvh}
    .sidebar{background:var(--forest);color:#f6fff8;display:flex;flex-direction:column;padding:29px 17px 25px;min-height:100dvh;position:sticky;top:0;height:100dvh;z-index:12}
    .brand{display:flex;gap:11px;align-items:center;padding:2px 10px 31px}
    .brand-mark{width:40px;height:40px;border-radius:13px;background:var(--gold);color:var(--forest);display:grid;place-items:center;font-family:Georgia,serif;font-size:25px;font-weight:700}
    .brand-txt{line-height:1.13}.brand-txt strong{font-size:16px;letter-spacing:-.02em;display:block}.brand-txt small{color:#bdd2c9;font-size:12px;letter-spacing:.05em}
    .side-section{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#a9c4b8;margin:8px 15px 12px;font-weight:750}
    .nav{display:grid;gap:4px}
    .nav button{color:#d5e9df;border:1px solid transparent;background:transparent;border-radius:13px;width:100%;display:flex;align-items:center;gap:13px;padding:12px 13px;text-align:left;font-size:14px;font-weight:650;transition:background .17s,color .17s}
    .nav button .ico{width:20px;height:20px}
    .nav button:hover{background:#2b5a50}
    .nav button.active{background:#f5f6f0;color:var(--forest)}
    .sidebar-foot{margin-top:auto;padding:14px 11px 0}
    .private-side{display:flex;gap:10px;align-items:flex-start;border-top:1px solid #426b60;padding-top:21px;color:#bfd6cd;font-size:12px;line-height:1.5}
    .main{min-width:0;padding:23px clamp(20px,4.1vw,62px) 60px}
    .main-inner{max-width:1160px;margin:auto}
    .topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:27px;min-height:39px}
    .crumb{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.13em;text-transform:uppercase}
    .top-right{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
    .top-pill{border:1px solid #dbe5da;border-radius:100px;padding:7px 11px;display:inline-flex;align-items:center;gap:7px;background:#fff;color:#40584e;font-size:12px;font-weight:650}
    .top-pill .ico{width:15px;height:15px}
    .link-btn{border:0;background:transparent;color:var(--forest3);font-size:13px;font-weight:750;padding:8px}
    .hero{border-radius:27px;background:var(--forest);color:#f9fff9;position:relative;isolation:isolate;overflow:hidden;padding:clamp(27px,4.2vw,54px);min-height:288px;display:flex;align-items:center;box-shadow:0 18px 50px rgba(13,58,49,.1)}
    .hero:before{content:"";position:absolute;width:375px;height:375px;right:-70px;top:-65px;border:1px solid rgba(248,224,167,.3);border-radius:50%;box-shadow:0 0 0 42px rgba(254,255,248,.025),0 0 0 92px rgba(244,212,157,.06),0 0 0 144px rgba(255,255,255,.035);z-index:-1}
    .hero:after{content:"";position:absolute;width:215px;height:215px;right:140px;bottom:-145px;border:1px solid rgba(249,213,155,.35);border-radius:50%;z-index:-1}
    .eyebrow{font-size:12px;font-weight:750;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:9px;margin-bottom:12px}
    .eyebrow:before{content:"";width:21px;height:1px;background:var(--gold)}
    h1,h2,h3,p{margin-top:0}
    h1{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.055em;line-height:1.05;font-size:clamp(34px,4.3vw,59px);font-weight:500;margin-bottom:13px}
    .hero p{color:#d8e8df;font-size:16px;max-width:555px;margin-bottom:21px}
    .hero .hero-small{font-size:12px;color:#bfd9cc;margin-top:15px;margin-bottom:0}
    .btn{appearance:none;border:0;background:var(--forest);color:white;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;min-height:44px;padding:11px 17px;font-size:14px;font-weight:750;text-decoration:none;transition:transform .14s,background .14s,box-shadow .14s}
    .btn:hover:not(:disabled){transform:translateY(-1px);background:#2a6253}
    .btn .ico{width:17px;height:17px}
    .btn-gold{background:var(--gold);color:#203b32}.btn-gold:hover:not(:disabled){background:#f2c27c}
    .btn-ghost{background:white;color:var(--forest);border:1px solid var(--stroke)}.btn-ghost:hover:not(:disabled){background:#f5f8f3}
    .btn-soft{background:#eaf3ed;color:var(--forest);border:1px solid #d1e5d6}.btn-soft:hover:not(:disabled){background:#dcece1}
    .btn-danger{background:#fff2ef;border:1px solid #f0cdc5;color:#a23b32}.btn-danger:hover:not(:disabled){background:#ffe5e0}
    .btn-sm{min-height:37px;padding:8px 12px;font-size:12px;border-radius:10px}
    .sec-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:29px 0 16px}
    .sec-head h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(23px,2.5vw,31px);letter-spacing:-.04em;line-height:1.1;margin:0}
    .sec-head p{margin:7px 0 0;color:var(--muted);font-size:14px}
    .sec-link{font-weight:750;font-size:13px;display:inline-flex;align-items:center;gap:5px;color:#396455;white-space:nowrap}
    .stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:17px 0}
    .stat{background:var(--paper);border:1px solid var(--stroke);padding:19px 18px;border-radius:17px;box-shadow:var(--shadow)}
    .stat-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;letter-spacing:.045em;color:var(--muted);gap:7px}
    .stat-value{font-size:30px;letter-spacing:-.045em;line-height:1.15;margin:9px 0 11px;font-weight:780}
    .progress-track{background:#e8eee8;height:6px;border-radius:100px;overflow:hidden}
    .progress-fill{background:#518876;height:100%;border-radius:100px;transition:width .3s ease}
    .stat:nth-child(2) .progress-fill{background:#cf9352}.stat:nth-child(3) .progress-fill{background:#618fbb}.stat:nth-child(4) .progress-fill{background:#8b80b8}
    .module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
    .module{border:1px solid var(--stroke);background:white;border-radius:20px;min-height:194px;padding:23px;text-align:left;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .17s,box-shadow .17s,border-color .17s;color:inherit}
    .module:hover{transform:translateY(-3px);border-color:#a3bbad;box-shadow:0 19px 44px rgba(18,57,50,.09)}
    .module-top{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:auto}
    .module-symbol{width:46px;height:46px;border-radius:15px;display:grid;place-items:center}
    .module-symbol .ico{width:23px;height:23px}
    .module-symbol.orange{background:#fff0de;color:#ad6a23}.module-symbol.green{background:#e3f3e7;color:#2b7151}.module-symbol.blue{background:#eaf0f9;color:#4b70ad}.module-symbol.purple{background:#f1eafa;color:#7360ac}
    .module h3{font-family:Georgia,serif;font-weight:600;letter-spacing:-.035em;font-size:24px;margin:15px 0 6px}
    .module p{color:var(--muted);font-size:13px;max-width:330px;margin:0}
    .module-arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f0f4ef;color:var(--forest)}
    .note-banner{display:flex;gap:15px;align-items:center;justify-content:space-between;border:1px solid #dedfcf;border-radius:18px;background:#fbf6e9;padding:19px 21px;margin-top:18px}
    .note-banner strong{font-size:15px}.note-banner p{margin:4px 0 0;font-size:13px;color:#6a6757}
    .note-banner .ico{color:#a47e45}
    .page-heading{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:24px}
    .page-heading h1{font-size:clamp(30px,3.9vw,46px);color:var(--forest);margin:8px 0 9px}
    .page-heading p{max-width:720px;color:var(--muted);font-size:15px;margin:0}
    .mini-label{color:#648578;text-transform:uppercase;font-weight:800;letter-spacing:.15em;font-size:11px}
    .panel{background:#fff;border:1px solid var(--stroke);border-radius:21px;padding:clamp(18px,3vw,29px);box-shadow:var(--shadow);min-width:0}
    .panel + .panel{margin-top:15px}
    .panel h3{font-size:20px;letter-spacing:-.035em;margin-bottom:10px}
    .soft-panel{background:#eff5ee;border:1px solid #d5e6d9;border-radius:16px;padding:18px 19px}
    .warm-panel{background:#fff8ed;border:1px solid #f1e4ca;border-radius:16px;padding:18px 19px}
    .split{display:grid;grid-template-columns:minmax(0,1fr) 305px;align-items:start;gap:17px}
    .capsule-row{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0 18px}
    .capsule{border:1px solid #dce6dc;background:#fff;color:#355e50;border-radius:100px;font-size:12px;font-weight:750;min-height:36px;padding:7px 14px;white-space:nowrap}
    .capsule.active{background:var(--forest);border-color:var(--forest);color:#fff}
    .capsule:hover:not(.active){background:#eef4ef}
    .flashcard{border:1px solid #d7e5dc;background:linear-gradient(125deg,#f1f8f1,#fffdf6);border-radius:22px;padding:clamp(23px,4vw,41px);min-height:285px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;overflow:hidden}
    .flashcard:after{content:"?";font-family:Georgia,serif;position:absolute;right:23px;top:-55px;font-size:190px;color:rgba(57,119,91,.055);pointer-events:none}
    .flashcard .small{font-size:12px;color:#5b7869;font-weight:750;margin-bottom:15px;letter-spacing:.13em;text-transform:uppercase}
    .flashcard h2{font-family:Georgia,serif;font-size:clamp(29px,4vw,43px);letter-spacing:-.05em;font-weight:500;margin-bottom:16px}
    .flashcard p{max-width:560px;line-height:1.7;color:#375249;font-size:15px;margin:0 0 11px}
    .flashcard .example{font-size:13px;color:#687d71}
    .flash-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:17px}
    .card-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}
    .small-sub{font-size:12px;color:var(--muted)}
    .stack{display:grid;gap:12px}
    .check-rows{display:grid;gap:10px}
    .check-row{display:flex;gap:10px;align-items:start;font-size:13px;color:#4f675e}
    .check-row .ico{width:17px;height:17px;color:#6b9c7a;margin-top:1px}
    .quiz-question{font-family:Georgia,serif;font-size:clamp(25px,3.2vw,33px);font-weight:500;line-height:1.27;letter-spacing:-.035em;margin:12px 0 22px}
    .choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
    .choice{border:1px solid #dde5dc;border-radius:14px;background:white;display:flex;gap:12px;align-items:center;text-align:left;padding:15px;min-height:71px;font-size:14px;font-weight:650;line-height:1.4;color:var(--ink);transition:background .12s,border-color .12s}
    .choice:hover:not(:disabled){border-color:#80aa91;background:#f6faf6}
    .choice:disabled{cursor:default;opacity:1}
    .choice.selected{border-color:#bca3e1;background:#f5f1fa}
    .choice.correct{background:#e4f5e9;border-color:#9acbae;color:#1d6742}
    .choice.wrong{background:#fff0e9;border-color:#edb5a5;color:#a44736}
    .choice-index{width:30px;height:30px;border-radius:9px;background:#f0f3ee;color:#5b7366;display:grid;place-items:center;flex-shrink:0;font-size:12px;font-weight:800}
    .choice.correct .choice-index{background:#cde6d5;color:#1d6742}.choice.wrong .choice-index{background:#f8d4c9;color:#a44736}
    .answer-reveal{padding:16px 18px;border-radius:14px;border:1px solid #cbe5d1;background:#f0f8f1;margin-top:15px;display:flex;gap:12px;font-size:14px;line-height:1.6}
    .answer-reveal.wrong{border-color:#efd9b7;background:#fff8eb}
    .answer-reveal strong{display:block;margin-bottom:3px}
    .qa-footer{display:flex;justify-content:space-between;align-items:center;gap:13px;flex-wrap:wrap;margin-top:20px}
    .tag{display:inline-flex;border-radius:100px;padding:5px 11px;font-size:11px;font-weight:800;letter-spacing:.035em;color:#557160;background:#edf4ef}
    .tag.purple{background:#eee8f5;color:#745c94}.tag.amber{background:#fff0dc;color:#926332}.tag.blue{background:#e9f1fa;color:#456d9a}
    .source-box{border-left:3px solid #d2a567;border-radius:0 12px 12px 0;background:#faf6ed;padding:17px 19px;margin:18px 0 23px;color:#4c554c}
    .source-box p{margin:0;line-height:1.75;font-size:15px}
    .field{width:100%;border:1px solid #ccd8cf;border-radius:15px;resize:vertical;line-height:1.72;min-height:240px;padding:17px 19px;font-size:15px;color:#213c32;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
    .field:focus{border-color:#588b75;box-shadow:0 0 0 3px rgba(99,150,113,.13)}
    .field::placeholder{color:#97aaa0}
    .section-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
    .story{font-size:15.3px;line-height:1.87;color:#30473d}
    .story p + p{margin-top:10px}
    .prompt-list{padding-left:20px;color:#4e685b;font-size:13px;line-height:1.85;margin-bottom:0}
    .textcount{font-size:12px;color:var(--muted);font-weight:600}
    .feedback{margin-top:18px;border:1px solid #cfe0d5;border-radius:19px;padding:21px;background:#f7fbf7}
    .feedback h3{font-family:Georgia,serif;font-size:23px;font-weight:500;margin:7px 0 8px}
    .feedback-head{display:flex;align-items:start;justify-content:space-between;gap:12px;flex-wrap:wrap}
    .rubric{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0}
    .rubric-item{border:1px solid #dae8db;border-radius:12px;background:white;padding:11px 13px;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:750}
    .rubric-item.yes .ico{color:#2b8257}.rubric-item.no .ico{color:#bd814a}
    .feedback-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .feedback-cols > div{border-radius:13px;background:#fff;border:1px solid #dae7dc;padding:15px}
    .feedback-cols h4{font-size:13px;margin:0 0 9px}.feedback-cols p{font-size:13px;line-height:1.65;color:#52685d;margin:0 0 9px}
    .feedback-cols p:last-child{margin:0}
    .feedback-note{font-size:11px;color:#6f8176;margin:13px 0 0;line-height:1.7}
    .attempts{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
    .attempt-pill{padding:7px 10px;border:1px solid #dce6dc;border-radius:9px;font-size:12px;background:#fff;color:#415e51}
    .compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
    .selector-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 18px}
    .selector-wrap{display:flex;flex-direction:column;gap:5px;min-width:180px;flex:1}
    .selector-wrap label{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.055em;text-transform:uppercase}
    .picker{width:100%;min-height:44px;border:1px solid #d2dfd4;border-radius:12px;background:white;padding:9px 13px;color:var(--forest);font-size:14px;line-height:1.35}
    .goal-intro{display:grid;grid-template-columns:1fr 245px;gap:18px;align-items:center;margin-bottom:15px}
    .goal-overall{background:#eaf5ed;border-radius:17px;padding:18px;text-align:center;border:1px solid #d5e5d7}
    .goal-overall strong{font-size:33px;letter-spacing:-.05em;color:var(--forest);display:block;line-height:1.2}
    .goal-progress{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:19px}
    .goal-mini{padding:15px;background:white;border:1px solid var(--stroke);border-radius:13px}
    .goal-mini strong{font-size:12px;display:block;margin:0 0 7px}
    .goal-mini small{font-size:11px;color:var(--muted);display:block;margin-bottom:9px}
    .goal-category{font-family:Georgia,serif;font-size:23px;letter-spacing:-.025em;font-weight:500;margin:25px 0 11px}
    .goal-stack{display:grid;grid-template-columns:1fr;gap:11px}
    .goal-card{background:white;border:1px solid var(--stroke);border-radius:16px;padding:18px;scroll-margin-top:145px}
    .goal-card[data-status="ready"]{border-color:#9bc7ae;background:#f8fcf9}
    .goal-card[data-status="learning"]{border-color:#ecd2a7}
    .goal-card-top{display:flex;justify-content:space-between;gap:12px;align-items:start}
    .goal-card p{font-size:14px;line-height:1.62;margin:8px 0 14px}
    .goal-card-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
    .goal-levels{display:flex;flex-wrap:wrap;gap:6px}
    .goal-level{border:1px solid #dce5dc;border-radius:10px;padding:9px 11px;font-size:12px;background:#fff;color:#36564c;font-weight:750;min-height:38px}
    .goal-level:hover{background:#f1f7f2}
    .goal-level.active{background:var(--forest);color:white;border-color:var(--forest)}
    .goal-hint{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:12px}
    .footnote{color:#778b7c;font-size:12px;line-height:1.7;margin-top:19px}
    .inline-status{font-size:12px;color:#507563;font-weight:750}
    .toast{position:fixed;bottom:23px;right:24px;background:#1c4e41;color:white;padding:12px 18px;border-radius:12px;box-shadow:0 18px 40px rgba(15,50,40,.3);z-index:99;opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .2s,transform .2s;max-width:min(370px,calc(100vw - 30px));font-size:13px}
    .toast.visible{opacity:1;transform:translateY(0)}
    .footer{text-align:center;color:#83968b;font-size:11px;margin:40px auto 0}
    .footer p{margin:3px 0}
    #print-root{display:none}
    @media(max-width:1080px){.split{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:850px){.app{display:block}.sidebar{position:sticky;top:0;min-height:0;height:auto;padding:10px 12px 9px;box-shadow:0 4px 20px rgba(12,54,44,.15)}.brand{padding:2px 7px 11px}.brand-mark{width:31px;height:31px;border-radius:9px;font-size:19px}.brand-txt strong{font-size:14px}.brand-txt small{font-size:10px}.side-section,.sidebar-foot{display:none}.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px}.nav::-webkit-scrollbar{display:none}.nav button{white-space:nowrap;width:auto;flex-shrink:0;gap:6px;padding:9px 11px;font-size:12px;border-radius:10px}.nav button .ico{width:16px;height:16px}.main{padding:19px 16px 47px}.topbar{margin-bottom:18px}.hero{min-height:265px}.hero:before{right:-205px}.top-pill{font-size:11px}.crumb{font-size:10px}}
    @media(max-width:590px){.hero{padding:25px 23px;min-height:0}.hero p{font-size:14px}.hero h1{font-size:39px}.stat-grid{gap:9px}.stat{padding:14px}.stat-value{font-size:25px}.module-grid{grid-template-columns:1fr;gap:10px}.module{min-height:150px;padding:19px}.module h3{font-size:23px;margin-top:9px}.module-symbol{width:39px;height:39px;border-radius:11px}.choices{grid-template-columns:1fr}.feedback-cols,.rubric,.compare-grid,.goal-progress,.goal-intro{grid-template-columns:1fr}.note-banner{align-items:flex-start}.sec-head{align-items:start}.page-heading{display:block}.page-heading .tag{margin-top:12px}.capsule-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.card-nav{gap:7px}.card-nav .btn{padding:10px 12px}.goal-card-actions{align-items:flex-start}.selector-wrap{min-width:100%}.topbar{align-items:flex-start}.top-right .top-pill:nth-child(2){display:none}}
    @media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
  