@font-face{font-family:Balatro;src:url(/assets/balatro-jZhEOmmK.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}html,body,#root{height:100%;margin:0;padding:0;font-family:Balatro,ui-rounded,system-ui,sans-serif}*,*:before,*:after{box-sizing:border-box}:root{--mint: #69a249;--mint-dark: #4c7a34;--mint-light: #e1ecd6;--ink: #2b3a34;--muted: #6c7d76;--slate: #eef2f0;--slate-dark: #d3dbd8;--cream: #ffffff;--gold: #ffc95c;--gold-dark: #e0a53a;color:var(--ink);background:#bfe6ec;font-family:Balatro,Nunito,ui-rounded,system-ui,sans-serif;font-size:clamp(16px,.9vw + 12px,22px)}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible{outline:3px solid var(--mint-dark);outline-offset:3px}.app-shell{isolation:isolate}.app-hero{background:#bfe6ec;min-height:100vh;overflow:hidden;position:relative}.app-shell__content{margin:0 auto;max-width:44rem;padding:1rem 1rem 1.5rem;position:relative;z-index:2}.parallax-scene{background:#bfe6ec;inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:0}.parallax-layer{image-rendering:pixelated;inset:0;position:absolute}.parallax-layer--base{background-position:center;background-repeat:no-repeat;background-size:cover}.parallax-layer--scroll{animation-iteration-count:infinite;animation-name:bg-scroll;animation-timing-function:linear;background-position:bottom center;background-repeat:repeat-x;background-size:auto 58%}@keyframes bg-scroll{to{background-position-x:-100%}}.navbar{align-items:center;background:var(--cream);border-radius:1.25rem;box-shadow:0 6px 0 var(--slate-dark),0 10px 18px #2b3a341f;display:flex;gap:.6rem;justify-content:space-between;padding:.6rem .9rem;position:relative;z-index:10}.navbar__brand-group{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem .7rem}.navbar__brand{display:block;height:1.5rem;width:auto}.navbar__badges{align-items:center;display:inline-flex;gap:.4rem}.level-chip{align-items:center;background:var(--slate);border-radius:999px;display:inline-flex;gap:.35rem;padding:.2rem .5rem .2rem .4rem}.level-chip__value{align-items:center;background:var(--mint);border-radius:50%;color:#fff;display:inline-flex;font-size:.7rem;font-weight:700;height:1.15rem;justify-content:center;width:1.15rem}.level-chip__bar{background:var(--slate-dark);border-radius:999px;display:inline-block;height:.3rem;overflow:hidden;width:2.4rem}.level-chip__bar-fill{background:var(--mint);display:block;height:100%}.streak-chip{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;font-weight:700;gap:.2rem}.streak-chip svg{fill:none}.streak-chip.is-active{color:#e8804a}.streak-chip.is-active svg{fill:#e8804a}.hint-tooltip{position:relative}.hint-tooltip:after{background:var(--ink);border-radius:.6rem;bottom:calc(100% + .5rem);color:#fff;content:attr(data-tooltip);font-size:.7rem;font-weight:600;left:50%;opacity:0;padding:.45rem .65rem;pointer-events:none;position:absolute;text-align:center;transform:translate(-50%,.25rem);transition:opacity .12s ease,transform .12s ease;white-space:normal;width:max-content;max-width:14rem;z-index:30}.hint-tooltip:hover:after,.hint-tooltip:focus-visible:after{opacity:1;transform:translate(-50%)}.navbar__actions{align-items:center;display:flex;gap:.4rem;list-style:none;margin:0;padding:0}.navbar__actions .game-button--label{max-width:9rem;min-width:0}.navbar__actions .game-button--label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-button{--face: var(--mint);--edge: var(--mint-dark);align-items:center;background:var(--face);border:none;border-radius:1rem;box-shadow:0 4px 0 var(--edge);color:#fff;cursor:pointer;display:inline-flex;gap:.4rem;justify-content:center;line-height:1;min-height:2.8rem;padding:.55rem .75rem;transition:transform 90ms ease,box-shadow 90ms ease,filter 90ms ease}.game-button:hover{filter:brightness(1.05)}.game-button:active{box-shadow:0 1px 0 var(--edge);transform:translateY(3px)}.game-button--slate{--edge: var(--slate-dark);--face: var(--slate);color:var(--muted)}.game-button--tab{--edge: var(--slate-dark);--face: var(--slate);color:var(--muted);flex:1;font-size:.85rem;font-weight:400;min-width:0}.game-button--icon{min-width:2.9rem;padding:.55rem}.game-button--icon svg{height:1.3rem;width:1.3rem}.game-button--label{font-size:.95rem;font-weight:800;min-width:6.6rem}.game-button.is-active{--edge: var(--mint-dark);--face: var(--mint);color:#fff}.timer-panel{align-items:center;display:flex;flex-direction:column;gap:1rem;margin:1rem auto 0;max-width:26rem}.timer-tabs{background:var(--cream);border-radius:1.25rem;box-shadow:0 5px 0 var(--slate-dark),0 8px 16px #2b3a341a;display:flex;gap:.35rem;padding:.35rem;width:100%}.timer-tabs .game-button{box-shadow:none}.timer-tabs .game-button:active{transform:none}.task-input{position:relative;width:100%}.task-input__field{background:var(--cream);border:none;border-radius:1rem;box-shadow:0 4px 0 var(--slate-dark),0 8px 16px #2b3a341a;color:var(--ink);font-weight:400;padding:.75rem 3.6rem .75rem 1rem;width:100%}.task-input__field::placeholder{color:var(--muted);font-weight:400}.task-input__confirm{align-items:center;background:var(--mint);border:none;border-radius:0 1rem 1rem 0;box-shadow:inset 1px 0 #2b3a341f;color:#fff;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background .15s ease,transform 90ms ease;width:3.6rem}.task-input__confirm svg{height:1.15rem;width:1.15rem}.task-input__confirm:hover{filter:brightness(1.05)}.task-input__confirm:active{transform:scale(.94)}.task-input__confirm--success{animation:task-confirm-pulse .55s ease;background:var(--mint-dark)}.task-input__confirm--error{background:#d9534f}@keyframes task-confirm-pulse{0%{transform:scale(1)}35%{transform:scale(1.15)}to{transform:scale(1)}}.task-input__status{font-size:.72rem;font-weight:700;left:.2rem;margin:0;position:absolute;top:calc(100% + .3rem)}.task-input__status--success{color:var(--mint-dark)}.task-input__status--error{color:#d9534f}.task-input__suggestions{background:var(--cream);border-radius:1rem;box-shadow:0 8px 20px #2b3a342e;list-style:none;margin:.4rem 0 0;max-height:12rem;overflow-y:auto;padding:.35rem;position:absolute;top:100%;width:100%;z-index:15}.task-input__suggestions button{background:none;border:none;border-radius:.7rem;color:var(--ink);font-weight:700;padding:.55rem .7rem;text-align:left;width:100%}.task-input__suggestions button:hover{background:var(--slate)}.timer-stage{aspect-ratio:1;display:grid;place-items:center;position:relative;width:min(74vw,21rem)}.timer-ring{background:conic-gradient(var(--mint) calc(var(--timer-progress) * 1turn),var(--slate) 0);border-radius:50%;box-shadow:0 8px #2b3a3426;inset:0;position:absolute;transition:background .3s linear}.timer-core{align-items:center;background:var(--cream);border-radius:50%;box-shadow:0 10px 0 var(--slate-dark),0 16px 26px #2b3a342e,inset 0 3px #fff;display:flex;flex-direction:column;height:80%;justify-content:center;position:relative;width:80%;z-index:3}.timer-core__time{color:var(--ink);font-family:Balatro,"Baloo 2",ui-rounded,system-ui,sans-serif;font-size:clamp(2.1rem,9vw,3.1rem);font-weight:700}.timer-core__mode{color:var(--mint-dark);font-size:.85rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.timer-controls{display:flex;gap:.9rem;justify-content:center}.character-runner{height:clamp(3.2rem,11vw,3.8rem);position:absolute;transform-origin:center;z-index:5}.character-sprite{--frame-end: calc(100% * var(--frames) / (var(--frames) - 1));background-repeat:no-repeat;background-size:calc(var(--frames) * 100%) 100%;display:block;height:100%;image-rendering:pixelated;width:100%}.character-sprite.is-running{animation:sprite-step calc(var(--frames) * .08s) steps(var(--frames),end) infinite}.character-sprite.is-idle{animation:sprite-step calc(var(--frames) * .18s) steps(var(--frames),end) infinite}.cycle-path{display:flex;gap:.5rem;justify-content:center;margin:0}.cycle-node{align-items:center;background:var(--slate);border-radius:999px;color:var(--muted);display:flex;font-weight:800;height:2.1rem;justify-content:center;width:2.1rem}.cycle-node.is-done{background:var(--mint);color:#fff}.cycle-node.is-next{box-shadow:0 0 0 3px var(--mint-light)}.celebration-toast{animation:celebration-pop 2.2s ease forwards;background:var(--mint);border-radius:999px;box-shadow:0 6px 16px #4aa87b73;color:#fff;font-weight:800;padding:.6rem 1.1rem;position:fixed;top:1rem;z-index:30}@keyframes celebration-pop{0%{opacity:0;transform:translateY(-10px) scale(.9)}12%{opacity:1;transform:translateY(0) scale(1)}85%{opacity:1}to{opacity:0;transform:translateY(-6px) scale(.95)}}.stats-page{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.stats-header{align-items:center;display:flex;justify-content:space-between}.stats-header h1{color:var(--ink);font-family:Balatro,"Baloo 2",ui-rounded,system-ui,sans-serif;font-size:1.6rem;margin:0}.metric-row{display:grid;gap:.6rem;grid-template-columns:repeat(3,1fr)}.metric-tile{background:var(--cream);border-radius:1rem;box-shadow:0 4px 0 var(--slate-dark),0 6px 12px #2b3a341a;padding:.75rem}.metric-tile__label{color:var(--muted);font-size:.7rem;font-weight:700;margin:0;text-transform:uppercase}.metric-tile__value{color:var(--ink);font-size:1.2rem;font-weight:800;margin:.15rem 0 0}.card{background:var(--cream);border-radius:1.25rem;box-shadow:0 6px 0 var(--slate-dark),0 10px 18px #2b3a341a;padding:1rem 1.1rem}.card h2{color:var(--ink);font-size:1.05rem;font-weight:800;margin:0 0 .75rem}.card__header{align-items:center;display:flex;justify-content:space-between}.week-bars{display:flex;flex-direction:column;gap:.5rem}.week-bar-row{align-items:center;background:none;border:none;display:grid;gap:.6rem;grid-template-columns:2.6rem 1fr 3.4rem;padding:.15rem 0;text-align:left;width:100%}.week-bar-row__label{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.week-bar-row__track{background:var(--slate);border-radius:999px;display:block;height:.7rem;overflow:hidden}.week-bar-row__fill{background:var(--mint);border-radius:999px;display:block;height:100%}.week-bar-row__value{color:var(--ink);font-size:.8rem;font-weight:700;text-align:right}.day-sessions p{color:var(--muted);font-size:.9rem;margin:.35rem 0}.graph-hint{color:var(--muted);font-size:.8rem;margin:-.35rem 0 .75rem}.graph-container{background:var(--slate);border-radius:1rem;overflow:hidden;position:relative;width:100%}.graph-svg{cursor:grab;display:block;height:28.75rem;width:100%}.graph-svg:active{cursor:grabbing}.graph-link{stroke:var(--slate-dark);stroke-opacity:.9}.graph-node circle{stroke:var(--ink);stroke-width:2px}.graph-node--task circle{fill:var(--mint)}.graph-node--day circle{fill:var(--gold)}.graph-node{cursor:grab}.graph-node:active{cursor:grabbing}.graph-node__label{fill:var(--ink);font-family:Balatro,Nunito,ui-rounded,system-ui,sans-serif;font-size:.7rem;font-weight:700;paint-order:stroke;pointer-events:none;stroke:var(--slate);stroke-width:3px}.graph-tooltip{background:var(--ink);border-radius:.6rem;color:#fff;font-size:.75rem;font-weight:700;padding:.4rem .6rem;pointer-events:none;position:absolute;transform:translate(-50%,calc(-100% - .6rem));white-space:nowrap;z-index:5}.graph-empty{align-items:center;background:var(--slate);border-radius:1rem;color:var(--muted);display:flex;flex-direction:column;font-weight:700;gap:.3rem;height:14rem;justify-content:center;text-align:center}.streak-badge{align-items:center;background:#fff1e0;border-radius:999px;color:#b85c00;display:inline-flex;font-weight:800;gap:.35rem;padding:.35rem .75rem}.mini-timer{align-items:center;background:var(--cream);bottom:1rem;border-radius:1.5rem;box-shadow:0 6px 0 var(--slate-dark),0 12px 22px #2b3a3433;cursor:grab;display:flex;gap:.5rem;left:1rem;padding:.5rem .6rem;position:fixed;touch-action:none;-webkit-user-select:none;user-select:none;z-index:30}.mini-timer:active{cursor:grabbing}.mini-timer__open,.mini-timer__toggle{align-items:center;background:var(--slate);border:none;border-radius:.7rem;color:var(--ink);display:flex;height:2.1rem;justify-content:center;width:2.1rem}.mini-timer__toggle{background:var(--mint);color:#fff}.mini-timer__info{display:flex;flex-direction:column;line-height:1.1;padding:0 .15rem}.mini-timer__time{color:var(--ink);font-family:Balatro,"Baloo 2",ui-rounded,system-ui,sans-serif;font-size:1.05rem;font-weight:700}.mini-timer__mode{color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.music-panel{background:var(--cream);border-radius:1.25rem;bottom:1rem;box-shadow:0 8px 0 var(--slate-dark),0 14px 26px #2b3a3429;overflow:hidden;position:fixed;right:1rem;transition:opacity .16s ease,transform .16s ease;width:min(88vw,19rem);z-index:25}.music-panel.is-collapsed{height:0!important;opacity:0;pointer-events:none;transform:scale(.9)}.music-panel.is-open{height:auto}.music-panel__bar{align-items:center;cursor:grab;display:flex;justify-content:space-between;padding:.5rem .6rem;touch-action:none;-webkit-user-select:none;user-select:none}.music-panel__bar:active{cursor:grabbing}.music-panel__title{color:var(--ink);font-size:.85rem;font-weight:800}.music-panel__body{display:flex;flex-direction:column;gap:.55rem;padding:0 .7rem .7rem}.music-panel__tabs{display:flex;gap:.3rem}.music-panel__tabs .tab-button{background:var(--slate);border:none;border-radius:.7rem;color:var(--muted);flex:1;font-size:.75rem;font-weight:800;padding:.4rem .3rem}.music-panel__tabs .tab-button.is-active{background:var(--mint);color:#fff}.music-panel__frame{border:none;border-radius:.75rem;display:block;width:100%}.music-panel__frame--spotify{height:152px}.music-panel__form{display:flex;flex-direction:column;gap:.5rem}.modal__input{background:var(--slate);border:none;border-radius:.75rem;min-height:4rem;padding:.6rem;resize:vertical;width:100%}.is-hidden{display:none}.modal-backdrop{align-items:center;background:#2b3a3473;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:40}.modal{background:var(--cream);border-radius:1.5rem;box-shadow:0 10px 0 var(--slate-dark),0 18px 32px #2b3a3440;display:flex;flex-direction:column;gap:1rem;max-height:85vh;overflow:auto;padding:1.25rem;width:min(92vw,30rem)}.modal__actions{display:flex;gap:.6rem}.settings-modal{height:min(85vh,34rem)}.settings-tab-content{flex:1;min-height:0;overflow-y:auto}.settings-section-title{color:var(--muted);font-size:.8rem;font-weight:800;letter-spacing:.04em;margin:0 0 .6rem;text-transform:uppercase}.settings-tabs{background:var(--slate);border-radius:.85rem;display:flex;gap:.25rem;padding:.25rem}.settings-tabs .tab-button{background:none;border:none;border-radius:.6rem;color:var(--muted);flex:1;font-size:.85rem;font-weight:800;padding:.5rem}.settings-tabs .tab-button.is-active{background:var(--cream);color:var(--ink)}.settings-subtabs{display:flex;gap:.3rem;margin-bottom:.7rem}.settings-subtabs .tab-button{background:var(--slate);border:none;border-radius:.7rem;color:var(--muted);flex:1;font-size:.72rem;font-weight:800;padding:.4rem .3rem}.settings-subtabs .tab-button.is-active{background:var(--mint);color:#fff}.settings-account{align-items:flex-start;display:flex;flex-direction:column;gap:.9rem}.settings-account__status{align-items:center;color:var(--muted);display:flex;font-size:.85rem;font-weight:600;gap:.4rem;margin:0}.settings-account__status svg{color:var(--mint-dark);flex-shrink:0}.settings-grid{display:grid;gap:.6rem;grid-template-columns:repeat(3,1fr)}.theme-thumb,.character-thumb{background:var(--slate);border:3px solid transparent;border-radius:1rem;cursor:pointer;display:flex;flex-direction:column;gap:.35rem;overflow:hidden;padding:.4rem;text-align:center}.theme-thumb img{aspect-ratio:16 / 9;border-radius:.6rem;display:block;object-fit:cover;width:100%}.theme-thumb--auto img{background:var(--mint-light)}.character-thumb__sprite{background-position:0 0;background-repeat:no-repeat;border-radius:.6rem;display:block;image-rendering:pixelated;margin:0 auto;width:70%}.theme-thumb span,.character-thumb span{color:var(--muted);font-size:.7rem;font-weight:700}.theme-thumb.is-selected,.character-thumb.is-selected{border-color:var(--mint)}.theme-thumb.is-selected span,.character-thumb.is-selected span{color:var(--mint-dark)}.settings-durations{display:flex;flex-direction:column;gap:.6rem}.settings-number-row{align-items:center;display:flex;justify-content:space-between}.settings-number-row__label{color:var(--ink);font-size:.85rem;font-weight:700}.settings-number-row__label small{color:var(--muted);display:block;font-size:.7rem;font-weight:600}.stepper{align-items:center;display:flex;gap:.5rem}.stepper-button{align-items:center;background:var(--slate);border:none;border-radius:.6rem;color:var(--ink);display:flex;font-size:1.1rem;font-weight:800;height:2rem;justify-content:center;width:2rem}.stepper-button:active{background:var(--slate-dark)}.stepper-value{color:var(--ink);font-weight:800;min-width:2.4rem;text-align:center}.auth-tabs{background:var(--slate);border-radius:.85rem;display:flex;gap:.25rem;padding:.25rem}.auth-tabs .tab-button{background:none;border:none;border-radius:.6rem;color:var(--muted);flex:1;font-size:.85rem;font-weight:800;padding:.5rem}.auth-tabs .tab-button.is-active{background:var(--cream);color:var(--ink)}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-field{display:flex;flex-direction:column;gap:.3rem}.auth-field span{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.auth-field input{background:var(--slate);border:none;border-radius:.75rem;padding:.65rem .8rem;width:100%}.auth-error{color:#c1481f;font-size:.8rem;font-weight:700;margin:0}.auth-hint{color:var(--muted);font-size:.72rem;margin:0;text-align:center}.info-section{background:#fff;font-family:Montserrat,ui-sans-serif,system-ui,sans-serif;padding:3.5rem 1.25rem 4rem;position:relative;z-index:2}.info-section__inner{margin:0 auto;max-width:38rem}.info-section__tagline{color:var(--mint-dark);font-size:1.1rem;font-weight:600;margin:0 0 2.25rem;text-align:center}.info-section h2{color:var(--ink);font-size:1.25rem;font-weight:700;margin:2rem 0 .75rem}.info-section h2:first-of-type{margin-top:0}.info-section p{color:var(--muted);font-size:.95rem;font-weight:400;line-height:1.65;margin:0 0 .9rem}.info-section__steps{color:var(--muted);display:flex;flex-direction:column;font-size:.95rem;gap:.5rem;line-height:1.6;margin:0 0 .9rem;padding-left:1.4rem}.info-section__closing{color:var(--ink);font-size:1.05rem;font-weight:600;margin-top:2rem;text-align:center}.site-footer{align-items:center;background:#fff;border-top:1px solid var(--slate);display:flex;flex-direction:column;font-family:Montserrat,ui-sans-serif,system-ui,sans-serif;gap:.5rem;padding:1.5rem 1.25rem 2rem;position:relative;z-index:2}.site-footer__copy{color:var(--muted);font-size:.8rem;margin:0}.site-footer__links{align-items:center;display:flex;gap:.6rem}.site-footer__links button{background:none;border:none;color:var(--muted);font-size:.8rem;font-weight:600;padding:0;text-decoration:underline;text-underline-offset:2px}.site-footer__links button:hover{color:var(--mint-dark)}.site-footer__dot{background:var(--slate-dark);border-radius:50%;display:inline-block;height:.2rem;width:.2rem}.legal-page{min-height:100vh;padding-top:2.5rem}.legal-page__back{background:none;border:none;color:var(--mint-dark);font-size:.85rem;font-weight:600;margin-bottom:1.5rem;padding:0}.legal-page__title{color:var(--ink);font-size:1.6rem;font-weight:700;margin:0 0 .3rem}.legal-page__updated{color:var(--muted);font-size:.8rem;margin:0 0 2rem}.legal-page h2{font-size:1.05rem}@keyframes sprite-step{to{background-position-x:var(--frame-end)}}@media(max-width:639px){.app-shell__content{padding:.8rem .7rem 2rem}.navbar{display:grid;gap:.4rem .5rem;grid-template-areas:"brand actions" "stats stats";grid-template-columns:1fr auto}.navbar__brand-group{grid-area:brand}.navbar__stats{grid-area:stats}.navbar__actions{flex-wrap:wrap;gap:.3rem;grid-area:actions;justify-content:flex-end;justify-self:end}.navbar__actions .game-button--icon{min-height:2.3rem;min-width:2.3rem;padding:.35rem}.navbar__actions .game-button--label{min-width:2.3rem;padding:.35rem}.navbar__actions .game-button--label span{display:none}.navbar__actions svg{height:1.1rem;width:1.1rem}.timer-panel{margin-top:1.1rem}.game-button--label{min-width:5.6rem}.music-panel{bottom:.6rem;right:.6rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
