.site-shell{--paper:#fff;--ink:#111;--muted:#6b6f78;--line:#0000001a;--surface:#f4f5f7;--accent:#1a2ffb;--accent-ink:#fff;--display:inherit;--body:inherit;--mono:ui-monospace, monospace;--edge:max(24px, 5vw);--radius:8px;--btn-radius:999px;--display-weight:600;--display-tracking:-.02em}.site-shell .site-main{min-height:50vh;display:block}.site-shell .sh-head{padding:120px var(--edge) 40px;max-width:1100px;margin:0 auto}.site-shell .sh-title{font:var(--display-weight) clamp(32px, 4.2vw, 56px)/1.15 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);text-wrap:balance;word-break:keep-all}.site-shell .sh-sub{max-width:640px;color:var(--muted);word-break:keep-all;margin-top:18px;font-size:16px;line-height:1.75}.site-shell .sh-kicker{font:11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:inline-block}.site-shell .sh-btn{border-radius:var(--btn-radius);background:var(--ink);color:var(--paper);font:500 14px/1 var(--body);border:1px solid var(--ink);cursor:pointer;align-items:center;gap:8px;padding:12px 20px;text-decoration:none;transition:opacity .2s,transform .2s;display:inline-flex}.site-shell .sh-btn:hover{opacity:.88}.site-shell .sh-btn--ghost{color:var(--ink);border-color:var(--line);background:0 0}.site-shell .sh-btn--ghost:hover{border-color:var(--ink);opacity:1}.site-shell .sh-btn--accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.site-shell .sh-list{max-width:1100px;padding:0 var(--edge) 100px;margin:0 auto}.site-shell .sh-filter{flex-wrap:wrap;gap:8px;margin:10px 0 40px;display:flex}.site-shell .sh-chip{border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--ink);align-items:center;padding:8px 14px;font-size:13px;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.site-shell .sh-chip:hover{background:var(--surface)}.site-shell .sh-chip.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.site-shell .sh-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px;display:grid}.site-shell .sh-card{color:var(--ink);text-decoration:none;display:block}.site-shell .sh-card-thumb{aspect-ratio:16/10;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin-bottom:18px;position:relative;overflow:hidden}.site-shell .sh-card-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.site-shell .sh-card:hover .sh-card-thumb img{transform:scale(1.03)}.site-shell .sh-card-thumb-fallback{font:500 22px var(--display);color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.site-shell .sh-card-cat{font:11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.site-shell .sh-card-title{font:500 19px/1.4 var(--display);letter-spacing:-.01em;word-break:keep-all}.site-shell .sh-card-summary{color:var(--muted);-webkit-line-clamp:3;word-break:keep-all;-webkit-box-orient:vertical;margin-top:10px;font-size:14px;line-height:1.7;display:-webkit-box;overflow:hidden}.site-shell .sh-card-date{font:12px/1 var(--mono);color:var(--muted);margin-top:14px}.site-shell .sh-empty{color:var(--muted);padding:60px 0;line-height:1.8}.site-shell .sh-pager{color:var(--muted);align-items:center;gap:16px;margin-top:60px;font-size:13px;display:flex}.site-shell .sh-article{overflow-wrap:anywhere;color:var(--ink);background:var(--paper);padding-top:96px}.site-shell .sh-article h1,.site-shell .sh-article h2,.site-shell .sh-article h3,.site-shell .sh-article p,.site-shell .sh-article li,.site-shell .sh-article a,.site-shell .sh-article span{word-break:keep-all;overflow-wrap:anywhere}.site-shell .sh-article .board_detail_wrap{width:100%;max-width:1100px;padding:0 var(--edge) 60px;margin:0 auto}.site-shell .sh-article .inner_wrap{box-sizing:border-box;overflow-wrap:anywhere;width:100%;min-width:0;max-width:820px;margin:0 auto;padding:0}.site-shell .sh-article .article-header{border-bottom:1px solid var(--line);margin-bottom:40px;padding:0 0 36px}.site-shell .sh-article .article-meta-top,.site-shell .sh-article .article-meta-bottom{color:var(--muted);font:12px/1.8 var(--mono);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.site-shell .sh-article .article-category{color:var(--accent)}.site-shell .sh-article .article-title{font:var(--display-weight) clamp(30px, 3.8vw, 52px)/1.2 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);margin:18px 0 24px}.site-shell .sh-article .article-summary{background:var(--surface);border-left:2px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:28px;padding:22px 26px}.site-shell .sh-article .article-summary-label{font:11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.site-shell .sh-article .article-summary-text{color:var(--ink);margin:0;font-size:16px;line-height:1.85}.site-shell .sh-article .article-toc{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:40px;padding:22px 26px}.site-shell .sh-article .article-toc-title{font:11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.site-shell .sh-article .article-toc-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.site-shell .sh-article .article-toc-item a{color:var(--ink);font-size:14px;line-height:1.6;text-decoration:none}.site-shell .sh-article .article-toc-item a:hover{text-underline-offset:3px;text-decoration:underline}.site-shell .sh-article .article-toc-item.level-3{padding-left:16px}.site-shell .sh-article .article-body{margin:0;font-size:17px;position:relative}.site-shell .sh-article .article-body .post-content{white-space:normal;height:auto;font-family:var(--body);color:var(--ink);letter-spacing:-.01em;padding:0;font-size:17px;line-height:1.95;overflow:visible}.site-shell .sh-article .article-body .post-content>*{cursor:auto}.site-shell .sh-article .article-body .post-content p,.site-shell .sh-article .article-body .post-content ul,.site-shell .sh-article .article-body .post-content ol,.site-shell .sh-article .article-body .post-content blockquote,.site-shell .sh-article .article-body .post-content td{color:var(--muted)}.site-shell .sh-article .article-body .post-content p{margin:0 0 24px}.site-shell .sh-article .article-body .post-content h2,.site-shell .sh-article .article-body .post-content h3,.site-shell .sh-article .article-body .post-content h4,.site-shell .sh-article .article-body .post-content strong{color:var(--ink)}.site-shell .sh-article .article-body .post-content h2{font:var(--display-weight) 28px/1.4 var(--display);letter-spacing:var(--display-tracking);border:0;margin:60px 0 22px;padding:0}.site-shell .sh-article .article-body .post-content h3{font:500 21px/1.45 var(--display);margin:40px 0 16px}.site-shell .sh-article .article-body .post-content a{color:var(--accent);text-underline-offset:4px;border:0;text-decoration:underline}.site-shell .sh-article .article-body .post-content ul,.site-shell .sh-article .article-body .post-content ol{margin:16px 0 24px;padding-left:22px}.site-shell .sh-article .article-body .post-content li{margin:6px 0}.site-shell .sh-article .article-body .post-content blockquote{background:var(--surface);border-left:2px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin:28px 0;padding:18px 24px}.site-shell .sh-article .article-body .post-content pre{background:var(--ink);color:var(--paper);border-radius:var(--radius);font-family:var(--mono);padding:22px;font-size:14px;line-height:1.6;overflow-x:auto}.site-shell .sh-article .article-body .post-content code{background:var(--surface);color:var(--ink);font-family:var(--mono);border-radius:4px;padding:2px 6px;font-size:.92em}.site-shell .sh-article .article-body .post-content pre code{color:inherit;background:0 0;padding:0}.site-shell .sh-article .article-body .post-content hr{border:0;border-top:1px solid var(--line);margin:48px 0}.site-shell .sh-article .article-body .post-content table{color:var(--ink);border-color:var(--line)}.site-shell .sh-article .article-body .post-content th{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:8px 10px}.site-shell .sh-article .article-body .post-content td{border:1px solid var(--line);padding:8px 10px}.site-shell .sh-article .article-body .post-content img{border-radius:var(--radius);max-width:100%;height:auto}.site-shell .sh-article .article-body .post-content>h2:first-child,.site-shell .sh-article .article-body .post-content>h3:first-child{margin-top:0}.site-shell .sh-article .board-tag{margin-top:36px}.site-shell .sh-article .board-tag-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.site-shell .sh-article .board-tag-item{border:1px solid var(--line);border-radius:var(--btn-radius);font:12px/1.4 var(--mono);color:var(--muted);white-space:nowrap;padding:6px 12px;display:inline-flex}.site-shell .sh-article .btn_wrap{margin-top:60px}.site-shell .sh-article .other_post .op_title{border-top:1px solid var(--line);font:500 20px/1.4 var(--display);color:var(--ink);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-top:28px;display:flex}.site-shell .sh-article .btn_comm.btn_list{border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--ink);font:500 13px/1 var(--body);cursor:pointer;background:0 0;align-items:center;padding:10px 16px;display:inline-flex}.site-shell .sh-article .btn_comm.btn_list:hover{border-color:var(--ink)}.site-shell .sh-article .op_detail{grid-template-columns:1fr 1fr;gap:16px;display:grid}.site-shell .sh-article .op_detail.has_other{height:auto;min-height:0}.site-shell .sh-article .blog-item{flex:none;width:100%;max-width:none}.site-shell .sh-article .blog-item a{border-radius:var(--radius);border:1px solid var(--line);height:auto;color:var(--ink);flex-direction:column;text-decoration:none;display:flex;overflow:hidden;width:100%!important}.site-shell .sh-article .blog-item-top{aspect-ratio:16/9;background:var(--surface);height:auto;position:relative}.site-shell .sh-article .blog-item-thumb img{object-fit:cover;width:100%;height:100%;display:block}.site-shell .sh-article .blog-item-new-badge{background:var(--accent);color:var(--accent-ink);font:10px/1 var(--mono);letter-spacing:.06em;border-radius:4px;padding:4px 8px;position:absolute;top:12px;left:12px}.site-shell .sh-article .blog-item-bottom{gap:6px;padding:16px 18px 18px;display:grid}.site-shell .sh-article .blog-item-category{font:11px/1.4 var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.site-shell .sh-article .blog-item-title{font:500 16px/1.45 var(--display);color:var(--ink)}.site-shell .sh-article .blog-item-summary{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}.site-shell .sh-article .blog-item-foot{font:12px/1.4 var(--mono);color:var(--muted);justify-content:space-between;margin-top:4px;display:flex}.site-shell .sh-article .article-files{display:none}.site-shell .sh-post-end{max-width:820px;padding:0 var(--edge) 80px;color:var(--muted);margin:0 auto;font-size:14px;line-height:1.9}.site-shell .sh-post-end a:not(.sh-btn){color:var(--ink);text-underline-offset:4px;text-decoration:underline}.site-shell .sh-post-end-case{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.site-shell .sh-post-end-case-label{font:11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;display:block}.site-shell .sh-pending{max-width:820px;padding:120px var(--edge) 100px;min-height:60vh;margin:0 auto}.site-shell .sh-pending h1{font:var(--display-weight) clamp(28px, 3.6vw, 48px)/1.25 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);margin:20px 0 24px}.site-shell .sh-pending .lead{color:var(--muted);margin-bottom:28px;font-size:16px;line-height:1.8}.site-shell .sh-pending .links a{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.site-shell .sh-tool-widget{max-width:1100px;padding:20px var(--edge) 40px;margin:0 auto}.site-shell .sh-tool-cta{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);color:var(--ink);flex-direction:column;gap:10px;margin-top:36px;padding:26px 0;text-decoration:none;display:flex}.site-shell .sh-tool-cta-q{font:500 20px/1.45 var(--display);letter-spacing:-.01em}.site-shell .sh-tool-cta-a{color:var(--muted);font-size:14px;line-height:1.8}.site-shell .sh-tool-cta-a i{color:var(--ink);text-underline-offset:4px;margin-left:8px;font-style:normal;text-decoration:underline}.site-shell .sh-tool-body{max-width:820px;padding:20px var(--edge) 100px;margin:0 auto}.site-shell .sh-tool-body .post-content{font-family:var(--body);color:var(--muted);white-space:normal;height:auto;padding:0;font-size:16px;line-height:1.9;overflow:visible}.site-shell .sh-tool-body .post-content>*{cursor:auto}.site-shell .sh-tool-body .post-content h2{font:var(--display-weight) 26px/1.4 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);margin:44px 0 20px}.site-shell .sh-tool-body .post-content h3{font:500 20px/1.45 var(--display);color:var(--ink);margin:30px 0 14px}.site-shell .sh-tool-body .post-content p{margin:0 0 20px}.site-shell .sh-tool-body .post-content ul,.site-shell .sh-tool-body .post-content ol{padding-left:22px}.site-shell .sh-tool-body .post-content strong{color:var(--ink)}.site-shell .sh-tool-body .post-content a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.site-shell .sh-project{max-width:1100px;padding:120px var(--edge) 100px;color:var(--ink);overflow-wrap:anywhere;margin:0 auto}.site-shell .sh-project-hero{max-width:820px;margin:0 auto 48px}.site-shell .sh-project-hero h1{font:var(--display-weight) clamp(32px, 4.4vw, 60px)/1.15 var(--display);letter-spacing:var(--display-tracking);word-break:keep-all}.site-shell .sh-project-lead{color:var(--muted);word-break:keep-all;margin-top:20px;font-size:17px;line-height:1.8}.site-shell .sh-project-meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:28px;margin-top:28px;padding-top:22px;display:flex}.site-shell .sh-project-meta dt{font:11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.site-shell .sh-project-meta dd{color:var(--ink);margin:0;font-size:15px}.site-shell .sh-project-media{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);aspect-ratio:16/9;margin:40px auto 0;overflow:hidden}.site-shell .sh-project-media--youtube{aspect-ratio:auto;background:0 0;border:0;overflow:visible}.site-shell .sh-project-media img,.site-shell .sh-project-media video,.site-shell .sh-project-media iframe{object-fit:cover;border:0;width:100%;height:100%;display:block}.site-shell .sh-project-body{max-width:820px;margin:0 auto}.site-shell .sh-project-body .post-content{white-space:normal;height:auto;font-family:var(--body);color:var(--muted);padding:0;font-size:17px;line-height:1.9;overflow:visible}.site-shell .sh-project-body .post-content>*{cursor:auto}.site-shell .sh-project-body .post-content h2{font:var(--display-weight) 28px/1.4 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);margin:56px 0 20px}.site-shell .sh-project-body .post-content h3{font:500 21px/1.45 var(--display);color:var(--ink);margin:36px 0 14px}.site-shell .sh-project-body .post-content p{margin:0 0 22px}.site-shell .sh-project-body .post-content strong{color:var(--ink)}.site-shell .sh-project-body .post-content a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.site-shell .sh-project-body .post-content img{border-radius:var(--radius);max-width:100%;height:auto}.site-shell .sh-project-body .post-content ul,.site-shell .sh-project-body .post-content ol{padding-left:22px}.site-shell .sh-project-cta{border-top:1px solid var(--line);max-width:820px;margin:80px auto 0;padding:40px 0 0}.site-shell .sh-project-cta h2{font:var(--display-weight) clamp(24px, 3vw, 36px)/1.3 var(--display);letter-spacing:var(--display-tracking);word-break:keep-all}.site-shell .sh-project-cta p{color:var(--muted);margin:14px 0 26px;line-height:1.8}.site-shell .sh-project-back{max-width:820px;color:var(--muted);text-underline-offset:4px;margin:40px auto 0;font-size:14px;text-decoration:underline;display:block}.site-shell .sh-doc{max-width:820px;padding:20px var(--edge) 100px;color:var(--muted);margin:0 auto;font-size:15px;line-height:1.9}.site-shell .sh-doc section+section{border-top:1px solid var(--line);margin-top:44px;padding-top:30px}.site-shell .sh-doc h2{font:500 22px/1.5 var(--display);letter-spacing:-.01em;color:var(--ink);margin:0 0 20px}.site-shell .sh-doc p{margin:0 0 14px}.site-shell .sh-doc ul{margin:0 0 14px;padding-left:20px;list-style:outside}.site-shell .sh-doc li{margin:6px 0}.site-shell .sh-doc a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.site-shell .sh-doc strong{color:var(--ink)}.site-shell .sh-table-wrap{border:1px solid var(--line);border-radius:var(--radius);margin:22px 0;overflow-x:auto}.site-shell .sh-doc table{border-collapse:collapse;width:100%;min-width:540px;font-size:13px}.site-shell .sh-doc th,.site-shell .sh-doc td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:14px;line-height:1.7}.site-shell .sh-doc th{color:var(--ink);background:var(--surface);font-weight:500}.site-shell .sh-doc tr:last-child td{border-bottom:0}.site-shell .sh-meta{background:var(--surface);border-radius:var(--radius);margin-top:30px;padding:18px 22px;font-size:13px;padding-left:22px!important;list-style:none!important}.site-shell .sh-status{text-align:center;min-height:70vh;padding:140px var(--edge) 100px;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;display:flex}.site-shell .sh-status-code{font:12px/1 var(--mono);letter-spacing:.12em;color:var(--muted);margin-bottom:14px}.site-shell .sh-status h1{font:var(--display-weight) clamp(30px, 4.5vw, 52px)/1.15 var(--display);letter-spacing:var(--display-tracking);color:var(--ink);margin:0 0 16px}.site-shell .sh-status p{color:var(--muted);max-width:520px;margin:0 0 32px;font-size:16px;line-height:1.7}.site-shell .sh-status-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}@media (max-width:1000px){.site-shell .sh-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.site-shell .sh-head{padding-top:96px}.site-shell .sh-grid{grid-template-columns:1fr;gap:36px}.site-shell .sh-article{padding-top:76px}.site-shell .sh-article .article-body .post-content{font-size:15px}.site-shell .sh-article .article-body .post-content h2{font-size:24px}.site-shell .sh-article .op_detail{grid-template-columns:1fr}.site-shell .sh-project{padding-top:96px}.site-shell .sh-doc{font-size:14px}.site-shell .sh-status{padding-top:110px}}@media (prefers-reduced-motion:reduce){.site-shell .sh-card-thumb img,.site-shell .sh-btn{transition:none}.site-shell .sh-card:hover .sh-card-thumb img{transform:none}}
