:root{font-family:"Noto Sans JP","Yu Gothic",Meiryo,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#15203a;background:#f6f7fb;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}a{color:inherit;text-decoration:none}a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #58abed;outline-offset:3px}[hidden]{display:none!important}
.wrap{width:min(1140px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:12px;z-index:10;background:#fff;padding:12px}.skip-link:focus{top:10px}
.topbar{background:#111b32;color:#fff;border-bottom:1px solid #ffffff20}.topbar-inner{height:76px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px;font-size:1.22rem;font-weight:850;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:#9ce3d4;color:#102e36;font-weight:900;letter-spacing:-.09em}.brand-mark span{color:#4d9e91}.brand small{display:block;font-size:.62rem;letter-spacing:.13em;font-weight:600;color:#a3b3cf}.top-link{color:#d4e1f6;font-size:.85rem}.top-link span{color:#9ce3d4}
.hero{background:radial-gradient(ellipse at 85% 15%,#223c61 0%,transparent 54%),#111b32;color:#fff;overflow:hidden}.hero-grid{min-height:448px;display:grid;grid-template-columns:1fr 0.8fr;gap:38px;align-items:center}.hero-copy{padding:75px 0 88px;z-index:1}.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.18em;color:#a5e4d6}.eyebrow-dot{display:inline-block;width:7px;height:7px;background:#a5e4d6;border-radius:50%;margin-right:9px;box-shadow:0 0 12px #a5e4d6}
h1{font-size:clamp(2rem,4.3vw,3.65rem);line-height:1.32;letter-spacing:-.055em;margin:24px 0}h1 em{font-style:normal;color:#a5e4d6}.hero p{line-height:2;max-width:540px;color:#b7c5db;font-size:1rem;margin:0 0 30px}.cta{display:inline-flex;align-items:center;gap:40px;background:#a5e4d6;border-radius:9px;padding:15px 23px;color:#12383b;font-weight:800;box-shadow:0 12px 32px #0003;transition:transform .2s}.cta:hover{transform:translateY(-2px)}.cta span{font-size:1.3rem}
.hero-art{position:relative;min-height:360px}.halo{position:absolute;border:1px solid #a5e4d62f;border-radius:50%;width:370px;height:370px;top:5px;left:20px}.halo-two{width:250px;height:250px;top:66px;left:84px}.float-card{position:absolute;border-radius:18px;box-shadow:0 25px 80px #0006}.card-back{width:255px;height:168px;transform:rotate(-13deg);left:40px;top:35px;background:#52648e;color:#c8dcf7;padding:27px;font-weight:800}.fake-line{height:11px;background:#ffffff6b;width:150px;margin-top:20px;border-radius:6px}.fake-line.short{width:100px;margin-top:12px}.card-front{background:#f9fbff;color:#11223b;width:288px;height:184px;top:112px;left:135px;transform:rotate(7deg);display:flex;align-items:center;gap:18px;padding:25px;font-size:1.15rem;font-weight:900;line-height:1.4;letter-spacing:.04em}.play-symbol{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#a5e4d6;color:#102c37;font-size:1.2rem;flex:none}.visual-track{position:absolute;bottom:24px;left:24px;right:24px;height:7px;border-radius:6px;background:#e0e8f1}.visual-track i{display:block;background:#6cafa7;width:63%;height:100%;border-radius:6px}.orb{position:absolute;width:34px;height:34px;right:8px;top:46px;background:#c2a7f7;border-radius:50%;box-shadow:0 0 50px #a685df75}
.library{padding-top:72px;padding-bottom:105px;min-height:470px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:30px}.section-eyebrow{font-weight:800;color:#4b8c87;letter-spacing:.16em;font-size:.74rem}h2{font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.05em;margin:7px 0 10px}.section-heading p{color:#65728a;margin:0;font-size:.93rem}.count{display:flex;align-items:baseline;gap:10px;color:#6a7893}.count strong{font-size:2.5rem;color:#1a2f50;line-height:1}.count span{font-size:.78rem;font-weight:700}.toolbar{display:grid;grid-template-columns:1fr 190px 165px;gap:12px;background:white;border:1px solid #e3e8f0;padding:12px;border-radius:16px;box-shadow:0 12px 40px #273d5d09}.search-field{display:flex;align-items:center;gap:10px;background:#f6f8fc;border-radius:10px;padding:0 15px}.search-field span{font-size:1.7rem;color:#76869d}.search-field input{border:0;background:none;height:49px;outline:none;min-width:0;flex:1;font-size:.9rem;color:#1d304c}.search-field input:focus-visible{outline:none}.search-field:focus-within{outline:2px solid #4a9b92}.select-field{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 12px;border-left:1px solid #e5e9f0}.select-field span{font-size:.68rem;color:#718099}.select-field select{border:0;background:transparent;outline:0;font-size:.91rem;font-weight:700;color:#27374f;min-width:0;max-width:100%}.select-field:focus-within{outline:2px solid #4a9b92;border-radius:8px}
.result-count{color:#697790;font-size:.84rem;margin:25px 0 17px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.course-card{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 5px 22px #1f304c0a;transition:transform .18s,box-shadow .18s}.course-card:hover{transform:translateY(-4px);box-shadow:0 17px 38px #1f304c17}.course-cover{height:151px;background:linear-gradient(140deg,#172d4a,#315a7b);position:relative;overflow:hidden;display:flex;align-items:end;padding:20px;color:#fff}.course-cover:before{content:"";position:absolute;width:180px;height:180px;border:1px solid #ffffff4a;border-radius:50%;right:-35px;top:-85px;box-shadow:0 0 0 28px #ffffff13,0 0 0 64px #ffffff0b}.course-cover:after{content:"✦";font-size:4rem;color:#ffffff38;position:absolute;right:20px;bottom:13px}.course-card:nth-child(3n + 2) .course-cover{background:linear-gradient(140deg,#2a305b,#615e90)}.course-card:nth-child(3n + 3) .course-cover{background:linear-gradient(140deg,#194c56,#3c8882)}.course-cover small{position:relative;z-index:1;font-size:.72rem;letter-spacing:.12em;font-weight:700}.course-body{padding:24px 22px 19px;flex:1;display:flex;flex-direction:column}.course-kind{font-size:.73rem;color:#3b817b;font-weight:800;letter-spacing:.04em}.course-title{font-size:1.14rem;line-height:1.5;letter-spacing:-.035em;margin:10px 0}.course-description{font-size:.84rem;line-height:1.8;color:#69778b;margin:0 0 20px;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:3.5em}.course-meta{border-top:1px solid #edf0f5;padding-top:15px;display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:#718099}.course-open{font-weight:800;color:#2e817b}.course-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.course-tag{font-size:.7rem;border-radius:5px;background:#f0f3f8;color:#53647d;padding:4px 7px}
.empty{border:1px dashed #ccd6e4;background:#fff;text-align:center;padding:55px 18px;border-radius:18px;margin-top:20px}.empty-symbol{color:#4c9c94;font-size:3rem}.empty h3{margin:10px 0;color:#1e3050}.empty p{color:#748198;margin:0;line-height:1.8}.footer{background:#111b32;color:#aabbd5}.footer-inner{padding:34px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:.78rem;line-height:1.8}.footer b{color:#a5e4d6;font-size:1.2rem}.footer-inner>:last-child{text-align:right}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr .7fr}.hero-art{transform:scale(.78);transform-origin:left center}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{grid-template-columns:1fr 155px 135px}}
@media(max-width:650px){.wrap{width:min(100% - 32px,1140px)}.topbar-inner{height:69px}.brand small{font-size:.55rem}.top-link{font-size:.77rem}.hero-grid{grid-template-columns:1fr;gap:0;min-height:0}.hero-copy{padding:56px 0 65px}.hero-art{display:none}.hero p{font-size:.91rem}h1{margin:20px 0}.library{padding:52px 0 75px}.section-heading{align-items:end}.section-heading p{font-size:.82rem}.count strong{font-size:2rem}.toolbar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.select-field{border-left:0;border-top:1px solid #e5e9f0}.course-grid{grid-template-columns:1fr}.footer-inner{display:block}.footer-inner>:last-child{text-align:left;margin-top:9px;display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
