@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root{--cream:#fff7e6;--paper:#fffaf0;--pink:#f6a9bb;--pink-deep:#cc225d;--coral:#d84738;--red:#b92f2c;--blue:#a8cedc;--blue-deep:#27677a;--yellow:#f7d369;--ink:#3a2823;--muted:#7d625b;--line:#c87969;--radius:28px;--shadow:0 18px 45px rgba(110,52,44,.12)}
*{box-sizing:border-box}html{background:#ef9fb5}body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;background:linear-gradient(135deg,#f7aec0,#f4a1b5);min-height:100vh}button{font:inherit;color:inherit}.app-shell{width:min(1420px,calc(100% - 40px));min-height:calc(100vh - 40px);margin:20px auto;background:var(--cream);border:2px solid rgba(94,48,38,.55);border-radius:32px;overflow:hidden;box-shadow:var(--shadow)}.topbar{height:82px;padding:14px 28px;display:flex;align-items:center;gap:28px;border-bottom:1px solid rgba(128,75,63,.2);position:sticky;top:0;background:rgba(255,247,230,.94);backdrop-filter:blur(16px);z-index:20}.brand{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;text-align:left;padding:0}.brand-mark,.profile-button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:0;background:var(--coral);color:var(--cream);font-family:"Fraunces",serif;font-weight:700;font-size:20px}.brand strong,.brand small{display:block}.brand strong{font-family:"Fraunces",serif;font-size:22px;line-height:1}.brand small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}.desktop-nav{display:flex;gap:4px;flex:1;justify-content:center}.nav-button{border:0;background:transparent;border-radius:999px;padding:10px 15px;cursor:pointer;font-size:13px}.nav-button:hover,.nav-button.active{background:#f6c6cd}.profile-button{margin-left:auto;background:var(--yellow);color:var(--red)}main{padding:24px}.page-view{animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.card{border-radius:var(--radius);padding:26px;border:1.5px solid rgba(91,49,39,.35);box-shadow:0 10px 25px rgba(112,55,47,.06)}.pink-card{background:var(--pink);min-height:520px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:58px}.coral-card{background:var(--coral);color:var(--cream);min-height:520px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:11px;margin:0 0 14px}.hero-copy h1{font-family:"Fraunces",serif;font-size:clamp(54px,7vw,108px);line-height:.84;margin:10px 0 30px;color:var(--red);letter-spacing:-.055em}.hero-copy h1 em{font-style:italic}.hero-text{max-width:520px;font-size:18px;line-height:1.5}.primary-button{margin-top:24px;border:0;border-radius:999px;background:var(--coral);color:white;padding:15px 24px;font-weight:700;cursor:pointer}.primary-button:hover{background:var(--red)}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-heading h2,.card-heading h3{font-family:"Fraunces",serif;margin:0;font-size:30px}.card-heading.light{color:var(--cream)}.round-button{border:1px solid currentColor;background:rgba(255,255,255,.28);width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:20px}.mini-wheel{width:min(360px,76%);aspect-ratio:1;margin:12px auto 6px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--yellow) 0 34deg,#ff9779 34deg 68deg,#f5b0ca 68deg 102deg,var(--blue) 102deg 136deg,#f7d369 136deg 170deg,#9ac75d 170deg 204deg,#74b2cb 204deg 238deg,#ab94c8 238deg 272deg,#ef789d 272deg 306deg,#facd65 306deg 340deg,#efae82 340deg);position:relative}.mini-wheel:after{content:"";position:absolute;inset:15%;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 13px,rgba(91,49,39,.18) 14px 15px),var(--cream)}.wheel-core{z-index:1;width:110px;height:110px;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--coral);color:white;font-family:"Fraunces",serif;font-size:38px}.wheel-core small{display:block;font-family:"DM Sans",sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.balance-note{text-align:center;font-weight:600;margin:8px auto 0;max-width:380px}.overview-section{padding:46px 4px 16px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h2{font-family:"Fraunces",serif;font-size:42px;margin:0;color:var(--red)}.section-heading>p{color:var(--muted)}.overview-grid{display:grid;grid-template-columns:1.25fr .85fr .85fr;gap:18px}.overview-grid .card{min-height:340px}.habit-preview{background:#ffe4eb}.blue-card{background:var(--blue)}.yellow-card{background:var(--yellow)}.radial-habits{width:210px;aspect-ratio:1;margin:12px auto;border-radius:50%;display:grid;place-items:center;background:repeating-conic-gradient(from -90deg,var(--pink-deep) 0 5deg,transparent 5deg 7.5deg),radial-gradient(circle at center,var(--paper) 0 35%,transparent 36%),#f8cbd6;mask:radial-gradient(circle,transparent 0 31%,#000 32%)}.radial-center{font-family:"Fraunces",serif;font-size:34px;text-align:center}.radial-center small{display:block;font:10px "DM Sans",sans-serif;text-transform:uppercase}.habit-legend{display:flex;justify-content:center;gap:18px;font-size:12px}.habit-legend span{display:flex;align-items:center;gap:6px}.habit-legend i{width:10px;height:10px;border-radius:50%;background:#f2b4c4}.habit-legend .done-dot{background:var(--pink-deep)}.stat-row{display:flex;align-items:baseline;gap:12px;padding:17px 0;border-bottom:1px solid rgba(51,67,72,.15)}.stat-row strong{font-family:"Fraunces",serif;font-size:40px;color:var(--blue-deep)}.stat-row.warning strong{color:var(--red)}.book-progress{height:12px;background:rgba(255,255,255,.7);border-radius:999px;margin:35px 0 24px;overflow:hidden}.book-progress span{display:block;height:100%;background:var(--coral)}.books-total{display:flex;align-items:center;gap:14px}.books-total strong{font-family:"Fraunces",serif;font-size:80px;line-height:1;color:var(--red)}.books-total span{font-size:13px}.mobile-nav{display:none}
@media(max-width:980px){.app-shell{width:100%;min-height:100vh;margin:0;border-radius:0;border:0}.desktop-nav{display:none}.topbar{height:70px;padding:12px 18px}.profile-button{width:40px;height:40px}main{padding:14px 14px 90px}.hero-grid{grid-template-columns:1fr}.pink-card,.coral-card{min-height:auto}.pink-card{padding:36px 26px}.hero-copy h1{font-size:58px}.overview-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.section-heading h2{font-size:34px}.section-heading>p{margin-bottom:0}.mobile-nav{position:fixed;display:flex;left:10px;right:10px;bottom:10px;background:rgba(255,250,240,.96);border:1px solid rgba(91,49,39,.3);border-radius:22px;padding:8px;z-index:30;box-shadow:var(--shadow);overflow-x:auto}.mobile-nav .nav-button{min-width:68px;padding:8px 10px;font-size:10px}.brand small{display:none}}@media(max-width:520px){.app-shell{overflow:visible}.topbar{position:sticky}.brand strong{font-size:18px}.hero-copy h1{font-size:49px}.card{padding:20px;border-radius:23px}.mini-wheel{width:85%}.overview-grid .card{min-height:300px}.section-heading h2{font-size:30px}}
