@font-face{font-family:Outfit;font-style:normal;font-weight:200;font-display:swap;src:url('/assets/outfit-200.ttf') format('truetype')}
@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url('/assets/outfit-300.ttf') format('truetype')}
@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/outfit-400.ttf') format('truetype')}
@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url('/assets/outfit-500.ttf') format('truetype')}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/outfit-600.ttf') format('truetype')}
@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url('/assets/outfit-700.ttf') format('truetype')}
:root{--sand:#ede6dc;--ink:#1a1a1a;--lime:#c7e24e;--mustard:#f2c55c;--teal:#2a6f6a;--salmon:#f2a995;--indigo:#3549a8;--page-gutter:48px;color:var(--ink);font-family:Outfit,sans-serif;font-synthesis:none;scroll-behavior:smooth;scrollbar-color:var(--teal) var(--sand)}
*{box-sizing:border-box}
body,h1,h2,p,figure{margin:0}
body{background:var(--sand);line-height:1.5}
a{color:inherit;text-decoration:none;text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
a:focus-visible{outline:3px solid var(--indigo);outline-offset:6px}
::selection{background:var(--lime);color:var(--ink)}
img{display:block;max-width:100%}
.container{width:calc(100% - var(--page-gutter)*2);max-width:1200px;margin-inline:auto}
.skip-link{position:absolute;left:20px;top:12px;padding:12px 18px;background:var(--lime);transform:translateY(-180%);z-index:2}
.skip-link:focus{transform:translateY(0)}
.masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:28px 20px;border-bottom:1px solid var(--ink)}
.brand{display:block;flex:none;width:131.35px}
.brand img{width:100%;height:auto}
.brand-header{width:219px}
.location{font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}
nav{display:flex;align-items:center;gap:28px;font-size:16px}
nav a{display:inline-flex;align-items:center;min-height:44px}
.hero{padding-block:64px}
h1{font-size:clamp(54px,6.667vw,96px);font-weight:200;line-height:1.16;letter-spacing:0}
h1 span{display:inline-block;background:var(--lime);padding-inline:14px;line-height:1.05}
.intro{max-width:640px;margin-block:40px;font-size:32px;font-weight:300;line-height:1.375}
.session-photo>img{width:100%;aspect-ratio:1200/640;height:auto;object-fit:cover}
figcaption{margin-top:14px;font-size:16px;line-height:24px}
.community{padding-block:88px;background:#fff;scroll-margin-top:24px}
.community-layout{display:grid;grid-template-columns:680fr 456fr;align-items:center;gap:64px}
.community-photo{position:relative;aspect-ratio:680/480;overflow:hidden}
.community-photo img{position:absolute;width:100%;height:110.97%;max-width:none;top:-.03%;left:0}
.community-copy h2{font-size:40px;font-weight:700;line-height:1.15;margin-bottom:24px}
.body-copy{font-size:21px;line-height:31px}
.body-copy p+p{margin-top:31px}
.pencil-character{position:relative;overflow:hidden;width:176px;height:219px;margin-top:24px}
.pencil-character img{position:absolute;max-width:none;width:623.04%;height:470.42%;left:-523.04%;top:-19.1%}
.drawing{background:var(--teal);color:var(--sand);padding-block:88px}
.drawing-layout{display:grid;grid-template-columns:720fr 400fr;gap:80px;align-items:center}
.drawing h2{color:var(--mustard);font-size:48px;font-weight:600;line-height:58px;margin-bottom:28px}
.drawing-copy p{font-size:32px;font-weight:300;line-height:44px}
.drawing-copy p+p{margin-top:44px}
.portrait-mat{background:var(--salmon);padding:12.9125% 11.25% 13.0875%;aspect-ratio:400/480}
.portrait-photo{position:relative;width:100%;height:100%;overflow:hidden;aspect-ratio:310/376}
.portrait-photo img{position:absolute;max-width:none;width:119.86%;height:100.11%;left:.16%;top:-.05%}
.footer{background:var(--lime);padding-block:48px}
.footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:48px}
.contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:18px;line-height:28px}
.contact h2{font-size:20px;line-height:28px;font-weight:500}
@media(min-width:1440px){:root{--page-gutter:120px}}
@media(max-width:1100px){.masthead-inner{flex-wrap:wrap}.location{order:3;width:100%;margin-top:-8px}.community-layout{gap:40px}.drawing-layout{gap:48px;grid-template-columns:1.3fr 1fr}.drawing h2{font-size:38px;line-height:1.2}.drawing-copy p{font-size:26px;line-height:1.4}.community-copy h2{font-size:34px}.body-copy{font-size:19px;line-height:1.5}}
@media(max-width:767px){:root{--page-gutter:20px}.masthead-inner{gap:12px;padding-block:20px 18px}.brand{width:104px}nav{gap:20px;font-size:14px}.location{font-size:10px;margin-top:0}.hero{padding-block:40px}h1{font-size:clamp(46px,9vw,68px);line-height:1.15;max-width:620px}h1 span{padding-inline:9px}.intro{font-size:24px;line-height:1.4;margin-block:28px 32px;max-width:540px}.session-photo>img{aspect-ratio:4/3}figcaption{font-size:14px;line-height:1.5;margin-top:12px}.community{padding-block:56px}.community-layout{grid-template-columns:1fr;gap:32px}.community-photo{aspect-ratio:680/480}.community-copy h2{font-size:36px;line-height:1.15;margin-bottom:20px}.body-copy{font-size:19px;line-height:1.5;max-width:560px}.body-copy p+p{margin-top:24px}.pencil-character{margin-top:24px;width:140px;height:174px}.drawing{padding-block:56px}.drawing-layout{grid-template-columns:1fr;gap:36px}.drawing h2{font-size:36px;line-height:1.2;margin-bottom:24px}.drawing-copy p{font-size:24px;line-height:1.4}.drawing-copy p+p{margin-top:28px}.portrait-mat{width:min(100%,400px);justify-self:center}.footer{padding-block:36px}.footer-inner{gap:28px;flex-wrap:wrap}.contact{font-size:17px}.contact a{padding-block:4px}.contact h2{margin-bottom:4px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}
@media(max-width:767px){.brand-header{width:180px}}
/* Locale links stay at the top right, including narrow screens. */
.masthead-inner{position:relative;padding-top:48px}
nav .language-switch{position:absolute;right:0;top:0;display:flex;align-items:center;gap:9px;font-size:13px;white-space:nowrap}
.language-switch [aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px}
.hero{position:relative;z-index:0}
.community,.drawing,.footer{position:relative;z-index:1}
:lang(ja){font-family:Outfit,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-break:strict;word-break:normal;overflow-wrap:anywhere}
html:lang(ja) h1{font-size:clamp(40px,5.8vw,80px);line-height:1.5;font-weight:300}
html:lang(ja) h1 span{line-height:1.35}
html:lang(ja) .intro{font-size:28px;line-height:1.8;max-width:760px}
html:lang(ja) .community-copy h2{line-height:1.5;font-size:36px}
html:lang(ja) .body-copy{line-height:1.9;font-size:19px}
html:lang(ja) .drawing h2{font-size:40px;line-height:1.5}
html:lang(ja) .drawing-copy p{font-size:27px;line-height:1.8}
@media(max-width:767px){.masthead-inner{padding-top:52px}html:lang(ja) h1{font-size:clamp(34px,8.8vw,56px)}html:lang(ja) .intro{font-size:21px}html:lang(ja) .community-copy h2{font-size:30px}html:lang(ja) .body-copy{font-size:17px}html:lang(ja) .drawing h2{font-size:29px}html:lang(ja) .drawing-copy p{font-size:21px}}
@media(prefers-reduced-motion:reduce){.hero{transform:none!important}}
@media print{.hero{transform:none!important}}

/* Updated Home v5 masthead: location left, larger centered logo, navigation right. */
.masthead-inner{display:grid;grid-template-columns:minmax(0,1fr) 295px minmax(0,1fr);gap:28px;padding-top:44px}
.masthead .location{grid-column:1;grid-row:1;order:initial;width:auto;margin:0}
.brand-header{grid-column:2;grid-row:1;width:295px;justify-self:center}
.masthead nav{grid-column:3;grid-row:1;justify-self:end;white-space:nowrap}
@media(max-width:1000px){.masthead-inner{grid-template-columns:1fr;gap:10px}.brand-header{grid-column:1;grid-row:1}.masthead .location{grid-column:1;grid-row:2;text-align:center}.masthead nav{grid-column:1;grid-row:3;justify-self:center}}
@media(max-width:767px){.brand-header{width:240px;max-width:100%}.masthead-inner{padding-top:44px;gap:6px}}
