.hero-illustration[data-astro-cid-ke2unyio]{display:block;width:100%;min-width:0}.hero-illustration[data-astro-cid-ke2unyio] img[data-astro-cid-ke2unyio]{display:block;width:100%;height:auto}.roadmap-page{--roadmap-rail-width: calc(var(--space-24) * 3);--roadmap-column-gap: var(--space-8);--roadmap-anchor-offset: calc(var(--header-height) + var(--space-6));--roadmap-scroll-margin: var(--space-4);--roadmap-intro-surface: var(--background);--roadmap-stage-color: var(--brand);--roadmap-stage-foreground: var(--brand-foreground);--roadmap-visual-width: clamp(18rem, 34vw, 28rem);--roadmap-number-size: var(--space-8);--roadmap-nav-number-size: var(--space-6);--roadmap-content-padding: var(--space-8);padding-block-end:var(--section-space)}.roadmap-breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-block:var(--space-6);font-size:var(--text-sm);color:var(--muted-foreground)}.roadmap-breadcrumb a{color:var(--muted-foreground);text-underline-offset:var(--space-1)}.roadmap-breadcrumb a:hover{color:var(--brand);text-decoration:underline}.roadmap-intro{display:grid;grid-template-columns:minmax(0,1fr) var(--roadmap-visual-width);align-items:center;gap:var(--space-8);padding-block:var(--space-8);background:var(--roadmap-intro-surface);color:var(--foreground)}.roadmap-intro-copy{min-width:0}.roadmap-intro h1{color:var(--foreground);max-width:var(--reading-width);margin-block:0 var(--space-4);font-size:var(--text-page);font-weight:var(--weight-bold);line-height:var(--leading-tight);text-wrap:balance}.roadmap-lead{color:var(--muted-foreground);font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:var(--reading-width)}.roadmap-facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-block-start:var(--space-4);color:var(--muted-foreground);font-size:var(--text-sm)}.roadmap-facts span+span{padding-inline-start:var(--space-4);border-inline-start:var(--line-width) solid var(--border)}.roadmap-start-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:var(--control-height);margin-block-start:var(--space-6);padding:var(--space-2) var(--space-4);background:var(--action-surface);color:var(--action-foreground);border-radius:var(--radius-xs);font-size:var(--text-sm);font-weight:var(--weight-medium);text-underline-offset:var(--space-1)}.roadmap-start-link:hover{background:var(--action-hover);text-decoration:underline}.roadmap-illustration{align-self:center;width:100%;min-width:0}.roadmap-language-note,.roadmap-intro-note{margin-block-start:var(--space-4);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--muted-foreground);max-width:var(--reading-width)}.roadmap-situations{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-6);row-gap:var(--space-2);margin-block-start:var(--space-4);font-size:var(--text-sm)}.roadmap-situations>span{color:var(--muted-foreground)}.roadmap-situations a{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--control-height);color:var(--brand);text-underline-offset:var(--space-1)}.roadmap-situations a:hover{text-decoration:underline}.roadmap-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--roadmap-rail-width);grid-template-areas:"stages sidebar";align-items:start;gap:var(--roadmap-column-gap);margin-block-start:var(--space-12)}.roadmap-sidebar{grid-area:sidebar;min-width:0}.roadmap-overview{padding:var(--space-6);background:var(--muted);border-radius:var(--radius-lg)}.roadmap-progress{padding-block-end:var(--space-6);border-block-end:var(--line-width) solid var(--border);margin-block-end:var(--space-6)}.roadmap-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.roadmap-progress-heading h2{font-size:var(--text-base);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.roadmap-progress-percent{font-size:var(--text-2xl);font-weight:var(--weight-normal);color:var(--brand);font-variant-numeric:tabular-nums}.roadmap-progress progress{display:block;appearance:none;width:100%;height:var(--space-2);margin-block:var(--space-4);border:0;border-radius:var(--radius-pill);overflow:hidden;background:var(--border);color:var(--brand)}.roadmap-progress progress::-webkit-progress-bar{background:var(--border);border-radius:var(--radius-pill)}.roadmap-progress progress::-webkit-progress-value{background:var(--brand);border-radius:var(--radius-pill)}.roadmap-progress progress::-moz-progress-bar{background:var(--brand);border-radius:var(--radius-pill)}.roadmap-progress-count{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.roadmap-storage-status{margin-block-start:var(--space-1);color:var(--muted-foreground);font-size:var(--text-xs);line-height:var(--leading-relaxed)}.roadmap-next-unchecked{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--control-height);margin-block-start:var(--space-3);color:var(--brand);font-size:var(--text-sm);line-height:var(--leading-tight);text-underline-offset:var(--space-1)}.roadmap-next-unchecked:hover{text-decoration:underline}.roadmap-progress-note{margin-block-start:var(--space-2);font-size:var(--text-xs);color:var(--muted-foreground);line-height:var(--leading-relaxed)}.roadmap-no-script{margin-block:0 var(--space-6)}.roadmap-stage-nav{scroll-margin-block-start:var(--roadmap-scroll-margin)}.roadmap-nav-heading{font-size:var(--text-base);font-weight:var(--weight-bold);margin-block-end:var(--space-1)}.roadmap-nav-description{color:var(--muted-foreground);font-size:var(--text-xs);margin-block-end:var(--space-4);line-height:var(--leading-relaxed)}.roadmap-stage-nav ol,.roadmap-tasks,.roadmap-task-links,.roadmap-supporting-guides ul{list-style:none;margin:0;padding:0}.roadmap-stage-nav ol{display:grid;gap:var(--space-1)}.roadmap-stage-nav li{position:relative;margin:0}.roadmap-stage-nav li a{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--foreground);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.roadmap-stage-nav li a:hover,.roadmap-stage-nav li a[aria-current=step]{color:var(--brand);background:var(--card)}.roadmap-nav-number{display:grid;place-items:center;flex:0 0 var(--roadmap-nav-number-size);width:var(--roadmap-nav-number-size);height:var(--roadmap-nav-number-size);border-radius:var(--radius-pill);color:var(--brand);border:var(--line-width) solid var(--border);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.roadmap-stage-nav a[aria-current=step] .roadmap-nav-number{background:var(--brand);color:var(--brand-foreground);border-color:var(--brand)}.roadmap-nav-label{flex:1;min-width:0;font-weight:var(--weight-bold)}.roadmap-nav-count{display:block;margin-block-start:var(--space-1);color:var(--muted-foreground);font-size:var(--text-xs);font-weight:var(--weight-normal)}.roadmap-nav-checked{color:var(--muted-foreground);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.roadmap-nav-extras{display:grid;justify-items:start;gap:var(--space-1);margin-block-start:var(--space-4);padding-block-start:var(--space-3);border-block-start:var(--line-width) solid var(--border)}.roadmap-nav-extras a{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--control-height);font-size:var(--text-sm);color:var(--muted-foreground);text-underline-offset:var(--space-1)}.roadmap-nav-extras a:hover{color:var(--brand);text-decoration:underline}.roadmap-supporting-guides{margin-block-start:var(--space-8);padding:var(--space-2)}.roadmap-supporting-guides h2{font-size:var(--text-base);font-weight:var(--weight-bold);margin-block-end:var(--space-4)}.roadmap-supporting-guides ul{display:grid;gap:var(--space-4)}.roadmap-supporting-guides a{display:grid;grid-template-columns:var(--space-16) minmax(0,1fr);align-items:start;gap:var(--space-3);color:var(--foreground);text-underline-offset:var(--space-1)}.roadmap-supporting-guides a:hover .roadmap-supporting-title{color:var(--brand);text-decoration:underline}.roadmap-supporting-guides img{width:var(--space-16);height:var(--space-16);object-fit:cover;border-radius:var(--radius-sm);background:var(--muted)}.roadmap-supporting-title{display:block;font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:var(--leading-relaxed);overflow-wrap:anywhere}.roadmap-supporting-guides .roadmap-link-kind{display:block;margin-block-start:var(--space-1)}.roadmap-stages{grid-area:stages;display:grid;gap:var(--space-12);min-width:0}.roadmap-stage{scroll-margin-block-start:var(--roadmap-scroll-margin)}.roadmap-stage-heading{display:grid;grid-template-columns:var(--roadmap-number-size) minmax(0,1fr);align-items:start;gap:var(--space-4);padding-block-end:var(--space-6)}.roadmap-stage-number{display:grid;place-items:center;width:var(--roadmap-number-size);height:var(--roadmap-number-size);border-radius:var(--radius-pill);background:var(--roadmap-stage-color);color:var(--roadmap-stage-foreground);font-size:var(--text-base);font-weight:var(--weight-normal);font-variant-numeric:tabular-nums}.roadmap-stage-heading h2{font-size:var(--text-section);line-height:var(--leading-tight);font-weight:var(--weight-bold);text-wrap:balance}.roadmap-stage-heading p{margin-block-start:var(--space-3);color:var(--muted-foreground);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.roadmap-tasks{position:relative;display:grid;gap:var(--space-4);padding-inline-start:calc(var(--roadmap-number-size) + var(--space-4))}.roadmap-tasks:before{content:"";position:absolute;inset-block:0;inset-inline-start:calc(var(--roadmap-number-size) / 2);border-inline-start:var(--line-width) solid var(--border)}.roadmap-task{position:relative;scroll-margin-block-start:var(--roadmap-scroll-margin);padding:var(--space-6);background:var(--card);border:var(--line-width) solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.roadmap-task:before{content:"";position:absolute;inset-block-start:var(--space-8);inset-inline-start:calc((var(--roadmap-number-size) / 2 + var(--space-4) + var(--space-1)) * -1);width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:var(--background);border:var(--line-width) solid var(--brand)}.roadmap-task[data-checked=true]:before{background:var(--brand)}.roadmap-task:target{border-color:var(--brand);outline:var(--line-width) solid var(--brand);outline-offset:var(--space-1)}.roadmap-task-heading{display:flex;align-items:flex-start;gap:var(--space-4)}.roadmap-task h3{flex:1;min-width:0;padding-block-start:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:var(--leading-tight);text-wrap:pretty}.roadmap-task-check{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding-inline:var(--space-2);margin-block-start:calc(var(--space-2) * -1);margin-inline-end:calc(var(--space-2) * -1);color:var(--muted-foreground);font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-xs)}.roadmap-task-check:hover{color:var(--foreground);background:var(--muted)}.roadmap-task-check input{appearance:auto;flex:0 0 auto;width:var(--space-6);height:var(--space-6);margin:0;accent-color:var(--brand);cursor:pointer}.roadmap-task-check input:focus-visible{outline:calc(var(--line-width) * 2) solid var(--ring);outline-offset:var(--space-1)}.roadmap-task[data-checked=true] .roadmap-task-check{color:var(--brand)}.roadmap-task-toggle{display:inline-flex;align-items:center;min-height:var(--control-height);margin-block-start:var(--space-1);padding-inline:var(--space-2);margin-inline-start:calc(var(--space-2) * -1);border-radius:var(--radius-xs);color:var(--brand);background:transparent;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-normal);cursor:pointer}.roadmap-task-toggle:hover{background:var(--muted);text-decoration:underline;text-underline-offset:var(--space-1)}.roadmap-task-toggle:focus-visible{outline:calc(var(--line-width) * 2) solid var(--ring);outline-offset:var(--space-1)}.roadmap-condition{display:inline-block;margin-block-start:var(--space-3);padding:var(--space-1) var(--space-3);background:var(--muted);color:var(--muted-foreground);border-radius:var(--radius-pill);font-size:var(--text-xs);line-height:var(--leading-relaxed)}.roadmap-task-description{margin-block-start:var(--space-3);color:var(--muted-foreground);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.roadmap-task-links{display:grid;gap:var(--space-1);margin-block-start:var(--space-4);padding-block-start:var(--space-2);border-block-start:var(--line-width) solid var(--border)}.roadmap-task-links .action-link{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;column-gap:var(--space-2);row-gap:var(--space-1);min-height:var(--control-height);max-width:100%;padding-block:var(--space-3);color:var(--brand);font-size:var(--text-sm);font-weight:var(--weight-normal);line-height:var(--leading-tight);text-underline-offset:var(--space-1)}.roadmap-task-links .action-link:hover{text-decoration:underline}.roadmap-task-links .action-link>span[lang]{overflow-wrap:anywhere}.roadmap-link-kind{color:var(--muted-foreground);font-weight:var(--weight-normal);font-size:var(--text-xs)}.roadmap-stage-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);padding-block-start:var(--space-4);padding-inline-start:calc(var(--roadmap-number-size) + var(--space-4))}.roadmap-stage-footer a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding-block:var(--space-3);font-size:var(--text-sm);text-underline-offset:var(--space-1)}.roadmap-stage-footer .action-link{color:var(--brand)}.roadmap-stage-footer>a:last-child{color:var(--muted-foreground)}.roadmap-stage-footer a:hover{text-decoration:underline}.roadmap-page [hidden]{display:none!important}.roadmap-after{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-8);margin-block-start:var(--section-space);padding:var(--space-8) var(--space-12);background:var(--muted);color:var(--foreground);border:var(--line-width) solid var(--border);border-radius:var(--radius-md)}.roadmap-after h2{margin-block:var(--space-3);font-size:var(--text-section);line-height:var(--leading-tight);font-weight:var(--weight-bold)}.roadmap-after p{max-width:var(--reading-width);color:var(--muted-foreground);line-height:var(--leading-relaxed)}.roadmap-after h2{color:var(--foreground);text-wrap:balance}.roadmap-after .action-link{color:var(--brand)}.roadmap-after-links{display:grid;justify-items:start;gap:var(--space-3)}.roadmap-page a:focus-visible{outline:calc(var(--line-width) * 2) solid var(--ring);outline-offset:var(--space-1)}.roadmap-page#main-content:focus{outline:none}.roadmap-page[lang=en] .roadmap-intro h1,.roadmap-page[lang=en] .roadmap-stage-heading h2,.roadmap-page[lang=en] .roadmap-after h2{font-family:var(--font-display)}.roadmap-page[lang=ja] h1,.roadmap-page[lang=ja] h2,.roadmap-page[lang=ja] h3{font-family:var(--font-sans)}@media(min-width:48.01rem){.roadmap-sidebar{position:sticky;top:var(--roadmap-anchor-offset);max-block-size:calc(100dvh - var(--roadmap-anchor-offset) - var(--space-4));overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding-inline-end:var(--space-1)}}@media(max-width:60rem){.roadmap-page{--roadmap-column-gap: var(--space-6);--roadmap-rail-width: calc(var(--space-24) * 2.65)}.roadmap-tasks,.roadmap-stage-footer{padding-inline-start:0}.roadmap-tasks:before,.roadmap-task:before{display:none}.roadmap-overview{padding:var(--space-4)}.roadmap-task-check span{position:absolute;width:var(--line-width);height:var(--line-width);padding:0;margin:calc(var(--line-width) * -1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.roadmap-task-check{width:var(--control-height);justify-content:center;padding:0}}@media(max-width:48rem){.roadmap-page{--roadmap-visual-width: min(100%, 24rem);--roadmap-number-size: var(--space-8)}.roadmap-breadcrumb{padding-block:var(--space-4);gap:var(--space-2);font-size:var(--text-xs)}.roadmap-intro{grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-6)}.roadmap-intro .roadmap-lead{font-size:var(--text-sm)}.roadmap-illustration{width:var(--roadmap-visual-width);justify-self:center}.roadmap-start-link{gap:var(--space-2);margin-block-start:var(--space-3);padding-inline:var(--space-3)}.roadmap-situations{gap:var(--space-1) var(--space-4)}.roadmap-situations>span{width:100%;padding-block-start:var(--space-2)}.roadmap-layout{display:flex;flex-direction:column;gap:var(--space-8);margin-block-start:var(--space-8)}.roadmap-sidebar{display:contents}.roadmap-overview{width:100%;padding:var(--space-4);order:0}.roadmap-stages{order:1;width:100%;gap:var(--space-8)}.roadmap-supporting-guides{order:2;width:100%;margin-block-start:0}.roadmap-progress{margin-block-end:var(--space-4);padding-block-end:var(--space-4)}.roadmap-next-unchecked{margin-block-start:var(--space-1)}.roadmap-stage-nav ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.roadmap-stage-nav li a{height:100%;padding:var(--space-2);background:var(--card);gap:var(--space-2)}.roadmap-nav-checked{display:none}.roadmap-nav-extras{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-block-start:var(--space-3);padding-block-start:var(--space-2)}.roadmap-stage-heading{gap:var(--space-3);padding-block-end:var(--space-4)}.roadmap-stage-heading p{margin-block-start:var(--space-2)}.roadmap-stage-heading h2{font-size:var(--text-card)}.roadmap-task{padding:var(--space-4)}.roadmap-task-heading{gap:var(--space-2)}.roadmap-task-links{margin-block-start:var(--space-3)}.roadmap-stage-footer{padding-block-start:var(--space-2)}.roadmap-after{padding:var(--space-6)}}@media(prefers-reduced-motion:reduce){.roadmap-stage-nav li a{transition:none}}@media print{.roadmap-sidebar{position:static}.roadmap-layout{display:block}.roadmap-task{break-inside:avoid;box-shadow:none}.roadmap-illustration,.roadmap-supporting-guides,.roadmap-progress,.roadmap-task-check,.roadmap-task-toggle{display:none!important}@layer base{.roadmap-page .roadmap-task-details[hidden]{display:block!important}}}
