*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-gray-800);background-color:var(--color-gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font:inherit;border:none;outline:none}@media (pointer:coarse){input,textarea,select{font-size:16px}}img{max-width:100%;display:block}ul,ol{list-style:none}:root{--color-primary-50:#fff7f0;--color-primary-100:#ffe8d3;--color-primary-200:#ffd4ad;--color-primary-300:#ffbd82;--color-primary-400:#f5a05c;--color-primary-500:#e08a3a;--color-primary-600:#c07030;--color-primary-700:#9a5525;--color-accent-50:#f5f3ff;--color-accent-100:#ede9fe;--color-accent-200:#ddd6fe;--color-accent-300:#c4b5fd;--color-accent-400:#a78bfa;--color-accent-500:#8b5cf6;--gradient-primary:linear-gradient(135deg, #f5a05c 0%, #e08a3a 100%);--gradient-accent:linear-gradient(135deg, #a78bfa 0%, #8b5cf6 100%);--gradient-warm:linear-gradient(135deg, #f5a05c 0%, #f06292 100%);--gradient-card:linear-gradient(180deg, #ffffffe6 0%, #fff 100%);--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--color-like:#f43f5e;--color-mention:#8b5cf6;--color-tag:#64748b;--color-online:#22c55e;--color-white:#fff;--color-gray-50:#fafaf9;--color-gray-100:#f5f5f4;--color-gray-200:#e7e5e4;--color-gray-300:#d6d3d1;--color-gray-400:#a8a29e;--color-gray-500:#78716c;--color-gray-600:#57534e;--color-gray-700:#44403c;--color-gray-800:#292524;--color-gray-900:#1c1917;--color-black:#000;--surface-primary:#fff;--surface-secondary:#fafaf9;--surface-elevated:#fff;--surface-fallback-top:#f2f0ee;--surface-fallback-bottom:#e7e3e0;--surface-fallback-anon-top:#f4efe8;--surface-fallback-anon-bottom:#eae2db;--font-sans:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;--text-2xs:.625rem;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.75rem;--leading-tight:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--letter-tight:-.01em;--space-0:0;--space-px:1px;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--header-height:56px;--bottom-nav-height:56px;--input-bar-height:56px;--card-padding:16px;--card-gap:8px;--page-padding:16px;--safe-bottom:env(safe-area-inset-bottom,0px);--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--feed-max-width:680px;--content-max-width:var(--feed-max-width);--sidebar-width:240px;--sidebar-collapsed-width:72px;--right-panel-width:320px;--split-list-width:320px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-pill:9999px;--radius-circle:50%;--icon-xs:12px;--icon-sm:14px;--icon-md:18px;--icon-lg:20px;--icon-xl:24px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #0000000f, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-glow:0 0 20px #f5a05c33;--shadow-card:0 1px 3px #0000000a, 0 0 0 1px #00000005;--shadow-card-hover:0 4px 12px #00000014, 0 0 0 1px #0000000a;--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}@keyframes like-bounce{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}to{transform:scale(1)}}@keyframes save-bounce{0%{transform:scale(1)}50%{transform:scale(1.25)rotate(-8deg)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.5}}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up-subtle{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.scroll-container{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.ui-element{-webkit-user-select:none;user-select:none}.content-text{-webkit-user-select:text;user-select:text}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.page-container{padding:var(--page-padding);padding-top:calc(var(--header-height) + var(--space-4));padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-4));flex:1;overflow-y:auto}.page-auth{min-height:100dvh;padding:var(--page-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.header{height:var(--header-height);-webkit-backdrop-filter:blur(12px)saturate(180%);padding:0 var(--page-padding);z-index:100;background:#ffffffd9;border-bottom:1px solid #0000000f;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header__title{font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:var(--letter-tight);flex:1}.header__back{justify-content:center;align-items:center;gap:var(--space-1);min-width:44px;min-height:44px;color:var(--color-gray-700);font-size:var(--text-base);padding:var(--space-2);margin-left:calc(-1 * var(--space-2));border-radius:var(--radius-md);transition:background var(--duration-fast);display:flex}.header__back:active{background:var(--color-gray-100)}.header__back:focus-visible,.header__action:focus-visible,.input-bar__send:focus-visible,.pin-banner:focus-visible,.comment-reply-btn:focus-visible{outline:2px solid var(--color-primary-300);outline-offset:2px}.header__action{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--color-gray-700);padding:var(--space-2);border-radius:var(--radius-circle);cursor:pointer;transition:background var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.header__action:active{background:var(--color-primary-50)}@media (hover:hover){.header__action:hover{background:var(--color-gray-100)}}.bottom-nav{height:calc(var(--bottom-nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:blur(12px)saturate(180%);z-index:100;background:#ffffffeb;border-top:1px solid #0000000f;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{font-size:var(--text-2xs);color:var(--color-gray-400);padding:var(--space-1-5) var(--space-4);transition:color var(--duration-fast);flex-direction:column;align-items:center;gap:1px;display:flex;position:relative}.bottom-nav__item--active{color:var(--color-primary-500);font-weight:var(--font-semibold)}.bottom-nav__badge{background:var(--color-like);min-width:18px;height:18px;color:var(--color-white);font-size:10px;font-weight:var(--font-bold);border-radius:var(--radius-pill);justify-content:center;align-items:center;padding:0 5px;display:flex;position:absolute;top:0;right:6px;box-shadow:0 2px 4px #f43f5e4d}.card{background:var(--surface-elevated);border-radius:var(--radius-lg);padding:var(--card-padding);box-shadow:var(--shadow-card);animation:card-enter .3s var(--ease-out) both}.card+.card{margin-top:var(--card-gap)}.card--interactive{transition:box-shadow var(--duration-normal), transform var(--duration-normal);cursor:pointer}.card--interactive:active{box-shadow:var(--shadow-xs);transform:scale(.985)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--font-medium);border-radius:var(--radius-pill);transition:all var(--duration-fast);-webkit-user-select:none;user-select:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;pointer-events:none}.btn--primary{background:var(--color-primary-400);color:var(--color-white);padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn--primary:active{background:var(--color-primary-600)}.btn--outlined{color:var(--color-gray-700);border:1px solid var(--color-gray-300);padding:var(--space-3) var(--space-6);font-size:var(--text-base);background:0 0}@media (hover:hover){.follow-btn--following:hover{border-color:var(--color-error);color:var(--color-error)}}.post-hashtag{color:var(--color-primary-500);cursor:pointer;font-weight:500;font:inherit;background:0 0;border:none;padding:0}.post-hashtag:focus-visible{outline:2px solid var(--color-primary-300);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:hover){.post-hashtag:hover{text-decoration:underline}}.profile-section{padding:var(--space-4);margin-bottom:var(--space-2);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-gray-100)}.profile-section__title{color:var(--color-primary-500);margin-bottom:var(--space-3);letter-spacing:.02em;font-size:13px;font-weight:600}.profile-label{color:var(--color-gray-500);margin-bottom:var(--space-1);font-size:12px;display:block}.btn--sm{padding:var(--space-1) var(--space-4);font-size:var(--text-sm)}.btn--full{width:100%}.input{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-gray-300);border-radius:var(--radius-lg);font-size:var(--text-base);background:var(--color-white);transition:border-color var(--duration-fast)}.input:focus{border-color:var(--color-primary-400);border-width:2px}.input--error{border-color:var(--color-error)}.input__label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-700);margin-bottom:var(--space-1);display:block}.input__label-required{color:var(--color-error);margin-left:var(--space-1);font-weight:var(--font-semibold)}.input__error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1)}.avatar{border-radius:var(--radius-circle);object-fit:cover;background:var(--color-gray-200);flex-shrink:0}.avatar--fallback{color:var(--color-gray-500);justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar--fallback-default{background:linear-gradient(180deg, var(--surface-fallback-top) 0%, var(--surface-fallback-bottom) 100%)}.avatar--fallback-anonymous{background:linear-gradient(180deg, var(--surface-fallback-anon-top) 0%, var(--surface-fallback-anon-bottom) 100%);color:var(--color-gray-600)}.avatar__fallback-icon{width:58%;height:58%;display:block;transform:translateY(6%)}.avatar--xs{width:24px;height:24px}.avatar--sm{width:32px;height:32px}.avatar--md{width:40px;height:40px}.avatar--lg{width:48px;height:48px}.avatar--xl{width:64px;height:64px}.avatar--2xl{width:80px;height:80px}.avatar--online{position:relative}.avatar--online:after{content:"";background:var(--color-success);border:2px solid var(--color-white);border-radius:var(--radius-circle);width:10px;height:10px;position:absolute;bottom:1px;right:1px}.tag-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:all var(--duration-fast);display:inline-flex}.tag-chip--filter{background:var(--color-gray-100);color:var(--color-gray-700)}.tag-chip--filter-active{background:var(--color-gray-900);color:var(--color-white)}.tag-chip--post{color:var(--color-primary-500);font-weight:var(--font-medium);background:0 0}.chip-scroll{gap:var(--space-2);padding-bottom:var(--space-2);padding-right:var(--space-4);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.action-bar{align-items:center;gap:var(--space-1);padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--color-gray-100);display:flex}.action-bar__item{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-gray-400);padding:var(--space-1-5) var(--space-2);border-radius:var(--radius-md);transition:color var(--duration-fast), background var(--duration-fast);display:flex}.action-bar__item:active{background:var(--color-gray-100)}@media (hover:hover){.action-bar__item:hover{background:var(--color-gray-50);color:var(--color-gray-700)}}.action-bar__item:disabled{opacity:.5;cursor:default}.action-bar__item:disabled:hover{background:0 0}.action-bar__item--saved{color:var(--color-primary-500)}.action-bar__item--saved .action-bar__icon{animation:save-bounce .35s var(--ease-spring)}.tab-bar{border-bottom:1px solid var(--color-gray-200);display:flex;position:relative}.tab-bar__item{text-align:center;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-gray-500);transition:color var(--duration-fast);flex:1;position:relative}.tab-bar__item--active{color:var(--color-primary-400)}.tab-bar__item--active:after{content:"";background:var(--color-primary-400);height:2px;transition:all var(--duration-normal) var(--ease-in-out);border-radius:1px;position:absolute;bottom:-1px;left:20%;right:20%}.overlay{z-index:200;animation:fade-in var(--duration-normal);background:#0006;position:fixed;inset:0}.bottom-sheet{background:var(--color-white);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-6) var(--page-padding) calc(var(--space-6) + var(--safe-bottom));z-index:201;animation:slide-up .35s var(--ease-out);max-height:85dvh;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.bottom-sheet__handle{background:var(--color-gray-300);width:36px;height:4px;margin:0 auto var(--space-4);border-radius:2px}.toast{top:calc(env(safe-area-inset-top,0px) + var(--space-4));left:var(--page-padding);right:var(--page-padding);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-white);z-index:300;animation:slide-down .3s var(--ease-out);align-items:center;gap:var(--space-2);display:flex;position:fixed}.toast__close{color:inherit;opacity:.75;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;display:inline-flex}.toast__close:hover,.toast__close:focus-visible{opacity:1;outline:none}@keyframes slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.toast--success{background:var(--color-success)}.toast--error{background:var(--color-error)}.toast--info{background:var(--color-gray-800)}.confirm-dialog__overlay{z-index:350;animation:fade-in var(--duration-fast) var(--ease-out);background:#00000073;position:fixed;inset:0}.confirm-dialog{left:var(--page-padding);right:var(--page-padding);background:var(--surface-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-5);z-index:351;animation:slide-up-subtle var(--duration-normal) var(--ease-out);position:fixed;top:50%;transform:translateY(-50%)}.confirm-dialog__title{font-size:var(--text-md);font-weight:var(--font-bold);color:var(--color-gray-800)}.confirm-dialog__description{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-gray-600);line-height:var(--leading-relaxed)}.confirm-dialog__actions{margin-top:var(--space-4);justify-content:flex-end;gap:var(--space-2);display:flex}.confirm-dialog__button--danger{background:var(--color-error);color:var(--color-white)}.input-bar{background:var(--color-white);border-top:1px solid var(--color-gray-200);padding:var(--space-2) var(--page-padding) calc(var(--space-2) + var(--safe-bottom));align-items:flex-end;gap:var(--space-2);z-index:150;display:flex;position:fixed;bottom:0;left:0;right:0}.input-bar__field{padding:var(--space-2) var(--space-4);background:var(--color-gray-100);font-size:var(--text-base);line-height:var(--leading-relaxed);resize:none;border:none;border-radius:20px;outline:none;flex:1;min-height:40px;max-height:120px;font-family:inherit;overflow-y:auto}.input-bar__field:focus{background:var(--color-gray-50);box-shadow:0 0 0 2px var(--color-primary-200)}.input-bar__send{border-radius:var(--radius-circle);background:var(--gradient-primary);width:44px;height:44px;color:var(--color-white);transition:background var(--duration-fast), transform var(--duration-fast);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.input-bar__send:not(:disabled):active{transform:scale(.9)}.input-bar__send:disabled{background:var(--color-gray-300);opacity:.55;cursor:default;transform:none}.bubble{min-width:40px;padding:var(--space-2) var(--space-3);font-size:var(--text-base);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere;animation:slide-up-subtle .2s var(--ease-out) both;border-radius:18px;display:inline-block}.bubble--other{background:var(--color-white);color:var(--color-gray-800);box-shadow:var(--shadow-xs);border-bottom-left-radius:4px}.bubble--own{background:var(--gradient-primary);color:var(--color-white);border-bottom-right-radius:4px}.chat-date-divider{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4);display:flex}.chat-date-divider__line{background:var(--color-gray-200);flex:1;height:1px}.chat-date-divider__label{font-size:var(--text-xs);color:var(--color-gray-400);font-weight:var(--font-medium);white-space:nowrap}.profile-banner{background:var(--gradient-warm);width:100%;height:120px;margin-top:calc(-1 * var(--space-4));position:relative}.profile-card{padding:0 var(--page-padding);animation:slide-up-subtle .3s var(--ease-out) both;margin-top:-48px;position:relative}.profile-card__inner{background:var(--surface-elevated);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-4) var(--space-4);box-shadow:var(--shadow-md);text-align:center;position:relative}.profile-card__avatar{border:4px solid var(--surface-elevated);border-radius:var(--radius-circle);box-shadow:var(--shadow-sm);position:absolute;top:-40px;left:50%;transform:translate(-50%)}.profile-card__name{font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:var(--letter-tight);margin-top:var(--space-10)}.profile-card__meta{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.profile-card__badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-medium);background:var(--color-accent-50);color:var(--color-accent-500);padding:2px 8px;display:inline-flex}.profile-card__field{font-size:var(--text-sm);color:var(--color-gray-500)}.profile-card__bio{font-size:var(--text-sm);color:var(--color-gray-600);line-height:var(--leading-relaxed);margin-top:var(--space-2);white-space:pre-wrap;max-width:300px;margin-left:auto;margin-right:auto}.profile-stats{justify-content:center;gap:var(--space-1);margin-top:var(--space-4);display:flex}.profile-stats__item{padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);transition:background var(--duration-fast);cursor:pointer;flex-direction:column;align-items:center;min-width:64px;display:flex}.profile-stats__item:active{background:var(--color-gray-100)}.profile-stats__value{font-size:var(--text-md);font-weight:var(--font-bold);color:var(--color-gray-800)}.profile-stats__label{font-size:var(--text-2xs);color:var(--color-gray-400);font-weight:var(--font-medium);margin-top:1px}.empty-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-8);text-align:center;flex-direction:column;display:flex}.empty-state__icon{font-size:3rem}.empty-state__title{font-size:var(--text-md);font-weight:var(--font-medium);color:var(--color-gray-600)}.empty-state__description{max-width:28rem;font-size:var(--text-sm);color:var(--color-gray-500);line-height:var(--leading-relaxed)}.empty-state__action{color:var(--color-primary-400);font-weight:var(--font-medium);font-size:var(--text-base)}.skeleton{background:linear-gradient(90deg, var(--color-gray-100) 25%, var(--color-gray-200) 50%, var(--color-gray-100) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.action-bar{align-items:center;gap:var(--space-4);padding:var(--space-3) 0 0;margin-top:var(--space-3);border-top:1px solid var(--color-gray-100);display:flex}.action-bar__item{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-gray-500);transition:color var(--duration-fast), transform var(--duration-fast);cursor:pointer;padding:var(--space-1);background:0 0;border:none;display:flex}.action-bar__item:hover{color:var(--color-gray-700)}.action-bar__item--active{color:var(--color-like)}.action-bar__item--active .action-bar__icon{animation:like-bounce .4s var(--ease-out)}.content-text{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-gray-800);word-break:break-word}.input__helper{font-size:var(--text-xs);color:var(--color-gray-400);margin-top:var(--space-1)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-primary{color:var(--color-primary-400)}.text-error{color:var(--color-error)}.text-mention{color:var(--color-mention);font-weight:var(--font-semibold)}.text-center{text-align:center}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.offline-banner{z-index:400;background:var(--color-gray-800);color:var(--color-white);text-align:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);animation:slide-down .3s var(--ease-out);position:fixed;top:0;left:0;right:0}.scroll-sentinel{width:100%;height:1px}.load-more-spinner{padding:var(--space-4);justify-content:center;display:flex}.load-more-spinner:after{content:"";border:2px solid var(--color-gray-200);border-top-color:var(--color-primary-400);border-radius:var(--radius-circle);width:24px;height:24px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.following-scroll-section{padding:var(--space-3) 0;border-bottom:1px solid var(--color-gray-200);margin-bottom:var(--space-3)}.following-scroll{gap:var(--space-4);padding-bottom:var(--space-2);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.following-scroll::-webkit-scrollbar{display:none}.following-scroll__item{align-items:center;gap:var(--space-1);cursor:pointer;padding:var(--space-1);transition:transform var(--duration-fast);background:0 0;border:none;flex-direction:column;flex-shrink:0;display:flex}.following-scroll__item:active{transform:scale(.95)}.following-scroll__name{font-size:var(--text-xs);color:var(--color-gray-700);text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:56px;overflow:hidden}.follow-list-item{transition:background-color var(--duration-fast)}.emoji-reactions{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex;position:relative}.emoji-reaction__chip{border-radius:var(--radius-pill);background:var(--color-gray-100);font-size:var(--text-xs);cursor:pointer;transition:all var(--duration-fast);border:1.5px solid #0000;align-items:center;gap:3px;padding:2px 8px;display:inline-flex}.emoji-reaction__chip--active{background:var(--color-accent-50);border-color:var(--color-accent-300)}.emoji-reaction__emoji{font-size:14px;line-height:1}.emoji-reaction__count{font-size:var(--text-2xs);font-weight:var(--font-semibold);color:var(--color-gray-600)}.emoji-reaction__add{border-radius:var(--radius-pill);background:var(--color-gray-100);border:1.5px dashed var(--color-gray-300);width:28px;height:24px;font-size:var(--text-sm);color:var(--color-gray-400);cursor:pointer;transition:all var(--duration-fast);justify-content:center;align-items:center;display:inline-flex}.emoji-reaction__add:hover,.emoji-reaction__add:active{background:var(--color-gray-200);color:var(--color-gray-600)}.emoji-picker__backdrop{z-index:49;position:fixed;inset:0}.emoji-picker{gap:var(--space-0-5);padding:var(--space-1-5) var(--space-2);background:var(--surface-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:50;animation:slide-up-subtle .15s var(--ease-out);display:flex;position:absolute;bottom:calc(100% + 4px);left:0}.emoji-picker__item{padding:var(--space-1);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast), transform var(--duration-fast);background:0 0;border:none;font-size:22px;line-height:1}.emoji-picker__item:active{background:var(--color-gray-100);transform:scale(1.2)}.activity-graph{padding:var(--space-4);background:var(--surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.activity-graph__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.activity-graph__title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-700)}.activity-graph__total{font-size:var(--text-xs);color:var(--color-gray-400)}.activity-graph__months{margin-bottom:var(--space-1);grid-template-columns:repeat(12,1fr);display:grid}.activity-graph__month{color:var(--color-gray-400);font-size:9px;font-weight:var(--font-medium)}.activity-graph__grid{gap:3px;display:flex}.activity-graph__week{flex-direction:column;gap:3px;display:flex}.activity-graph__cell{width:12px;height:12px;transition:transform var(--duration-fast);border-radius:3px}.activity-graph__cell:hover{transform:scale(1.4)}.activity-graph__legend{margin-top:var(--space-2);justify-content:flex-end;align-items:center;gap:3px;display:flex}.activity-graph__legend-label{color:var(--color-gray-400);padding:0 2px;font-size:9px}.notification-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-gray-100);transition:background var(--duration-fast);color:inherit;text-decoration:none;display:flex}.notification-item:active{background:var(--color-gray-50)}.notification-item__avatar{flex-shrink:0;position:relative}.notification-item__icon-circle{border-radius:var(--radius-circle);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.notification-item__badge{border-radius:var(--radius-circle);border:2px solid var(--color-white);justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;bottom:-2px;right:-2px}.notification-item__content{flex:1;min-width:0}.notification-item__text{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.notification-item__actor{font-weight:var(--font-semibold)}.notification-item__body{color:var(--color-gray-600)}.notification-item__time{font-size:var(--text-xs);color:var(--color-gray-400);margin-top:2px}.notification-item__deadend-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.notification-item__deadend-button{color:var(--color-primary-500);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;background:0 0;border:none;padding:0}.notification-item__deadend-button--subtle{color:var(--color-gray-500);font-weight:var(--font-medium)}.channel-info__header{text-align:center;padding:var(--space-6) var(--space-4);background:var(--gradient-warm);color:#fff}.channel-info__emoji{margin-bottom:var(--space-2);font-size:48px}.channel-info__name{font-size:var(--text-xl);font-weight:var(--font-bold)}.channel-info__desc{font-size:var(--text-sm);opacity:.9;margin-top:var(--space-1)}.channel-info__section{padding:var(--space-4)}.channel-info__section-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-500);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.05em}.channel-info__member{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.channel-info__member-name{font-size:var(--text-sm);font-weight:var(--font-medium)}.channel-info__member-role{font-size:var(--text-xs);color:var(--color-gray-400)}.pin-banner{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);background:var(--color-accent-50);border-bottom:1px solid var(--color-accent-200);font-size:var(--text-xs);color:var(--color-accent-700);cursor:pointer;transition:background var(--duration-fast);text-align:left;border:none;display:flex}.pin-banner:active{background:var(--color-accent-100)}.pin-banner__text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.media-grid{padding:var(--space-2);grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.media-grid__item{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--duration-fast);overflow:hidden}.media-grid__item:active{opacity:.8}.media-grid__item img{object-fit:cover;width:100%;height:100%}.comment-reply{margin-left:var(--space-8);padding-left:var(--space-3);border-left:2px solid var(--color-gray-200)}.comment-reply-btn{min-height:44px;font-size:var(--text-xs);color:var(--color-gray-400);cursor:pointer;padding:0 var(--space-2);border-radius:var(--radius-md);transition:color var(--duration-fast);background:0 0;border:none;align-items:center;gap:4px;display:inline-flex}.comment-reply-btn:hover,.comment-reply-btn:active{color:var(--color-primary-400)}@media (min-width:768px){body{border-left:none;border-right:none;max-width:100%;margin:0}.page-container{max-width:var(--content-max-width);width:100%;padding-bottom:calc(var(--safe-bottom) + var(--space-4));margin:0 auto}.bottom-nav{display:none}.input-bar,.bottom-sheet{max-width:var(--content-max-width);left:50%;transform:translate(-50%)}.toast{max-width:var(--content-max-width);left:50%;right:auto;transform:translate(-50%)}.page-auth{max-width:400px;margin:0 auto}}.sidebar{display:none}@media (min-width:768px){.app-layout{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--color-gray-200);height:100vh;padding:calc(var(--header-height) + var(--space-4)) var(--space-4) var(--space-4);gap:var(--space-2);background:var(--surface-primary);z-index:110;flex-direction:column;display:flex;position:sticky;top:0}.sidebar__logo{align-items:center;gap:var(--space-2);padding:var(--space-3);font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-primary-500);letter-spacing:var(--letter-tight);display:flex}.sidebar__nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar__item{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-pill);color:var(--color-gray-700);font-size:var(--text-base);font-weight:var(--font-medium);transition:background var(--duration-fast), color var(--duration-fast);display:flex;position:relative}.sidebar__item:hover{background:var(--color-gray-100)}.sidebar__item--active{color:var(--color-primary-500);font-weight:var(--font-semibold);background:var(--color-primary-50)}.sidebar__badge{background:var(--color-like);min-width:18px;height:18px;color:var(--color-white);font-size:10px;font-weight:var(--font-bold);border-radius:var(--radius-pill);justify-content:center;align-items:center;margin-left:auto;padding:0 5px;display:flex;box-shadow:0 2px 4px #f43f5e4d}.sidebar__post-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3);margin-top:var(--space-2);background:var(--gradient-primary);color:var(--color-white);border-radius:var(--radius-pill);font-weight:var(--font-bold);box-shadow:var(--shadow-sm);transition:transform var(--duration-fast), box-shadow var(--duration-fast);display:flex}.sidebar__post-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.input-bar,.bottom-sheet,.toast{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width)) / 2)}}@media (min-width:768px) and (max-width:1023px){.app-layout{grid-template-columns:var(--sidebar-collapsed-width) 1fr}.sidebar__label,.sidebar__logo-text{display:none}.sidebar__item{padding:var(--space-3);justify-content:center}.sidebar__post-btn{padding:var(--space-3)}.sidebar__badge{margin-left:0;position:absolute;top:2px;right:2px}.input-bar,.bottom-sheet,.toast{left:calc(var(--sidebar-collapsed-width) + (100vw - var(--sidebar-collapsed-width)) / 2)}}.right-panel{display:none}@media (min-width:1280px){.app-layout[data-has-right-panel=true]{grid-template-columns:var(--sidebar-width) 1fr var(--right-panel-width)}.app-layout[data-has-right-panel=true] .right-panel{gap:var(--space-6);height:100vh;padding:calc(var(--header-height) + var(--space-4)) var(--space-4) var(--space-4);border-left:1px solid var(--color-gray-200);background:var(--surface-primary);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.right-panel__section{gap:var(--space-1);padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--radius-lg);flex-direction:column;display:flex}.right-panel__section h2{font-size:var(--text-md);font-weight:var(--font-bold);color:var(--color-gray-800);margin-bottom:var(--space-2)}.right-panel__tag{padding:var(--space-2);color:var(--color-gray-700);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);transition:background var(--duration-fast)}.right-panel__tag:hover{background:var(--color-gray-100)}.right-panel__user{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--duration-fast);display:flex}.right-panel__user:hover{background:var(--color-gray-100)}.right-panel__user-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-800)}.right-panel__more{padding:var(--space-2);color:var(--color-primary-500);font-size:var(--text-sm);font-weight:var(--font-semibold)}.right-panel__empty{padding:var(--space-2);font-size:var(--text-sm);color:var(--color-gray-500)}.right-panel__footer{gap:var(--space-2);padding:var(--space-2);font-size:var(--text-xs);color:var(--color-gray-500);flex-wrap:wrap;display:flex}.right-panel__footer a{color:var(--color-gray-500)}.right-panel__footer a:hover{color:var(--color-gray-700)}.app-layout[data-has-right-panel=true] .input-bar,.app-layout[data-has-right-panel=true] .bottom-sheet,.app-layout[data-has-right-panel=true] .toast{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width) - var(--right-panel-width)) / 2)}}.split-layout__list,.split-layout__placeholder{display:none}@media (min-width:768px){.app-shell:has(.split-layout--active) .page-container{max-width:none;margin:0;padding-top:0;padding-left:0;padding-right:0}.split-layout--active{grid-template-columns:var(--split-list-width) 1fr;gap:0;min-height:100%;display:grid}.split-layout__list{border-right:1px solid var(--color-gray-200);padding:var(--space-4);display:block;overflow-y:auto}.split-layout__detail{min-width:0;padding:var(--space-4)}.split-layout__list .header,.split-layout__detail .header{max-width:none;position:sticky;top:0;left:auto;right:auto;transform:none}.split-layout--list-route .split-layout__detail>:not(.split-layout__placeholder){display:none}.split-layout__placeholder{min-height:100%;padding:var(--space-8);color:var(--color-gray-500);font-size:var(--text-md);text-align:center;justify-content:center;align-items:center;display:flex}.app-layout[data-split-layout=true] .input-bar,.app-layout[data-split-layout=true] .bottom-sheet,.app-layout[data-split-layout=true] .toast{max-width:calc(100vw - var(--sidebar-width) - var(--split-list-width));left:calc(var(--sidebar-width) + var(--split-list-width) + (100vw - var(--sidebar-width) - var(--split-list-width)) / 2);right:auto}}@media (min-width:768px) and (max-width:1023px){.app-layout[data-split-layout=true] .input-bar,.app-layout[data-split-layout=true] .bottom-sheet,.app-layout[data-split-layout=true] .toast{max-width:calc(100vw - var(--sidebar-collapsed-width) - var(--split-list-width));left:calc(var(--sidebar-collapsed-width) + var(--split-list-width) + (100vw - var(--sidebar-collapsed-width) - var(--split-list-width)) / 2)}}.image-viewer{z-index:9999;background:#000000e6;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.image-viewer__controls{top:max(env(safe-area-inset-top,12px), 12px);z-index:10;gap:8px;display:flex;position:absolute;right:12px}.image-viewer__btn{border-radius:var(--radius-circle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#ffffff26;border:none;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:flex}.image-viewer__btn:hover{background:#ffffff40}.image-viewer__img{object-fit:contain;border-radius:var(--radius-md);max-width:95vw;max-height:90vh;transition:transform .2s}.post-menu__backdrop{z-index:199;position:fixed;inset:0}.post-menu{background:var(--surface-elevated);border-radius:var(--radius-lg);z-index:200;min-width:140px;animation:.15s fadeIn;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 8px 30px #0000001f,0 2px 8px #0000000f}.post-menu__item{width:100%;font-size:var(--text-sm);color:var(--color-gray-700);align-items:center;gap:8px;padding:12px 16px;transition:background .12s;display:flex}.post-menu__item:hover{background:var(--color-gray-50)}.post-menu__item--danger{color:var(--color-error)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-gray-50:#1c1917;--color-gray-100:#292524;--color-gray-200:#44403c;--color-gray-300:#57534e;--color-gray-400:#78716c;--color-gray-500:#a8a29e;--color-gray-600:#d6d3d1;--color-gray-700:#e7e5e4;--color-gray-800:#f5f5f4;--color-gray-900:#fafaf9;--surface-primary:#1c1917;--surface-secondary:#292524;--surface-elevated:#292524;--gradient-card:linear-gradient(180deg, #292524e6 0%, #292524 100%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:not([data-theme=light]) body{color:#f5f5f4;background-color:#1c1917}:root:not([data-theme=light]) .card{background:#292524;border-color:#ffffff0f}:root:not([data-theme=light]) .input{color:#f5f5f4;background:#292524;border-color:#ffffff1a}:root:not([data-theme=light]) .header{background:#1c1917eb;border-bottom-color:#ffffff0f}:root:not([data-theme=light]) .bottom-nav{background:#1c1917f2;border-top-color:#ffffff0f}:root:not([data-theme=light]) .overlay{background:#0009}:root:not([data-theme=light]) .bottom-sheet{background:#292524}:root:not([data-theme=light]) .tab-bar{border-bottom-color:#ffffff0f}:root:not([data-theme=light]) .profile-banner{background:linear-gradient(135deg,#44403c 0%,#292524 100%)}:root:not([data-theme=light]) .profile-card{background:#292524}:root:not([data-theme=light]) .post-menu{background:#292524;box-shadow:0 8px 30px #0006}:root:not([data-theme=light]) .post-menu__item:hover{background:#44403c}:root:not([data-theme=light]) .notification-item{border-bottom-color:#ffffff0a}:root:not([data-theme=light]) .tag-chip{color:#d6d3d1;background:#44403c}:root:not([data-theme=light]) .tag-chip--selected,:root:not([data-theme=light]) .tag-chip--filter.tag-chip--selected{background:var(--color-primary-600);color:#fff}}[data-theme=dark]{--color-gray-50:#1c1917;--color-gray-100:#292524;--color-gray-200:#44403c;--color-gray-300:#57534e;--color-gray-400:#78716c;--color-gray-500:#a8a29e;--color-gray-600:#d6d3d1;--color-gray-700:#e7e5e4;--color-gray-800:#f5f5f4;--color-gray-900:#fafaf9;--surface-primary:#1c1917;--surface-secondary:#292524;--surface-elevated:#292524;--gradient-card:linear-gradient(180deg, #292524e6 0%, #292524 100%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] body{color:#f5f5f4;background-color:#1c1917}[data-theme=dark] .card{background:#292524;border-color:#ffffff0f}[data-theme=dark] .input{color:#f5f5f4;background:#292524;border-color:#ffffff1a}[data-theme=dark] .header{background:#1c1917eb;border-bottom-color:#ffffff0f}[data-theme=dark] .bottom-nav{background:#1c1917f2;border-top-color:#ffffff0f}[data-theme=dark] .bottom-sheet{background:#292524}[data-theme=dark] .tab-bar{border-bottom-color:#ffffff0f}[data-theme=dark] .profile-banner{background:linear-gradient(135deg,#44403c 0%,#292524 100%)}[data-theme=dark] .profile-card{background:#292524}[data-theme=dark] .post-menu{background:#292524;box-shadow:0 8px 30px #0006}[data-theme=dark] .post-menu__item:hover{background:#44403c}[data-theme=dark] .tag-chip{color:#d6d3d1;background:#44403c}[data-theme=dark] .tag-chip--selected{background:var(--color-primary-600);color:#fff}