@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500;1,9..144,600&family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&display=swap";.card{position:relative;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r-card);box-shadow:var(--shadow-1)}.ribbon{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--burgundy) 0%,var(--burgundy) 30%,var(--tag) 30%,var(--tag) 60%,var(--olive) 60%,var(--olive) 100%);border-radius:var(--r-card) var(--r-card) 0 0}.stamp{display:inline-block;padding:5px 14px;border-radius:var(--r-stamp);font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;transform:rotate(-1.5deg);white-space:nowrap}.stamp--burgundy{background:var(--burgundy);color:var(--card);box-shadow:var(--shadow-stamp-burgundy)}.stamp--olive{background:var(--olive);color:var(--card);box-shadow:var(--shadow-stamp-olive)}.stamp--tag{background:var(--tag);color:var(--ink);box-shadow:var(--shadow-stamp-tag)}.primary-btn{background:var(--burgundy);color:var(--card);border:none;padding:14px 24px;font-size:15px;font-weight:600;font-family:Manrope,sans-serif;border-radius:var(--r-button);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:var(--shadow-button-burgundy);transition:transform .15s,box-shadow .15s}.primary-btn:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-button-burgundy-hover)}.primary-btn:active{transform:translate(0);box-shadow:var(--shadow-button-burgundy)}.primary-btn--ghost{background:transparent;color:var(--burgundy);border:1.5px solid var(--burgundy);box-shadow:none}.primary-btn--ghost:hover{transform:translate(-1px,-1px);box-shadow:none;background:#7a28260d}.landing{padding:60px 24px 40px;max-width:580px;margin:0 auto}.landing__brand{text-align:center;margin-bottom:12px}.landing__title{font-family:Manrope,sans-serif;font-size:clamp(2.2rem,5.5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;text-align:center;margin:24px 0 14px;color:var(--ink)}.landing__subtitle{font-size:1rem;font-weight:500;text-align:center;color:var(--ink-soft);margin:0 0 8px}.landing__description{font-size:15px;line-height:1.6;color:var(--ink-soft);text-align:center;max-width:460px;margin:0 auto 44px}.landing__card{padding:32px 28px 28px;text-align:center}.landing__card-eyebrow{font-size:13px;font-weight:500;color:var(--ink-faded);margin-bottom:18px}.landing__card-hint{font-size:13px;font-style:italic;color:var(--ink-faded);margin:20px 0 0}.landing__footer{margin-top:56px;text-align:center;font-size:11px;letter-spacing:.2em;color:var(--ink-faded);text-transform:uppercase}.dashboard{padding:36px 24px;max-width:1080px;margin:0 auto}.dashboard__header{position:relative;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;padding-bottom:28px;border-bottom:2px solid var(--line);margin-bottom:36px}.dashboard__bookmark{position:absolute;bottom:-2px;left:0;width:100px;height:4px;background:var(--burgundy)}.dashboard__eyebrow{font-size:13px;font-weight:500;color:var(--ink-faded);margin-bottom:6px}.dashboard__greeting{font-family:Fraunces,serif;font-style:italic;font-size:clamp(1.9rem,4.5vw,2.4rem);font-weight:500;letter-spacing:-.01em;line-height:1.15;margin:0;color:var(--ink)}.dashboard__greeting .accent{font-style:italic}.dashboard__section-head{margin-bottom:24px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.dashboard__section-title{font-family:Manrope,sans-serif;font-weight:700;font-size:19px;letter-spacing:-.01em;margin:0;color:var(--ink)}.dashboard__section-hint{font-size:14px;color:var(--ink-soft)}.materials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-bottom:60px}.material-card{position:relative;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r-card);box-shadow:var(--shadow-1);padding:24px 24px 22px;display:flex;flex-direction:column;min-height:220px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}.material-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-1-hover)}.material-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.material-card__number{font-size:12px;letter-spacing:.16em;color:var(--ink-faded);font-weight:700}.material-card__title{font-family:Manrope,sans-serif;font-size:21px;font-weight:700;letter-spacing:-.01em;margin:0 0 6px;color:var(--ink);line-height:1.2}.material-card__subtitle{font-size:14px;color:var(--ink-soft);margin:0 0 18px;line-height:1.5;flex-grow:1}.material-card__progress{margin-bottom:16px}.material-card__bar{position:relative;height:8px;background:var(--paper-deep);border-radius:1px;overflow:hidden;border:1px solid var(--line-soft);margin-bottom:8px}.material-card__bar-fill{height:100%;transition:width .5s}.material-card__bar-fill--olive{background:var(--olive)}.material-card__bar-fill--burgundy{background:var(--burgundy)}.material-card__stats{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);letter-spacing:.04em}.material-card__stats-score{font-weight:700}.material-card__cta{background:var(--burgundy);color:var(--card);padding:10px 14px;font-size:13px;font-weight:600;font-family:Manrope,sans-serif;border-radius:var(--r-button);width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:var(--shadow-button-burgundy)}.material-card__cta--ghost{background:transparent;color:var(--burgundy);border:1.5px solid var(--burgundy);box-shadow:none}.course-banner{padding:32px 36px;overflow:hidden}.course-banner__clip{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:60px;height:18px;background:var(--tag);border-radius:2px;box-shadow:1px 1px 0 var(--tag-deep)}.course-banner__inner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:12px}.course-banner__content{flex:1 1 320px}.course-banner__title{font-family:Manrope,sans-serif;font-size:24px;font-weight:700;letter-spacing:-.02em;margin:14px 0 8px;color:var(--ink);line-height:1.15}.course-banner__description{font-size:14px;color:var(--ink-soft);margin:0;line-height:1.55}.course-banner__start{margin-top:8px;font-size:14px;font-weight:500;color:var(--ink-soft)}.course-banner__countdown{margin-top:4px;font-size:13px;font-weight:600;color:var(--burgundy)}.course-banner__cta{background:var(--burgundy);color:var(--card);padding:12px 20px;font-size:14px;font-weight:600;font-family:Manrope,sans-serif;border-radius:var(--r-button);text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:var(--shadow-button-burgundy);transition:transform .15s,box-shadow .15s}.course-banner__cta:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow-button-burgundy-hover)}:root{--paper: #f3e8cf;--paper-deep: #ebdcb8;--card: #fffaee;--ink: #1f1810;--ink-soft: #6b5a45;--ink-faded: #94836d;--burgundy: #7a2826;--burgundy-dark:#5a1a18;--olive: #4f5e2f;--olive-dark: #3a4622;--tag: #f1b94c;--tag-deep: #d99e2c;--line: #c9b896;--line-soft: #e0d2b3;--success-bg: #dfe8d2;--shadow-1: 0 1px 0 var(--line-soft), 0 6px 20px rgba(31, 24, 16, .05);--shadow-1-hover: 0 1px 0 var(--line-soft), 0 12px 32px rgba(31, 24, 16, .1);--shadow-stamp-burgundy: 1px 1px 0 var(--burgundy-dark);--shadow-stamp-olive: 1px 1px 0 var(--olive-dark);--shadow-stamp-tag: 1px 1px 0 var(--tag-deep);--shadow-button-burgundy: 2px 2px 0 var(--burgundy-dark);--shadow-button-burgundy-hover: 3px 3px 0 var(--burgundy-dark);--r-card: 4px;--r-stamp: 2px;--r-button: 3px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{background:var(--paper);color:var(--ink);font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--burgundy);outline-offset:2px}a{color:inherit}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .55s ease-out backwards}.accent{font-family:Fraunces,serif;font-style:italic;font-weight:500;color:var(--burgundy)}.mono{font-family:JetBrains Mono,monospace}
