:root{--paper:#f5f2ea;--paper-deep:#ece6d8;--ink:#22324e;--ink-soft:#4a5670;--rule:rgba(34,50,78,.28);--rule-strong:rgba(34,50,78,.55);--accent:#c7362b;--code-bg:#20293d;--code-ink:#e8e4d8;--serif:"Shippori Mincho","Noto Serif JP",serif;--sans:"Noto Sans JP",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:.02em;font-size:16px;line-height:1.9}[data-lang=ja] .en,[data-lang=en] .ja{display:none}html[data-lang=en] body{line-height:1.7}a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.wrap{max-width:860px;margin:0 auto;padding:0 24px}header.top{border-bottom:3px double var(--rule-strong);background:var(--paper);z-index:50;position:sticky;top:0}.top-inner{justify-content:space-between;align-items:center;gap:16px;max-width:980px;margin:0 auto;padding:10px 24px;display:flex}.doc-no{font-family:var(--serif);letter-spacing:.18em;color:var(--ink-soft);font-size:13px}.lang-toggle{border:1px solid var(--rule-strong);font-family:var(--mono);font-size:12px;display:flex}.lang-toggle button{-webkit-appearance:none;appearance:none;color:var(--ink-soft);cursor:pointer;letter-spacing:.1em;font:inherit;background:0 0;border:0;padding:6px 14px}.lang-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.hero{border-bottom:1px solid var(--rule);padding:72px 0 56px}.hero-grid{grid-template-columns:180px 1fr;align-items:start;gap:40px;display:grid}@media (max-width:640px){.hero-grid{text-align:center;grid-template-columns:1fr;justify-items:center}}.hero .eyebrow{font-family:var(--serif);letter-spacing:.3em;color:var(--ink-soft);margin-bottom:14px;font-size:14px}.hero h1{font-family:var(--serif);letter-spacing:.04em;font-size:max(30px,min(5.2vw,46px));font-weight:800;line-height:1.45;position:relative}.hero p.lede{max-width:36em;color:var(--ink-soft);margin-top:22px}.hero p.lede strong{color:var(--ink)}.stamp{border:5px solid var(--accent);width:150px;height:150px;color:var(--accent);font-family:var(--serif);letter-spacing:.08em;text-align:center;box-shadow:inset 0 0 0 2px var(--paper), inset 0 0 0 4px var(--accent);user-select:none;border-radius:50%;justify-content:center;align-items:center;font-size:34px;font-weight:800;line-height:1.2;animation:.45s cubic-bezier(.2,1.6,.4,1) .3s both stamp;display:flex;transform:rotate(-7deg)}@keyframes stamp{0%{opacity:0;transform:rotate(-7deg)scale(2.4)}to{opacity:1;transform:rotate(-7deg)scale(1)}}.countdown{border:1px solid var(--rule-strong);flex-wrap:wrap;align-items:stretch;margin-top:36px;display:flex}.countdown .cd-label{color:var(--ink-soft);border-right:1px solid var(--rule);flex:260px;align-items:center;padding:14px 18px;font-size:13px;display:flex}.countdown .cd-num{font-family:var(--serif);align-items:baseline;gap:8px;padding:8px 22px;display:flex}.countdown .cd-num b{color:var(--accent);letter-spacing:.04em;font-size:44px;font-weight:800}.countdown .cd-num span{color:var(--ink-soft);font-size:13px}.hero-cta{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.btn{border:1px solid var(--ink);letter-spacing:.06em;padding:10px 22px;font-size:14px;text-decoration:none;display:inline-block}.btn.primary{background:var(--ink);color:var(--paper)}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary:hover{background:var(--accent);color:#fff;border-color:var(--accent)}section{border-bottom:1px solid var(--rule);padding:64px 0}.art-label{font-family:var(--serif);letter-spacing:.28em;color:var(--accent);margin-bottom:10px;font-size:14px}h2{font-family:var(--serif);letter-spacing:.05em;margin-bottom:28px;font-size:max(24px,min(3.4vw,32px));font-weight:700;line-height:1.5}h3{font-family:var(--serif);border-left:4px solid var(--accent);margin:36px 0 14px;padding-left:12px;font-size:19px;font-weight:700;line-height:1.6}p{max-width:44em;margin:0 0 1.2em}p:last-child{margin-bottom:0}strong{font-weight:700}em{background:linear-gradient(transparent 62%,rgba(199,54,43,.22) 62%);font-style:normal}ul.plain{margin:0 0 1.2em;list-style:none}ul.plain li{border-bottom:1px dotted var(--rule);max-width:44em;padding:8px 0 8px 26px;position:relative}ul.plain li:before{content:"—";color:var(--accent);position:absolute;left:0}ol.findings{max-width:44em;margin:0 0 1.2em 1.4em}ol.findings li{margin-bottom:.5em}pre{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);border-left:4px solid var(--accent);margin:18px 0 26px;padding:20px 22px;font-size:12.5px;line-height:1.7;overflow-x:auto}code{font-family:var(--mono)}p code,li code{background:var(--paper-deep);border:1px solid var(--rule);padding:1px 6px;font-size:.88em}.code-cap{letter-spacing:.14em;color:var(--ink-soft);font-size:12px;font-family:var(--mono);margin:26px 0 -12px}.code-cap b{color:var(--accent);font-weight:500}figure.shot{margin:26px 0 30px}figure.shot img{border:1px solid var(--rule-strong);background:#fff;width:100%;height:auto;display:block}figure.shot figcaption{color:var(--ink-soft);max-width:46em;padding:14px 4px 0;font-size:14px;line-height:1.85}figure.shot figcaption strong{color:var(--ink)}figure.shot figcaption code{background:var(--paper-deep);border:1px solid var(--rule);word-break:break-word;padding:1px 5px;font-size:.85em}pre .hl{color:#f0a898}pre .cm{color:#8b95ad}.timeline{border-left:2px solid var(--rule-strong);margin:8px 0 20px}.timeline .tl{max-width:44em;padding:14px 0 14px 28px;position:relative}.timeline .tl:before{content:"";background:var(--paper);border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:26px;left:-6px}.timeline .tl .yr{font-family:var(--serif);letter-spacing:.06em;margin-bottom:2px;font-size:17px;font-weight:800;display:block}.timeline .tl p{color:var(--ink-soft);margin:0;font-size:15px}.timeline .tl p strong{color:var(--ink)}.cases{gap:22px;margin-top:8px;display:grid}.case{border:1px solid var(--rule-strong);background:#fbf9f3;padding:24px 26px;position:relative}.case:before{content:attr(data-no);background:var(--ink);color:var(--paper);font-family:var(--mono);letter-spacing:.2em;padding:5px 12px;font-size:11px;position:absolute;top:-1px;right:-1px}.case h3{border:0;margin:0 0 12px;padding:0;font-size:18px}.case p{color:var(--ink-soft);font-size:15px}.case p strong{color:var(--ink)}blockquote{border-left:4px solid var(--accent);font-family:var(--serif);background:#fbf9f3;max-width:42em;margin:22px 0;padding:18px 24px;font-size:16.5px}blockquote footer{font-family:var(--sans);color:var(--ink-soft);margin-top:8px;font-size:12.5px}.tbl-scroll{margin:12px 0 8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px;font-size:14.5px}th,td{border:1px solid var(--rule-strong);text-align:left;vertical-align:top;padding:11px 14px}th{background:var(--ink);color:var(--paper);letter-spacing:.06em;font-weight:500}td:nth-child(2){white-space:nowrap;font-weight:700}tbody tr:nth-child(2n){background:#fbf9f3}details{border:1px solid var(--rule-strong);background:#fbf9f3;margin-bottom:14px}summary{cursor:pointer;padding:16px 52px 16px 20px;font-size:15.5px;font-weight:700;line-height:1.6;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:"＋";color:var(--accent);font-size:20px;font-family:var(--serif);position:absolute;top:14px;right:18px}details[open] summary:after{content:"－"}details .a{border-top:1px dotted var(--rule);padding:0 20px 20px}details .a p{padding-top:14px;font-size:15px}ol.src{color:var(--ink-soft);max-width:48em;margin-left:1.6em;font-size:14px}ol.src li{margin-bottom:.7em}ol.src a{word-break:break-all}footer.site{color:var(--ink-soft);border-top:3px double var(--rule-strong);padding:44px 0 64px;font-size:13px}footer.site p{margin-bottom:.6em}.note{color:var(--ink-soft);border:1px dotted var(--rule-strong);max-width:44em;margin:14px 0;padding:12px 16px;font-size:13px}.note b{color:var(--accent)}
