@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&display=swap");*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans JP,Hiragino Sans,sans-serif;background:#f5f6fa;color:#333;-webkit-font-smoothing:antialiased;font-feature-settings:"palt"}.site-header{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;padding:14px 28px;position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:0 2px 12px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:space-between}.layout{display:flex;max-width:1240px;margin:0 auto;gap:28px;padding:28px 20px}.sidebar-wrapper{width:260px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:72px;height:calc(100vh - 96px);overflow-y:auto}.sidebar-wrapper::-webkit-scrollbar{width:4px}.sidebar-wrapper::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.main-content{flex:1 1;min-width:0}.sidebar{background:#fff;border-radius:12px;padding:18px;box-shadow:0 1px 6px rgba(0,0,0,.06)}.sidebar-title{font-size:14px;font-weight:700;color:#1a1a2e;padding:0 8px 8px;border-bottom:2px solid #3f51b5;margin-bottom:6px}.sidebar-count{font-size:11px;color:#999;padding:2px 8px 12px}.sidebar-category{margin-bottom:14px}.sidebar-cat-name{font-size:12px;font-weight:600;color:#3f51b5;padding:7px 10px;background:#f0f2ff;border-radius:6px;margin-bottom:2px;display:flex;justify-content:space-between;align-items:center}.sidebar-cat-count{font-size:10px;color:#7986cb;background:#e8eaf6;border-radius:8px;padding:1px 7px;font-weight:500}.sidebar-list{list-style:none;padding:0;margin:0}.sidebar-list li{margin:0}.sidebar-link{display:block;padding:7px 10px;font-size:13px;color:#555;text-decoration:none;border-radius:6px;transition:all .15s;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-link:hover{background:#eef1ff;color:#1a1a2e;transform:translateX(2px)}@media (max-width:768px){.layout{flex-direction:column}.sidebar-wrapper{width:100%;position:static;height:auto}.mdx-content h2{font-size:19px}.article-card{padding:20px 18px!important}}.article-card{background:#fff;border-radius:12px;padding:32px 40px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.mdx-content{font-size:15.5px;line-height:1.95;color:#333;word-break:break-word;letter-spacing:.01em}.mdx-content h1{font-size:24px;margin:0 0 20px;padding-bottom:14px;border-bottom:2px solid #e8eaf6}.mdx-content h1,.mdx-content h2{font-weight:700;color:#1a1a2e;line-height:1.4}.mdx-content h2{font-size:20px;margin:48px 0 18px;padding:12px 0 12px 18px;border-left:4px solid #3f51b5;background:linear-gradient(90deg,#f0f2ff,transparent);border-radius:0 6px 6px 0;position:relative}.mdx-content h2:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#3f51b5;border-radius:4px}.mdx-content h3{font-size:17px;font-weight:600;margin:36px 0 12px;padding-bottom:8px;border-bottom:2px solid #eef0f5;color:#2c3e50;line-height:1.5}.mdx-content h4{font-size:15.5px;font-weight:600;margin:28px 0 10px;color:#34495e;padding-left:12px;border-left:3px solid #c5cae9}.mdx-content p{margin:16px 0}.mdx-content ol,.mdx-content ul{padding-left:24px;margin:16px 0}.mdx-content li{margin:8px 0;padding-left:4px}.mdx-content li::marker{color:#3f51b5}.mdx-content strong{color:#1a1a2e;font-weight:700;background:linear-gradient(transparent 60%,#e8eaf6 0);padding:0 2px}.mdx-content table{width:100%;border-collapse:separate;border-spacing:0;margin:28px 0;font-size:14px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.04)}.mdx-content thead{background:linear-gradient(135deg,#1a1a2e,#2d2d5e);color:#fff}.mdx-content th{padding:13px 18px;text-align:left;font-weight:600;font-size:13px;letter-spacing:.04em;white-space:nowrap}.mdx-content td{padding:12px 18px;border-bottom:1px solid #f0f0f0;vertical-align:top;transition:background .15s;line-height:1.7}.mdx-content tbody tr:last-child td{border-bottom:none}.mdx-content tbody tr:nth-child(2n){background:#fafbff}.mdx-content tbody tr:hover{background:#eef1ff}.mdx-content code{background:#eef0f5;padding:2px 8px;border-radius:5px;font-size:13px;font-family:SF Mono,Fira Code,monospace;color:#d63384}.mdx-content pre{background:#1e1e2e;color:#cdd6f4;padding:20px;border-radius:12px;overflow-x:auto;margin:24px 0;box-shadow:0 4px 12px rgba(0,0,0,.15);line-height:1.6}.mdx-content pre code{background:none;padding:0;color:inherit}.mdx-content blockquote{border-left:4px solid #3f51b5;margin:24px 0;padding:16px 24px;background:#f8f8fc;color:#555;border-radius:0 10px 10px 0;font-style:italic;line-height:1.8;box-shadow:inset 0 0 0 1px rgba(63,81,181,.08)}.mdx-content blockquote p{margin:8px 0}.mdx-content img{max-width:100%;border-radius:12px;margin:24px 0;box-shadow:0 4px 16px rgba(0,0,0,.08)}.mdx-content hr{border:none;height:1px;background:linear-gradient(90deg,transparent 5%,#d0d0d0 50%,transparent 95%);margin:40px 0}.mdx-content a{color:#3f51b5;text-decoration:none;border-bottom:1px dashed #b0bec5;transition:all .2s;padding-bottom:1px}.mdx-content a:hover{border-bottom:1px solid #3f51b5;color:#283593}.comment-section{margin-top:28px}.comment-section h3{font-size:16px;font-weight:700;margin-bottom:14px;color:#1a1a2e}.comment-item{background:#fff;border-radius:10px;padding:14px 18px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid #f0f0f0;transition:box-shadow .15s}.comment-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.comment-form{background:#fff;border-radius:12px;padding:20px;margin-top:18px;box-shadow:0 1px 4px rgba(0,0,0,.08);border:1px solid #eee}.comment-form input,.comment-form select,.comment-form textarea{font-family:inherit;font-size:14px;border:1px solid #ddd;border-radius:8px;padding:10px 14px;transition:border-color .2s,box-shadow .2s;outline:none}.comment-form input:focus,.comment-form select:focus,.comment-form textarea:focus{border-color:#3f51b5;box-shadow:0 0 0 3px rgba(63,81,181,.1)}.comment-form textarea{resize:vertical;min-height:100px}.comment-form button{font-family:inherit;font-size:14px;font-weight:600;padding:10px 24px;border:none;border-radius:8px;cursor:pointer;transition:transform .1s,box-shadow .15s}.comment-form button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.comment-form button:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.article-card{animation:fadeIn .3s ease}