:root{--yellow:#ffcd01;--black:#222;--orange:#ea5400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:#fff;color:var(--black);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.85}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:900;line-height:1.5}a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.header{max-width:1280px;margin:auto;padding:20px 45px;display:flex;align-items:center;justify-content:space-between}.logo{font-family:Arial,sans-serif;font-weight:900;font-size:43px;letter-spacing:-3px;line-height:1}.logo span{display:block;font-family:Meiryo,sans-serif;font-size:10px;letter-spacing:0;margin-top:7px}.page-label{font-size:14px;font-weight:700;padding:7px 20px;border-left:3px solid var(--yellow)}.page-intro{background:#222;color:#fff;display:grid;grid-template-columns:1.03fr 1fr;gap:50px;padding:55px max(45px,calc((100vw - 1190px)/2)) 50px;align-items:center}.eyebrow{font-family:Arial,sans-serif;font-size:12px;font-weight:800;letter-spacing:.16em}.intro-copy .eyebrow{color:var(--yellow);margin-bottom:20px}h1{font-size:clamp(30px,3.2vw,44px);letter-spacing:.02em}h1 span{color:var(--yellow)}.intro-copy>p:not(.eyebrow){color:#eee;margin-top:20px;font-size:16px}.play-types{display:flex;flex-wrap:wrap;gap:7px;margin-top:25px;max-width:470px}.play-types span{border:1px solid #ffffff60;border-radius:3px;padding:4px 10px;font-size:12px;color:#fff}.intro-pictures{display:grid;grid-template-columns:1fr 1fr;gap:10px;transform:rotate(-2deg)}.intro-pictures>div{overflow:hidden;aspect-ratio:1.22;border:3px solid #fff;background:#eee}.intro-pictures img{max-width:none;width:110%;margin-left:-5%;transform:translateY(-4%)}.style-nav{position:sticky;z-index:10;top:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--yellow);border-bottom:3px solid #222;padding:0 max(45px,calc((100vw - 1190px)/2))}.style-nav a{padding:15px 10px;text-align:center;font-weight:800;font-size:16px;line-height:1.6;border-left:1px solid #2222}.style-nav a:last-child{border-right:1px solid #2222}.style-nav a:hover{background:#222;color:var(--yellow)}.style-nav small{font-family:Arial;letter-spacing:.1em;font-size:12px;margin-right:12px}.catalog{max-width:1280px;margin:auto;padding:0 45px}.style-section{padding:70px 0 65px;border-bottom:1px solid #ddd}.style-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:35px;align-items:center;margin-bottom:32px}.style-name{display:flex;gap:20px;align-items:center}.number{font-family:Arial;font-size:68px;font-weight:900;line-height:1;color:var(--yellow);text-shadow:1px 1px 0 #222,-1px -1px 0 #222,1px -1px 0 #222,-1px 1px 0 #222}.style-name .eyebrow{font-size:11px;margin-bottom:7px;color:#666}.style-name h2{font-size:30px;line-height:1.3;letter-spacing:.01em}.role{border-left:4px solid var(--yellow);padding-left:24px}.role h3{font-size:21px;margin-bottom:10px}.role p{font-size:15px;line-height:1.9;color:#555;max-width:690px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 22px}.card{border:1px solid #ddd;border-radius:5px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.image-window{aspect-ratio:1.18;overflow:hidden;background:#efefef;position:relative}.image-window img{width:110%;max-width:none;margin-left:-5%;transform:translateY(-4%)}.card-copy{padding:20px 20px 24px;border-top:4px solid var(--yellow);flex:1}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.tags span{font-size:12px;font-weight:700;background:#ffcd012b;color:#8a3c00;padding:3px 9px;border-radius:3px}.card h3{font-size:19px;line-height:1.6;overflow-wrap:anywhere}.subtitle{font-size:12px;color:#666;margin-top:3px}.description{font-size:15px;margin-top:12px;line-height:1.9;color:#555}.closing{max-width:1190px;background:var(--yellow);margin:55px auto 0;padding:30px 35px 0;display:flex;align-items:center;gap:30px;overflow:hidden;border-radius:5px}.closing img{width:145px;align-self:flex-end}.closing>div{padding:0 0 30px}.closing h2{font-size:25px}.closing p{font-size:14px;margin-top:10px}footer{max-width:1280px;padding:35px 45px;margin:auto;display:flex;align-items:center;gap:30px}footer a:not(.footer-logo){font-size:13px;text-decoration:underline;text-underline-offset:4px}.footer-logo{font-family:Arial;font-weight:900;font-size:32px;letter-spacing:-2px}footer small{font-size:12px;margin-left:auto}@media(max-width:1000px){.page-intro{padding:40px 30px;gap:25px}.header{padding:18px 30px}.catalog{padding:0 30px}.style-nav{padding:0 30px}.style-intro{grid-template-columns:1fr;gap:24px}.role{margin-left:85px}.style-name h2{font-size:29px}.gallery{gap:20px 16px}.card-copy{padding:16px}.card h3{font-size:17px}.description{font-size:14px}.closing{margin:40px 30px 0}.closing h2{font-size:22px}footer{padding:30px}.style-nav a{font-size:14px}.style-nav small{margin-right:7px}}@media(max-width:650px){html{scroll-padding-top:80px}.header{padding:17px 20px}.logo{font-size:35px}.logo span{font-size:9px}.page-label{padding:5px 12px;font-size:12px}.page-intro{grid-template-columns:1fr;padding:30px 22px;gap:25px}.intro-copy .eyebrow{font-size:11px;margin-bottom:14px}h1{font-size:31px}.intro-copy>p:not(.eyebrow){font-size:14px;margin-top:15px}.play-types{margin-top:18px;gap:6px}.play-types span{padding:3px 8px}.intro-pictures{max-width:420px;width:100%;margin:auto;gap:7px;transform:rotate(-1deg)}.intro-pictures>div{aspect-ratio:1.35}.style-nav{padding:0;grid-template-columns:repeat(4,1fr)}.style-nav a{font-size:12px;padding:11px 3px;line-height:1.4;display:flex;flex-direction:column;justify-content:center;min-height:63px}.style-nav small{display:block;margin:0 0 5px;font-size:12px}.catalog{padding:0 18px}.style-section{padding:40px 0}.style-name{gap:15px}.style-name h2{font-size:28px}.number{font-size:53px}.style-name .eyebrow{font-size:11px}.style-intro{gap:19px;margin-bottom:22px}.role{margin-left:0;padding-left:15px}.role h3{font-size:19px}.role p{font-size:14px}.gallery{grid-template-columns:repeat(2,1fr);gap:16px 12px}.card-copy{padding:12px 11px 15px}.tags{gap:4px;margin-bottom:7px}.tags span{font-size:12px;padding:2px 5px}.card h3{font-size:16px;line-height:1.6}.subtitle{font-size:12px}.description{font-size:14px;line-height:1.85;margin-top:9px}.image-window{aspect-ratio:1.07}.image-window img{width:108%;margin-left:-4%}.closing{margin:32px 18px 0;padding:25px 18px 0;gap:15px}.closing img{width:80px}.closing>div{padding-bottom:25px}.closing h2{font-size:20px}.closing p{font-size:13px}footer{padding:25px 20px;gap:18px}.footer-logo{font-size:29px}footer a:not(.footer-logo){font-size:12px}}@media(max-width:370px){.gallery{grid-template-columns:1fr}.style-nav a{font-size:12px}.card-copy{padding:18px}.card h3{font-size:19px}.image-window{aspect-ratio:1.18}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Each learning style is a complete catalog, selected with tabs. */
[hidden]{display:none!important}.style-nav button{appearance:none;background:transparent;color:var(--black);font:inherit;font-weight:800;cursor:pointer;border:0;border-left:1px solid #2222;padding:13px 10px;line-height:1.5;display:flex;align-items:center;justify-content:center;gap:10px;min-height:75px}.style-nav button:last-child{border-right:1px solid #2222}.style-nav button[aria-selected="true"]{background:var(--black);color:var(--yellow)}.style-nav button:hover{background:#333;color:var(--yellow)}.style-nav button:focus-visible{outline:3px solid var(--orange);outline-offset:-4px}.style-nav button small{margin:0}.tab-count{font-size:11px;border:1px solid currentColor;border-radius:3px;padding:2px 6px;white-space:nowrap}.style-section{min-height:calc(100vh - 75px)}.style-section:focus-visible{outline:2px solid var(--orange);outline-offset:8px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px;padding:20px 0 16px;border-top:1px solid #ddd}.catalog-heading h3{font-size:18px}.catalog-heading p{font-size:13px;color:#666;white-space:nowrap}.style-intro{margin-bottom:28px}
@media(max-width:1000px){.style-nav button{font-size:14px;gap:7px;flex-wrap:wrap}.tab-count{font-size:10px}}
@media(max-width:650px){.style-nav button{padding:10px 2px;font-size:12px;min-height:85px;flex-direction:column;gap:4px}.style-nav button small{font-size:10px}.tab-label{white-space:nowrap}.tab-count{font-size:10px;border:0;padding:0}.catalog-heading{gap:8px;margin-bottom:18px;padding:15px 0}.catalog-heading h3{font-size:15px}.catalog-heading p{font-size:11px}.style-section{padding-top:35px}.intro-pictures{max-width:360px}}
/* Course worlds: one wide card with a main visual and six detail images. */
.course-gallery{grid-template-columns:minmax(0,1fr);gap:32px}.course-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);border:1px solid #ddd;border-top:5px solid var(--yellow);border-radius:6px;overflow:hidden}.course-main{min-width:0;border-right:1px solid #e5e5e5}.course-card .card-copy{border-top:0;padding:20px 24px 24px}.course-card h3{font-size:22px}.course-card .subtitle{font-size:14px;font-weight:700;color:#666}.course-card .description{font-size:16px;line-height:1.85}.course-card .image-window{aspect-ratio:1.28}.course-scenes{padding:24px;min-width:0;display:flex;flex-direction:column;justify-content:center;background:#fafafa}.scene-label{font-size:14px;font-weight:700;margin-bottom:14px}.scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.scene-window{aspect-ratio:1.06;overflow:hidden;border-radius:3px;position:relative;background:#efefef;border:1px solid #ddd}.scene-window img{width:110%;max-width:none;margin-left:-5%;transform:translateY(-4%)}.scene-window.code-scene{background:#e7f4ff}.scene-window.code-scene img{width:100%;height:100%;margin:0;transform:none;object-fit:contain;padding:6px 6px 24px}.code-scene span{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:12px;line-height:1.4;color:#29475f}.scene-note{font-size:12px;color:#666;line-height:1.7;margin-top:12px}.course-card .tags span{font-size:12px}.description,.role p{font-size:16px}
@media(max-width:1000px){.course-card{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.course-scenes{padding:18px}.scene-grid{gap:8px}.course-card .card-copy{padding:18px}.course-card h3{font-size:20px}}
@media(max-width:760px){.course-card{grid-template-columns:minmax(0,1fr)}.course-main{border-right:0;border-bottom:1px solid #ddd;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center}.course-main .image-window{height:100%;aspect-ratio:auto;min-height:220px}.course-main .image-window img{height:100%;width:100%;margin:0;object-fit:cover;transform:none}.course-card .card-copy{padding:18px}.course-scenes{padding:18px}.course-card h3{font-size:20px}.course-card .description{font-size:16px}.scene-grid{gap:8px}.course-gallery{gap:24px}}
@media(max-width:480px){.course-main{display:block}.course-main .image-window{height:auto;aspect-ratio:1.28;min-height:0}.course-main .image-window img{height:auto;width:110%;margin-left:-5%;transform:translateY(-4%);object-fit:initial}.course-scenes{padding:16px}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.course-card .card-copy{padding:18px}.scene-label{font-size:14px;margin-bottom:12px}.course-card h3{font-size:22px}.course-card .description{font-size:16px}.course-card .subtitle{font-size:14px}}

/* Fill the right side to match the main visual and description height. */
@media(min-width:761px){.course-scenes{justify-content:flex-start;min-height:0}.scene-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));min-height:0}.scene-window{aspect-ratio:auto;min-height:0}.scene-window img{position:absolute;left:-5%;top:-4%;width:110%;height:110%;margin:0;transform:none;object-fit:cover}.scene-window.code-scene img{left:0;top:0;width:100%;height:100%;object-fit:contain}}

/* Let the course scenes fill the supplemental-image panel. */
.course-card .course-scenes{padding:0}.course-card .scene-grid{gap:6px}.course-card .scene-window{border:0;border-radius:0}.course-card .scene-note{margin:0;padding:10px 12px}

.intro-copy>p.intro-message{font-size:clamp(22px,2.1vw,28px);font-weight:900;line-height:1.6;color:var(--yellow);margin-top:24px}

.intro-pictures>div:first-child{position:relative}.intro-pictures>div:first-child img{position:absolute;width:118%;max-width:none;height:auto;left:-9%;top:-11%;margin:0;transform:none}

@font-face{font-family:BibibiPixel;src:url("../assets/fonts/DotGothic16-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
.intro-copy>p.intro-message{background:var(--yellow);color:var(--black);border:3px solid #fff;box-shadow:6px 6px 0 var(--orange);padding:16px 20px;margin-top:26px;line-height:1.65}
.style-name .number,.style-name h2{font-family:BibibiPixel,Meiryo,sans-serif;font-weight:400}
.style-name h2{font-size:32px;text-shadow:1px 0 currentColor;letter-spacing:.03em}
.style-name .number{paint-order:stroke fill;-webkit-text-stroke:5px var(--black);text-shadow:3px 3px 0 var(--black),-3px -3px 0 var(--black),3px -3px 0 var(--black),-3px 3px 0 var(--black)}
@media(max-width:650px){.style-name h2{font-size:28px}.intro-copy>p.intro-message{padding:14px 16px;font-size:22px;box-shadow:4px 4px 0 var(--orange)}}

.style-name .number{font-size:88px;font-weight:700;-webkit-text-stroke:6px var(--black)}
.style-name h2{font-size:40px;font-weight:700;-webkit-text-stroke:1px currentColor;text-shadow:1px 0 currentColor;line-height:1.45}
@media(max-width:650px){.style-name{gap:14px}.style-name .number{font-size:68px;-webkit-text-stroke:5px var(--black)}.style-name h2{font-size:clamp(29px,8vw,34px);-webkit-text-stroke:.7px currentColor}.style-name>div{min-width:0}}

.intro-copy>p.intro-message{display:inline-block;background:rgba(255,205,1,.08);color:var(--yellow);border:0;border-left:4px solid var(--yellow);border-radius:0 8px 8px 0;box-shadow:none;padding:15px 20px;font-size:clamp(22px,2.1vw,28px);line-height:1.6}
@media(max-width:650px){.intro-copy>p.intro-message{padding:13px 16px;font-size:22px;box-shadow:none}.style-nav button{min-height:70px}}

.intro-copy>p.intro-message{background:var(--yellow);color:var(--black);border-left:0;border-radius:8px;font-weight:900}

footer.brand-footer{width:100%;max-width:none;margin:0;padding:48px 24px 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--yellow);border:0;text-align:center}
.brand-footer h2{font-size:clamp(24px,3vw,36px);line-height:1.5}
.brand-footer img{display:block;width:min(420px,85vw);height:auto;margin:0}
body{padding-bottom:0}main{margin-bottom:0}
@media(max-width:650px){footer.brand-footer{padding:36px 20px;gap:22px}.brand-footer h2{font-size:24px}}

.header .logo{display:flex;flex-direction:column;align-items:flex-start;gap:7px;letter-spacing:0;line-height:1}
.header .logo img{width:115px;height:auto}.header .logo span{font-size:10px;margin:0;line-height:1.4}
.intro-copy>p.intro-message{position:relative;isolation:isolate;background:transparent;border:0;border-radius:0;padding:15px 24px;margin-left:10px;margin-right:10px}
.intro-copy>p.intro-message::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--yellow);transform:skewX(-14deg)}
.brand-footer img{width:min(84px,17vw)}
@media(max-width:650px){.header .logo img{width:96px}.header .logo span{font-size:9px}.intro-copy>p.intro-message{padding:13px 17px;margin-left:8px;margin-right:8px}}

.page-intro{position:relative;overflow:hidden;padding-bottom:175px}
.page-intro>.intro-message{position:relative;isolation:isolate;grid-column:1/-1;justify-self:stretch;z-index:1;margin:45px 0 -95px;padding:24px 0;background:none;color:var(--black);font-size:clamp(26px,3vw,38px);font-weight:900;line-height:1.5;border:0;box-shadow:none}
.page-intro>.intro-message::before{content:"";position:absolute;z-index:-1;left:50%;top:-20px;width:120vw;height:calc(100% + 40px);background:var(--yellow);transform:translateX(-50%) skewY(-4.3deg)}
@media(max-width:650px){.page-intro{padding-bottom:135px}.page-intro>.intro-message{margin:32px 0 -65px;padding:18px 0;font-size:26px}.page-intro>.intro-message::before{top:-10px;height:calc(100% + 20px)}}

/* Hero: diagonal stripe sits behind the four world pictures. */
.page-intro{padding-top:55px;padding-bottom:50px;min-height:510px;gap:50px;align-items:center}
.intro-copy{position:relative;z-index:2}.intro-pictures{position:relative;z-index:3}
.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:115px}
.page-intro>.intro-message{position:absolute;left:0;right:0;top:210px;margin:0;padding:21px max(45px,calc((100vw - 1190px)/2));font-size:clamp(24px,2.5vw,32px);line-height:1.5;z-index:1}
.page-intro>.intro-message::before{left:50%;top:0;width:120vw;height:100%;transform:translateX(-50%) skewY(-4.3deg)}
@media(max-width:1000px) and (min-width:651px){.page-intro{padding:40px 30px;gap:25px}.page-intro>.intro-message{padding-left:30px;padding-right:30px;font-size:25px}}
@media(max-width:650px){.page-intro{padding:30px 22px;min-height:0;gap:30px;display:flex;flex-direction:column;align-items:stretch}.intro-copy{order:1}.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:20px}.page-intro>.intro-message{order:2;position:relative;left:auto;right:auto;top:auto;margin:12px 0;padding:16px 0;font-size:26px}.intro-pictures{order:3}.page-intro>.intro-message::before{top:0;height:100%}}

/* Keep message and stripe on the same diagonal, with copy below. */
@media(min-width:651px){
.page-intro{align-items:start}
.page-intro>.intro-message{top:176px;min-height:90px;transform:rotate(-4.3deg);transform-origin:50% 50%;font-size:clamp(30px,3.8vw,44px);font-weight:900;line-height:1.15;padding-top:22px;padding-bottom:22px;white-space:nowrap}
.page-intro>.intro-message::before{transform:translateX(-50%);height:100%;top:0}
.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:150px}
}
@media(min-width:1200px){.page-intro>.intro-message{top:218px}.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:155px}}
@media(max-width:650px){.page-intro>.intro-message{transform:rotate(-4.3deg);font-size:clamp(24px,6.7vw,32px);font-weight:900;line-height:1.3;white-space:nowrap}.page-intro>.intro-message::before{transform:translateX(-50%)} }

/* Bring the supporting copy close to the stripe and strengthen its headline. */
.page-intro>.intro-message{font-weight:900;-webkit-text-stroke:1.3px currentColor;paint-order:stroke fill;text-shadow:.6px 0 currentColor,-.6px 0 currentColor}
@media(min-width:651px){
.page-intro>.intro-message{padding-left:max(24px,calc((100vw - 1190px)/2 - 21px));padding-right:24px}
.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:125px}
}
@media(min-width:1200px){.intro-copy>p:not(.eyebrow):not(.intro-message){margin-top:145px}}
@media(max-width:650px){.page-intro>.intro-message{-webkit-text-stroke:1px currentColor}}

/* Compact footer proportions around the small brand logo. */
footer.brand-footer{padding:28px 24px 26px;gap:14px}
.brand-footer h2{font-size:18px;line-height:1.5}
@media(max-width:650px){footer.brand-footer{padding:24px 20px;gap:12px}.brand-footer h2{font-size:16px}}

/* Slightly lighter stripe lettering; mobile reading order matches the headline. */
.page-intro>.intro-message{-webkit-text-stroke:.65px currentColor;text-shadow:none}
@media(max-width:650px){
.page-intro{gap:20px}
.intro-copy{display:contents}
.intro-copy>.eyebrow{order:1;margin:0}
.intro-copy>h1{order:2;margin:0}
.page-intro>.intro-message{order:3;margin:12px 0;-webkit-text-stroke:.5px currentColor}
.intro-copy>p:not(.eyebrow):not(.intro-message){order:4;margin-top:0}
.intro-copy>.play-types{order:5;margin-top:0}
.intro-pictures{order:6}
}

.page-intro>.intro-message{text-align:left}

/* Anchor the stripe text box to the hero, outside grid-area positioning. */
.page-intro>.intro-message{display:block;grid-column:auto;justify-self:auto;text-align:left}
@media(min-width:651px){
.page-intro>.intro-message{left:0;right:auto;width:100%;max-width:none;padding-left:max(24px,calc((100vw - 1190px)/2 - 21px))}
}
@media(max-width:650px){.page-intro>.intro-message{align-self:stretch;width:100%;text-align:left}}
