:root{color-scheme:light;color:#1b2735;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1b2735;--muted:#607080;--line:#dce3e4;--paper:#f7f8f5;--white:#fff;--navy:#101b2b;--teal:#127d78;--mint:#b6f0d9;--lime:#dbf77d;--mono:"Cascadia Code", Consolas, monospace;--serif:Georgia, "Noto Serif JP", serif;background:#f7f8f5;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}a{color:inherit}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{color:var(--navy);background:var(--mint)}.skip-link{z-index:10;color:#fff;background:var(--navy);padding:.75rem 1rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:2;color:#fff;background:var(--navy);border-bottom:1px solid #ffffff1f;position:relative}.header-inner,.footer-inner{width:min(1160px,100% - 48px);margin:0 auto}.header-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:82px;display:flex}.wordmark{color:#fff;letter-spacing:.1em;align-items:center;gap:.7rem;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark small{color:#a9bac8;font-family:var(--mono);letter-spacing:.08em;margin-top:.2rem;font-size:.55rem;font-weight:400;display:block}.wordmark-icon{width:36px;height:36px;color:var(--mint);font-family:var(--serif);border:1px solid #72d5c0;border-radius:50%;place-items:center;font-size:1.25rem;display:grid}.main-nav{flex-wrap:wrap;gap:clamp(1rem,3vw,2.5rem);display:flex}.main-nav a{color:#c2ced6;font-size:.83rem;text-decoration:none;transition:color .2s}.main-nav a:hover,.main-nav a[aria-current=page]{color:var(--lime)}.eyebrow,.overline{color:var(--teal);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;font-size:.7rem}.eyebrow{align-items:center;gap:.65rem;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:24px;height:1px}.button{min-height:48px;color:var(--navy);background:var(--lime);border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:.8rem;padding:.75rem 1.15rem;font-size:.88rem;font-weight:700;text-decoration:none;transition:transform .18s,background .18s;display:inline-flex}.button:hover{background:#e7ff9c;transform:translateY(-2px)}.button-secondary{color:#fff;background:0 0;border-color:#718191}.button-secondary:hover{background:#ffffff1a}.text-link{color:var(--teal);text-underline-offset:.25em;font-weight:700;text-decoration-thickness:1px}.text-link:hover{color:#075c58}.arrow{font-size:1.1em}.hero{color:#fff;background:var(--navy);position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;border:1px solid #b6f0d926;border-radius:50%;width:620px;height:620px;position:absolute;top:-190px;right:-120px;box-shadow:0 0 0 45px #b6f0d906,0 0 0 95px #b6f0d906}.hero-inner{z-index:1;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:3rem;width:min(1160px,100% - 48px);min-height:550px;margin:0 auto;padding:5.4rem 0;display:grid;position:relative}.hero .eyebrow{color:var(--mint)}.hero h1{max-width:720px;font-family:var(--serif);letter-spacing:-.065em;margin:1.5rem 0 1.2rem;font-size:clamp(3.3rem,7.7vw,6.5rem);font-weight:400;line-height:1.03}.hero h1 em{color:var(--lime);font-style:normal}.hero-copy{color:#c4d0d7;max-width:560px;font-size:1.02rem;line-height:1.95}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.hero-art{place-items:center;min-height:340px;display:grid;position:relative}.orbit{aspect-ratio:1;border:1px solid #b6f0d947;border-radius:50%;width:min(100%,380px);position:absolute;transform:rotate(-28deg)scaleY(.56)}.orbit-two{transform:rotate(46deg)scaleY(.56)}.orbit-three{width:190px;transform:rotate(0)scaleY(1)}.hero-glyph{width:138px;height:138px;color:var(--lime);font-family:var(--serif);border:1px solid #dbf77dbf;border-radius:50%;place-items:center;font-size:5rem;display:grid;position:relative;box-shadow:0 0 70px #b6f0d91f,inset 0 0 35px #b6f0d914}.hero-note{color:#c4d0d7;background:#101b2bd1;border:1px solid #ffffff2e;max-width:190px;padding:1rem;font-size:.75rem;line-height:1.7;position:absolute;bottom:8%;right:1%}.hero-note strong{color:#fff;font-family:var(--mono);margin-bottom:.3rem;font-size:.65rem;display:block}.section{padding:5.5rem 0}.section-inner{width:min(1160px,100% - 48px);margin:0 auto}.section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.2rem;display:flex}.section-heading h2,.page-intro h1{font-family:var(--serif);letter-spacing:-.045em;margin:.65rem 0 0;font-size:clamp(2.1rem,4vw,3.5rem);font-weight:400;line-height:1.16}.section-heading p{max-width:470px;color:var(--muted);margin:0;line-height:1.8}.section-tint{background:#edf2ef}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.course-card{border:1px solid var(--line);background:var(--white);flex-direction:column;min-height:265px;padding:1.6rem;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative}a.course-card:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 15px 30px #19313914}.course-card .card-top{justify-content:space-between;align-items:center;display:flex}.course-card h3{margin:1.55rem 0 .6rem;font-size:1.3rem}.course-card p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.8}.card-bottom{color:var(--muted);justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.8rem;font-size:.75rem;display:flex}.level-chip,.tag{color:#176b63;background:#e2f3eb;border-radius:2px;align-items:center;padding:.32rem .58rem;font-size:.7rem;font-weight:600;display:inline-flex}.level-chip{font-family:var(--mono)}.card-index{color:#90a1a4;font-family:var(--mono);font-size:.75rem}.roadmap-preview{border-top:1px solid #cbd5d2;grid-template-columns:repeat(4,1fr);display:grid}.roadmap-step{padding:1.5rem 1.3rem 0 0;position:relative}.roadmap-step:before{content:"";background:var(--teal);border-radius:50%;width:9px;height:9px;position:absolute;top:-5px;left:0}.step-number{color:var(--teal);font-family:var(--mono);font-size:.7rem}.roadmap-step h3{margin:.75rem 0 .45rem;font-size:.98rem}.roadmap-step p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.7}.callout{color:#fff;background:var(--teal);justify-content:space-between;align-items:center;gap:2rem;margin-top:2rem;padding:2.1rem 2.3rem;display:flex}.callout h2{font-family:var(--serif);margin:0 0 .4rem;font-size:1.6rem;font-weight:400}.callout p{color:#d7eeea;margin:0;font-size:.85rem;line-height:1.7}.callout .button{flex:none}.page-shell{min-height:68vh;padding:3.5rem 0 6rem}.page-inner{width:min(1000px,100% - 48px);margin:0 auto}.page-intro{max-width:740px;margin-bottom:3rem}.page-intro .lede{color:var(--muted);margin:1rem 0 0;font-size:1rem;line-height:1.9}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:.55rem;margin:0 0 2.2rem;font-size:.78rem;display:flex}.breadcrumb a{color:var(--teal)}.breadcrumb span[aria-current]{color:var(--ink)}.course-list{gap:.9rem;display:grid}.course-row{border:1px solid var(--line);background:#fff;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:1.4rem;padding:1.4rem;text-decoration:none;display:grid}.course-row:hover{border-color:var(--teal)}.course-row-index{color:#91a0a2;font-family:var(--mono);font-size:.8rem}.course-row h2{margin:0 0 .35rem;font-size:1.07rem}.course-row p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.6}.course-row-meta{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.course-row-arrow{color:var(--teal);font-size:1.3rem}.lesson-list{counter-reset:lesson;gap:.7rem;display:grid}.lesson-row{border:1px solid var(--line);background:#fff;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.15rem;text-decoration:none;display:grid}.lesson-row:hover{border-color:var(--teal)}.lesson-order{color:var(--teal);font-family:var(--mono);font-size:.85rem}.lesson-row h3{margin:0 0 .35rem;font-size:.98rem}.lesson-row p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.6}.lesson-minutes{color:var(--muted);white-space:nowrap;font-size:.75rem}.meta-strip{flex-wrap:wrap;gap:.6rem;margin:1.3rem 0 2rem;display:flex}.meta-pill{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:.4rem .65rem;font-size:.72rem}.content-grid{grid-template-columns:minmax(0,1fr) 245px;align-items:start;gap:3rem;display:grid}.prose{min-width:0;font-size:.96rem;line-height:1.95}.prose h2{font-family:var(--serif);margin:2.3rem 0 .75rem;font-size:1.7rem;font-weight:400;line-height:1.35}.prose h3{margin:1.8rem 0 .6rem;font-size:1.12rem}.prose p,.prose ul,.prose ol{margin:.75rem 0}.prose li+li{margin-top:.4rem}.prose a{color:var(--teal);text-underline-offset:.18em}.prose blockquote{border-left:3px solid var(--teal);color:var(--muted);background:#edf2ef;margin:1.4rem 0;padding:.5rem 1.2rem}.prose code{color:#155b55;font-family:var(--mono);background:#e8f0ed;border-radius:3px;padding:.12rem .32rem;font-size:.86em}.prose pre{color:#ecf5f2;background:var(--navy);border-radius:4px;padding:1.2rem;line-height:1.7;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:.65rem}.prose th{background:#edf2ef}.side-note{border:1px solid var(--line);background:#fff;padding:1.1rem;position:sticky;top:1rem}.side-note h2{margin:0 0 .8rem;font-size:.85rem}.side-note ul{color:var(--muted);margin:0;padding-left:1.1rem;font-size:.78rem;line-height:1.7}.side-note li+li{margin-top:.45rem}.lesson-nav{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;display:flex}.lesson-nav a{color:var(--teal);gap:.35rem;font-size:.83rem;text-decoration:none;display:grid}.lesson-nav small{color:var(--muted);font-size:.68rem}.lesson-nav .next{text-align:right;margin-left:auto}.roadmap-full{gap:0;display:grid}.roadmap-item{border-top:1px solid var(--line);grid-template-columns:68px minmax(0,1fr) 110px;gap:1.25rem;padding:1.4rem 0;display:grid}.roadmap-index{color:var(--teal);font-family:var(--mono);font-size:.85rem}.roadmap-item h2{margin:0 0 .4rem;font-size:1rem}.roadmap-item p{color:var(--muted);margin:0;font-size:.83rem;line-height:1.7}.roadmap-status{color:#176b63;white-space:nowrap;background:#e2f3eb;border-radius:2px;place-self:start end;padding:.3rem .5rem;font-size:.68rem}.roadmap-status.soon{color:#636b74;background:#e8ebed}.notice{color:#594c34;background:#f6f0df;border-left:3px solid #b08a39;margin:1.5rem 0;padding:1.1rem 1.25rem;font-size:.82rem;line-height:1.8}.resource-filters,.search-controls{flex-wrap:wrap;align-items:end;gap:.7rem;margin-bottom:1.3rem;display:flex}.field{gap:.35rem;min-width:130px;display:grid}.field label{color:var(--muted);font-size:.7rem;font-weight:600}.field select,.search-input{min-height:44px;color:var(--ink);background:#fff;border:1px solid #cbd5d5;border-radius:3px;padding:.65rem .75rem}.search-box{flex:360px;gap:.55rem;display:flex}.search-input{width:100%}.search-results{gap:.8rem;margin-top:1.5rem;display:grid}.search-result{border:1px solid var(--line);background:#fff;padding:1.15rem}.search-result h2{margin:0 0 .4rem;font-size:1rem}.search-result h2 a{color:var(--teal);text-underline-offset:.2em;text-decoration-thickness:1px}.search-result p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.7}.search-result-url{color:#71808a;font-family:var(--mono);overflow-wrap:anywhere;margin-top:.5rem;font-size:.68rem;display:block}.result-count{color:var(--muted);font-size:.78rem}.empty-state{color:var(--muted);text-align:center;background:#fff;border:1px dashed #bfcaca;padding:2.2rem}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.resource-card{border:1px solid var(--line);background:#fff;padding:1.3rem}.resource-card[hidden]{display:none}.resource-card h2{margin:.8rem 0 .45rem;font-size:1rem}.resource-card p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.7}.resource-card .resource-link{color:var(--teal);text-underline-offset:.2em;margin-top:1rem;font-size:.8rem;font-weight:700;display:inline-flex}.resource-meta{flex-wrap:wrap;gap:.4rem;display:flex}.resource-meta span{border:1px solid var(--line);color:var(--muted);padding:.25rem .45rem;font-size:.66rem}.feedback-panel{border:1px solid var(--line);background:#fff;padding:1.5rem}.feedback-panel p{color:var(--muted);line-height:1.8}.feedback-email{border:1px solid var(--teal);color:var(--teal);margin:.5rem 0;padding:.75rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.plain-list{color:var(--muted);padding-left:1.25rem;line-height:1.9}.site-footer{color:#c0ccd4;background:var(--navy);padding:3rem 0 1.5rem}.footer-inner{grid-template-columns:1fr auto;gap:2rem;display:grid}.footer-brand{color:#fff;letter-spacing:.1em;font-size:.95rem;font-weight:700;text-decoration:none}.footer-inner p{color:#92a4b1;margin:.7rem 0 0;font-size:.78rem;line-height:1.8}.footer-links{flex-wrap:wrap;align-content:start;gap:.8rem 1.3rem;display:flex}.footer-links a{color:#c0ccd4;font-size:.75rem;text-decoration:none}.footer-links a:hover{color:var(--lime)}.copyright{color:#8294a1;font-family:var(--mono);border-top:1px solid #ffffff1f;grid-column:1/-1;padding-top:1.2rem;font-size:.65rem}:focus-visible{outline-offset:3px;outline:3px solid #d2ed6d}@media (width<=760px){.header-inner{flex-direction:column;align-items:flex-start;gap:1rem;min-height:auto;padding:1rem 0}.main-nav{gap:.55rem 1.2rem;width:100%}.main-nav a{font-size:.76rem}.hero-inner{grid-template-columns:1fr;gap:1rem;min-height:auto;padding:4rem 0 3rem}.hero-art{min-height:250px}.hero-art .orbit{width:260px}.hero-art .orbit-three{width:145px}.hero-glyph{width:105px;height:105px;font-size:3.8rem}.hero-note{bottom:1%;right:2%}.section{padding:3.7rem 0}.section-heading{flex-direction:column;align-items:flex-start;gap:.7rem}.course-grid{grid-template-columns:1fr}.course-card{min-height:230px}.roadmap-preview{grid-template-columns:repeat(2,1fr);row-gap:1rem}.callout{flex-direction:column;align-items:flex-start;padding:1.5rem}.content-grid{grid-template-columns:1fr;gap:1.5rem}.side-note{grid-row:1;position:static}.resource-grid{grid-template-columns:1fr}}@media (width<=480px){.header-inner,.footer-inner,.section-inner,.hero-inner{width:min(100% - 32px,1160px)}.page-inner{width:min(100% - 32px,1000px)}.hero h1{font-size:clamp(3rem,15vw,4.5rem)}.hero-copy{font-size:.9rem}.hero-actions .button{flex:100%}.course-row{grid-template-columns:42px minmax(0,1fr) 15px;gap:.65rem;padding:1rem .75rem}.course-row-index{font-size:.65rem}.course-row p{font-size:.75rem}.lesson-row{grid-template-columns:35px minmax(0,1fr);gap:.65rem;padding:.9rem .7rem}.lesson-minutes{grid-column:2}.roadmap-item{grid-template-columns:40px minmax(0,1fr);gap:.7rem}.roadmap-status{grid-column:2;justify-self:start}.search-controls{align-items:stretch}.search-box{flex-basis:100%}.field{flex:42%}.footer-inner{grid-template-columns:1fr}.copyright{grid-column:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
