:root{--bg:#fffdf8;--surface:#fff;--soft:#faf6ee;--text:#1f2937;--muted:#5b6472;--line:#ece4d6;--accent:#c8323a;--accent-dark:#a3252d;--accent-soft:#fdeeee;--sub:#0f766e;--sub-soft:#e7f5f3;--gold:#f59e0b;--note:#b45309;--note-soft:#fff7e6;--radius:14px;--shadow:0 1px 2px #1f29370d, 0 6px 20px #1f29370f;--wrap:760px;--wide:1120px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Yu Gothic,Meiryo,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.9}*,:before,:after{box-sizing:border-box}body{background:var(--bg);overflow-wrap:anywhere;margin:0;font-size:16px}@media (width>=768px){body{font-size:17px}}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}h1,h2,h3,h4{font-feature-settings:"palt";letter-spacing:.02em}.icon{vertical-align:-2px;flex-shrink:0}.skip{position:absolute;left:-9999px}.skip:focus{z-index:99;background:#fff;padding:8px 12px;top:8px;left:8px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}.wrap--wide{max-width:var(--wide)}.site-header{z-index:50;backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--line);background:#fffffff0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:8px 24px;min-height:64px;display:flex}.logo{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo-mark{background:var(--accent);color:#fff;width:38px;height:38px;box-shadow:0 3px 0 var(--accent-dark);border-radius:10px;place-items:center;font-size:22px;font-weight:800;display:grid}.logo-text{letter-spacing:.03em;flex-direction:column;font-size:19px;font-weight:800;line-height:1.25;display:flex}.logo-text small{color:var(--muted);letter-spacing:.06em;font-size:11px;font-weight:600}.gnav{gap:4px;font-size:14px;font-weight:700;display:flex}.gnav a{color:var(--text);white-space:nowrap;border-radius:999px;padding:8px 12px;text-decoration:none}.gnav a:hover{background:var(--accent-soft);color:var(--accent)}.gnav a[aria-current=page]{background:var(--accent);color:#fff}@media (width<=860px){.header-inner{flex-direction:column;align-items:stretch;gap:0;padding-top:8px}.logo-mark{width:32px;height:32px;font-size:18px}.logo-text{font-size:17px}.gnav{scrollbar-width:none;margin:6px -16px 0;padding:0 12px 8px;font-size:13px;overflow-x:auto}.gnav::-webkit-scrollbar{display:none}.gnav a{background:var(--soft);padding:5px 12px}}.hero{background:radial-gradient(1200px 400px at 85% -10%, #fde3e4 0, transparent 60%), linear-gradient(180deg, #fff6f0 0%, var(--bg) 100%);border-bottom:1px solid var(--line)}.hero-inner{align-items:center;gap:24px;padding-top:28px;padding-bottom:32px;display:grid}@media (width>=1000px){.hero-inner{grid-template-columns:1.05fr 1fr;gap:48px;padding-top:48px;padding-bottom:56px}}.hero h1{margin:12px 0 16px;font-size:clamp(26px,6vw,40px);line-height:1.4}.hero-badges{flex-wrap:wrap;gap:8px;margin:0;display:flex}.hero-badges span{background:var(--text);color:#fff;border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:700}.hero-badges span:first-child{background:var(--accent)}.hero-points{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffd9;margin:0 0 20px;padding:16px 18px;font-size:15.5px;font-weight:600;line-height:1.7;list-style:none}.hero-points li{align-items:flex-start;gap:8px;display:flex}.hero-points li+li{margin-top:6px}.hero-points .icon{color:var(--accent);margin-top:4px}.hero-cta{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.hero-img img{width:100%;box-shadow:var(--shadow);aspect-ratio:3/2;object-fit:cover;border-radius:20px}.meta--hero{margin:0}.btn{border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:13px 22px;font-size:15.5px;font-weight:800;line-height:1.3;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 0 var(--accent-dark)}.btn-primary:hover{box-shadow:0 5px 0 var(--accent-dark)}.btn-ghost{color:var(--accent);border:2px solid var(--accent);background:#fff}@media (width<=560px){.btn{flex:100%}}.shell{padding-top:24px;padding-bottom:64px}.shell-main{min-width:0;max-width:var(--wrap);margin:0 auto}.sidebar{display:none}@media (width>=1080px){.shell{grid-template-columns:minmax(0,1fr) 300px;gap:48px;padding-top:32px;display:grid}.shell-main{margin:0}.sidebar{display:block}.sidebar-sticky{scrollbar-width:thin;max-height:calc(100vh - 104px);position:sticky;top:88px;overflow-y:auto}}.side-head{margin:24px 0 10px;font-size:14px;font-weight:800}.page{padding-top:24px;padding-bottom:64px}.breadcrumb ol{color:var(--muted);flex-wrap:wrap;gap:4px;margin:0 0 12px;padding:0;font-size:12.5px;line-height:1.6;list-style:none;display:flex}.breadcrumb li:not(:last-child):after{content:"›";margin-left:4px}.breadcrumb a{color:var(--muted)}.article h1,.page-title{margin:10px 0 14px;font-size:clamp(24px,5.4vw,32px);line-height:1.45}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 12px;font-size:12px;font-weight:700;line-height:1.8;text-decoration:none;display:inline-block}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0 0 20px;font-size:13px;display:flex}.meta span{align-items:center;gap:4px;display:inline-flex}.meta a,.lead{color:var(--muted)}.eyecatch{border-radius:var(--radius);aspect-ratio:16/9;object-fit:cover;width:100%;margin:0 0 24px}.points{background:var(--surface);border:2px solid var(--accent);border-radius:var(--radius);margin:0 0 24px;padding:14px 20px 16px}.points-title{color:var(--accent);align-items:center;gap:6px;margin:0 0 6px;font-weight:800;display:flex}.points ul{margin:0;padding:0;font-weight:600;list-style:none}.points li{align-items:flex-start;gap:8px;margin:4px 0;line-height:1.7;display:flex}.points .icon{color:var(--accent);margin-top:4px}.toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:8px 0 36px;padding:18px 20px}.toc-title{align-items:center;gap:8px;margin:0 0 8px;font-weight:800;display:flex}.toc-title:before{content:"";background:var(--accent);border-radius:3px;width:6px;height:18px}.toc-list{counter-reset:toc;margin:0;padding:0;font-size:15px;line-height:1.6;list-style:none}.toc-list>li{counter-increment:toc;border-bottom:1px dashed var(--line);padding:7px 0 7px 2.1em;position:relative}.toc-list>li:last-child{border-bottom:0}.toc-list>li:before{content:counter(toc);background:var(--accent-soft);width:1.5em;height:1.5em;color:var(--accent);border-radius:50%;place-items:center;font-size:12.5px;font-weight:800;display:grid;position:absolute;top:7px;left:0}.toc-list>li>a{font-weight:700}.toc-list ol{margin:0;padding:4px 0 0;font-size:14px;list-style:none}.toc-list ol li{padding:2px 0 2px 1em;position:relative}.toc-list ol li:before{content:"";background:var(--line);width:6px;height:2px;position:absolute;top:.75em;left:0}.toc a{color:var(--text);text-decoration:none}.toc a:hover{color:var(--accent);text-decoration:underline}.toc-check{opacity:0;pointer-events:none;position:absolute}.toc-list.is-long{max-height:330px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 75%,#0000);mask-image:linear-gradient(#000 75%,#0000)}.toc-check:checked~.toc-list{max-height:none;-webkit-mask-image:none;mask-image:none}.toc-more{text-align:center;color:var(--accent);cursor:pointer;background:var(--accent-soft);border-radius:999px;margin-top:8px;padding:8px;font-size:14px;font-weight:800;display:block}.toc-more .close,.toc-check:checked~.toc-more .open{display:none}.toc-check:checked~.toc-more .close{display:inline}.toc--side{box-shadow:none;margin:0;padding:16px}.toc--side .toc-list{font-size:13.5px}.toc--side .toc-list>li{padding:6px 0 6px 2em}.toc--side .toc-list>li:before{top:6px}@media (width>=1080px){.shell-main .toc:not(.toc--side){display:none}}.prose h2{background:linear-gradient(90deg, var(--accent-soft), #fff 90%);border-left:6px solid var(--accent);border-radius:0 12px 12px 0;margin:64px 0 20px;padding:14px 18px 14px 20px;scroll-margin-top:84px;font-size:clamp(21px,4.4vw,25px);line-height:1.5}.prose h3{border-bottom:2px solid var(--line);margin:40px 0 14px;padding:0 0 8px 14px;scroll-margin-top:84px;font-size:clamp(18px,4vw,20.5px);line-height:1.55;position:relative}.prose h3:before{content:"";background:var(--accent);border-radius:2px;width:4px;position:absolute;top:.25em;bottom:calc(8px + .25em);left:0}.prose h4{margin:28px 0 8px;font-size:17px}.prose p{margin:0 0 1.3em}.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.5em}.prose li{margin:6px 0}.prose li::marker{color:var(--accent);font-weight:700}.prose strong{background:linear-gradient(#0000 60%,#ffe28a 60%);font-weight:800}.prose blockquote{background:var(--surface);border-left:4px solid var(--line);color:var(--muted);margin:1.5em 0;padding:12px 16px}.prose>:first-child{margin-top:0}.figure{margin:24px 0 28px}.figure img{border-radius:var(--radius);border:1px solid var(--line);background:#fff;width:100%}.figure figcaption{color:var(--muted);text-align:center;margin-top:8px;font-size:13px}.prose table{border-collapse:separate;border-spacing:0;white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:12px;margin:1.5em 0;font-size:15px;line-height:1.65;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:11px 14px}.prose th+th,.prose td+td{border-left:1px solid var(--line)}.prose tr:last-child td{border-bottom:0}.prose th{background:var(--text);color:#fff;font-weight:700}.prose tbody tr:nth-child(2n) td{background:var(--soft)}.prose td:first-child{font-weight:700}@media (width>=700px){.prose table{white-space:normal;width:100%;display:table}}.box{border-radius:var(--radius);background:var(--surface);border:2px solid var(--line);margin:2em 0;padding:20px 20px 18px;position:relative}.box>:last-child{margin-bottom:0}.box-title{align-items:center;gap:6px;margin:0 0 8px;font-size:16px;font-weight:800;display:inline-flex}.box-title:before{content:"!";color:#fff;background:var(--muted);border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.box.point{background:#fff8f8;border-color:#f2c4c7}.box.point .box-title{color:var(--accent)}.box.point .box-title:before{content:"✓";background:var(--accent)}.box.note{background:var(--note-soft);border-color:#f6dcae}.box.note .box-title{color:var(--note)}.box.note .box-title:before{content:"i";background:var(--note);font-family:Georgia,serif;font-style:italic}.box.ryugaku{background:var(--sub-soft);border-color:#bfe3dd}.box.ryugaku .box-title{color:var(--sub)}.box.ryugaku .box-title:before{content:"✈";background:var(--sub)}.box.summary{border-color:var(--accent);background:#fff}.box.summary .box-title{color:var(--accent)}.box.summary .box-title:before{content:"✓";background:var(--accent)}.box ol,.box ul{margin-bottom:0}.zh{color:var(--accent);font-weight:700}.py{color:var(--muted);font-size:.92em}.purpose{gap:12px;list-style:none;display:grid;margin:24px 0 32px!important;padding:0!important}@media (width>=640px){.purpose{grid-template-columns:1fr 1fr}.purpose-card:last-child:nth-child(odd){grid-column:1/-1}}.purpose-card{margin:0!important}.purpose-card a{border:1px solid var(--line);border-radius:var(--radius);height:100%;color:var(--text);box-shadow:var(--shadow);background:#fff;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.purpose-card a:hover{border-color:var(--accent);transform:translateY(-2px)}.purpose-img{object-fit:cover;background:var(--soft);border-radius:12px;flex-shrink:0;width:84px;height:84px}.purpose-body{flex-direction:column;gap:3px;min-width:0;line-height:1.55;display:flex}.purpose-title{color:var(--accent);font-size:16px;font-weight:800}.purpose-row{font-size:13.5px}.purpose-row b{background:var(--soft);color:var(--muted);vertical-align:1px;border-radius:4px;margin-right:6px;padding:0 6px;font-size:11px;font-weight:700;display:inline-block}.timeline{list-style:none;position:relative;margin:24px 0 32px!important;padding:0!important}.timeline:before{content:"";background:linear-gradient(var(--accent), var(--sub));border-radius:2px;width:3px;position:absolute;top:12px;bottom:12px;left:15px}.tl-item{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:14px 16px 14px 18px;position:relative;margin:0 0 14px 40px!important}.tl-item:before{content:"";border:4px solid var(--accent);background:#fff;border-radius:50%;width:15px;height:15px;position:absolute;top:18px;left:-32px}.tl-item p{margin:0!important}.tl-step{letter-spacing:.08em;color:var(--accent);font-size:11px;font-weight:800;position:absolute;top:12px;right:14px}.tl-term{color:var(--muted);font-size:13px;font-weight:800}.tl-title{padding-right:48px;font-size:16.5px;font-weight:800;line-height:1.55;margin:2px 0 6px!important}.tl-title a{color:var(--text);text-decoration-color:var(--line)}.tl-goal{font-size:14px;line-height:1.6}.tl-goal b{background:var(--sub-soft);color:var(--sub);border-radius:999px;margin-right:8px;padding:0 8px;font-size:11px;display:inline-block}.faq{gap:10px;margin:20px 0 32px;display:grid}.faq-item{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.faq-item summary{cursor:pointer;align-items:flex-start;gap:12px;padding:14px 44px 14px 16px;font-weight:800;line-height:1.6;list-style:none;display:flex;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"";border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);width:9px;height:9px;transition:transform .2s;position:absolute;top:22px;right:18px;transform:rotate(45deg)}.faq-item[open] summary:after{top:26px;transform:rotate(-135deg)}.faq-q,.faq-a-mark{border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:14px;font-weight:800;display:grid}.faq-q{background:var(--accent);color:#fff}.faq-a{border-top:1px dashed var(--line);gap:12px;padding:14px 16px;display:flex}.faq-a-mark{background:var(--sub-soft);color:var(--sub)}.faq-a p{margin:0}.author-box{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;align-items:flex-start;gap:16px;margin:56px 0 0;padding:20px;font-size:14.5px;line-height:1.75;display:flex}.author-logo{background:var(--accent);color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:30px;font-weight:800;display:grid}.author-label{color:var(--muted);margin:0;font-size:12px;font-weight:700}.author-name{margin:0 0 6px;font-size:16px;font-weight:800}.author-text{margin:0 0 6px}.author-box a{font-size:13.5px;font-weight:700}.section{margin-top:64px}.section-title{align-items:center;gap:10px;margin:0 0 16px;font-size:21px;display:flex}.section-title:before{content:"";background:var(--accent);border-radius:4px;width:8px;height:22px}.empty{background:var(--soft);border-radius:var(--radius);color:var(--muted);padding:20px}.cards{gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (width>=560px){.cards{grid-template-columns:1fr 1fr}}.card a{border:1px solid var(--line);border-radius:var(--radius);height:100%;color:var(--text);box-shadow:var(--shadow);background:#fff;flex-direction:column;text-decoration:none;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.card a:hover{border-color:var(--accent);transform:translateY(-2px)}.card-thumb{aspect-ratio:16/9;background:var(--soft)}.card-thumb img{object-fit:cover;width:100%;height:100%}.card-body{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px 14px;display:flex}.card-title{font-weight:800;line-height:1.55}.card a:hover .card-title{color:var(--accent)}.card time{color:var(--muted);font-size:12.5px}.cat-cards{gap:14px;margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.cat-cards:not(.compact){grid-template-columns:repeat(3,1fr)}}.cat-card{border:1px solid var(--line);border-radius:var(--radius);height:100%;color:var(--text);box-shadow:var(--shadow);background:#fff;flex-direction:column;text-decoration:none;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.cat-card:hover{border-color:var(--accent);transform:translateY(-2px)}.cat-card img{aspect-ratio:16/9;object-fit:cover;width:100%}.cat-card-body{flex-direction:column;gap:4px;padding:12px 14px 14px;display:flex}.cat-card-name{font-size:16.5px;font-weight:800}.cat-card-desc{color:var(--muted);font-size:13.5px;line-height:1.65}.cat-card-count{color:var(--accent);font-size:12px;font-weight:700}.cat-ryugaku .cat-card-count{color:var(--sub)}.compact{gap:8px}.compact .cat-card{box-shadow:none;flex-direction:row;align-items:center}.compact .cat-card img{aspect-ratio:4/3;flex-shrink:0;width:96px}.compact .cat-card-body{padding:6px 10px}.compact .cat-card-name{font-size:14px}.cat-hero{background:linear-gradient(180deg, #fff6f0, var(--bg));border-bottom:1px solid var(--line)}.cat-hero.cat-ryugaku{background:linear-gradient(180deg, #ecf8f6, var(--bg))}.cat-hero-inner{align-items:center;gap:20px;padding-top:20px;padding-bottom:28px;display:grid}@media (width>=860px){.cat-hero-inner{grid-template-columns:1fr 440px;gap:40px;padding-top:32px;padding-bottom:40px}}.cat-hero h1{margin:4px 0 8px;font-size:clamp(26px,5.6vw,36px)}.cat-hero .lead{margin:0 0 8px}.cat-hero-count{border:1px solid var(--line);background:#fff;border-radius:999px;margin:0;padding:2px 12px;font-size:13px;font-weight:700;display:inline-block}.cat-hero-img{aspect-ratio:16/9;object-fit:cover;width:100%;box-shadow:var(--shadow);border-radius:18px}.site-footer{color:#cbd2dc;background:#1f2937;margin-top:24px;padding:40px 0 20px;font-size:14px}.footer-inner{gap:28px;display:grid}@media (width>=760px){.footer-inner{grid-template-columns:2fr 1fr 1fr;gap:40px}}.logo--footer{color:#fff}.logo--footer .logo-mark{box-shadow:none}.footer-brand p{margin:12px 0 0;font-size:13.5px;line-height:1.8}.footer-head{color:#fff;margin:0 0 8px;font-weight:800}.footer-nav{flex-direction:column;gap:6px;display:flex}.footer-nav a{color:#cbd2dc;text-decoration:none}.footer-nav a:hover{color:#fff;text-decoration:underline}.copy{text-align:center;color:#8b95a3;border-top:1px solid #374151;margin:32px 0 0;padding-top:16px;font-size:12.5px}
