body{margin:0;min-width:320px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:#f4f4f4;color:#111;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:400px 3fr;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;height:100vh;background:#fff;border-right:1px solid #e4e4e4;overflow:hidden}.sidebar-header{display:flex;flex-direction:column;gap:2px;padding:24px 20px 20px;border-bottom:1px solid #e4e4e4;flex-shrink:0}.sidebar-logo{font-size:1.1rem;font-weight:800;letter-spacing:-.02em;color:#111}.sidebar-label{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:#999}.sidebar-list{overflow-y:auto;flex:1}.sidebar-list::-webkit-scrollbar{width:4px}.sidebar-list::-webkit-scrollbar-track{background:transparent}.sidebar-list::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.sidebar-status{padding:24px 20px;font-size:.85rem;color:#999}.sidebar-status--error{color:#c0392b}.load-more-btn{display:block;width:100%;padding:14px 20px;background:none;border:none;border-top:1px solid #f0f0f0;font-size:.8rem;font-weight:600;color:#666;letter-spacing:.04em;cursor:pointer;transition:background .15s ease,color .15s ease}.load-more-btn:hover:not(:disabled){background:#f7f7f7;color:#111}.load-more-btn:disabled{color:#bbb;cursor:default}.sidebar-item{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 20px;background:none;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;text-align:left;transition:background .15s ease}.sidebar-item:hover{background:#f7f7f7}.sidebar-item--active{background:#f2f2f2;border-left:3px solid #111;padding-left:17px}.sidebar-item-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.sidebar-item-date{font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:#aaa}.sidebar-item-title{font-size:.82rem;font-weight:600;line-height:1.45;color:#222;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sidebar-item-thumb{width:54px;height:54px;object-fit:cover;border-radius:6px;flex-shrink:0;background:#eee}.main{overflow-y:auto;background:#fafafa}.main-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:.9rem;color:#bbb}.detail{max-width:780px;margin:0 auto;padding:48px 40px 80px}.detail-image{width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:10px;margin-bottom:32px;background:#e8e8e8}.detail-image img{width:100%;height:100%;object-fit:cover;display:block}.detail-date{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#aaa;margin-bottom:12px}.detail-title{font-size:1.9rem;font-weight:800;line-height:1.25;letter-spacing:-.02em;color:#111;margin-bottom:28px}.detail-content{font-size:.975rem;line-height:1.8;color:#333}.detail-content p{margin-bottom:1.2em}.detail-content h2{font-size:1.25rem;font-weight:700;margin:1.8em 0 .6em;color:#111}.detail-content h3{font-size:1.05rem;font-weight:700;margin:1.4em 0 .5em;color:#111}.detail-content ul,.detail-content ol{margin:0 0 1.2em 1.4em}.detail-content li{margin-bottom:.4em}.detail-content a{color:#111;text-decoration:underline;text-underline-offset:3px}.detail-content img{max-width:100%;height:auto;border-radius:6px;margin:1em 0}.detail-content blockquote{border-left:3px solid #ddd;padding-left:16px;margin:1.4em 0;color:#666;font-style:italic}.detail-content figure{margin:1.5em 0}.detail-content figcaption{font-size:.8rem;color:#999;margin-top:6px}.detail-source-link{display:inline-block;margin-top:32px;font-size:.82rem;font-weight:600;color:#555;text-decoration:none;border-bottom:1px solid #ccc;padding-bottom:2px;letter-spacing:.01em;transition:color .15s ease,border-color .15s ease}.detail-source-link:hover{color:#111;border-color:#111}@media (max-width: 768px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100vh}.sidebar{height:auto;max-height:45vh}.main{height:auto}.detail{padding:28px 20px 60px}.detail-title{font-size:1.4rem}}.page{max-width:1280px;margin:0 auto;padding:48px 24px 80px}.page-header{text-align:center;margin-bottom:56px}.page-title{font-size:3rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(90deg,#fff,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{margin-top:10px;font-size:1.05rem;color:#ffffff80;letter-spacing:.01em}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.post-card{display:flex;flex-direction:column;border-radius:20px;overflow:hidden;background:#ffffff12;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #00000059;transition:transform .25s ease,box-shadow .25s ease}.post-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 20px 48px #00000080}.post-card-image{width:100%;aspect-ratio:16 / 9;overflow:hidden}.post-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.post-card:hover .post-card-image img{transform:scale(1.04)}.post-card-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 24px;gap:10px}.post-card-date{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#a78bfad9}.post-card-title{font-size:1.05rem;font-weight:700;line-height:1.4;color:#f0f0f5}.post-card-excerpt{font-size:.875rem;line-height:1.65;color:#ffffff8c;flex:1;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.post-card-excerpt p{margin:0}.post-card-link{display:inline-block;margin-top:4px;font-size:.85rem;font-weight:600;color:#a78bfa;text-decoration:none;letter-spacing:.01em;transition:color .2s ease}.post-card-link:hover{color:#c4b5fd}.status-message{text-align:center;padding:48px 0;font-size:1rem;color:#ffffff73}.status-message.error{color:#f87171}@media (max-width: 600px){.page-title{font-size:2.2rem}.posts-grid{grid-template-columns:1fr}}
