@charset "UTF-8";@font-face{font-family:Newsreader;src:url(/fonts/newsreader-400-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Newsreader;src:url(/fonts/newsreader-400-vietnamese.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Newsreader;src:url(/fonts/newsreader-500-latin.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Newsreader;src:url(/fonts/newsreader-500-vietnamese.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-400-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-400-vietnamese.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-500-latin.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-500-vietnamese.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-600-latin.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-600-vietnamese.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-400-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-400-vietnamese.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-500-latin.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-500-vietnamese.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;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}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--canvas: #f7f6f3;--surface: #ffffff;--surface-muted: #f9f9f8;--text: #2f3437;--text-strong: #111111;--text-muted: #787774;--border: #eaeaea;--border-strong: rgba(0, 0, 0, .12);--accent: #346538;--accent-soft: #edf3ec;--danger: #9f2f2d;--danger-soft: #fdebec;--saved: #d99a00;--like-on: #e0245e;--save-on: #e8a000;--coffee: #6f4e37;--coffee-deep: #4a3526;--coffee-light: #9b7250;--steam: rgba(17, 17, 17, .16);--font-sans: "Geist", "Helvetica Neue", system-ui, sans-serif;--font-serif: "Newsreader", "Playfair Display", Georgia, serif;--font-mono: "Geist Mono", "SF Mono", monospace;--radius: 8px;--radius-sm: 6px}@media(max-width:600px){:root{--safe-bottom: max(16px, env(safe-area-inset-bottom, 0px))}}*{box-sizing:border-box}.pull-refresh-host{position:relative}.pull-refresh{position:absolute;top:-40px;left:50%;margin-left:-13px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none}.pull-refresh span{display:block;width:20px;height:20px;border:1.5px solid var(--border);border-top-color:var(--coffee);border-radius:50%}.pull-refresh--inset{top:26px}.pull-refresh[data-state=ready] span{border-top-color:var(--coffee-deep);border-right-color:var(--coffee)}.pull-refresh[data-state=refreshing]{opacity:1}.pull-refresh[data-state=refreshing] span{border-right-color:var(--coffee);animation:pull-refresh-spin .7s linear infinite}@keyframes pull-refresh-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pull-refresh[data-state=refreshing] span{animation:none}}:root{scrollbar-width:thin;scrollbar-color:rgba(17,17,17,.22) transparent}html{overflow-y:scroll}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1111112e;border:2px solid transparent;border-radius:9999px;background-clip:padding-box;transition:background-color .16s ease}::-webkit-scrollbar-thumb:hover{background:#11111157;background-clip:padding-box}html,body{margin:0;padding:0;min-height:100%}body{background:var(--canvas);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-serif);color:var(--text-strong);letter-spacing:-.02em;line-height:1.1;font-weight:500;margin:0}a{color:var(--text-strong);text-decoration:none}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.field>label{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.field input{font-family:var(--font-sans);font-size:15px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;outline:none;transition:border-color .16s ease}.field input:focus{border-color:var(--text-strong)}.field input.invalid{border-color:var(--danger);background:var(--danger-soft)}.field .error{font-size:12.5px;color:var(--danger);min-height:1.2em}.btn{font-family:var(--font-sans);font-size:15px;font-weight:500;color:#fff;background:var(--text-strong);border:none;border-radius:var(--radius-sm);padding:12px 16px;cursor:pointer;transition:background-color .16s ease,transform 80ms ease}.btn:hover:not(:disabled){background:#333}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.alert{font-size:13.5px;padding:11px 13px;border-radius:var(--radius-sm);border:1px solid var(--danger);background:var(--danger-soft);color:var(--danger);margin-bottom:18px}.alert--ok{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.img-frame{display:block;overflow:hidden}.img-frame>img{display:block;width:100%;height:100%}.overlay-close{position:absolute;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:#1111118c;color:#fff;cursor:pointer;transition:background .16s ease,transform .16s ease}.overlay-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.overlay-close:hover{background:#111111d9}.overlay-close:active{transform:scale(.96)}.water-splash{position:absolute;width:0;height:0;pointer-events:none;z-index:2}.water-splash__ripple{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.5px solid currentColor;opacity:0;animation:water-ripple .46s cubic-bezier(.16,1,.3,1) forwards}.water-splash__drop{position:absolute;width:var(--drop-size);height:var(--drop-size);margin:calc(var(--drop-size) / -2) 0 0 calc(var(--drop-size) / -2);border-radius:50%;background:currentColor;opacity:0;animation:water-drop .52s cubic-bezier(.16,1,.3,1) var(--drop-delay) forwards}@keyframes water-ripple{0%{opacity:.5;transform:scale(.35)}to{opacity:0;transform:scale(1)}}@keyframes water-drop{0%{opacity:0;transform:translate(0) scale(.5)}18%{opacity:.85}60%{opacity:.7;transform:translate(var(--drop-x),var(--drop-y)) scale(1)}to{opacity:0;transform:translate(var(--drop-x),calc(var(--drop-y) + 6px)) scale(.35)}}@media(prefers-reduced-motion:reduce){.water-splash{display:none}}
