:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-rgb:37,99,235;--color-bg-body:#f8fafc;--color-bg-body-rgb:248,250,252;--color-bg-surface:#ffffff;--color-bg-surface-rgb:255,255,255;--color-bg-surface-alt:#f1f5f9;--color-bg-surface-alt-rgb:241,245,249;--color-text-main:#0f172a;--color-text-main-rgb:15,23,42;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-mark-bg:#fef08a;--color-mark-text:#854d0e;--color-border:#e2e8f0;--color-border-rgb:226,232,240;--color-shadow:rgba(0, 0, 0, 0.05);--color-overlay:rgba(0, 0, 0, 0.3);--color-tooltip-bg:rgba(0, 0, 0, 0.85);--color-tooltip-text:#ffffff;--color-tooltip-border:rgba(255, 255, 255, 0.1);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--container-width:1200px;--header-height:64px;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:1rem;--hero-height:calc(100dvh - var(--header-height));--hero-min-height:calc(600px - var(--header-height));--hero-mobile-height:calc(90dvh - var(--header-height));--hero-mobile-min-height:calc(480px - var(--header-height));--hero-bg-scale:1.05;--hero-overlay-spot-size-x:1200px;--hero-overlay-spot-size-y:500px;--hero-overlay-spot-x:70%;--hero-overlay-spot-y:10%;--hero-overlay-spot-rgb:37,99,235;--hero-overlay-spot-alpha:0.35;--hero-overlay-dark-rgb:7,12,24;--hero-overlay-start-alpha:0.35;--hero-overlay-mid-alpha:0.7;--hero-overlay-end-alpha:0.85;--hero-title-max-width:760px;--hero-subtitle-max-width:600px;--hero-text-color:#ffffff;--hero-text-shadow:0 10px 30px rgba(0, 0, 0, 0.45);--hero-button-shadow:0 10px 24px rgba(37, 99, 235, 0.35);--hero-button-hover-bg:#0f172a;--hero-progress-width:240px;--hero-progress-height:3px;--hero-progress-radius:999px;--hero-progress-bg:rgba(255, 255, 255, 0.25);--hero-progress-fill:rgba(255, 255, 255, 0.95);--transition-fast:150ms ease;--transition-normal:300ms ease;--color-status-connected:#22c55e;--color-status-connected-shadow:rgba(34, 197, 94, 0.4);--color-status-disconnected:#94a3b8;--color-status-error:#ef4444;--color-status-success:#10b981;--color-status-warning:#f59e0b;--color-status-info:#3b82f6}@media (max-width:768px){:root{--spacing-md:0.75rem;--spacing-lg:1rem;--spacing-xl:1.25rem}}@media (prefers-color-scheme:dark){:root{--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-rgb:59,130,246;--color-bg-body:#06070b;--color-bg-body-rgb:6,7,11;--color-bg-surface:#0d1117;--color-bg-surface-rgb:13,17,23;--color-bg-surface-alt:#161b22;--color-bg-surface-alt-rgb:22,27,34;--color-text-main:#f1f5f9;--color-text-main-rgb:241,245,249;--color-text-secondary:#cbd5e1;--color-text-muted:#64748b;--color-mark-bg:rgba(234, 179, 8, 0.2);--color-mark-text:#fde047;--color-border:#1f2430;--color-border-rgb:31,36,48;--color-shadow:rgba(0, 0, 0, 0.6);--color-overlay:rgba(0, 0, 0, 0.6);--color-tooltip-bg:rgba(0, 0, 0, 0.85);--color-tooltip-text:#f8fafc;--color-tooltip-border:rgba(255, 255, 255, 0.1);--hero-overlay-spot-alpha:0.25;--hero-overlay-start-alpha:0.5;--hero-overlay-mid-alpha:0.8;--hero-overlay-end-alpha:0.9;--hero-button-shadow:0 12px 28px rgba(0, 0, 0, 0.45);--hero-button-hover-bg:#020617;--hero-progress-bg:rgba(255, 255, 255, 0.22);--hero-progress-fill:rgba(255, 255, 255, 0.92)}}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";background-color:var(--color-bg-body);color:var(--color-text-main);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color var(--transition-normal),color var(--transition-normal);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.site-wrapper{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.site-main{flex:1;width:100%}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary)}img{max-width:100%;height:auto;display:block}mark{background-color:var(--color-mark-bg);color:var(--color-mark-text);padding:.1em .2em;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-width);margin:var(--spacing-xl) auto 0;padding:0 var(--spacing-md)}.site-footer{padding:var(--spacing-xl) 0;margin-top:var(--spacing-xl);background-color:var(--color-bg-surface);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-secondary);font-size:.875rem}.text-center{text-align:center}.mt-1{margin-top:var(--spacing-md)}.mt-2{margin-top:var(--spacing-lg)}.connection-status{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background-color:var(--color-status-disconnected);vertical-align:middle;margin-left:var(--spacing-sm);transition:background-color var(--transition-normal),box-shadow var(--transition-normal);cursor:help}.connection-status--connected{background-color:var(--color-status-connected);box-shadow:0 0 4px var(--color-status-connected-shadow)}.connection-status--disconnected{background-color:var(--color-status-error);animation:status-pulse 2s infinite}@keyframes status-pulse{0%{opacity:1}50%{opacity:.5}100%{opacity:1}}[title],time{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:100%;margin-top:0}.header-left{display:flex;align-items:center;flex:0 0 auto;z-index:110}.header-center{display:flex;align-items:center;justify-content:center;flex:1 1 auto}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:20px;flex:0 0 auto;z-index:110}.site-logo__text{font-family:'Segoe UI',sans-serif;font-weight:700;letter-spacing:-.5px;margin-left:8px}.nav-menu{display:flex;list-style:none;margin:0;padding:0;gap:32px}.nav-menu__item{position:relative;height:100%;display:flex;align-items:center}.nav-menu__link{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-weight:500;font-size:.95rem;padding:4px 0;position:relative;transition:color .2s ease}.nav-menu__link::after{content:'';position:absolute;bottom:-4px;left:0;width:100%;height:2px;background-color:var(--color-primary);transform:scaleX(0);transform-origin:right;transition:transform .2s ease}.nav-menu__link:hover{color:var(--color-text-main)}.nav-menu__link:hover::after{transform:scaleX(1);transform-origin:left}.nav-menu__item--active .nav-menu__link{color:var(--color-primary);font-weight:600}.nav-menu__item--active .nav-menu__link::after{transform:scaleX(1);background-color:var(--color-primary)}.nav-menu__arrow{font-size:.75em;margin-left:4px;transition:transform .2s}.nav-menu__item--has-sub:hover .nav-menu__arrow{transform:rotate(180deg)}.nav-dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:2px;box-shadow:0 4px 12px rgba(0,0,0,.08);min-width:160px;padding:8px 0;opacity:0;visibility:hidden;transition:all .15s cubic-bezier(.4, 0, .2, 1);z-index:100;margin-top:12px}.nav-dropdown::before{content:'';position:absolute;top:-12px;left:0;width:100%;height:12px}.nav-menu__item--has-sub:hover .nav-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.nav-dropdown__item{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--color-text-secondary);font-size:.9rem;transition:background-color .1s,color .1s}.nav-dropdown__item.active,.nav-dropdown__item:hover{background-color:var(--color-bg-surface-alt);color:var(--color-primary)}.nav-dropdown__item i{width:16px;text-align:center;font-size:.9em}.nav-user{display:flex;align-items:center}.nav-user__avatar{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);cursor:pointer;object-fit:cover;transition:border-color .2s}.nav-user__avatar:hover{border-color:var(--color-primary)}.nav-user__login-btn{background:0 0;color:var(--color-text-main);border:1px solid transparent;padding:4px;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-user__login-btn:hover{color:var(--color-primary);background-color:var(--color-bg-surface-alt)}.nav-toggle{display:none;background:0 0;border:none;cursor:pointer;padding:4px;z-index:120}.nav-toggle__icon{display:block;width:24px;height:2px;background-color:var(--color-text-main);position:relative;transition:background-color .3s}.nav-toggle__icon::after,.nav-toggle__icon::before{content:'';position:absolute;width:100%;height:100%;background-color:var(--color-text-main);transition:transform .3s}.nav-toggle__icon::before{transform:translateY(-7px)}.nav-toggle__icon::after{transform:translateY(7px)}.nav-toggle--active .nav-toggle__icon{background-color:transparent}.nav-toggle--active .nav-toggle__icon::before{transform:translateY(0) rotate(45deg)}.nav-toggle--active .nav-toggle__icon::after{transform:translateY(0) rotate(-45deg)}@media (max-width:900px){.header-center{position:fixed;top:0;right:0;width:0;max-width:320px;height:100vh;background-color:rgba(var(--color-bg-surface-rgb),.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:calc(var(--header-height) + 2rem) 0 2rem;box-shadow:-10px 0 30px var(--color-shadow);transform:translateX(100%);visibility:hidden;transition:transform .4s cubic-bezier(.16, 1, .3, 1),width 0s .4s,visibility 0s .4s;z-index:100;display:block;overflow-y:auto}.nav-toggle{display:block}.nav-menu{flex-direction:column;gap:0;width:100%;padding:0 16px}.nav-menu__item{width:100%;display:block;height:auto;border-bottom:1px solid rgba(var(--color-border-rgb),.6);opacity:0;transform:translateX(20px);transition:opacity .3s ease,transform .3s ease}.header-center.is-open .nav-menu__item{opacity:1;transform:translateX(0)}.header-center.is-open .nav-menu__item:first-child{transition-delay:0.1s}.header-center.is-open .nav-menu__item:nth-child(2){transition-delay:0.15s}.header-center.is-open .nav-menu__item:nth-child(3){transition-delay:0.2s}.header-center.is-open .nav-menu__item:nth-child(4){transition-delay:0.25s}.header-center.is-open .nav-menu__item:nth-child(5){transition-delay:0.3s}.header-center.is-open .nav-menu__item:nth-child(6){transition-delay:0.35s}.nav-menu__link{width:100%;padding:18px 12px;font-size:1.1rem;justify-content:space-between;color:var(--color-text-main);border-radius:8px}.nav-menu__link::after{display:none}.nav-menu__link:hover{background-color:rgba(var(--color-text-main-rgb),.03)}.nav-menu__item--active .nav-menu__link{color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05);font-weight:600}.nav-dropdown{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;margin:0;padding:0;border-radius:0;background-color:transparent;display:none;padding-left:12px}.nav-menu__item--expanded .nav-dropdown{display:block;animation:slideDown .3s ease}.nav-menu__item--has-sub:hover .nav-dropdown{transform:none}.nav-menu__item--expanded .nav-menu__arrow{transform:rotate(180deg)}.nav-dropdown__item{padding:14px 16px;border-left:2px solid rgba(var(--color-text-main-rgb),.08);font-size:1rem;margin:4px 0;border-radius:0 8px 8px 0}.nav-dropdown__item.active{border-left-color:var(--color-primary);background-color:rgba(var(--color-text-main-rgb),.03);color:var(--color-primary);font-weight:600}.header-center.is-open{transform:translateX(0);width:100%;visibility:visible;transition:transform .4s cubic-bezier(.16, 1, .3, 1),width 0s,visibility 0s}.mobile-menu-overlay{position:fixed;inset:0;background-color:var(--color-overlay);backdrop-filter:blur(2px);z-index:99;opacity:0;visibility:hidden;transition:opacity .3s}.mobile-menu-overlay.is-open{opacity:1;visibility:visible}}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.site-header{height:var(--header-height);background-color:rgba(255,255,255,.8);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;backdrop-filter:blur(10px)}@media (prefers-color-scheme:dark){.site-header{background-color:rgba(30,41,59,.8)}}.site-header__inner{height:100%;display:flex;align-items:center;justify-content:space-between}.site-logo{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700;font-size:1.25rem;color:var(--color-text-main)}.site-logo__img{height:32px;width:32px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-surface-alt)}::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:4px;border:2px solid var(--color-bg-surface-alt)}::-webkit-scrollbar-thumb:hover{background-color:#94a3b8}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background-color:#475569;border-color:#1e293b}::-webkit-scrollbar-thumb:hover{background-color:#64748b}}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xl)}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 var(--spacing-sm);border-radius:var(--radius-md);background-color:var(--color-bg-surface);color:var(--color-text-main);border:1px solid var(--color-border);font-size:.9rem;font-weight:500;transition:all var(--transition-fast);cursor:pointer;text-decoration:none}.pagination a:hover{background-color:var(--color-bg-surface-alt);color:var(--color-primary);border-color:var(--color-primary)}.pagination .pagination__item--active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);pointer-events:none}.pagination .pagination__item--disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-bg-surface-alt)}.search-box{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--color-border);box-shadow:0 1px 3px var(--color-shadow);transition:box-shadow var(--transition-normal)}.search-box:focus-within{box-shadow:0 4px 6px var(--color-shadow);border-color:var(--color-primary)}.search-box__form{display:flex;gap:var(--spacing-sm)}.search-box__input{flex:1;width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-surface-alt);color:var(--color-text-main);font-size:.95rem;transition:all var(--transition-fast);outline:0}.search-box__input:focus{background-color:var(--color-bg-surface);border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(59,130,246,.2)}.search-box__input::placeholder{color:var(--color-text-muted)}.search-box__button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;transition:background-color var(--transition-fast),transform var(--transition-fast);display:flex;align-items:center;justify-content:center}.search-box__button:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}.search-box__button:active{transform:translateY(0)}.search-page{padding:var(--spacing-lg) var(--spacing-md);max-width:var(--container-width);margin:0 auto;width:100%}.search-page__layout{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-xl);align-items:start}@media (max-width:992px){.search-page__layout{grid-template-columns:1fr}}.search-header{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:0 2px 8px rgba(0,0,0,.04)}@media (prefers-color-scheme:dark){.search-header{box-shadow:0 2px 12px rgba(0,0,0,.2);border-color:rgba(var(--color-border-rgb),.3)}}.search-header__info{margin-bottom:var(--spacing-sm)}.search-header__title{font-size:1.75rem;color:var(--color-text-main);font-weight:700;margin:0;display:flex;align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap}.search-header__keyword{color:var(--color-primary);font-style:italic}.search-header__meta{color:var(--color-text-muted);font-size:.9rem;padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-bg-surface-alt);border-radius:99px;display:inline-block}.search-results{display:flex;flex-direction:column;gap:var(--spacing-lg)}.search-results--empty{text-align:center;padding:calc(var(--spacing-xl) * 2);background:var(--color-bg-surface);border-radius:var(--radius-lg);border:2px dashed var(--color-border);color:var(--color-text-secondary)}.search-results--empty p{margin:var(--spacing-sm) 0}.search-card{background:var(--color-bg-surface);border-radius:var(--radius-lg);overflow:hidden;display:flex;gap:0;border:1px solid var(--color-border);transition:all var(--transition-normal) cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 8px rgba(0,0,0,.04)}@media (prefers-color-scheme:dark){.search-card{box-shadow:0 2px 12px rgba(0,0,0,.2);border-color:rgba(var(--color-border-rgb),.3)}}.search-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.12);border-color:var(--color-primary)}@media (prefers-color-scheme:dark){.search-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.4)}}@media (min-width:769px){.search-card{flex-direction:row;min-height:180px}.search-card__cover{width:280px;flex-shrink:0}}@media (max-width:768px){.search-card{flex-direction:column;min-height:auto}.search-card__cover{width:100%;aspect-ratio:16/9;min-height:180px}}.search-card__cover{position:relative;overflow:hidden;background-color:var(--color-bg-surface-alt)}.search-card__cover img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.search-card:hover .search-card__cover img{transform:scale(1.08)}.search-card__content{padding:var(--spacing-lg);display:flex;flex-direction:column;flex:1;min-width:0}.search-card__header{margin-bottom:var(--spacing-md)}.search-card__meta{display:flex;gap:var(--spacing-md);font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.search-card__meta-item{display:flex;align-items:center;gap:.35rem}.search-card__title{font-size:1.35rem;font-weight:700;margin:0;line-height:1.5;color:var(--color-text-main);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;hyphens:auto}.search-card__title a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.search-card__title a:hover{color:var(--color-primary)}.search-card__excerpt mark,.search-card__title mark{background-color:var(--color-mark-bg);color:var(--color-mark-text);padding:.1em .3em;border-radius:var(--radius-sm);font-weight:600}.search-card__excerpt{font-size:.9rem;color:var(--color-text-secondary);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--spacing-md);flex:1;word-break:break-word}.search-card__excerpt p{display:inline;margin:0}.search-card__footer{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-md);margin-top:auto;border-top:1px solid var(--color-border);gap:var(--spacing-sm)}.search-card__tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);flex:1;min-width:0}.search-card__tag{font-size:.75rem;color:var(--color-text-secondary);background:var(--color-bg-surface-alt);text-decoration:none;padding:.25rem .65rem;border-radius:99px;transition:all var(--transition-fast);font-weight:500;white-space:nowrap}.search-card__tag:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.search-card__stats{display:flex;gap:var(--spacing-md);font-size:.8rem;color:var(--color-text-muted);flex-shrink:0}.search-card__stats .search-card__meta-item{white-space:nowrap}@media (max-width:768px){.search-page{padding:var(--spacing-md) 0}.search-page__layout{padding:0 var(--spacing-md)}.search-header{padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-header__title{font-size:1.5rem}.search-results{gap:var(--spacing-md)}.search-card__content{padding:var(--spacing-md)}.search-card__title{font-size:1.15rem;line-height:1.45}.search-card__excerpt{font-size:.85rem;line-height:1.6;-webkit-line-clamp:2;margin-bottom:var(--spacing-sm)}.search-card__footer{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding-top:var(--spacing-sm)}.search-card__stats{width:100%;justify-content:flex-end}}@media (max-width:420px){.search-card__tags{max-width:100%;overflow:hidden}.search-card__tag:nth-child(n+3){display:none}}.widget{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--color-border);box-shadow:0 1px 3px var(--color-shadow)}.card__header,.widget__header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border)}.card__title,.widget__title{font-size:1.1rem;font-weight:700;color:var(--color-text-main);margin:0}.widget__intro{font-size:.95rem;color:var(--color-text-secondary);line-height:1.6}.widget__intro p{margin-bottom:var(--spacing-sm);text-indent:2em}.widget__intro p:last-child{margin-bottom:0}.sidebar-list{list-style:none;padding:0;margin:0}.sidebar-list__item{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px dashed var(--color-border)}.sidebar-list__item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.sidebar-list__link{display:block;color:var(--color-text-secondary);font-size:.95rem;line-height:1.5;transition:color var(--transition-fast),transform var(--transition-fast);text-decoration:none}.sidebar-list__link:hover{color:var(--color-primary);transform:translateX(4px)}.tag-cloud{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag-cloud .tag{display:inline-block;padding:4px 10px;background-color:var(--color-bg-surface-alt);color:var(--color-text-secondary);font-size:.85rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);text-decoration:none}.tag--active,.tag-cloud .tag:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.back-to-top{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:48px;height:48px;background-color:var(--color-bg-surface);color:var(--color-text-main);border:1px solid var(--color-border);border-radius:50%;box-shadow:0 4px 12px var(--color-shadow);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:999;opacity:0;visibility:hidden;transform:translateY(20px);transition:all var(--transition-normal)}.back-to-top:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-4px);box-shadow:0 6px 16px var(--color-shadow)}.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover.is-visible{transform:translateY(-4px)}.back-to-top i{font-size:1.25rem}@media (max-width:768px){.back-to-top{bottom:var(--spacing-lg);right:var(--spacing-lg);width:40px;height:40px}}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);border:1px solid transparent}.alert--info{background-color:var(--color-bg-surface-alt);border-color:var(--color-border);color:var(--color-text-secondary)}.alert--info strong{color:var(--color-primary)}.dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--color-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--transition-fast);backdrop-filter:blur(2px)}.dialog-overlay--visible{opacity:1;visibility:visible}.dialog{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:0 10px 25px -5px var(--color-shadow),0 8px 10px -6px var(--color-shadow);width:90%;max-width:400px;transform:scale(.95);opacity:0;transition:all var(--transition-normal);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border)}.dialog-overlay--visible .dialog{transform:scale(1);opacity:1}.dialog__header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);font-weight:600;font-size:1.125rem;color:var(--color-text-main);display:flex;align-items:center;justify-content:space-between}.dialog__close{cursor:pointer;color:var(--color-text-muted);transition:color var(--transition-fast);background:0 0;border:none;font-size:1.25rem;padding:0;line-height:1}.dialog__close:hover{color:var(--color-text-main)}.dialog__body{padding:var(--spacing-lg);color:var(--color-text-secondary);font-size:1rem;line-height:1.6}.dialog__input-wrapper{margin-top:var(--spacing-md)}.dialog__input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg-body);color:var(--color-text-main);font-size:1rem;transition:border-color var(--transition-fast)}.dialog__input:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.1)}.dialog__footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-sm);background-color:var(--color-bg-surface-alt)}.dialog__btn{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.dialog__btn--primary{background-color:var(--color-primary);color:#fff}.dialog__btn--primary:hover{background-color:var(--color-primary-hover)}.dialog__btn--default{background-color:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.dialog__btn--default:hover{background-color:var(--color-bg-body);color:var(--color-text-main)}.toast-container{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-container--top-center{top:20px;left:50%;transform:translateX(-50%)}.toast-container--top-left{top:20px;left:20px}.toast-container--top-right{top:20px;right:20px}.toast-container--bottom-center{bottom:20px;left:50%;transform:translateX(-50%)}.toast-container--bottom-left{bottom:20px;left:20px}.toast-container--bottom-right{bottom:20px;right:20px}.toast-container--bottom-center .toast,.toast-container--bottom-left .toast,.toast-container--bottom-right .toast{animation:toast-enter-bottom .3s ease forwards}.toast-container--bottom-center .toast.is-leaving,.toast-container--bottom-left .toast.is-leaving,.toast-container--bottom-right .toast.is-leaving{animation:toast-exit-bottom .3s ease forwards}.toast-container--bottom-left .toast,.toast-container--top-left .toast{animation:toast-enter-left .3s ease forwards}.toast-container--bottom-left .toast.is-leaving,.toast-container--top-left .toast.is-leaving{animation:toast-exit-left .3s ease forwards}.toast-container--bottom-right .toast,.toast-container--top-right .toast{animation:toast-enter-right .3s ease forwards}.toast-container--bottom-right .toast.is-leaving,.toast-container--top-right .toast.is-leaving{animation:toast-exit-right .3s ease forwards}.toast{background-color:var(--color-bg-surface);color:var(--color-text-main);padding:.75rem 1.25rem;border-radius:var(--radius-md);box-shadow:0 4px 6px -1px var(--color-shadow),0 2px 4px -1px var(--color-shadow);display:flex;align-items:center;gap:.75rem;min-width:200px;max-width:90vw;animation:toast-enter .3s ease forwards;pointer-events:auto;border:1px solid var(--color-border)}.toast--info{border-left:4px solid var(--color-primary)}.toast--success{border-left:4px solid var(--color-status-success)}.toast--warning{border-left:4px solid var(--color-status-warning)}.toast--error{border-left:4px solid var(--color-status-error)}.toast__icon{font-size:1.25rem}.toast--success .toast__icon{color:var(--color-status-success)}.toast--warning .toast__icon{color:var(--color-status-warning)}.toast--error .toast__icon{color:var(--color-status-error)}.toast--info .toast__icon{color:var(--color-primary)}.toast.is-leaving{animation:toast-exit .3s ease forwards}@keyframes toast-enter{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes toast-enter-bottom{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit-bottom{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes toast-enter-left{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-exit-left{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-20px)}}@keyframes toast-enter-right{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes toast-exit-right{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(20px)}}.dialog-tooltip{position:fixed;z-index:10000;padding:6px 10px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border-radius:4px;font-size:13px;line-height:1.4;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;max-width:300px;word-wrap:break-word;border:1px solid var(--color-tooltip-border);box-shadow:0 4px 12px var(--color-shadow);backdrop-filter:blur(4px);transform:translateY(5px)}.dialog-tooltip.is-visible{opacity:1;transform:translateY(0)}.dialog-tooltip::after{content:'';position:absolute;width:0;height:0;border-style:solid;left:50%;transform:translateX(-50%)}.dialog-tooltip:not(.is-bottom)::after{bottom:-6px;border-width:6px 6px 0 6px;border-color:var(--color-tooltip-bg) transparent transparent transparent}.dialog-tooltip.is-bottom::after{top:-6px;border-width:0 6px 6px 6px;border-color:transparent transparent var(--color-tooltip-bg) transparent}@media (max-width:640px){.dialog{width:95%;margin:0 auto}.toast-container{width:100%;padding:0 1rem;top:auto!important;bottom:2rem!important;left:0!important;right:auto!important;transform:none!important}.toast{width:100%;animation:toast-enter-mobile .3s ease forwards!important}.toast.is-leaving{animation:toast-exit-mobile .3s ease forwards!important}@keyframes toast-enter-mobile{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit-mobile{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}}.notification-box{position:fixed;right:20px;top:15px;width:350px;background-color:var(--color-bg-surface);border-radius:var(--radius-md);box-shadow:0 4px 6px -1px var(--color-shadow),0 2px 4px -1px var(--color-shadow);border:1px solid var(--color-border);z-index:1500;opacity:0;transform:translateX(100%);transition:opacity var(--transition-normal),transform var(--transition-normal);overflow:hidden;box-sizing:border-box}.notification-box--enter{opacity:1;transform:translateX(0)}.notification-box--exit{opacity:0;transform:translateX(100%)}.notification-box--info{border-left:4px solid var(--color-primary)}.notification-box--success{border-left:4px solid var(--color-status-success)}.notification-box--warning{border-left:4px solid var(--color-status-warning)}.notification-box--error{border-left:4px solid var(--color-status-error)}.notification-box__title{padding:var(--spacing-md) var(--spacing-lg);font-weight:600;font-size:1rem;color:var(--color-text-main);border-bottom:1px solid var(--color-border)}.notification-box__content-container{padding:var(--spacing-md) var(--spacing-lg)}.notification-box__content{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6;word-wrap:break-word}.notification-box__progress{margin-top:var(--spacing-sm);height:26px;background-color:var(--color-bg-surface-alt);border-radius:var(--radius-md);overflow:hidden;position:relative;display:flex;align-items:center;gap:8px}.notification-box__progress-track{flex:1;height:100%;background-color:var(--color-bg-surface-alt);border-radius:var(--radius-md);overflow:hidden;position:relative}.notification-box__progress-bar{height:100%;background-color:var(--color-primary);border-radius:var(--radius-md);transition:width var(--transition-normal);position:absolute;top:0;left:0;min-width:0;width:0}.notification-box__progress-bar[style*="width: 0%"],.notification-box__progress-bar[style*="width:0%"]{display:none}.notification-box--success .notification-box__progress-bar{background-color:var(--color-status-success)}.notification-box--warning .notification-box__progress-bar{background-color:var(--color-status-warning)}.notification-box--error .notification-box__progress-bar{background-color:var(--color-status-error)}.notification-box__progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.8125rem;font-weight:600;white-space:nowrap;line-height:1;letter-spacing:.02em;z-index:1;pointer-events:none;color:var(--color-tooltip-text);text-shadow:0 1px 3px var(--color-shadow)}.notification-box__progress-bar[style*="display: none"]~.notification-box__progress-text,.notification-box__progress-bar[style*="display:none"]~.notification-box__progress-text{color:var(--color-text-secondary);text-shadow:none}.notification-box__progress-text--external{font-size:.8125rem;color:var(--color-text-secondary);font-weight:600;white-space:nowrap;line-height:1;letter-spacing:.02em;min-width:50px;text-align:right;flex-shrink:0}.notification-box__close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;cursor:pointer;color:var(--color-text-muted);font-size:1.25rem;line-height:1;padding:0;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.notification-box__close:hover{color:var(--color-text-main);background-color:var(--color-bg-surface-alt)}.notification-box__close:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width:640px){.notification-box{right:10px;left:10px;width:calc(100% - 20px);max-width:none}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes broken-glass{0%{transform:scale(1);filter:none}5%{transform:scale(1.02)}100%{transform:scale(1);filter:sepia(.2) blur(.5px)}}@keyframes stone-throw{0%{transform:translate3d(60vw,-60vh,1000px) rotate(0) scale(.5);opacity:0}20%{opacity:1}100%{transform:translate3d(0,0,0) rotate(720deg) scale(1);opacity:1}}.easter-egg-stone{position:fixed;top:50%;left:50%;width:100px;height:100px;margin-left:-50px;margin-top:-50px;z-index:100000;font-size:80px;line-height:100px;text-align:center;pointer-events:none;animation:stone-throw .6s ease-in forwards;filter:drop-shadow(10px 10px 15px rgba(0,0,0,.5))}.easter-egg--shake .group-chat,.easter-egg--shake .group-chat__trigger,.easter-egg--shake .site-wrapper{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}.easter-egg--broken{position:relative;overflow-x:hidden}.easter-egg--broken .group-chat,.easter-egg--broken .group-chat__trigger,.easter-egg--broken .site-wrapper{filter:sepia(.1) contrast(1.1);transition:filter .2s}.easter-egg--broken::before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99999;pointer-events:none;background-image:radial-gradient(circle at center,rgba(255,255,255,.15) 0,transparent 25%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='glow'%3E%3CfeGaussianBlur stdDeviation='0.3' result='coloredBlur'/%3E%3CfeMerge%3E%3CfeMergeNode in='coloredBlur'/%3E%3CfeMergeNode in='SourceGraphic'/%3E%3C/feMerge%3E%3C/filter%3E%3C/defs%3E%3Cg stroke='rgba(255, 255, 255, 0.7)' stroke-width='0.4' stroke-linecap='round' filter='url(%23glow)'%3E%3Cpath d='M50 50 L10 5'/%3E%3Cpath d='M50 50 L90 10'/%3E%3Cpath d='M50 50 L95 60'/%3E%3Cpath d='M50 50 L60 95'/%3E%3Cpath d='M50 50 L15 85'/%3E%3Cpath d='M50 50 L5 40'/%3E%3Cpath d='M30 25 L40 15'/%3E%3Cpath d='M70 20 L80 35'/%3E%3Cpath d='M65 85 L80 75'/%3E%3Cpath d='M20 60 L30 75'/%3E%3Cpath d='M40 40 L60 30' stroke-opacity='0.5'/%3E%3Cpath d='M45 55 L35 65' stroke-opacity='0.5'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='15' fill='url(%23center-crack)' opacity='0.3'/%3E%3Cdefs%3E%3CradialGradient id='center-crack'%3E%3Cstop offset='0%25' stop-color='white'/%3E%3Cstop offset='100%25' stop-color='transparent'/%3E%3C/radialGradient%3E%3C/defs%3E%3C/svg%3E");background-size:cover;background-position:center;mix-blend-mode:screen}.easter-egg--broken::after{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;box-shadow:inset 0 0 150px rgba(0,0,0,.4);z-index:99998;pointer-events:none;backdrop-filter:blur(0.5px)}.watermelon-game{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.watermelon-game__panel{width:min(1120px,96vw);max-height:92vh;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 24px 60px var(--color-shadow);display:flex;flex-direction:column;overflow:hidden}.watermelon-game__header{height:56px;border-bottom:1px solid var(--color-border);padding:0 var(--spacing-md);display:flex;align-items:center;justify-content:space-between}.watermelon-game__title{font-size:1rem;color:var(--color-text-main)}.watermelon-game__actions{display:flex;gap:var(--spacing-sm)}.watermelon-game__action{border:1px solid var(--color-border);background:var(--color-bg-surface-alt);color:var(--color-text-main);border-radius:var(--radius-sm);padding:.35rem .7rem;font-size:.85rem;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.watermelon-game__action:hover{background:rgba(var(--color-primary-rgb),.12);border-color:rgba(var(--color-primary-rgb),.35)}.watermelon-game__content{padding:var(--spacing-md);display:grid;grid-template-columns:220px minmax(420px,1fr) 220px;gap:var(--spacing-md);align-items:stretch;overflow:auto}.watermelon-game__side{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface-alt);padding:var(--spacing-md)}.watermelon-game__side h4{font-size:.92rem;color:var(--color-text-main);margin-bottom:var(--spacing-sm)}.watermelon-game__center{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface-alt);padding:var(--spacing-sm);display:flex;justify-content:center;align-items:center}.watermelon-game__canvas{width:min(100%,440px);aspect-ratio:11/16;height:auto;border-radius:var(--radius-md);background:var(--color-bg-surface);box-shadow:inset 0 0 0 1px rgba(var(--color-border-rgb),.8);cursor:crosshair}.watermelon-game__path{display:flex;flex-direction:column;gap:.5rem}.watermelon-game__path-row{font-size:.82rem;color:var(--color-text-secondary);border:1px dashed rgba(var(--color-border-rgb),.95);border-radius:var(--radius-sm);padding:.45rem .55rem}.watermelon-game__path-row--active{color:var(--color-text-main);border-style:solid;border-color:rgba(var(--color-primary-rgb),.4);background:rgba(var(--color-primary-rgb),.08)}.watermelon-game__next{width:100%;max-width:140px;aspect-ratio:1/1;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface);display:block;margin:0 auto}.watermelon-game__hint{margin-top:var(--spacing-sm);font-size:.8rem;color:var(--color-text-secondary);text-align:center}@media (max-width:980px){.watermelon-game__content{grid-template-columns:1fr}.watermelon-game__side--left{order:2}.watermelon-game__center{order:1}.watermelon-game__side--right{order:3}}.home-video-section{margin-bottom:var(--spacing-xl);background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;box-shadow:0 4px 6px var(--color-shadow);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.home-video-section:hover{box-shadow:0 10px 15px var(--color-shadow)}.home-video-section__header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background-color:var(--color-bg-surface-alt)}.home-video-section__title{font-size:1.1rem;font-weight:700;color:var(--color-text-main);display:flex;align-items:center;gap:var(--spacing-sm)}.home-video-section__title i{color:var(--color-primary)}.home-video-section__body{padding:var(--spacing-md)}.home-video-player{position:relative;width:100%;padding-bottom:56.25%;background-color:#000;border-radius:var(--radius-md);overflow:hidden;box-shadow:inset 0 0 20px rgba(0,0,0,.5)}.home-video-player:not(.is-web-fullscreen):not(.is-fullscreen)>*{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;object-fit:cover}@media (prefers-color-scheme:dark){.home-video-section{border-color:var(--color-border)}}@media (max-width:768px){.home-video-section__body{padding:var(--spacing-sm)}.home-video-section{border-radius:var(--radius-md)}}.hero{position:relative;height:var(--hero-height);min-height:var(--hero-min-height);overflow:hidden;margin-bottom:var(--spacing-xl);background-color:var(--color-bg-surface-alt)}.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;animation:hero-kenburns 22s ease-in-out infinite;z-index:0;opacity:0;transition:opacity 1.4s ease-in-out;will-change:opacity}.hero__bg:first-child{animation-delay:0s}.hero__bg:nth-child(2){animation-delay:-5s}.hero__bg:nth-child(3){animation-delay:-10s}.hero__bg:nth-child(4){animation-delay:-15s}.hero__bg:nth-child(5){animation-delay:-3s}.hero__bg.active{opacity:1}.hero__overlay{position:absolute;inset:0;background:radial-gradient(var(--hero-overlay-spot-size-x) var(--hero-overlay-spot-size-y) at var(--hero-overlay-spot-x) var(--hero-overlay-spot-y),rgba(var(--hero-overlay-spot-rgb),var(--hero-overlay-spot-alpha)),transparent 60%),linear-gradient(to top,rgba(var(--hero-overlay-dark-rgb),var(--hero-overlay-end-alpha)) 0,rgba(var(--hero-overlay-dark-rgb),var(--hero-overlay-mid-alpha)) 30%,rgba(var(--hero-overlay-dark-rgb),var(--hero-overlay-start-alpha)) 65%,rgba(var(--hero-overlay-dark-rgb),.15) 100%),linear-gradient(to right,rgba(var(--hero-overlay-dark-rgb),.45) 0,transparent 55%);z-index:1}.hero__content{position:relative;z-index:2;text-align:left;color:var(--hero-text-color);text-shadow:var(--hero-text-shadow);height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--spacing-md);padding-top:var(--header-height)}.hero__content.container{margin-top:0}.hero__title{font-family:"Playfair Display","Noto Serif SC","Songti SC",serif;font-size:clamp(2.75rem, 6vw, 4.75rem);font-weight:700;margin-bottom:0;letter-spacing:.02em;max-width:var(--hero-title-max-width)}.hero__title.is-entering{animation:hero-text-enter .75s cubic-bezier(.22,1,.36,1) both}.hero__subtitle{font-family:"Space Grotesk","Noto Sans SC","Microsoft YaHei",sans-serif;font-size:clamp(1.1rem, 2.2vw, 1.5rem);opacity:.85;margin-bottom:var(--spacing-md);min-height:1.8rem;max-width:var(--hero-subtitle-max-width)}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn--primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:var(--hero-text-color);border:none;box-shadow:var(--hero-button-shadow)}.btn--primary:hover{background:linear-gradient(135deg,var(--color-primary-hover),var(--hero-button-hover-bg));color:var(--hero-text-color);transform:translateY(-2px) scale(1.01)}.hero__indicators{position:absolute;bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center;z-index:3;pointer-events:auto;padding:10px 6px}.hero__indicator{height:4px;width:6px;border-radius:2px;background:var(--hero-progress-bg);transition:width .45s cubic-bezier(.4, 0, .2, 1),background .45s ease,opacity .3s ease;position:relative;overflow:hidden;flex-shrink:0;cursor:pointer}.hero__indicator:hover:not(.is-active){background:rgba(255,255,255,.5);width:10px}.hero__indicator.is-active{width:28px;background:rgba(255,255,255,.3);cursor:default}.hero__indicator.is-active::after{content:'';position:absolute;inset:0;background:var(--hero-progress-fill);transform:scaleX(0);transform-origin:left}.hero__indicator.is-animating::after{animation:hero-dot-fill var(--hero-progress-duration,5000ms) linear forwards}.hero__indicators:hover .hero__indicator.is-animating::after{animation-play-state:paused}.hero__caption{position:absolute;bottom:calc(var(--spacing-lg) * 2.2 + env(safe-area-inset-bottom));left:var(--spacing-md);color:rgba(255,255,255,.55);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;z-index:3;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.6);transition:opacity .6s ease;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0}.hero__caption.has-text{opacity:1}.page-layout{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media (min-width:992px){.page-layout{grid-template-columns:3fr 1fr}}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.section-title{font-size:1.5rem;font-weight:700;color:var(--color-text-main);position:relative}.section-title::after{content:'';position:absolute;bottom:-10px;left:0;width:60px;height:2px;background:linear-gradient(90deg,var(--color-primary),transparent)}.section-more{font-size:.875rem;color:var(--color-text-muted)}.article-grid{display:flex;flex-direction:column;gap:var(--spacing-lg)}.avatar--lg{width:80px;height:80px;border-radius:50%;margin:0 auto;object-fit:cover;border:3px solid var(--color-bg-surface-alt)}.social-links{display:flex;justify-content:center;gap:var(--spacing-md)}.social-links a{font-size:1.25rem;color:var(--color-text-secondary)}.social-links a:hover{color:var(--color-primary)}.tag-cloud{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.tag-cloud .tag--active{background-color:var(--color-primary);color:#fff}.daily-header{display:flex;justify-content:space-between;align-items:flex-start}.daily-date__day{display:block;font-size:1.5rem;font-weight:700;color:var(--color-text-main);line-height:1;margin-bottom:var(--spacing-xs)}.daily-date__sub{font-size:.875rem;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--spacing-sm)}.tag--success{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.daily-weather{display:flex;align-items:center;gap:var(--spacing-sm);text-align:right}.daily-weather__icon{font-size:2rem;color:var(--color-primary)}.daily-weather__temp{font-weight:700;color:var(--color-text-main)}.daily-weather__location{font-size:.8rem;color:var(--color-text-muted)}@media (min-width:992px){.daily-header{flex-direction:column;gap:var(--spacing-md)}.daily-date{width:100%;padding-bottom:var(--spacing-sm);border-bottom:1px dashed var(--color-border)}.daily-weather{width:100%;text-align:left;justify-content:flex-start}.daily-weather__temp{font-size:1.1em}}.list-unstyled{list-style:none}.news-list__item{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px dashed var(--color-bg-surface-alt)}.news-list__item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.news-list__link{display:block;font-size:.95rem;color:var(--color-text-secondary);line-height:1.4}.news-list__link:hover{color:var(--color-primary)}.history-list__item{margin-bottom:var(--spacing-sm);font-size:.9rem;color:var(--color-text-secondary);display:flex;gap:var(--spacing-sm)}.history-list__item::before{content:'•';color:var(--color-primary)}@media (max-width:768px){.hero{height:var(--hero-mobile-height);min-height:var(--hero-mobile-min-height)}.hero__content{text-align:center;align-items:center}.hero__title{letter-spacing:0;text-align:center}.hero__subtitle{text-align:center}.hero__indicators{bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom))}.hero__caption{bottom:calc(var(--spacing-md) * 2.5 + env(safe-area-inset-bottom));left:var(--spacing-sm);max-width:60vw}.section-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-xs)}.section-title{font-size:1.25rem}.page-layout{gap:var(--spacing-lg)}}.solar-term{--term-bg-start:var(--color-primary);--term-bg-end:var(--color-primary-hover);display:inline-flex;align-items:center;justify-content:center;padding:2px 10px;font-size:.75rem;font-weight:600;line-height:1.5;color:#fff;background:linear-gradient(135deg,var(--term-bg-start),var(--term-bg-end));border-radius:9999px;box-shadow:0 2px 4px var(--color-shadow);text-shadow:0 1px 1px rgba(0,0,0,.1);transition:all var(--transition-fast);cursor:default;user-select:none;vertical-align:middle}.solar-term:hover{transform:translateY(-1px);box-shadow:0 4px 6px rgba(0,0,0,.15);filter:brightness(1.1)}@media (prefers-color-scheme:dark){.solar-term{box-shadow:0 2px 4px rgba(0,0,0,.4)}.solar-term:hover{box-shadow:0 4px 8px rgba(0,0,0,.5)}}@keyframes hero-kenburns{0%{transform:scale(1.04) translate3d(0,0,0)}33%{transform:scale(1.08) translate3d(-.8%,-.6%,0)}66%{transform:scale(1.06) translate3d(.5%,-.3%,0)}100%{transform:scale(1.04) translate3d(0,0,0)}}@keyframes hero-text-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-dot-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}@media (max-width:768px){.article-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}}.article-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:all var(--transition-normal) cubic-bezier(.4, 0, .2, 1);display:flex;flex-direction:column;border:1px solid var(--color-border);height:100%}@media (prefers-color-scheme:dark){.article-card{box-shadow:0 2px 12px rgba(0,0,0,.2);border-color:rgba(var(--color-border-rgb),.3)}}.article-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.12);border-color:var(--color-primary)}@media (prefers-color-scheme:dark){.article-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.4)}}.article-card__cover{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background-color:var(--color-bg-surface-alt)}.article-card__cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4, 0, .2, 1)}.article-card__cover img.lazy:not(.loaded){object-fit:scale-down;padding:var(--spacing-lg)}.article-card:hover .article-card__cover img{transform:scale(1.08)}.article-card__content{padding:var(--spacing-lg);display:flex;flex-direction:column;flex:1}.article-card__meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.article-card__meta span{display:inline-flex;align-items:center;gap:.35rem}.article-card__meta i{font-size:.9em}.article-card__title{font-size:1.25rem;font-weight:700;line-height:1.4;margin:0 0 var(--spacing-sm) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card__title a{color:var(--color-text-main);text-decoration:none;background-image:linear-gradient(to right,var(--color-primary),var(--color-primary));background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;transition:background-size var(--transition-normal),color var(--transition-fast);display:inline;padding-bottom:2px}.article-card__title a:hover{color:var(--color-primary);background-size:100% 2px}.article-card__excerpt{font-size:.9rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-md);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.article-card__excerpt>*{display:inline;margin:0;padding:0}.article-card__excerpt audio,.article-card__excerpt blockquote,.article-card__excerpt code,.article-card__excerpt img,.article-card__excerpt pre,.article-card__excerpt table,.article-card__excerpt video{display:none}.article-card__footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--spacing-md);margin-top:auto;border-top:1px solid var(--color-border);gap:var(--spacing-sm)}.article-card__tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);flex:1;min-width:0}.article__tag{display:inline-flex;align-items:center;padding:.25rem .65rem;background-color:var(--color-bg-surface-alt);border-radius:99px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-fast);white-space:nowrap}.article__tag:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.article-card__stats{display:flex;align-items:center;gap:var(--spacing-md);font-size:.8rem;color:var(--color-text-muted);flex-shrink:0}.stat-item{display:flex;align-items:center;gap:.35rem;white-space:nowrap}.article-read{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);border:1px solid var(--color-border);box-shadow:0 2px 8px rgba(0,0,0,.04)}@media (prefers-color-scheme:dark){.article-read{box-shadow:0 2px 12px rgba(0,0,0,.2);border-color:rgba(var(--color-border-rgb),.3)}}.article-header{text-align:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border)}.article-title{font-size:2.25rem;font-weight:800;color:var(--color-text-main);margin-bottom:var(--spacing-md);line-height:1.3;letter-spacing:-.02em}.article-meta{font-size:.9rem;color:var(--color-text-muted);display:flex;justify-content:center;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.article-meta__item{display:inline-flex;align-items:center;gap:.4rem}.article-intro{position:relative;margin:var(--spacing-xl) 0;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-xl) var(--spacing-xl);background-color:transparent;border-left:none;color:var(--color-text-secondary);font-size:1.1rem;line-height:1.8;font-style:italic}.article-intro::before{content:'"';font-family:Georgia,"Times New Roman",serif;font-weight:700;font-style:normal;position:absolute;left:0;top:-.2em;font-size:6rem;line-height:1;color:var(--color-primary);opacity:.15;pointer-events:none;z-index:0}.article-intro::after{content:'';position:absolute;left:0;bottom:0;width:60px;height:3px;background:linear-gradient(to right,var(--color-primary),transparent);border-radius:2px}@media (prefers-color-scheme:dark){.article-intro::before{opacity:.2}}.article-intro p{margin-bottom:.75em;position:relative;z-index:1}.article-intro p:last-child{margin-bottom:0}.article-content{font-size:1.1rem;line-height:1.8;color:var(--color-text-main)}.article-content h1,.article-content h2,.article-content h3{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md);font-weight:700;color:var(--color-text-main);letter-spacing:-.01em}.article-content p{margin-bottom:var(--spacing-md)}.article-content img{border-radius:var(--radius-md);margin:var(--spacing-lg) 0;box-shadow:0 4px 12px rgba(0,0,0,.08);border:1px solid var(--color-border)}@media (prefers-color-scheme:dark){.article-content img{box-shadow:0 4px 12px rgba(0,0,0,.3)}}.article-content pre{background-color:#1e293b;color:#e2e8f0;padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto;margin:var(--spacing-lg) 0;border:1px solid rgba(255,255,255,.1)}.article-content code{font-family:Consolas,Monaco,'Courier New',monospace;background-color:var(--color-bg-surface-alt);padding:.2em .4em;border-radius:var(--radius-sm);font-size:.9em;border:1px solid var(--color-border)}.article-content pre code{background-color:transparent;padding:0;border:none}@media (max-width:768px){.article-read{padding:var(--spacing-lg);border-radius:var(--radius-md)}.article-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.article-title{font-size:1.75rem}.article-meta{gap:var(--spacing-md);font-size:.85rem}.article-intro{padding:var(--spacing-lg) var(--spacing-md);margin:var(--spacing-lg) 0;font-size:1rem}.article-intro::before{font-size:4.5rem;top:-.15em}.article-intro::after{width:40px;height:2px}.article-content{font-size:1rem;line-height:1.7}.article-content h1,.article-content h2,.article-content h3{margin-top:var(--spacing-lg)}.article-card__content{padding:var(--spacing-md)}.article-card__title{font-size:1.1rem}.article-card__excerpt{font-size:.85rem;-webkit-line-clamp:2}.article-card__footer{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.article-card__stats{width:100%;justify-content:flex-end}}@media (max-width:420px){.article-meta__item:nth-child(n+3){display:none}.article-card__tags{max-width:100%;overflow:hidden}.article__tag:nth-child(n+3){display:none}}.markdown-body{font-size:1rem;line-height:1.8;color:var(--color-text-main);word-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.5em;margin-bottom:.8em;font-weight:700;line-height:1.3;color:var(--color-text-main)}.markdown-body h1{font-size:2em;padding-bottom:.3em;border-bottom:1px solid var(--color-border)}.markdown-body h2{font-size:1.75em;padding-bottom:.3em;border-bottom:1px solid var(--color-border)}.markdown-body h3{font-size:1.5em}.markdown-body h4{font-size:1.25em}.markdown-body h5{font-size:1em}.markdown-body h6{font-size:.875em;color:var(--color-text-muted)}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:1em}.markdown-body strong{font-weight:700}.markdown-body em{font-style:italic}.markdown-body a{color:var(--color-primary);text-decoration:none;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.markdown-body a:hover{color:var(--color-primary-hover);border-bottom-color:var(--color-primary-hover)}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li>p{margin-top:.5em}.markdown-body li+li{margin-top:.25em}.markdown-body blockquote{padding:.5em 1em;color:var(--color-text-secondary);background-color:var(--color-bg-surface-alt);border-left:.25em solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body img{max-width:100%;height:auto;border-radius:var(--radius-md);box-shadow:0 4px 6px var(--color-shadow);display:block;margin:1.5em auto}.markdown-body code{padding:.2em .4em;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:85%;background-color:var(--color-bg-surface-alt);border-radius:var(--radius-sm);color:var(--color-text-main)}.markdown-body pre{padding:1em;overflow:auto;font-size:85%;line-height:1.45;background-color:#1e293b;border-radius:var(--radius-md);color:#e2e8f0}.markdown-body pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0;color:inherit}.markdown-body table{display:block;width:100%;width:max-content;max-width:100%;overflow:auto;border-spacing:0;border-collapse:collapse}.markdown-body table td,.markdown-body table th{padding:.5em 1em;border:1px solid var(--color-border)}.markdown-body table th{font-weight:600;background-color:var(--color-bg-surface-alt)}.markdown-body table tr{background-color:var(--color-bg-surface);border-top:1px solid var(--color-border)}.markdown-body table tr:nth-child(2n){background-color:var(--color-bg-body)}.markdown-body hr{height:.25em;padding:0;margin:2em 0;background-color:var(--color-border);border:0}.markdown-body details{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.5em 1em}.markdown-body summary{cursor:pointer;font-weight:600;outline:0}.markdown-body details[open]{padding-bottom:1em}.markdown-body details[open] summary{margin-bottom:1em;border-bottom:1px solid var(--color-border);padding-bottom:.5em}@media (prefers-color-scheme:dark){.markdown-body pre{background-color:#0f172a;border:1px solid var(--color-border)}}.toc{position:fixed;top:100px;right:20px;width:250px;max-height:calc(100vh - 120px);overflow-y:auto;padding:var(--spacing-md);background-color:var(--color-bg-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 4px 6px var(--color-shadow);z-index:90;display:none;opacity:0;transform:translateX(20px);transition:opacity var(--transition-normal),transform var(--transition-normal)}.toc.is-visible{display:block;opacity:1;transform:translateX(0)}.toc-fab{display:none;position:fixed;top:calc(var(--header-height) + 1rem);right:1rem;width:3rem;height:3rem;border-radius:50%;background-color:var(--color-bg-surface);color:var(--color-text-main);border:1px solid var(--color-border);box-shadow:0 4px 12px var(--color-shadow);z-index:95;cursor:pointer;align-items:center;justify-content:center;transition:all var(--transition-normal)}.toc-fab:hover{transform:translateY(-2px);box-shadow:0 6px 16px var(--color-shadow);color:var(--color-primary)}.toc-fab:active{transform:translateY(0)}@media (max-width:1200px){.toc.is-visible~.toc-fab{display:flex}.toc{display:none!important;position:fixed;top:calc(var(--header-height) + 4.5rem);right:1rem;left:auto;width:250px;max-width:80vw;max-height:60vh;height:auto;margin:0;border-radius:var(--radius-md);border:1px solid var(--color-border);transform:none;background-color:var(--color-bg-surface);box-shadow:0 4px 20px var(--color-shadow);z-index:94}.toc.is-open-mobile{display:block!important;animation:tocFadeIn .2s ease forwards}}@keyframes tocFadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.toc-list{list-style:none;padding:0;margin:0}.toc-list .toc-list{padding-left:var(--spacing-md);margin-top:var(--spacing-xs)}.toc-link{display:block;color:var(--color-text-secondary);text-decoration:none;font-size:.9rem;padding:2px 0;transition:color var(--transition-fast);line-height:1.4}.toc-link:hover{color:var(--color-primary)}.is-active-link{color:var(--color-primary);font-weight:600}.is-collapsed{max-height:0;overflow:hidden}.toc::-webkit-scrollbar{width:4px}.toc::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:2px}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.comment-section{position:relative;max-width:100%;margin-top:var(--spacing-xl);font-family:inherit;color:var(--color-text-main)}.comment-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.comment-section__title{font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:var(--spacing-sm);margin:0;color:var(--color-text-main)}.comment-section__count{background-color:var(--color-bg-surface-alt);color:var(--color-text-secondary);font-size:.85rem;padding:.15rem .6rem;border-radius:99px;font-weight:600}.comment-section__refresh-btn{appearance:none;border:1px solid transparent;background:0 0;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.comment-section__refresh-btn:hover{color:var(--color-primary);background-color:var(--color-bg-surface-alt)}.comment-section__refresh-btn .fa-spin,.comment-section__refresh-btn.is-loading svg,.fa-spin{animation:spin 1s linear infinite}.comment-form{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-xl);box-shadow:0 1px 2px var(--color-shadow)}.comment-form--reply{margin:var(--spacing-md) 0;animation:fadeIn .3s ease-out;border-left:3px solid var(--color-primary)}.comment-form__header{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.comment-form__group{position:relative}.comment-form__input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-surface-alt);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-main);transition:all var(--transition-fast);outline:0;font-size:.9rem}.comment-form__input:focus{background-color:var(--color-bg-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.comment-form__input::placeholder{color:var(--color-text-muted)}.comment-form__editor-wrapper{position:relative;background-color:var(--color-bg-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast)}.comment-form__editor-wrapper:focus-within{background-color:var(--color-bg-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.comment-form__editor{width:100%;min-height:100px;padding:var(--spacing-md);border:none;background:0 0;resize:vertical;outline:0;color:var(--color-text-main);font-family:inherit;line-height:1.6;display:block}.comment-form__footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.comment-form__actions{display:flex;gap:var(--spacing-sm)}.comment-form__action-btn{background:0 0;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast);font-size:.9rem}.comment-form__action-btn:hover{color:var(--color-primary);background-color:var(--color-bg-surface-alt)}.comment-form__submit-area{display:flex;align-items:center;gap:var(--spacing-md)}.comment-form__cancel-btn{background:0 0;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.comment-form__cancel-btn:hover{color:var(--color-text-main);background-color:var(--color-bg-surface-alt)}.comment-form__submit-btn{background-color:var(--color-primary);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast);display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem}.comment-form__submit-btn:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px)}.comment-form__submit-btn:disabled{opacity:.7;cursor:not-allowed;background-color:var(--color-text-muted)}.comment-list{display:flex;flex-direction:column;gap:var(--spacing-lg);position:relative;min-height:200px}.comment-section-skeleton{padding:var(--spacing-xl) 0;display:flex;justify-content:center}.comment-loading-spinner{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);color:var(--color-primary)}.comment-list-loading{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,.7);z-index:10;display:flex;justify-content:center;align-items:center;border-radius:var(--radius-md);backdrop-filter:blur(2px)}.comment-list.is-loading>:not(.comment-list-loading){opacity:.5;pointer-events:none}@media (prefers-color-scheme:dark){.comment-list-loading{background-color:rgba(0,0,0,.6)}}.comment-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted);background-color:var(--color-bg-surface-alt);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.comment-item{display:flex;gap:var(--spacing-md);animation:fadeIn .3s ease-out}.comment-item--deleted{opacity:.6;filter:grayscale(1)}.comment-item__avatar{flex-shrink:0}.comment-avatar-img{width:42px;height:42px;border-radius:50%;object-fit:cover;background-color:var(--color-bg-surface-alt);border:2px solid var(--color-bg-surface);box-shadow:0 2px 4px var(--color-shadow);transition:transform var(--transition-fast)}.comment-item:hover .comment-item__avatar .comment-avatar-img{transform:scale(1.05)}.comment-item__body{flex:1;min-width:0}.comment-item__header{display:flex;align-items:baseline;gap:var(--spacing-sm);margin-bottom:.25rem;flex-wrap:wrap}.comment-item__author{font-size:.95rem;font-weight:700;color:var(--color-text-main);text-decoration:none}.comment-item__author:hover{color:var(--color-primary)}.comment-item__tag{font-size:.7rem;padding:.1em .5em;border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.comment-item__tag--admin{background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary)}.comment-item__date{font-size:.8rem;color:var(--color-text-muted)}.comment-item__content{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-sm);font-size:.95rem;word-break:break-word}.comment-item__content p{margin-bottom:.5em}.comment-item__content p:last-child{margin-bottom:0}.comment-item__reply-to{color:var(--color-primary);font-weight:500;margin-right:var(--spacing-xs);text-decoration:none;border-radius:var(--radius-sm);padding:0 2px}.comment-item__reply-to:hover{background-color:rgba(var(--color-primary-rgb),.1)}.comment-item__content img{max-width:100%;border-radius:var(--radius-md);margin-top:var(--spacing-sm);border:1px solid var(--color-border)}.comment-item__actions{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.comment-item__reply-btn{background:0 0;border:none;padding:0;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;gap:4px;font-weight:500;transition:color var(--transition-fast)}.comment-item__reply-btn svg{width:14px;height:14px}.comment-item__reply-btn:hover{color:var(--color-primary)}.comment-replies{margin-top:var(--spacing-md);padding-left:var(--spacing-md);border-left:2px solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-lg)}@media (max-width:640px){.comment-replies{padding-left:var(--spacing-sm);margin-left:-.5rem}}.comment-load-more{display:flex;justify-content:center;padding-top:var(--spacing-md)}.comment-load-more__btn{background-color:var(--color-bg-surface-alt);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.5rem 1.5rem;border-radius:99px;cursor:pointer;transition:all var(--transition-fast);font-size:.9rem;font-weight:500}.comment-load-more__btn:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-bg-surface)}.comment-reply-drawer__overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--color-overlay);z-index:200;opacity:0;visibility:hidden;transition:opacity var(--transition-normal);backdrop-filter:blur(2px)}.comment-reply-drawer__overlay--visible{opacity:1;visibility:visible}.comment-reply-drawer{position:fixed;bottom:0;left:0;right:0;background-color:var(--color-bg-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.15);z-index:201;transform:translateY(100%);transition:transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1);max-height:90vh;display:flex;flex-direction:column}.comment-reply-drawer--open{transform:translateY(0)}.comment-reply-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-border)}.comment-reply-drawer__title{font-weight:700;font-size:1.1rem;color:var(--color-text-main)}.comment-reply-drawer__close{background:0 0;border:none;padding:var(--spacing-xs);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.comment-reply-drawer__close:hover{background-color:var(--color-bg-surface-alt);color:var(--color-text-main)}.comment-reply-drawer__context{padding:var(--spacing-md);background-color:var(--color-bg-surface-alt);margin:var(--spacing-md) var(--spacing-md) 0;border-radius:var(--radius-md);border:1px solid var(--color-border)}.comment-reply-drawer__context-label{font-size:.75rem;color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.comment-reply-drawer__context-item{display:flex;gap:var(--spacing-md);align-items:center}.comment-reply-drawer__context-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--color-border)}.comment-reply-drawer__context-body{flex:1;min-width:0}.comment-reply-drawer__context-author{font-size:.9rem;font-weight:700;color:var(--color-text-main)}.comment-reply-drawer__context-text{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comment-reply-drawer__body{padding:var(--spacing-md);overflow-y:auto;overscroll-behavior:contain}.comment-reply-drawer__body .comment-form{box-shadow:none;padding:0;margin:0;border:none;background:0 0}.comment-reply-drawer__body .comment-form--reply{margin:0;border-left:none;padding:0;animation:none}.bookmark{padding:var(--spacing-lg) var(--spacing-md);max-width:1400px;margin:0 auto}.bookmark__search{position:relative;margin-bottom:var(--spacing-xl);display:flex;justify-content:center}.bookmark__search-wrapper{display:flex;width:100%;max-width:560px;position:relative}.bookmark__search-input{width:100%;padding:11px 48px 11px 20px;border-radius:999px;border:1.5px solid var(--color-border);background-color:var(--color-bg-surface);color:var(--color-text-main);font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease;outline:0;appearance:none}.bookmark__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.12)}.bookmark__search-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:0 0;border:none;color:var(--color-text-muted);cursor:pointer;padding:8px;border-radius:50%;transition:color .2s,background .2s;display:flex;align-items:center;justify-content:center}.bookmark__search-btn:hover{color:var(--color-primary);background-color:var(--color-bg-surface-alt)}.bookmark__search-results{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:100%;max-width:560px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--color-shadow);z-index:100;overflow:hidden;display:none}.bookmark__search-list{list-style:none;padding:4px 0;margin:0;max-height:300px;overflow-y:auto}.bookmark__search-item{padding:10px 20px;cursor:pointer;font-size:.9rem;color:var(--color-text-secondary);transition:background-color .15s}.bookmark__search-item--active,.bookmark__search-item:hover{background-color:var(--color-bg-surface-alt);color:var(--color-text-main)}.bookmark__categories{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:var(--spacing-lg)}.bookmark__category{padding:5px 14px;border-radius:999px;background-color:var(--color-bg-surface-alt);color:var(--color-text-secondary);text-decoration:none;font-size:.85rem;font-weight:500;border:1px solid var(--color-border);transition:all .2s ease;white-space:nowrap}.bookmark__category:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-bg-surface)}.bookmark__category--active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px rgba(var(--color-primary-rgb),.3)}.bookmark__category--active:hover{background-color:var(--color-primary-hover);color:#fff;border-color:var(--color-primary-hover)}.bookmark__actions{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-md)}.bookmark__btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:var(--radius-md);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;border:none;text-decoration:none}.bookmark__btn--primary{background-color:var(--color-primary);color:#fff}.bookmark__btn--primary:hover{background-color:var(--color-primary-hover);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.35)}.bookmark__empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted);font-size:1rem;grid-column:1/-1}.bookmark__grid{position:relative;opacity:0;transition:opacity .25s ease}.bookmark__grid--ready{opacity:1}.bookmark-card,.bookmark__grid-sizer{width:calc(25% - 15px);margin-bottom:20px}@media (max-width:1200px){.bookmark-card,.bookmark__grid-sizer{width:calc(33.333% - 14px)}}@media (max-width:960px){.bookmark-card,.bookmark__grid-sizer{width:calc(50% - 10px)}}@media (max-width:580px){.bookmark-card,.bookmark__grid-sizer{width:100%}}.bookmark-card{background-color:var(--color-bg-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 1px 4px var(--color-shadow);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column}.bookmark-card:hover{transform:translateY(-4px);box-shadow:0 10px 28px var(--color-shadow);border-color:transparent;z-index:1}.bookmark-card__link{text-decoration:none;color:inherit;display:flex;flex-direction:column;flex-grow:1}.bookmark-card__preview{width:100%;height:auto;display:block;min-height:80px;background-color:var(--color-bg-surface-alt);transition:opacity .3s}.bookmark-card:hover .bookmark-card__preview{opacity:.92}.bookmark-card__content{padding:14px 16px;display:flex;align-items:flex-start;gap:10px;flex-grow:1}.bookmark-card__icon{width:22px;height:22px;border-radius:var(--radius-sm);object-fit:contain;flex-shrink:0;margin-top:2px}.bookmark-card__title{font-size:.95rem;font-weight:600;color:var(--color-text-main);margin:0;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.bookmark-card__link:hover .bookmark-card__title{color:var(--color-primary)}.bookmark-card__footer{padding:10px 16px;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-bg-surface-alt)}.bookmark-card__tags{display:flex;flex-wrap:wrap;gap:5px;flex:1}.bookmark-card__tag{font-size:.72rem;color:var(--color-text-muted);background-color:var(--color-bg-surface);border:1px solid var(--color-border);padding:2px 8px;border-radius:999px;white-space:nowrap}.bookmark-card__edit{color:var(--color-text-muted);transition:color .2s;padding:4px;flex-shrink:0;line-height:1}.bookmark-card__edit:hover{color:var(--color-primary)}.bookmark-form{max-width:780px;margin:var(--spacing-xl) auto;background:var(--color-bg-surface);padding:var(--spacing-xl);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:0 4px 20px var(--color-shadow)}.bookmark-form__header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.bookmark-form__title{font-size:1.5rem;font-weight:700;color:var(--color-text-main);margin:0}.bookmark-form__group{margin-bottom:var(--spacing-md)}.bookmark-form__label{display:block;margin-bottom:6px;font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.bookmark-form__input{width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1.5px solid var(--color-border);background-color:var(--color-bg-surface);color:var(--color-text-main);font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease;outline:0}.bookmark-form__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.12)}.bookmark-form__categories{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--spacing-sm)}.bookmark-form__checkbox-wrapper{position:relative}.bookmark-form__checkbox{display:none}.bookmark-form__checkbox-label{display:inline-block;padding:6px 14px;border-radius:999px;border:1.5px solid var(--color-border);color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s ease;user-select:none}.bookmark-form__checkbox-label:hover{border-color:var(--color-primary);color:var(--color-primary)}.bookmark-form__checkbox:checked+.bookmark-form__checkbox-label{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.bookmark-form__actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.bookmark-form__cancel,.bookmark-form__delete,.bookmark-form__submit{padding:10px 22px;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;cursor:pointer;border:1.5px solid transparent;transition:all .2s ease;text-decoration:none;display:flex;align-items:center;justify-content:center}.bookmark-form__submit{background-color:var(--color-primary);color:#fff;flex:2}.bookmark-form__submit:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.35)}.bookmark-form__submit:disabled{opacity:.6;cursor:not-allowed}.bookmark-form__cancel{background-color:transparent;border-color:var(--color-border);color:var(--color-text-secondary);flex:1}.bookmark-form__cancel:hover{background-color:var(--color-bg-surface-alt);color:var(--color-text-main)}.bookmark-form__delete{background-color:transparent;border-color:#ef4444;color:#ef4444;flex:1}.bookmark-form__delete:hover{background-color:#ef4444;color:#fff}@media (max-width:600px){.bookmark__categories{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-ms-overflow-style:none}.bookmark__categories::-webkit-scrollbar{display:none}.bookmark__category{flex-shrink:0}.bookmark__actions{display:block}.bookmark__btn{width:100%;justify-content:center}.bookmark-form{padding:var(--spacing-md);margin:var(--spacing-md) auto;border-radius:var(--radius-md)}.bookmark-form__actions{flex-direction:column}.bookmark-form__cancel,.bookmark-form__delete,.bookmark-form__submit{flex:unset;width:100%}}:root{--mumble-spacing-xs:0.25rem;--mumble-spacing-sm:0.5rem;--mumble-spacing-md:1rem;--mumble-spacing-lg:1.5rem;--mumble-spacing-xl:2rem;--mumble-radius-sm:4px;--mumble-radius-md:8px;--mumble-radius-lg:12px;--mumble-radius-xl:16px;--mumble-transition-fast:0.2s ease;--mumble-transition-normal:0.3s ease;--mumble-color-primary:var(--color-primary);--mumble-color-primary-hover:var(--color-primary-hover);--mumble-color-text-main:var(--color-text-main);--mumble-color-text-secondary:var(--color-text-secondary);--mumble-color-text-muted:var(--color-text-muted);--mumble-color-bg-body:var(--color-bg-body);--mumble-color-bg-surface:var(--color-bg-surface);--mumble-color-bg-surface-alt:var(--color-bg-surface-alt);--mumble-color-border:var(--color-border);--mumble-color-shadow:var(--color-shadow);--mumble-color-shadow-hover:var(--color-shadow)}@media (max-width:768px){:root{--mumble-spacing-md:0.75rem;--mumble-spacing-lg:1rem;--mumble-spacing-xl:1.25rem}}.mumble-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--mumble-spacing-xl);max-width:1200px;margin:var(--mumble-spacing-xl) auto;padding:0 var(--mumble-spacing-md);align-items:start}.mumble-layout__main{display:flex;flex-direction:column;gap:var(--mumble-spacing-lg);min-width:0}@media (max-width:900px){.mumble-layout{display:block;padding:0 var(--mumble-spacing-sm)}.mumble-layout__sidebar{display:none}}.mumble-card{background-color:var(--mumble-color-bg-surface);border-radius:var(--mumble-radius-lg);border:1px solid var(--mumble-color-border);padding:var(--mumble-spacing-lg);box-shadow:0 2px 8px rgba(0,0,0,.04);transition:all var(--mumble-transition-normal) cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.mumble-card{box-shadow:0 2px 12px rgba(0,0,0,.2);border-color:rgba(var(--color-border-rgb),.3)}}@media (max-width:768px){.mumble-card{padding:var(--mumble-spacing-md);border-radius:var(--mumble-radius-md)}}.mumble-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.12);border-color:var(--mumble-color-primary)}@media (prefers-color-scheme:dark){.mumble-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.4)}}.mumble-card--detail:hover{transform:none;box-shadow:0 2px 8px rgba(0,0,0,.04);border-color:var(--mumble-color-border)}.mumble-card__header{display:flex;align-items:center;gap:var(--mumble-spacing-md);margin-bottom:var(--mumble-spacing-md)}.mumble-card__avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--mumble-color-bg-surface-alt);background-color:var(--mumble-color-bg-surface-alt)}@media (max-width:768px){.mumble-card__avatar{width:40px;height:40px}}.mumble-card__meta{display:flex;flex-direction:column;justify-content:center}.mumble-card__author{font-weight:700;font-size:1rem;color:var(--mumble-color-text-main);display:flex;align-items:center;gap:var(--mumble-spacing-sm)}.mumble-card__role{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background-color:var(--mumble-color-bg-surface-alt);color:var(--mumble-color-text-secondary);font-weight:500}.mumble-card__time{font-size:.85rem;color:var(--mumble-color-text-muted)}.mumble-card__content{color:var(--mumble-color-text-main);font-size:1rem;line-height:1.75;margin-bottom:var(--mumble-spacing-lg);position:relative;word-break:break-word}.mumble-card__content.is-collapsed{max-height:300px;overflow:hidden;mask-image:linear-gradient(to bottom,black 50%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.mumble-card__content img{max-width:100%;height:auto;border-radius:var(--mumble-radius-md);margin:var(--mumble-spacing-sm) 0;box-shadow:0 2px 4px var(--mumble-color-shadow);cursor:zoom-in;display:block}.mumble-card__content a{color:var(--mumble-color-primary);text-decoration:none;border-bottom:1px dashed var(--mumble-color-primary)}.mumble-card__read-more{display:none;text-align:center;margin-top:calc(var(--mumble-spacing-md) * -1);margin-bottom:var(--mumble-spacing-md);position:relative;z-index:10}.mumble-card__read-more.is-expanded{margin-top:var(--mumble-spacing-sm)}.mumble-card__read-more-btn{background-color:var(--mumble-color-bg-surface-alt);border:1px solid var(--mumble-color-border);color:var(--mumble-color-text-secondary);padding:var(--mumble-spacing-sm) var(--mumble-spacing-xl);border-radius:99px;font-size:.875rem;cursor:pointer;transition:all var(--mumble-transition-fast)}.mumble-card__read-more-btn:hover{background-color:var(--mumble-color-primary);color:#fff;border-color:var(--mumble-color-primary)}.mumble-card__footer{display:flex;align-items:center;gap:var(--mumble-spacing-lg);padding-top:var(--mumble-spacing-md);border-top:1px solid var(--mumble-color-bg-surface-alt)}.mumble-action{display:flex;align-items:center;gap:var(--mumble-spacing-sm);color:var(--mumble-color-text-muted);font-size:.9rem;cursor:pointer;background:0 0;border:none;padding:var(--mumble-spacing-xs) var(--mumble-spacing-sm);border-radius:var(--mumble-radius-md);transition:all var(--mumble-transition-fast);font-family:inherit;text-decoration:none}.mumble-action:hover{background-color:var(--mumble-color-bg-surface-alt);color:var(--mumble-color-primary)}.mumble-action--active{color:var(--mumble-color-primary);background-color:rgba(37,99,235,.1)}.mumble-comments{margin-top:var(--mumble-spacing-lg);padding-top:var(--mumble-spacing-lg);border-top:1px dashed var(--mumble-color-border);animation:mumbleFadeIn var(--mumble-transition-normal)}.mumble-comments.is-hidden{display:none}@keyframes mumbleFadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.comment-section__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--mumble-spacing-md)}.comment-section__title{font-size:1rem;font-weight:700;margin:0;color:var(--mumble-color-text-main)}.comment-section__refresh-btn{background:0 0;border:none;color:var(--mumble-color-text-muted);cursor:pointer;transition:color var(--mumble-transition-fast)}.comment-section__refresh-btn:hover{color:var(--mumble-color-primary)}.comment-form{background-color:var(--mumble-color-bg-surface-alt);padding:var(--mumble-spacing-md);border-radius:var(--mumble-radius-md);margin-bottom:var(--mumble-spacing-lg);border:1px solid var(--mumble-color-border)}.comment-form__header{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--mumble-spacing-md);margin-bottom:var(--mumble-spacing-md)}.comment-form__group{display:flex;flex-direction:column;gap:var(--mumble-spacing-xs)}.comment-form__label{font-size:.8rem;font-weight:600;color:var(--mumble-color-text-secondary)}.comment-form__editor,.comment-form__input{width:100%;padding:var(--mumble-spacing-sm) var(--mumble-spacing-md);border:1px solid var(--mumble-color-border);border-radius:var(--mumble-radius-sm);background-color:var(--mumble-color-bg-surface);color:var(--mumble-color-text-main);font-family:inherit;font-size:.95rem;transition:all var(--mumble-transition-fast);box-sizing:border-box}.comment-form__editor{min-height:100px;resize:vertical;display:block}.comment-form__editor:focus,.comment-form__input:focus{outline:0;border-color:var(--mumble-color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.comment-form__footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--mumble-spacing-md)}.comment-form__actions{display:flex;gap:var(--mumble-spacing-sm)}.comment-form__action-btn{color:var(--mumble-color-text-muted);background:0 0;border:none;padding:var(--mumble-spacing-xs);border-radius:var(--mumble-radius-sm);cursor:pointer;transition:all var(--mumble-transition-fast);display:flex;align-items:center}.comment-form__action-btn:hover{color:var(--mumble-color-primary);background-color:rgba(37,99,235,.1)}.comment-form__submit-btn{background-color:var(--mumble-color-primary);color:#fff;border:none;padding:var(--mumble-spacing-sm) var(--mumble-spacing-lg);border-radius:var(--mumble-radius-sm);cursor:pointer;font-weight:600;display:flex;align-items:center;gap:var(--mumble-spacing-sm);transition:background-color var(--mumble-transition-fast)}.comment-form__submit-btn:hover{background-color:var(--mumble-color-primary-hover)}.comment-form__submit-btn:disabled{opacity:.7;cursor:not-allowed}.comment-list{display:flex;flex-direction:column;gap:var(--mumble-spacing-md)}.comment-item{display:flex;gap:var(--mumble-spacing-md);animation:mumbleFadeIn .5s ease}.comment-item__avatar{width:32px;height:32px;flex-shrink:0}.comment-item__avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:1px solid var(--mumble-color-border)}.comment-item__body{flex:1;background-color:var(--mumble-color-bg-surface-alt);padding:var(--mumble-spacing-md);border-radius:var(--mumble-radius-md);border-top-left-radius:2px;min-width:0}.comment-item__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--mumble-spacing-xs);font-size:.85rem}.comment-item__date{color:var(--mumble-color-text-muted)}.comment-item__content{font-size:.95rem;color:var(--mumble-color-text-main);line-height:1.6;word-break:break-word}.comment-item__content img{max-width:100%;border-radius:var(--mumble-radius-sm);margin:var(--mumble-spacing-sm) 0}.comment-item__actions{margin-top:var(--mumble-spacing-sm);display:flex;gap:var(--mumble-spacing-md)}.comment-item__reply-btn{font-size:.8rem;color:var(--mumble-color-text-muted);background:0 0;border:none;padding:0;cursor:pointer;display:flex;align-items:center;gap:4px}.comment-item__reply-btn:hover{color:var(--mumble-color-primary)}.comment-replies{margin-top:var(--mumble-spacing-md);padding-left:var(--mumble-spacing-md);border-left:2px solid var(--mumble-color-border);display:flex;flex-direction:column;gap:var(--mumble-spacing-md)}.comment-load-more{text-align:center;margin-top:var(--mumble-spacing-lg)}.comment-load-more__btn{background-color:var(--mumble-color-bg-surface);border:1px solid var(--mumble-color-border);color:var(--mumble-color-text-secondary);padding:var(--mumble-spacing-sm) var(--mumble-spacing-xl);border-radius:99px;cursor:pointer;transition:all var(--mumble-transition-fast)}.comment-load-more__btn:hover{border-color:var(--mumble-color-primary);color:var(--mumble-color-primary)}.comment-empty{text-align:center;padding:var(--mumble-spacing-xl);color:var(--mumble-color-text-muted)}.history-widget{background-color:var(--mumble-color-bg-surface);border-radius:var(--mumble-radius-lg);border:1px solid var(--mumble-color-border);padding:var(--mumble-spacing-lg);position:sticky;top:var(--mumble-spacing-lg)}.history-widget__title{font-size:1.1rem;font-weight:700;color:var(--mumble-color-text-main);margin-top:0;margin-bottom:var(--mumble-spacing-md);padding-bottom:var(--mumble-spacing-sm);border-bottom:2px solid var(--mumble-color-bg-surface-alt)}.history-widget__list{display:flex;flex-direction:column;gap:var(--mumble-spacing-md)}.history-item{padding-bottom:var(--mumble-spacing-md);border-bottom:1px dashed var(--mumble-color-border);transition:transform var(--mumble-transition-fast)}.history-item:last-child{border-bottom:none;padding-bottom:0}.history-item:hover{transform:translateX(4px)}.history-item__content{font-size:.9rem;color:var(--mumble-color-text-secondary);margin-bottom:var(--mumble-spacing-xs);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.history-item__time{font-size:.75rem;color:var(--mumble-color-text-muted);text-align:right;display:block;font-style:italic}.steam-container{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-md);animation:fadeIn var(--transition-normal)}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.steam-header{margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-border);padding-bottom:var(--spacing-sm)}.steam-header__title{font-size:1.5rem;font-weight:700;color:var(--color-text-main);display:flex;align-items:center;gap:var(--spacing-sm)}.steam-game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.steam-game-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal);display:flex;flex-direction:column;position:relative}.steam-game-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px var(--color-shadow);border-color:var(--color-primary)}.steam-game-card__link{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}.steam-game-card__image-wrapper{position:relative;padding-top:46%;background:var(--color-bg-surface-alt);overflow:hidden}.steam-game-card__image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.steam-game-card:hover .steam-game-card__image{transform:scale(1.05)}.steam-game-card__content{padding:var(--spacing-md);flex-grow:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.steam-game-card__title{font-size:1.1rem;font-weight:600;color:var(--color-text-main);margin:0;line-height:1.4}.steam-game-card__meta{font-size:.875rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--spacing-xs);margin-top:auto}.steam-summary{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.steam-summary__stats{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-muted)}.steam-summary__progress-track{height:6px;background:var(--color-bg-surface-alt);border-radius:3px;overflow:hidden}.steam-summary__progress-bar{height:100%;background:var(--color-primary);border-radius:3px;width:0;transition:width 1s ease-out;position:relative;overflow:hidden}.steam-summary__progress-bar::after{content:"";position:absolute;top:0;left:0;bottom:0;width:100%;background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.4) 50%,rgba(255,255,255,0) 100%);transform:translateX(-100%);animation:shimmer 2s infinite linear}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.steam-summary__icons{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.steam-summary__icon{width:24px;height:24px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.steam-summary__icon img{width:100%;height:100%;object-fit:cover}.steam-detail-header{background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);display:flex;gap:var(--spacing-lg);align-items:flex-start}@media (max-width:900px){.steam-detail-header{flex-direction:column;align-items:center;text-align:center}.steam-detail-header__info{align-items:center}.steam-detail-header__meta{justify-content:center}}.steam-detail-header__cover{width:100%;max-width:460px;height:auto;aspect-ratio:460/215;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 4px 6px -1px var(--color-shadow);flex-shrink:0;background-color:#000}.steam-detail-header__info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.steam-detail-header__title{font-size:2rem;font-weight:800;color:var(--color-text-main);margin:0}.steam-detail-header__meta{display:flex;gap:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem;flex-wrap:wrap;justify-content:center}@media (min-width:769px){.steam-detail-header__meta{justify-content:flex-start}}.steam-detail-header__meta-item{display:flex;align-items:center;gap:var(--spacing-xs)}.steam-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--spacing-md);background:var(--color-bg-surface-alt);padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-sm)}.steam-stat-box{text-align:center;display:flex;flex-direction:column}.steam-stat-box__value{font-size:1.5rem;font-weight:700;color:var(--color-text-main)}.steam-stat-box__label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.steam-group{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);overflow:hidden}.steam-group__header{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-surface-alt);cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;transition:background-color var(--transition-fast)}.steam-group__header:hover{background-color:var(--color-border)}.steam-group__title{font-size:1.1rem;font-weight:600;color:var(--color-text-main);display:flex;align-items:center;gap:var(--spacing-sm);margin:0}.steam-group__icon{transition:transform var(--transition-normal)}.steam-group.steam-is-collapsed .steam-group__icon{transform:rotate(-90deg)}.steam-group .steam-group__content{display:block;padding:0}.steam-group.steam-is-collapsed .steam-group__content{display:none}.steam-achievement{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.steam-achievement:last-child{border-bottom:none}.steam-achievement:hover{background-color:var(--color-bg-surface-alt)}.steam-achievement__icon{width:64px;height:64px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-surface-alt);border:1px solid var(--color-border)}.steam-achievement__icon img{width:100%;height:100%;object-fit:cover}.steam-achievement__info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.25rem}.steam-achievement__name{font-weight:600;color:var(--color-text-main);font-size:1rem}.steam-achievement__desc{color:var(--color-text-secondary);font-size:.875rem;line-height:1.4}.steam-achievement__status{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:100px;font-size:.875rem;color:var(--color-text-muted)}@media (max-width:768px){.steam-summary{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);gap:var(--spacing-xs)}.steam-stats-grid{grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);padding:var(--spacing-sm);margin-top:var(--spacing-xs)}}@media (max-width:640px){.steam-achievement{flex-direction:column;align-items:flex-start}.steam-achievement__status{align-items:flex-start;margin-top:var(--spacing-sm);flex-direction:row;gap:var(--spacing-sm)}}.steam-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.steam-status-badge--unlocked{background-color:rgba(16,185,129,.1);color:#10b981}.steam-status-badge--locked{background-color:rgba(100,116,139,.1);color:#64748b}.steam-status-badge--hidden{background-color:rgba(99,102,241,.1);color:#6366f1}.steam-empty{text-align:center;padding:var(--spacing-xl);background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.steam-empty__icon{font-size:3rem;color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.steam-back-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-main);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-bottom:var(--spacing-md)}.steam-back-btn:hover{background:var(--color-bg-surface-alt);border-color:var(--color-text-muted)}:root{--music-player-size:64px;--music-player-panel-width:360px;--music-player-theme:#ff4081;--music-player-bg:rgba(18, 18, 18, 0.96);--music-player-text:#fff;--music-player-text-secondary:rgba(255, 255, 255, 0.65);--music-player-bg-lyrics-line-height:30px}@media (prefers-color-scheme:light){:root{--music-player-bg:rgba(255, 255, 255, 0.96);--music-player-text:#333;--music-player-text-secondary:rgba(0, 0, 0, 0.65)}}.music-player__mini{position:fixed;left:16px;bottom:16px;width:var(--music-player-size);height:var(--music-player-size);border-radius:50%;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:100;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--music-player-bg);transition:transform .18s ease}.music-player__mini:active{transform:scale(.98)}.music-player__mini-cover{width:100%;height:100%;border-radius:50%;display:block;position:absolute;inset:0;overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat}.music-player__progress-ring{position:absolute;top:-8px;left:-8px;width:calc(100% + 16px);height:calc(100% + 16px);pointer-events:none;transform:rotate(-90deg);z-index:1}.music-player__progress-ring circle{transition:stroke-dashoffset .35s;transform-origin:50% 50%}.music-player__mini-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}.music-player__mini-status{width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;transition:background .18s;pointer-events:none}.music-player__panel{position:fixed;inset:0;pointer-events:none;z-index:100;box-sizing:border-box}.music-player__panel *{box-sizing:border-box}.music-player__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .25s;pointer-events:none;display:none}.music-player__content{position:fixed;left:0;top:0;bottom:0;width:var(--music-player-panel-width);transform:translateX(-100%);transition:transform .28s cubic-bezier(.2, .9, .2, 1);pointer-events:auto;background:var(--music-player-bg);color:var(--music-player-text);display:flex;flex-direction:column;box-shadow:4px 0 24px rgba(0,0,0,.1);backdrop-filter:blur(10px);overflow-x:hidden}.music-player__panel--open .music-player__backdrop{opacity:1;pointer-events:auto}.music-player__panel--open .music-player__content{transform:translateX(0)}.music-player__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(128,128,128,.1)}.music-player__info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.music-player__title{font-size:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.music-player__artist{font-size:12px;color:var(--music-player-text-secondary)}.music-player__close-btn{background:0 0;border:none;color:var(--music-player-text);font-size:20px;cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.music-player__close-btn:hover{background:rgba(128,128,128,.1)}.music-player__main{padding:16px;flex:1;display:flex;flex-direction:column;align-items:center;gap:16px;overflow-y:auto;overflow-x:hidden;width:100%}.music-player__cover-wrap{display:flex;justify-content:center;align-items:center;margin-bottom:10px}.music-player__cover{width:180px;height:180px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);transition:transform .3s ease;background-size:cover;background-position:center;background-repeat:no-repeat}@keyframes music-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.music-player__cover--rotating{animation:music-spin 20s linear infinite;border-radius:50%}.music-player__controls{width:100%;max-width:100%;padding:0 8px}.music-player__progress{display:flex;align-items:center;gap:10px;margin-bottom:16px}.music-player__time{font-size:12px;color:var(--music-player-text-secondary);width:40px;text-align:center;font-feature-settings:"tnum"}.music-player__seek{flex:1;height:4px;border-radius:2px;background:rgba(128,128,128,.2);position:relative;cursor:pointer;appearance:none}.music-player__seek::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--music-player-theme);cursor:pointer;transition:transform .1s}.music-player__seek::-webkit-slider-thumb:hover{transform:scale(1.2)}.music-player__btn-group{display:flex;gap:20px;justify-content:center;align-items:center;margin-bottom:16px}.music-player__btn{width:48px;height:48px;border-radius:50%;background:rgba(128,128,128,.1);border:0;color:var(--music-player-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:20px}.music-player__btn--main{width:64px;height:64px;background:var(--music-player-theme);color:#fff;font-size:28px;box-shadow:0 4px 12px rgba(255,64,129,.3)}.music-player__btn:hover:not(.music-player__btn--main){background:rgba(128,128,128,.2)}.music-player__btn--main:hover{transform:scale(1.05)}.music-player__extra-controls{display:flex;gap:16px;align-items:center;justify-content:center}.music-player__text-btn{background:0 0;border:none;color:var(--music-player-text-secondary);font-size:18px;cursor:pointer;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s}.music-player__text-btn--active,.music-player__text-btn:hover{color:var(--music-player-theme);background:rgba(128,128,128,.05)}.music-player__list{max-height:0;overflow-y:auto;transition:max-height .3s ease;border-top:1px solid rgba(128,128,128,.1);background:rgba(0,0,0,.02)}.music-player__list--visible{max-height:40vh;padding:8px 0}.music-player__item{display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;cursor:pointer;transition:background .2s,color .2s;border-left:3px solid transparent}.music-player__item:hover{background:rgba(128,128,128,.1)}.music-player__item--active{background:rgba(128,128,128,.1);border-left-color:var(--music-player-theme)}.music-player__item--active .music-player__item-index,.music-player__item--active .music-player__item-title{color:var(--music-player-theme);font-weight:600}.music-player__item-index{width:24px;text-align:center;margin-right:12px;font-size:14px;color:var(--music-player-text-secondary);font-feature-settings:"tnum"}.music-player__item-meta{display:flex;flex-direction:column;overflow:hidden;flex:1}.music-player__item-title{font-size:14px;color:var(--music-player-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.music-player__item-artist{font-size:12px;color:var(--music-player-text-secondary)}.music-player__lyrics{text-align:center;height:180px;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,black 15%,black 85%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 15%,black 85%,transparent);margin-top:10px;width:100%;user-select:none;cursor:default}.music-player__lyrics-inner{transition:transform .3s ease-out}.music-player__lyric-line{padding:6px 0;font-size:14px;color:var(--music-player-text-secondary);transition:all .3s;min-height:24px}.music-player__lyric-line--current{color:var(--music-player-theme);font-size:16px;font-weight:700;transform:scale(1.05)}.music-player__bg-lyrics{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);width:100%;max-width:800px;text-align:center;pointer-events:none;z-index:98;opacity:0;transition:opacity .3s ease;user-select:none;cursor:default;height:calc(var(--music-player-bg-lyrics-line-height) * 2);overflow:hidden}.music-player__bg-lyrics--visible{opacity:1}.music-player__bg-lyrics-inner{display:flex;flex-direction:column;width:100%;transition:transform .5s cubic-bezier(.25, 1, .5, 1);will-change:transform}.music-player__bg-lyrics .music-player__lyric-line{padding:0;font-size:20px;color:var(--music-player-text-secondary);transition:all .5s;min-height:var(--music-player-bg-lyrics-line-height);line-height:var(--music-player-bg-lyrics-line-height);text-shadow:0 2px 8px rgba(0,0,0,.5);opacity:.6;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-player__bg-lyrics .music-player__lyric-line--current{color:var(--music-player-theme);font-size:24px;font-weight:700;opacity:1;text-shadow:0 4px 12px rgba(255,64,129,.6);transform:scale(1.05)}@media (max-width:768px){:root{--music-player-size:64px;--music-player-bg-lyrics-line-height:24px}.music-player__content{width:100%;left:0;right:0;top:0;bottom:0;transform:translateY(100%);border-radius:0}.music-player__backdrop{display:block}.music-player__panel--open .music-player__content{transform:translateY(0)}.music-player__cover{width:260px;height:260px;border-radius:50%;margin:20px 0}.music-player__lyrics{height:260px}.music-player__list--visible{position:absolute;top:56px;left:0;right:0;bottom:0;max-height:none;z-index:20;background:var(--music-player-bg);display:flex;flex-direction:column}.music-player__bg-lyrics{bottom:100px;max-width:90%;padding:0 20px}.music-player__bg-lyrics .music-player__lyric-line{font-size:16px;padding:0}.music-player__bg-lyrics .music-player__lyric-line--current{font-size:20px}.music-player__list-close-mobile{display:none;justify-content:center;align-items:center;padding:12px;cursor:pointer;color:var(--music-player-text-secondary);border-bottom:1px solid rgba(128,128,128,.1);background:var(--music-player-bg);font-size:20px;transition:color .2s}.music-player__list-close-mobile:hover{color:var(--music-player-theme)}}@media (min-width:769px){.music-player__content{border-top-right-radius:12px;border-bottom-right-radius:12px}.music-player__main{flex:0 0 auto;overflow-y:visible}.music-player__list{flex:1;max-height:none;overflow-y:auto;display:block}#mp-list-toggle{display:none}}:root{--code-sidebar-width:280px;--code-header-height:48px;--code-tree-indent:18px;--code-line-color:var(--color-border);--code-line-style:solid 1px;--code-row-hover-accent:var(--color-primary)}.code-explorer{display:flex;align-items:flex-start;position:relative;background-color:var(--color-bg-body);font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--color-text-main);border-top:1px solid var(--color-border);min-height:600px}.code-explorer__sidebar{width:var(--code-sidebar-width);background-color:var(--color-bg-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;z-index:10;position:sticky;top:var(--header-height,64px);height:calc(100vh - var(--header-height,64px));max-height:100vh;overflow:hidden}.code-explorer__search{height:var(--code-header-height);padding:0 10px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:4px;background-color:var(--color-bg-surface);flex-shrink:0}.code-explorer__search input{flex:1;width:auto;padding:6px 10px;border-radius:20px;border:1px solid var(--color-border);background-color:var(--color-bg-body);color:var(--color-text-main);outline:0;font-size:.8rem;transition:all var(--transition-fast)}.code-explorer__search input::placeholder{color:var(--color-text-muted);font-size:.8rem}.code-explorer__search input:focus{border-color:var(--color-primary);background-color:var(--color-bg-surface);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.12)}.code-explorer__search .btn-search{background:0 0;border:none;cursor:pointer;color:var(--color-text-muted);width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-fast),color var(--transition-fast);flex-shrink:0}.code-explorer__search .btn-search:hover{background-color:var(--color-bg-surface-alt);color:var(--color-primary)}.code-explorer__tree{flex:1;overflow-y:auto;overflow-x:hidden;padding:6px 0;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.code-explorer__tree::-webkit-scrollbar{width:4px}.code-explorer__tree::-webkit-scrollbar-track{background:0 0}.code-explorer__tree::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:4px}.code-tree__node{position:relative;line-height:1}.code-tree__content{display:flex;align-items:center;padding:5px 8px 5px 0;cursor:pointer;user-select:none;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast);border-radius:0 6px 6px 0;margin-right:6px;position:relative}.code-tree__content:hover{background-color:var(--color-bg-surface-alt);color:var(--color-text-main)}.code-tree__content.is-active{background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);font-weight:600}.code-tree__content.is-active::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background-color:var(--color-primary);border-radius:0 3px 3px 0}@media (prefers-color-scheme:dark){.code-tree__content.is-active{background-color:rgba(var(--color-primary-rgb),.18)}}.code-tree__toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:transform var(--transition-fast),color var(--transition-fast);flex-shrink:0;z-index:2}.code-tree__toggle>svg{width:12px;height:12px}.code-tree__toggle:hover{color:var(--color-text-main)}.code-tree__node.is-expanded>.code-tree__content>.code-tree__toggle{transform:rotate(90deg)}.code-tree__toggle.is-hidden{visibility:hidden}.code-tree__icon{width:16px;height:16px;margin-right:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:2}.code-tree__icon img,.code-tree__icon svg{width:100%;height:100%;object-fit:contain}.code-tree__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none;font-size:.82rem}.code-tree__children{display:none;border-left:none;margin-left:12px;padding-left:0}.code-tree__node.is-expanded>.code-tree__children{display:block}.code-tree__children>.code-tree__node{padding-left:12px}.code-tree__children>.code-tree__node::before{content:"";position:absolute;top:0;bottom:0;left:0;border-left:1px dashed rgba(148,163,184,.35);width:1px;height:auto}.code-tree__children>.code-tree__node::after{content:"";position:absolute;top:15px;left:0;width:10px;height:1px;border-top:1px dashed rgba(148,163,184,.35)}.code-tree__children>.code-tree__node:last-child::before{height:16px}.code-explorer__tree>.code-tree__node::after,.code-explorer__tree>.code-tree__node::before{display:none}.code-tree__node.is-loading>.code-tree__content{cursor:wait;opacity:.6}.code-tree__label mark{background-color:var(--color-mark-bg);color:var(--color-mark-text);border-radius:2px;padding:0 2px}.code-explorer__main{flex:1;display:flex;flex-direction:column;background-color:var(--color-bg-body);min-width:0}.code-explorer__breadcrumbs{height:var(--code-header-height);padding:0 var(--spacing-md);border-bottom:1px solid var(--color-border);background-color:var(--color-bg-surface);display:flex;align-items:center;gap:2px;font-size:.82rem;color:var(--color-text-muted);white-space:nowrap;overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--header-height,64px);z-index:5}.code-explorer__breadcrumbs::-webkit-scrollbar{display:none}.code-explorer__breadcrumbs a{color:var(--color-text-secondary);text-decoration:none;padding:3px 7px;border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:.82rem}.code-explorer__breadcrumbs a:hover{background-color:var(--color-bg-surface-alt);color:var(--color-primary)}.code-explorer__breadcrumbs>a:last-of-type{color:var(--color-text-main);font-weight:500}.code-explorer__breadcrumbs span{color:var(--color-text-muted);padding:0 1px;font-size:.75rem}.code-explorer__content{padding:var(--spacing-md);max-width:100%}.code-explorer__content .row{display:flex;align-items:center;padding:7px 12px;border-bottom:1px solid var(--color-border);background-color:var(--color-bg-surface);transition:background-color var(--transition-fast);margin-bottom:-1px;position:relative}.code-explorer__content .row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background-color:transparent;transition:background-color var(--transition-fast);border-radius:0 1px 1px 0}.code-explorer__content .row:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);border-top:1px solid var(--color-border);overflow:hidden}.code-explorer__content .row:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);overflow:hidden}.code-explorer__content .row:hover{background-color:var(--color-bg-surface-alt);z-index:1}.code-explorer__content .row:hover::before{background-color:var(--color-primary)}.code-explorer__content .row .icon{width:18px;height:18px;margin-right:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.code-explorer__content .row .icon img{width:100%;height:100%;object-fit:contain}.code-explorer__content .row .header{flex:2;min-width:0;font-weight:500;font-size:.875rem}.code-explorer__content .row .header a{color:var(--color-text-main);text-decoration:none;transition:color var(--transition-fast)}.code-explorer__content .row .header a:hover{color:var(--color-primary)}.code-explorer__content .row .desc{flex:3;min-width:0;color:var(--color-text-muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--spacing-md)}.code-explorer__content .row .time{flex-shrink:0;min-width:90px;text-align:right;color:var(--color-text-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.code-view-wrapper{position:relative}.monaco-host{display:none}@media (min-width:769px){.monaco-host{display:block;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.code-view-wrapper .prism-fallback{display:none}.code-view-wrapper.use-prism .prism-fallback{display:block}.code-view-wrapper.use-prism .monaco-host{display:none}}.monaco-lang-badge{position:absolute;bottom:8px;right:12px;font-size:.72rem;line-height:1;padding:2px 6px;border-radius:4px;background-color:var(--color-bg-surface,#1e1e1e);color:var(--color-text-muted,#858585);pointer-events:none;z-index:10;opacity:.8;user-select:none}.monaco-highlighted-line{background-color:rgba(255,200,0,.15)!important}.monaco-highlighted-line-gutter{background-color:rgba(255,200,0,.6);width:3px!important;margin-left:3px}.vs-dark .monaco-highlighted-line{background-color:rgba(255,200,0,.12)!important}#codeView{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:'Fira Code',Consolas,Monaco,'Andale Mono',monospace;position:relative}#codeView code{display:block!important;font-family:inherit!important}.line-highlight.line-highlight{margin-top:16px!important}.readme-main{background-color:var(--color-bg-surface);padding:var(--spacing-xl);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 1px 4px var(--color-shadow);margin-top:var(--spacing-md)}.row.ai-tips-warning{display:flex;align-items:center;gap:8px;padding:8px 14px;margin:var(--spacing-md) 0 0;background-color:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--color-status-warning);font-size:.82rem;border-bottom:1px solid rgba(245,158,11,.3)}.row.ai-tips-warning::before{display:none}@media (max-width:768px){.code-explorer__sidebar{display:none}.code-explorer__content{padding:var(--spacing-sm)}.code-explorer__content .row{padding:9px 10px;gap:8px}.code-explorer__content .row .icon{width:16px;height:16px;margin-right:8px}.code-explorer__content .row .header{font-size:.85rem;flex:1}.code-explorer__content .row .desc{display:none}.code-explorer__content .row .time{display:none}}.friends-page{padding-bottom:var(--spacing-xl)}.friends-page__header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-bg-surface-alt);display:flex;align-items:center;gap:var(--spacing-sm)}.friends-page__title{font-size:1.75rem;font-weight:800;color:var(--color-text-main);display:flex;align-items:center;gap:var(--spacing-sm)}.friends-page__title i{color:var(--color-primary)}.friends-page__subtitle{margin-top:var(--spacing-xs);color:var(--color-text-muted);font-size:.9rem}.friends-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.friend-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:all var(--transition-normal);overflow:hidden;position:relative;height:100%;--hover-hue:220;--hover-color:hsl(var(--hover-hue), 75%, 45%)}@media (prefers-color-scheme:dark){.friend-card{--hover-color:hsl(var(--hover-hue), 80%, 65%)}}.friend-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px var(--color-shadow);border-color:var(--hover-color)}.friend-card__link{display:flex;align-items:center;padding:var(--spacing-lg);text-decoration:none;height:100%}.friend-card__avatar{flex-shrink:0;width:64px;height:64px;margin-right:var(--spacing-md);position:relative}.friend-card__avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid var(--color-bg-surface-alt);transition:transform var(--transition-fast),border-color var(--transition-normal)}.friend-card:hover .friend-card__avatar img{transform:rotate(10deg);border-color:var(--hover-color)}.friend-card__info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.friend-card__name{font-size:1.1rem;font-weight:700;color:var(--color-text-main);margin-bottom:var(--spacing-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--transition-fast)}.friend-card:hover .friend-card__name{color:var(--hover-color)}.friend-card__desc{font-size:.85rem;color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.friend-card--skeleton .friend-card__avatar,.friend-card--skeleton .friend-card__desc,.friend-card--skeleton .friend-card__name{background-color:var(--color-bg-surface-alt);color:transparent}@media (max-width:640px){.friends-page__grid{grid-template-columns:1fr}.friend-card__link{padding:var(--spacing-md)}}.friends-page__comments{margin-top:var(--spacing-xl)}.timeline-page{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-xl) var(--spacing-md);min-height:calc(100vh - var(--header-height))}.timeline-page__header{text-align:center;margin-bottom:var(--spacing-xl);animation:fadeInDown var(--transition-normal) forwards}.timeline-page__title{font-size:2rem;font-weight:700;color:var(--color-text-main);margin-bottom:var(--spacing-sm)}.timeline-page__subtitle{color:var(--color-text-secondary);font-size:1.1rem}.timeline{position:relative;padding:var(--spacing-lg) 0}.timeline::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--color-border);transform:translateX(-50%);z-index:0}.timeline__item{position:relative;margin-bottom:var(--spacing-xl);width:50%;padding:0 var(--spacing-xl);box-sizing:border-box;opacity:0;transform:translateY(20px);transition:opacity var(--transition-normal),transform var(--transition-normal)}.timeline__item.is-visible{opacity:1;transform:translateY(0)}.timeline__item:nth-child(odd){left:0;text-align:right}.timeline__item:nth-child(2n){left:50%;text-align:left}.timeline__marker{position:absolute;top:24px;width:16px;height:16px;background:var(--color-bg-surface);border:4px solid var(--color-primary);border-radius:50%;z-index:1;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.timeline__item:nth-child(odd) .timeline__marker{right:-8px}.timeline__item:nth-child(2n) .timeline__marker{left:-8px}.timeline__item:hover .timeline__marker{background:var(--color-primary);box-shadow:0 0 0 4px var(--color-bg-surface-alt)}.timeline__date{display:inline-block;margin-bottom:var(--spacing-sm);font-weight:600;color:var(--color-primary);font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-surface-alt);border-radius:var(--radius-sm)}.timeline__content{background:var(--color-bg-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px var(--color-shadow),0 2px 4px -1px var(--color-shadow);border:1px solid var(--color-border);position:relative;transition:transform var(--transition-fast),box-shadow var(--transition-fast);text-align:left}.timeline__item:hover .timeline__content{transform:translateY(-2px);box-shadow:0 10px 15px -3px var(--color-shadow),0 4px 6px -2px var(--color-shadow);border-color:var(--color-primary)}.timeline__content::after{content:'';position:absolute;top:24px;width:0;height:0;border-style:solid;z-index:1}.timeline__item:nth-child(odd) .timeline__content::after{right:-10px;border-width:10px 0 10px 10px;border-color:transparent transparent transparent var(--color-bg-surface)}.timeline__item:nth-child(odd) .timeline__content::before{content:'';position:absolute;top:24px;right:-11px;width:0;height:0;border-style:solid;border-width:10px 0 10px 10px;border-color:transparent transparent transparent var(--color-border);z-index:0}.timeline__item:nth-child(2n) .timeline__content::after{left:-10px;border-width:10px 10px 10px 0;border-color:transparent var(--color-bg-surface) transparent transparent}.timeline__item:nth-child(2n) .timeline__content::before{content:'';position:absolute;top:24px;left:-11px;width:0;height:0;border-style:solid;border-width:10px 10px 10px 0;border-color:transparent var(--color-border) transparent transparent;z-index:0}.timeline__item:nth-child(odd):hover .timeline__content::before{border-left-color:var(--color-primary)}.timeline__item:nth-child(2n):hover .timeline__content::before{border-right-color:var(--color-primary)}.timeline__title{margin-top:0;margin-bottom:var(--spacing-md);font-size:1.25rem;color:var(--color-text-main);font-weight:700}.timeline__body{color:var(--color-text-secondary);font-size:1rem;line-height:1.6}.timeline__more{display:inline-block;margin-top:var(--spacing-md);color:var(--color-primary);text-decoration:none;font-weight:500;font-size:.9rem;transition:color var(--transition-fast)}.timeline__more:hover{color:var(--color-primary-hover);text-decoration:underline}@keyframes fadeInDown{from{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}.timeline__end,.timeline__loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl) 0;color:var(--color-text-muted);font-size:.95rem}.timeline__loading i{font-size:1.2rem;color:var(--color-primary)}.timeline__end{opacity:.6}@media (max-width:768px){.timeline::before{left:20px}.timeline__item{width:100%;padding-left:50px;padding-right:0;margin-bottom:var(--spacing-lg)}.timeline__item:nth-child(2n),.timeline__item:nth-child(odd){left:0;text-align:left}.timeline__item:nth-child(2n) .timeline__marker,.timeline__item:nth-child(odd) .timeline__marker{left:12px;right:auto}.timeline__item:nth-child(2n) .timeline__content::after,.timeline__item:nth-child(odd) .timeline__content::after{left:-10px;right:auto;border-width:10px 10px 10px 0;border-color:transparent var(--color-bg-surface) transparent transparent}.timeline__item:nth-child(2n) .timeline__content::before,.timeline__item:nth-child(odd) .timeline__content::before{left:-11px;right:auto;border-width:10px 10px 10px 0;border-color:transparent var(--color-border) transparent transparent}.timeline__item:nth-child(2n):hover .timeline__content::before,.timeline__item:nth-child(odd):hover .timeline__content::before{border-right-color:var(--color-primary);border-left-color:transparent}}.albums{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.albums__header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-border)}.albums__title{font-size:1.5rem;font-weight:700;color:var(--color-text-main);display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.albums__title i{color:var(--color-primary)}.albums__subtitle{color:var(--color-text-secondary);font-size:.95rem;margin-bottom:var(--spacing-sm)}.albums__stats{display:inline-flex;gap:var(--spacing-lg);font-size:.85rem;color:var(--color-text-muted)}.albums__grid{position:relative;opacity:0;transition:opacity .3s ease}.albums__grid--ready{opacity:1}.albums__grid-sizer,.albums__item{width:calc(25% - 12px);margin-bottom:16px}@media (max-width:1200px){.albums__grid-sizer,.albums__item{width:calc(33.333% - 11px)}}@media (max-width:768px){.albums__grid-sizer,.albums__item{width:calc(50% - 8px)}}@media (max-width:480px){.albums__grid-sizer,.albums__item{width:100%}}.albums__card{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-surface);border:1px solid var(--color-border);box-shadow:0 1px 4px var(--color-shadow);cursor:zoom-in;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.albums__card:hover{transform:translateY(-4px);box-shadow:0 10px 28px var(--color-shadow);border-color:transparent;z-index:1}.albums__image-wrapper{position:relative;width:100%;overflow:hidden;background-color:var(--color-bg-surface-alt)}.albums__image{display:block;width:100%;height:auto;transition:transform .35s ease,opacity .3s ease;opacity:0}.albums__image.is-loaded{opacity:1}.albums__card:hover .albums__image{transform:scale(1.04)}.albums__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,0) 45%,rgba(0,0,0,.65) 100%);opacity:0;transition:opacity .25s ease;display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-md);pointer-events:none}.albums__card:hover .albums__overlay{opacity:1;pointer-events:auto}.albums__actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.albums__action-btn{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.9);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:none;color:#1a1a1a;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background .15s ease;font-size:.85rem}.albums__action-btn:hover{background:#fff;transform:scale(1.12)}.albums__info{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6);transform:translateY(6px);transition:transform .25s ease}.albums__card:hover .albums__info{transform:translateY(0)}.albums__desc{font-size:.875rem;font-weight:500;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.albums__meta{display:flex;flex-direction:column;gap:2px;font-size:.75rem;opacity:.85}.albums__meta-row{display:flex;justify-content:space-between;gap:var(--spacing-sm)}.albums__loading{display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl) 0;width:100%}.albums__spinner{width:36px;height:36px;border:3px solid var(--color-bg-surface-alt);border-top-color:var(--color-primary);border-radius:50%;animation:albums-spin .8s linear infinite}@keyframes albums-spin{to{transform:rotate(360deg)}}.albums__no-more{text-align:center;padding:var(--spacing-xl) 0;color:var(--color-text-muted);font-size:.9rem}@media (max-width:480px){.albums__header{margin-bottom:var(--spacing-lg)}.albums__title{font-size:1.25rem}.albums__stats{gap:var(--spacing-md)}}.video-container{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-lg)}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.video-card{background-color:var(--color-bg-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 6px -1px var(--color-shadow),0 2px 4px -1px var(--color-shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast);text-decoration:none;display:flex;flex-direction:column}.video-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px var(--color-shadow),0 4px 6px -2px var(--color-shadow)}.video-card__cover{position:relative;padding-top:56.25%;background-color:var(--color-bg-surface-alt);overflow:hidden}.video-card__image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.video-card:hover .video-card__image{transform:scale(1.05)}.video-card__info{padding:var(--spacing-md);flex-grow:1;display:flex;flex-direction:column}.video-card__title{font-size:1.1rem;font-weight:600;color:var(--color-text-main);margin-bottom:var(--spacing-xs);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.video-card__meta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:.875rem;color:var(--color-text-secondary)}.video-card__stats{display:flex;gap:var(--spacing-sm)}.video-card__stat{display:flex;align-items:center;gap:4px}.video-watch{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-lg)}.video-player-wrapper{width:100%;background-color:#000;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 10px 15px -3px rgba(0,0,0,.5);margin-bottom:var(--spacing-lg);position:relative;aspect-ratio:16/9}.video-player{width:100%;height:100%}.video-info{background-color:var(--color-bg-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 var(--color-shadow)}.video-info__header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.video-info__title{font-size:1.5rem;font-weight:700;color:var(--color-text-main);margin-bottom:var(--spacing-sm);line-height:1.3}.video-info__meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md);color:var(--color-text-secondary);font-size:.9rem}.video-info__meta-item{display:flex;align-items:center;gap:6px}.video-info__description{color:var(--color-text-secondary);line-height:1.6;font-size:1rem;white-space:pre-wrap}.video-comments{margin-top:var(--spacing-lg)}.icon{width:1em;height:1em;fill:currentColor}@media (max-width:768px){.video-container,.video-watch{padding:var(--spacing-md)}.video-grid{grid-template-columns:repeat(auto-fill,minmax(100%,1fr));gap:var(--spacing-md)}.video-info__title{font-size:1.25rem}}.group-chat{position:fixed;bottom:20px;right:20px;width:400px;max-width:calc(100vw - 40px);height:600px;max-height:calc(100vh - 40px);background-color:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);z-index:1000;opacity:0;transform:translateY(20px) scale(.95);visibility:hidden;transition:all var(--transition-normal)}.group-chat--visible{opacity:1;transform:translateY(0) scale(1);visibility:visible}.group-chat__header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background-color:var(--color-bg-surface-alt);flex-shrink:0}.group-chat__title{font-size:1.125rem;font-weight:600;color:var(--color-text-main);margin:0}.group-chat__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:1.25rem;line-height:1;padding:0}.group-chat__close:hover{color:var(--color-text-main);background-color:var(--color-bg-body)}.group-chat__messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);min-height:0}.group-chat__messages::-webkit-scrollbar{width:6px}.group-chat__messages::-webkit-scrollbar-track{background:0 0}.group-chat__messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.group-chat__messages::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.group-chat__load-more{text-align:center;padding:var(--spacing-sm);color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:color var(--transition-fast)}.group-chat__load-more:hover{color:var(--color-text-secondary)}.group-chat__load-more--loading{cursor:default;opacity:.6}.group-chat__message{display:flex;gap:var(--spacing-sm);animation:message-slide-in var(--transition-fast) ease-out}@keyframes message-slide-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.group-chat__message--own{flex-direction:row-reverse}.group-chat__avatar{width:36px;height:36px;min-width:36px;border-radius:50%;object-fit:cover;flex-shrink:0;background-color:var(--color-bg-surface-alt)}.group-chat__message-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.group-chat__message--own .group-chat__message-content{align-items:flex-end}.group-chat__bubble{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);word-wrap:break-word;word-break:break-word;max-width:80%;line-height:1.5;white-space:pre-wrap}.group-chat__message--own .group-chat__bubble{background-color:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.group-chat__message:not(.group-chat__message--own) .group-chat__bubble{background-color:var(--color-bg-surface-alt);color:var(--color-text-main);border-bottom-left-radius:var(--radius-sm)}.group-chat__username{font-size:.75rem;color:var(--color-text-muted);font-weight:500}.group-chat__message--own .group-chat__username{text-align:right}.group-chat__timestamp{font-size:.6875rem;color:var(--color-text-muted);margin-top:2px}.group-chat__message--own .group-chat__timestamp{text-align:right}.group-chat__system-message{text-align:center;padding:var(--spacing-sm);color:var(--color-text-muted);font-size:.875rem;font-style:italic}.group-chat__input-area{position:relative;padding:var(--spacing-md);border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-sm);background-color:var(--color-bg-surface-alt);flex-shrink:0}.group-chat__input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-surface);color:var(--color-text-main);font-size:.875rem;font-family:inherit;resize:none;min-height:40px;max-height:120px;transition:border-color var(--transition-fast)}.group-chat__input:focus{outline:0;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(37,99,235,.1)}.group-chat__send-btn{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap;flex-shrink:0}.group-chat__send-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.group-chat__send-btn:disabled{opacity:.6;cursor:not-allowed}.group-chat__trigger{position:fixed;bottom:calc(var(--spacing-xl) + 48px + var(--spacing-md));right:var(--spacing-xl);width:48px;height:48px;border-radius:50%;background-color:var(--color-primary);color:#fff;border:none;box-shadow:0 4px 12px rgba(37,99,235,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:all var(--transition-fast);z-index:999}.group-chat__trigger:hover{background-color:var(--color-primary-hover);transform:scale(1.1);box-shadow:0 6px 16px rgba(37,99,235,.4)}.group-chat--visible+.group-chat__trigger,.group-chat--visible~.group-chat__trigger{display:none}@media (prefers-color-scheme:dark){.group-chat{box-shadow:0 10px 25px -5px rgba(0,0,0,.3),0 8px 10px -6px rgba(0,0,0,.2)}.group-chat__trigger{box-shadow:0 4px 12px rgba(59,130,246,.4)}.group-chat__trigger:hover{box-shadow:0 6px 16px rgba(59,130,246,.5)}}@media (max-width:640px){.group-chat{bottom:0;right:0;left:0;top:0;width:100%;max-width:100%;height:100vh;height:100dvh;height:calc(var(--vh,1vh) * 100);min-height:-webkit-fill-available;max-height:100vh;max-height:100dvh;max-height:calc(var(--vh,1vh) * 100);border-radius:0;border-left:none;border-right:none;border-bottom:none;border-top:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.group-chat__header{padding-top:calc(var(--spacing-md) + env(safe-area-inset-top,0px))}.group-chat__input-area{padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px))}.group-chat__trigger{bottom:calc(var(--spacing-lg) + 40px + var(--spacing-md) + env(safe-area-inset-bottom,0px));right:var(--spacing-lg);width:40px;height:40px;font-size:1.25rem}.group-chat__bubble{max-width:85%}.group-chat__avatar{width:32px;height:32px;min-width:32px}}@media (min-width:641px) and (max-width:1024px){.group-chat{width:360px;height:500px}}@media (max-width:768px){.group-chat__trigger{width:40px;height:40px;font-size:1.25rem}}.canvas-chat{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;width:100dvw;height:100vh;height:100dvh;height:calc(var(--vh,1vh) * 100);min-height:-webkit-fill-available;background-color:rgba(0,0,0,.85);z-index:2000;display:none;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.canvas-chat--visible{display:flex;opacity:1}.canvas-chat__container{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.3);overflow:hidden;max-width:95vw;max-width:95dvw;max-height:90vh;max-height:90dvh;max-height:calc(var(--vh,1vh) * 90);display:flex;flex-direction:column}@media (max-width:640px){.canvas-chat__container{max-width:100vw;max-width:100dvw;max-height:100vh;max-height:100dvh;max-height:calc(var(--vh,1vh) * 100);border-radius:0;margin-top:env(safe-area-inset-top,0);margin-bottom:env(safe-area-inset-bottom,0)}}@media (prefers-color-scheme:dark){.canvas-chat__container{background-color:#1e1e1e;border:1px solid #333}}.canvas-chat__header{padding:10px 15px;background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}@media (prefers-color-scheme:dark){.canvas-chat__header{background-color:#2d2d2d;border-bottom-color:#444}}.canvas-chat__title{margin:0;font-size:16px;font-weight:600;color:#333}@media (prefers-color-scheme:dark){.canvas-chat__title{color:#ddd}}.canvas-chat__status{font-size:12px;color:#666;margin-left:10px}@media (prefers-color-scheme:dark){.canvas-chat__status{color:#aaa}}.canvas-chat__close{background:0 0;border:none;font-size:20px;cursor:pointer;color:#666;padding:0;line-height:1;transition:color .2s}.canvas-chat__close:hover{color:#d32f2f}@media (prefers-color-scheme:dark){.canvas-chat__close{color:#aaa}.canvas-chat__close:hover{color:#ff5252}}.canvas-chat__body{position:relative;background-color:#fff;cursor:crosshair;overflow:hidden;flex:1;display:flex;align-items:center;justify-content:center;padding:10px}@media (prefers-color-scheme:dark){.canvas-chat__body{background-color:#121212}}.canvas-chat__canvas{display:block;touch-action:none;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff}@media (prefers-color-scheme:dark){.canvas-chat__canvas{border-color:#444;background-color:#1e1e1e}}.canvas-chat__toolbar{padding:10px;background-color:#f5f5f5;border-top:1px solid #e0e0e0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}@media (prefers-color-scheme:dark){.canvas-chat__toolbar{background-color:#2d2d2d;border-top-color:#444}}.canvas-chat__tool-btn{width:30px;height:30px;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#333}@media (prefers-color-scheme:dark){.canvas-chat__tool-btn{background-color:#333;border-color:#555;color:#ddd}}.canvas-chat__tool-btn:hover{background-color:#e0e0e0}.canvas-chat__tool-btn--active{background-color:#2196f3;color:#fff;border-color:#1976d2}@media (prefers-color-scheme:dark){.canvas-chat__tool-btn:hover{background-color:#444}.canvas-chat__tool-btn--active{background-color:#1565c0;border-color:#0d47a1}}.canvas-chat__color-picker{width:30px;height:30px;padding:0;border:none;border-radius:4px;cursor:pointer;background:0 0}.canvas-chat__size-slider{width:100px;cursor:pointer}.group-chat__commands{position:absolute;bottom:100%;left:0;width:100%;background-color:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd;box-shadow:0 -2px 10px rgba(0,0,0,.1);display:none;z-index:10}@media (prefers-color-scheme:dark){.group-chat__commands{background-color:#2d2d2d;border-color:#444}}.group-chat__commands--visible{display:block}.group-chat__command-item{padding:8px 12px;cursor:pointer;display:flex;justify-content:space-between;color:#333}@media (prefers-color-scheme:dark){.group-chat__command-item{color:#ddd}}.group-chat__command-item:hover{background-color:#f5f5f5}@media (prefers-color-scheme:dark){.group-chat__command-item:hover{background-color:#3e3e3e}}.group-chat__command-name{font-weight:700;color:#2196f3}.group-chat__command-desc{color:#888;font-size:12px}