@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-vietnamese-400-normal-CvGt0Ybw.woff2) format("woff2"),url(/assets/fraunces-vietnamese-400-normal-B65MOf9T.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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-ext-400-normal-D8gbi3Gu.woff2) format("woff2"),url(/assets/fraunces-latin-ext-400-normal-UihxqfOe.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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-vietnamese-500-normal-GOH_-EGq.woff2) format("woff2"),url(/assets/fraunces-vietnamese-500-normal-B-KbxExq.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-ext-500-normal-Z5DV8IzT.woff2) format("woff2"),url(/assets/fraunces-latin-ext-500-normal-BMcFk1Xs.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.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:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-vietnamese-400-italic-BTOWH4O7.woff2) format("woff2"),url(/assets/fraunces-vietnamese-400-italic-CO9zBbpA.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:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-ext-400-italic-jodr80a5.woff2) format("woff2"),url(/assets/fraunces-latin-ext-400-italic-CGHg0U1I.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:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-italic-ChpO6tcr.woff2) format("woff2"),url(/assets/fraunces-latin-400-italic-B7iDoVhm.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{--bg: #f7f5f0;--surface: #fffdf9;--ink: #30372f;--accent: #a45c68;--accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface));--muted: color-mix(in srgb, var(--ink) 62%, var(--surface));--line: color-mix(in srgb, var(--ink) 12%, transparent);--shadow: 0 1px 2px rgb(48 55 47 / 5%), 0 10px 30px -18px rgb(48 55 47 / 25%);--radius: 14px;--font-body: "DM Sans", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.grain:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}img,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.15;margin:0 0 .5rem;letter-spacing:-.01em}h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.15rem}p{margin:0 0 1rem}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:600;color:var(--accent);margin-bottom:.6rem}.container{width:min(1120px,100% - 2.5rem);margin-inline:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip-link{position:absolute;left:-999px;top:0;background:var(--surface);padding:.75rem 1rem;z-index:200}.skip-link:focus{left:1rem;top:1rem}[hidden]{display:none!important}::selection{background:color-mix(in srgb,var(--accent) 25%,transparent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.bg-layer{position:fixed;inset:0;z-index:-2;background-color:var(--bg);background-size:cover;background-position:center}.bg-layer:after{content:"";position:absolute;inset:0;background:rgb(247 245 240 / var(--overlay, 0))}.petals{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.petals span{position:absolute;top:-8vh;left:var(--x);width:10px;height:14px;border-radius:60% 40% 55% 45%;background:color-mix(in srgb,var(--accent) 35%,transparent);opacity:.5;animation:fall var(--d) linear infinite;animation-delay:var(--delay)}@keyframes fall{to{transform:translate3d(6vw,115vh,0) rotate(320deg)}}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.25rem}.brand em{color:var(--accent);font-style:italic}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--accent);background:var(--surface)}.brand-mark svg,.brand-mark img{width:18px;height:18px;object-fit:contain}.desktop-nav{display:flex;gap:.25rem}.desktop-nav a{padding:.5rem .85rem;border-radius:999px;font-size:.92rem;font-weight:500;color:var(--muted);transition:color .2s,background .2s}.desktop-nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}.desktop-nav a.active{color:var(--accent);background:var(--accent-soft)}.header-actions{display:flex;align-items:center;gap:.5rem}.account-chip{font-size:.82rem;font-weight:600;padding:.3rem .7rem;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.site-main{position:relative;z-index:2;min-height:calc(100vh - 160px);padding:2.5rem 0 4rem;transition:opacity .12s ease,transform .12s ease}.site-main.page-leaving{opacity:0;transform:translateY(4px)}.site-footer{position:relative;z-index:2;border-top:1px solid var(--line);padding:1.5rem 0 5.5rem;color:var(--muted);font-size:.85rem;text-align:center}.footer-dot{margin:0 .5rem;color:var(--accent)}.mobile-nav{display:none}.boot{position:fixed;inset:0;z-index:300;display:grid;place-content:center;text-align:center;background:var(--bg);transition:opacity .3s ease}.boot.done{opacity:0;pointer-events:none}.boot-names{font-family:var(--font-display);font-size:clamp(2rem,7vw,3rem);display:flex;gap:.8rem;align-items:baseline;justify-content:center}.boot-plus{color:var(--accent);font-style:italic}.boot p{color:var(--muted);margin-top:.5rem}.boot-line{width:120px;height:2px;margin:1rem auto 0;background:var(--line);position:relative;overflow:hidden;border-radius:2px}.boot-line:after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);animation:boot-slide 1.1s ease-in-out infinite}@keyframes boot-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.setup-screen{padding:4rem 0}@media(max-width:820px){.desktop-nav{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.68rem;font-weight:600;color:var(--muted);padding:.35rem .5rem;min-width:56px;border-radius:10px}.mobile-nav a svg{width:20px;height:20px}.mobile-nav a.active{color:var(--accent)}.site-main{padding:1.5rem 0 5.5rem}.container{width:min(1120px,100% - 1.5rem)}.header-inner{min-height:60px}.brand{font-size:1.1rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.65rem 1.2rem;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.92rem;transition:transform .15s ease,background .2s,border-color .2s,box-shadow .2s}.btn:active{transform:scale(.97)}.btn svg{width:17px;height:17px}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px -10px color-mix(in srgb,var(--accent) 80%,transparent)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.btn-danger{background:#b3403f;color:#fff}.btn-light{background:var(--surface);color:var(--ink)}.btn-small{min-height:36px;padding:.4rem .9rem;font-size:.82rem}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border:none;background:transparent;border-radius:50%;color:var(--muted);transition:background .2s,color .2s}.icon-btn:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.icon-btn svg{width:18px;height:18px}.text-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--accent);font-weight:600;font-size:.9rem}.text-link svg{width:16px;height:16px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap}.page-head h1{margin-bottom:.35rem}.toolbar{display:flex;gap:.75rem;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap}.search-box{flex:1;min-width:220px;display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.55rem 1rem}.search-box svg{width:18px;height:18px;color:var(--muted);flex:none}.search-box input{border:none;background:transparent;outline:none;width:100%;min-height:28px}.toolbar select,select{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:.5rem .8rem}.filter-chips{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.75rem;margin-bottom:.75rem;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;color:var(--muted);white-space:nowrap}.chip.active{background:var(--ink);color:var(--surface);border-color:var(--ink)}.result-count{color:var(--muted);font-size:.85rem}.load-more-wrap{display:flex;justify-content:center;margin-top:1.5rem}.empty-state,.error-state{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 70%,transparent)}.empty-mark{color:var(--accent);font-size:1.5rem;margin-bottom:.5rem}.empty-state p,.error-state p{color:var(--muted);max-width:42ch;margin-inline:auto}.error-state{border-style:solid;border-color:color-mix(in srgb,#b3403f 30%,transparent)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.skeleton-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;display:grid;gap:.75rem}.skeleton-card span{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--line) 25%,color-mix(in srgb,var(--ink) 6%,transparent) 50%,var(--line) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton-card span:first-child{height:120px}.skeleton-card span:last-child{width:60%}@keyframes shimmer{to{background-position:-200% 0}}.modal-backdrop{position:fixed;inset:0;z-index:150;background:#1e221d73;display:grid;place-items:center;padding:1rem;animation:fade-in .18s ease}.modal{background:var(--surface);border-radius:18px;width:min(560px,100%);max-height:min(88vh,900px);overflow:auto;padding:1.5rem;box-shadow:0 30px 80px -30px #00000073;animation:modal-in .22s cubic-bezier(.2,.8,.2,1)}.modal-wide{width:min(760px,100%)}.modal-sm{width:min(420px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}form label{display:grid;gap:.35rem;font-size:.85rem;font-weight:600;margin-bottom:.9rem}form input:not([type=checkbox]):not([type=color]),form textarea,form select{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:.7rem .85rem;font-weight:400;min-height:44px}form textarea{resize:vertical;line-height:1.6}form input:focus,form textarea:focus,form select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}.check-label{display:flex!important;align-items:center;gap:.6rem;flex-direction:row!important}.check-label input{width:18px;height:18px;accent-color:var(--accent)}.form-error{color:#b3403f;font-size:.85rem;background:color-mix(in srgb,#b3403f 8%,transparent);padding:.6rem .8rem;border-radius:8px}.hint{font-size:.75rem;color:var(--muted);font-weight:400}.toast-stack{position:fixed;top:80px;right:1rem;z-index:250;display:grid;gap:.5rem;width:min(360px,calc(100vw - 2rem))}.toast{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--ink);color:var(--surface);padding:.8rem 1rem;border-radius:12px;box-shadow:var(--shadow);font-size:.9rem;animation:toast-in .25s ease}.toast-error{background:#8f3a39}.toast .icon-btn{color:inherit;width:28px;height:28px;flex:none}.toast.leaving{opacity:0;transform:translate(12px);transition:.2s}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.note-body{white-space:pre-wrap;line-height:1.8;margin:1rem 0}.detail-media{width:100%;max-height:60vh;object-fit:contain;border-radius:12px;background:#000;margin:1rem 0}.detail-audio{width:100%;margin:1rem 0}.detail-caption{color:var(--muted)}.popup-note{text-align:left}.popup-kicker{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;color:var(--accent);font-weight:700}.music-widget{position:fixed;left:1rem;bottom:1rem;z-index:70;display:flex;align-items:center;gap:.5rem}.music-toggle{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--accent);box-shadow:var(--shadow);position:relative}.music-toggle svg{width:19px;height:19px}.music-bars{display:none;position:absolute;bottom:6px;right:6px;gap:1px;align-items:flex-end;height:8px}.music-bars b{width:2px;background:var(--accent);animation:bars .8s ease-in-out infinite alternate}.music-bars b:nth-child(2){animation-delay:.2s}.music-bars b:nth-child(3){animation-delay:.4s}.music-widget.playing .music-bars{display:flex}@keyframes bars{0%{height:2px}to{height:8px}}.music-panel{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.4rem .8rem;box-shadow:var(--shadow)}.music-widget[data-collapsed] .music-panel{display:none}.music-meta{display:grid;max-width:140px}.music-meta strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-meta span{font-size:.68rem;color:var(--muted)}.music-controls{display:flex;align-items:center;gap:.15rem}.music-controls input[type=range]{width:64px;accent-color:var(--accent)}.music-play{background:var(--accent-soft);color:var(--accent)}@media(max-width:820px){.music-widget{bottom:calc(72px + env(safe-area-inset-bottom));left:.75rem}.music-panel{max-width:calc(100vw - 90px)}.music-meta{max-width:90px}.toast-stack{top:70px}.modal{padding:1.15rem;border-radius:16px}}.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.75fr);align-items:center;gap:clamp(2rem,7vw,6rem);min-height:390px;padding:clamp(1rem,4vw,3.5rem) 0 3rem}.hero-copy{max-width:700px}.hero h1{max-width:15ch;font-size:clamp(2.8rem,7vw,5.3rem);line-height:1.02;margin-bottom:1.2rem}.hero-sub{font-size:clamp(1.05rem,2vw,1.25rem);color:var(--muted);max-width:54ch}.hero blockquote{margin:1.5rem 0 1.75rem;padding:.15rem 0 .15rem 1rem;border-left:2px solid var(--accent);font-family:var(--font-display);font-size:1.2rem;font-style:italic;color:color-mix(in srgb,var(--ink) 78%,var(--accent))}.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.6rem}.hero-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:48% 48% 14px 14px/35% 35% 14px 14px;padding:2rem 1.4rem 1.5rem;min-height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;transform:rotate(1.2deg)}.hero-card:before{content:"";position:absolute;inset:9px;border:1px solid var(--line);border-radius:inherit;pointer-events:none}.stamp{width:42px;height:42px;display:grid;place-items:center;color:var(--accent);border:1px solid var(--line);border-radius:50%;margin-bottom:.8rem}.stamp svg{width:18px}.hero-card-label{color:var(--muted);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .2rem}.hero-card-date{font-family:var(--font-display);font-size:1.15rem;margin:0}.hero-card-line{height:1px;width:52px;background:var(--accent);opacity:.5;margin:.8rem auto}.hero-card-note{font-weight:600;margin:0}.hero-card-note span{color:var(--muted);font-size:.78rem;font-weight:400}.dash-section{margin-top:3.4rem}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-head h2{margin:0}.message-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.message-item{padding:1.2rem 1.3rem;background:var(--surface);border:1px solid var(--line);border-radius:4px 14px 14px;box-shadow:0 8px 18px -16px #0000004d}.message-item.important{border-left:3px solid var(--accent)}.message-kind{font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:.5rem}.message-item h3{margin-bottom:.5rem}.message-item p{margin:0;color:var(--muted);white-space:pre-line;font-size:.92rem}.snippet-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.snippet{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:.9rem;min-width:0;padding:.7rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;transition:transform .2s,box-shadow .2s}.snippet:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.snippet-thumb{height:96px;overflow:hidden;display:grid;place-items:center;background:var(--accent-soft);border-radius:8px}.snippet-thumb img{width:100%;height:100%;object-fit:cover}.snippet-icon{color:var(--accent)}.snippet-icon svg{width:26px;height:26px}.snippet-body{min-width:0}.snippet-body time{color:var(--muted);font-size:.72rem}.snippet-body h3{margin:.2rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snippet-body p{color:var(--muted);margin:0;font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.date-list{display:grid;gap:.7rem}.date-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;background:var(--surface);border-bottom:1px solid var(--line)}.date-day{border-right:1px solid var(--line);display:grid;padding-right:.7rem}.date-day strong{color:var(--accent);font-family:var(--font-display);font-size:1.05rem}.date-day span,.date-info p{color:var(--muted);font-size:.78rem;margin:0}.date-info h3{margin:0 0 .2rem}.countdown{color:var(--accent);font-size:.85rem;text-align:right}.countdown strong{font-family:var(--font-display);font-size:1.5rem}.banner-strip{display:grid;gap:.75rem;margin:.5rem 0 2rem}.banner{min-height:200px;display:flex;align-items:flex-end;padding:1.5rem;background:var(--banner-image, var(--accent-soft));background-size:cover;background-position:center;position:relative;overflow:hidden;color:#fff}.banner:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#141814bf,#1418140d 85%)}.banner-text{position:relative;max-width:560px}.banner-text h3{font-size:1.5rem}.banner-text p{margin-bottom:.8rem}.notes-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.note-card{background:var(--surface);padding:1.25rem;border:1px solid var(--line);border-radius:3px 14px 14px;min-height:210px;cursor:pointer;transition:transform .18s,box-shadow .18s}.note-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.note-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.76rem;margin-bottom:.7rem}.note-card h3{font-size:1.25rem}.note-card>p{white-space:pre-line;color:var(--muted);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.note-author{color:var(--accent);font-size:.76rem}.card-actions{display:flex;justify-content:flex-end;gap:.1rem}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.memory-card{min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;cursor:pointer;box-shadow:0 4px 18px -18px #0006;transition:transform .2s,box-shadow .2s}.memory-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.memory-card.type-text{border-radius:4px 16px 16px}.memory-card.type-audio{border-radius:22px 8px}.memory-media{position:relative;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.memory-media.photo{aspect-ratio:4 / 3;background:#e9e3dc}.memory-media.photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.memory-card:hover .memory-media.photo img{transform:scale(1.025)}.memory-media.video{aspect-ratio:16 / 10;background:#242622}.memory-media.video video{width:100%;height:100%;object-fit:cover}.play-badge{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:#fff;background:#1e221da6;border:1px solid rgb(255 255 255 / 40%)}.play-badge svg{width:20px}.memory-media.audio{min-height:118px;gap:.8rem;padding:1rem;color:var(--accent);background:linear-gradient(125deg,var(--accent-soft),var(--surface));flex-wrap:wrap}.memory-media.audio>svg{width:28px;height:28px}.memory-media.audio audio{width:100%;height:34px}.memory-media.text{min-height:150px;align-items:flex-start;padding:1.3rem;background:#f0ece5;font-family:var(--font-display);font-size:1.05rem;font-style:italic}.memory-media.text p{margin:0}.memory-media.url{min-height:118px;justify-content:flex-start;gap:.75rem;padding:1.2rem;color:var(--accent);background:var(--accent-soft);overflow-wrap:anywhere}.memory-media.url svg{flex:none}.memory-body{position:relative;padding:.9rem 1rem 1rem}.memory-meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--muted);font-size:.72rem;margin-bottom:.4rem}.type-tag{display:inline-flex;align-items:center;gap:.3rem;color:var(--accent);font-weight:700}.type-tag svg{width:14px;height:14px}.memory-body h3{margin:0 0 .35rem;overflow-wrap:anywhere}.memory-body>p{color:var(--muted);font-size:.85rem;margin:0;overflow-wrap:anywhere}.memory-body .card-actions{position:absolute;top:.45rem;right:.5rem;background:color-mix(in srgb,var(--surface) 88%,transparent);border-radius:999px}.memory-card:has(.card-actions) .memory-meta{padding-right:74px}.login-wrap{min-height:66vh;display:grid;place-items:center;padding:2rem 0}.login-card{width:min(450px,100%);padding:clamp(1.5rem,5vw,2.5rem);background:var(--surface);border:1px solid var(--line);border-radius:18px 18px 18px 5px;box-shadow:var(--shadow)}.login-card h1{font-size:2.2rem}.login-card form{margin-top:1.5rem}.login-mark{width:48px;height:48px;border-radius:50%;color:var(--accent);background:var(--accent-soft);display:grid;place-items:center;margin-bottom:1rem}.login-mark svg{width:22px}.login-hint{margin-top:1.1rem;font-size:.8rem;color:var(--muted)}.chat-page{max-width:900px}.chat-shell{height:min(76vh,780px);min-height:480px;display:grid;grid-template-rows:auto 1fr auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.chat-head{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.chat-head h1{font-size:1.25rem;margin:0}.chat-head>a{margin-left:auto}.avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--accent);background:var(--accent-soft);font-family:var(--font-display);font-size:1.25rem}.chat-status{margin:0;font-size:.75rem;color:var(--muted)}.chat-status.online{color:#4c875e}.chat-messages{padding:1rem clamp(.8rem,4vw,2rem);overflow-y:auto;overscroll-behavior:contain;background-color:color-mix(in srgb,var(--bg) 55%,var(--surface))}.chat-loading{text-align:center;padding:2rem;color:var(--muted)}.chat-day{width:max-content;margin:1rem auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.25rem .75rem;color:var(--muted);font-size:.72rem}.bubble-row{display:flex;justify-content:flex-start;margin:.3rem 0}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:min(76%,520px);padding:.65rem .85rem .45rem;background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px;box-shadow:0 3px 10px -8px #000;overflow-wrap:anywhere}.bubble-row.mine .bubble{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 16%,transparent);border-radius:14px 14px 4px}.bubble.pending{opacity:.7}.bubble p{margin:0;white-space:pre-wrap}.bubble-meta{display:flex;justify-content:flex-end;align-items:center;gap:.45rem;margin-top:.2rem;color:var(--muted);font-size:.65rem}.ticks{display:inline-flex;align-items:center;gap:.15rem;color:var(--accent)}.ticks svg{width:14px;height:14px}.chat-compose{padding:.65rem .8rem;border-top:1px solid var(--line);background:var(--surface)}.compose-row{display:flex;align-items:flex-end;gap:.55rem}.compose-row textarea{min-height:44px;max-height:140px;resize:none;flex:1;border:1px solid var(--line);border-radius:18px;padding:.65rem .9rem;background:var(--bg);line-height:1.4}.send-btn{width:46px;padding:0;border-radius:50%;flex:none}@media(max-width:900px){.memory-grid,.notes-list,.message-list,.snippet-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.hero{grid-template-columns:1fr;gap:1.5rem;padding-top:1.4rem}.hero h1{font-size:clamp(2.7rem,14vw,4rem)}.hero-card{max-width:330px;min-height:230px;justify-self:center;width:84%}.dash-section{margin-top:2.4rem}.message-list,.snippet-row,.memory-grid,.notes-list{grid-template-columns:1fr}.snippet{grid-template-columns:86px 1fr}.snippet-thumb{height:86px}.date-item{grid-template-columns:70px minmax(0,1fr);gap:.7rem;padding:.8rem .2rem}.date-day{padding-right:.5rem}.countdown{grid-column:2;text-align:left;font-size:.78rem}.page-head{align-items:flex-start}.page-head>.btn,.page-head>a{width:100%}.toolbar{gap:.5rem}.search-box{min-width:100%}.memory-toolbar select{width:100%}.chat-shell{height:calc(100dvh - 145px);min-height:390px;margin-inline:-.15rem;border-radius:12px}.chat-messages{padding-inline:.7rem}.bubble{max-width:86%}}.admin-page{max-width:1180px}.admin-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:1.25rem;align-items:start}.admin-tabs{display:grid;gap:.25rem;position:sticky;top:84px}.admin-tab{display:flex;align-items:center;gap:.7rem;text-align:left;border:0;background:transparent;color:var(--muted);padding:.7rem .8rem;border-radius:8px;font-weight:600}.admin-tab svg{width:18px;height:18px}.admin-tab:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}.admin-tab.active{background:var(--accent-soft);color:var(--accent)}.admin-content{display:grid;gap:1rem;min-width:0}.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:clamp(1rem,3vw,1.5rem)}.admin-card>h2,.admin-card-head h2{font-size:1.45rem;margin:0 0 1.2rem}.admin-card form{max-width:720px}.admin-card form>.btn{margin-top:.25rem}.admin-card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.admin-card-head h2{margin:0}.admin-list{display:grid}.admin-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem 0;border-top:1px solid var(--line)}.admin-row>div:first-child{display:grid;min-width:0}.admin-row strong{overflow-wrap:anywhere}.admin-row span{font-size:.8rem;color:var(--muted)}.row-actions{display:flex;align-items:center;gap:.2rem;flex:none}.status-dot{font-size:.72rem!important;padding:.2rem .5rem;border-radius:999px;background:color-mix(in srgb,#777 12%,transparent)}.status-dot.on{color:#3d7950;background:color-mix(in srgb,#3d7950 12%,transparent)}.admin-loading{color:var(--muted);padding:2rem;text-align:center}.color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.color-grid label{min-width:0}.color-grid input[type=color]{width:100%;height:45px;border:1px solid var(--line);border-radius:8px;padding:.25rem;background:var(--bg)}.color-grid:has(select){grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.admin-layout{grid-template-columns:1fr}.admin-tabs{position:static;display:flex;overflow-x:auto;padding:0 0 .45rem;border-bottom:1px solid var(--line);scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{flex:none;padding:.55rem .75rem;font-size:.82rem}.admin-tab svg{width:16px}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-row{align-items:flex-start}.row-actions{gap:0}.status-dot{display:none}}
