:root{--primary:#009EF3;--primary-dark:#0080C8;--primary-light:#E6F4FD;--accent:#FF6B35;--accent-light:#FFF0EB;--bg:#FAFAFA;--bg-white:#FFFFFF;--text:#333333;--text-light:#666666;--text-muted:#999999;--border:#E0E0E0;--border-light:#F0F0F0;--card-bg:#FFFFFF;--footer-bg:#2C3E50;--footer-text:#ECF0F1;--shadow-sm:0 1px 3px rgba(0, 0, 0, 0.08);--shadow-md:0 4px 12px rgba(0, 0, 0, 0.1);--shadow-lg:0 8px 24px rgba(0, 0, 0, 0.12);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--max-width:1200px;--article-width:720px;--header-height:60px;--transition:0.2s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:noto sans jp,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif;font-size:1rem;line-height:1.8;color:var(--text);background-color:var(--bg);min-height:100vh;display:flex;flex-direction:column}img{max-width:100%;height:auto;display:block}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--primary-dark)}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{list-style:none}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.site-header{position:sticky;top:0;z-index:100;background-color:var(--bg-white);border-bottom:1px solid var(--border);height:var(--header-height)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-height)}.site-logo{font-size:1.15rem;font-weight:700;color:var(--text);white-space:nowrap}.site-logo:hover{color:var(--primary)}.main-nav .nav-list{display:flex;gap:.25rem}.nav-link{display:block;padding:.5rem .75rem;font-size:.875rem;color:var(--text-light);border-radius:var(--radius-sm);transition:background-color var(--transition),color var(--transition);white-space:nowrap}.nav-link:hover,.nav-link[aria-current=page]{color:var(--primary);background-color:var(--primary-light)}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;background:0 0;border:none;cursor:pointer;padding:.5rem;width:40px;height:40px}.hamburger-line{display:block;width:22px;height:2px;background-color:var(--text);border-radius:1px;transition:transform var(--transition),opacity var(--transition)}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(1){transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:4rem 0;text-align:center}.hero-title{font-size:2rem;font-weight:700;line-height:1.3;margin-bottom:1rem}.hero-description{font-size:1.05rem;line-height:1.7;opacity:.92;max-width:640px;margin:0 auto}.section{padding:3rem 0}.section-heading{font-size:1.5rem;font-weight:700;text-align:center;margin-bottom:2rem;color:var(--text);position:relative}.section-heading::after{content:"";display:block;width:40px;height:3px;background-color:var(--primary);margin:.75rem auto 0;border-radius:2px}.section-header{margin-bottom:2rem;padding:2rem 0 1rem}.section-title{font-size:1.75rem;font-weight:700;color:var(--text);margin-bottom:.5rem}.section-description{font-size:1rem;color:var(--text-light)}.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.post-card{background-color:var(--card-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition),transform var(--transition)}.post-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.post-card-link{display:block;color:var(--text);height:100%}.post-card-link:hover{color:var(--text)}.post-card-thumbnail{aspect-ratio:16/9;overflow:hidden;background-color:var(--border-light)}.post-card-placeholder{aspect-ratio:16/9;background:linear-gradient(135deg,var(--primary-light) 0%,#e8f0fe 50%,var(--primary-light) 100%);display:flex;align-items:center;justify-content:center;color:var(--primary);opacity:.6}.post-card-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition)}.post-card:hover .post-card-thumbnail img{transform:scale(1.03)}.post-card-body{padding:1.25rem}.post-card-title{font-size:1.05rem;font-weight:700;line-height:1.4;margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-meta{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.post-card-excerpt{font-size:.875rem;color:var(--text-light);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.75rem}.post-card-tags{display:flex;flex-wrap:wrap;gap:.375rem}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.category-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem;background-color:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text);transition:box-shadow var(--transition),transform var(--transition)}.category-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);color:var(--text)}.category-card-icon{color:var(--primary);margin-bottom:1rem}.category-card-title{font-size:1.05rem;font-weight:700;margin-bottom:.5rem;line-height:1.3}.category-card-description{font-size:.85rem;color:var(--text-light);line-height:1.5}.tag-pill{display:inline-block;padding:.2rem .6rem;font-size:.75rem;color:var(--primary);background-color:var(--primary-light);border-radius:100px;transition:background-color var(--transition)}.tag-pill:hover{background-color:var(--primary);color:#fff}.tag-pill-sm{padding:.15rem .5rem;font-size:.7rem}.category-tag{display:inline-block;padding:.2rem .6rem;font-size:.75rem;color:var(--accent);background-color:var(--accent-light);border-radius:100px;transition:background-color var(--transition)}.category-tag:hover{background-color:var(--accent);color:#fff}.article-layout{display:grid;grid-template-columns:220px 1fr;gap:2rem;padding-top:2rem;padding-bottom:3rem;align-items:start}.article{max-width:var(--article-width);width:100%}.breadcrumb{margin-bottom:1.5rem}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.breadcrumb-item+.breadcrumb-item::before{content:"/";margin-right:.25rem;color:var(--border)}.breadcrumb-item a{color:var(--text-light)}.breadcrumb-item a:hover{color:var(--primary)}.article-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.article-title{font-size:1.75rem;font-weight:700;line-height:1.4;margin-bottom:.75rem;color:var(--text)}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.article-reading-time{color:var(--text-muted)}.article-updated{color:var(--text-muted);font-size:.8rem}.article-categories{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.article-tags{display:flex;flex-wrap:wrap;gap:.375rem}.article-body{line-height:1.9;font-size:1rem}.article-body h2{font-size:1.4rem;font-weight:700;margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-light);color:var(--text);line-height:1.4}.article-body h3{font-size:1.2rem;font-weight:700;margin:2rem 0 .75rem;color:var(--text);line-height:1.4}.article-body h4{font-size:1.05rem;font-weight:700;margin:1.5rem 0 .5rem;color:var(--text);line-height:1.4}.article-body p{margin-bottom:1.25rem}.article-body ul,.article-body ol{margin-bottom:1.25rem;padding-left:1.5rem}.article-body ul{list-style:disc}.article-body ol{list-style:decimal}.article-body li{margin-bottom:.4rem;line-height:1.7}.article-body blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid var(--primary);background-color:var(--primary-light);border-radius:0 var(--radius-sm)var(--radius-sm)0;color:var(--text-light);font-style:italic}.article-body blockquote p:last-child{margin-bottom:0}.article-body pre{margin:1.5rem 0;padding:1.25rem;background-color:#2d2d2d;border-radius:var(--radius-md);overflow-x:auto;font-size:.875rem;line-height:1.6}.article-body code{font-family:sfmono-regular,Consolas,liberation mono,Menlo,monospace;font-size:.875em}.article-body :not(pre)>code{padding:.15em .4em;background-color:var(--border-light);border-radius:var(--radius-sm);color:var(--accent)}.article-body table{width:100%;margin:1.5rem 0;border-collapse:collapse;font-size:.9rem}.article-body th,.article-body td{padding:.75rem 1rem;border:1px solid var(--border);text-align:left}.article-body th{background-color:var(--primary-light);font-weight:700}.article-body img{border-radius:var(--radius-md);margin:1.5rem auto}.article-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.article-body a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.article-body a:hover{color:var(--primary-dark)}.toc-sidebar{position:sticky;top:calc(var(--header-height) + 1.5rem);max-height:calc(100vh - var(--header-height) - 3rem);overflow-y:auto;padding-right:.5rem}.toc-wrapper{background-color:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border-light);padding:1rem}.toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:0 0;border:none;cursor:pointer;font-size:.85rem;font-weight:700;color:var(--text);padding:0 0 .75rem;border-bottom:1px solid var(--border-light);margin-bottom:.75rem}.toc-toggle-icon::after{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform var(--transition)}.toc-toggle[aria-expanded=false] .toc-toggle-icon::after{transform:rotate(-45deg)}.toc-content{transition:max-height .3s ease,opacity .3s ease}.toc-content.is-collapsed{max-height:0;opacity:0;overflow:hidden}.toc-content nav,.toc-content #TableOfContents{font-size:.8rem;line-height:1.5}.toc-content ul{list-style:none;padding-left:0}.toc-content ul ul{padding-left:.75rem}.toc-content li{margin-bottom:.35rem}.toc-content a{color:var(--text-light);display:block;padding:.15rem 0;transition:color var(--transition)}.toc-content a:hover{color:var(--primary)}.faq-section{margin:2.5rem 0;padding:2rem;background-color:var(--primary-light);border-radius:var(--radius-lg)}.faq-section-title{font-size:1.25rem;font-weight:700;margin-bottom:1.25rem;color:var(--text)}.faq-list{display:flex;flex-direction:column;gap:.5rem}.faq-item{background-color:var(--bg-white);border-radius:var(--radius-md);border:1px solid var(--border-light);overflow:hidden;transition:box-shadow var(--transition)}.faq-item[open]{box-shadow:var(--shadow-sm)}.faq-question{display:block;padding:1rem 1.25rem;font-weight:700;font-size:.95rem;cursor:pointer;color:var(--text);list-style:none;position:relative;padding-right:2.5rem}.faq-question::-webkit-details-marker{display:none}.faq-question::after{content:"+";position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.2rem;color:var(--primary);font-weight:400;transition:transform var(--transition)}.faq-item[open] .faq-question::after{content:"-"}.faq-answer{padding:0 1.25rem 1rem;font-size:.9rem;color:var(--text-light);line-height:1.7}.faq-item-inline{margin:1rem 0}.callout{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:var(--radius-md);border-left:4px solid}.callout-header{margin-bottom:.5rem}.callout-label{font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.02em}.callout-body{font-size:.9rem;line-height:1.7}.callout-body p:last-child{margin-bottom:0}.callout-tip{border-color:#27ae60;background-color:#f0fff4}.callout-tip .callout-label{color:#27ae60}.callout-warning{border-color:#f39c12;background-color:#fffcf0}.callout-warning .callout-label{color:#f39c12}.callout-info{border-color:var(--primary);background-color:var(--primary-light)}.callout-info .callout-label{color:var(--primary)}.callout-quote{border-color:#8e44ad;background-color:#f9f0ff}.callout-quote .callout-label{color:#8e44ad}.series-nav{margin:2.5rem 0;padding:1.5rem;background-color:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius-md)}.series-nav-title{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:1rem}.series-nav-list{list-style:decimal;padding-left:1.5rem}.series-nav-item{margin-bottom:.5rem;font-size:.9rem;line-height:1.5}.series-nav-item a{color:var(--text-light)}.series-nav-item a:hover{color:var(--primary)}.series-nav-item.is-current{font-weight:700}.series-nav-current{color:var(--text)}.related-posts{margin:3rem 0 2rem;padding-top:2rem;border-top:1px solid var(--border)}.related-title{font-size:1.2rem;font-weight:700;margin-bottom:1.25rem;color:var(--text)}.related-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.related-card{border:1px solid var(--border-light);border-radius:var(--radius-md);transition:box-shadow var(--transition)}.related-card:hover{box-shadow:var(--shadow-sm)}.related-card-link{display:block;padding:1rem;color:var(--text)}.related-card-link:hover{color:var(--text)}.related-card-title{font-size:.95rem;font-weight:700;line-height:1.4;margin-bottom:.35rem}.related-card-date{font-size:.75rem;color:var(--text-muted);display:block;margin-bottom:.35rem}.related-card-excerpt{font-size:.8rem;color:var(--text-light);line-height:1.5}.post-navigation{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.5rem 0;padding-top:1.5rem;border-top:1px solid var(--border)}.post-nav-link{display:block;padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}.post-nav-link:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);color:var(--text)}.post-nav-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.35rem}.post-nav-title{font-size:.9rem;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-nav-next{text-align:right;grid-column:2}.pagination{margin:2.5rem 0;text-align:center}.pagination-list{display:flex;justify-content:center;align-items:center;gap:.375rem}.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-light);background-color:var(--bg-white);transition:border-color var(--transition),background-color var(--transition),color var(--transition)}.pagination-link:hover{border-color:var(--primary);color:var(--primary)}.pagination-link.is-active{background-color:var(--primary);border-color:var(--primary);color:#fff}.adsense-container{margin:1.5rem 0;text-align:center}.site-footer{margin-top:auto;background-color:var(--footer-bg);color:var(--footer-text);padding:2.5rem 0}.footer-inner{text-align:center}.footer-nav{margin-bottom:1.5rem}.footer-nav-list{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem 1.5rem}.footer-nav-link{font-size:.85rem;color:var(--footer-text);opacity:.8;transition:opacity var(--transition)}.footer-nav-link:hover{opacity:1;color:#fff}.footer-brand-name{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.footer-copyright{font-size:.8rem;opacity:.7;margin-bottom:.5rem}.footer-disclaimer{font-size:.75rem;opacity:.5;max-width:500px;margin:0 auto;line-height:1.5}.error-page{display:flex;justify-content:center;align-items:center;min-height:60vh;text-align:center}.error-code{font-size:5rem;font-weight:700;color:var(--primary);line-height:1;margin-bottom:.5rem}.error-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.error-description{font-size:.95rem;color:var(--text-light);line-height:1.7;margin-bottom:2rem}.error-home-link{display:inline-block;padding:.75rem 2rem;background-color:var(--primary);color:#fff;border-radius:var(--radius-md);font-weight:700;transition:background-color var(--transition)}.error-home-link:hover{background-color:var(--primary-dark);color:#fff}.contact-form{max-width:600px}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.35rem;color:var(--text)}.form-group input,.form-group textarea{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-white);color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,158,243,.15)}.form-group textarea{resize:vertical;min-height:120px}.btn-submit{display:inline-block;padding:.75rem 2.5rem;background-color:var(--primary);color:#fff;font-size:1rem;font-weight:700;font-family:inherit;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition)}.btn-submit:hover{background-color:var(--primary-dark)}.no-posts{text-align:center;color:var(--text-muted);padding:3rem 0;font-size:1rem}@media(max-width:1024px){.category-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:1fr}.toc-sidebar{position:relative;top:0;max-height:none;order:-1;margin-bottom:1.5rem}.toc-toggle[aria-expanded=true]~.toc-content{max-height:400px;overflow-y:auto}}@media(max-width:768px){:root{--header-height:56px}.container{padding:0 1rem}.menu-toggle{display:flex}.main-nav{position:fixed;top:var(--header-height);left:0;right:0;background-color:var(--bg-white);border-bottom:1px solid var(--border);padding:1rem;transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .3s ease,opacity .3s ease;z-index:99;box-shadow:var(--shadow-md)}.main-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.main-nav .nav-list{flex-direction:column;gap:0}.nav-link{padding:.75rem 1rem;font-size:.95rem;border-radius:var(--radius-sm)}.hero{padding:2.5rem 0}.hero-title{font-size:1.5rem}.hero-description{font-size:.95rem}.post-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:1fr;gap:.75rem}.category-card{flex-direction:row;text-align:left;padding:1.25rem;gap:1rem}.category-card-icon{margin-bottom:0;flex-shrink:0}.article-title{font-size:1.4rem}.article-meta{font-size:.8rem}.article-body h2{font-size:1.2rem}.article-body h3{font-size:1.05rem}.post-navigation{grid-template-columns:1fr}.post-nav-next{text-align:left;grid-column:1}.section{padding:2rem 0}.section-heading{font-size:1.25rem}.section-title{font-size:1.35rem}.footer-nav-list{flex-direction:column;gap:.75rem}.faq-section{padding:1.25rem}}.skip-link{position:absolute;top:-100%;left:0;padding:.75rem 1.5rem;background-color:var(--primary);color:#fff;font-weight:700;z-index:200;transition:top .2s}.skip-link:focus{top:0;color:#fff}.article-featured-image{margin:-2rem -1.5rem 2rem;aspect-ratio:16/9;overflow:hidden;border-radius:0 0 var(--radius-lg)var(--radius-lg)}.article-featured-image img{width:100%;height:100%;object-fit:cover}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:44px;height:44px;background-color:var(--primary);color:#fff;border:none;border-radius:50%;cursor:pointer;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,background-color var(--transition);z-index:50}.back-to-top.is-visible{opacity:1;visibility:visible}.back-to-top:hover{background-color:var(--primary-dark)}.back-to-top svg{width:20px;height:20px}.reading-progress{position:fixed;top:var(--header-height);left:0;width:0%;height:3px;background:linear-gradient(90deg,var(--primary) 0%,var(--accent) 100%);z-index:101;transition:width .1s linear}:target{scroll-margin-top:calc(var(--header-height) + 1rem)}@media print{*,*::before,*::after{background:0 0!important;color:#000!important;box-shadow:none!important}body{font-size:12pt;line-height:1.6}.site-header,.site-footer,.menu-toggle,.main-nav,.toc-sidebar,.adsense-container,.post-navigation,.related-posts,.series-nav,.pagination,.breadcrumb{display:none!important}.article-layout{display:block}.article{max-width:100%}.article-title{font-size:18pt}.article-body a{text-decoration:underline}.article-body a[href^=http]::after{content:" (" attr(href)")";font-size:.8em;color:#555}.article-body img{max-width:400px}.article-body pre{border:1px solid #ccc;page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}}