:root{--paper:#f6f2ea;--paper-elevated:#fffdf9;--ink:#17150f;--ink-soft:#3a362d;--muted:#5c574c;--muted-2:#938c7d;--line:#e2dbcc;--line-strong:#d6cebc;--brick:#a34a2a;--brick-deep:#8e3d22;--brick-soft:#f2e3db;--teal:#2c6660;--teal-deep:#22544f;--teal-soft:#deeae7;--danger:#9b2c2c;--font-serif:"Newsreader", Georgia, serif;--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius-sm:9px;--radius:12px;--radius-lg:14px;--radius-xl:18px;--touch:44px;--nav-h:76px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--page-x:16px;--page-top:12px;--page-bottom:24px;--section-gap:16px;--stack-gap:12px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-wrap:pretty;margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:var(--brick);text-decoration:none}img,video{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brick);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.brand-wordmark{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);font-weight:400;line-height:1}.brand-wordmark-pjm{color:var(--brick)}.brand-wordmark.on-dark{color:#fbf8f2}.brand-wordmark.on-dark .brand-wordmark-pjm{color:#d6a98f}.brand-lockup{color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-lockup img{flex-shrink:0;display:block}:root{--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--dur-fast:.14s;--dur:.22s;--dur-slow:.36s}@media (prefers-reduced-motion:no-preference){.fade-in{animation:fadeIn var(--dur-slow) var(--ease-out) both}.fade-up{animation:fadeUp var(--dur-slow) var(--ease-out) both}.slide-in-right{animation:slideInRight var(--dur-slow) var(--ease-out) both}.stagger>*{animation:fadeUp var(--dur-slow) var(--ease-out) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(n+7){animation-delay:.22s}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes softPulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.btn-primary,.btn-secondary{transition:transform var(--dur-fast) var(--ease-soft), background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), opacity var(--dur-fast) var(--ease-soft)}@media (prefers-reduced-motion:no-preference){.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled){transform:translateY(-1px)}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled){transform:translateY(0)}}.btn-primary:hover:not(:disabled){box-shadow:0 8px 20px -10px #17150f73}.chip{transition:background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft), transform var(--dur-fast) var(--ease-soft)}@media (prefers-reduced-motion:no-preference){.chip:hover{transform:translateY(-1px)}}a,button{transition:color var(--dur-fast) var(--ease-soft)}.boot-screen{min-height:100dvh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.boot-mark{border-radius:12px;display:block}.boot-kicker{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);font-size:20px}.btn-primary{background:var(--ink);color:var(--paper);border-radius:11px;padding:14px;font-size:14px;font-weight:500}.btn-primary:disabled{opacity:.6}.btn-secondary{color:var(--ink);border:1px solid var(--ink);background:0 0;border-radius:11px;padding:14px;font-size:14px;font-weight:500}.chip{background:var(--paper-elevated);border:1px solid var(--line);color:var(--muted);border-radius:99px;flex:none;align-items:center;min-height:34px;padding:8px 14px;font-size:12.5px;display:inline-flex}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:500}.bottom-nav{z-index:50;padding:8px 6px calc(10px + var(--safe-bottom));background:var(--paper-elevated);border-top:1px solid var(--line);padding-left:max(6px, var(--safe-left));padding-right:max(6px, var(--safe-right));grid-template-columns:repeat(5,1fr);align-items:end;display:grid;position:fixed;bottom:0;left:0;right:0;transform:none}.bn-item{letter-spacing:.01em;color:var(--muted-2);min-height:var(--touch);flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;padding:4px 2px 2px;font-size:10px;text-decoration:none;display:flex}.bn-item.active{color:var(--brick);font-weight:600}.bn-icon{border:1.8px solid;width:16px;height:16px;display:block}.bn-grid{border-radius:3px}.bn-search{border-radius:50%}.bn-cat{border-radius:3px;transform:rotate(45deg)}.bn-spaces{border-radius:3px;position:relative;transform:rotate(45deg)}.bn-spaces:after{content:"";opacity:.55;border:1.2px solid;border-radius:2px;position:absolute;inset:3px}.bn-me{border-radius:50% 50% 40% 40%}.bn-record{color:var(--muted-2)}.bn-plus{background:var(--brick);width:44px;height:44px;color:var(--paper);border-radius:50%;justify-content:center;align-items:center;margin-top:-16px;font-size:24px;font-weight:400;line-height:1;display:flex;box-shadow:0 6px 16px -6px #a34a2a8c}.desk-sidebar{border-right:1px solid var(--line);background:var(--paper);flex-direction:column;flex:0 0 252px;align-self:flex-start;gap:22px;width:252px;min-height:100dvh;max-height:100dvh;padding:26px 18px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.desk-brand-lockup{align-items:flex-start;gap:12px}.desk-brand-word{font-size:22px;display:block}.desk-side-title{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--muted);margin-top:4px;font-size:15px}.desk-primary{flex-direction:column;gap:2px;display:flex}.desk-nav-item{color:var(--ink-soft);transition:background-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);border-radius:10px;align-items:center;padding:9px 12px;font-size:14px;text-decoration:none;display:flex}.desk-nav-item:hover{color:var(--ink);background:#17150f0d}.desk-nav-item.on{background:var(--ink);color:var(--paper);font-weight:500}.desk-divider{background:var(--line);height:1px;margin:2px 0}.desk-smart{flex-direction:column;gap:3px;display:flex}.desk-smart-item{color:var(--ink-soft);text-align:left;width:100%;transition:background-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);border-radius:9px;justify-content:space-between;align-items:center;padding:8px 11px;font-size:13.5px;display:flex}.desk-smart-item:hover{background:#17150f0d}.desk-smart-item.on{background:var(--ink);color:var(--paper)}.desk-count{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.desk-smart-item.on .desk-count{color:#b9b0a0}.desk-block{flex-direction:column;gap:10px;display:flex}.desk-cat-list{flex-direction:column;gap:4px;display:flex}.desk-check{color:var(--ink-soft);text-align:left;transition:background-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);border-radius:8px;align-items:center;gap:9px;padding:6px 4px;font-size:13px;display:flex}.desk-check:hover{background:#17150f0a}.desk-check.on{color:var(--brick-deep);font-weight:500}.desk-box{width:14px;height:14px;transition:background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);border:1.4px solid #c4bba8;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}.desk-check.on .desk-box{background:var(--brick);border-color:var(--brick);color:var(--paper)}.desk-more{color:var(--muted-2);transition:color var(--dur) var(--ease-soft);padding:6px 4px 2px 27px;font-size:12px;text-decoration:none}.desk-more:hover{color:var(--brick)}.desk-tags{flex-wrap:wrap;gap:6px;display:flex}.desk-tag{border:1px solid var(--line);color:var(--muted);transition:background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);background:0 0;border-radius:99px;padding:5px 10px;font-size:11.5px}.desk-tag:hover{border-color:var(--line-strong);transform:translateY(-1px)}.desk-tag.on{background:var(--brick);border-color:var(--brick);color:var(--paper);font-weight:500}.desk-shortcuts{font-family:var(--font-mono);color:var(--muted-2);border-top:1px solid var(--line);margin-top:auto;padding-top:14px;font-size:10px;line-height:1.9}.desk-shortcuts kbd{min-width:1.1em;color:var(--muted);font-family:inherit;display:inline-block}.desk-side-footer{align-items:center;gap:8px;display:flex}.desk-footer-record{text-align:center;background:var(--brick);color:var(--paper);transition:background-color var(--dur) var(--ease-soft), transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:11px;flex:1;padding:12px;font-size:13.5px;font-weight:500;text-decoration:none}.desk-footer-record:hover{background:var(--brick-deep);transform:translateY(-1px);box-shadow:0 8px 18px -10px #a34a2ab3}.loop-media{border-radius:var(--radius-lg);border:1px solid var(--line);background:repeating-linear-gradient(135deg,#e6dfd1 0 5px,#f0ebe0 5px 10px);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.loop-media.fit-tile{aspect-ratio:3/4}.loop-media.fit-detail{aspect-ratio:auto;background:#1a1814;width:100%;max-height:min(70vh,720px)}.loop-media.empty{min-height:120px}.loop-placeholder{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.loop-el{object-fit:contain;object-position:center;background:0 0;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.loop-media.fit-detail .loop-el{width:auto;max-width:100%;height:auto;max-height:min(70vh,720px);margin:0 auto}.loop-badge{font-family:var(--font-mono);letter-spacing:.1em;color:var(--paper);text-transform:uppercase;z-index:2;background:#17150fb8;border-radius:4px;padding:2px 5px;font-size:8px;position:absolute;top:7px;left:7px}.loop-caption{color:#fbf8f2;font-family:var(--font-serif);pointer-events:none;z-index:2;padding:20px 12px 10px;font-size:16px;line-height:1.25;position:absolute;bottom:0;left:0;right:0}.loop-caption.style-bar{background:linear-gradient(#17150f00,#17150fd9)}.loop-caption.style-outline{text-shadow:0 1px 2px #000,0 0 6px #0009;background:0 0;padding-bottom:10px}.loop-play{width:36px;height:36px;color:var(--ink);z-index:2;background:#fbf8f2eb;border-radius:50%;font-size:12px;position:absolute;top:8px;right:8px}.desk-panel{border-left:1px solid var(--line);background:var(--paper);flex-direction:column;flex:0 0 330px;align-self:flex-start;width:330px;min-height:100dvh;max-height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.desk-panel-media{flex-shrink:0;position:relative}.desk-panel-loop{border:none;border-bottom:1px solid var(--line);background:#1a1814;border-radius:0;min-height:200px;max-height:min(52vh,420px)}.desk-panel-loop.fit-detail .loop-el{max-height:min(52vh,420px)}.desk-panel-media-actions{z-index:2;gap:8px;display:flex;position:absolute;top:14px;right:14px}.desk-icon-btn{width:30px;height:30px;color:var(--ink);transition:transform var(--dur-fast) var(--ease-soft), background-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);background:#fbf8f2eb;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;box-shadow:0 2px 8px #17150f14}.desk-icon-btn:hover{background:#fff;transform:scale(1.06);box-shadow:0 4px 12px #17150f1f}.desk-panel-body{flex-direction:column;gap:16px;padding:20px;display:flex}.desk-label{font-family:var(--font-mono);letter-spacing:.18em;color:var(--muted-2);font-size:9.5px}.desk-panel-titles{font-family:var(--font-serif);letter-spacing:-.01em;margin:6px 0 0;font-size:26px;font-weight:400;line-height:1.25}.desk-panel-pills{flex-wrap:wrap;gap:6px;display:flex}.desk-panel-note{background:var(--paper-elevated);border:1px solid var(--line);border-radius:12px;padding:13px 14px}.desk-panel-note p{font-family:var(--font-serif);color:var(--ink-soft);margin:6px 0 0;font-size:14.5px;font-style:italic;line-height:1.55}.desk-panel-actions{gap:8px;display:flex}.desk-panel-actions .btn-primary,.desk-panel-actions .btn-secondary{border-radius:10px;flex:1;padding:11px;font-size:13px}.desk-panel-meta{font-family:var(--font-mono);color:var(--muted-2);border-top:1px solid var(--line);padding-top:12px;font-size:10px}.desk-panel-status{color:var(--muted);padding:24px}.desk-panel-close{background:var(--paper-elevated);border:1px solid var(--line);border-radius:50%;width:30px;height:30px;position:absolute;top:12px;right:12px}.sign-card{color:inherit;text-align:left;cursor:pointer;border:none;border:1px solid var(--line);width:100%;transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), border-color var(--dur) var(--ease-soft);background:0 0;border-radius:16px;padding:0;text-decoration:none;display:block;position:relative;overflow:hidden}.sign-card-media{border:none;border-radius:0}.sign-card-caption{color:#fbf8f2;pointer-events:none;z-index:1;background:linear-gradient(#17150f00,#17150fe6);padding:24px 12px 12px;position:absolute;bottom:0;left:0;right:0}.sign-card-title{font-family:var(--font-serif);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:14.5px;line-height:1.3;display:-webkit-box;overflow:hidden}.sign-card-dot{background:var(--brick);z-index:2;border-radius:50%;width:12px;height:12px;position:absolute;top:10px;right:10px;box-shadow:0 0 0 2px #f6f2ea80}@media (prefers-reduced-motion:no-preference){.sign-card:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 16px 32px -18px #17150f73}}.sign-card:focus-visible{outline:2px solid var(--brick);outline-offset:3px}.sign-card.selected{border-color:var(--brick);border-width:2px;box-shadow:0 12px 28px -16px #a34a2a8c}.sign-card.selected:hover{border-color:var(--brick)}.library-page{padding:var(--page-top) var(--page-x) var(--page-bottom)}.library-page.desktop{padding:26px 30px 40px}.lib-header{padding-top:var(--space-2)}.lib-brand-row{align-items:center;gap:10px;margin-bottom:6px;display:flex}.lib-brand-word{font-size:15px}.lib-kicker{font-family:var(--font-mono);letter-spacing:.2em;color:var(--brick);text-transform:uppercase;margin-bottom:2px;font-size:9.5px}.lib-chip-link{align-items:center;text-decoration:none;display:inline-flex}.lib-title-row{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.lib-title-row h1{font-family:var(--font-serif);letter-spacing:-.01em;margin:6px 0 0;font-size:28px;font-weight:400;line-height:1.15}.lib-meta{color:var(--muted-2);margin-top:4px;font-size:12px}.lib-avatar{background:var(--teal);width:34px;height:34px;color:var(--paper);transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;text-decoration:none;display:flex}.lib-avatar:hover{transform:scale(1.05);box-shadow:0 4px 12px -4px #2c666080}.lib-search{margin-top:var(--section-gap);background:var(--paper-elevated);border:1px solid var(--line);color:var(--muted-2);min-height:var(--touch);transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), background-color var(--dur) var(--ease-soft);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;text-decoration:none;display:flex}.lib-search:hover{border-color:var(--line-strong);box-shadow:0 4px 14px -10px #17150f40}.lib-search-icon{border:1.6px solid var(--muted-2);border-radius:50%;flex-shrink:0;width:11px;height:11px}.lib-chips{margin-top:var(--stack-gap);scrollbar-width:none;gap:8px;margin-left:-2px;padding-bottom:6px;padding-left:2px;display:flex;overflow-x:auto}.lib-chips::-webkit-scrollbar{display:none}.lib-desk-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.lib-desk-search{background:var(--paper);border:1px solid var(--line);max-width:460px;color:var(--muted-2);transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), background-color var(--dur) var(--ease-soft);border-radius:11px;flex:1;align-items:center;gap:10px;padding:11px 14px;font-size:13.5px;text-decoration:none;display:flex}.lib-desk-search:hover{border-color:var(--line-strong);background:#fff;box-shadow:0 6px 16px -12px #17150f4d}.lib-desk-search kbd{font-family:var(--font-mono);color:#b0a895;border:1px solid var(--line);border-radius:5px;margin-left:auto;padding:2px 6px;font-size:10px}.lib-desk-actions{align-items:center;gap:12px;display:flex}.lib-sort{color:var(--muted-2);font-size:12.5px}.lib-record-cta{background:var(--brick);color:var(--paper);transition:background-color var(--dur) var(--ease-soft), transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:10px;padding:10px 16px;font-size:13.5px;font-weight:500;text-decoration:none}.lib-record-cta:hover{background:var(--brick-deep);transform:translateY(-1px);box-shadow:0 10px 22px -12px #a34a2aa6}.lib-active-filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.lib-filters-label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted-2);font-size:10px}.filter-pill{cursor:pointer;transition:transform var(--dur-fast) var(--ease-soft), opacity var(--dur) var(--ease-soft);border:none;border-radius:99px;align-items:center;gap:7px;padding:5px 11px;font-size:11.5px;font-weight:500;display:inline-flex}.filter-pill:hover{opacity:.92;transform:translateY(-1px)}.filter-pill.cat{background:var(--teal-soft);color:var(--teal-deep)}.filter-pill.tag{background:var(--brick-soft);color:var(--brick-deep)}.filter-pill span{opacity:.7}.lib-clear{color:var(--muted-2);border-bottom:1px solid var(--line-strong);transition:color var(--dur) var(--ease-soft);padding:0;font-size:11.5px}.lib-clear:hover{color:var(--brick)}.lib-filter-count{color:var(--muted);margin-left:auto;font-size:12.5px}.sign-grid{margin-top:var(--section-gap);grid-template-columns:1fr 1fr;gap:12px;display:grid}.sign-grid.desktop{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:4px}@media (width>=1280px){.sign-grid.desktop{grid-template-columns:repeat(4,1fr)}}@media (width>=1540px){.sign-grid.desktop{grid-template-columns:repeat(5,1fr)}}.lib-status{text-align:center;color:var(--muted);margin-top:32px}.lib-status error,.lib-status.error{color:var(--brick-deep)}.lib-empty{text-align:center;margin-top:48px;padding:0 12px}.lib-empty h2{font-family:var(--font-serif);margin:0;font-size:24px;font-weight:400}.lib-empty p{color:var(--muted);margin:10px 0 22px;line-height:1.5}.lib-empty .btn-primary{padding:14px 22px;text-decoration:none;display:inline-block}.library-page.desktop .lib-empty{margin-top:80px}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-shell.mobile{padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right)}.app-shell.mobile .app-main{padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 8px);flex:1;width:100%;max-width:720px;min-height:0;margin:0 auto}.app-shell.mobile.capture-mode{padding-top:0}.app-shell.mobile .app-main.capture-main{max-width:none;min-height:100dvh;padding-bottom:0}.app-shell.desktop{background:var(--paper-elevated);flex-direction:row;align-items:flex-start;min-height:100dvh}.app-center{background:var(--paper-elevated);flex:auto;min-width:0;min-height:100dvh}.app-main.desktop-main{max-width:none;margin:0;padding:28px 32px 40px}.app-main.desktop-main.fullbleed{padding:0}.app-shell.desktop .capture-page{min-height:100dvh}.auth-shell{background:var(--paper);flex-direction:column;min-height:100dvh;display:flex}.auth-hero{display:none}.auth-panel{flex:1;justify-content:center;align-items:stretch;display:flex}.auth-panel-card{flex-direction:column;gap:28px;width:100%;max-width:440px;margin:0 auto;padding:48px 24px 40px;display:flex}@media (width>=960px){.auth-shell{background:var(--paper-elevated);flex-direction:row}.auth-hero{background:radial-gradient(ellipse 70% 50% at 20% 30%, #a34a2a1a, transparent 55%), radial-gradient(ellipse 50% 40% at 80% 70%, #2c666017, transparent 50%), var(--paper);border-right:1px solid var(--line);flex:1.05;align-items:center;min-height:100dvh;padding:48px 48px 40px;display:flex}.auth-hero-inner{width:100%;max-width:480px;margin:0 auto}.auth-hero-brand{margin-bottom:22px}.auth-hero-logo-light{max-width:220px}.auth-hero-brand-dark{background:#17150f;border-radius:12px;align-items:center;gap:12px;margin-top:14px;padding:14px 16px;display:none}.auth-hero-word-dark{font-size:28px}.auth-hero-title{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(36px,3.6vw,52px);font-weight:400;line-height:1.08}.auth-hero-lead{color:var(--muted);max-width:34em;margin:16px 0 0;font-size:16px;line-height:1.55}.auth-hero-visual{justify-content:flex-start;align-items:flex-end;gap:12px;min-height:180px;margin:36px 0 32px;display:flex}.auth-mini-card{aspect-ratio:3/4;border:1px solid var(--line);background:var(--paper-elevated);border-radius:14px;width:108px;position:relative;overflow:hidden;box-shadow:0 18px 36px -22px #17150f73}.auth-mini-card.a{transform:rotate(-6deg)translateY(10px)}.auth-mini-card.b{z-index:1;width:124px}.auth-mini-card.c{transform:rotate(5deg)translateY(14px)}.auth-mini-loop{background:repeating-linear-gradient(135deg,#e6dfd1 0 6px,#f0ebe0 6px 12px);position:absolute;inset:0}.auth-mini-card span{color:#fbf8f2;font-family:var(--font-serif);background:linear-gradient(#0000,#17150fe0);padding:16px 8px 8px;font-size:13px;position:absolute;bottom:0;left:0;right:0}.auth-points{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.auth-points li{align-items:flex-start;gap:12px;display:flex}.auth-point-dot{background:var(--brick);width:8px;height:8px;box-shadow:0 0 0 4px var(--brick-soft);border-radius:50%;flex-shrink:0;margin-top:7px}.auth-points strong{color:var(--ink);font-size:14.5px;font-weight:600;display:block}.auth-points p{color:var(--muted);margin:3px 0 0;font-size:13.5px;line-height:1.45}.auth-panel{background:var(--paper-elevated);flex:.95;justify-content:center;align-items:center;padding:40px 32px}.auth-panel-card{border:1px solid var(--line);background:#fff;border-radius:18px;max-width:400px;margin:0;padding:36px 32px 32px;box-shadow:0 24px 48px -32px #17150f59}}@media (prefers-reduced-motion:no-preference) and (width>=960px){.auth-mini-card.a{animation:5s ease-in-out infinite floaty}.auth-mini-card.b{animation:5.4s ease-in-out .3s infinite floaty}.auth-mini-card.c{animation:4.8s ease-in-out .15s infinite floaty}}.auth-logo-mobile{max-width:200px;margin-bottom:18px}.auth-brand h1{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:32px;font-weight:400}.auth-brand p{color:var(--muted);margin:10px 0 0;font-size:14.5px;line-height:1.5}@media (width>=960px){.auth-logo-mobile{display:none}.auth-brand h1{font-size:30px}}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-form input{background:var(--paper);border:1px solid var(--line);transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:11px;padding:12px 14px;font-size:15px}.auth-form input:hover{border-color:var(--line-strong)}.auth-form input:focus{border-color:var(--brick);box-shadow:0 0 0 3px var(--brick-soft);outline:none}.auth-form small{color:var(--muted-2);font-size:12px}.auth-error{background:var(--brick-soft);color:var(--brick-deep);border-radius:10px;padding:10px 12px;font-size:13px}.auth-form .btn-primary{width:100%;margin-top:6px}.auth-switch{text-align:center;color:var(--muted);margin:0;font-size:14px}.auth-switch a{transition:border-color var(--dur) var(--ease-soft);border-bottom:1px solid #a34a2a59;font-weight:500}.auth-switch a:hover{border-bottom-color:var(--brick)}.onb-page{background:var(--paper);flex-direction:column;min-height:100dvh;display:flex;position:relative;overflow:hidden}.onb-bg{pointer-events:none;background:radial-gradient(80% 50% at 10% 20%,#a34a2a14,#0000 55%),radial-gradient(60% 40% at 90% 80%,#2c666012,#0000 50%);position:absolute;inset:0}.onb-top{z-index:1;justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:relative}.onb-brand{align-items:center;gap:10px;display:flex}.onb-brand-word{font-size:20px}.onb-skip{color:var(--muted);min-height:var(--touch);transition:color var(--dur) var(--ease-soft), background-color var(--dur) var(--ease-soft);border-radius:8px;padding:0 8px;font-size:14px}.onb-skip:hover{color:var(--ink);background:#17150f0d}.onb-layout{z-index:1;flex-direction:column;flex:1;gap:8px;width:100%;max-width:960px;margin:0 auto;padding:8px 22px 32px;display:flex;position:relative}.onb-visual{min-height:220px;animation:fadeUp var(--dur-slow) var(--ease-out) both;flex:1;justify-content:center;align-items:center;display:flex}.onb-content{animation:fadeUp var(--dur-slow) var(--ease-out) both;flex-direction:column;gap:14px;padding-bottom:8px;animation-delay:40ms;display:flex}.onb-progress{flex-direction:column;gap:8px;display:flex}.onb-progress>span{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted-2);text-transform:uppercase;font-size:10px}.onb-bar{background:var(--line);border-radius:99px;max-width:200px;height:3px;overflow:hidden}.onb-bar>div{background:var(--brick);height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:99px}.onb-content h1{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(28px,5vw,40px);font-weight:400;line-height:1.12}.onb-content>p{color:var(--muted);max-width:36em;margin:0;font-size:16px;line-height:1.6}.onb-dots{gap:8px;margin-top:4px;display:flex}.onb-dots button{background:var(--line-strong);width:8px;height:8px;transition:width var(--dur) var(--ease-out), background-color var(--dur) var(--ease-soft);border-radius:99px;padding:0}.onb-dots button.on{background:var(--brick);width:22px}.onb-dots button.done{background:#c4a090}.onb-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.onb-next{min-width:160px}.onb-back{min-width:100px}.art{width:min(100%,380px);position:relative}.art-notes{justify-content:center;align-items:flex-end;gap:12px;height:240px;display:flex}.art-card{border:1px solid var(--line);background:var(--paper-elevated);aspect-ratio:3/4;width:110px;transition:transform var(--dur-slow) var(--ease-out);border-radius:14px;position:relative;overflow:hidden;box-shadow:0 16px 32px -20px #17150f66}.art-card-a{animation:5s ease-in-out infinite floaty;transform:rotate(-6deg)translateY(12px)}.art-card-b{z-index:1;width:128px;animation:5.5s ease-in-out .4s infinite floaty}.art-card-c{animation:4.8s ease-in-out .2s infinite floaty;transform:rotate(5deg)translateY(16px)}.art-loop{background:repeating-linear-gradient(135deg,#e6dfd1 0 6px,#f0ebe0 6px 12px);position:absolute;inset:0}.art-cap{color:#fbf8f2;font-family:var(--font-serif);background:linear-gradient(#0000,#17150fe0);padding:18px 8px 8px;font-size:14px;position:absolute;bottom:0;left:0;right:0}.art-record{justify-content:center;display:flex}.art-frame{background:var(--ink);border-radius:24px;justify-content:center;align-items:center;width:200px;height:280px;display:flex;position:relative;box-shadow:0 24px 48px -24px #17150f8c}.art-silhouette{border:1.5px dashed #f6f2ea66;border-radius:50px 50px 16px 16px;width:100px;height:160px;animation:2.8s ease-in-out infinite softPulse}.art-timer{background:#f6f2ea33;border-radius:99px;height:4px;position:absolute;bottom:48px;left:20px;right:20px;overflow:hidden}.art-timer-fill{background:var(--brick);border-radius:99px;width:62%;height:100%;animation:1.8s ease-in-out infinite softPulse}.art-timer-label{font-family:var(--font-mono);color:#d8cfbe;font-size:11px;position:absolute;bottom:22px}.art-describe{background:var(--paper-elevated);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;padding:20px;display:flex;box-shadow:0 20px 40px -28px #17150f59}.art-chip-row{flex-wrap:wrap;gap:8px;display:flex}.art-chip{border:1px solid var(--line);font-family:var(--font-serif);background:var(--paper);border-radius:9px;padding:8px 12px;font-size:15px}.art-chip.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.art-chip.dashed{color:var(--muted-2);font-family:var(--font-sans);border-style:dashed;font-size:12.5px}.art-pill{border-radius:99px;padding:5px 10px;font-size:11.5px;font-weight:500}.art-pill.tag{background:var(--brick-soft);color:var(--brick-deep)}.art-pill.cat{background:var(--teal-soft);color:var(--teal-deep)}.art-note{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px}.art-note-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--muted-2);font-size:9px}.art-note p{font-family:var(--font-serif);color:var(--ink-soft);margin:6px 0 0;font-size:14px;font-style:italic;line-height:1.45}.art-safe{flex-direction:column;align-items:center;gap:18px;display:flex}.art-shield{background:linear-gradient(160deg, var(--teal-soft), #fff);border:1px solid var(--line);border-radius:80px 80px 40px 40px;justify-content:center;align-items:center;width:160px;height:180px;animation:4.5s ease-in-out infinite floaty;display:flex;box-shadow:0 20px 40px -24px #2c666073}.art-shield-inner{background:var(--teal);width:72px;height:72px;color:var(--paper);border-radius:50%;justify-content:center;align-items:center;font-size:28px;display:flex;box-shadow:0 8px 20px -8px #2c666099}.art-safe-caption{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted-2);text-transform:uppercase;font-size:11px}@media (width>=860px){.onb-layout{flex-direction:row;align-items:center;gap:48px;padding:24px 40px 48px}.onb-visual{flex:1.05;min-height:360px}.onb-content{flex:1}.onb-content h1{font-size:42px}.onb-content>p{font-size:17px}}@media (prefers-reduced-motion:reduce){.art-card-a,.art-card-b,.art-card-c,.art-shield,.art-silhouette,.art-timer-fill{animation:none!important}}.tag-picker{z-index:2;flex-direction:column;gap:8px;display:flex;position:relative}.tag-picker-box{background:var(--paper-elevated);border:1px solid var(--line);min-height:48px;transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.tag-picker-box:focus-within{border-color:var(--line-strong);box-shadow:0 0 0 3px #17150f0a}.tag-chip{background:var(--brick-soft);color:var(--brick-deep);border-radius:99px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.tag-chip span{opacity:.65}.tag-picker-input{background:0 0;border:none;outline:none;flex:1;min-width:120px;padding:6px 2px;font-size:14px}.tag-suggest{border:1px solid var(--line);z-index:30;background:#fff;border-radius:12px;max-height:240px;margin:0;padding:6px;list-style:none;position:relative;overflow-y:auto;box-shadow:0 12px 28px -16px #17150f59}.tag-suggest-status{color:var(--muted-2);padding:10px 12px;font-size:13px}.tag-suggest li button{text-align:left;width:100%;color:var(--ink);transition:background-color var(--dur-fast) var(--ease-soft);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;display:flex}.tag-suggest li button:hover{background:var(--paper)}.tag-suggest-count{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.tag-suggest-create{font-weight:500;color:var(--brick)!important}.tag-recent{flex-direction:column;gap:8px;display:flex}.tag-recent-label{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted-2);text-transform:uppercase;font-size:9.5px}.tag-recent-row{flex-wrap:wrap;gap:6px;display:flex}.tag-recent-chip{border:1px solid var(--line);color:var(--muted);background:var(--paper-elevated);transition:border-color var(--dur) var(--ease-soft), background-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);border-radius:99px;padding:5px 11px;font-size:12px}.tag-recent-chip:hover{border-color:var(--brick);color:var(--brick-deep);background:var(--brick-soft)}.cat-picker{flex-direction:column;gap:10px;display:flex}.cat-picker-row{flex-wrap:wrap;gap:7px;display:flex}.cat-chip{border:1px solid var(--line);color:var(--muted);background:var(--paper-elevated);transition:background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);border-radius:99px;padding:6px 12px;font-size:12.5px}.cat-chip:hover{border-color:var(--teal);color:var(--teal-deep)}.cat-chip.on{background:var(--teal);border-color:var(--teal);color:var(--paper);font-weight:500}.cat-chip.mine.on{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-deep)}.cat-chip.add{border-style:dashed;border-color:var(--line-strong);color:var(--teal-deep);background:0 0;font-weight:500}.cat-chip.add:hover{background:var(--teal-soft)}.cat-create{gap:8px;display:flex}.cat-create input{border:1px solid var(--line);background:var(--paper-elevated);border-radius:11px;flex:1;min-width:0;padding:10px 12px;font-size:14px}.cat-create input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.cat-create-btn{white-space:nowrap;padding:10px 14px;font-size:13px}.cat-picker.compact .cat-chip{padding:5px 10px;font-size:12px}.detail-page{min-height:calc(100dvh - var(--nav-h) - var(--safe-bottom));flex-direction:column;display:flex}.detail-media-wrap{position:relative}.detail-media{background:#1a1814;border-top:none;border-left:none;border-right:none;border-radius:0;min-height:200px;max-height:min(58vh,640px)}.detail-media.fit-detail .loop-el{max-height:min(58vh,640px)}.detail-back{width:40px;height:40px;color:var(--ink);z-index:2;background:#fbf8f2f0;border-radius:50%;justify-content:center;align-items:center;font-size:16px;text-decoration:none;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px 12px -6px #17150f59}.detail-body{padding:var(--space-5) var(--page-x) 0;flex-direction:column;flex:1;gap:0;display:flex}.label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--muted-2);text-transform:uppercase;font-size:10px}.meanings{font-family:var(--font-serif);margin-top:10px;font-size:22px;line-height:1.35}.edit-meanings{flex-direction:column;gap:8px;margin-top:8px;display:flex}.edit-meaning-row{align-items:center;gap:8px;display:flex}.edit-meaning-row input{background:var(--paper-elevated);border:1px solid var(--line);font-family:var(--font-serif);border-radius:11px;flex:1;padding:11px 12px;font-size:16px}.edit-form .cap-add-meaning{align-self:flex-start}.edit-form .cap-caption-hint{font-family:var(--font-serif);color:var(--ink-soft);margin-top:8px;font-size:15px}.edit-form .label{margin-bottom:6px;display:block}.divider{background:var(--line);height:1px;margin:var(--section-gap) 0}.pills{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.pill{border-radius:99px;padding:6px 12px;font-size:12px;font-weight:500}.pill.tag{background:var(--brick-soft);color:var(--brick-deep)}.pill.cat{background:var(--teal-soft);color:var(--teal-deep)}.note-box{background:var(--paper-elevated);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.note-box p{font-family:var(--font-serif);color:var(--ink-soft);margin:6px 0 0;font-size:15px;font-style:italic;line-height:1.5}.detail-actions{padding:var(--space-3) var(--page-x) var(--space-5);background:var(--paper-elevated);border-top:1px solid var(--line);margin-top:var(--space-5);gap:10px;display:flex}.detail-actions .btn-primary,.detail-actions .btn-secondary{text-align:center;min-height:var(--touch);border-radius:12px;flex:1;padding:13px 12px;font-size:14px}.edit-form{padding:var(--space-5) var(--page-x);gap:var(--section-gap);flex-direction:column;display:flex}.edit-form label{flex-direction:column;gap:8px;display:flex}.edit-form textarea,.edit-form input{background:var(--paper-elevated);border:1px solid var(--line);border-radius:11px;padding:11px 12px}.style-row{flex-wrap:wrap;gap:7px;display:flex}.btn-danger{color:var(--danger);text-align:center;padding:12px;font-size:13px}.page-pad{color:var(--muted);padding:24px}.capture-page{background:var(--paper);flex-direction:column;min-height:100dvh;display:flex}.capture-page.step-1{background:var(--ink);color:var(--paper);padding-top:var(--safe-top);padding-bottom:0}.cap-top{padding:12px var(--page-x) 10px;color:inherit;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.cap-top a,.cap-top button{color:inherit;min-height:var(--touch);align-items:center;display:inline-flex}.cap-kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:10px}.cap-kicker.muted{color:var(--muted-2)}.cap-stage{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.cap-video{object-fit:contain;background:#0e0d0b;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.cap-guide{z-index:1;pointer-events:none;flex-direction:column;align-items:center;gap:14px;display:flex;position:relative}.cap-guide-label{font-family:var(--font-mono);letter-spacing:.16em;color:#f6f2eae0;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);background:#17150f8c;border-radius:99px;padding:6px 12px;font-size:11px}.cap-guide-frame{border-radius:28px;width:min(200px,42vw);height:min(280px,38vh);position:relative;box-shadow:inset 0 0 0 1px #f6f2ea2e}.cap-corner{border:0 solid #f6f2eab8;width:22px;height:22px;position:absolute}.cap-corner.tl{border-top-width:2px;border-left-width:2px;border-top-left-radius:14px;top:0;left:0}.cap-corner.tr{border-top-width:2px;border-right-width:2px;border-top-right-radius:14px;top:0;right:0}.cap-corner.bl{border-bottom-width:2px;border-left-width:2px;border-bottom-left-radius:14px;bottom:0;left:0}.cap-corner.br{border-bottom-width:2px;border-right-width:2px;border-bottom-right-radius:14px;bottom:0;right:0}.cap-neutral{bottom:20px;left:var(--page-x);right:var(--page-x);text-align:center;font-family:var(--font-serif);color:#f6f2eac7;z-index:1;pointer-events:none;text-shadow:0 1px 8px #0000008c;font-size:14px;line-height:1.4;position:absolute}.cap-countdown{z-index:2;background:#17150f80;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.cap-countdown-n{font-family:var(--font-serif);color:#f6f2ea;font-size:72px;font-weight:400;line-height:1}.cap-countdown-sub{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#f6f2eab3;font-size:11px}.cap-countdown-toggle{color:#f6f2eabf;font-size:12.5px;font-family:var(--font-sans);transition:background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);background:#f6f2ea0f;border:1px solid #f6f2ea38;border-radius:99px;align-items:center;gap:8px;padding:8px 14px;display:inline-flex}.cap-countdown-toggle:hover{color:#f6f2ea;background:#f6f2ea1a}.cap-countdown-toggle.on{color:#f6f2ea;background:#a34a2a38;border-color:#a34a2aa6}.cap-toggle-dot{background:#f6f2ea59;border-radius:50%;flex-shrink:0;width:8px;height:8px}.cap-countdown-toggle.on .cap-toggle-dot{background:#e8a48a;box-shadow:0 0 0 3px #a34a2a40}.cap-shutter:disabled{opacity:.45;cursor:not-allowed}.cap-controls{padding:10px var(--page-x) calc(18px + var(--safe-bottom));z-index:1;flex-direction:column;align-items:center;gap:12px;display:flex;position:relative}.cap-progress{background:#f6f2ea33;border-radius:99px;width:100%;height:4px;overflow:hidden}.cap-progress>div{background:var(--brick);width:0;height:100%;transition:width 50ms linear}.cap-times{width:100%;font-family:var(--font-mono);color:#d8cfbe;justify-content:space-between;font-size:11px;display:flex}.cap-duration{background:#f6f2ea0f;border:1px solid #f6f2ea38;border-radius:99px;gap:0;display:inline-flex;overflow:hidden}.cap-duration-btn{min-width:52px;font-family:var(--font-mono);letter-spacing:.04em;color:#f6f2eab3;transition:background-color var(--dur) var(--ease-soft), color var(--dur) var(--ease-soft);background:0 0;padding:8px 14px;font-size:12px}.cap-duration-btn.on{color:#f6f2ea;background:#a34a2a8c;font-weight:500}.cap-duration-btn:hover:not(.on){color:#f6f2ea;background:#f6f2ea14}.cap-shutter{border:3px solid #f6f2ead9;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;padding:0;display:flex}.cap-shutter span{background:var(--brick);border-radius:50%;width:54px;height:54px}.cap-shutter.rec span{border-radius:7px;width:32px;height:32px}.cap-file{color:#93897a;cursor:pointer;font-size:12px;text-decoration:underline}.cap-error{color:#f2b8a8;text-align:center;font-size:13px}.cap-error.soft{color:var(--brick-deep);background:var(--brick-soft);border-radius:10px;padding:10px 12px}.cap-review{background:var(--paper);min-height:100dvh;color:var(--ink);-webkit-overflow-scrolling:touch;padding-top:var(--safe-top);flex-direction:column;flex:1;padding-bottom:0;display:flex;overflow:hidden auto}.cap-review-top{justify-content:space-between;align-items:center;gap:var(--stack-gap);padding:12px var(--page-x);border-bottom:1px solid var(--line);background:var(--paper-elevated);z-index:5;flex-shrink:0;min-height:56px;display:flex;position:sticky;top:0}.cap-review-back{color:var(--muted);min-height:40px;transition:color var(--dur) var(--ease-soft);padding:0 4px;font-size:14px}.cap-review-back:hover{color:var(--brick)}.cap-top-save{min-width:120px;padding:10px 16px;font-size:13.5px}.cap-review-layout{flex-direction:column;flex:1;width:100%;margin:0 auto;display:flex}.cap-review-media{padding:var(--space-4) var(--page-x) var(--space-2);flex-shrink:0}.cap-review-stage{border:1px solid var(--line);aspect-ratio:3/4;background:#1a1814;border-radius:16px;justify-content:center;align-items:center;width:min(100%,260px);max-height:34vh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px -22px #17150f66}.cap-review-video{object-fit:contain;background:#1a1814;width:100%;height:100%;display:block}.cap-review-caption{color:#fbf8f2;font-family:var(--font-serif);pointer-events:none;padding:18px 12px 10px;font-size:17px;position:absolute;bottom:0;left:0;right:0}.cap-review-caption.style-bar{background:linear-gradient(#0000,#17150fe6)}.cap-review-caption.style-outline{text-shadow:0 1px 2px #000,0 0 8px #0000008c;background:0 0}.cap-review-badge{font-family:var(--font-mono);letter-spacing:.1em;color:var(--paper);background:#17150fb8;border-radius:5px;padding:3px 7px;font-size:9px;position:absolute;top:10px;left:10px}.cap-caption-styles{margin-top:var(--stack-gap);flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cap-review-form{padding:var(--space-3) var(--page-x) 0;gap:var(--section-gap);flex-direction:column;flex:1;display:flex;overflow:visible}.cap-review-grid{gap:var(--section-gap);flex-direction:column;display:flex}.cap-section-head{justify-content:space-between;align-items:baseline;gap:var(--stack-gap);margin-bottom:8px;display:flex}.cap-section-head h2{font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:400}.cap-required{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brick);text-transform:uppercase;font-size:10px}.cap-meanings{flex-direction:column;gap:8px;display:flex}.cap-meaning-row{background:var(--paper-elevated);border:1px solid var(--line);transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:11px;align-items:center;gap:8px;padding:2px 4px 2px 12px;display:flex}.cap-meaning-row:focus-within{border-color:var(--brick);box-shadow:0 0 0 3px var(--brick-soft)}.cap-meaning-idx{font-family:var(--font-mono);color:var(--muted-2);flex-shrink:0;width:1.2em;font-size:11px}.cap-meaning-row input{font-size:15px;font-family:var(--font-serif);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:10px 4px}.cap-meaning-remove{width:34px;height:34px;color:var(--muted-2);border-radius:9px;flex-shrink:0;font-size:18px}.cap-meaning-remove:hover{background:var(--brick-soft);color:var(--brick-deep)}.cap-add-meaning{border:1px dashed var(--line-strong);color:var(--brick-deep);background:0 0;border-radius:11px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:13.5px;font-weight:500;display:inline-flex}.cap-add-meaning:hover{background:var(--brick-soft)}.cap-add-plus{background:var(--brick);width:20px;height:20px;color:var(--paper);border-radius:50%;justify-content:center;align-items:center;font-size:15px;line-height:1;display:flex}.cap-note-inline{border:1px solid var(--line);background:var(--paper-elevated);width:100%;font-family:var(--font-serif);border-radius:11px;outline:none;padding:11px 12px;font-size:14.5px}.cap-note-inline:focus{border-color:var(--brick);box-shadow:0 0 0 3px var(--brick-soft)}.cap-status{font-family:var(--font-mono);color:var(--muted);text-align:center;margin:0;font-size:12px}.cap-review-actions{background:var(--paper);border-top:1px solid var(--line);margin:var(--space-3) calc(-1 * var(--page-x)) 0;padding:12px var(--page-x) calc(16px + var(--safe-bottom));flex-shrink:0;gap:10px;display:flex;position:sticky;bottom:0}.cap-review-actions .btn-secondary{min-height:var(--touch);flex:none;padding:13px 14px}.cap-save{min-height:var(--touch);flex:1;padding:13px 16px;font-size:14.5px}@media (width>=1024px){.capture-page.step-2{height:100dvh;max-height:100dvh;overflow:hidden}.cap-review{height:100dvh;max-height:100dvh;padding-top:0;padding-bottom:0;overflow:hidden}.cap-review-top{padding:12px 28px;position:relative}.cap-top-save{display:inline-flex}.cap-review-layout{flex-direction:row;flex:1;align-items:stretch;gap:0;max-width:none;min-height:0;overflow:hidden}.cap-review-media{border-right:1px solid var(--line);background:#f3efe6;flex-direction:column;flex:0 0 340px;justify-content:center;align-items:center;gap:14px;width:340px;padding:24px;display:flex;overflow:hidden}.cap-review-stage{aspect-ratio:3/4;flex:none;width:100%;max-width:280px;max-height:min(520px,100dvh - 160px);margin:0}.cap-review-video{width:100%;height:100%;max-height:none}.cap-caption-styles{flex-shrink:0;justify-content:center;margin-top:0}.cap-review-form{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;padding:20px 28px 16px;display:flex;overflow-y:auto}.cap-review-grid{flex:none;grid-template-columns:1fr 1fr;align-content:start;gap:16px 24px;display:grid}.cap-section-wide{grid-column:1/-1}.cap-section-head h2{font-size:16px}.cap-review-form .tag-recent-row{flex-wrap:wrap}.cap-review-form .tag-suggest{max-height:140px}.cap-review-actions{border-top:1px solid var(--line);background:0 0;margin:0;padding:12px 0 8px;position:sticky;bottom:0}.cap-review-actions .cap-save{flex:none;min-width:180px}}@media (width<=1023px){.cap-top-save{min-width:0;padding:8px 12px;font-size:12.5px}}.search-page{padding:var(--page-top) var(--page-x) var(--page-bottom)}@media (width>=1024px){.search-page{max-width:720px;padding:8px 8px 40px}.result-row{transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft)}.result-row:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 10px 22px -16px #17150f4d}}.search-box{background:var(--paper-elevated);border:1.5px solid var(--ink);min-height:var(--touch);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.search-icon{border:1.6px solid var(--ink);border-radius:50%;flex-shrink:0;width:11px;height:11px}.search-box input{background:0 0;border:none;outline:none;width:100%;font-size:13.5px}.search-section{margin-top:var(--space-5)}.search-section .label{margin-bottom:10px}.recent-row{flex-wrap:wrap;gap:8px;display:flex}.result-list{flex-direction:column;gap:10px;display:flex}.result-row{background:var(--paper-elevated);border:1px solid var(--line);color:inherit;border-radius:14px;align-items:center;gap:12px;padding:10px;text-decoration:none;display:flex}.result-thumb{border-radius:9px;flex-shrink:0;width:52px;height:64px;overflow:hidden}.result-thumb .loop-media{aspect-ratio:auto;border:none;border-radius:9px;height:100%}.result-title{font-family:var(--font-serif);font-size:18px}.result-meta{color:var(--muted-2);margin-top:2px;font-size:11px}.search-empty{color:var(--muted);padding:12px 0}.search-empty small{color:var(--muted-2)}.note-hit{background:var(--paper-elevated);border:1px solid var(--line);color:inherit;border-radius:13px;margin-bottom:8px;padding:11px 12px;text-decoration:none;display:block}.note-hit p{color:var(--muted);margin:4px 0 0;font-size:11.5px;line-height:1.5}.cats-page{padding:var(--page-top) var(--page-x) var(--page-bottom)}.cats-back{color:var(--muted);align-items:center;gap:6px;min-height:40px;margin-bottom:4px;font-size:14px;text-decoration:none;display:inline-flex}.cats-back:hover{color:var(--brick)}@media (width>=1024px){.cats-page{max-width:720px;padding:8px 8px 32px}.cat-row{transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft)}.cat-row:hover{transform:translateY(-2px);box-shadow:0 10px 24px -16px #17150f59}}.cats-page h1{font-family:var(--font-serif);margin:8px 0 0;font-size:28px;font-weight:400;line-height:1.15}.cats-sub{color:var(--muted-2);margin:6px 0 var(--section-gap);font-size:12.5px;line-height:1.4}.cats-list{flex-direction:column;gap:10px;display:flex}.cat-row{background:var(--paper-elevated);border:1px solid var(--line);color:inherit;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:14px 16px;text-decoration:none;display:flex}.cat-row.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cat-name{font-family:var(--font-serif);font-size:17px}.cat-preview{color:var(--muted-2);margin-top:2px;font-size:10.5px}.cat-row.active .cat-preview{color:#b9b0a0}.cat-count{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.cat-row.active .cat-count{color:#b9b0a0}.settings-page{padding:var(--page-top) var(--page-x) var(--page-bottom);gap:var(--section-gap);flex-direction:column;display:flex}@media (width>=1024px){.settings-page{max-width:520px;padding:8px 8px 40px}.settings-card{transition:box-shadow var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft)}.settings-card:hover{border-color:var(--line-strong);box-shadow:0 8px 20px -14px #17150f40}}.settings-page h1{font-family:var(--font-serif);margin:8px 0 4px;font-size:28px;font-weight:400;line-height:1.15}.settings-card{background:var(--paper-elevated);border:1px solid var(--line);padding:var(--space-4);border-radius:14px}.settings-name{font-family:var(--font-serif);font-size:22px}.settings-email{color:var(--muted);margin-top:4px;font-size:13px}.storage-bar{background:var(--line);border-radius:99px;height:8px;margin-top:10px;overflow:hidden}.storage-bar>div{background:var(--teal);height:100%}.storage-meta{font-family:var(--font-mono);color:var(--muted-2);margin-top:8px;font-size:11px}.lang-row{margin-top:10px}.hint{color:var(--muted-2);margin:8px 0 0;font-size:12px}.settings-link{text-align:left;color:var(--brick);border-bottom:1px solid var(--line);padding:14px 4px;font-weight:500}.full{width:100%;margin-top:8px}.qr-sheet-backdrop,.space-portal-backdrop{z-index:300;background:#17150f8c;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.qr-sheet,.space-portal-sheet{background:var(--paper);width:100%;max-width:520px;padding:10px 18px calc(24px + var(--nav-h) + var(--safe-bottom));z-index:301;border-radius:18px 18px 0 0;max-height:min(88dvh,720px);margin-bottom:0;animation:.22s cubic-bezier(.22,1,.36,1) both qrSheetUp;position:relative;overflow-y:auto;box-shadow:0 -12px 40px -12px #17150f73}.space-portal-sheet-lg{max-height:min(90dvh,760px)}.invite-gen-btn{width:100%;margin-top:8px}.invite-role-row{margin:8px 0 4px}.invite-result{flex-direction:column;gap:14px;display:flex}.invite-qr-placeholder{background:var(--paper);width:240px;height:240px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.invite-link-label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.space-invite-url input{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;font-size:13px}@keyframes qrSheetUp{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.qr-sheet-handle{background:var(--line-strong);border-radius:99px;width:40px;height:4px;margin:0 auto 12px}.qr-sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.qr-sheet-head h2{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:400}.qr-sheet-close{color:var(--muted);min-height:40px;font-size:14px}.qr-sheet-help{color:var(--muted);margin:0 0 12px;font-size:13.5px;line-height:1.45}.qr-reader-wrap{background:#17150f;border-radius:14px;min-height:260px;position:relative;overflow:hidden}.qr-reader{width:100%}.qr-reader video{object-fit:cover!important;border-radius:14px!important}.qr-reader img{display:none!important}.qr-reader #qr-shaded-region{border-color:#a34a2ad9!important}.qr-starting{color:#f6f2ea;background:#17150f8c;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;inset:0}.qr-sheet-error{background:var(--brick-soft);color:var(--brick-deep);border-radius:10px;margin:12px 0 0;padding:10px 12px;font-size:13px}@media (width>=720px){.qr-sheet-backdrop,.space-portal-backdrop{align-items:center;padding:24px}.qr-sheet,.space-portal-sheet{border-radius:18px;max-height:min(80dvh,640px);padding:20px 22px 22px}.qr-sheet-handle{display:none}}.spaces-page{padding:var(--page-top) var(--page-x) var(--page-bottom);max-width:720px;margin:0 auto}.spaces-header{justify-content:space-between;align-items:flex-start;gap:var(--section-gap);margin-bottom:var(--space-5);display:flex}.spaces-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.spaces-header h1,.space-detail-header h1,.invite-card h1{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:400}.spaces-sub{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.45}.spaces-create{background:var(--paper-elevated);border:1px solid var(--line);padding:var(--space-4);gap:var(--stack-gap);margin-bottom:var(--space-5);border-radius:16px;flex-direction:column;display:flex}.spaces-create label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.spaces-create input,.space-modal select,.space-modal input[type=text],.space-invite-url input{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;font-size:15px}.spaces-create-actions{justify-content:flex-end;gap:10px;display:flex}.spaces-list{gap:var(--stack-gap);flex-direction:column;display:flex}.spaces-card{justify-content:space-between;align-items:center;gap:var(--stack-gap);padding:var(--space-4);background:var(--paper-elevated);border:1px solid var(--line);color:inherit;min-height:64px;transition:transform var(--dur-fast) var(--ease-soft), box-shadow var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft);border-radius:14px;text-decoration:none;display:flex}.spaces-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 12px 28px -18px #17150f59}.spaces-card-name{font-family:var(--font-serif);font-size:20px}.spaces-card-desc{color:var(--muted);margin-top:4px;font-size:13px}.spaces-card-meta{color:var(--muted-2);font-size:12px;font-family:var(--font-mono);flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.spaces-card-arrow{color:var(--muted-2);font-size:18px}.spaces-empty{text-align:center;color:var(--muted);padding:40px 12px}.spaces-empty h2{font-family:var(--font-serif);color:var(--ink);margin:0 0 8px;font-size:22px;font-weight:400}.spaces-status{text-align:center;color:var(--muted);padding:24px}.spaces-error{color:var(--brick-deep);background:var(--brick-soft);border-radius:10px;padding:10px 12px;font-size:13px}.space-detail-header{margin-bottom:18px}.space-back{color:var(--muted);margin-bottom:10px;font-size:14px;text-decoration:none;display:inline-block}.space-back:hover{color:var(--brick)}.space-detail-meta{color:var(--muted-2);font-size:12.5px;font-family:var(--font-mono);flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.space-detail-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.space-filters{gap:8px;margin-bottom:16px;display:flex}.space-grid{grid-template-columns:1fr 1fr}.space-sign-wrap{flex-direction:column;gap:6px;display:flex}.space-sign-author{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:0 2px;font-size:11.5px;display:flex}.space-sign-remove{color:var(--brick);font-size:11px;text-decoration:underline}.space-members{border-top:1px solid var(--line);margin-top:32px;padding-top:20px}.space-members h2{font-family:var(--font-serif);margin:0 0 12px;font-size:20px;font-weight:400}.space-members ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.space-members li{background:var(--paper-elevated);border:1px solid var(--line);border-radius:11px;justify-content:space-between;gap:12px;padding:10px 12px;font-size:14px;display:flex}.space-member-role{font-family:var(--font-mono);color:var(--muted-2);font-size:11px}.space-modal-backdrop{z-index:300;background:#17150f73;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.space-modal{background:var(--paper);width:100%;max-width:440px;padding:20px var(--page-x) calc(20px + var(--nav-h) + var(--safe-bottom));gap:var(--section-gap);animation:fadeUp var(--dur-slow) var(--ease-out) both;border-radius:18px 18px 0 0;flex-direction:column;display:flex;box-shadow:0 -12px 40px -12px #17150f73}.space-modal h2{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:400}.space-consent{color:var(--ink-soft);background:var(--brick-soft);border-radius:12px;margin:0;padding:12px 14px;font-size:13.5px;line-height:1.5}.space-consent-check{color:var(--ink-soft);align-items:flex-start;gap:10px;font-size:13.5px;display:flex}.space-modal label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.space-invite-url{flex-direction:column;gap:8px;display:flex}.space-qr{background:var(--paper-elevated);border:1px solid var(--line);border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:12px;display:flex}.space-qr img{background:#f6f2ea;border-radius:8px}.space-modal-lg{flex-direction:column;max-height:min(88dvh,720px);display:flex;overflow:hidden}.space-share-search{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;font-size:15px}.space-share-grid{grid-template-columns:1fr 1fr;gap:10px;min-height:120px;max-height:min(46vh,360px);padding:2px;display:grid;overflow-y:auto}.space-share-item{border:1.5px solid var(--line);background:var(--paper-elevated);text-align:left;transition:border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);border-radius:14px;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.space-share-item.on{border-color:var(--brick);box-shadow:0 0 0 2px var(--brick-soft)}.space-share-thumb{pointer-events:none}.space-share-thumb .sign-card{border:none;border-radius:0}.space-share-check{border:1.5px solid var(--line);width:26px;height:26px;color:var(--brick);z-index:3;background:#fbf8f2eb;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:8px;right:8px}.space-share-item.on .space-share-check{background:var(--brick);border-color:var(--brick);color:var(--paper)}.space-share-label{font-size:12.5px;font-family:var(--font-serif);color:var(--ink-soft);border-top:1px solid var(--line);padding:8px 10px;line-height:1.25}.invite-page{justify-content:center;align-items:center;min-height:60vh;display:flex}.invite-standalone{min-height:100dvh;padding:calc(24px + var(--safe-top)) 18px calc(24px + var(--safe-bottom));background:var(--paper);justify-content:center;align-items:center;display:flex}.invite-card{background:var(--paper-elevated);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:28px 24px;display:flex}.invite-card h1{font-family:var(--font-serif);margin:0;font-size:26px;font-weight:400}@media (width>=1024px){.spaces-page{max-width:960px;padding:8px 8px 40px}.space-grid{grid-template-columns:repeat(3,1fr);gap:16px}.space-modal-backdrop{align-items:center}.space-modal{border-radius:18px}}
