@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff) format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.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}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff) format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.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}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-italic-ClXnudBg.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-italic-DakTmaFY.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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-italic-DVnfXoMy.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-italic-C9gO-8KC.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-italic-D3igDnAQ.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-italic-C-296ow0.woff) format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-italic-CalKM9tT.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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.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}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-italic-o1-A_FsB.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-italic-Vv_u9p1E.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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-italic-Bp4BYShX.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-italic-DP5iIMI9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-italic-C3DTNE_9.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-italic-Bdap-eNg.woff) format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-italic-DYtrqAWE.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-italic-CcucBqPp.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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-italic-DCuhXWyK.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-italic-BcJbkSJ4.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}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/mulish-cyrillic-ext-wght-normal-B3XMVzw1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/mulish-cyrillic-wght-normal-Cxxi75Cn.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/mulish-vietnamese-wght-normal-CiTUBHt1.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:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/mulish-latin-ext-wght-normal-BHZ6ODhS.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:Mulish Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/mulish-latin-wght-normal-WL5YNY-W.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}:root{--paper: #fcf8f7;--paper-2: #f8f1f1;--surface: #ffffff;--petal: #f2d7dd;--petal-soft: #f9eaed;--rose: #b0697a;--rose-deep: #8e4d5e;--lavender: #e3dcf0;--lavender-soft: #f1edf8;--lavender-deep: #6e5f93;--sage: #b7c7b0;--sage-soft: #e9efe6;--sage-deep: #4e6a55;--sage-ink: #3d5543;--ink: #3b3441;--ink-2: #5d5463;--ink-3: #7c7282;--line: #ece0e3;--line-2: #e2d6dc;--danger: #a3394b;--danger-soft: #f8e3e6;--ok: #3d6b4c;--font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--font-text: "Mulish Variable", "Mulish", system-ui, -apple-system, "Segoe UI", sans-serif;--r-hero: 28px;--r-card: 20px;--r-field: 12px;--r-pill: 999px;--shadow-card: 0 1px 0 rgba(59, 52, 65, .03), 0 10px 28px -20px rgba(110, 95, 147, .35);--shadow-float: 0 18px 40px -22px rgba(110, 95, 147, .45);--sidebar: 268px;--sidebar-collapsed: 78px;--tabbar: 66px;--reading-size: 1.18rem;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--lavender-deep);text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--lavender-deep);outline-offset:2px;border-radius:6px}::selection{background:var(--petal)}h1,h2,h3{font-family:var(--font-display);font-variant-numeric:lining-nums;font-weight:600;color:var(--ink);margin:0;letter-spacing:.005em}h1{font-size:clamp(2rem,1.5rem + 2vw,2.75rem);line-height:1.1}h2{font-size:1.6rem;line-height:1.2}h3{font-size:1.28rem;line-height:1.25}p{margin:0}.muted{color:var(--ink-3)}.small{font-size:.875rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.6rem 1.2rem;border-radius:var(--r-pill);border:1px solid transparent;background:transparent;cursor:pointer;font-weight:650;font-size:.95rem;text-decoration:none;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--sage-deep);color:#fff}.btn-primary:hover:not(:disabled){background:var(--sage-ink)}.btn-soft{background:var(--lavender-soft);color:var(--lavender-deep);border-color:var(--lavender)}.btn-soft:hover:not(:disabled){background:var(--lavender)}.btn-ghost{color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--paper-2)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#efc9cf}.btn-block{width:100%}.btn-sm{min-height:36px;padding:.35rem .85rem;font-size:.875rem}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer}.icon-btn:hover:not(:disabled){background:var(--paper-2)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.field{display:grid;gap:.35rem}.field label{font-weight:650;font-size:.9rem;color:var(--ink-2)}.field .hint{font-size:.82rem;color:var(--ink-3)}.input,.select,.textarea{width:100%;min-height:46px;padding:.65rem .9rem;border-radius:var(--r-field);border:1px solid var(--line-2);background:var(--surface);transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--lavender-deep);box-shadow:0 0 0 3px var(--lavender-soft)}.input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.85rem;font-weight:600}.check{display:flex;gap:.7rem;align-items:flex-start;cursor:pointer}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--sage-deep);flex:none}.notice{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border-radius:14px;font-size:.92rem}.notice svg{flex:none;margin-top:2px}.notice-info{background:var(--lavender-soft);color:var(--ink-2)}.notice-error{background:var(--danger-soft);color:var(--danger)}.notice-ok{background:var(--sage-soft);color:var(--sage-ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:1.35rem 1.4rem}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem 1rem;margin-bottom:.9rem;flex-wrap:wrap}.card-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;display:flex;align-items:center;gap:.55rem}.card-title svg{color:var(--rose)}.stack{display:grid;gap:1rem}.stack-lg{display:grid;gap:1.5rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--lavender);border-top-color:var(--lavender-deep);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100dvh;display:grid;place-items:center;gap:1rem}.loading-line{display:flex;gap:.7rem;align-items:center;color:var(--ink-3);font-size:.92rem}.empty{text-align:left;display:grid;gap:.75rem;justify-items:start}.empty p{color:var(--ink-2)}.skeleton{background:linear-gradient(90deg,var(--paper-2),var(--petal-soft),var(--paper-2));background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.shell{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:20;display:flex;flex-direction:column;gap:.25rem;padding:1.25rem .9rem 1rem;background:var(--paper-2);border-right:1px solid var(--line);transition:width .2s ease}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.2rem .55rem 1.1rem;text-decoration:none;color:var(--ink)}.sidebar-brand img{width:38px;height:38px;border-radius:12px}.wordmark{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:1.7rem;line-height:1}.wordmark small{display:block;font-style:normal;font-family:var(--font-text);font-size:.72rem;font-weight:600;color:var(--ink-3);margin-top:3px;letter-spacing:.02em}.nav-group{display:grid;gap:2px}.nav-sep{height:1px;background:var(--line);margin:.8rem .6rem}.nav-link{display:flex;align-items:center;gap:.8rem;min-height:44px;padding:.5rem .75rem;border-radius:14px;color:var(--ink-2);text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap}.nav-link svg{flex:none;color:var(--ink-3)}.nav-link:hover{background:var(--petal-soft);color:var(--ink)}.nav-link.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.nav-link.active svg{color:var(--rose)}.nav-link.minor{min-height:38px;font-size:.9rem;font-weight:550}.sidebar-foot{margin-top:auto;display:grid;gap:2px}.collapse-btn{background:none;border:0;cursor:pointer;text-align:left;width:100%}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar.collapsed .nav-label,.sidebar.collapsed .wordmark,.sidebar.collapsed .nav-sep-title{display:none}.sidebar.collapsed .nav-link{justify-content:center;padding:.5rem}.sidebar.collapsed .sidebar-brand{justify-content:center;padding-inline:0}.nav-sep-title{font-size:.78rem;font-weight:650;color:var(--ink-3);padding:0 .75rem .3rem}.main{margin-left:var(--sidebar);transition:margin-left .2s ease;min-height:100dvh}.main.wide{margin-left:var(--sidebar-collapsed)}.page{max-width:1060px;margin:0 auto;padding:2rem 2.25rem 4rem}.page-narrow{max-width:760px}.page-head{display:grid;gap:.4rem;margin-bottom:1.6rem}.page-head p{color:var(--ink-2);max-width:62ch}.offline-bar{background:var(--lavender-soft);color:var(--ink-2);font-size:.88rem;padding:.55rem 1.2rem;display:flex;gap:.6rem;align-items:center;border-bottom:1px solid var(--lavender)}.topbar,.tabbar,.sheet-backdrop{display:none}@media (max-width: 899px){.sidebar{display:none}.main,.main.wide{margin-left:0;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom))}.page{padding:1.25rem 1rem 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:15;padding:calc(.6rem + env(safe-area-inset-top)) 1rem .6rem;background:#fcf8f7eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .wordmark{font-size:1.5rem}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset:auto 0 0 0;z-index:20;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}.tab{display:grid;justify-items:center;align-content:center;gap:3px;text-decoration:none;color:var(--ink-3);font-size:.7rem;font-weight:650;background:none;border:0;cursor:pointer;padding:0}.tab .tab-pill{display:grid;place-items:center;width:52px;height:30px;border-radius:var(--r-pill)}.tab.active{color:var(--ink)}.tab.active .tab-pill{background:var(--petal);color:var(--rose-deep)}.sheet-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#3b344147}.sheet{position:fixed;inset:auto 0 0 0;z-index:31;background:var(--paper);border-radius:24px 24px 0 0;padding:.75rem 1rem calc(1.25rem + env(safe-area-inset-bottom));box-shadow:var(--shadow-float);max-height:85dvh;overflow:auto}.sheet-grip{width:42px;height:4px;border-radius:4px;background:var(--line-2);margin:0 auto .9rem}}.home-hero{position:relative;overflow:hidden;border-radius:var(--r-hero);background:linear-gradient(160deg,var(--petal-soft) 0%,var(--paper) 55%,var(--lavender-soft) 100%);border:1px solid var(--line);padding:2.2rem 2rem 2rem;margin-bottom:1.5rem;min-height:220px}.home-hero .vine{position:absolute;right:-10px;top:-14px;width:min(56%,460px);height:auto;pointer-events:none}.home-hero-text{position:relative;max-width:30rem;display:grid;gap:.5rem}.home-date{color:var(--ink-3);font-weight:600;font-size:.92rem}.motto{font-family:var(--font-display);font-style:italic;font-size:1.35rem;color:var(--rose-deep)}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.home-grid .span-2{grid-column:span 2}@media (max-width: 760px){.home-grid{grid-template-columns:minmax(0,1fr)}.home-grid .span-2{grid-column:auto}.home-hero{padding:5.2rem 1.25rem 1.4rem;min-height:0}.home-hero .vine{width:74%;right:-36px;top:-34px}}.verse-card{background:linear-gradient(180deg,#fff 0%,var(--petal-soft) 140%)}.verse-text{font-family:var(--font-text);font-size:1.22rem;line-height:1.6;color:var(--ink);font-weight:500;max-width:52ch}.verse-text.style-classica{font-family:var(--font-display);font-size:1.55rem;line-height:1.38}.verse-ref{margin-top:.9rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-weight:650;color:var(--rose-deep)}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:700;padding:.15rem .55rem;border-radius:var(--r-pill);background:var(--lavender-soft);color:var(--lavender-deep)}.badge-sage{background:var(--sage-soft);color:var(--sage-ink)}.shortcuts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}.shortcut{display:flex;align-items:center;gap:.7rem;padding:.85rem .9rem;border-radius:16px;min-height:60px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:650;font-size:.92rem}.shortcut:hover{background:var(--petal-soft)}.shortcut .dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sage-soft);color:var(--sage-deep);flex:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.stat{min-width:0;padding:.85rem;border-radius:16px;background:var(--paper);border:1px solid var(--line)}.stat b{display:block;font-family:var(--font-display);font-size:2rem;line-height:1;font-weight:600}.stat span{font-size:.82rem;color:var(--ink-2);font-weight:600}@media (max-width: 760px){.stats{grid-template-columns:minmax(0,1fr);gap:.5rem}.stat{display:flex;align-items:baseline;gap:.75rem;padding:.65rem .9rem}.stat b{font-size:1.7rem}}.arrange-list{display:grid;gap:.5rem}.arrange-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.arrange-item .grow{flex:1;font-weight:600}.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.hub-card{display:grid;gap:.55rem;text-decoration:none;color:inherit}.hub-card:hover{border-color:var(--petal)}.hub-card .hub-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--petal-soft);color:var(--rose-deep)}.hub-card p{color:var(--ink-2);font-size:.93rem}.soon-list{margin:.4rem 0 0;padding-left:1.1rem;color:var(--ink-2);display:grid;gap:.25rem}.reader-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:1.25rem}.reader-title{font-family:var(--font-display);font-size:2rem;font-weight:600}.reader-text{font-family:var(--font-text);font-size:var(--reading-size);font-weight:450;line-height:1.85;color:var(--ink);max-width:66ch}.reader-text.font-p{--reading-size: 1rem}.reader-text.font-m{--reading-size: 1.1rem}.reader-text.font-g{--reading-size: 1.3rem}.reader-text.style-classica{font-family:var(--font-display);font-weight:500;line-height:1.75;font-size:calc(var(--reading-size) + .12rem)}.verse{padding:.1rem .25rem;border-radius:6px;scroll-margin-top:90px}.verse sup{font-size:.68em;font-weight:800;color:var(--rose);margin-right:.3rem}.verse.target{background:var(--petal-soft);box-shadow:0 0 0 4px var(--petal-soft)}.verse-missing{color:var(--ink-3);font-style:italic;font-size:.85em}.reader-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.credit{font-size:.8rem;color:var(--ink-3);margin-top:2rem;max-width:68ch}.book-cols{display:grid;gap:1.5rem}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem}.book-btn,.chapter-btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.55rem .7rem;text-align:left;cursor:pointer;font-weight:600;font-size:.92rem;color:var(--ink)}.book-btn:hover,.chapter-btn:hover{background:var(--petal-soft)}.book-btn.current,.chapter-btn.current{border-color:var(--rose);background:var(--petal-soft)}.chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:.45rem}.chapter-btn{text-align:center;padding:.55rem 0}.picker{margin-bottom:1.5rem}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.auth-art{position:relative;overflow:hidden;padding:3rem;display:flex;flex-direction:column;justify-content:flex-end;gap:1rem;background:linear-gradient(165deg,var(--petal) 0%,var(--petal-soft) 45%,var(--lavender-soft) 100%)}.auth-art .vine{position:absolute;top:-20px;right:-30px;width:115%;max-width:720px}.auth-art .wordmark{font-size:4rem}.auth-art blockquote{margin:0;max-width:30rem;font-family:var(--font-text);font-size:1.1rem;line-height:1.6;color:var(--ink);position:relative}.auth-art cite{display:block;margin-top:.4rem;font-style:normal;font-family:var(--font-text);font-size:.85rem;font-weight:700;color:var(--rose-deep)}.auth-form-wrap{display:grid;place-items:center;padding:2rem 1.25rem}.auth-form{width:min(100%,400px);display:grid;gap:1.1rem}.auth-form h1{font-size:2.2rem}.auth-mobile-brand{display:none}@media (max-width: 860px){.auth{grid-template-columns:1fr}.auth-art{display:none}.auth-mobile-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem}.auth-mobile-brand img{width:46px;height:46px;border-radius:14px}.auth-form-wrap{align-items:start;padding-top:3.5rem}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#3b344152;display:grid;place-items:center;padding:1rem}.dialog{width:min(100%,480px);background:var(--paper);border-radius:var(--r-hero);box-shadow:var(--shadow-float);overflow:hidden}.dialog-art{background:linear-gradient(160deg,var(--petal-soft),var(--lavender-soft));height:150px;position:relative;overflow:hidden}.dialog-art .vine{position:absolute;width:100%;top:-10px;right:-20px}.dialog-body{padding:1.5rem 1.6rem 1.4rem;display:grid;gap:.8rem}.dots{display:flex;gap:6px}.dots span{width:8px;height:8px;border-radius:50%;background:var(--line-2)}.dots span.on{background:var(--rose);width:20px;border-radius:8px}.sway{transform-origin:90% 0%;animation:sway 9s ease-in-out infinite alternate}.sway-2{transform-origin:70% 10%;animation:sway 12s ease-in-out infinite alternate-reverse}.twinkle{animation:twinkle 4.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes sway{0%{transform:rotate(-1.2deg)}to{transform:rotate(1.4deg)}}@keyframes twinkle{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.settings-section{display:grid;gap:1rem}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-pill);padding:3px;background:var(--surface)}.seg button{border:0;background:none;padding:.4rem .9rem;border-radius:var(--r-pill);cursor:pointer;font-weight:650;color:var(--ink-2);min-height:36px}.seg button[aria-pressed=true]{background:var(--sage-deep);color:#fff}.progress{height:8px;border-radius:8px;background:var(--paper-2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--sage-deep);border-radius:8px;transition:width .2s}.dialog:focus{outline:none}
