:root{--paper:#f6f7f5;--sheet:#fff;--ink:#1e2a30;--ink-sub:#56646b;--line:#cbd3d6;--line-strong:#8e9ca2;--ai:#24557a;--ai-deep:#183d59;--wood:#b98b57;--wood-pale:#f1e7da;--font:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", YuGothic, Meiryo, system-ui, sans-serif;--step--1:.8125rem;--step-0:1.0625rem;--step-1:1.25rem;--step-2:1.5625rem;--step-3:clamp(1.75rem, 5.2vw, 2.4rem);--measure:42rem;font-family:var(--font);color:var(--ink);background:var(--paper);overflow-wrap:anywhere;line-break:strict;color-scheme:light;-webkit-text-size-adjust:100%;font-size:100%;line-height:1.9}*{box-sizing:border-box}body{font-size:var(--step-0);margin:0}.page{max-width:var(--measure);margin:0 auto;padding:0 1.25rem}img{max-width:100%;height:auto}a{color:var(--ai);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--ai-deep);text-decoration-thickness:2px}a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--wood);outline-offset:3px;border-radius:2px}h1,h2,h3{font-feature-settings:"palt";letter-spacing:.01em;text-wrap:balance;line-height:1.45}h1{font-size:var(--step-3);margin:0 0 1rem;font-weight:800}h2{font-size:var(--step-2);font-weight:700}h3{font-size:var(--step-1);font-weight:700}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--sheet);border:1px solid var(--ink);padding:.5rem .75rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding:1.5rem 0 1rem;display:flex}.site-title{color:var(--ink);font-feature-settings:"palt";align-items:center;gap:.6rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:inline-flex}.site-title:hover{color:var(--ink)}.site-title-mark{color:var(--ink);flex:none}nav{gap:1.25rem;font-size:.9rem;display:flex}nav a{color:var(--ink-sub);text-decoration:none}nav a:hover{color:var(--ink);text-decoration:underline}main{min-height:55vh;padding:2.75rem 0 3.5rem}.intro{margin-bottom:2.75rem}.intro p{color:var(--ink-sub);max-width:36em;margin:0}.schedule{background:var(--sheet);border:1px solid var(--line);border-top:4px solid var(--ink);margin:0 0 3.25rem;padding:1.25rem 1.25rem 1rem}.schedule-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.schedule-head h2{font-size:var(--step-1);margin:0}.schedule-head p{color:var(--ink-sub);margin:0;font-size:.9rem}.schedule-head strong{color:var(--ink);background:var(--wood-pale);margin-left:.25rem;padding:.05rem .4rem}.schedule-list{grid-template-columns:repeat(6,minmax(0,1fr));margin:1.5rem 0 .75rem;padding:0;list-style:none;display:grid}.milestone{text-align:center;justify-items:center;gap:.35rem;display:grid;position:relative}.milestone:before{content:"";background:var(--line);width:100%;height:2px;position:absolute;top:calc(2.4rem - 1px);left:-50%}.milestone:first-child:before{display:none}.milestone.is-done:before,.milestone.is-next:before{background:var(--wood)}.milestone.is-next:before{background:linear-gradient(to right, var(--wood) 50%, var(--line) 50%)}.milestone-date{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1.05rem;font-weight:700;line-height:1.6rem}.milestone-dot{z-index:1;background:var(--sheet);border:2px solid var(--line-strong);border-radius:50%;width:.9rem;height:.9rem;position:relative}.milestone-label{font-size:var(--step--1);color:var(--ink-sub);font-weight:600}.milestone.is-done .milestone-dot{background:var(--wood);border-color:var(--wood)}.milestone.is-done .milestone-date{color:var(--ink-sub)}.milestone.is-next .milestone-dot{border:3px solid var(--ai);background:var(--sheet);width:1.15rem;height:1.15rem;margin:-.125rem 0}.milestone.is-next .milestone-date,.milestone.is-next .milestone-label{color:var(--ai)}.milestone.is-later .milestone-date{color:var(--ink-sub);font-weight:500}.schedule-note{border-top:1px dashed var(--line);font-size:var(--step--1);color:var(--ink-sub);margin:.5rem 0 0;padding-top:.6rem}.posts>h2{border-bottom:1px solid var(--line-strong);font-size:var(--step-1);margin:0 0 .25rem;padding-bottom:.5rem}.post-list,.tags{margin:0;padding:0;list-style:none}.post-list>li{border-bottom:1px solid var(--line)}.post-item{padding:1.5rem 0 1.6rem}.post-item h3{font-size:var(--step-1);margin:.35rem 0 .5rem}.post-item h3 a{color:var(--ink);text-decoration:none}.post-item h3 a:hover{color:var(--ai);text-decoration:underline}.post-item-meta{font-size:var(--step--1);color:var(--ink-sub);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;margin:0;display:flex}.post-item-desc{color:var(--ink-sub);margin:0 0 .6rem;font-size:.95rem;line-height:1.8}.stage-chip{border:1px solid var(--wood);color:#7a5631;background:var(--wood-pale);padding:0 .5rem;font-size:.75rem;line-height:1.6}.tags{font-size:var(--step--1);flex-wrap:wrap;gap:.25rem .9rem;display:flex}.draft-label{color:#8a3d1a;font-size:var(--step--1);font-weight:700}.empty-state{border:1px dashed var(--line-strong);color:var(--ink-sub);margin:1.5rem 0;padding:1.25rem}.article-header{margin-bottom:2.75rem}.title-block{border-top:2px solid var(--ink);border-left:1px solid var(--line-strong);background:var(--sheet);flex-wrap:wrap;margin:1.5rem 0 0;display:flex}.title-block>div{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);flex:9rem;padding:.45rem .75rem .55rem}.title-block .title-block-wide{flex-basis:100%}.title-block dt{color:var(--ink-sub);font-size:.72rem;line-height:1.5}.title-block dd{font-variant-numeric:tabular-nums;margin:0;font-size:.92rem;font-weight:600;line-height:1.6}.title-block .tags{font-weight:400}.ad-notice{font-size:var(--step--1);color:var(--ink-sub);margin:.75rem 0 0}.prose{line-height:1.95}.prose>:first-child{margin-top:0}.prose p{margin:0 0 1.35em}.prose h2{border-left:4px solid var(--ink);font-size:var(--step-2);margin:3rem 0 1.1rem;padding:.15rem 0 .15rem .85rem}.prose h3{border-bottom:1px dashed var(--line-strong);margin:2.25rem 0 .75rem;padding-bottom:.3rem}.prose ul,.prose ol{margin:0 0 1.35em;padding-left:1.4em}.prose li{margin:.3em 0}.prose li::marker{color:var(--ink-sub)}.prose strong{background:linear-gradient(transparent 62%, var(--wood-pale) 62%);font-weight:700}.prose pre{background:var(--sheet);border:1px solid var(--line);padding:1rem;overflow-x:auto}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.prose blockquote{background:var(--sheet);border-left:3px solid var(--wood);color:var(--ink-sub);margin:1.5rem 0;padding:.75rem 1rem}.prose blockquote>:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}.table-scroll{background:var(--sheet);border:1px solid var(--line-strong);-webkit-overflow-scrolling:touch;max-width:100%;margin:1.75rem 0;overflow-x:auto}.table-scroll table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.95rem;line-height:1.7}.table-scroll th,.table-scroll td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:7.5rem;padding:.6rem .9rem}.table-scroll thead th{background:var(--ink);color:var(--sheet);border-bottom:0;font-weight:700}.table-scroll tbody tr:last-child td{border-bottom:0}.table-scroll tbody td:first-child{color:var(--ink-sub);white-space:nowrap;font-weight:600}.cta{background:var(--sheet);border:1px solid var(--line-strong);margin:3rem 0 0;padding:1.25rem 1.25rem 1.4rem}.cta-label{border:1px solid var(--line-strong);color:var(--ink-sub);margin:0 0 .5rem;padding:0 .45rem;font-size:.72rem;line-height:1.6;display:inline-block}.cta-note{margin:0 0 1rem;font-size:.95rem}.button{color:#fff;background:var(--ai);border-radius:3px;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;display:inline-block}.button:hover{color:#fff;background:var(--ai-deep)}.prose-page h1{margin-bottom:1.75rem}.back-link{border-top:1px solid var(--line);margin:3rem 0 0;padding-top:1.25rem;font-size:.95rem}.site-footer{border-top:2px solid var(--ink);font-size:var(--step--1);color:var(--ink-sub);padding:1.75rem 0 2.5rem}.site-footer-lead{color:var(--ink);margin:0 0 .75rem}.site-footer-links{flex-wrap:wrap;gap:.4rem 1.25rem;margin-bottom:1rem;display:flex}.site-footer-links a{color:var(--ink-sub)}@media (width<=34rem){:root{--step-0:1rem;--step-2:1.375rem}main{padding-top:2rem}.schedule{padding:1rem .75rem .85rem}.schedule-list{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:1.25rem}.milestone:nth-child(4):before{display:none}.milestone-date{font-size:.95rem}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header nav,.cta,.site-footer-links{display:none}body{background:#fff}}
