@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:#183e2f;--pine2:#102a20;--gold:#c39548;--paper:#f3e7c6;--paper2:#e8d6a8;--ink:#2b2118;--tob:#684224;--rust:#963f33}*{box-sizing:border-box}html,body{margin:0}body{font-family:DM Sans Variable,system-ui,sans-serif;color:var(--ink);background:#0f271e;background-image:radial-gradient(ellipse at 50% 0,#1d4a3a,#0f271e 70%)}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:800;font-style:italic;font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 144;font-size:clamp(2rem,8vw,2.9rem);line-height:1;margin:.3em 0 .1em;letter-spacing:-.02em;text-align:center;color:var(--pine);text-shadow:1px 1px 0 #fff8}.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 12px}.page,.welcome{position:relative;max-width:560px;margin:10px auto 0;padding:14px 14px 110px;color:var(--ink);background:var(--paper);border-radius:6px;box-shadow:0 0 0 2px var(--gold),0 0 0 5px #0f271e,0 0 0 6px var(--gold),0 18px 40px #0008;background-image:radial-gradient(ellipse at 20% 10%,#fff6d8,transparent 55%),radial-gradient(ellipse at 90% 90%,#d9b878aa,transparent 60%)}.page>section{animation:fade .35s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}.divider{display:block;width:180px;height:16px;margin:10px auto}.nav{position:fixed;z-index:5;left:0;right:0;bottom:0;background:var(--paper);padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:3px double var(--gold);box-shadow:0 -6px 16px #0006}.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:var(--tob);display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;min-height:48px;font-size:.8rem;font-family:Fraunces Variable,serif;font-style:italic;border-bottom:3px solid transparent}.nav button.on{color:var(--pine);font-weight:700;border-bottom-color:var(--gold)}.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(--rust)}@media (min-width:760px){.nav{position:static;background:none;border:0;border-bottom:2px solid var(--gold);box-shadow:none;padding:14px 0 10px;display:flex;align-items:center;justify-content:space-between;max-width:1000px;margin:0 auto}.nav .brand{display:flex;align-items:center;gap:8px;font-family:Fraunces Variable,serif;font-style:italic;font-weight:700;font-size:1.5rem;color:var(--paper)}.nav button{flex-direction:row;color:var(--paper);font-size:1rem;gap:6px;padding:6px 14px}.nav button.on{color:var(--gold)}.page{padding-bottom:40px}}.plate{position:relative;border:2px solid var(--ink);border-radius:8px 8px 40px;overflow:hidden;box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--gold),4px 6px #0004}.hero{display:block;width:100%;height:auto}.welcome{padding-bottom:28px;margin-bottom:24px}.masthead{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px 0 10px}.wordmark{font-family:Fraunces Variable,serif;font-style:italic;font-weight:800;font-size:1.9rem;color:var(--pine);letter-spacing:-.01em}.torn{background:#fbf3da;margin:-26px 6px 0;position:relative;padding:12px 14px 10px;clip-path:polygon(0 6%,6% 0,14% 5%,24% 1%,36% 5%,50% 0,64% 5%,78% 1%,90% 5%,100% 0,100% 94%,92% 100%,80% 95%,66% 100%,52% 95%,38% 100%,24% 95%,10% 100%,0 95%);box-shadow:0 4px #0003}.how{margin:8px 10px;padding:12px 12px 12px 34px;background:#fbf3da;border:1.5px dashed var(--tob);border-radius:10px;font-family:Caveat;font-size:1.3rem;color:var(--tob)}.note{margin-top:12px;text-align:center}.kicker{font-family:Fraunces Variable,serif;font-style:italic;font-size:.95rem;color:var(--pine);border-bottom:1.5px solid var(--gold);padding:0 6px}.voice{font-size:1.5rem;min-height:3.2rem;margin:8px 0 6px;line-height:1.05}.dial{position:relative;width:min(280px,76vw);margin:6px auto}.dial svg{display:block;width:100%;filter:drop-shadow(0 6px 6px #0004)}.dial-prog{transition:stroke-dashoffset .3s linear}.dial-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.time{display:flex;flex-direction:column;align-items:center;margin-top:-14px;color:var(--paper)}.time strong{font-family:Fraunces Variable,serif;font-size:clamp(2.2rem,11vw,3.2rem);font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #000a}.time span{font-family:Caveat;font-size:1.25rem;color:var(--gold)}.chips{display:flex;gap:10px;justify-content:center;margin:12px 0}.chips button{width:62px;height:62px;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,.seg .on{background:var(--pine);color:var(--paper);box-shadow:0 0 0 2px var(--gold)}.actions{display:flex;flex-direction:column;gap:10px;align-items:center;margin:14px 0}.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(#245843,var(--pine2));color:#f7efdb;border:0;border-radius:14px 18px 14px 20px;padding:15px 34px;font-family:Fraunces Variable,serif;font-style:italic;font-size:1.2rem;font-weight:700;min-width:250px;outline:2px solid var(--gold);outline-offset:-5px;box-shadow:0 0 0 2px var(--ink),4px 6px #0005;transition:transform .12s}.cta:hover:not(:disabled){transform:translate(-1px,-1px)}.cta:active:not(:disabled){transform:translate(2px,3px)}.cta:disabled{opacity:.55;cursor:not-allowed}.ghost,.danger{background:#fbf3da88;border:2px solid var(--ink);border-radius:12px 14px 12px 16px;padding:10px 20px}.danger{border-color:var(--rust);color:var(--rust)}.confirm{display:flex;flex-direction:column;gap:6px;align-items:center;font-size:.9rem;text-align:center}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width:520px){.grid{grid-template-columns:repeat(3,1fr);gap:10px}}.card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:2px;text-align:center;background:#fbf3da;border:2px solid var(--ink);border-radius:6px 6px 16px;padding:0 0 10px;overflow:hidden;transition:transform .15s}.card:hover{transform:rotate(-1deg) translateY(-2px)}.card.on{background:#e3ecd0;border-color:var(--pine);box-shadow:0 0 0 3px var(--gold),3px 5px 0 var(--pine)}.chosen{position:absolute;top:6px;right:6px;font-family:Caveat;font-size:1.05rem;line-height:1.3;background:var(--pine);color:var(--paper);padding:0 9px;border-radius:99px;box-shadow:0 0 0 1.5px var(--gold)}.card .portrait{display:block;width:100%;height:auto;border-bottom:2px solid var(--ink);margin-bottom:6px}.plaque{display:flex;flex-direction:column;align-items:center;gap:1px;padding:0 6px}.card b{font-family:Fraunces Variable,serif;font-size:1.1rem;font-style:italic;color:var(--pine)}.card em{font-size:.66rem;color:var(--pine);font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.card .hand{font-size:.92rem;line-height:1}.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:8px auto 4px;max-width:300px;font-family:Caveat;font-size:1.25rem;color:var(--tob)}.namebox input,.yourcat input{border:2px solid var(--ink);background:#fbf3da;border-radius:10px;padding:10px 12px;font-size:1rem;width:100%}.cats .cta{display:flex;margin:6px auto}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.tiles div{background:#fbf3da;border:2px solid var(--ink);border-radius:6px 6px 18px;text-align:center;padding:8px 4px;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--gold)}.ico{width:28px;height:28px}.tiles strong{display:block;font-family:Fraunces Variable,serif;font-size:2.1rem;color:var(--pine);line-height:1}.tiles span{font-family:Caveat;font-size:1.15rem;color:var(--tob)}.week{margin:0;background:#fbf3da;border:2px solid var(--ink);border-radius:6px;padding:10px}.week svg{width:100%}.axis{font:600 11px DM Sans Variable;fill:var(--ink)}.rows{list-style:none;padding:0;margin:0}.rows li{display:flex;align-items:center;gap:10px;padding:6px 8px;margin-bottom:8px;background:#fbf3da;border:1.5px solid var(--ink);border-radius:6px 6px 14px}.rows .mini{width:50px;height:50px;flex:none;object-fit:cover;object-position:50% 30%;border:2px solid var(--gold);border-radius:50%}.rows div{flex:1;display:flex;flex-direction:column}.rows b{font-family:Fraunces Variable,serif;font-size:1.1rem}.rows span{font-size:.85rem;color:var(--tob)}.empty{text-align:center;color:var(--tob)}.mini-big{width:150px;border:2px solid var(--gold);border-radius:8px}.paper-card{background:#fbf3da;border:2px solid var(--ink);border-radius:6px 6px 18px;padding:12px 14px;margin:12px 0;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--gold)}.paper-card h2{font-family:Fraunces Variable,serif;font-style:italic;font-size:1.15rem;margin:0 0 4px;color:var(--pine)}.paper-card p{margin:2px 0 8px;font-size:.88rem;color:#5a4a3a}.paper-card.row{display:flex;justify-content:space-between;align-items:center;gap:14px}.yourcat{display:flex;gap:14px;align-items:center}.yourcat .portrait{width:120px;height:auto;flex:none;border:2px solid var(--gold);border-radius:8px;box-shadow:0 0 0 2px var(--ink)}.yourcat>div{flex:1;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.seg{display:flex;gap:8px}.seg button{flex:1;min-height:48px;border:2px solid var(--ink);background:var(--paper2);border-radius:10px;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.seg small{font-weight:400;font-size:.65rem}.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)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1d15dd;display:flex;align-items:flex-start;justify-content:center;z-index:10;padding:16px;overflow-y:auto}.modal{position:relative;overflow:hidden;background:var(--paper);border:3px solid var(--ink);border-radius:8px;padding:22px 18px;max-width:420px;width:100%;margin:auto;text-align:center;box-shadow:0 0 0 3px var(--gold),0 0 0 6px var(--paper),0 0 0 7px var(--gold),0 20px 40px #000a;animation:pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:scale(.88);opacity:0}}.keepsake{margin:6px 0;padding:10px;background:#fbf3da;border:2px solid var(--ink);border-radius:4px;transform:rotate(-1deg);box-shadow:3px 5px #0003}.keepsake .portrait{margin:0 auto;display:block;width:100%;max-width:260px;height:auto;border:2px solid var(--gold);border-radius:6px}.celebrate-art{display:block;width:100%;height:auto;border-radius:3px;margin-bottom:6px}.keepsake figcaption b{font-family:Fraunces Variable,serif;font-size:1.3rem;color:var(--pine)}.keepsake figcaption span{display:block}.leaf{position:absolute;top:-30px;width:22px;animation:fall 3.4s ease-in infinite;pointer-events:none}@keyframes fall{to{transform:translateY(700px) rotate(300deg)}}@media (max-width:420px){.app{padding:0 6px}.page,.welcome{padding-left:10px;padding-right:10px}.voice{font-size:1.3rem;min-height:2.6rem}.cta{min-width:0;width:100%}.card .hand{font-size:.88rem}}main,.app{overflow-x:clip}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}.reduce-motion .leaf{display:none}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.leaf{display:none}}@media (max-width:759px){.app{min-height:100dvh;background:var(--paper);background-image:radial-gradient(ellipse at 20% 10%,#fff6d8,transparent 60%),radial-gradient(ellipse at 90% 90%,#d9b878aa,transparent 65%)}.welcome{min-height:calc(100dvh - 20px);margin-bottom:0}}.painting{display:block;width:100%;height:auto}.painting.fallback{background:linear-gradient(135deg,#e8d6a8,#c9d9b8)}.scene-crop{background:var(--pine2)}.plate{margin-bottom:6px}.welcome-plate .hero{margin-top:-2.2%;width:100%}.welcome-plate{aspect-ratio:728/560}.cats-banner{aspect-ratio:728/420}.cats-banner .hero{margin-top:-4%}.journal-plate{aspect-ratio:728/340}.settings-plate{aspect-ratio:728/290}.journal-plate .hero,.settings-plate .hero{margin-top:-.5%}.welcome-plate{margin-bottom:0}.torn{margin-top:-30px}.focus-plate{aspect-ratio:728/445}.portrait-plate{display:grid;place-items:center;background:var(--pine2)}.portrait-plate .ambient{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(14px) saturate(1.1) brightness(.7);transform:scale(1.15)}.portrait-plate .frame{position:relative;margin:0;width:62%;border:3px solid var(--gold);border-radius:8px;box-shadow:0 0 0 3px var(--pine2),0 0 0 4px var(--gold),0 10px 24px #000a;overflow:hidden;line-height:0}.portrait-plate .frame img{width:100%;height:auto}.cats-banner,.welcome-plate,.journal-plate,.settings-plate,.focus-plate{border-radius:8px 8px 34px}.dial-glow{filter:drop-shadow(0 0 10px #c3954866)}.painted-dial{width:min(330px,85vw);height:auto;position:relative;filter:none}.painted-ring-art{display:block;width:100%;height:auto}.painted-dial .dial-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;transform:translateY(-1%)}.painted-dial .time{color:var(--pine);margin-top:0;gap:0}.painted-dial .time strong{font-size:clamp(2.4rem,13vw,4rem);color:#0d3327;text-shadow:0 1px 0 #fff7ed;font-weight:520;letter-spacing:-.035em}.painted-dial .time span{font-family:Fraunces Variable,serif;font-size:clamp(.85rem,4vw,1.15rem);color:#173b2c;font-style:normal;font-weight:550}@media (min-width:370px) and (max-width:519px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.card{border-width:1.5px;padding-bottom:7px;border-radius:8px;min-width:0}.card .portrait{margin-bottom:3px;border-bottom-width:1px}.plaque{gap:1px;padding:0 2px}.card b{font-size:.78rem;line-height:1.05}.card em{font-size:.49rem;letter-spacing:0;line-height:1.13}.card .hand{font-size:.77rem;line-height:.88}.badge{font-size:.75rem;padding:1px 4px;margin-top:3px;line-height:1.1}.chosen{right:3px;top:3px;padding:1px 5px;font-size:.75rem}}
