:root{color-scheme:light;--pink-50: #fff2f9;--pink-100: #ffe3f2;--pink-200: #ffd3ea;--pink-300: #ff9fd0;--pink-500: #ff4fa3;--pink-600: #e11d80;--pink-700: #c4249f;--plum-900: #2c2342;--plum-700: #453a5f;--plum-500: #5b5170;--plum-300: #7a6f96;--mint-500: #17b0a0;--amber-500: #f0a020;--danger-500: #d92d4a;--danger-50: #fff0f2;--bg: #fffdf9;--bg-sunk: #fdf6ef;--surface: #ffffff;--surface-2: #fff8fc;--surface-hover: #fff2f9;--border: #f2dcec;--border-strong: #e6c8de;--ink: var(--plum-900);--ink-2: var(--plum-500);--ink-3: var(--plum-300);--accent: var(--pink-700);--accent-hover: var(--pink-600);--on-accent: #ffffff;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(44, 35, 66, .06), 0 1px 3px rgba(44, 35, 66, .04);--shadow: 0 4px 16px rgba(44, 35, 66, .08);--shadow-lg: 0 18px 48px rgba(44, 35, 66, .18);--ring: rgba(255, 79, 163, .28);--font: "Nunito", "Quicksand", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--shell-max: 1180px;--rail: 232px;--tabbar: 62px;--header: 58px}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--pink-50: #2a1830;--pink-100: #35203c;--pink-200: #4a2b52;--bg: #171225;--bg-sunk: #100d1c;--surface: #211a33;--surface-2: #271f3c;--surface-hover: #2f2547;--border: #362b4f;--border-strong: #46386610;--ink: #f6f0fb;--ink-2: #c3b7d6;--ink-3: #9587ad;--accent: #ff7ab8;--accent-hover: #ff98c8;--on-accent: #26102a;--danger-500: #ff7089;--danger-50: #33141f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 52px rgba(0, 0, 0, .6);--ring: rgba(255, 122, 184, .38)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}h1,h2,h3,h4{margin:0;line-height:1.22;letter-spacing:-.015em;font-weight:800}h1{font-size:1.55rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{margin:0 0 .75em}p:last-child{margin-bottom:0}a{color:var(--accent);text-decoration:none;font-weight:700}a:hover{text-decoration:underline}img{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--pink-500);outline-offset:2px;border-radius:6px}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.small{font-size:.84rem}.tiny{font-size:.76rem}.strong{font-weight:800}.center{text-align:center}.mono{font-family:var(--font-mono)}.clamp-1{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.clamp-2,.clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;min-width:0}.clamp-2{-webkit-line-clamp:2}.clamp-3{-webkit-line-clamp:3}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:6px}.stack-lg{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:10px}.row-top{display:flex;align-items:flex-start;gap:10px}.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.spacer{flex:1 1 auto}.page{padding:16px;max-width:720px;margin:0 auto;width:100%}.page-wide{max-width:1080px}.section-title{font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.divider{height:1px;background:var(--border);border:0;margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-pad{padding:16px}.tile{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;min-height:42px;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--accent);color:var(--on-accent);font-weight:800;cursor:pointer;transition:background .12s ease,transform 80ms ease,opacity .12s ease;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--accent-hover);text-decoration:none}.btn:active{transform:translateY(1px)}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent}.btn-ghost:hover{background:var(--surface-hover);color:var(--ink)}.btn-danger{background:var(--danger-500);color:#fff}.btn-danger:hover{background:var(--danger-500);filter:brightness(1.08)}.btn-sm{min-height:34px;padding:6px 14px;font-size:.86rem}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-pill);border:0;background:transparent;color:var(--ink-2);cursor:pointer;font-size:1.05rem;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--ink)}.icon-btn[aria-pressed=true]{color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:.82rem;font-weight:800;color:var(--ink-2)}.input,.textarea,.select{width:100%;padding:11px 14px;border-radius:var(--radius);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--pink-500);box-shadow:0 0 0 3px var(--ring)}.textarea{resize:vertical;min-height:96px;line-height:1.45}.input-code{font-family:var(--font-mono);font-size:1.6rem;letter-spacing:.5em;text-align:center;padding-left:.5em}.hint{font-size:.8rem;color:var(--ink-3)}.error-text{color:var(--danger-500);font-size:.86rem;font-weight:700}.banner{border-radius:var(--radius);padding:10px 14px;font-size:.88rem;font-weight:700;border:1px solid var(--border-strong);background:var(--surface-2)}.banner-error{background:var(--danger-50);border-color:var(--danger-500);color:var(--danger-500)}.banner-ok{background:var(--pink-50);border-color:var(--pink-200);color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);background:var(--pink-50);border:1px solid var(--pink-200);color:var(--accent);font-size:.78rem;font-weight:800;white-space:nowrap}.chip-neutral{background:var(--surface-2);border-color:var(--border);color:var(--ink-2)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:10px 14px;font-weight:800;color:var(--ink-3);cursor:pointer;border-bottom:2.5px solid transparent;white-space:nowrap}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:var(--ink)}.avatar{--size: 40px;width:var(--size);height:var(--size);flex:0 0 var(--size);border-radius:var(--radius-pill);background:var(--pink-100);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:calc(var(--size) * .5);overflow:hidden;border:1px solid var(--border);-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{--size: 30px}.avatar-lg{--size: 76px}.avatar-xl{--size: 104px}.empty{text-align:center;padding:44px 22px;color:var(--ink-2)}.empty-emoji{font-size:2.6rem;line-height:1;margin-bottom:10px}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-hover) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--pink-200);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.splash{min-height:100dvh;display:grid;place-items:center;gap:14px;background:var(--bg)}.toast-host{position:fixed;left:50%;bottom:calc(var(--tabbar) + 18px);transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:min(420px,calc(100vw - 32px))}.toast{background:var(--plum-900);color:#fff;padding:11px 16px;border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);font-weight:700;font-size:.88rem;text-align:center;animation:toast-in .18s ease-out}.toast-error{background:var(--danger-500)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c133073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:70;display:grid;place-items:center;padding:18px}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(520px,100%);max-height:min(86dvh,760px);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-body{padding:16px;overflow:auto}.modal-foot{display:flex;gap:10px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border)}.shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.shell-body{flex:1 1 auto;display:flex;width:100%;max-width:var(--shell-max);margin:0 auto;gap:24px;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom))}.appbar{position:sticky;top:0;z-index:40;height:var(--header);display:flex;align-items:center;gap:8px;padding:0 12px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--border)}.appbar-title{font-weight:900;font-size:1.02rem;letter-spacing:-.01em}.wordmark{font-weight:900;font-size:1.15rem;letter-spacing:-.03em;background:linear-gradient(92deg,var(--pink-700),var(--pink-500));-webkit-background-clip:text;background-clip:text;color:transparent}.rail{display:none;width:var(--rail);flex:0 0 var(--rail);position:sticky;top:var(--header);align-self:flex-start;height:calc(100dvh - var(--header));padding:14px 8px;flex-direction:column;gap:2px;overflow-y:auto}.rail-link{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-pill);color:var(--ink-2);font-weight:800;text-decoration:none}.rail-link:hover{background:var(--surface-hover);color:var(--ink);text-decoration:none}.rail-link.active{background:var(--pink-50);color:var(--accent)}.rail-icon{font-size:1.15rem;width:1.4em;text-align:center}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:50;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px);border-top:1px solid var(--border)}.tabbar-link{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-3);font-size:.66rem;font-weight:800;text-decoration:none;position:relative}.tabbar-link.active{color:var(--accent)}.tabbar-icon{font-size:1.3rem;line-height:1}.nav-badge{position:absolute;top:4px;left:55%;min-width:17px;height:17px;padding:0 4px;border-radius:var(--radius-pill);background:var(--danger-500);color:#fff;font-size:.62rem;font-weight:900;display:grid;place-items:center}.rail-link .nav-badge{position:static;margin-left:auto}.main{flex:1 1 auto;min-width:0}@media(min-width:900px){.rail{display:flex}.tabbar{display:none}.shell-body{padding-bottom:24px}}.media-frame{background:var(--bg-sunk);border-radius:var(--radius);overflow:hidden;position:relative}.media-frame img,.media-frame video{width:100%;height:auto;display:block}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}.square{aspect-ratio:1 / 1;object-fit:cover;width:100%}.link-plain{color:inherit;font-weight:inherit;text-decoration:none}.link-plain:hover{text-decoration:none}.pressable{cursor:pointer}.pressable:active{transform:scale(.995)}.scroll-x{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.signin{min-height:100dvh;display:grid;grid-template-columns:1fr;background:var(--bg)}.signin-art{display:none}.signin-panel{display:flex;flex-direction:column;justify-content:center;padding:28px 20px calc(28px + env(safe-area-inset-bottom));max-width:480px;width:100%;margin:0 auto}.signin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:26px 24px}.signin-or{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--ink-3);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.signin-or:before,.signin-or:after{content:"";flex:1 1 auto;height:1px;background:var(--border)}@media(min-width:860px){.signin{grid-template-columns:1.05fr .95fr}.signin-art{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:48px;color:#fff;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.28),transparent 46%),radial-gradient(circle at 82% 78%,rgba(255,255,255,.18),transparent 42%),linear-gradient(148deg,var(--pink-700),var(--pink-500) 58%,#8b3bd6)}.signin-art-title{font-size:2.35rem;font-weight:900;letter-spacing:-.03em;max-width:12ch}.signin-art-body{font-size:1.02rem;max-width:34ch;opacity:.94}.signin-beads{display:flex;gap:8px;font-size:2rem;margin-bottom:8px}.signin-beads span{animation:bead-bob 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * .12s);filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}@keyframes bead-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.signin-panel{max-width:520px;padding:48px}}.rail-account{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--bg)}.rail-account .btn-ghost{color:var(--danger-500)}
