:root{--brand: #5B5BD6;--brand-hover: #8B7FF0;--brand-pressed: #3C3489;--brand-wash: #EEEDFE;--brand-wash-border: #DAD7F6;--on-brand: #FFFFFF;--coral: #FF7A59;--coral-strong: #D85A30;--coral-wash: #FAECE7;--success: #16A34A;--warning: #F59E0B;--danger: #E5484D;--info: #378ADD;--radius-sm: 14px;--radius-md: 20px;--radius-lg: 28px;--radius-pill: 999px;--radius-input: 16px;--btn-height: 52px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--shadow-e1: 0 6px 14px rgba(14, 15, 19, .06);--shadow-e2: 0 12px 22px rgba(14, 15, 19, .1);--shadow-fab: 0 8px 14px rgba(91, 91, 214, .38);--font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, Inter, "Helvetica Neue", Arial, sans-serif;--fs-display: 34px;--fw-display: 700;--fs-title: 26px;--fw-title: 600;--fs-headline: 20px;--fw-headline: 600;--fs-body: 17px;--fw-body: 400;--fs-caption: 13px;--fw-caption: 400}:root,:root[data-theme=light]{--bg: #FFFFFF;--surface: #F4F5F7;--surface-alt: #FAFAFB;--border: #E6E7EB;--text: #1A1D23;--text-2: #6B7280;--text-3: #A1A1AA;--on-dark: #FFFFFF;color-scheme:light}:root[data-theme=dark]{--bg: #0E0F13;--surface: #1A1D23;--surface-alt: #16181D;--border: #2A2D35;--text: #F4F5F7;--text-2: #9AA0AA;--text-3: #6B7280;--brand-wash: #1E1B3A;--brand-wash-border: #2E2A55;--coral-wash: #2A1A14;--shadow-e1: 0 6px 14px rgba(0, 0, 0, .4);--shadow-e2: 0 12px 22px rgba(0, 0, 0, .55);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0E0F13;--surface: #1A1D23;--surface-alt: #16181D;--border: #2A2D35;--text: #F4F5F7;--text-2: #9AA0AA;--text-3: #6B7280;--brand-wash: #1E1B3A;--brand-wash-border: #2E2A55;--coral-wash: #2A1A14;--shadow-e1: 0 6px 14px rgba(0, 0, 0, .4);--shadow-e2: 0 12px 22px rgba(0, 0, 0, .55);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family);font-size:var(--fs-body);font-weight:var(--fw-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.app-shell{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;position:relative;padding-bottom:env(safe-area-inset-bottom)}.t-display{font-size:var(--fs-display);font-weight:var(--fw-display);line-height:1.1;letter-spacing:-.02em}.t-title{font-size:var(--fs-title);font-weight:var(--fw-title);line-height:1.15}.t-headline{font-size:var(--fs-headline);font-weight:var(--fw-headline);line-height:1.2}.t-body{font-size:var(--fs-body);font-weight:var(--fw-body);line-height:1.4}.t-caption{font-size:var(--fs-caption);color:var(--text-2);line-height:1.4}.text-2{color:var(--text-2)}.btn{height:var(--btn-height);border:none;border-radius:var(--radius-sm);font-size:var(--fs-body);font-weight:600;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);transition:background .15s ease,transform .05s ease,opacity .15s ease}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-primary:active:not(:disabled){background:var(--brand-pressed)}.btn-neutral{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-dark{background:var(--text);color:var(--bg)}.btn-ghost{background:transparent;color:var(--brand);height:auto;width:auto;font-weight:600}.field{position:relative;border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-alt);padding:22px 16px 8px;transition:border-color .15s ease,background .15s ease}.field:focus-within{border-color:var(--brand);border-width:2px;padding:21px 15px 7px;background:var(--bg)}.field.valid{border-color:var(--success)}.field.error{border-color:var(--danger)}.field label{position:absolute;top:8px;left:16px;font-size:11px;font-weight:600;color:var(--text-2)}.field:focus-within label{color:var(--brand)}.field.valid label{color:var(--success)}.field input{border:none;outline:none;background:transparent;width:100%;font-size:var(--fs-body);color:var(--text);padding:0}.field input::placeholder{color:var(--text-3)}.field-err{color:var(--danger);font-size:12px;margin:6px 4px 0}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--text-2);border-radius:var(--radius-pill);padding:7px 14px;font-size:var(--fs-caption)}.banner{border-radius:var(--radius-input);padding:12px 16px;display:flex;gap:12px;align-items:flex-start}.banner-warn{background:#fef3e2}.banner-success{background:#e4f6ea;color:#157a39}:root[data-theme=dark] .banner-warn{background:#2a2410}:root[data-theme=dark] .banner-success{background:#102a1a}.fab{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%);width:64px;height:64px;border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);border:none;box-shadow:var(--shadow-fab);display:flex;align-items:center;justify-content:center;z-index:20}.fab:active{transform:translate(-50%) scale(.95)}.feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.feed-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.feed-cell img{width:100%;height:100%;object-fit:cover;display:block}.feed-cell .vid-badge{position:absolute;bottom:6px;right:6px;background:#0000008c;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:8px}.feed-cell .author{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,#00000080)}.skeleton{background:linear-gradient(90deg,var(--surface),var(--surface-alt),var(--surface));background-size:200% 100%;animation:sk 1.2s infinite}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-bar{position:fixed;left:0;right:0;bottom:calc(0px + env(safe-area-inset-bottom));max-width:480px;margin:0 auto;background:var(--bg);border-top:1px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:12px;z-index:25}.progress{flex:1;height:6px;border-radius:3px;background:var(--surface);overflow:hidden}.progress>i{display:block;height:100%;background:var(--brand);transition:width .2s ease}.stack>*+*{margin-top:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.spacer{flex:1}
