
.chakra-visualizer-root{background:#000;margin:0}.chakra-app-loading{color:#f5dfd0;letter-spacing:.08em;background:radial-gradient(circle at 50% 45%,#c4281e33,#0000 34%),#070706;place-content:center;justify-items:center;gap:14px;min-height:100svh;font-family:Georgia,Times New Roman,serif;display:grid}.chakra-app-loading span{color:#ef4b3f;border:1px solid #e6403273;border-radius:50%;place-items:center;width:56px;height:56px;font-size:1.6rem;display:grid;box-shadow:0 0 32px #e6403233}.chakra-app-loading strong{font-size:.82rem;font-weight:500}.camera-view #webcam{object-fit:cover;width:100vw;height:100vh;position:absolute;top:0;left:0;transform:scaleX(-1)}.camera-view #landmark-canvas{object-fit:cover;pointer-events:none;width:100vw;height:100vh;position:absolute;top:0;left:0;transform:scaleX(-1)}.fx{pointer-events:none;mix-blend-mode:screen;position:absolute;transform:translate(-50%,-50%)}#rasengan{width:1600px}#chidori{width:2400px}#fireball{filter:brightness(4)saturate(3);width:2000px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
.favorite-composer-backdrop,.favorites-drawer-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1a16106b;position:fixed;inset:0}.favorite-composer-backdrop{place-items:center;padding:20px;display:grid}.favorite-composer{border:1px solid var(--color-ink0);border-top:4px double var(--color-ink0);background:var(--color-bg1);width:min(560px,100%);max-height:min(720px,100dvh - 40px);padding:24px;overflow:auto;box-shadow:0 24px 80px #1a16104d}.favorite-composer-heading,.favorites-drawer-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.favorite-kicker{color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;font-size:.68rem;font-weight:700}.favorite-composer h2,.favorites-drawer h2{font-family:var(--font-serif);line-height:1.2}.favorite-icon-button{border:1px solid var(--color-line);width:36px;height:36px;color:var(--color-ink0);cursor:pointer;background:0 0;flex:none;place-items:center;font-size:1.4rem;display:inline-grid}.favorite-composer blockquote,.favorite-card blockquote{border-left:3px solid var(--color-accent);color:var(--color-ink0);font-family:var(--font-serif);white-space:pre-wrap;margin-top:20px;padding-left:16px;font-size:1.05rem;line-height:1.8}.favorite-source{color:var(--color-ink2);margin-top:8px;font-size:.78rem}.favorite-expand-button{color:var(--color-accent);cursor:pointer;background:0 0;border:0;margin-top:20px;font-size:.85rem}.favorite-composer-fields,.favorite-editor{gap:12px;margin-top:18px;display:grid}.favorite-composer-fields label{color:var(--color-ink1);gap:6px;font-size:.78rem;display:grid}.favorite-composer textarea,.favorite-composer input,.favorite-editor textarea,.favorite-editor input,.favorites-filters input,.favorites-filters select{border:1px solid var(--color-line);background:var(--color-bg0);width:100%;color:var(--color-ink0);font:inherit;border-radius:0;padding:9px 10px}.favorite-composer-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.favorite-error{color:var(--color-hot);margin-top:12px;font-size:.82rem}.favorites-drawer-backdrop{justify-content:flex-end;display:flex}.favorites-drawer{border-left:1px solid var(--color-ink0);background:var(--color-bg0);flex-direction:column;width:min(520px,100vw);height:100dvh;display:flex;overflow:hidden;box-shadow:-24px 0 80px #1a16103d}.favorites-drawer-header{padding:max(22px, env(safe-area-inset-top)) 22px 18px;border-bottom:3px double var(--color-ink0);background:var(--color-bg1)}.favorites-drawer-header p{color:var(--color-ink2);margin-top:4px;font-size:.75rem}.favorites-filters{border-bottom:1px solid var(--color-line);background:var(--color-bg1);gap:10px;padding:16px 22px;display:grid}.favorites-search-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.favorites-filter-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.favorites-list{flex:1;padding:6px 22px 22px;overflow-y:auto}.favorite-card{border-bottom:1px solid var(--color-line);padding:18px 0}.favorite-card blockquote{margin-top:0}.favorite-note{background:var(--color-bg2);color:var(--color-ink1);white-space:pre-wrap;margin-top:12px;padding:10px 12px;font-size:.85rem}.favorite-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.favorite-tags span{border:1px solid var(--color-accentdim);background:var(--color-accentsoft);color:var(--color-accent);padding:2px 7px;font-size:.7rem}.favorite-source-missing{color:var(--color-hot);margin-top:10px;font-size:.75rem}.favorite-card-actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.favorite-card-actions button{color:var(--color-accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;font-size:.76rem;text-decoration:underline}.favorite-card-actions button:disabled{color:var(--color-ink2);cursor:not-allowed;text-decoration:none}.favorite-card-actions .favorite-delete{color:var(--color-hot);margin-left:auto}.favorite-editor>div{justify-content:flex-end;gap:8px;display:flex}.favorites-empty{color:var(--color-ink2);text-align:center;padding:48px 0}.favorites-drawer-error{margin:12px 22px 0}.favorites-pagination{padding:12px 22px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--color-line);background:var(--color-bg1);color:var(--color-ink2);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.favorite-highlight{color:var(--color-ink0)!important;background:#ead56b!important}.favorite-selection-button{white-space:nowrap}.tollow-sync-status{color:var(--color-ink2);white-space:nowrap;font-size:.7rem}.tollow-sync-status[data-status=pending]{color:var(--color-accent)}.tollow-sync-status[data-status=error]{color:var(--color-hot)}.favorites-header-button{border:1px solid var(--color-line);background:var(--color-bg0);color:var(--color-ink0);cursor:pointer;padding:6px 9px;font-size:.75rem}.header-account-tools{align-items:center;gap:8px;display:flex}.favorite-icon-button:focus-visible,.favorite-expand-button:focus-visible,.favorite-card-actions button:focus-visible,.favorites-header-button:focus-visible,.favorite-composer input:focus-visible,.favorite-composer textarea:focus-visible,.favorites-filters input:focus-visible,.favorites-filters select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (max-width:768px){.favorites-drawer{border-left:0;width:100vw}.favorites-filter-row{grid-template-columns:1fr}.favorite-composer-backdrop{align-items:end;padding:0}.favorite-composer{width:100%;max-height:86dvh;padding-bottom:max(24px, env(safe-area-inset-bottom))}.header-account-tools{gap:4px}.tollow-sync-status{display:none}}.tollow-root{--color-bg0:#f6f1e6;--color-bg1:#fbf7ee;--color-bg2:#efe7d5;--color-line:#cfc4ab;--color-linesoft:#ddd3bd;--color-ink0:#1a1610;--color-ink1:#463e31;--color-ink2:#8a7f6c;--color-accent:#8e2318;--color-accent-hover:#a52a1d;--color-accentdim:#bb8d80;--color-accentsoft:#f0e2da;--color-up:#1f6b3a;--color-up-hover:#185a30;--color-hot:#c2410c;--font-sans:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif:Georgia, "Times New Roman", "Songti SC", "STSong", "SimSun", serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg0);color:var(--color-ink0);min-height:100vh;line-height:1.6}.tollow-app{background:var(--color-bg0)}.tollow-boot{min-height:100svh;color:var(--color-ink1);background:linear-gradient(var(--color-linesoft) 1px, transparent 1px) 0 0 / 100% 32px, var(--color-bg0);font-family:var(--font-serif);place-content:center;justify-items:center;gap:14px;display:grid}.tollow-boot-mark{border:1px solid var(--color-ink0);width:52px;height:52px;color:var(--color-accent);background:var(--color-bg1);box-shadow:5px 5px 0 var(--color-line);place-items:center;font-size:1.75rem;font-weight:700;line-height:1;display:grid}.tollow-boot-label{letter-spacing:.08em;font-size:.9rem}.tollow-root *{box-sizing:border-box;margin:0;padding:0}.App,.App *{border-color:var(--color-line)}.tollow-root .container{max-width:960px;padding:0 var(--spacing-lg);margin:0 auto}.btn{border:1px solid var(--color-line);cursor:pointer;background:var(--color-bg1);color:var(--color-ink0);letter-spacing:.02em;border-radius:2px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--color-bg2);border-color:var(--color-ink2)}.btn-primary{background:var(--color-accent);color:var(--color-bg0);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background:var(--color-ink0);color:var(--color-bg0);border-color:var(--color-ink0)}.btn-secondary:hover{background:var(--color-ink1);border-color:var(--color-ink1)}.btn-success{background:var(--color-up);color:var(--color-bg0);border-color:var(--color-up)}.btn-success:hover{background:var(--color-up-hover);border-color:var(--color-up-hover)}.text-center{text-align:center}.mb-4{margin-bottom:1.5rem}.btn:focus-visible,.nav-link:focus-visible,.book-card:focus-visible,.upload-area:focus-visible,.tab-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.tollow-root::-webkit-scrollbar{width:6px;height:6px}.tollow-root ::-webkit-scrollbar{width:6px;height:6px}.tollow-root::-webkit-scrollbar-track{background:var(--color-bg1)}.tollow-root ::-webkit-scrollbar-track{background:var(--color-bg1)}.tollow-root::-webkit-scrollbar-thumb{background:var(--color-line);border-radius:3px}.tollow-root ::-webkit-scrollbar-thumb{background:var(--color-line);border-radius:3px}.tollow-root::-webkit-scrollbar-thumb:hover{background:var(--color-ink2)}.tollow-root ::-webkit-scrollbar-thumb:hover{background:var(--color-ink2)}@media (prefers-reduced-motion:reduce){.tollow-root *,.tollow-root :before,.tollow-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}