.article-page{--article-main-width: 720px;--article-side-width: 280px;--article-gap: 64px;padding-top:var(--space-5)}.article-shell{max-width:calc(var(--article-main-width) + var(--article-gap) + var(--article-side-width));margin-inline:auto}.reading-progress{position:fixed;z-index:99;top:var(--header-height);right:0;left:0;height:3px;pointer-events:none}.reading-progress__bar{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--color-primary),#5b8cff);transform:scaleX(var(--reading-progress, 0));transform-origin:0 50%}.article-header{display:grid;grid-template-columns:minmax(0,var(--article-main-width)) var(--article-side-width);align-items:end;gap:var(--article-gap);margin-top:var(--space-6);padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border)}.article-header__copy{min-width:0}.article-header__title{margin-top:var(--space-5);color:var(--color-heading);font-size:clamp(1.75rem,3vw,2.375rem);font-weight:var(--font-weight-black);line-height:1.4;letter-spacing:.01em}.article-header__title .title-sub{margin-top:var(--space-2);font-size:.56em;font-weight:var(--font-weight-bold);line-height:1.55}.article-header__lead{margin-top:var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.95}.article-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);margin-top:var(--space-6);color:var(--color-text-muted);font-size:var(--font-size-sm)}.article-header__author{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;color:var(--color-heading);font-weight:var(--font-weight-bold)}.article-header__author:hover span{text-decoration:underline;text-underline-offset:3px}.article-editor-avatar img{flex-shrink:0;border:1px solid var(--color-border);border-radius:50%;background:var(--color-primary-lighter);object-fit:cover;object-position:50% 12%}.article-editor-avatar--28 img{width:28px;height:28px}.article-editor-avatar--56 img{width:56px;height:56px}.article-header__dates{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-4);margin:0}.article-header__dates>div{display:inline-flex;align-items:center;gap:var(--space-1)}.article-header__dates dt{display:inline-flex;align-items:center;color:var(--color-text-muted)}.article-header__dates dd{margin:0;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.article-header__advertising-disclosure{margin-top:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.article-header__advertising-disclosure a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px}.thumbnail.article-header__visual{width:100%;height:auto;aspect-ratio:16 / 10;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.article-layout{display:grid;grid-template-columns:minmax(0,var(--article-main-width)) var(--article-side-width);gap:var(--article-gap);align-items:start;margin-top:var(--space-10)}.article-main{display:flex;min-width:0;flex-direction:column;gap:var(--space-12)}.article-sidebar{position:sticky;top:calc(var(--header-height) + var(--space-8));max-height:calc(100vh - var(--header-height) - var(--space-16));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.article-toc--mobile{display:none}.article-body{color:var(--color-text);font-size:1.0625rem;line-height:1.95;letter-spacing:.02em;overflow-wrap:anywhere;counter-reset:article-h2}.article-body>:first-child{margin-top:0}.article-body p{margin:1.25em 0}.article-body h2{display:flex;align-items:baseline;gap:var(--space-3);margin:var(--space-16) 0 var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border);color:var(--color-heading);font-size:clamp(1.375rem,2.2vw,1.625rem);line-height:1.5;counter-increment:article-h2}.article-body h2:before{flex-shrink:0;color:var(--color-primary);content:counter(article-h2,decimal-leading-zero);font-size:.75em;font-variant-numeric:tabular-nums;font-weight:var(--font-weight-black);letter-spacing:.04em}.article-body h3{position:relative;margin:var(--space-10) 0 var(--space-3);padding-left:var(--space-4);color:var(--color-heading);font-size:var(--font-size-lg);line-height:1.55}.article-body h3:before{position:absolute;top:.32em;bottom:.32em;left:0;width:4px;border-radius:4px;background:var(--color-primary);content:""}.article-body h2+p,.article-body h3+p{margin-top:0}.article-body a{color:var(--color-link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-link) 40%,transparent);text-decoration-thickness:1px;text-underline-offset:.25em;transition:text-decoration-color var(--transition-fast)}.article-body a:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}.article-body strong{color:var(--color-heading);font-weight:var(--font-weight-bold);background:linear-gradient(transparent 62%,var(--color-accent-yellow-soft) 62%)}.article-body ul,.article-body ol{display:flex;flex-direction:column;gap:var(--space-3);margin:1.5em 0;padding:0}.article-body li{position:relative;line-height:1.85}.article-body ul>li{padding-left:1.4em}.article-body ul>li:before{position:absolute;top:.78em;left:.35em;width:6px;height:6px;border-radius:50%;background:var(--color-primary);content:""}.article-body ol{counter-reset:article-step}.article-body ol>li{min-height:2em;padding-left:2.6em;counter-increment:article-step}.article-body ol>li:before{position:absolute;top:.1em;left:0;display:inline-flex;width:1.75em;height:1.75em;align-items:center;justify-content:center;border-radius:50%;background:var(--color-heading);color:#fff;content:counter(article-step);font-size:.875em;font-variant-numeric:tabular-nums;font-weight:var(--font-weight-bold);line-height:1}.article-body ol>li:not(:last-child):after{position:absolute;top:2.05em;bottom:-.65em;left:calc(.875em * 1.75 / 2 - 1px);width:2px;border-radius:2px;background:var(--color-border);content:""}.article-body li>ul,.article-body li>ol{margin:var(--space-2) 0 0}.article-body table{display:block;width:100%;max-width:100%;margin:var(--space-8) 0;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;background:var(--color-surface);font-size:var(--font-size-sm);line-height:1.7;letter-spacing:.01em;-webkit-overflow-scrolling:touch}.article-table__hint{display:none}.article-body table:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 45%,transparent);outline-offset:3px}.article-body thead,.article-body tbody{display:table;width:100%;min-width:34rem;table-layout:fixed}.article-body .article-data-table--two-columns thead,.article-body .article-data-table--two-columns tbody{min-width:0}.article-body th,.article-body td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.article-body tbody tr:last-child th,.article-body tbody tr:last-child td{border-bottom:0}.article-body thead th:first-child,.article-body tbody tr:first-child>:first-child{width:28%}.article-body table:has(thead th:nth-child(3)) thead th:first-child,.article-body table:has(thead th:nth-child(3)) tbody tr:first-child>:first-child{width:34%}.article-body thead th{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em}.article-body tbody th{color:var(--color-heading);font-weight:var(--font-weight-bold)}.article-body tbody tr:hover th,.article-body tbody tr:hover td{background:color-mix(in srgb,var(--color-primary-lighter) 50%,transparent)}.article-body .article-data-label{display:none}.article-body .article-data-value{min-width:0}.article-body .article-caution{position:relative;margin:var(--space-8) 0;padding:var(--space-5) var(--space-6) var(--space-5) calc(var(--space-6) + 28px);border:1px solid color-mix(in srgb,var(--color-accent-orange) 30%,transparent);border-radius:var(--radius-md);background:var(--color-accent-orange-bg);color:var(--color-text);font-size:var(--font-size-base);line-height:1.85}.article-body .article-caution:before{position:absolute;top:calc(var(--space-5) + 2px);left:var(--space-5);width:20px;height:20px;background:var(--color-accent-orange);content:"";-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72ZM120 104a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0Zm8 88a12 12 0 1 1 12-12a12 12 0 0 1-12 12Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72ZM120 104a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0Zm8 88a12 12 0 1 1 12-12a12 12 0 0 1-12 12Z'/%3E%3C/svg%3E") center / contain no-repeat}.article-caution__label{display:block;margin-bottom:var(--space-1);color:#8a4b00;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.04em}.article-body .article-caution p{margin:0}.article-body .article-caution p+p{margin-top:var(--space-2)}.article-body .article-caution strong{background:none}.article-body .article-dialogue{display:flex;flex-direction:column;gap:var(--space-5);margin:var(--space-10) 0;font-size:var(--font-size-base);line-height:1.9}.article-body h2+.article-dialogue{margin-top:var(--space-6)}.article-body>.article-dialogue:first-child{margin-top:0;margin-bottom:var(--space-12)}.dialogue-turn{display:grid;align-items:end;gap:var(--space-4);width:min(94%,680px)}.dialogue-turn--komari{grid-template-columns:64px minmax(0,1fr);align-self:flex-start}.dialogue-turn--hakase{grid-template-columns:minmax(0,1fr) 72px;align-self:flex-end}.dialogue-turn__portrait-picture{display:block;width:100%}.dialogue-turn__portrait{position:relative;z-index:1;display:block;width:100%;height:96px;object-fit:contain;object-position:center bottom;-webkit-user-select:none;user-select:none}.dialogue-turn--hakase .dialogue-turn__portrait{height:104px}.dialogue-turn__bubble{--dialogue-bubble-bg: var(--color-surface);--dialogue-bubble-border: var(--color-border);position:relative;padding:var(--space-4) var(--space-6) var(--space-5);border:1px solid var(--dialogue-bubble-border);border-radius:var(--radius-lg);background:var(--dialogue-bubble-bg);box-shadow:var(--shadow-sm)}.dialogue-turn--komari .dialogue-turn__bubble{border-bottom-left-radius:var(--radius-xs)}.dialogue-turn--hakase .dialogue-turn__bubble{--dialogue-bubble-bg: #f3f7ff;--dialogue-bubble-border: var(--color-primary-light);border-bottom-right-radius:var(--radius-xs)}.dialogue-turn__speaker{display:block;margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.06em}.dialogue-turn--hakase .dialogue-turn__speaker{color:var(--color-primary-active)}.article-body .dialogue-turn__bubble p{margin:0}.article-body .dialogue-turn__bubble p+p{margin-top:var(--space-2)}.article-body code{padding:.12em .4em;border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface-muted);font-family:var(--font-family-mono);font-size:.86em;letter-spacing:0}.article-body pre{width:100%;max-width:100%;margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);overflow-x:auto;border-radius:var(--radius-md);background:var(--color-ink);color:#e2e8f4;font-size:var(--font-size-sm);line-height:1.7;-webkit-overflow-scrolling:touch}.article-body pre code{padding:0;border:0;background:transparent;color:inherit;white-space:pre-wrap}.article-sources{padding:var(--space-6) var(--space-6) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.article-sources h2{color:var(--color-heading);font-size:var(--font-size-base);line-height:1.5}.article-sources>p{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.7}.article-sources ol{display:flex;flex-direction:column;margin-top:var(--space-4);counter-reset:article-source}.article-sources li{border-top:1px solid var(--color-border);counter-increment:article-source}.article-sources a{position:relative;display:grid;grid-template-columns:1.75rem minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:var(--space-2);min-height:52px;padding:var(--space-3) var(--space-1);color:var(--color-link)}.article-sources a:before{grid-row:1 / 3;color:var(--color-text-muted);content:"[" counter(article-source) "]";font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.article-sources__label{overflow-wrap:anywhere;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);line-height:1.55}.article-sources a:hover .article-sources__label{text-decoration:underline;text-underline-offset:3px}.article-sources__hostname{grid-column:2;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.4}.article-sources__icon{grid-row:1 / 3;grid-column:3;color:var(--color-text-muted)}.article-editor{display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--space-5);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface-muted)}.article-editor__label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em}.article-editor__name{margin-top:2px;color:var(--color-heading);font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.article-editor__desc{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.85}.article-editor__link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;margin-top:var(--space-1);color:var(--color-primary-active);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.article-editor__link:hover{text-decoration:underline;text-underline-offset:3px}.article-related{margin-top:var(--space-20);padding-top:var(--space-12);border-top:1px solid var(--color-border)}.article-related__header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3) var(--space-6);margin-bottom:var(--space-6)}.article-related h2{font-size:clamp(1.375rem,2.2vw,1.75rem)}.article-related__category{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;color:var(--color-primary-active);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.article-related__category:hover{text-decoration:underline;text-underline-offset:3px}.article-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}@media(max-width:1120px){.article-page{--article-side-width: 240px;--article-gap: 48px}}@media(max-width:1040px){.article-shell{max-width:var(--article-main-width)}.article-header,.article-layout{grid-template-columns:minmax(0,1fr)}.article-header{gap:var(--space-6)}.thumbnail.article-header__visual{aspect-ratio:2 / 1}.article-toc--mobile{display:block}.article-sidebar{display:none}.article-related__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.article-page{padding-top:var(--space-2)}.article-header{margin-top:var(--space-3);padding-bottom:var(--space-6)}.article-header__title{margin-top:var(--space-4);font-size:clamp(1.4375rem,6.4vw,1.75rem);line-height:1.45}.article-header__title .title-sub{font-size:.66em}.article-header__lead{margin-top:var(--space-4);font-size:var(--font-size-sm);line-height:1.9}.article-header__meta{margin-top:var(--space-4);font-size:var(--font-size-xs)}.thumbnail.article-header__visual{border-radius:var(--radius-md);box-shadow:none}.article-layout{margin-top:var(--space-6)}.article-main{gap:var(--space-10)}.article-body{font-size:var(--font-size-base);line-height:1.9;letter-spacing:.01em}.article-body h2{margin-top:var(--space-12);padding-top:var(--space-5);font-size:1.3125rem}.article-body h3{margin-top:var(--space-8);font-size:var(--font-size-md)}.article-table__hint{display:flex;justify-content:flex-end;margin:var(--space-6) 0 var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.02em}.article-table__hint+table.article-data-table{margin-top:0}.article-body thead,.article-body tbody{min-width:30rem}.article-body th,.article-body td{padding:var(--space-3)}.article-body .article-caution{padding:var(--space-4) var(--space-4) var(--space-4) calc(var(--space-4) + 26px);font-size:var(--font-size-sm)}.article-body .article-caution:before{top:calc(var(--space-4) + 1px);left:var(--space-4);width:18px;height:18px}.article-body .article-dialogue{gap:var(--space-3);margin-block:var(--space-8);font-size:var(--font-size-sm);line-height:1.85}.dialogue-turn{width:100%;gap:var(--space-2)}.dialogue-turn--komari{grid-template-columns:48px minmax(0,1fr)}.dialogue-turn--hakase{grid-template-columns:minmax(0,1fr) 52px}.dialogue-turn__portrait,.dialogue-turn--hakase .dialogue-turn__portrait{height:76px}.dialogue-turn__bubble{padding:var(--space-3) var(--space-4) var(--space-4)}.article-body>.article-dialogue:first-child{margin-bottom:var(--space-10)}.article-sources{padding:var(--space-5) var(--space-4) var(--space-4)}.article-editor{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-5)}.article-related{margin-top:var(--space-16);padding-top:var(--space-10)}.article-related__grid{grid-template-columns:1fr;gap:var(--space-3)}.article-body .article-data-table--two-columns thead,.article-body .article-data-table--two-columns tbody{min-width:0}.article-body .article-data-table--two-columns thead th:first-child,.article-body .article-data-table--two-columns tbody tr:first-child>:first-child{width:40%}}
