.about-main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:0 20px}.about-profile-section{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;padding:48px 0 56px;border-bottom:1px solid var(--color-border-light);margin-bottom:var(--spacing-section)}.about-profile-avatar{flex-shrink:0;width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-light) 0%,var(--color-accent) 100%);display:flex;align-items:center;justify-content:center;border:3px solid var(--color-border-light);box-shadow:var(--shadow-card)}.about-profile-avatar-initials{font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.03em}.about-profile-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.about-profile-avatar--editable{cursor:pointer;position:relative;overflow:hidden}.about-profile-avatar-overlay{position:absolute;inset:0;border-radius:50%;background:#00000073;color:#fff;font-size:.75rem;font-weight:600;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}.about-profile-avatar--editable:hover .about-profile-avatar-overlay,.about-profile-avatar--uploading .about-profile-avatar-overlay{opacity:1}.about-profile-info{flex:1}.about-profile-badge{display:inline-flex;align-items:center;gap:6px;background-color:#f0fdf4;color:#16a34a;padding:4px 14px;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:16px;border:1px solid #bbf7d0}.about-profile-badge-dot{width:6px;height:6px;background-color:#16a34a;border-radius:50%;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.about-profile-name{font-size:1.875rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.03em;line-height:1.15;margin-bottom:6px}.about-profile-role{font-size:1.125rem;font-weight:600;color:var(--color-accent);margin-bottom:16px}.about-profile-bio{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.8;max-width:560px;margin-bottom:28px}.about-profile-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.about-link-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.about-link-btn:hover{transform:translateY(-1px)}.about-link-btn--primary{background-color:var(--color-accent);color:#fff}.about-link-btn--primary:hover{background-color:var(--color-accent-hover)}.about-link-btn--secondary{background-color:transparent;color:var(--color-text-primary);border:1.5px solid var(--color-border)}.about-link-btn--secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.about-section{margin-bottom:var(--spacing-section)}.about-section-title{font-size:1.5rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em;margin-bottom:36px;padding-bottom:16px;border-bottom:2px solid var(--color-border-light);position:relative}.about-section-title:after{content:"";position:absolute;bottom:-2px;left:0;width:48px;height:2px;background-color:var(--color-accent);border-radius:2px}.about-timeline{display:flex;flex-direction:column;gap:0}.about-timeline-item{display:flex;gap:0}.about-timeline-dot-wrap{display:none;flex-direction:column;align-items:center;padding-top:4px}.about-timeline-dot{width:14px;height:14px;border-radius:50%;background-color:var(--color-border);border:2px solid var(--color-bg-card);box-shadow:0 0 0 2px var(--color-border);flex-shrink:0;transition:background-color var(--transition-fast)}.about-timeline-dot--active{background-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.about-timeline-line{flex:1;width:2px;background-color:var(--color-border-light);margin-top:8px;margin-bottom:8px}.about-timeline-item:last-child .about-timeline-line{display:none}.about-timeline-content{flex:1;padding:20px;background-color:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);margin-bottom:12px}.about-timeline-item:last-child .about-timeline-content{margin-bottom:0}.about-timeline-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.about-timeline-period{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.02em}.about-timeline-current-badge{font-size:.75rem;font-weight:700;color:var(--color-accent);background-color:var(--color-accent-light);padding:2px 10px;border-radius:999px;border:1px solid rgba(14,165,233,.3)}.about-timeline-company{font-size:1.125rem;font-weight:700;color:var(--color-text-primary);margin-bottom:4px}.about-timeline-role{font-size:.9rem;font-weight:600;color:var(--color-accent);margin-bottom:10px}.about-timeline-desc{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.75;margin-bottom:14px}.about-bio-wrapper{position:relative;display:block;margin-bottom:28px}.about-bio-text-wrap{position:relative;display:inline-block}.about-bio-edit-btn{position:absolute;top:0;right:-24px;opacity:0;background:none;border:none;cursor:pointer;font-size:.85rem;padding:2px 4px;border-radius:var(--radius-sm);transition:opacity var(--transition-fast),background-color var(--transition-fast);color:#71859b}.about-bio-text-wrap:hover .about-bio-edit-btn{opacity:1}.about-bio-edit-btn:hover{background-color:var(--color-bg-secondary)}.about-bio-edit{display:flex;flex-direction:column;gap:10px;width:100%}.about-bio-textarea{width:100%;padding:10px 12px;border:1.5px solid var(--color-accent);border-radius:var(--radius-sm);font-size:.9375rem;line-height:1.8;color:var(--color-text-primary);background-color:var(--color-bg-card);resize:vertical;outline:none;font-family:inherit}.about-bio-edit-actions{display:flex;gap:8px}.about-bio-btn{padding:6px 18px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:background-color var(--transition-fast)}.about-bio-btn:disabled{opacity:.6;cursor:not-allowed}.about-bio-btn--save{background-color:var(--color-accent);color:#fff}.about-bio-btn--save:hover:not(:disabled){background-color:var(--color-accent-hover)}.about-bio-btn--cancel{background-color:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.about-bio-btn--cancel:hover:not(:disabled){border-color:var(--color-text-secondary)}.about-empty-text{font-size:.9rem;color:var(--color-text-muted);width:100%;text-align:center;margin:0 auto}.about-tag-list{display:flex;flex-wrap:wrap;gap:8px}.about-tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-bg-secondary);font-size:.8125rem;font-weight:600;color:var(--color-text-secondary)}.about-project-grid{display:grid;grid-template-columns:1fr;gap:20px}.about-project-card{display:flex;flex-direction:column;background-color:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow var(--transition-base),border-color var(--transition-base),transform var(--transition-base);cursor:pointer}.about-project-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-accent);transform:translateY(-2px)}.about-project-preview{position:relative;width:100%;aspect-ratio:16 / 9;background-color:var(--color-bg-secondary);overflow:hidden;border-bottom:1px solid var(--color-border-light)}.about-project-preview-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-border-light) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.about-project-preview-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity var(--transition-base)}.about-project-preview-img--loaded{opacity:1}.about-project-card:hover .about-project-preview-img--loaded{transform:scale(1.02);transition:opacity var(--transition-base),transform .4s ease}.about-project-preview-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background-color:var(--color-bg-secondary)}.about-project-preview-fallback-icon{font-size:1.75rem;opacity:.4}.about-project-preview-fallback-text{font-size:.8125rem;color:var(--color-text-muted);font-weight:500}.about-project-card-body{display:flex;flex-direction:column;gap:10px;padding:16px 18px 20px;flex:1}.about-project-card-header{display:flex;align-items:center;justify-content:space-between}.about-project-period{font-size:.8rem;font-weight:600;color:var(--color-text-muted)}.about-project-arrow{font-size:1rem;color:var(--color-border);transition:color var(--transition-fast),transform var(--transition-fast)}.about-project-card:hover .about-project-arrow{color:var(--color-accent);transform:translate(3px)}.about-project-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);line-height:1.3}.about-project-desc{font-size:.875rem;color:var(--color-text-secondary);line-height:1.7;flex:1}.about-skills-section{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:32px 24px;border:1px solid var(--color-border-light)}.about-skills-section .about-section-title{border-bottom-color:var(--color-border)}.about-skills-grid{display:flex;flex-direction:column;gap:28px}.about-skill-group{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.about-skill-category{min-width:unset;font-size:.8125rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding-top:0}.about-skill-list{display:flex;flex-wrap:wrap;gap:10px}@media(min-width:768px){.about-main{padding:0 32px}.about-profile-section{gap:32px}.about-profile-avatar{width:100px;height:100px}.about-profile-name{font-size:2rem}.about-project-grid{grid-template-columns:repeat(2,1fr)}.about-skills-section{padding:40px}}@media(min-width:1024px){.about-main{padding:0 40px}.about-profile-section{flex-direction:row;align-items:center;text-align:left;padding:80px 0 72px;gap:48px}.about-profile-avatar{width:120px;height:120px}.about-profile-name{font-size:2.5rem}.about-profile-bio{font-size:1rem}.about-profile-links{justify-content:flex-start;flex-wrap:nowrap}.about-timeline-dot-wrap{display:flex}.about-timeline-item{gap:24px}.about-timeline-content{padding:0 0 40px;background-color:transparent;border:none;border-radius:0;margin-bottom:0}.about-timeline-item:last-child .about-timeline-content{padding-bottom:0}.about-project-grid{grid-template-columns:repeat(3,1fr)}.about-project-card-body{padding:20px 24px 24px}.about-skills-section{padding:48px 56px}.about-skill-group{flex-direction:row;gap:24px}.about-skill-category{min-width:140px;padding-top:8px}}.account-main{flex:1;width:100%;background-color:var(--color-bg);padding:36px 0 60px}.account-container{max-width:680px;margin:0 auto;padding:0 16px}.account-page-title{font-size:1.375rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.03em;margin-bottom:28px}.account-avatar-wrap{display:flex;justify-content:center;margin-bottom:28px}.account-avatar-btn{position:relative;width:80px;height:80px;border-radius:50%;overflow:hidden;cursor:pointer;display:block;flex-shrink:0;border:none;padding:0;background:none}.account-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.account-avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-accent-light) 0%,var(--color-accent) 100%)}.account-avatar-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#00000059;opacity:0;transition:opacity var(--transition-fast);border-radius:50%}.account-avatar-btn:hover .account-avatar-overlay{opacity:1}.account-avatar-camera-icon{width:28px;height:28px;color:#fff}.account-avatar-file-input{display:none}.account-media-banner{display:flex;align-items:center;gap:10px;background-color:var(--color-border-light);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:28px}.account-media-banner-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--color-text-muted);font-size:.8rem;font-weight:700;color:var(--color-text-muted);flex-shrink:0;line-height:1}.account-media-banner-text{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.account-field{margin-bottom:24px}.account-field-label{display:block;font-size:1rem;font-weight:700;color:var(--color-text-primary);margin-bottom:10px}.account-field-input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;color:var(--color-text-primary);background-color:#fff;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;font-family:inherit}.account-field-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0ea5e91f}.account-field-input::placeholder{color:var(--color-text-muted)}.account-username-input-wrap{position:relative;display:flex;align-items:center}.account-username-at{position:absolute;left:14px;font-size:1rem;font-weight:600;color:var(--color-text-secondary);pointer-events:none;z-index:1}.account-field-input--username{padding-left:36px}.account-nickname-row{display:flex;gap:8px;align-items:stretch}.account-nickname-row .account-username-input-wrap{flex:1}.account-nickname-check-btn{flex-shrink:0;padding:0 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:none;cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast),color var(--transition-fast);font-family:inherit}.account-nickname-check-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.account-nickname-check-btn:disabled{opacity:.4;cursor:not-allowed}.account-nickname-status--available{color:#16a34a}.account-nickname-status--taken,.account-nickname-status--invalid{color:#ef4444}.account-field-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;color:var(--color-text-primary);background-color:#fff;resize:vertical;min-height:140px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;font-family:inherit;line-height:1.7}.account-field-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0ea5e91f}.account-field-textarea::placeholder{color:var(--color-text-muted)}.account-field-hint{margin-top:8px;font-size:.8125rem;color:var(--color-text-muted)}.account-submit-wrap{display:flex;justify-content:flex-end;margin-top:4px}.account-submit-btn{width:100%;padding:14px;text-align:center;background-color:var(--color-accent);color:#fff;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;transition:background-color var(--transition-fast),transform var(--transition-fast);cursor:pointer;border:none;font-family:inherit}.account-submit-btn:hover{background-color:var(--color-accent-hover);transform:translateY(-1px)}.account-submit-btn:active{transform:translateY(0)}.account-withdrawal-wrap{display:flex;justify-content:center;margin-top:48px;padding-top:24px;border-top:1px solid var(--color-border-light)}.account-withdrawal-btn{font-size:.8125rem;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:3px;background:none;border:none;cursor:pointer;transition:color var(--transition-fast);font-family:inherit}.account-withdrawal-btn:hover{color:#ef4444}.account-modal-overlay{position:fixed;inset:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.account-modal{background-color:var(--color-bg-card);border-radius:var(--radius-lg);padding:24px 20px 20px;width:100%;max-width:calc(100% - 32px);box-shadow:0 8px 40px #0000002e}.account-modal-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);margin-bottom:10px}.account-modal-msg{font-size:.875rem;color:var(--color-text-secondary);line-height:1.7;margin-bottom:24px}.account-modal-actions{display:flex;justify-content:flex-end;gap:10px}.account-modal-btn-cancel{padding:9px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);border:1.5px solid var(--color-border);background:none;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast);font-family:inherit}.account-modal-btn-cancel:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.account-modal-btn-danger{padding:9px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:#fff;background-color:#ef4444;border:none;cursor:pointer;transition:background-color var(--transition-fast);font-family:inherit}.account-modal-btn-danger:hover{background-color:#dc2626}@media(min-width:1024px){.account-main{padding:60px 0 80px}.account-container{padding:0 40px}.account-page-title{font-size:1.75rem;margin-bottom:40px}.account-avatar-btn{width:100px;height:100px}.account-media-banner{padding:14px 20px;margin-bottom:40px}.account-media-banner-text{font-size:.9375rem}.account-field{margin-bottom:32px}.account-field-input,.account-field-textarea{padding:14px 18px;font-size:.9375rem}.account-field-input--username{padding-left:42px}.account-username-at{left:18px}.account-submit-btn{width:auto;padding:12px 36px;text-align:center}.account-submit-wrap{margin-top:8px}.account-modal{max-width:400px;padding:32px 28px 28px}}.comment-section{margin-top:40px;padding-top:32px;border-top:2px solid var(--color-border)}.comment-section-title{display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:700;color:var(--color-text-primary);margin-bottom:24px}.comment-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:100px;background-color:var(--color-accent);color:#fff;font-size:.8rem;font-weight:700}.comment-list{display:flex;flex-direction:column;gap:0;margin-bottom:48px}.comment-empty{text-align:center;padding:40px 0;color:var(--color-text-muted);font-size:.9rem;margin-bottom:48px}.comment-item{position:relative;padding:4px 0}.comment-box{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:8px;transition:border-color var(--transition-fast)}.comment-box:hover{border-color:#d1d5db}@keyframes comment-highlight-pulse{0%{border-width:1px;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}60%{border-width:1px;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}to{border-width:1px;border-color:var(--color-border);box-shadow:none}}.comment-box--highlight{animation:comment-highlight-pulse 1.5s ease-out forwards}.comment-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.comment-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;flex-shrink:0}.comment-avatar--image{object-fit:cover;display:block}.comment-meta{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}.comment-author{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.comment-date{font-size:.75rem;color:var(--color-text-muted)}.comment-edited{font-size:.72rem;color:#c0c7d0}.comment-action-buttons{display:flex;align-items:center;gap:2px}.comment-reply-btn{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:500;color:var(--color-text-muted);padding:4px 10px;border-radius:var(--radius-sm);border:1px solid transparent;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.comment-reply-btn:hover,.comment-reply-btn.active{color:var(--color-accent);background-color:var(--color-accent-light);border-color:#0ea5e94d}.comment-edit-btn,.comment-delete-btn{display:flex;align-items:center;font-size:.75rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid transparent;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.comment-edit-btn{color:var(--color-text-muted)}.comment-edit-btn:hover,.comment-edit-btn.active{color:var(--color-accent);background-color:var(--color-accent-light);border-color:#0ea5e94d}.comment-delete-btn{color:var(--color-text-muted)}.comment-delete-btn:hover,.comment-delete-btn.active{color:#ef4444;background-color:#ef444414;border-color:#ef444440}.comment-mention{font-size:.875rem;font-weight:600;color:var(--color-accent);margin-right:6px}.comment-content{font-size:.9rem;line-height:1.75;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.comment-children{display:flex;flex-direction:column;gap:0;margin-left:14px;padding-left:14px;border-left:2px solid var(--color-border)}.comment-children .comment-box{background-color:var(--color-bg-subtle, #f9fafb)}.comment-children .comment-children{margin-left:0;padding-left:0;border-left:none}.comment-form-reply{margin-top:16px;padding-top:16px;border-top:1px dashed var(--color-border)}.comment-delete-password-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border)}.comment-delete-password-form .comment-input-password{width:100%;max-width:100%}.comment-edit-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border)}.comment-edit-form .comment-input-password{max-width:100%}.comment-modal-overlay{position:fixed;inset:0;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.comment-modal{background-color:var(--color-bg-card);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:24px 20px 20px;width:100%;max-width:calc(100vw - 48px);display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 32px #00000029}.comment-modal-title{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.comment-modal-msg{font-size:.875rem;color:var(--color-text-secondary)}.comment-modal-password{width:100%!important;max-width:100%!important}.comment-error-msg{font-size:.8rem;color:#ef4444;margin:0}.comment-form-wrapper{padding:16px;background-color:var(--color-border-light);border-radius:var(--radius-md);border:1px solid var(--color-border)}.comment-form-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:16px}.comment-form{display:flex;flex-direction:column;gap:10px}.comment-form-owner-box{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);overflow:hidden;transition:border-color var(--transition-fast)}.comment-form-owner-box:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.comment-form-owner-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px}.comment-owner-name{font-size:.875rem;font-weight:700;color:var(--color-text-primary)}.comment-input-content--owner{border:none;border-radius:0;box-shadow:none;padding:4px 14px 12px;min-height:60px}.comment-input-content--owner:focus{border:none;box-shadow:none}.comment-form-top-row{display:flex;flex-direction:column;gap:8px}.comment-input-author{width:100%;padding:9px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-bg-card);font-family:inherit;transition:border-color var(--transition-fast);outline:none}.comment-input-author:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.comment-input-password{width:100%;padding:9px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-bg-card);font-family:inherit;transition:border-color var(--transition-fast);outline:none}.comment-input-password:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.comment-btn-danger{padding:8px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:#fff;background-color:#ef4444;transition:background-color var(--transition-fast)}.comment-btn-danger:hover:not(:disabled){background-color:#dc2626}.comment-btn-danger:disabled{background-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.comment-input-content{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg-card);font-family:inherit;resize:vertical;min-height:80px;transition:border-color var(--transition-fast);outline:none}.comment-input-content:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.comment-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.comment-btn-cancel{padding:8px 18px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--color-text-muted);border:1px solid var(--color-border);background-color:var(--color-bg-card);transition:background-color var(--transition-fast),color var(--transition-fast)}.comment-btn-cancel:hover{background-color:var(--color-border);color:var(--color-text-secondary)}.comment-btn-submit{padding:8px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:#fff;background-color:var(--color-accent);transition:background-color var(--transition-fast)}.comment-btn-submit:hover:not(:disabled){background-color:var(--color-accent-hover)}.comment-btn-submit:disabled{background-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.visitor-widget{text-align:center}.visitor-total{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 0 16px;border-bottom:1px solid var(--color-border);margin-bottom:12px}.visitor-total-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.visitor-total-count{font-size:1.75rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.visitor-today-yesterday{display:flex;justify-content:center;gap:20px}.visitor-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.visitor-stat-label{font-size:.68rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.visitor-stat-value{font-size:.95rem;font-weight:700;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}@media(min-width:768px){.comment-input-author{width:160px}}@media(min-width:1024px){.comment-section{margin-top:60px;padding-top:48px}.comment-section-title{font-size:1.125rem;margin-bottom:32px}.comment-box{padding:18px 20px}.comment-avatar{width:36px;height:36px;font-size:.875rem}.comment-children{margin-left:20px;padding-left:20px}.comment-input-author{width:180px}.comment-input-password{width:160px}.comment-form-top-row{flex-direction:row}.comment-form-wrapper{padding:24px}.comment-edit-form .comment-input-password,.comment-delete-password-form .comment-input-password{max-width:260px}.comment-modal{max-width:360px;padding:28px 24px 24px}}.footer{background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border);margin-top:auto}.footer-inner{max-width:var(--max-width);margin:0 auto;padding:48px 40px 32px;display:flex;justify-content:space-between;gap:48px}.footer-brand-name{font-size:1.25rem;font-weight:800;color:var(--color-accent);margin-bottom:10px}.footer-brand-desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.7}.footer-col-title{font-size:.8125rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}.footer-links{display:flex;flex-direction:column;gap:10px;list-style:none}.footer-link{font-size:.875rem;color:var(--color-text-muted);transition:color var(--transition-fast)}.footer-link:hover{color:var(--color-accent)}.footer-bottom{max-width:var(--max-width);margin:0 auto;padding:20px 40px;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.footer-copyright{font-size:.8125rem;color:var(--color-text-muted)}.github-contribution{margin-top:64px;padding-top:40px;border-top:1px solid var(--color-border);display:flex;justify-content:center;overflow-x:auto}.home-main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:0 40px}.header{position:sticky;top:0;z-index:100;background-color:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);height:75px}.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:100%}.header-logo{font-size:1.125rem;font-weight:800;color:var(--color-accent);letter-spacing:-.02em}.header-nav{display:flex;gap:16px;list-style:none}.header-nav-link{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);transition:color var(--transition-fast)}.header-nav-link:hover{color:var(--color-accent)}.header-login-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);background-color:#24292f;color:#fff;font-size:.8125rem;font-weight:600;border:none;cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.header-login-btn:hover{background-color:#3a424a}.header-login-btn span{display:none}.header-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:#c0c4cc;border-radius:50%;animation:header-spin .7s linear infinite}@keyframes header-spin{to{transform:rotate(360deg)}}.github-icon{width:16px;height:16px;fill:#fff;flex-shrink:0}.header-user-area{display:flex;align-items:center;gap:6px}.header-user{position:relative}.header-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast)}.header-icon-btn:hover{background-color:var(--color-bg-secondary, #f1f3f5);color:var(--color-text-primary)}.header-icon-btn svg{width:20px;height:20px}.header-bell-badge{position:absolute;top:0;right:0;min-width:19px;height:19px;padding:0 4px;border-radius:9px;background-color:#e53e3e;color:#fff;font-size:.7rem;font-weight:700;line-height:15px;text-align:center;border:2px solid #ffffff;pointer-events:none}.header-avatar-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background-color:transparent;border:2px solid var(--color-border);cursor:pointer;padding:0;overflow:hidden;transition:border-color var(--transition-fast)}.header-avatar-btn:hover{border-color:var(--color-accent)}.header-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.header-dropdown{position:absolute;top:calc(100% + 12px);right:-4px;width:260px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 8px 32px #0000001f;overflow:hidden;z-index:200}.header-dropdown-arrow{position:absolute;top:-7px;right:12px;width:12px;height:12px;background-color:#fff;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);transform:rotate(45deg)}.header-dropdown-profile{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.header-dropdown-username{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.header-dropdown-account-btn{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:0;transition:color var(--transition-fast)}.header-dropdown-account-btn:hover{color:var(--color-accent)}.header-dropdown-divider{height:1px;background-color:var(--color-border);margin:0}.header-dropdown-blog-section{padding:14px 20px;display:flex;flex-direction:column;gap:10px}.header-dropdown-blog-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.header-dropdown-blog-row{display:flex;align-items:center;justify-content:space-between}.header-dropdown-blog-name{font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.header-dropdown-blog-actions{display:flex;align-items:center;gap:4px}.header-dropdown-blog-action-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:none;border:none;cursor:pointer;color:#9ca3af;transition:background-color var(--transition-fast),color var(--transition-fast)}.header-dropdown-blog-action-btn:hover{background-color:var(--color-bg-secondary, #f1f3f5);color:var(--color-text-primary)}.header-dropdown-blog-action-btn svg{width:16px;height:16px}.header-dropdown-logout-btn{display:block;width:100%;padding:14px 20px;font-size:.875rem;font-weight:500;color:var(--color-text-primary);text-align:left;background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.header-dropdown-logout-btn:hover{background-color:#f4f5f7}.header-bell-wrap{position:relative}.notification-popup{position:absolute;top:calc(100% + 12px);right:-40px;width:calc(100vw - 32px);background-color:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 8px 32px #0000001f;z-index:200;overflow:hidden}.notification-popup-arrow{position:absolute;top:-7px;right:14px;width:12px;height:12px;background-color:#fff;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);transform:rotate(45deg)}.notification-popup-header{padding:14px 20px 12px;border-bottom:1px solid var(--color-border)}.notification-popup-title{font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.notification-popup-list{max-height:400px;overflow-y:auto}.notification-popup-empty{padding:32px 20px;text-align:center;font-size:.875rem;color:var(--color-text-secondary)}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:14px 20px;cursor:pointer;transition:background-color var(--transition-fast)}.notification-item:not(:last-child){border-bottom:1px solid var(--color-border)}.notification-item:hover{background-color:#f8f9fa}.notification-item-avatar{position:relative;flex-shrink:0}.notification-item-avatar-placeholder{width:40px;height:40px;border-radius:50%;background-color:#e2e8f0;color:#4a5568;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center}.notification-item-type-badge{position:absolute;bottom:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background-color:#4299e1;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center}.notification-item-type-badge svg{width:9px;height:9px;stroke:#fff}.notification-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.notification-item-label{font-size:.7rem;font-weight:600;color:#4299e1;text-transform:uppercase;letter-spacing:.04em}.notification-item-text{font-size:.875rem;color:var(--color-text-primary);line-height:1.4}.notification-item-text strong{font-weight:600}.notification-item-preview{font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item-date{flex-shrink:0;font-size:.75rem;color:var(--color-text-secondary);margin-top:2px}.logout-confirm-overlay{position:fixed;inset:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:600;animation:modal-fade-in .15s ease}.logout-confirm{background-color:#fff;border-radius:12px;padding:28px 28px 24px;width:100%;max-width:320px;box-shadow:0 20px 60px #00000026;animation:modal-slide-up .18s ease}.logout-confirm-message{font-size:1rem;font-weight:600;color:var(--color-text-primary);text-align:center;margin-bottom:24px}.logout-confirm-actions{display:flex;gap:10px}.logout-confirm-btn{flex:1;padding:10px 0;border-radius:8px;font-size:.9375rem;font-weight:600;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.logout-confirm-btn--cancel{background-color:#f4f5f7;color:var(--color-text-primary)}.logout-confirm-btn--cancel:hover{background-color:#e8eaed}.logout-confirm-btn--ok{background-color:#e53e3e;color:#fff}.logout-confirm-btn--ok:hover{background-color:#c53030}@media(min-width:768px){.header-inner{padding:0 24px}.header-icon-btn svg{width:26px;height:26px}}@media(min-width:1024px){.header-inner{padding:0 40px}.header-logo{font-size:1.375rem}.header-nav{gap:32px}.header-nav-link{font-size:1.15rem}.header-login-btn{padding:8px 16px;font-size:.875rem;gap:8px}.header-login-btn span{display:inline}.github-icon{width:18px;height:18px}.header-icon-btn{width:40px;height:40px}.header-avatar-btn{width:36px;height:36px}.header-dropdown{width:280px}.header-dropdown-arrow{right:14px}.notification-popup{width:360px;right:-4px}}.hero-section{padding:100px 0 80px;text-align:center;background:linear-gradient(160deg,#f0f9ff,#fff 60%);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--spacing-section)}.hero-badge{display:inline-flex;align-items:center;gap:6px;background-color:var(--color-accent-light);color:var(--color-accent);padding:6px 16px;border-radius:999px;font-size:.8125rem;font-weight:600;margin-bottom:24px;border:1px solid rgba(14,165,233,.3)}.hero-badge-dot{width:6px;height:6px;background-color:var(--color-accent);border-radius:50%}.hero-title{font-size:3.5rem;font-weight:800;color:var(--color-text-primary);line-height:1.15;margin-bottom:20px;letter-spacing:-.03em}.hero-title-accent{color:var(--color-accent)}.hero-description{font-size:1.125rem;color:var(--color-text-secondary);max-width:540px;margin:0 auto 40px;line-height:1.75}.hero-actions{display:flex;gap:12px;justify-content:center}.hero-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background-color:var(--color-accent);color:#fff;font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),transform var(--transition-fast)}.hero-btn-primary:hover{background-color:var(--color-accent-hover);transform:translateY(-1px)}.hero-btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background-color:transparent;color:var(--color-text-primary);font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);transition:border-color var(--transition-fast),transform var(--transition-fast)}.hero-btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.hero-stats{display:flex;gap:56px;justify-content:center;margin-top:64px;padding-top:40px;border-top:1px solid var(--color-border)}.hero-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.hero-stat-number{font-size:2.25rem;font-weight:800;color:var(--color-accent);letter-spacing:-.03em;line-height:1}.hero-stat-label{font-size:.8125rem;color:var(--color-text-muted);font-weight:500}.login-modal-overlay{position:fixed;inset:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:500;animation:modal-fade-in .15s ease}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.login-modal{position:relative;background-color:#fff;border-radius:12px;padding:32px 24px 28px;margin:0 16px;width:100%;max-width:360px;box-shadow:0 20px 60px #00000026;animation:modal-slide-up .18s ease}@keyframes modal-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.login-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-secondary);border-radius:6px;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.login-modal-close:hover{background-color:#f4f5f7;color:var(--color-text-primary)}.login-modal-close svg{width:18px;height:18px}.login-modal-header{margin-bottom:28px}.login-modal-title{text-align:center;font-size:1.375rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em;margin-bottom:6px}.login-modal-desc{font-size:.875rem;color:var(--color-text-secondary)}.login-modal-body{display:flex;flex-direction:column;gap:12px}.login-modal-github-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 16px;border-radius:8px;background-color:#24292f;color:#fff;font-size:.9375rem;font-weight:600;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.login-modal-github-btn:hover{background-color:#3a424a}.login-modal-github-icon{width:20px;height:20px;fill:#fff;flex-shrink:0}@media(min-width:1024px){.login-modal{padding:40px 36px 36px;margin:0}}.post-card-link{display:block;text-decoration:none;color:inherit}.post-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:28px;cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);display:flex;flex-direction:column}.post-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px);border-color:#0ea5e94d}.post-card-tag{display:inline-block;background-color:var(--color-accent-light);color:var(--color-accent);padding:4px 12px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:700;margin-bottom:16px;align-self:flex-start}.post-card-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);margin-bottom:10px;line-height:1.45}.post-card-excerpt{font-size:.875rem;color:var(--color-text-secondary);line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.post-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border-light);font-size:.8rem;color:var(--color-text-muted)}.post-detail-main{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 16px 60px;flex:1}.post-detail-hero-text{padding:28px 0 4px;display:flex;flex-direction:column;gap:14px}.post-hero-category{display:inline-block;padding:4px 14px;border-radius:100px;background-color:var(--color-accent-light);color:var(--color-accent);font-size:.75rem;font-weight:700;letter-spacing:.04em;width:fit-content;border:1px solid rgba(14,165,233,.25)}.post-hero-title{font-size:1.5rem;font-weight:800;color:var(--color-text-primary);line-height:1.3;letter-spacing:-.025em}.post-detail-meta-bar{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 0 20px;border-bottom:1px solid var(--color-border);margin-bottom:28px}.post-detail-breadcrumb{display:flex;align-items:center;gap:6px}.breadcrumb-btn{font-size:.8125rem;color:var(--color-text-muted);transition:color var(--transition-fast)}.breadcrumb-btn:hover{color:var(--color-accent)}.breadcrumb-sep{font-size:.75rem;color:var(--color-text-muted)}.breadcrumb-current{font-size:.8125rem;color:var(--color-text-secondary)}.post-detail-meta-right{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--color-text-muted)}.meta-dot{width:3px;height:3px;border-radius:50%;background-color:var(--color-text-muted);display:inline-block;flex-shrink:0}.post-action-menu{position:relative;display:inline-flex;align-items:center;margin-left:4px}.post-action-trigger{display:flex;align-items:center;justify-content:center;gap:2px;width:22px;height:22px;border-radius:50%;border:none;background-color:transparent;transition:background-color var(--transition-fast),border-color var(--transition-fast);cursor:pointer}.post-action-trigger:hover{background-color:var(--color-border-light)}.post-action-dot{display:block;width:3px;height:3px;border-radius:50%;background-color:#6b7280;flex-shrink:0}.post-action-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:148px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001f;overflow:hidden;z-index:100}.post-action-item{display:block;width:100%;padding:11px 16px;text-align:left;font-size:.875rem;color:var(--color-text-secondary);transition:background-color var(--transition-fast);cursor:pointer}.post-action-item:hover{background-color:var(--color-border-light)}.post-action-item--delete{color:#ef4444}.post-action-item--delete:hover{background-color:#fef2f2}.post-detail-layout{display:flex;flex-direction:column;gap:32px;align-items:flex-start}.post-detail-content{flex:1;min-width:0}.post-content-renderer{font-size:1rem;line-height:1.9;color:var(--color-text-secondary)}.post-content-renderer h2{font-size:1.2rem;font-weight:700;color:var(--color-text-primary);margin:40px 0 12px;padding-bottom:10px;border-bottom:2px solid var(--color-border);scroll-margin-top:88px}.post-content-renderer h2:first-child{margin-top:0}.post-content-renderer h3{font-size:1.05rem;font-weight:600;color:var(--color-text-primary);margin:36px 0 10px;scroll-margin-top:88px}.post-content-renderer p{margin-bottom:20px}.post-content-renderer ul,.post-content-renderer ol{margin:0 0 20px 24px;display:flex;flex-direction:column;gap:6px}.post-content-renderer li{line-height:1.75}.post-content-renderer strong{font-weight:600;color:var(--color-text-primary)}.post-content-renderer code{font-family:var(--font-mono);font-size:.875em;padding:2px 6px;border-radius:4px;background-color:var(--color-border-light);color:#0284c7;border:1px solid var(--color-border)}.post-content-renderer pre{background-color:#0d1117;border-radius:var(--radius-sm);padding:16px;margin:24px 0;overflow-x:auto;border:1px solid rgba(255,255,255,.06)}.post-content-renderer pre code{background:none;border:none;padding:0;color:#e6edf3;font-size:.8rem;line-height:1.75}.post-content-renderer blockquote{margin:28px 0;padding:18px 24px;border-left:4px solid var(--color-accent);background-color:var(--color-accent-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.post-content-renderer blockquote p{margin:0;color:#0369a1;font-style:italic;line-height:1.7}.post-content-empty{padding:40px;text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted)}.post-content-excerpt{margin-top:12px;font-size:.95rem;line-height:1.7;color:var(--color-text-secondary)}.post-content-tags-section{margin-top:40px;padding-top:28px;border-top:1px solid var(--color-border)}.post-content-tags-title{font-size:1.1rem;font-weight:700;color:var(--color-text-secondary);margin-bottom:14px}.post-content-tags{display:flex;flex-wrap:wrap;gap:10px}.post-content-tag-pill{display:inline-block;padding:8px 20px;border-radius:100px;border:1.5px solid var(--color-border);background-color:var(--color-bg-card);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast);cursor:pointer}.post-content-tag-pill:hover{border-color:var(--color-accent);color:var(--color-accent);background-color:var(--color-accent-light)}.post-detail-sidebar{width:100%}.sidebar-sticky{position:static;display:flex;flex-direction:column;gap:16px}.sidebar-widget{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;background-color:var(--color-bg-card)}.sidebar-widget-title{font-size:.6875rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}.sidebar-cat-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.sidebar-cat-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius-sm);font-size:.8375rem;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast);text-align:left}.sidebar-cat-btn:hover{background-color:var(--color-border-light);color:var(--color-text-primary)}.sidebar-cat-btn.child{padding-left:20px;font-size:.8rem;color:var(--color-text-muted)}.sidebar-cat-btn.child:hover{color:var(--color-text-secondary)}.sidebar-cat-count{font-size:.75rem;color:var(--color-text-muted);background-color:var(--color-border-light);padding:1px 7px;border-radius:100px}.sidebar-cat-children{list-style:none;padding:0;margin:0}.sidebar-recent-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}.sidebar-recent-item{width:100%;display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid var(--color-border-light);text-align:left;transition:opacity var(--transition-fast)}.sidebar-recent-list li:last-child .sidebar-recent-item{border-bottom:none;padding-bottom:0}.sidebar-recent-item:hover .sidebar-recent-title{color:var(--color-accent)}.sidebar-recent-title{font-size:.8rem;font-weight:500;color:var(--color-text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color var(--transition-fast)}.sidebar-recent-date{font-size:.72rem;color:var(--color-text-muted)}.post-detail-nav{display:grid;grid-template-columns:1fr;gap:16px;margin-top:40px;padding-top:40px;border-top:1px solid var(--color-border)}.post-nav-card{display:flex;flex-direction:column;gap:10px;padding:22px 24px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg-card);transition:border-color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast);text-align:left}.post-nav-card:hover{border-color:var(--color-accent);background-color:var(--color-accent-light);transform:translateY(-2px)}.post-nav-prev{align-items:flex-start}.post-nav-next{align-items:flex-start;text-align:left}.post-nav-direction{display:flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.post-nav-title{font-size:.875rem;font-weight:600;color:var(--color-text-primary);line-height:1.45}.skeleton-hero-category{height:24px;width:72px;border-radius:100px}.skeleton-hero-title{height:44px;width:85%;border-radius:var(--radius-sm)}.skeleton-hero-title-sm{height:44px;width:55%;border-radius:var(--radius-sm)}.skeleton-hero-block{height:260px}.skeleton-meta-bar{height:16px;width:280px;border-radius:4px}.skeleton-paragraph{height:88px;border-radius:var(--radius-sm)}.skeleton-widget-title{height:10px;width:48px;border-radius:4px;margin-bottom:14px}.skeleton-widget-item{height:14px;border-radius:4px;margin-bottom:8px;width:80%}@media(min-width:768px){.post-detail-main{padding:0 28px 72px}.post-hero-title{font-size:1.625rem}.post-detail-sidebar{width:220px}.post-detail-layout{gap:28px}}@media(min-width:1024px){.post-detail-main{padding:0 40px 80px}.post-detail-hero-text{padding:44px 0 8px;gap:12px}.post-hero-title{font-size:2.25rem}.post-detail-meta-bar{flex-direction:row;align-items:center;gap:0;padding:16px 0 24px;margin-bottom:40px}.post-detail-layout{flex-direction:row;gap:40px}.post-detail-sidebar{width:256px}.sidebar-sticky{position:sticky;top:80px}.post-content-renderer pre{padding:24px;border-radius:var(--radius-md)}.post-content-renderer pre code{font-size:.875rem}.post-content-renderer h2{font-size:1.4rem;margin:52px 0 16px}.post-content-renderer h3{font-size:1.15rem}.post-content-tags-section{margin-top:52px;padding-top:40px}.post-detail-nav{grid-template-columns:1fr 1fr;margin-top:60px}.post-nav-next{align-items:flex-end;text-align:right}}.posts-main{width:100%;max-width:var(--max-width);margin:0 auto;padding:40px 40px 80px;flex:1}.posts-layout{display:flex;gap:48px;align-items:flex-start}.posts-content{flex:1;min-width:0}.posts-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:32px}.posts-tab-btn{padding:12px 40px;font-size:1rem;font-weight:600;color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.posts-tab-btn:hover{color:var(--color-text-primary)}.posts-tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.posts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.posts-count-label{font-size:1rem;color:var(--color-text-secondary)}.posts-count-label strong{color:var(--color-text-primary);font-weight:700}.posts-view-toggle{display:flex;gap:4px;background-color:var(--color-border-light);border-radius:var(--radius-sm);padding:4px}.view-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:4px;color:var(--color-text-muted);background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.view-toggle-btn:hover{color:var(--color-text-primary);background-color:var(--color-border)}.view-toggle-btn.active{color:var(--color-accent);background-color:#fff;box-shadow:0 1px 3px #0000001a}.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}.post-grid-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base);display:flex;flex-direction:column}.post-grid-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px);border-color:#0ea5e94d}.post-grid-thumbnail{width:100%;aspect-ratio:16 / 10;overflow:hidden;background-color:var(--color-border-light)}.post-grid-thumbnail img{width:100%;height:100%;object-fit:cover}.post-grid-thumbnail-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f0f0f0,#e0e0e0)}.post-grid-body{padding:20px;display:flex;flex-direction:column;flex:1}.post-grid-tag{display:inline-block;background-color:var(--color-accent-light);color:var(--color-accent);padding:3px 10px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:700;margin-bottom:10px;align-self:flex-start}.post-grid-title{font-size:.9375rem;font-weight:700;color:var(--color-text-primary);margin-bottom:8px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-grid-excerpt{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1;margin-bottom:14px}.post-grid-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-muted);padding-top:12px;border-top:1px solid var(--color-border-light)}.posts-thread{display:flex;flex-direction:column;gap:0;margin-bottom:48px}.post-thread-item{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background-color var(--transition-fast)}.post-thread-item:first-child{border-top:1px solid var(--color-border-light)}.post-thread-item:hover .post-thread-title{color:var(--color-accent)}.post-thread-thumbnail{flex-shrink:0;width:180px;height:120px;border-radius:var(--radius-md);overflow:hidden;background-color:var(--color-border-light)}.post-thread-thumbnail img{width:100%;height:100%;object-fit:cover}.post-thread-thumbnail-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f0f0f0,#e0e0e0)}.post-thread-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.post-thread-tag{display:inline-block;background-color:var(--color-accent-light);color:var(--color-accent);padding:3px 10px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:700;margin-bottom:10px;align-self:flex-start}.post-thread-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);margin-bottom:8px;line-height:1.4;transition:color var(--transition-fast)}.post-thread-excerpt{font-size:.875rem;color:var(--color-text-secondary);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1;margin-bottom:12px}.post-thread-meta{display:flex;gap:16px;font-size:.8rem;color:var(--color-text-muted)}.posts-tag-filter{margin-bottom:20px}.posts-tag-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 14px;background-color:var(--color-accent-light);border:1.5px solid var(--color-accent);border-radius:999px;font-size:.875rem;font-weight:700;color:var(--color-accent)}.posts-tag-filter-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;border-radius:50%;font-size:1rem;line-height:1;color:var(--color-accent);cursor:pointer;transition:background-color var(--transition-fast)}.posts-tag-filter-remove:hover{background-color:#0ea5e933}.tags-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:12px}.tags-cloud{display:flex;flex-wrap:wrap;gap:12px;padding:8px 0 48px}.tag-pill{display:inline-flex;align-items:center;padding:8px 20px;border:1.5px solid var(--color-border);border-radius:999px;font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background-color:#fff;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.tag-pill:hover{border-color:var(--color-accent);color:var(--color-accent);background-color:var(--color-accent-light)}.tag-pill.active{border-color:var(--color-accent);color:var(--color-accent);background-color:var(--color-accent-light);font-weight:700}.posts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;gap:12px}.posts-empty-icon{width:64px;height:64px;color:var(--color-text-muted);opacity:.45;margin-bottom:8px}.posts-empty-icon svg{width:100%;height:100%}.posts-empty-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-secondary);margin:0}.posts-empty-desc{font-size:.875rem;color:var(--color-text-muted);margin:0}.posts-empty-all-btn{margin-top:8px;display:inline-flex;align-items:center;padding:10px 24px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:none;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.posts-empty-all-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.posts-pagination{display:flex;align-items:center;justify-content:center;gap:6px}.pagination-btn{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border-radius:50%;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.pagination-btn:hover:not(:disabled){background-color:var(--color-border-light);color:var(--color-text-primary)}.pagination-btn.active{background-color:var(--color-accent);color:#fff;font-weight:700}.pagination-btn:disabled{opacity:.35;cursor:default}.pagination-arrow{color:var(--color-text-muted)}.pagination-ellipsis{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;font-size:.875rem;color:var(--color-text-muted);letter-spacing:1px}.posts-sidebar{width:220px;flex-shrink:0;position:sticky;top:80px;margin-top:50px}.category-tree{list-style:none;padding:0;margin:0}.category-tree-item{margin:0}.category-tree>.category-tree-item+.category-tree-item{margin-top:10px}.category-tree-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;font-size:.9375rem;font-weight:600;color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background-color var(--transition-fast),color var(--transition-fast)}.category-tree-btn:hover{background-color:var(--color-border-light);color:var(--color-text-primary)}.category-tree-btn.active{color:var(--color-accent);background-color:var(--color-accent-light);font-weight:700}.category-tree-count{font-size:.75rem;font-weight:500;color:var(--color-text-muted);margin-left:6px}.category-tree-btn.active .category-tree-count{color:var(--color-accent);opacity:.7}.category-tree-children{list-style:none;padding:0 0 0 5px;border-left:2px solid var(--color-border);margin:2px 0 4px 20px}.category-tree-btn.child{font-size:.875rem;font-weight:500;padding:6px 12px}.recent-posts-section{padding-bottom:var(--spacing-section)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.section-title{font-size:1.625rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em}.section-link{font-size:.875rem;font-weight:600;color:var(--color-accent);transition:color var(--transition-fast)}.section-link:hover{color:var(--color-accent-hover)}.recent-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-card-gap)}.posts-more-btn-wrap{text-align:center;margin-top:48px}.posts-more-btn{display:inline-flex;align-items:center;gap:6px;padding:12px 32px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;color:var(--color-text-secondary);transition:border-color var(--transition-fast),color var(--transition-fast)}.posts-more-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.recent-posts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:72px 0 80px;gap:12px}.recent-posts-empty-icon{width:56px;height:56px;color:var(--color-text-muted);opacity:.5;margin-bottom:8px}.recent-posts-empty-icon svg{width:100%;height:100%}.recent-posts-empty-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-secondary);margin:0}.recent-posts-empty-desc{font-size:.875rem;color:var(--color-text-muted);margin:0}.recent-posts-empty-link{margin-top:8px;display:inline-flex;align-items:center;padding:10px 24px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);transition:border-color var(--transition-fast),color var(--transition-fast)}.recent-posts-empty-link:hover{border-color:var(--color-accent);color:var(--color-accent)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{display:block;background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-border) 50%,var(--color-border-light) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}.skeleton--circle{border-radius:50%;width:100%;height:100%}.skeleton--title{height:28px;width:60%;margin-bottom:10px}.skeleton--text{height:18px;width:90%;margin-bottom:8px}.skeleton--short{width:40%}.skeleton--badge{height:32px;width:72px;border-radius:999px}.post-card-skeleton{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:28px;display:flex;flex-direction:column}.post-card-skeleton .skeleton-tag{height:27px;width:60px;margin-bottom:16px}.post-card-skeleton .skeleton-title{height:25px;width:88%;margin-bottom:10px}.post-card-skeleton .skeleton-excerpt{height:69px;flex:1}.post-card-skeleton .skeleton-meta{height:20px;margin-top:36px}.post-grid-card-skeleton{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column}.post-grid-card-skeleton .skeleton-thumbnail{width:100%;aspect-ratio:16 / 10;border-radius:0}.post-grid-card-skeleton .skeleton-body{padding:20px;display:flex;flex-direction:column}.post-grid-card-skeleton .skeleton-tag{height:24px;width:56px;margin-bottom:10px}.post-grid-card-skeleton .skeleton-title{height:44px;width:92%;margin-bottom:8px}.post-grid-card-skeleton .skeleton-excerpt{height:42px;margin-bottom:14px}.post-grid-card-skeleton .skeleton-meta{height:32px;border-top:1px solid var(--color-border-light);padding-top:12px;background-clip:content-box}.post-thread-item-skeleton{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid var(--color-border-light)}.post-thread-item-skeleton:first-child{border-top:1px solid var(--color-border-light)}.post-thread-item-skeleton .skeleton-thumbnail{flex-shrink:0;width:180px;height:120px;border-radius:var(--radius-md)}.post-thread-item-skeleton .skeleton-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.post-thread-item-skeleton .skeleton-tag{height:24px;width:56px;margin-bottom:10px}.post-thread-item-skeleton .skeleton-title{height:24px;width:75%;margin-bottom:8px}.post-thread-item-skeleton .skeleton-excerpt{height:46px;margin-bottom:12px}.post-thread-item-skeleton .skeleton-meta{height:20px;width:55%}.tag-page-main{width:100%;max-width:var(--max-width);margin:0 auto;padding:32px 16px 60px;flex:1}.tag-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.tag-page-heading{display:flex;align-items:baseline;gap:4px;font-size:1.2rem;font-weight:800;color:var(--color-text-primary)}.tag-page-heading-hash{color:var(--color-accent)}.tag-page-heading-name{color:var(--color-text-primary)}.tag-page-heading-count{margin-left:6px;font-size:1rem;font-weight:700;color:var(--color-accent)}.tag-post-list{display:flex;flex-direction:column;margin-bottom:48px}.tag-post-item{display:flex;flex-direction:column;gap:14px;padding:24px 0;border-bottom:1px solid var(--color-border-light);cursor:pointer}.tag-post-item:first-child{border-top:1px solid var(--color-border-light)}.tag-post-item:hover .tag-post-title{color:var(--color-accent)}.tag-post-thumb{flex-shrink:0;width:100%;height:200px;border-radius:var(--radius-md);overflow:hidden;background-color:var(--color-border-light)}.tag-post-thumb img{width:100%;height:100%;object-fit:cover}.tag-post-thumb-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f0f0f0,#e0e0e0)}.tag-post-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px}.tag-post-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);line-height:1.4;transition:color var(--transition-fast)}.tag-post-excerpt{font-size:.875rem;color:var(--color-text-secondary);line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tag-post-date{font-size:.8rem;color:var(--color-text-muted);margin-top:4px}.tag-posts-empty{padding:48px 0;text-align:center;color:var(--color-text-muted);font-size:.9rem}.tag-page-main .skeleton-tag-heading{height:36px;width:160px;border-radius:var(--radius-sm);margin-bottom:40px}.tag-post-item-skeleton{display:flex;flex-direction:column;gap:14px;padding:24px 0;border-bottom:1px solid var(--color-border-light)}.tag-post-item-skeleton:first-child{border-top:1px solid var(--color-border-light)}.tag-post-item-skeleton .skeleton-tag-thumb{flex-shrink:0;width:100%;height:200px;border-radius:var(--radius-md)}.tag-post-skeleton-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:10px}.tag-post-skeleton-body .skeleton-tag-title{height:24px;width:70%}.tag-post-skeleton-body .skeleton-tag-excerpt{height:60px}.tag-post-skeleton-body .skeleton-tag-meta{height:18px;width:100px}@media(min-width:768px){.tag-page-main{padding:40px 28px 72px}.tag-post-thumb,.tag-post-item-skeleton .skeleton-tag-thumb{width:240px;height:160px}}@media(min-width:1024px){.tag-page-main{padding:56px 40px 80px}.tag-page-header{margin-bottom:40px}.tag-page-heading{font-size:1.5rem}.tag-page-heading-count{font-size:1.25rem}.tag-post-item{flex-direction:row;gap:24px}.tag-post-thumb{width:375px;height:230px}.tag-post-item-skeleton{flex-direction:row;gap:24px}.tag-post-item-skeleton .skeleton-tag-thumb{width:375px;height:230px}}.tech-stack-section{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:56px;margin-bottom:var(--spacing-section);border:1px solid var(--color-border-light)}.tech-categories{display:flex;flex-direction:column;gap:32px;margin-top:36px}.tech-category-title{font-size:.8125rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}.tech-list{display:flex;flex-wrap:wrap;gap:10px}.tech-badge{display:inline-flex;align-items:center;padding:8px 18px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-bg-card);font-size:.875rem;font-weight:600;color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast)}.tech-badge:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.tech-stack-empty{text-align:center;color:var(--color-text-muted);font-size:.875rem;margin-top:36px}.write-page{display:flex;flex-direction:column;min-height:100vh;background:#fff}.write-toolbar{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--color-border);height:52px;display:flex;align-items:center;padding:0 12px;gap:1px;flex-shrink:0;flex-wrap:wrap}.write-toolbar-divider{width:1px;height:20px;background:var(--color-border);margin:0 6px;flex-shrink:0}.write-toolbar-btn,.write-toolbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--color-text-primary);font-size:.9rem;transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.write-toolbar-icon-btn svg{width:16px;height:16px;pointer-events:none}.write-toolbar-btn:hover,.write-toolbar-icon-btn:hover{background:#f0f2f5}.write-toolbar-btn.is-active,.write-toolbar-icon-btn.is-active{background:var(--color-accent-light);color:var(--color-accent)}.write-toolbar-underline-icon{text-decoration:underline}.write-toolbar-strike-icon{text-decoration:line-through}.write-toolbar-dropdown{position:relative;flex-shrink:0}.write-toolbar-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;height:30px;padding:0 8px;border:1px solid var(--color-border);border-radius:4px;background:#fff;color:var(--color-text-primary);font-size:.8125rem;cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast)}.write-toolbar-dropdown-trigger:hover,.write-toolbar-dropdown-trigger.is-open{border-color:#b0b8c1}.write-toolbar-dropdown-chevron{width:12px;height:12px;flex-shrink:0;color:var(--color-text-muted)}.write-toolbar-dropdown-list{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #00000014;list-style:none;z-index:300;overflow:hidden;padding:4px 0}.write-toolbar-dropdown-list--scroll{max-height:200px;overflow-y:auto;overscroll-behavior:contain}.write-toolbar-dropdown-item{padding:8px 14px;font-size:.875rem;color:var(--color-text-primary);background:#fff;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.write-toolbar-dropdown-item:hover{background:#f5f6f7}.write-toolbar-dropdown-item.is-selected{background:#f0f2f5}.write-toolbar-select--type{min-width:68px;font-size:.75rem}.write-toolbar-select--font{min-width:72px;font-size:.75rem}.write-toolbar-color-btn{position:relative}.write-toolbar-color-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.write-toolbar-file-input{display:none}.write-toolbar-upload-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:toolbar-spin .6s linear infinite}@keyframes toolbar-spin{to{transform:rotate(360deg)}}.write-content{flex:1;padding-bottom:80px}.write-inner{max-width:760px;margin:0 auto;padding:24px 16px 40px}.write-category-group{display:flex;align-items:center;gap:10px;margin-bottom:28px}.write-category-dropdown{position:relative;display:inline-block;margin-bottom:28px;min-width:180px}.write-category-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;transition:border-color var(--transition-fast)}.write-category-trigger:hover,.write-category-trigger.is-open{border-color:#b0b8c1}.write-category-chevron{width:14px;height:14px;flex-shrink:0;color:var(--color-text-muted)}.write-category-list{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #00000014;list-style:none;z-index:200;overflow:hidden;padding:4px 0}.write-category-item{padding:10px 16px;font-size:.9rem;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast)}.write-category-item:hover{background:#f5f6f7}.write-category-item.is-selected{background:#f0f2f5;color:var(--color-text-primary)}.write-category-item.is-child{padding-left:28px;color:var(--color-text-secondary);font-size:.875rem}.write-title-input{display:block;width:100%;padding:6px 0;border:none;outline:none;font-size:1.5rem;font-weight:700;color:var(--color-text-primary);background:transparent;line-height:1.4;font-family:inherit}.write-title-input::placeholder{color:#c9cdd2}.write-divider{border:none;border-top:1px solid var(--color-border);margin:20px 0 28px}.write-editor-wrapper .ProseMirror{outline:none;min-height:480px;font-size:1rem;line-height:1.85;color:var(--color-text-primary)}.write-editor-wrapper .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#c9cdd2;pointer-events:none;height:0}.write-editor-wrapper .ProseMirror h1{font-size:1.875rem;font-weight:700;line-height:1.3;margin:1.6em 0 .6em;color:var(--color-text-primary)}.write-editor-wrapper .ProseMirror h2{font-size:1.5rem;font-weight:700;line-height:1.35;margin:1.4em 0 .5em;color:var(--color-text-primary)}.write-editor-wrapper .ProseMirror h3{font-size:1.25rem;font-weight:600;line-height:1.4;margin:1.2em 0 .4em;color:var(--color-text-primary)}.write-editor-wrapper .ProseMirror p{margin:.4em 0}.write-editor-wrapper .ProseMirror ul,.write-editor-wrapper .ProseMirror ol{padding-left:1.6em;margin:.5em 0}.write-editor-wrapper .ProseMirror li{margin:.25em 0}.write-editor-wrapper .ProseMirror blockquote{border-left:3px solid var(--color-accent);padding:10px 18px;margin:1.2em 0;color:var(--color-text-secondary);background:#f8fafc;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.write-editor-wrapper .ProseMirror code{font-family:var(--font-mono);background:#f1f3f5;padding:2px 6px;border-radius:4px;font-size:.875em;color:#c2185b}.write-code-block{margin:1.2em 0;border-radius:var(--radius-sm);overflow:hidden;background:#1a1a2e}.write-code-block-header{display:flex;align-items:center;padding:8px 14px;background:#12122a;border-bottom:1px solid rgba(255,255,255,.08)}.write-code-block-lang-select{background:transparent;border:none;color:#94a3b8;font-size:.75rem;font-family:var(--font-mono);cursor:pointer;outline:none}.write-code-block-lang-select option{background:#1a1a2e;color:#e2e8f0}.write-code-block pre{margin:0;padding:18px 20px;overflow-x:auto;background:transparent}.write-code-block pre code{font-family:var(--font-mono);font-size:.875rem;line-height:1.7;color:#e2e8f0;background:none;padding:0;border-radius:0}.write-editor-wrapper .ProseMirror pre{background:#1a1a2e;color:#e2e8f0;padding:20px;border-radius:var(--radius-sm);overflow-x:auto;margin:1.2em 0}.write-editor-wrapper .ProseMirror pre code{background:none;color:inherit;padding:0;font-size:.875rem;border-radius:0}.hljs-comment,.hljs-quote{color:#6a9955;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-addition{color:#c586c0}.hljs-number,.hljs-string,.hljs-meta .hljs-meta-string,.hljs-literal,.hljs-doctag,.hljs-regexp{color:#ce9178}.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:#dcdcaa}.hljs-attribute,.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-class .hljs-title,.hljs-type{color:#9cdcfe}.hljs-symbol,.hljs-bullet,.hljs-subst,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-link{color:#4ec9b0}.hljs-built_in,.hljs-deletion{color:#4fc1ff}.hljs-operator,.hljs-punctuation{color:#d4d4d4}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.write-editor-wrapper .ProseMirror hr{border:none;border-top:2px solid var(--color-border);margin:2em 0}.write-editor-wrapper .ProseMirror img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:1em 0}.write-editor-wrapper .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--color-accent)}.write-editor-wrapper .ProseMirror video{max-width:100%;border-radius:var(--radius-sm);margin:1em 0;display:block}.write-editor-wrapper .ProseMirror a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.write-editor-wrapper .ProseMirror table{border-collapse:collapse;width:100%;margin:1.2em 0;table-layout:fixed}.write-editor-wrapper .ProseMirror table th,.write-editor-wrapper .ProseMirror table td{border:1px solid var(--color-border);padding:8px 14px;text-align:left;position:relative;vertical-align:top;min-width:80px}.write-editor-wrapper .ProseMirror table th{background:#f8f9fa;font-weight:600}.write-editor-wrapper .ProseMirror table .selectedCell:after{content:"";position:absolute;inset:0;background:#0ea5e914;pointer-events:none}.write-editor-wrapper .ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:var(--color-accent);opacity:0;cursor:col-resize;transition:opacity .15s;z-index:10}.write-editor-wrapper .ProseMirror th:hover .column-resize-handle,.write-editor-wrapper .ProseMirror td:hover .column-resize-handle,.write-editor-wrapper .ProseMirror .column-resize-handle:hover{opacity:.5}.write-editor-wrapper .ProseMirror.resize-cursor,.write-editor-wrapper .ProseMirror.resize-cursor *{cursor:col-resize}.write-link-modal-overlay{position:fixed;inset:0;background:#0006;z-index:600;display:flex;align-items:center;justify-content:center}.write-link-modal{background:#fff;border-radius:var(--radius-md);padding:20px;width:400px;max-width:calc(100vw - 40px);box-shadow:0 8px 32px #00000029}.write-link-modal-label{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin-bottom:10px}.write-link-modal-input{display:block;width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.write-link-modal-input:focus{border-color:var(--color-accent)}.write-link-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.write-link-modal-cancel{padding:8px 18px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;border-radius:20px;cursor:pointer;transition:background var(--transition-fast)}.write-link-modal-cancel:hover{background:#f0f2f5}.write-link-modal-confirm{padding:8px 18px;border:none;background:#1c1c2e;color:#fff;font-size:.875rem;font-weight:600;border-radius:20px;cursor:pointer;transition:background var(--transition-fast)}.write-link-modal-confirm:hover{background:#2e2e46}.write-alert-overlay{position:fixed;inset:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:600;animation:modal-fade-in .15s ease}.write-alert{background-color:#fff;border-radius:12px;padding:24px 20px 20px;width:100%;max-width:320px;box-shadow:0 20px 60px #00000026;animation:modal-slide-up .18s ease}.write-alert-message{font-size:1rem;font-weight:600;color:var(--color-text-primary);text-align:center;margin-bottom:24px}.write-alert-actions{display:flex;justify-content:center}.write-alert-btn{flex:1;padding:10px 0;border-radius:8px;font-size:.9375rem;font-weight:600;border:none;cursor:pointer;background-color:#1c1c2e;color:#fff;transition:background-color var(--transition-fast)}.write-alert-btn:hover{background-color:#2e2e46}.write-preview-overlay{position:fixed;inset:0;background:#fff;z-index:500;display:flex;flex-direction:column;overflow-y:auto}.write-preview-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--color-border);height:56px;display:flex;align-items:center;flex-shrink:0}.write-preview-back-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;margin-left:8px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;transition:background var(--transition-fast),color var(--transition-fast)}.write-preview-back-btn svg{width:20px;height:20px}.write-preview-back-btn:hover{background:#f0f2f5;color:var(--color-text-primary)}.write-preview-content{max-width:760px;width:100%;margin:0 auto;padding:48px 40px 80px}.write-preview-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);line-height:1.4;margin-bottom:32px}.write-preview-body{font-size:1rem;line-height:1.85;color:var(--color-text-primary)}.write-preview-body h1{font-size:1.875rem;font-weight:700;margin:1.6em 0 .6em}.write-preview-body h2{font-size:1.5rem;font-weight:700;margin:1.4em 0 .5em}.write-preview-body h3{font-size:1.25rem;font-weight:600;margin:1.2em 0 .4em}.write-preview-body p{margin:.4em 0}.write-preview-body ul,.write-preview-body ol{padding-left:1.6em;margin:.5em 0}.write-preview-body li{margin:.25em 0}.write-preview-body blockquote{border-left:3px solid var(--color-accent);padding:10px 18px;margin:1.2em 0;color:var(--color-text-secondary);background:#f8fafc;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.write-preview-body code{font-family:var(--font-mono);background:#f1f3f5;padding:2px 6px;border-radius:4px;font-size:.875em;color:#c2185b}.write-preview-body pre{background:#1a1a2e;color:#e2e8f0;padding:20px;border-radius:var(--radius-sm);overflow-x:auto;margin:1.2em 0}.write-preview-body pre code{background:none;color:inherit;padding:0;font-size:.875rem}.write-preview-body hr{border:none;border-top:2px solid var(--color-border);margin:2em 0}.write-preview-body img{max-width:100%;border-radius:var(--radius-sm);margin:1em 0}.write-preview-body video{max-width:100%;border-radius:var(--radius-sm);margin:1em 0;display:block}.write-preview-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.write-preview-body table{border-collapse:collapse;width:100%;margin:1.2em 0}.write-preview-body td,.write-preview-body th{border:1px solid var(--color-border);padding:8px 14px;text-align:left}.write-preview-body th{background:#f8f9fa;font-weight:600}.write-tag-divider{margin:28px 0 20px}.write-tag-area{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;padding:6px 0 24px;cursor:text}.write-tag-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 12px;background:var(--color-accent-light, #e8f4fd);color:var(--color-accent, #0ea5e9);font-size:.875rem;font-weight:500;border-radius:20px;white-space:nowrap}.write-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:var(--color-accent, #0ea5e9);font-size:1rem;line-height:1;cursor:pointer;border-radius:50%;transition:background var(--transition-fast);flex-shrink:0}.write-tag-remove:hover{background:#0ea5e926}.write-tag-input{flex:1;min-width:180px;border:none;outline:none;background:transparent;font-size:.9rem;color:var(--color-text-primary);font-family:inherit;line-height:1.5}.write-tag-input::placeholder{color:#c9cdd2}.write-bottom-bar{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100}.write-bottom-left{display:flex;align-items:center;gap:4px}.write-bottom-right{display:flex;align-items:center;gap:12px}.write-bottom-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:none;background:transparent;color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.write-bottom-btn svg{width:15px;height:15px;flex-shrink:0}.write-bottom-btn:hover{background:#f0f2f5;color:var(--color-text-primary)}.write-cancel-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border:none;background:transparent;color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;border-radius:24px;transition:background var(--transition-fast),color var(--transition-fast)}.write-cancel-btn:hover{background:#f0f2f5;color:var(--color-text-primary)}.write-temp-save-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-primary);font-size:.8125rem;font-weight:500;cursor:pointer;border-radius:24px;transition:background var(--transition-fast),border-color var(--transition-fast)}.write-temp-save-btn:hover{background:#f8f9fa;border-color:#c9cdd2}.write-temp-save-btn.is-disabled{cursor:default}.write-temp-save-btn.is-disabled .write-temp-save-text{opacity:.5}.write-temp-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;border-radius:10px;cursor:pointer}.write-publish-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;background:#1c1c2e;color:#fff;font-size:.875rem;font-weight:600;border:none;cursor:pointer;border-radius:24px;transition:background var(--transition-fast)}.write-publish-btn:hover{background:#2e2e46}.draft-list-overlay{position:fixed;inset:0;background:#0006;z-index:500;display:flex;justify-content:flex-end}.draft-list-panel{background:#fff;width:100%;max-width:480px;height:100%;display:flex;flex-direction:column;overflow-y:auto;position:relative}.draft-list-header{display:flex;align-items:center;justify-content:space-between;padding:24px 20px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.draft-list-title{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin:0}.draft-list-close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1rem;cursor:pointer;border-radius:50%;transition:background var(--transition-fast)}.draft-list-close-btn:hover{background:#f0f2f5}.draft-list-meta{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.draft-list-count{font-size:.875rem;color:var(--color-text-secondary)}.draft-list-edit-btn{padding:6px 14px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-primary);font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:background var(--transition-fast)}.draft-list-edit-btn:hover{background:#f0f2f5}.draft-list-edit-actions{display:flex;gap:6px}.draft-list-action-btn{padding:6px 14px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-primary);font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:background var(--transition-fast)}.draft-list-action-btn:hover:not(:disabled){background:#f0f2f5}.draft-list-action-btn:disabled{opacity:.4;cursor:default}.draft-list-items{flex:1;overflow-y:auto}.draft-list-item{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.draft-list-item:hover{background:#f8f9fa}.draft-list-item.is-selected{background:#f0f2f5}.draft-list-item.is-current{cursor:default;pointer-events:none}.draft-list-checkbox{flex-shrink:0;width:18px;height:18px;cursor:pointer;accent-color:var(--color-accent)}.draft-list-item-info{display:flex;flex-direction:column;gap:4px;min-width:0}.draft-list-item-title{font-size:.9375rem;font-weight:500;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-list-item-date{font-size:.8125rem;color:var(--color-text-muted);margin:0}.draft-list-item-badge{font-size:.8125rem;font-weight:500;color:#16a34a;flex-shrink:0;margin-left:12px}.draft-list-empty{padding:40px 20px;text-align:center;font-size:.9rem;color:var(--color-text-muted)}.draft-list-confirm-overlay{position:fixed;inset:0;background:#0000004d;z-index:600;display:flex;align-items:center;justify-content:center}.draft-list-confirm{background:#fff;border-radius:12px;padding:24px 20px 20px;width:calc(100% - 40px);max-width:360px;box-shadow:0 20px 60px #00000026}.draft-list-confirm-message{font-size:.9375rem;color:var(--color-text-primary);margin:0 0 20px;line-height:1.6;word-break:keep-all}.draft-list-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.draft-list-confirm-cancel{padding:8px 18px;border:none;background:transparent;color:var(--color-accent);font-size:.9375rem;font-weight:500;cursor:pointer;border-radius:6px;transition:background var(--transition-fast)}.draft-list-confirm-cancel:hover{background:var(--color-accent-light)}.draft-list-confirm-ok{padding:8px 18px;border:none;background:transparent;color:var(--color-accent);font-size:.9375rem;font-weight:600;cursor:pointer;border-radius:6px;transition:background var(--transition-fast)}.draft-list-confirm-ok:hover{background:var(--color-accent-light)}@media(min-width:768px){.write-inner{padding:32px 28px 40px}}@media(min-width:1024px){.write-toolbar{padding:0 20px;gap:2px}.write-inner{padding:36px 40px 40px}.write-title-input{font-size:2rem}.write-bottom-bar{padding:0 28px}.write-bottom-btn{padding:8px 14px;font-size:.875rem}.write-bottom-btn svg{width:16px;height:16px}.write-cancel-btn,.write-temp-save-btn{padding:8px 18px;font-size:.875rem}.write-publish-btn{padding:9px 28px;font-size:.9375rem}.write-link-modal{padding:24px 28px}.write-alert{padding:28px 28px 24px}}:root{--color-bg: #ffffff;--color-bg-secondary: #f0f9ff;--color-bg-card: #ffffff;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-accent: #0ea5e9;--color-accent-hover: #0284c7;--color-accent-light: #e0f2fe;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Fira Code", "Cascadia Code", monospace;--spacing-section: 80px;--spacing-card-gap: 24px;--max-width: 1200px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 4px 16px rgba(14, 165, 233, .08);--shadow-card-hover: 0 8px 32px rgba(14, 165, 233, .2);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--transition-fast: .15s ease;--transition-base: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit;border:none;background:none}img{max-width:100%;display:block}#root{min-height:100vh;display:flex;flex-direction:column}
