*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--navy:#0a1628;--blue-accent:#2d7ff9;--blue-light:#5b9dff;--blue-glow:#2d7ff940;--cyan:#00d4aa;--white:#f0f4f8;--gray:#8899aa;--gray-light:#c0cdd8;--surface:#0f1c30;--card-bg:#131f35;--card-border:#1e3050;--font-jp:'Noto Sans JP',sans-serif;--font-en:'DM Sans',sans-serif;--font-mono:'JetBrains Mono',monospace;--accent:#0078d4}
html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-jp);background:var(--navy);color:var(--white);line-height:1.8}.container{max-width:1200px;margin:0 auto;padding:0 2rem}
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,22,40,.85);backdrop-filter:blur(20px);border-bottom:1px solid rgba(45,127,249,.1)}nav.scrolled{background:rgba(10,22,40,.95)}.nav-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:72px}.nav-logo{font-family:var(--font-en);font-weight:700;font-size:1.15rem;color:var(--white);text-decoration:none}.nav-logo span{color:var(--cyan)}.nav-links{display:flex;gap:2rem;align-items:center}.nav-links a{color:var(--gray);text-decoration:none;font-size:.85rem;font-weight:500}.nav-links a:hover{color:var(--white)}.nav-links a.current{color:var(--white)}.nav-cta{background:var(--blue-accent)!important;color:var(--white)!important;padding:.55rem 1.4rem!important;border-radius:6px;font-size:.82rem!important}.hamburger{display:none;background:none;border:none;cursor:pointer;width:28px;height:20px;position:relative;z-index:1002}.hamburger span{display:block;width:100%;height:2px;background:var(--white);position:absolute;left:0;transition:all .3s}.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:9px}.hamburger span:nth-child(3){top:18px}.hamburger.active span:nth-child(1){top:9px;transform:rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){top:9px;transform:rotate(-45deg)}
.page-hero{padding:9rem 0 3rem}.breadcrumb{font-size:.8rem;color:var(--gray);margin-bottom:1.5rem}.breadcrumb a{color:var(--gray);text-decoration:none}.breadcrumb a:hover{color:var(--white)}.breadcrumb span{margin:0 .5rem}.article-meta{display:flex;gap:1.5rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}.article-cat{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;padding:.3rem .8rem;border-radius:4px;background:rgba(45,127,249,.1);color:var(--accent);border:1px solid rgba(45,127,249,.15)}.article-date,.article-read{font-size:.82rem;color:var(--gray)}.page-hero h1{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:900;letter-spacing:-.03em;line-height:1.5;max-width:800px}
.hero-image{margin-top:2rem;border-radius:12px;overflow:hidden;border:1px solid var(--card-border)}.hero-image svg{width:100%;height:auto;display:block}
.article-layout{display:grid;grid-template-columns:1fr 280px;gap:4rem;padding:3rem 0 5rem}.article-body{max-width:780px}.article-body h2{font-size:1.4rem;font-weight:700;margin:3rem 0 1.2rem;padding-top:1rem;border-top:1px solid var(--card-border);line-height:1.5}.article-body h2:first-of-type{margin-top:0;border-top:none;padding-top:0}.article-body h3{font-size:1.1rem;font-weight:700;margin:2rem 0 .8rem;color:var(--accent);line-height:1.5}.article-body p{color:var(--gray-light);font-size:.95rem;line-height:2;margin-bottom:1.2rem}.article-body ul,.article-body ol{color:var(--gray-light);font-size:.95rem;line-height:2;margin:1rem 0 1.5rem 1.5rem}.article-body li{margin-bottom:.5rem}.article-body strong{color:var(--white)}
.info-box{background:var(--card-bg);border:1px solid var(--card-border);border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:1.5rem 2rem;margin:1.5rem 0}.info-box-title{font-weight:700;font-size:.95rem;margin-bottom:.5rem;color:var(--accent)}.info-box p{margin-bottom:0}
.table-wrapper{overflow-x:auto;margin:1.5rem 0}.table-wrapper table{width:100%;border-collapse:collapse;font-size:.88rem}.table-wrapper th,.table-wrapper td{padding:.8rem 1rem;border:1px solid var(--card-border)}.table-wrapper th{background:var(--card-bg);color:var(--white);font-weight:700}.table-wrapper td{color:var(--gray-light)}
.sidebar{position:sticky;top:90px;align-self:start}.toc{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem}.toc-title{font-size:.82rem;font-weight:700;margin-bottom:1rem}.toc a{display:block;color:var(--gray);text-decoration:none;font-size:.82rem;line-height:1.6;padding:.3rem 0}.toc a:hover{color:var(--white)}.sidebar-cta{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem;margin-top:1.5rem;text-align:center}.sidebar-cta p{color:var(--gray);font-size:.82rem;margin-bottom:1rem;line-height:1.7}.sidebar-cta .btn-sm{display:inline-block;background:var(--blue-accent);color:var(--white);padding:.6rem 1.5rem;border-radius:6px;text-decoration:none;font-size:.82rem;font-weight:600}
.author-box{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:2rem;margin:3rem 0;display:flex;gap:1.5rem;align-items:flex-start}.author-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--blue-accent),var(--cyan));display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-en);font-weight:700;font-size:1.4rem;color:var(--white)}.author-info h3{font-size:1rem;font-weight:700;margin-bottom:.3rem;color:var(--white)}.author-info .author-role{font-size:.82rem;color:var(--accent);margin-bottom:.5rem}.author-info p{font-size:.82rem;color:var(--gray-light);line-height:1.7;margin-bottom:0}
.ext-ref{margin:2rem 0;padding:1.2rem 1.5rem;background:rgba(45,127,249,.05);border:1px solid rgba(45,127,249,.12);border-radius:8px}.ext-ref-title{font-size:.78rem;font-weight:700;color:var(--gray);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.08em}.ext-ref a{display:inline-block;color:var(--blue-light);text-decoration:none;font-size:.85rem;margin-right:1.5rem;line-height:2}.ext-ref a:hover{text-decoration:underline}
.related-section{background:var(--surface);padding:4rem 0}.related-section h2{font-size:1.2rem;font-weight:700;margin-bottom:1.5rem}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}.related-card{display:block;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem;text-decoration:none;transition:all .3s}.related-card:hover{border-color:var(--blue-accent);transform:translateY(-2px)}.related-cat{font-size:.72rem;color:var(--accent);font-family:var(--font-mono);display:block;margin-bottom:.5rem}.related-title{color:var(--white);font-size:.92rem;font-weight:600;line-height:1.6}
.cta-section{text-align:center;padding:5rem 0 6rem;position:relative}.cta-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(45,127,249,.08),transparent)}.cta-section .container{position:relative;z-index:1}.cta-section h2{font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;margin-bottom:1rem}.cta-section>div>p{color:var(--gray);margin-bottom:2rem}.cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--blue-accent);color:var(--white);padding:.85rem 2rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.92rem;transition:all .25s}.btn-primary:hover{background:var(--blue-light);transform:translateY(-2px)}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--gray-light);padding:.85rem 2rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.92rem;border:1px solid var(--card-border)}
footer{border-top:1px solid var(--card-border);padding:3rem 0 2rem}.footer-inner{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:2rem}.footer-brand p{color:var(--gray);font-size:.82rem;margin-top:.5rem;max-width:280px;line-height:1.7}.footer-links{display:flex;gap:3rem}.footer-col h4{font-size:.78rem;color:var(--gray);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.8rem}.footer-col a{display:block;color:var(--gray-light);text-decoration:none;font-size:.85rem;margin-bottom:.5rem}.footer-col a:hover{color:var(--white)}.footer-bottom{text-align:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--card-border);font-size:.78rem;color:var(--gray)}
@media(max-width:960px){.article-layout{grid-template-columns:1fr}.sidebar{display:none}}
body.menu-open{overflow:hidden}
@media(max-width:768px){.nav-links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001;background:rgba(10,22,40,.98);flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.nav-links.active{display:flex}.nav-links a{font-size:1.1rem;padding:.8rem 1.5rem;width:80%;text-align:center;border-radius:8px}.nav-links a:hover,.nav-links a:active{background:rgba(45,127,249,.1)}.nav-links .nav-cta{width:80%;text-align:center;padding:.9rem 1.5rem!important;font-size:.95rem!important;margin-top:.5rem}.hamburger{display:block}.page-hero{padding:7rem 0 2rem}.hero-image{margin-top:1.5rem}.author-box{flex-direction:column;align-items:center;text-align:center}.related-grid{grid-template-columns:1fr}.footer-inner{flex-direction:column}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
