:root{color:#fff8fb;font-synthesis:none;text-rendering:optimizelegibility;--cream:#fff3d8;--blush:#ffc6da;--pink:#ef89b4;--lilac:#c99be8;--plum:#67306f;--deep-plum:#492252;background:#8f6ab4;font-family:Courier New,Courier,monospace}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent}body{min-height:100vh;overflow:hidden}.app-shell{isolation:isolate;min-height:100dvh;position:relative;overflow:hidden}.sky{z-index:-3;image-rendering:pixelated;background:linear-gradient(#54347a14,#faa8c014),url(/assets/pixel-cloudscape.png) 50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.01)}.sky:after{content:"";opacity:.35;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:8px 8px;position:absolute;inset:0}.cat-layer{z-index:-1;pointer-events:none;position:absolute;inset:0}.cat-friend{pointer-events:auto;width:clamp(92px,10vw,162px);rotate:var(--tilt,0deg);animation:cat-drift var(--duration,6s) ease-in-out var(--delay,0s) infinite;cursor:help;outline:none;transition:opacity .7s,filter .7s;position:absolute}.cat-friend__image{width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 10px 12px #4823592e);-webkit-user-select:none;user-select:none;display:block}.cat-friend--sleepy{--duration:5.8s;--float-x:-24px;--float-y:30px;--tilt:7deg;top:12%;right:8%}.cat-friend--playful{--delay:-2s;--duration:5.3s;--float-x:34px;--float-y:-28px;--tilt:-7deg;bottom:10%;left:7%}.cat-friend--loaf{--delay:-3.4s;--duration:5.7s;--float-x:30px;--float-y:24px;--tilt:-3deg;width:clamp(82px,8vw,132px);top:10%;left:7%}.cat-friend--belly-up{--delay:-1.1s;--duration:5.6s;--float-x:-32px;--float-y:-25px;--tilt:9deg;width:clamp(86px,9vw,145px);bottom:9%;right:10%}.cat-friend--stretch{--delay:-4.2s;--duration:5.9s;--float-x:25px;--float-y:-32px;--tilt:4deg;width:clamp(80px,8vw,136px);bottom:5%;left:42%}.cat-friend:hover,.cat-friend:focus-visible{z-index:2;animation-play-state:paused}.cat-friend:focus-visible .cat-friend__image{filter:drop-shadow(0 0 #fff4c4)drop-shadow(0 0 4px #6b347d)}.speech-bubble{z-index:2;border:3px solid var(--plum);background:var(--cream);min-width:72px;color:var(--plum);letter-spacing:.04em;text-align:center;opacity:0;transform-origin:50% 100%;pointer-events:none;border-radius:2px;padding:8px 10px 7px;font-size:clamp(.68rem,1vw,.8rem);font-weight:700;line-height:1;transition:opacity 90ms steps(2,end),transform .14s steps(3,end);position:absolute;top:3%;left:50%;transform:translate(-50%,-95%)scale(.8);box-shadow:4px 4px #5c2c698c}.speech-bubble:after{border-right:3px solid var(--plum);border-bottom:3px solid var(--plum);background:var(--cream);content:"";width:9px;height:9px;position:absolute;bottom:-8px;left:calc(50% - 6px);rotate:45deg}.cat-friend:hover .speech-bubble,.cat-friend:focus-visible .speech-bubble{opacity:1;transform:translate(-50%,-115%)scale(1)}.welcome-page,.home-page{z-index:1;transition:opacity .65s,transform .85s cubic-bezier(.22,.8,.25,1),filter .65s,visibility linear;position:absolute;inset:0}.welcome-page{opacity:1;pointer-events:none;place-items:center;padding:24px;display:grid;overflow-y:auto;transform:scale(1)}.home-page{opacity:0;filter:blur(8px);visibility:hidden;pointer-events:none;padding:clamp(18px,3vw,36px);transition-delay:0s,0s,0s,.85s;overflow:auto;transform:translateY(24px)scale(.74)}.app-shell--home .welcome-page{opacity:0;filter:blur(6px);visibility:hidden;pointer-events:none;transition-delay:0s,0s,0s,.85s;transform:scale(1.42)}.app-shell--home .home-page{opacity:1;filter:blur();visibility:visible;pointer-events:none;transition-delay:.18s,80ms,.18s,0s;transform:translateY(0)scale(1)}.brand{text-align:center;text-shadow:0 2px #5b317052;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#64408447;border:1px solid #fff1f875;border-radius:22px;width:min(88vw,560px);padding:76px 38px 32px;display:grid;position:relative;box-shadow:0 18px 60px #4d26632e,inset 0 1px #ffffff47}.brand__sparkle{color:#ffe5aa;margin-bottom:6px;font-size:20px}.brand h1{letter-spacing:-.08em;margin:0;font-size:clamp(2rem,6vw,4.5rem);line-height:1}.brand p{color:#ffe3ef;letter-spacing:.04em;text-transform:lowercase;margin:14px 0 0;font-size:clamp(.7rem,1.5vw,.9rem);font-weight:700}.auth-gate{width:min(100%,330px);text-shadow:none;margin:24px auto 0}.auth-form{text-align:left;gap:8px;display:grid}.auth-setup-note,.auth-form--loading p,.auth-form--error p{color:#fff4fb;text-align:center;margin:0 0 4px;font-size:.78rem;line-height:1.5}.auth-form--error{background:#4b1e5047;border:2px solid #ffe5f08c;padding:14px}.auth-form label{color:#ffe5f0;letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:900}.auth-form input{border:3px solid var(--deep-plum);width:100%;min-width:0;color:var(--deep-plum);background:#fffafdeb;border-radius:7px;padding:10px 12px;font-family:Trebuchet MS,Segoe UI,Arial,sans-serif;font-size:1rem;box-shadow:inset 0 -3px #67306f1a}.auth-form input:focus-visible{outline-offset:3px;outline:4px solid #ffe49c}.auth-form .enter-button{min-width:130px;margin-top:5px}.auth-mode-button{color:#ffe3ef;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:center;padding:6px 8px;font-size:.66rem;font-weight:900;text-decoration:underline}.auth-mode-button:hover{color:#fff4bf}.auth-mode-button:focus-visible{outline-offset:2px;outline:3px solid #ffe49c}.auth-form__actions{justify-content:center;align-items:center;gap:10px;margin-top:5px;display:flex}.auth-form__actions .enter-button{justify-self:auto;margin:0;padding-left:14px;padding-right:14px}.auth-status{color:#fff1bb;text-align:center;min-height:17px;margin:10px 0 0;font-size:.65rem;font-weight:800;line-height:1.35}.enter-button,.pixel-button{border:3px solid var(--deep-plum);background:var(--cream);box-shadow:4px 4px 0 var(--deep-plum);color:var(--deep-plum);cursor:pointer;image-rendering:pixelated;border-radius:7px;font-weight:800;transition:transform .1s steps(2,end),box-shadow .1s steps(2,end),background .12s}.enter-button{letter-spacing:.1em;text-transform:uppercase;justify-content:center;justify-self:center;align-items:center;gap:10px;margin-top:26px;padding:11px 22px 10px;display:flex}.enter-button:hover,.pixel-button:hover{box-shadow:2px 2px 0 var(--deep-plum);background:#ffe0ec;transform:translate(2px,2px)}.enter-button:focus-visible,.pixel-button:focus-visible,.home-bar h2:focus-visible{outline-offset:4px;outline:4px solid #ffe49c}.enter-button:active,.pixel-button:active{box-shadow:none;transform:translate(4px,4px)}.enter-button:disabled{cursor:default}.astro-anchor{z-index:4;width:clamp(102px,11vw,154px);transition:top .9s cubic-bezier(.22,.8,.25,1),left .9s cubic-bezier(.22,.8,.25,1),width .9s cubic-bezier(.22,.8,.25,1),transform .9s cubic-bezier(.22,.8,.25,1);position:absolute;top:calc(50% - 308px);left:50%;transform:translate(-50%)}.app-shell--auth-setup .astro-anchor,.app-shell--auth-change .astro-anchor{top:calc(50% - 344px)}.astro-anchor .cat-friend--astro{background:0 0;border:0;width:100%;margin:0;padding:0;animation:none;position:relative;inset:auto;transform:none}.astro-anchor button.cat-friend--astro{cursor:pointer}.astro-anchor button.cat-friend--astro:hover .cat-friend__image,.astro-anchor button.cat-friend--astro:focus-visible .cat-friend__image{filter:drop-shadow(0 0 3px #fff4c4)drop-shadow(0 8px 10px #48235947)}.cat-friend--astro .speech-bubble{min-width:104px}.app-shell--home .astro-anchor{width:clamp(86px,8vw,126px);top:clamp(82px,11vh,118px);left:calc(40% + min(40vw,485px));transform:translate(-100%,-44%)}.app-shell--home .cat-friend--sleepy,.app-shell--home .cat-friend--loaf,.app-shell--home .cat-friend--playful{opacity:.48}.app-shell--home .cat-friend--belly-up,.app-shell--home .cat-friend--stretch{opacity:0;pointer-events:none}.progress-overlay{z-index:30;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#31183ea3;place-items:center;padding:clamp(16px,4vw,44px);animation:.18s both progress-fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}.progress-panel{border:4px solid var(--deep-plum);width:min(760px,100%);max-height:min(860px,100dvh - 32px);color:var(--deep-plum);background-color:#fff5e8;background-image:linear-gradient(#82518b14 1px,#0000 1px),linear-gradient(90deg,#82518b14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:24px;padding:clamp(22px,4vw,38px);animation:.26s cubic-bezier(.2,.8,.2,1) both progress-pop-in;position:relative;overflow-y:auto;box-shadow:10px 10px #36173f99,inset 0 0 0 3px #ffffffc7}.progress-close{z-index:1;border:3px solid var(--deep-plum);width:36px;height:36px;color:var(--deep-plum);cursor:pointer;background:#ffd4e3;border-radius:6px;place-items:center;padding:0;font-size:1.4rem;font-weight:900;line-height:1;display:grid;position:absolute;top:14px;right:14px;box-shadow:3px 3px #49225266}.progress-close:hover,.progress-close:focus-visible{outline-offset:2px;background:#ffb9d2;outline:3px solid #ffe49c}.progress-heading{align-items:center;gap:18px;padding-right:34px;display:flex}.progress-heading img{width:clamp(76px,13vw,112px);image-rendering:pixelated;filter:drop-shadow(0 7px 7px #49225233)}.progress-heading p{color:#a45987;letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:.68rem;font-weight:900}.progress-heading h2{margin:0;font-size:clamp(1.15rem,3vw,1.85rem);line-height:1.2}.progress-overview{background:#ffd8e77a;border:3px solid #67306f57;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(22px,5vw,48px);margin:24px 0;padding:20px;display:grid}.progress-ring{aspect-ratio:1;border:4px solid var(--deep-plum);background:conic-gradient(#e979aa 0 var(--progress), #ead6e7 var(--progress) 360deg);border-radius:50%;place-items:center;width:clamp(142px,24vw,190px);display:grid;box-shadow:5px 5px #49225247}.progress-ring>div{aspect-ratio:1;text-align:center;background:#fff9ed;border:3px solid #67306f6b;border-radius:50%;place-content:center;width:68%;display:grid}.progress-ring strong{font-size:clamp(1.5rem,5vw,2.35rem);line-height:1}.progress-ring span{color:#98547f;text-transform:uppercase;margin-top:5px;font-size:.62rem;font-weight:900}.progress-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.progress-summary>span{color:#87577b;text-align:center;background:#ffffff94;border:2px solid #67306f3d;border-radius:8px;padding:11px;font-size:.68rem;display:grid}.progress-summary strong{color:var(--deep-plum);font-size:1.25rem}.progress-summary p{color:#805272;grid-column:1/-1;margin:2px 0 0;font-size:.68rem;line-height:1.5}.progress-books{gap:10px;display:grid}.progress-row{width:100%;min-height:50px;color:var(--deep-plum);text-align:left;background:0 0;border:2px solid #0000;border-radius:9px;grid-template-columns:minmax(150px,.42fr) minmax(150px,1fr);align-items:center;gap:15px;padding:9px 12px;display:grid}button.progress-row{cursor:pointer}button.progress-row:hover,button.progress-row:focus-visible{background:#ffd8e75c;border-color:#67306f57;outline:none}.progress-row--overall{--book-progress-color:#df76a8;background:#d3aadd38;border-color:#67306f4d}.progress-row__label{grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;display:grid}.progress-row__label strong{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.progress-row__label small{color:#98547f;font-size:.62rem;font-weight:900}.progress-bar{border:2px solid var(--deep-plum);background:#eadce7;border-radius:4px;height:16px;display:block;overflow:hidden;box-shadow:inset 0 2px #4922521f}.progress-bar>span{background:var(--book-progress-color,#df76a8);width:0;height:100%;transition:width .45s;display:block;box-shadow:inset 0 -3px #49225224}.progress-hint{color:#8b5b7c;text-align:center;margin:18px 0 0;font-size:.62rem;line-height:1.5}.dashboard{pointer-events:auto;grid-template-rows:auto minmax(0,1fr);width:min(1180px,100%);height:min(94dvh,900px);margin:0 auto;animation:.32s both page-arrive;display:grid}.home-bar__utilities{justify-items:end;gap:5px;display:grid}.sync-badge{color:var(--deep-plum);text-shadow:none;text-transform:uppercase;background:#fff3d8d6;border:2px solid #4922528c;border-radius:999px;align-items:center;gap:5px;padding:3px 7px;font-size:.56rem;font-weight:900;display:inline-flex}.sync-badge:before{content:"";background:#8db6bd;border-radius:50%;width:7px;height:7px}.sync-badge--saving:before,.sync-badge--syncing:before{background:#e7a077}.sync-badge--error:before,.sync-badge--login-required:before{background:#d8658d}.home-bar{text-shadow:0 2px #4d266359;grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:24px;min-height:86px;padding:0 8px 14px;display:grid}.eyebrow{color:#ffe2ee;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:800}.home-bar h2{margin:0;font-size:clamp(1.65rem,3vw,2.7rem);line-height:1}.view-switcher{border:3px solid var(--deep-plum);background:#fff3d8bd;border-radius:9px;padding:4px;display:flex;box-shadow:3px 3px #49225294}.view-switcher button{min-height:34px;color:var(--deep-plum);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;padding:7px 11px;font-size:.72rem;font-weight:900;display:flex}.view-switcher button:hover{background:#ef89b43d}.view-switcher button.is-active{background:var(--plum);color:var(--cream);box-shadow:inset 0 -3px #36173f61}.view-switcher button:focus-visible{outline-offset:2px;outline:3px solid #ffe49c}.pixel-clock{border:3px solid var(--deep-plum);min-width:224px;color:var(--deep-plum);text-shadow:none;background:#fff3d8e6;border-radius:8px;gap:1px;padding:10px 14px;display:grid;box-shadow:4px 4px #492252b8}.pixel-clock__time{letter-spacing:.04em;font-size:1.05rem;font-weight:900}.pixel-clock__date{color:#975482;letter-spacing:.04em;text-transform:uppercase;font-size:.66rem;font-weight:800}.calendar-window{border:4px solid var(--deep-plum);min-height:0;color:var(--deep-plum);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffeff6e0;border-radius:22px;flex-direction:column;font-family:Trebuchet MS,Segoe UI,Arial,sans-serif;display:flex;overflow:hidden;box-shadow:8px 8px #49225299,inset 0 0 0 3px #ffffff85}.calendar-toolbar{background:linear-gradient(#ffdeebeb,#eebee1c2);border-bottom:3px solid #67306f9e;grid-template-columns:42px minmax(0,1fr) 42px auto;align-items:center;gap:12px;padding:14px 16px 12px;display:grid}.calendar-title{color:#844779;justify-content:center;align-items:center;gap:clamp(8px,2vw,18px);display:flex}.calendar-title h3{color:var(--deep-plum);text-align:center;margin:0;font-size:clamp(1rem,2.5vw,1.55rem)}.pixel-button{min-height:34px;padding:6px 12px}.pixel-button--icon{place-items:center;min-width:36px;padding:0;font-size:1.7rem;line-height:1;display:grid}.pixel-button--today{min-width:78px}.weekday-row,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{background:#9f69b133;border-bottom:3px solid #67306f8c}.weekday-row div{color:#814877;letter-spacing:.08em;text-align:center;text-transform:uppercase;border-right:1px solid #67306f47;padding:8px 4px 7px;font-size:clamp(.58rem,1.2vw,.75rem);font-weight:900}.weekday-row div:last-child{border-right:0}.calendar-grid{background:#fff8fab8;flex:1;grid-template-rows:repeat(6,minmax(54px,1fr));min-height:0}.calendar-day{background:#ffffff3b;border-bottom:1px solid #67306f45;border-right:1px solid #67306f45;min-width:0;padding:7px;position:relative;overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day--outside{color:#49225261;background:#81509614}.calendar-day--today{background:#ffd6e79e;box-shadow:inset 0 0 0 3px #e98db6}.calendar-day__number{width:25px;height:25px;color:inherit;place-items:center;font-size:.78rem;font-weight:900;display:inline-grid}.calendar-day--today .calendar-day__number{background:var(--plum);color:var(--cream);border-radius:4px}.today-paw{color:#dd739f;font-size:.72rem;position:absolute;top:8px;right:8px}.day-tasks{gap:3px;margin:4px 0 0;padding:0;list-style:none;display:grid}.task-chip,.task-overflow{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.52rem,.85vw,.67rem);font-weight:800;overflow:hidden}.task-chip{color:#5c315d;background:#f7c5dd;border-left:3px solid #b85b91;border-radius:2px;padding:3px 5px}.task-chip--completed{opacity:.6;text-decoration:line-through}.task-overflow{color:#955886}.calendar-footer{color:#7c4975;text-align:center;background:#ffe0eddb;border-top:3px solid #67306f7a;justify-content:center;align-items:center;gap:8px;min-height:33px;padding:7px 12px;font-size:clamp(.58rem,1vw,.7rem);font-weight:800;display:flex}.app-shell--tasks .astro-anchor{width:clamp(84px,7vw,116px);top:clamp(100px,13vh,132px);left:calc(50% + min(37vw,445px));transform:translate(-100%,-56%)}.todo-library{flex-direction:column;width:100%;min-width:0;max-width:100%;min-height:0;display:flex}.book-tabs{scrollbar-width:thin;scrollbar-color:var(--plum) transparent;align-items:flex-end;gap:5px;min-height:52px;padding:0 18px;display:flex;overflow-x:auto}.book-tab-wrap{flex:none;position:relative}.book-tab{border:3px solid var(--deep-plum);background:var(--book-color,#fff3d8eb);min-height:43px;color:var(--deep-plum);white-space:nowrap;cursor:pointer;border-bottom-width:0;border-radius:10px 10px 0 0;align-items:center;gap:7px;padding:9px 30px 8px 14px;font-size:.72rem;font-weight:900;transition:min-height .15s steps(3,end),transform .15s steps(3,end);display:flex;transform:translateY(5px);box-shadow:inset 0 -5px #4922521f}.book-tab:hover,.book-tab.is-active{min-height:49px;transform:translateY(0)}.book-tab.is-active{box-shadow:inset 0 -7px #ffffff38}.book-tab:focus-visible,.book-tab__remove:focus-visible{z-index:2;outline-offset:2px;outline:3px solid #ffe49c}.book-tab__remove{z-index:1;width:20px;height:20px;color:var(--deep-plum);cursor:pointer;background:#49225229;border:0;border-radius:3px;place-items:center;padding:0;font-size:1rem;font-weight:900;line-height:1;display:grid;position:absolute;top:10px;right:6px}.book-tab__remove:hover{background:var(--deep-plum);color:var(--cream)}.book-tab--add{color:#754170;background:#fff3d8a8;border-bottom-width:0;min-height:38px;padding-right:14px}.book-editor{border:3px solid var(--deep-plum);background:var(--cream);color:var(--deep-plum);border-radius:7px;grid-template-columns:minmax(160px,1fr) minmax(250px,1.5fr) minmax(190px,1fr) auto;align-items:end;gap:14px;margin:0 18px 8px;padding:12px 14px;display:grid;box-shadow:4px 4px #4922528c}.book-editor label,.book-editor legend{font-size:.7rem;font-weight:900}.book-editor fieldset{border:0;min-width:0;margin:0;padding:0}.book-editor__name{gap:6px;display:grid}.book-editor__name input{border:2px solid var(--plum);width:100%;min-width:0;color:var(--deep-plum);background:#fffafd;border-radius:4px;padding:8px 9px}.icon-picker>div,.color-picker>div{flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;display:flex}.icon-picker button{border:2px solid var(--plum);width:30px;height:30px;color:var(--deep-plum);cursor:pointer;background:#fffafd;border-radius:4px;place-items:center;padding:0;font-size:.9rem;font-weight:900;display:grid}.icon-picker button:hover,.icon-picker button.is-selected{background:#f5bfd8}.icon-picker button.is-selected{box-shadow:inset 0 0 0 2px #fff6cf}.color-picker button,.custom-color{border:2px solid var(--deep-plum);background:var(--swatch-color,conic-gradient(#ed8fb6, #b98bd8, #8db6bd, #e7a077, #ed8fb6));cursor:pointer;border-radius:50%;place-items:center;width:27px;height:27px;padding:0;display:grid;position:relative}.color-picker button.is-selected{outline-offset:-5px;outline:3px solid #fff6cf}.custom-color{color:var(--deep-plum);font-size:1rem;font-weight:900;overflow:hidden}.custom-color span{z-index:1;pointer-events:none}.custom-color input{opacity:0;cursor:pointer;width:45px;height:45px;position:absolute;inset:-8px}.book-editor__actions{grid-template-columns:auto auto;align-items:center;gap:7px;display:grid}.book-preview{border:2px solid var(--deep-plum);background:var(--preview-color);max-width:190px;color:var(--deep-plum);text-overflow:ellipsis;white-space:nowrap;border-radius:5px 5px 1px 1px;grid-column:1/-1;padding:5px 10px;font-size:.68rem;font-weight:900;overflow:hidden}.book-editor__actions .pixel-button{min-width:90px;min-height:31px;padding:5px 8px;font-size:.64rem}.book-editor__actions .pixel-button:disabled{opacity:.5;cursor:default;box-shadow:4px 4px 0 var(--deep-plum);transform:none}.mobile-book-nav{display:none}.open-book{--book-spine:43%;grid-template-columns:var(--book-spine) minmax(0, 1fr);border:4px solid var(--deep-plum);min-height:0;color:var(--deep-plum);background:#fff3df;border-radius:20px;flex:1;display:grid;position:relative;overflow:hidden;box-shadow:8px 8px #49225299}.open-book:before{z-index:2;top:0;bottom:0;left:var(--book-spine);content:"";pointer-events:none;background:linear-gradient(90deg,#4922521f,#ffffff8c,#4922521f);width:12px;position:absolute;transform:translate(-50%)}.book-page{background-color:#fff8e9;background-image:linear-gradient(#67306f0f 1px,#0000 1px),linear-gradient(90deg,#67306f08 1px,#0000 1px);background-size:100% 27px,27px 100%;min-width:0;padding:clamp(22px,3vw,40px);position:relative}.book-page--intro{box-shadow:inset 10px 0 var(--book-color), inset -12px 0 #4922520d;border-right:1px solid #67306f3d;flex-direction:column;display:flex}.book-page--tasks{min-height:0;box-shadow:inset -10px 0 var(--book-color), inset 12px 0 #4922520d;flex-direction:column;display:flex}.book-label{text-align:center;border-bottom:3px double #67306f6b;padding:8px 12px 20px}.book-label__icon{border:3px solid var(--deep-plum);background:var(--book-color);border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:8px;font-size:1.25rem;display:inline-grid}.book-label p,.task-list-header p{color:#9a6688;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:.64rem;font-weight:900}.book-label h3{margin:0;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1}.book-stats{color:#87577b;justify-content:center;gap:20px;margin:18px 0;font-size:.7rem;font-weight:800;display:flex}.book-stats strong{color:var(--deep-plum);font-size:1rem}.task-composer{background:#ffffff8a;border:3px solid #67306f94;border-radius:8px;gap:9px;margin-top:auto;padding:16px;display:grid;box-shadow:4px 4px #67306f2e}.task-composer>label{color:#7f4d76;font-size:.68rem;font-weight:900}.task-composer>input,.task-composer input[type=date]{border:2px solid var(--plum);width:100%;min-width:0;color:var(--deep-plum);background:#fffafd;border-radius:5px;padding:9px 10px}.task-composer__footer{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.task-composer__footer label{color:#8d5a81;gap:4px;font-size:.62rem;font-weight:900;display:grid}.task-composer .pixel-button:disabled{opacity:.5;cursor:default;box-shadow:4px 4px 0 var(--deep-plum);transform:none}.task-list-header{border-bottom:3px double #67306f6b;justify-content:space-between;align-items:center;gap:16px;padding:4px 6px 14px;display:flex}.task-list-actions{align-items:center;gap:8px;display:flex}.completed-list-button{border:3px solid var(--deep-plum);min-height:35px;color:var(--deep-plum);cursor:pointer;background:#fffafd;border-radius:6px;align-items:center;gap:6px;padding:5px 9px;font-size:.62rem;font-weight:900;display:flex;box-shadow:3px 3px #49225247}.completed-list-button b{background:var(--book-color);border-radius:3px;place-items:center;min-width:18px;height:18px;padding:0 4px;display:grid}.completed-list-button:hover,.completed-list-button.is-active{background:#ffe1ed}.completed-list-button:focus-visible{outline-offset:3px;outline:3px solid #ffe49c}.task-list-header h3{margin:0;font-size:clamp(1.25rem,2.4vw,1.9rem)}.book-page-edit{border:3px solid var(--deep-plum);background:var(--book-color);width:35px;height:35px;color:var(--deep-plum);cursor:pointer;border-radius:6px;place-items:center;padding:0;font-size:1rem;font-weight:900;display:grid;box-shadow:3px 3px #4922525c}.book-page-edit:hover{background:#ffe1ed;transform:translate(1px,1px);box-shadow:2px 2px #4922525c}.book-page-edit:focus-visible{outline-offset:3px;outline:3px solid #ffe49c}.todo-list{gap:9px;margin:18px 0 0;padding:0 6px 12px;list-style:none;display:grid;overflow-y:auto}.todo-item{border-bottom:2px dashed #67306f42;grid-template-columns:30px minmax(0,1fr) 28px;align-items:center;gap:10px;min-height:48px;padding:7px 8px;transition:opacity .14s;display:grid}.todo-item.is-complete{opacity:.56}.todo-item.is-complete .todo-item__copy>span{text-decoration:line-through}.todo-check{border:3px solid var(--plum);width:27px;height:27px;color:var(--deep-plum);cursor:pointer;background:#fffafd;border-radius:5px;place-items:center;padding:0;font-weight:900;display:grid}.todo-check[aria-pressed=true]{background:var(--book-color)}.todo-item__copy{gap:3px;min-width:0;display:grid}.todo-item__dates{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.todo-item__copy>span{overflow-wrap:anywhere;font-size:.82rem;font-weight:800}.todo-item__copy time{color:#a26389;text-transform:uppercase;font-size:.62rem;font-weight:900}.todo-delete{color:#a05d82;cursor:pointer;background:0 0;border:0;border-radius:4px;width:27px;height:27px;padding:0;font-size:1.2rem;font-weight:900}.todo-delete:hover{color:var(--deep-plum);background:#efb4cc}.empty-page,.no-books{color:#966280;text-align:center;flex:1;align-content:center;justify-items:center;min-height:220px;display:grid}.empty-page>span,.no-books>span{color:#cf7fa4;font-size:2rem}.empty-page p,.no-books h3{color:var(--deep-plum);margin:8px 0 4px}.empty-page small,.no-books p{margin:0 0 18px;font-size:.7rem;font-weight:800}.no-books{border:4px solid var(--deep-plum);background:#fff8e9e0;border-radius:20px;min-height:420px;box-shadow:8px 8px #49225299}@keyframes page-arrive{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cat-drift{0%,to{transform:translate(0,0)}50%{transform:translate3d(var(--float-x,22px), var(--float-y,-22px), 0)}}@keyframes progress-fade-in{0%{opacity:0}to{opacity:1}}@keyframes progress-pop-in{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes mobile-page-turn{0%{opacity:.35;transform:perspective(900px)rotateY(8deg)translate(14px)}to{opacity:1;transform:perspective(900px)rotateY(0)translate(0)}}@media (width<=940px){.home-bar{grid-template-columns:minmax(150px,1fr) auto;gap:12px}.view-switcher{grid-area:2/1/auto/-1;justify-self:center}.home-bar__utilities{grid-area:1/2}.pixel-clock{grid-area:auto}.tasks-dashboard{height:auto;min-height:calc(100dvh - 36px)}.open-book{grid-template-columns:1fr;min-height:760px;overflow:visible}.open-book:before{display:none}.book-page--intro{border-right:0;border-bottom:4px solid var(--deep-plum);min-height:390px;box-shadow:inset 8px 0 var(--book-color), inset -8px 0 var(--book-color)}.book-page--tasks{min-height:370px;box-shadow:inset 8px 0 var(--book-color), inset -8px 0 var(--book-color)}.task-composer{margin-top:22px}.book-editor{grid-template-columns:minmax(160px,1fr) minmax(240px,1.5fr)}.book-editor__actions{grid-template-columns:minmax(0,1fr) auto auto}.book-preview{grid-column:auto}}@media (width<=760px){.home-page{padding:12px}.dashboard{height:auto;min-height:calc(100dvh - 24px)}.home-bar{grid-template-columns:minmax(0,1fr) auto;min-height:114px;padding:8px 4px 12px}.home-bar__title{min-width:0}.view-switcher{width:min(100%,300px)}.view-switcher button{flex:1;justify-content:center}.pixel-clock{text-align:right;min-width:138px;padding:8px 10px}.calendar-window{min-height:680px}.calendar-toolbar{grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;padding:12px 10px}.pixel-button--today{grid-column:1/-1;justify-self:center;min-height:28px;padding:3px 12px}.calendar-grid{grid-template-rows:repeat(6,minmax(78px,1fr))}.calendar-day{padding:4px}.calendar-footer{min-height:40px}.book-tabs{scroll-snap-type:x proximity;padding:0 4px;scroll-padding-inline:4px}.book-tab-wrap,.book-tab--add{scroll-snap-align:start}.book-tab{min-height:39px;padding:8px 28px 7px 11px;font-size:.66rem}.book-tab:hover,.book-tab.is-active{min-height:44px}.book-editor{grid-template-columns:1fr;gap:6px;margin-left:4px;margin-right:4px}.book-editor__actions{grid-template-columns:1fr 1fr;margin-top:8px}.book-preview{grid-column:1/-1;max-width:none}.mobile-book-nav{border:3px solid var(--deep-plum);color:var(--deep-plum);background:#fff3d8e6;border-radius:10px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:9px;margin:8px 5px 9px;padding:7px 9px;display:grid;box-shadow:4px 4px #49225275}.mobile-book-nav button{border:3px solid var(--deep-plum);width:38px;height:38px;color:var(--deep-plum);cursor:pointer;background:#ffd7e6;border-radius:6px;place-items:center;padding:0;font-size:1.65rem;font-weight:900;display:grid;box-shadow:2px 2px #4922525c}.mobile-book-nav button:disabled{opacity:.3;cursor:default;box-shadow:none}.mobile-book-nav button:focus-visible{outline-offset:2px;outline:3px solid #ffe49c}.mobile-book-nav div{text-align:center;gap:2px;min-width:0;display:grid}.mobile-book-nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.mobile-book-nav span{color:#9a6688;text-transform:uppercase;font-size:.54rem;font-weight:900}.open-book{touch-action:pan-y;min-height:0;display:block;overflow:hidden}.open-book .book-page{border:0;height:min(620px,68dvh);min-height:450px;padding:25px 20px;animation:.24s both mobile-page-turn;display:none;overflow-y:auto}.open-book--mobile-intro .book-page--intro,.open-book--mobile-tasks .book-page--tasks{display:flex}.open-book .book-page--intro,.open-book .book-page--tasks{box-shadow:inset 8px 0 var(--book-color), inset -8px 0 var(--book-color)}.book-page--tasks .todo-list{overscroll-behavior:contain;flex:1;min-height:0}.book-page{padding:25px 20px}.task-list-header{align-items:flex-start}.task-list-actions{gap:5px}.completed-list-button{padding:5px 7px}.task-composer__footer{grid-template-columns:1fr}.task-composer .pixel-button{justify-self:stretch}.app-shell--tasks .astro-anchor{width:80px;top:168px;left:97%}.app-shell--home .astro-anchor{width:88px;top:132px;left:96%;transform:translate(-100%,-48%)}.app-shell--home .cat-friend--playful{opacity:0;pointer-events:none}}.todo-library--compact{min-width:0;overflow:hidden}.todo-library--compact .book-tabs{scroll-snap-type:x proximity;overscroll-behavior-inline:contain;width:100%;max-width:100%;padding:0 4px;scroll-padding-inline:4px}.todo-library--compact .book-tab-wrap,.todo-library--compact .book-tab--add{scroll-snap-align:start}.todo-library--compact .book-tab{min-height:39px;padding:8px 28px 7px 11px;font-size:.66rem}.todo-library--compact .book-tab:hover,.todo-library--compact .book-tab.is-active{min-height:44px}.todo-library--compact .book-editor{grid-template-columns:minmax(0,1fr);gap:6px;margin-left:4px;margin-right:4px}.todo-library--compact .book-editor__actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:8px}.todo-library--compact .book-preview{grid-column:1/-1;max-width:none}.todo-library--compact .mobile-book-nav{border:3px solid var(--deep-plum);width:auto;max-width:calc(100% - 10px);color:var(--deep-plum);background:#fff3d8e6;border-radius:10px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:9px;margin:8px 5px 9px;padding:7px 9px;display:grid;box-shadow:4px 4px #49225275}.todo-library--compact .mobile-book-nav button{border:3px solid var(--deep-plum);width:38px;height:38px;color:var(--deep-plum);cursor:pointer;background:#ffd7e6;border-radius:6px;place-items:center;padding:0;font-size:1.65rem;font-weight:900;display:grid;box-shadow:2px 2px #4922525c}.todo-library--compact .mobile-book-nav button:disabled{opacity:.3;cursor:default;box-shadow:none}.todo-library--compact .mobile-book-nav div{text-align:center;gap:2px;min-width:0;display:grid}.todo-library--compact .mobile-book-nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.todo-library--compact .mobile-book-nav span{color:#9a6688;text-transform:uppercase;font-size:.54rem;font-weight:900}.todo-library--compact .open-book{touch-action:pan-y;width:100%;max-width:100%;min-height:0;display:block;overflow:hidden}.todo-library--compact .open-book:before{display:none}.todo-library--compact .open-book .book-page{width:100%;height:min(620px,68dvh);min-height:450px;box-shadow:inset 8px 0 var(--book-color), inset -8px 0 var(--book-color);border:0;padding:25px 20px;animation:.24s both mobile-page-turn;display:none;overflow:hidden auto}.todo-library--compact .open-book--mobile-intro .book-page--intro,.todo-library--compact .open-book--mobile-tasks .book-page--tasks{display:flex}.todo-library--compact .book-page--tasks .todo-list{overscroll-behavior:contain;flex:1;min-height:0}.todo-library--compact .task-composer__footer{grid-template-columns:minmax(0,1fr)}.todo-library--compact .task-composer .pixel-button{justify-self:stretch}@media (width<=640px){.cat-friend{width:clamp(84px,27vw,128px)}.cat-friend--sleepy{top:8%;right:1%}.cat-friend--playful{bottom:6%;left:0}.cat-friend--loaf{width:clamp(72px,21vw,104px);top:8%;left:1%}.cat-friend--belly-up,.cat-friend--stretch{display:none}.brand{padding:76px 24px 26px}.astro-anchor{width:clamp(94px,29vw,120px);top:max(-12px,50% - 308px)}.app-shell--auth-setup .astro-anchor,.app-shell--auth-change .astro-anchor{top:max(-18px,50% - 344px)}.home-bar{gap:10px}.home-bar h2{font-size:clamp(1.3rem,7vw,1.8rem)}.eyebrow{font-size:.56rem}.pixel-clock{min-width:118px}.pixel-clock__time{font-size:.82rem}.pixel-clock__date{font-size:.56rem}.tasks-dashboard .home-bar{padding-right:86px}.book-label h3{font-size:1.55rem}.open-book{min-height:0}.weekday-row div{letter-spacing:0}.calendar-day__number{width:21px;height:21px;font-size:.68rem}.today-paw{display:none}.progress-overlay{place-items:start center;padding:10px}.progress-panel{border-radius:16px;max-height:calc(100dvh - 20px);padding:22px 16px}.progress-heading{gap:10px;padding-right:30px}.progress-heading img{width:72px}.progress-overview{grid-template-columns:1fr;justify-items:center;padding:15px}.progress-summary{width:100%}.progress-summary p{text-align:center}.progress-row{grid-template-columns:1fr;gap:7px}}@media (width<=430px){.completed-list-button__label{display:none}}@media (prefers-reduced-motion:reduce){.cat-friend{animation:none}.speech-bubble,.welcome-page,.home-page,.astro-anchor,.enter-button,.pixel-button{transition:none}.dashboard,.progress-overlay,.progress-panel{animation:none}.progress-bar>span{transition:none}.open-book .book-page{animation:none}}
