:root{color-scheme:light;--bg: #ffffff;--canvas: #f7f7f8;--surface: #ffffff;--text: #18181b;--muted: #71717a;--muted-strong: #52525b;--soft: #f1f1f3;--soft-strong: #e8e8eb;--accent: #16784a;--accent-hover: #12613c;--accent-strong: #0f5b36;--accent-soft: #eef8f2;--accent-soft-hover: #e2f3e9;--accent-border: #9fd4b7;--positive: #166534;--positive-soft: #edf8f0;--warning: #9f1239;--focus: #1d4ed8;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.22, 1, .36, 1);--rail-width: 176px;--column-gap: 48px}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;background:var(--bg);scroll-behavior:smooth}body{min-height:100vh;margin:0;overflow-x:hidden;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Noto Sans JP,sans-serif;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{padding:0;color:inherit;background:transparent;border:0;font:inherit}button:not(:disabled),a{cursor:pointer;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 68%,transparent);outline-offset:3px}::selection{color:var(--text);background:#cfeada}[hidden]{display:none!important}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:10px 14px;color:#fff;background:var(--text);border-radius:10px;text-decoration:none;transform:translateY(-150%);transition:transform .16s var(--ease-out)}.skip-link:focus{transform:translateY(0)}.icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.page-shell{width:min(1240px,calc(100% - 80px));margin:0 auto;padding:44px 0 156px}.course-hero{display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);column-gap:var(--column-gap);row-gap:38px}.hero-back{grid-column:1;grid-row:1}.back-link{display:inline-flex;min-height:42px;align-items:center;gap:7px;padding:0 8px 0 3px;color:var(--muted-strong);border-radius:10px;font-size:13px;font-weight:670;text-decoration:none;transition:color .15s ease,background-color .15s ease,transform 90ms ease}.back-link:hover{color:var(--text);background:var(--canvas)}.back-link:active{transform:translate(-2px)}.back-link .icon{width:16px;height:16px}.hero-actions{display:flex;grid-column:2;grid-row:1;align-items:center;justify-content:flex-end;gap:10px}.registration-button,.bookmark-button{min-height:46px;border-radius:14px;transition:color .15s ease,background-color .15s ease,transform .16s var(--ease-spring),box-shadow .18s ease}.registration-button:active,.bookmark-button:active{transform:scale(.975)}.registration-button{display:flex;align-items:baseline;gap:8px;padding:7px 10px 7px 14px;background:var(--canvas);text-align:left}.registration-button:hover{background:var(--soft)}.registration-button>span,.registration-button>small{color:var(--muted-strong);font-size:12px;font-weight:650}.registration-button>strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:760;font-variant-numeric:tabular-nums;letter-spacing:.025em}.registration-button>small{display:grid;min-width:50px;min-height:30px;place-items:center;color:var(--text);background:var(--surface);border-radius:9px}.registration-button.is-copied>small{color:var(--positive);background:var(--positive-soft)}.bookmark-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:7px 17px;color:var(--muted-strong);background:var(--canvas);font-size:13px;font-weight:700}.bookmark-button:hover{color:var(--text);background:var(--soft)}.bookmark-button[aria-pressed=true]{color:#fff;background:var(--accent);box-shadow:0 7px 18px #16784a29}.bookmark-button[aria-pressed=true]:hover{background:var(--accent-hover)}.bookmark-button[aria-pressed=true] .icon{fill:currentColor}.bookmark-button.is-animating .icon{animation:bookmark-pop .33s var(--ease-spring)}@keyframes bookmark-pop{50%{transform:scale(1.2) rotate(-3deg)}}.hero-content{grid-column:2;grid-row:2;min-width:0}.course-origin{margin:0 0 13px;color:var(--muted-strong);font-size:14px;font-weight:660}h1,h2,h3,h4,p{text-wrap:pretty}.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text p{margin:0;color:inherit;font:inherit;line-height:inherit}.rich-text p+p{margin-top:.9em}.rich-text h4{margin:1.45em 0 .55em;color:var(--text);font-size:1.04em;font-weight:720;letter-spacing:-.015em;line-height:1.65}.rich-text ul,.rich-text ol{margin:.85em 0;padding-left:1.45em}.rich-text li{padding-left:.22em}.rich-text li+li{margin-top:.58em}.rich-text li>ul,.rich-text li>ol{margin:.62em 0 .18em}.rich-text li::marker{color:var(--accent);font-weight:760}.rich-text a{color:var(--accent);font-weight:650;text-decoration-color:color-mix(in srgb,var(--accent) 36%,transparent);text-decoration-thickness:1px;text-underline-offset:.18em;overflow-wrap:anywhere;transition:color .15s ease,text-decoration-color .15s ease}.rich-text a:hover{color:var(--accent-hover);text-decoration-color:currentColor}.rich-text strong{color:var(--text);font-weight:720}h1{max-width:970px;margin:0;font-size:clamp(40px,4.2vw,54px);font-weight:735;letter-spacing:-.052em;line-height:1.18;text-wrap:balance}.course-subtitle{max-width:820px;margin:15px 0 0;color:var(--muted-strong);font-size:20px;font-weight:610;letter-spacing:-.025em;line-height:1.55}.course-title-english{margin:13px 0 0;color:var(--muted);font-size:14px;font-weight:610;letter-spacing:.045em}.instructor-name{display:flex;align-items:center;gap:9px;margin:28px 0 0;color:var(--muted-strong);font-size:16px;font-weight:650}.instructor-name .icon{width:17px;height:17px;color:var(--muted)}.instructor-name [data-instructor]{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:7px 10px}.instructor-name small{color:var(--muted);font-size:12px;font-weight:590;letter-spacing:.035em}.course-facts{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:12px 28px;margin:35px 0 0;padding:0;list-style:none}.course-facts>li{display:flex;min-width:0;align-items:baseline;gap:7px;color:var(--text);font-size:16px;font-weight:680;line-height:1.5}.course-facts>li.is-positive{color:var(--positive)}.course-facts>li.is-negative,.course-facts>li.is-cancelled{color:var(--warning)}.meeting-values{display:flex;min-width:0;flex-wrap:wrap;gap:7px 18px}.meeting-value{display:inline-flex;align-items:baseline;gap:7px}.meeting-value small{color:var(--muted);font-size:13px;font-weight:590}.course-facts>li.is-many-meetings{flex-basis:100%}.meeting-values.is-many{display:grid;width:min(760px,100%);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 30px}.detail-layout{display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);align-items:start;column-gap:var(--column-gap);margin-top:94px}.section-navigation{position:sticky;top:30px;padding-top:3px}.section-navigation nav{position:relative;display:grid;gap:4px}.section-indicator{position:absolute;top:0;left:4px;z-index:1;width:3px;height:22px;background:var(--accent);border-radius:999px;opacity:0;pointer-events:none;transform:translate3d(0,var(--toc-y, 10px),0)}.section-indicator.is-ready{opacity:1;transition:transform .26s var(--ease-out),width .22s var(--ease-out),opacity .14s ease}.section-navigation a{position:relative;min-height:42px;padding:8px 8px 8px 22px;color:var(--muted);border-radius:9px;font-size:14px;font-weight:610;text-decoration:none;transition:color .15s ease,transform .13s var(--ease-out)}.section-navigation a:hover{color:var(--text)}.section-navigation a:active{transform:translate(2px)}.section-navigation a.is-active{color:var(--accent);font-weight:730}.detail-content{min-width:0}.content-section{margin-bottom:104px;scroll-margin-top:38px}.content-section:last-of-type{margin-bottom:82px}.content-section>h2,.section-heading-row h2{margin:0 0 42px;font-size:clamp(29px,2.8vw,34px);font-weight:730;letter-spacing:-.045em;line-height:1.32}.decision-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:start;gap:clamp(54px,7vw,88px)}.decision-grid.is-single{grid-template-columns:minmax(0,780px)}.evaluation-panel h3,.enrollment-panel h3,.feedback-block h3,.study-grid h3,.objectives-block h3,.materials-grid h3,.resources-section h3{margin:0;font-size:21px;font-weight:710;letter-spacing:-.025em;line-height:1.45}.subsection-heading,.study-heading,.section-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.subsection-heading>span,.section-heading-row>span{color:var(--muted);font-size:14px;font-weight:650;font-variant-numeric:tabular-nums}.evaluation-list{display:grid;gap:19px;margin-top:28px}.evaluation-summary{max-width:520px;margin:17px 0 -3px;color:var(--text);font-size:20px;font-weight:720;letter-spacing:-.025em;line-height:1.55}.evaluation-item{display:grid;grid-template-columns:minmax(150px,210px) minmax(130px,1fr) 52px;align-items:center;gap:16px}.evaluation-item-label{color:var(--muted-strong);font-size:14px;font-weight:640}.evaluation-bar{height:9px;overflow:hidden;background:var(--soft);border-radius:999px}.evaluation-bar>span{display:block;width:var(--value);height:100%;background:var(--accent);border-radius:inherit;transform-origin:left;animation:evaluation-in .65s var(--ease-out) both;animation-delay:calc(var(--item-index, 0) * 45ms + .1s)}@keyframes evaluation-in{0%{transform:scaleX(0)}}.evaluation-percentage{text-align:right;font-size:15px;font-weight:740;font-variant-numeric:tabular-nums}.evaluation-description{grid-column:1 / -1;margin:-6px 68px 0 0;color:var(--muted);font-size:13px;white-space:pre-line}.evaluation-item.is-zero .evaluation-bar>span{min-width:0}.enrollment-facts{display:grid;gap:25px;margin:28px 0 0}.enrollment-facts>div{display:grid;gap:3px}.enrollment-facts dt{color:var(--muted);font-size:13px;font-weight:610}.enrollment-facts dd{margin:0;color:var(--text);font-size:18px;font-weight:700;line-height:1.55;white-space:pre-line}.enrollment-facts dd.is-positive{color:var(--positive)}.enrollment-facts dd.is-negative{color:var(--warning)}.enrollment-facts dd.rich-text ul,.enrollment-facts dd.rich-text ol{color:var(--muted-strong);font-size:14px;font-weight:520}.enrollment-note{margin:20px 0 0;color:var(--muted-strong);font-size:14px;line-height:1.8;white-space:pre-line}.evaluation-notes{margin-top:42px;padding:25px 28px;color:var(--accent-strong);background:var(--accent-soft);border-radius:18px;font-size:15px;font-weight:540;line-height:1.9;white-space:pre-line}.feedback-block{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,570px);gap:28px;margin-top:48px}.feedback-block>.rich-text{margin:0;color:var(--muted-strong);font-size:15px;line-height:1.9}.study-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(52px,7vw,84px);margin-top:78px}.study-grid>section{min-width:0}.study-grid.is-single{grid-template-columns:minmax(0,780px)}.study-heading{min-width:0;flex-wrap:wrap;row-gap:12px}.study-heading>strong{min-width:0;max-width:calc(100% - 132px);color:var(--accent);font-size:15px;font-weight:720;line-height:1.75;overflow-wrap:anywhere;text-align:right;white-space:normal}.study-heading>strong.is-detailed{flex:0 0 100%;max-width:none;color:var(--muted-strong);font-weight:520;line-height:1.95;text-align:left;white-space:pre-line}.prose-list{margin-top:22px;color:var(--muted-strong);font-size:15px;font-weight:500;line-height:1.95;overflow-wrap:anywhere;white-space:pre-line}.course-description{max-width:780px;margin:0;color:#303034;font-size:18px;font-weight:510;line-height:1.95;white-space:pre-line}.objectives-block{margin-top:66px}.objective-text{max-width:860px;margin:23px 0 0;color:var(--muted-strong);font-size:16px;line-height:1.95;white-space:pre-line}.keyword-block{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:start;gap:16px;max-width:900px;margin-top:48px}.keyword-block>strong{padding-top:1px;color:var(--muted);font-size:13px;font-weight:650}.keyword-block.is-collapsible>p{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted-strong);font-size:14px;line-height:1.85;-webkit-box-orient:vertical;-webkit-line-clamp:2}.keyword-block:not(.is-collapsible)>p{margin:0;color:var(--muted-strong);font-size:14px;line-height:1.85}.keyword-block.is-expanded>p{display:block;overflow:visible}.keyword-block>button{grid-column:2;justify-self:start;min-height:38px;margin-top:-5px;padding:4px 0;color:var(--accent);font-size:13px;font-weight:690}.keyword-block>button:hover{color:var(--accent-hover)}.section-heading-row{margin-bottom:42px}.section-heading-row h2{margin-bottom:0}.schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px clamp(34px,5vw,62px);margin:0;padding:0;list-style:none}.schedule-list>li{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:start;gap:14px;min-width:0;padding:6px 0 18px}.schedule-index{color:var(--accent);font-size:14px;font-weight:720;font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-content{margin:0;color:var(--muted-strong);font-size:15px;line-height:1.85;white-space:pre-line}.schedule-content.is-empty{color:var(--muted)}.list-toggle{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;margin-top:34px;padding:7px 17px;color:var(--muted-strong);background:var(--canvas);border-radius:13px;font-size:13px;font-weight:680;transition:color .15s ease,background-color .15s ease,transform .15s var(--ease-spring)}.list-toggle:hover{color:var(--text);background:var(--soft)}.list-toggle:active{transform:scale(.98)}.list-toggle .icon{width:15px;height:15px;transition:transform .22s var(--ease-spring)}.list-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}.materials-grid{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);gap:clamp(54px,8vw,96px)}.materials-grid h3,.resources-section h3{margin-bottom:24px}.material-notes{margin:0;color:var(--muted-strong);font-size:15px;line-height:1.85;white-space:pre-line}.bibliography-list{display:grid;gap:28px;margin:0;padding:0;list-style:none}.bibliography-list+.material-notes{margin-top:27px}.materials-grid.is-single{grid-template-columns:minmax(0,780px)}.materials-grid[hidden]+.resources-section{margin-top:0}.bibliography-item{min-width:0}.bibliography-title{display:block;color:var(--text);font-size:15px;font-weight:690;line-height:1.7}.bibliography-meta{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.resources-section{margin-top:72px;padding:27px 29px;background:var(--canvas);border-radius:18px}.resource-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px 36px;margin:0;padding:0;list-style:none}.resource-list>li{min-width:0}.resource-list a,.resource-list .resource-text{color:var(--text);font-size:14px;font-weight:670;line-height:1.6;overflow-wrap:anywhere}.resource-list a:hover{color:var(--accent)}.resource-list .resource-detail,.resource-list .resource-description{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.65;overflow-wrap:anywhere}.bibliography-title,.bibliography-meta{overflow-wrap:anywhere}.resource-list .resource-description a{color:var(--accent);font-size:inherit;font-weight:650}.resource-list .resource-description a:hover{color:var(--accent-hover)}.course-meta{padding:27px 29px;background:var(--canvas);scroll-margin-top:38px}.course-meta h2{margin:0 0 25px;font-size:24px;font-weight:720;letter-spacing:-.035em;line-height:1.4}.course-meta dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px 38px;margin:0}.course-meta dl>div{min-width:0}.course-meta dt{margin-bottom:4px;color:var(--muted);font-size:13px;font-weight:610}.course-meta dd{margin:0;color:var(--muted-strong);font-size:14px;font-weight:650;line-height:1.65;overflow-wrap:anywhere}.toast{position:fixed;right:22px;bottom:22px;z-index:300;max-width:min(360px,calc(100% - 32px));padding:12px 16px;color:#fff;background:#242428;border-radius:13px;box-shadow:0 8px 24px #18181b29;font-size:12px;font-weight:650;animation:toast-in .22s var(--ease-spring) both}@keyframes toast-in{0%{opacity:0;transform:translateY(7px) scale(.98)}}body.is-ready .hero-content,body.is-ready .detail-content{animation:content-in .43s var(--ease-spring) both}body.is-ready .detail-content{animation-delay:70ms}@keyframes content-in{0%{opacity:0;transform:translateY(10px)}}@media(max-width:1080px){:root{--rail-width: 150px;--column-gap: 40px}.page-shell{width:min(1010px,calc(100% - 64px))}.decision-grid{gap:50px}.evaluation-item{grid-template-columns:minmax(130px,180px) minmax(110px,1fr) 48px;gap:13px}.study-grid,.materials-grid{gap:52px}}@media(max-width:1020px){.page-shell{width:min(900px,calc(100% - 64px));padding-top:38px}.course-hero{grid-template-columns:minmax(0,1fr) auto;column-gap:20px;row-gap:34px}.hero-back{grid-column:1}.hero-actions{grid-column:2}.hero-content{grid-column:1 / -1}.detail-layout{display:block;margin-top:78px}.section-navigation{position:sticky;top:0;z-index:80;margin-bottom:58px;overflow-x:auto;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(18px);scrollbar-width:none}.section-navigation::-webkit-scrollbar{display:none}.section-navigation nav{display:flex;width:max-content;gap:22px}.section-navigation a{min-height:47px;padding:11px 1px;white-space:nowrap}.section-indicator{top:auto;bottom:4px;left:0;width:var(--toc-width, 0px);height:3px;transform:translate3d(var(--toc-x, 0px),0,0)}.content-section,.course-meta{scroll-margin-top:70px}}@media(max-width:820px){.decision-grid,.study-grid,.materials-grid{grid-template-columns:1fr;gap:56px}}@media(max-width:760px){.page-shell{width:min(690px,calc(100% - 48px))}h1{font-size:clamp(37px,7.2vw,46px)}.schedule-list{grid-template-columns:1fr;gap:16px}.resource-list{grid-template-columns:1fr}}@media(max-width:639px){.page-shell{width:calc(100% - 40px);padding:28px 0 126px}.course-hero{display:block}.hero-actions{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;z-index:200;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:8px;padding:8px;background:color-mix(in srgb,var(--surface) 92%,transparent);border-radius:19px;box-shadow:0 15px 42px #18181b2b;backdrop-filter:blur(20px)}.registration-button,.bookmark-button{width:100%;min-height:52px;border-radius:14px}.registration-button{display:flex;gap:7px;padding:5px 8px 5px 11px}.registration-button>span{display:none}.registration-button>strong{overflow:hidden;min-width:0;font-size:12px;text-overflow:ellipsis}.registration-button>small{min-width:42px;min-height:38px;margin-left:auto;font-size:12px}.bookmark-button{color:#fff;background:var(--text);font-size:12px}.bookmark-button[aria-pressed=true]{background:var(--accent)}.hero-content{margin-top:35px}.course-origin{margin-bottom:10px;font-size:13px}h1{font-size:clamp(33px,9.4vw,40px);line-height:1.22}.course-subtitle{font-size:18px}.course-title-english{font-size:12px}.instructor-name{margin-top:23px;font-size:15px}.course-facts{display:grid;gap:14px;margin-top:29px}.course-facts>li{font-size:15px}.meeting-values{display:grid;gap:7px}.meeting-values.is-many{grid-template-columns:1fr}.detail-layout{margin-top:62px}.section-navigation{margin:0 -2px 50px}.section-navigation nav{gap:19px}.section-navigation a{min-height:45px;font-size:13px}.content-section,.course-meta{margin-bottom:82px;scroll-margin-top:64px}.course-meta{margin-bottom:0}.content-section>h2,.section-heading-row h2{margin-bottom:34px;font-size:29px}.evaluation-panel h3,.enrollment-panel h3,.feedback-block h3,.study-grid h3,.objectives-block h3,.materials-grid h3,.resources-section h3{font-size:20px}.evaluation-item{grid-template-columns:minmax(0,1fr) 50px;gap:8px 13px}.evaluation-bar{grid-column:1 / -1;grid-row:2}.evaluation-percentage{grid-column:2;grid-row:1}.evaluation-description{grid-column:1 / -1;margin:1px 0 0}.evaluation-notes{margin-top:34px;padding:21px 22px;border-radius:15px;font-size:14px}.evaluation-summary{font-size:18px}.feedback-block{grid-template-columns:1fr;gap:15px;margin-top:42px}.study-grid{margin-top:62px}.course-description{font-size:16px;line-height:1.9}.objectives-block{margin-top:54px}.objective-text{font-size:15px}.keyword-block{grid-template-columns:1fr;gap:7px;margin-top:40px}.keyword-block>button{grid-column:1}.schedule-list>li{grid-template-columns:54px minmax(0,1fr)}.schedule-content{font-size:14px}.materials-grid{gap:50px}.resources-section,.course-meta{padding:23px 21px}.resources-section{border-radius:15px}.course-meta dl{grid-template-columns:1fr;gap:20px}.toast{right:50%;bottom:calc(88px + env(safe-area-inset-bottom));max-width:calc(100% - 40px);text-align:center;transform:translate(50%)}@keyframes toast-in{0%{opacity:0;transform:translate(50%) translateY(7px) scale(.98)}}}@media(max-width:420px){.page-shell{width:calc(100% - 32px)}.hero-actions{right:8px;bottom:max(8px,env(safe-area-inset-bottom));left:8px}.registration-button>strong{max-width:80px}}@media print{.page-shell{width:100%;padding:0}.course-hero,.detail-layout{display:block}.hero-back,.hero-actions,.section-navigation,.list-toggle,.keyword-block>button,.toast{display:none!important}.hero-content,.content-section{margin-bottom:60px}[data-collapsible-item]{display:grid!important}.evaluation-item,.schedule-list>li,.bibliography-item,.feedback-block,.resources-section,.course-meta{break-inside:avoid}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}
