@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--ivory:#F2F7FB;--sand:#D6E6F2;--earth:#8DB4D6;--walnut:#42627C;--ink:#253746;--muted:#657D90;--paper:#FFFFFF;--line:#C4D9E9;--sage:#6E8E7B;--sage-pale:#E4F0E9;--shadow:0 12px 34px rgba(54,86,112,.09);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;overflow-x:hidden}.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");mix-blend-mode:multiply}.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(107,78,61,.22);gap:24px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}.brand-mark{font-family:var(--serif);font-size:35px;color:var(--earth);transform:rotate(-20deg);display:inline-block}.brand strong{font:600 23px/1 var(--serif);letter-spacing:-.7px;display:block}.brand small{font-size:8px;letter-spacing:2.6px;color:var(--muted);display:block;margin-top:7px}.top-nav{display:flex;gap:27px}.top-nav a,.mobile-nav a{color:var(--muted);font-size:12px;text-decoration:none;transition:color .2s}.top-nav a:hover,.mobile-nav a:hover{color:var(--walnut)}.header-date{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.tiny-dot{width:6px;height:6px;border-radius:50%;background:var(--sage)}.menu-toggle,.mobile-nav{display:none}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center;padding:64px 0 69px;min-height:370px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--earth);margin:0 0 15px}.ornament{font-size:13px;margin-right:8px}.hero h1{font:500 clamp(37px,4.5vw,59px)/1.14 var(--serif);letter-spacing:-1.6px;margin:0;max-width:590px}.hero h1 em,.section-heading h2 em,.progress-card h2 em,.summary-title h2 em{color:var(--earth);font-weight:500}.hero-intro{font-size:13px;line-height:1.8;color:var(--muted);max-width:390px;margin:19px 0 26px}.hero-meta{display:flex;align-items:center;gap:24px}.hero-meta div:not(.meta-rule){display:flex;flex-direction:column;gap:5px}.meta-label{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.hero-meta strong{font:500 13px var(--serif)}.meta-rule{height:31px;width:1px;background:var(--line)}
.hero-art{height:260px;position:relative;overflow:hidden;background:#D6E6F2;border:1px solid #B9D2E5;border-radius:2px;isolation:isolate}.hero-art:before{content:"";position:absolute;inset:10px;border:1px solid rgba(107,78,61,.28);z-index:2;pointer-events:none}.sun{position:absolute;right:17%;top:20%;height:61px;width:61px;border-radius:50%;background:#8DB4D6;opacity:.85}.horizon{position:absolute;bottom:36%;left:-5%;width:110%;height:42%;background:#A9C7DF;clip-path:polygon(0 66%,15% 30%,31% 53%,49% 15%,68% 53%,85% 25%,100% 56%,100% 100%,0 100%)}.hut{position:absolute;bottom:29%;left:37%;width:31%;height:33%;z-index:1}.roof{position:absolute;left:-14%;top:-30%;width:128%;height:48%;background:#6F94B5;clip-path:polygon(50% 0,100% 100%,0 100%);border-bottom:2px solid #42627C}.hut-wall{position:absolute;inset:14% 0 0;background:#b58c62;border:1px solid #6F94B5}.door{position:absolute;bottom:0;left:37%;width:24%;height:63%;background:#42627C;border-radius:15px 15px 0 0}.window{position:absolute;top:23%;left:8%;width:20%;height:24%;border:2px solid #42627C;background:#d9b991}.field{position:absolute;bottom:-3%;width:120%;height:35%;left:-10%;border-radius:50% 50% 0 0}.field-one{background:#a3a17b;transform:rotate(-8deg);bottom:-10%}.field-two{background:#85865f;transform:rotate(8deg);bottom:-20%;opacity:.85}.plant{position:absolute;bottom:9%;height:50px;width:25px;border-left:2px solid #66704e;z-index:2}.plant i{position:absolute;width:14px;height:7px;background:#7d8960;border-radius:100% 0 100% 0;left:-13px;top:9px;transform:rotate(-22deg)}.plant i:nth-child(2){left:1px;top:20px;transform:rotate(28deg)}.plant i:nth-child(3){left:-13px;top:31px}.plant b{position:absolute;left:-5px;top:-3px;width:9px;height:9px;background:#a67c52;border-radius:100%}.plant-one{left:15%}.plant-two{right:12%;transform:scale(1.2)}.art-caption{position:absolute;right:9%;top:12%;font:italic 12px/1.5 var(--serif);color:#70543d;text-align:right;z-index:3}
.section-kicker{display:flex;align-items:center;gap:13px;color:var(--earth);font-size:9px;letter-spacing:2px;font-weight:700;margin:0 0 18px}.section-kicker>span:first-child{font:italic 17px var(--serif);letter-spacing:0}.kicker-line{height:1px;background:var(--line);width:44px}
.daily-layout{display:grid;grid-template-columns:1.55fr .8fr;gap:18px;margin-bottom:60px}.daily-card,.progress-card,.calendar-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.daily-card{padding:27px 31px 0;min-height:335px;display:flex;flex-direction:column}.card-topline,.goal-date,.goal-actions,.card-foot{display:flex;align-items:center;justify-content:space-between}.card-topline .eyebrow{margin:0}.status-pill{font-size:9px;color:var(--sage);background:#e8eadf;padding:5px 10px;border-radius:30px}.status-pill.done{background:var(--sage-pale);color:#4d593b}.status-pill.pending{background:#f0e1cf;color:#936d45}.goal-date{justify-content:flex-start;gap:13px;margin:24px 0 19px;font-size:11px;color:var(--muted)}.day-seal{font-size:9px;letter-spacing:1px;color:var(--walnut);border:1px solid #c8aa8b;padding:5px 8px}.subject-label{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--earth);margin:0 0 6px}.daily-card h2{font:500 clamp(23px,2.8vw,31px)/1.25 var(--serif);margin:0;max-width:520px}.goal-note{font-size:11px;color:var(--muted);margin:11px 0 20px}.goal-actions{justify-content:flex-start;gap:13px;margin-top:auto;margin-bottom:23px}.button{font-family:var(--sans);border:1px solid var(--walnut);background:var(--walnut);color:#fff7ee;padding:11px 16px;font-size:10px;letter-spacing:.2px;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#543b2d;transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button-primary span{margin-right:7px}.day-arrows{display:flex;gap:6px;margin-left:auto}.icon-button{height:35px;width:35px;border:1px solid var(--line);background:transparent;color:var(--walnut);font-size:17px;cursor:pointer;transition:background .2s}.icon-button:hover{background:var(--sand)}.card-foot{margin:0 -31px;padding:13px 31px;border-top:1px solid #e9dbcc;font-size:10px;color:var(--muted);gap:8px}.mini-leaf{font-size:19px;color:var(--earth)}.text-button{border:0;background:none;color:var(--earth);font:600 10px var(--sans);cursor:pointer;padding:7px 0}.text-button:hover{text-decoration:underline}.progress-card{padding:25px 26px;position:relative;overflow:hidden}.progress-heading{display:flex;justify-content:space-between}.progress-heading .eyebrow{margin:0}.small-ornament{font-size:15px;color:var(--earth)}.progress-card h2{font:500 26px/1.2 var(--serif);margin:15px 0 8px}.muted{font-size:10px;color:var(--muted);line-height:1.7;margin:0}.ring-wrap{height:142px;width:142px;margin:13px auto 3px;position:relative}.progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-track,.ring-value{fill:none;stroke-width:7}.ring-track{stroke:#eadccf}.ring-value{stroke:var(--sage);stroke-linecap:round;stroke-dasharray:364.42;stroke-dashoffset:364.42;transition:stroke-dashoffset .5s}.ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.ring-label strong{font:500 29px var(--serif)}.ring-label span{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.progress-count{display:flex;align-items:baseline;justify-content:center;gap:8px}.progress-count strong{font:500 20px var(--serif)}.progress-count strong small{font-size:12px;color:var(--muted)}.progress-count>span{font-size:10px;color:var(--muted)}.thin-progress{height:3px;background:#e7d9cb;margin:15px 0 9px}.thin-progress span{display:block;height:100%;width:0;background:var(--sage);transition:width .4s}.progress-bottom{text-align:center;color:var(--muted);font-size:9px;margin:0}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.section-heading .eyebrow{margin-bottom:7px}.section-heading h2,.summary-title h2{font:500 clamp(27px,3vw,35px)/1.2 var(--serif);margin:0;letter-spacing:-.5px}.section-aside{font-size:10px;color:var(--muted);line-height:1.8;text-align:right;margin:0 0 2px}.calendar-section{margin-bottom:60px}.calendar-card{padding:25px 28px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:21px;border-bottom:1px solid #e6d8c9}.calendar-kicker{font-size:8px;letter-spacing:1.8px;color:var(--earth)}.calendar-toolbar h3{font:500 24px var(--serif);margin:4px 0 0}.calendar-controls{display:flex;gap:7px;align-items:center}.calendar-controls .icon-button{width:32px;height:32px}.button-small{padding:9px 12px;background:transparent;color:var(--walnut);border-color:var(--line)}.button-small:hover{color:#fff}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding-top:12px;gap:5px}.weekday{font-size:9px;color:var(--muted);text-align:center;padding:8px 0;letter-spacing:.5px}.calendar-day{position:relative;min-height:62px;border:1px solid transparent;background:transparent;color:var(--ink);font-family:var(--sans);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.calendar-day .date-number{font-size:12px}.calendar-day .day-mark{font-size:8px;color:var(--earth);line-height:1;min-height:8px}.calendar-day.has-goal:after{content:"";position:absolute;bottom:7px;width:3px;height:3px;border-radius:50%;background:var(--earth)}.calendar-day.completed:after{background:var(--sage)}.calendar-day:hover{background:#f1e5d7;border-color:#e3d0bd}.calendar-day.selected{background:var(--walnut);color:#fff8ef}.calendar-day.selected .day-mark{color:#f2ddc7}.calendar-day.selected:after{background:#e4c8a8}.calendar-day.real-today:not(.selected){border-color:var(--earth);font-weight:700}.calendar-day.outside{opacity:.28;cursor:default}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;padding-top:18px;margin-top:12px;border-top:1px solid #e6d8c9;color:var(--muted);font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:7px}.legend-dot{height:7px;width:7px;border-radius:50%;display:inline-block;background:var(--earth)}.legend-dot.done{background:var(--sage)}.legend-dot.real-today{background:transparent;border:1px solid var(--earth)}.legend-dot.selected{background:var(--walnut)}
.roadmap-section{margin-bottom:53px}.roadmap-heading{align-items:center}.roadmap-total{display:flex;align-items:center;gap:10px;color:var(--earth)}.roadmap-total strong{font:500 31px var(--serif)}.roadmap-total small{font-size:8px;letter-spacing:1.4px;max-width:45px;line-height:1.4}.roadmap-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:12px}.search-field{display:flex;align-items:center;gap:9px;border-bottom:1px solid #cdb59d;padding:7px 2px;min-width:185px;color:var(--earth)}.search-field>span{font-size:21px;line-height:1}.search-field input{background:transparent;border:0;outline:0;font:11px var(--sans);color:var(--ink);width:100%;min-width:0}.search-field input::placeholder{color:#a28d7a}.filter-row{display:flex;gap:4px;flex-wrap:wrap}.filter-button{border:1px solid transparent;background:transparent;color:var(--muted);font:10px var(--sans);padding:7px 10px;cursor:pointer}.filter-button:hover{color:var(--walnut);border-color:var(--line)}.filter-button.active{background:var(--sand);border-color:#d4bca3;color:var(--walnut)}.roadmap-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.roadmap-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:15px 5px;border-bottom:1px solid #dfcdb9;min-width:0;cursor:pointer;transition:background .15s}.roadmap-item:hover{background:rgba(230,213,193,.35)}.roadmap-item.selected-item{background:rgba(230,213,193,.52)}.roadmap-item.done-item .roadmap-chapter{text-decoration:line-through;text-decoration-color:#a5a88d;color:#7e806a}.roadmap-day{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #d3bda4;color:var(--earth);font:italic 15px var(--serif)}.roadmap-info{min-width:0}.roadmap-date{font-size:8px;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}.roadmap-chapter{font:500 14px/1.35 var(--serif);margin:3px 0 4px;overflow-wrap:anywhere}.roadmap-subject{font-size:8px;letter-spacing:1.2px;font-weight:700;color:var(--earth)}.roadmap-check{appearance:none;width:19px;height:19px;border:1px solid #bca48c;background:transparent;display:grid;place-items:center;cursor:pointer;margin:0}.roadmap-check:checked{background:var(--sage);border-color:var(--sage)}.roadmap-check:checked:after{content:"✓";font-size:12px;color:white}.empty-results{padding:28px;text-align:center;color:var(--muted);font-size:12px}
.subject-summary{border-top:1px solid var(--line);padding:28px 0 32px;display:grid;grid-template-columns:.8fr 1.5fr;gap:35px;align-items:center}.summary-title .eyebrow{margin-bottom:8px}.summary-title h2{font-size:27px}.subject-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.subject-stat{padding:13px 14px;border-left:2px solid var(--earth);background:rgba(251,246,239,.5)}.subject-stat:nth-child(2){border-color:#89896a}.subject-stat:nth-child(3){border-color:#b58a61}.subject-stat h3{font:500 14px var(--serif);margin:0 0 4px}.subject-stat p{font-size:9px;color:var(--muted);margin:0 0 10px}.subject-stat strong{font:500 20px var(--serif)}.subject-stat strong small{font:10px var(--sans);color:var(--muted)}.subject-mini-bar{height:3px;background:#e4d5c5;margin-top:9px}.subject-mini-bar span{display:block;height:100%;background:var(--sage);width:0}.closing-note{text-align:center;padding:33px 15px 42px;border-top:1px solid var(--line);display:flex;align-items:center;flex-direction:column}.closing-ornament{font-size:28px;color:var(--earth);line-height:1}.closing-note p{font:italic 20px var(--serif);margin:8px 0 12px}.closing-rule{width:38px;height:1px;background:var(--earth);margin-bottom:12px}.closing-note small{font-size:8px;letter-spacing:1.8px;color:var(--muted)}.site-footer{border-top:1px solid var(--line);min-height:67px;display:flex;align-items:center;justify-content:space-between;gap:15px}.footer-brand{text-decoration:none;color:var(--walnut);font:600 16px var(--serif)}.footer-brand span{font:10px var(--sans);color:var(--muted)}.site-footer p{font-size:10px;color:var(--muted)}.reset-button{font-size:9px;color:#987c65}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--walnut);color:#fff7ee;padding:11px 18px;font-size:11px;z-index:10;box-shadow:var(--shadow);transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--earth);outline-offset:3px}
@media(max-width:900px){.wrap{width:min(100% - 40px,760px)}.top-nav{gap:15px}.header-date{display:none}.hero{gap:25px;padding:50px 0}.daily-layout{grid-template-columns:1.2fr .8fr}.daily-card{padding-inline:23px}.card-foot{margin-inline:-23px;padding-inline:23px}.progress-card{padding:23px 19px}.roadmap-tools{align-items:flex-start;flex-direction:column}.search-field{width:100%;max-width:300px}.filter-row{width:100%}.roadmap-list{gap:0 13px}.roadmap-item{grid-template-columns:35px 1fr auto;gap:9px}.roadmap-day{width:32px;height:32px}.roadmap-chapter{font-size:13px}.subject-summary{grid-template-columns:1fr;gap:20px}}
@media(max-width:600px){.wrap{width:calc(100% - 32px)}.site-header{height:72px}.brand strong{font-size:21px}.brand-mark{font-size:29px}.top-nav{display:none}.menu-toggle{display:block;border:1px solid var(--line);background:transparent;color:var(--walnut);width:36px;height:36px;font-size:16px}.mobile-nav{display:flex;flex-wrap:wrap;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.mobile-nav[hidden]{display:none}.hero{grid-template-columns:1fr;gap:27px;padding:40px 0 46px}.hero h1{font-size:42px}.hero-intro{margin:14px 0 22px}.hero-art{height:205px}.daily-layout{grid-template-columns:1fr;gap:13px;margin-bottom:44px}.daily-card{padding:22px 19px 0;min-height:325px}.card-foot{margin-inline:-19px;padding:12px 19px;flex-wrap:wrap}.card-foot>span:nth-child(2){flex:1}.progress-card{padding:22px}.progress-card h2 br{display:none}.ring-wrap{margin-top:8px}.section-kicker{margin-bottom:14px}.section-heading{align-items:flex-start;gap:12px;flex-direction:column}.section-heading h2{font-size:30px}.section-aside{text-align:left}.calendar-section{margin-bottom:44px}.calendar-card{padding:18px 12px}.calendar-toolbar{align-items:flex-start;gap:10px}.calendar-toolbar h3{font-size:21px}.calendar-controls{gap:4px}.calendar-controls .icon-button{width:29px;height:29px}.calendar-controls .button-small{padding:7px 9px}.calendar-grid{gap:1px}.calendar-day{min-height:47px}.calendar-day .date-number{font-size:11px}.calendar-day .day-mark{font-size:7px}.weekday{font-size:8px}.calendar-legend{gap:11px;padding-top:14px;font-size:8px}.roadmap-heading{flex-direction:row;align-items:center}.roadmap-heading h2{font-size:28px}.roadmap-total{gap:5px}.roadmap-total strong{font-size:26px}.roadmap-tools{margin-bottom:7px}.filter-row{gap:3px}.filter-button{padding:7px 8px;font-size:9px}.roadmap-list{grid-template-columns:1fr}.roadmap-item{padding:13px 4px;grid-template-columns:37px 1fr auto}.roadmap-chapter{font-size:14px}.subject-summary{padding:24px 0;gap:17px}.subject-stats{gap:7px}.subject-stat{padding:10px 8px}.subject-stat h3{font-size:12px}.subject-stat p{font-size:8px}.subject-stat strong{font-size:18px}.closing-note p{font-size:18px}.closing-note small{font-size:7px;letter-spacing:1.2px}.site-footer{padding:14px 0;flex-wrap:wrap;justify-content:space-between}.site-footer p{order:3;width:100%;margin:0}.footer-brand{font-size:15px}.footer-brand span{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.brand-logo{width:30px;height:30px;object-fit:contain;border-radius:7px;display:block}
.roadmap-focus-note{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 18px;padding:13px 16px;border:1px solid var(--line);background:rgba(255,255,255,.72);color:var(--muted);font-size:13px}.roadmap-focus-note .button{white-space:nowrap}.roadmap-list.focus-mode{grid-template-columns:1fr;max-width:760px}.roadmap-list.focus-mode .roadmap-item:not(.selected-item){display:none}.roadmap-list.focus-mode .roadmap-item.selected-item{display:grid}@media(max-width:600px){.roadmap-focus-note{align-items:flex-start;flex-direction:column}.roadmap-focus-note .button{width:100%}}
