@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(./dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-cyrillic-ext-500-normal-DcrB4vVx.woff2) format("woff2"),url(./caveat-cyrillic-ext-500-normal-DqTXtm5N.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-cyrillic-500-normal-DpMZbbjM.woff2) format("woff2"),url(./caveat-cyrillic-500-normal-DLSfp5IU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-latin-ext-500-normal-jKqJW7bC.woff2) format("woff2"),url(./caveat-latin-ext-500-normal-wUUXxlbS.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(./caveat-latin-500-normal-B9SDL8cy.woff2) format("woff2"),url(./caveat-latin-500-normal-Do9veZfZ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pine:#213c32;--gold:#b88b4a;--paper:#f3ead8;--paper2:#ebdfc6;--ink:#2b2118;--tob:#7a4a2a;--rust:#a4452e}*{box-sizing:border-box}html,body{margin:0}body{font-family:DM Sans Variable,system-ui,sans-serif;color:var(--ink);background:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .32 0 0 0 0 .16 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");min-height:100vh}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.display{font-family:Fraunces Variable,serif;font-weight:700;font-size:clamp(2rem,7vw,2.8rem);line-height:1.05;margin:.3em 0 .1em;letter-spacing:-.01em;text-align:center}.hand{font-family:Caveat,cursive;font-weight:500;font-size:1.35rem;color:var(--tob);text-align:center;margin:.2em 0}.sub{margin-bottom:1rem}.app{max-width:1000px;margin:0 auto;padding:0 16px}.page{padding:12px 0 110px;max-width:560px;margin:0 auto;border-inline:0}.page>section{animation:fade .35s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}.nav{position:fixed;z-index:5;left:0;right:0;bottom:0;background:var(--pine);padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:3px double var(--gold)}.nav .brand{display:none}.nav ul{display:flex;list-style:none;margin:0;padding:0;justify-content:space-around}.nav button{position:relative;background:none;border:0;color:#d9cdb2;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;min-height:48px;border-radius:12px;font-size:.78rem}.nav button.on{color:#fff;background:#ffffff1a}.nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dot{position:absolute;top:6px;right:12px;width:9px;height:9px;border-radius:50%;background:var(--gold)}@media (min-width:760px){.nav{position:static;background:none;border:0;border-bottom:2px solid var(--ink);padding:14px 0 10px;display:flex;align-items:center;justify-content:space-between;max-width:1000px;margin:0 auto}.nav .brand{display:block;font-family:Fraunces Variable,serif;font-weight:700;font-size:1.5rem;color:var(--pine)}.nav button{flex-direction:row;color:var(--pine);font-size:1rem;gap:6px;padding:6px 14px}.nav button.on{background:var(--pine);color:#fff}.page{padding-bottom:40px}}.stage{position:relative;background:radial-gradient(ellipse at 70% 30%,#fbefd0,#ecdcb8 70%,#dcc79c);border:2px solid var(--ink);border-radius:20px 20px 60px/20px 24px 40px 20px;padding:6px;box-shadow:5px 6px 0 var(--pine);outline:2px solid var(--gold);outline-offset:-9px}.scene{width:100%;display:block;max-height:46vh}.stage:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:inherit;pointer-events:none;border:1px dashed #7a4a2a77;transform:rotate(.25deg)}.scene .breathe{transform-box:view-box;transform-origin:0 0}.scene .breathe{animation:breath 4s ease-in-out infinite}@keyframes breath{0%,to{transform:translate(76px,108px) scale(.86)}50%{transform:translate(76px,106px) scale(.865,.875)}}.ear-r{animation:twitch 7s infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes twitch{0%,90%,to{rotate:0deg}93%{rotate:-8deg}96%{rotate:4deg}}.eye{animation:blink 5s infinite;transform-box:fill-box}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}.steam{animation:steam 3s ease-in-out infinite}.s2{animation-delay:1.3s}@keyframes steam{0%{opacity:0;transform:translateY(8px)}50%{opacity:.7}to{opacity:0;transform:translateY(-6px)}}.mote{animation:mote 6s ease-in-out infinite}.m1{animation-delay:1s}.m2{animation-delay:2.5s}.m3{animation-delay:4s}@keyframes mote{50%{transform:translate(8px,-14px);opacity:.3}}.voice{font-size:1.5rem;min-height:3.2rem;margin:14px 0 6px}.clock{position:relative;width:min(240px,64vw);margin:4px auto}.clock svg{display:block;width:100%}.ring-bg{fill:none;stroke:var(--paper2);stroke-width:14}.ring{fill:none;stroke:var(--pine);stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.time{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.time strong{font-family:Fraunces Variable,serif;font-size:3rem;font-variant-numeric:tabular-nums}.time span{font-family:Caveat;font-size:1.2rem;color:var(--tob)}.chips{display:flex;gap:10px;justify-content:center;margin:12px 0}.chips button{width:64px;height:64px;border-radius:50% 46% 52% 48%;border:2px solid var(--ink);background:var(--paper2);font-weight:700;font-size:1.2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.chips small{font-size:.65rem;font-weight:400}.chips .on{background:var(--pine);color:#fff;box-shadow:2px 3px 0 var(--gold)}.actions{display:flex;flex-direction:column;gap:10px;align-items:center;margin:14px 0}.cta{background:var(--pine);color:#f7efdb;border:2px solid var(--ink);border-radius:14px 18px 14px 20px;padding:15px 36px;font-size:1.15rem;font-weight:700;min-width:240px;box-shadow:4px 5px 0 var(--gold);transition:transform .12s}.cta:hover:not(:disabled){transform:translate(-1px,-1px)}.cta:active:not(:disabled){transform:translate(3px,4px);box-shadow:1px 1px 0 var(--gold)}.cta:disabled{opacity:.55;cursor:not-allowed}.ghost,.danger{background:none;border:2px solid var(--ink);border-radius:12px;padding:10px 20px}.danger{border-color:var(--rust);color:var(--rust)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width:420px){.grid{grid-template-columns:repeat(3,1fr)}}.card{position:relative;background-image:linear-gradient(#fffaf0aa,#f1e4c6aa);display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center;background:#fbf4e3;border:2px solid var(--ink);border-radius:16px 22px 14px 24px;padding:8px 6px 12px;transition:transform .15s}.card:hover{transform:rotate(-1deg) translateY(-2px)}.card:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid #7a4a2a66;border-radius:12px 18px 10px 20px;pointer-events:none}.card.on{background:#e3ecd8;box-shadow:4px 5px 0 var(--pine);outline:3px solid var(--gold);outline-offset:2px}.portrait{width:100%;max-width:130px;overflow:visible;max-height:130px}.portrait.big{max-width:190px}.card b{font-family:Fraunces Variable,serif;font-size:1.05rem}.card em{font-size:.72rem;color:var(--pine);font-style:normal;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.card .hand{font-size:.98rem;line-height:1.05}.badge{font-family:Caveat;font-style:normal;font-size:.9rem;background:var(--pine);color:var(--paper);border-radius:99px;padding:0 9px;margin-top:4px}.namebox{display:flex;flex-direction:column;gap:4px;margin:18px auto 4px;max-width:300px}.namebox input{border:2px solid var(--ink);background:#fbf4e3;border-radius:10px;padding:10px 12px}.cats .cta{display:block;margin:6px auto}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.tiles div{background:#fbf4e3;border:2px solid var(--ink);border-radius:18px 12px 20px;text-align:center;padding:12px 4px}.tiles strong{display:block;font-family:Fraunces Variable,serif;font-size:2rem;color:var(--pine)}.tiles span{font-family:Caveat;font-size:1.15rem;color:var(--tob)}.week{margin:0;background:#fbf4e3;border:2px solid var(--ink);border-radius:14px;padding:10px}.week svg{width:100%}.axis{font:600 11px DM Sans Variable;fill:var(--ink)}.journal{list-style:none;padding:0}.journal li{padding:8px 4px;border-bottom:1px dashed var(--tob)}.journal span{font-family:Caveat;font-size:1.2rem;color:var(--tob);margin-right:8px}.empty{text-align:center;color:var(--tob)}.row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 0;border-bottom:1px dashed var(--tob)}.row p{margin:2px 0 0;font-size:.9rem;color:#5a4a3a}.row select{padding:8px;border:2px solid var(--ink);border-radius:10px;background:#fbf4e3}.switch{width:56px;height:32px;flex:none;border-radius:99px;border:2px solid var(--ink);background:var(--paper2);position:relative;padding:0}.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--ink);transition:transform .2s}.switch.on{background:var(--pine)}.switch.on i{transform:translate(24px);background:var(--gold)}.confirm{display:flex;flex-direction:column;gap:6px;align-items:flex-end;font-size:.85rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#213c32cc;display:grid;place-items:center;z-index:10;padding:16px}.modal{position:relative;overflow:hidden;background:var(--paper);border:3px solid var(--ink);border-radius:24px;padding:22px 18px;max-width:420px;width:100%;text-align:center;box-shadow:6px 7px 0 var(--gold);animation:pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:scale(.85);opacity:0}}.modal .portrait{margin:0 auto;display:block}.leaf{position:absolute;top:-30px;width:22px;animation:fall 3.4s ease-in infinite}@keyframes fall{to{transform:translateY(560px) rotate(300deg)}}@media (max-width:420px){.page{padding-top:4px}.display{font-size:1.9rem}.voice{font-size:1.3rem;min-height:2.6rem;margin:8px 0 2px}.cta{min-width:0;width:100%}.card .hand{font-size:.9rem}.clock{width:min(200px,56vw)}.time strong{font-size:2.5rem}}main,.app{overflow-x:clip}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.leaf{display:none}}
