@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@400;500&family=Ubuntu:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700;800&display=swap');
:root{--ink:#171717;--paper:#fff;--yellow:#f5f51b;--orange:#f56b3b;--cyan:#16e9e6;--green:#39e99b;--line:2px solid var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Ubuntu','M PLUS 1',sans-serif;font-size:18px;line-height:1.45}.site-header{height:72px;border-bottom:var(--line);display:flex;align-items:center;position:sticky;top:0;background:#fff;z-index:5}.brand{width:27%;height:100%;display:flex;align-items:center;padding:14px 28px;border-right:var(--line)}.brand img{width:122px;height:auto}.site-nav{display:flex;justify-content:space-around;align-items:center;flex:1;height:100%}.site-nav a,.section-bar a,.site-footer a{color:inherit;text-decoration:none}.site-nav a:hover,.section-bar a:hover,.site-footer a:hover{text-decoration:underline}.menu-toggle{display:none}.ticker{height:54px;background:var(--yellow);border-bottom:var(--line);display:grid;place-items:center;font-family:'M PLUS 1',sans-serif;font-size:23px}.hero{background:var(--orange);border-bottom:var(--line);padding:34px 48px 0}.hero-image{max-width:920px;margin:0 auto}.hero-image img{display:block;width:100%;height:430px;object-fit:cover}.hero-caption{text-align:center;padding:18px;font-family:'M PLUS 1',sans-serif;font-size:24px}.section{border-bottom:var(--line)}.section-title,.section-bar{padding:20px 50px;font-size:30px}.about{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:2fr 1fr;min-height:420px}.about .section-title{grid-row:span 2;border-right:var(--line);align-self:stretch;display:flex;align-items:flex-end}.about-map{grid-column:2;grid-row:1;padding:34px 50px;font-family:'M PLUS 1',sans-serif;font-size:clamp(32px,5vw,72px);background:radial-gradient(#111 .8px,transparent .9px);background-size:5px 5px}.about-map small{display:block;font-size:16px;line-height:1.7;margin-top:12px}.about-copy{grid-column:2;grid-row:2;border-top:var(--line);padding:26px 50px;font-family:'M PLUS 1',sans-serif;width:66.666%;min-height:clamp(180px,20vw,320px);aspect-ratio:3 / 1}.about-copy strong{font-size:clamp(18px,2vw,28px);font-weight:400}.about-copy p{margin:14px 0 0}.zine{display:grid;grid-template-columns:50% 50%;min-height:420px}.zine-copy{padding:38px 50px;border-right:var(--line);font-family:'M PLUS 1',sans-serif}.zine-copy p{max-width:620px}.zine-copy h2{font-size:25px;font-weight:400;margin:34px 0 18px}.zine-copy small{font-size:15px}.sub-label{font-size:29px;margin-top:30px}.zine-image img{display:block;width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover}.section-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:var(--line)}.section-bar h2{font-size:30px;font-weight:400;margin:0}.section-bar a{font-size:17px}.tools .section-bar,.tools .tool-grid{background:var(--cyan)}.tools .section-bar{min-height:72px}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr)}.tool-grid div{aspect-ratio:1 / 1;display:grid;place-content:center;text-align:center;border-right:var(--line);border-bottom:var(--line);padding:20px;font-size:20px}.tool-grid div:nth-child(3n){border-right:0}.work-grid{display:grid;grid-template-columns:repeat(3,1fr)}.work-grid article{border-right:var(--line)}.work-grid article:nth-child(3n){border-right:0}.work-grid img{width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover;display:block}.work-grid h3{font-size:19px;font-weight:400;margin:16px 24px 0}.work-grid p{font-size:14px;margin:0 24px 20px}.contact .section-bar,.contact .contact-grid{background:var(--green)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr)}.contact-grid>div{aspect-ratio:2 / 3;padding:30px 50px;border-right:var(--line);font-family:'M PLUS 1',sans-serif}.contact-grid>div:last-child{border-right:0}.dot-band{height:90px;background:radial-gradient(#111 .8px,transparent .9px);background-size:5px 5px;border-bottom:var(--line)}.site-footer{display:flex;justify-content:space-between;padding:22px 28px;font-size:14px}
@media (min-width:701px) and (max-width:1100px){.work-grid{grid-template-columns:repeat(2,1fr)}.work-grid article:nth-child(3n){border-right:var(--line)}.work-grid article:nth-child(2n){border-right:0}.tool-grid{grid-template-columns:repeat(3,1fr)}.brand{width:22%}}
@media(max-width:700px){body{font-size:16px}.site-header{height:58px}.brand{width:auto;flex:1;padding:10px 18px;border-right:0}.brand img{width:95px}.menu-toggle{display:block;background:none;border:0;font:inherit;padding:18px}.site-nav{position:absolute;display:none;top:58px;left:0;right:0;height:auto;background:#fff;border-bottom:var(--line);flex-direction:column;align-items:stretch}.site-nav.is-open{display:flex}.site-nav a{padding:16px 20px;border-top:var(--line)}.ticker{height:42px;font-size:16px;line-height:42px}.hero{padding:18px 18px 0}.hero-image img{height:260px}.hero-caption{padding:12px 4px;font-size:17px}.section-title,.section-bar{padding:15px 20px;font-size:23px}.about{display:block;min-height:0}.about .section-title{min-height:130px;border-right:0;align-items:flex-end}.about-map{padding:24px 20px;min-height:190px;font-size:42px}.about-map small{font-size:14px}.about-copy{padding:24px 20px;width:100%;min-height:0;aspect-ratio:auto}.zine{display:flex;flex-direction:column}.zine-image{order:-1}.zine-copy{padding:24px 20px;border-right:0}.zine-image img{min-height:0;height:auto;aspect-ratio:1 / 1}.tool-grid,.work-grid,.contact-grid{grid-template-columns:1fr}.tool-grid div{min-height:130px;aspect-ratio:1 / 1;border-right:0;border-bottom:var(--line);font-size:17px}.tool-grid div:last-child{border-bottom:0}.work-grid article{border-right:0;border-bottom:var(--line)}.work-grid article:nth-child(3n){border-right:0}.work-grid img{height:auto;aspect-ratio:1 / 1}.contact-grid>div{min-height:0;aspect-ratio:2 / 3;padding:24px 20px;border-right:0;border-bottom:var(--line)}.contact-grid>div:last-child{border-bottom:0}.site-footer{padding:18px;gap:10px;flex-wrap:wrap}}

/* v2 editorial grid: cards remain discoverable by horizontal scrolling. */
.tool-grid,.work-grid{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin}
.tool-grid{grid-auto-flow:column;grid-template-columns:none;grid-template-rows:1fr;grid-auto-columns:calc((100% - 4px) / 3)}
.work-grid{grid-auto-flow:column;grid-template-columns:none;grid-template-rows:1fr;grid-auto-columns:calc((100% - 4px) / 3)}
.tool-grid > div,.work-grid > article{scroll-snap-align:start;min-width:0}
.about-copy,.zine-copy,.work-grid p{overflow-wrap:anywhere;text-wrap:pretty}
.about-copy p{max-width:52em;margin:18px 0 0}
.activity-line{padding-top:8px;line-height:1.8}
.tool-grid small{font-size:.7em;line-height:1.4}
@media (min-width:701px) and (max-width:1100px){.tool-grid,.work-grid{grid-auto-columns:calc((100% - 2px) / 2)}}
@media(max-width:700px){.tool-grid,.work-grid{grid-auto-columns:100%;grid-template-rows:none}.tool-grid > div,.work-grid > article{border-right:0}.about-copy p{margin-top:16px}.activity-line{line-height:1.7}}

/* Corrections from the latest layout review. */
.hero{padding:0}
.hero-image{max-width:none;width:100%;aspect-ratio:3 / 1;padding:24px 24px 0}
.hero-image img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.about{grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-template-rows:auto;min-height:0}
.about-region{grid-column:1;display:flex;flex-direction:column;border-right:var(--line);min-width:0}
.about-region .section-title{border-right:0;min-height:0}
.about-map{position:relative;aspect-ratio:1 / 1;padding:0;overflow:hidden;background:#fff}
.about-map img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15);opacity:.22}
.map-caption{position:absolute;inset:auto 0 0;padding:18px 24px;background:transparent;font-family:'M PLUS 1',sans-serif;font-size:clamp(25px,3vw,48px)}
.map-name{display:block;font-size:50%;line-height:1;margin-bottom:10px}
.map-caption small{display:block;font-size:13px;line-height:1.55;margin-top:4px}
.about-copy{grid-column:2;grid-row:1;width:100%;max-width:none;min-height:0;aspect-ratio:auto;border-top:0;padding:34px 50px}
.tool-grid > div,.work-grid > article{border-right:var(--line)!important;border-bottom:var(--line);}
.tool-grid > div:last-child,.work-grid > article:last-child{border-right:var(--line)!important}
.work-grid > article{position:relative;overflow:hidden}
.work-caption{background:var(--paper);min-height:clamp(150px,14vw,230px);padding-bottom:20px}
.work-detail{position:absolute;inset:0;background:rgba(23,23,23,.92);color:#fff;padding:28px 24px;font-family:'M PLUS 1',sans-serif;font-size:clamp(16px,1.5vw,23px);line-height:1.65;display:flex;flex-direction:column;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none}
.work-detail small{font-size:.7em;margin-top:12px}
.work-grid article:hover .work-detail,.work-grid article:focus-within .work-detail{opacity:1}
@media (min-width:701px) and (max-width:1100px){.about-copy{padding:28px 32px}.map-caption{padding:14px 18px}.work-grid > article:nth-child(3n){border-right:var(--line)!important}.work-grid > article:nth-child(2n){border-right:var(--line)!important}}
@media(max-width:700px){.hero{padding:0}.about{display:block}.about-region{border-right:0}.about-region .section-title{min-height:130px}.about-map{aspect-ratio:1 / 1}.about-copy{padding:24px 20px}.tool-grid > div,.work-grid > article{border-right:var(--line)!important;border-bottom:var(--line)}.work-grid > article:last-child,.tool-grid > div:last-child{border-right:var(--line)!important}.work-caption{min-height:150px}.contact-grid>div{aspect-ratio:3 / 2}}
.about-map img{display:none}
.tool-grid > div{display:flex;flex-direction:column;align-items:center;justify-content:center}
.tool-image{display:block;width:72%;height:55%;margin:0 auto 12px;object-fit:contain}
.work-grid > article{display:flex;flex-direction:column;aspect-ratio:3 / 4}
.work-grid > article > img{flex:0 0 auto;width:100%;height:auto;aspect-ratio:1 / 1}
.work-caption{flex:1 1 auto;height:auto;min-height:0;overflow:auto;padding-bottom:20px}
.work-detail{inset:0 0 25% 0}
.contact-grid>div{aspect-ratio:3 / 1}
@media(max-width:700px){.contact-grid>div{aspect-ratio:3 / 1}}
html,body{overflow-x:clip}
.contact-grid{width:100%;min-width:0;overflow:hidden}
.contact-grid>div{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.contact-grid>div{border-right:var(--line)!important;height:100%;align-self:stretch}
.contact-grid>div:last-child{border-right:var(--line)!important}
.ticker{height:50px;min-height:50px;line-height:normal;display:flex;align-items:center;justify-content:flex-start}
.hero-caption{height:50px;min-height:50px;padding:0;display:grid;place-items:center}
.tools .section-bar,.works .section-bar,.contact .section-bar{height:72px;min-height:72px;padding-top:0;padding-bottom:0}
@media(max-width:700px){.hero-image{padding:12px 12px 0}.ticker{height:50px;min-height:50px}.hero-caption{height:50px;min-height:50px}}
.ticker{display:block;overflow:hidden;white-space:nowrap;line-height:54px}.ticker-track{display:inline-flex;gap:12vw;padding-right:12vw;animation:ticker-right 34s linear infinite;will-change:transform}.ticker-track span{flex:none}@keyframes ticker-right{from{transform:translateX(-100%)}to{transform:translateX(100vw)}}
@media(max-width:700px){.ticker{line-height:42px}.ticker-track{animation-duration:28s}}
.ticker-track{animation-duration:102s;animation-name:ticker-left}@keyframes ticker-left{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}
@media(max-width:700px){.ticker-track{animation-duration:84s}}
.hero{background:var(--yellow)}.hero-image img{height:auto;aspect-ratio:3 / 1}.hero-caption{font-family:'M PLUS 1',sans-serif}.stripe-band{height:58px;border-bottom:var(--line);background:repeating-linear-gradient(135deg,#fff 0 14px,#fff 14px 18px,#777 18px 19px)}
@media(max-width:700px){.hero-image img{aspect-ratio:3 / 1;height:auto}.hero-caption{font-size:14px}.stripe-band{height:42px}}
.hero-image img{aspect-ratio:auto;height:100%}
@media(max-width:700px){.contact-grid>div,.contact-grid>div:last-child{border-right:0!important}}

/* Final editorial alignment */
.ticker{line-height:50px}
.ticker-track{height:50px;line-height:50px;align-items:center}
.contact-grid>div{display:grid;place-items:center;text-align:center}
.zine-copy h2,.zine-copy .sub-label{font-family:'Ubuntu','M PLUS 1',sans-serif}
.contact{font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif}
.contact-grid>div{font-family:inherit}
.contact-copy{display:block;width:100%;line-height:1.55}
.contact-copy-left{width:max-content;max-width:100%;text-align:left}
.contact .section-bar h2{font-family:'Ubuntu','M PLUS 1',sans-serif}
.contact-latin{font-family:'Ubuntu','M PLUS 1',sans-serif}
.contact,.contact-grid>div,.contact-copy,.contact-latin,.contact .section-bar h2{font-family:'Ubuntu','M PLUS 1',sans-serif}
.contact-grid>div{height:auto;align-self:stretch}
.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
.contact-grid{overflow:clip}
.contact-grid>div{width:100%;max-width:100%;min-width:0}
.map-caption{padding-left:50px;padding-right:50px}
.brand img{width:134px}
.site-nav a,.menu-toggle{font-size:110%}
.site-nav,.site-nav a,.menu-toggle,.site-footer,.site-footer a{font-family:'M PLUS Rounded 1c','M PLUS 1',sans-serif}
.site-nav,.site-nav a,.menu-toggle,.site-footer,.site-footer a{font-weight:800}
.stripe-band{background:radial-gradient(#111 .8px,transparent .9px);background-size:5px 5px}
@media(max-width:700px){
  .map-caption{padding-left:20px;padding-right:20px}
  .brand img{width:105px}
  .about-region{border-left:0;border-right:0;border-top:0;border-bottom:var(--line)}
  .about-map{aspect-ratio:auto;min-height:0;height:auto;padding:24px 20px}
  .about-map .map-caption{position:static;padding:0;font-size:42px}
  .tool-grid>div,.work-grid>article{border-left:0!important;border-right:0!important;border-bottom:var(--line)!important}
  .tool-grid>div:last-child,.work-grid>article:last-child{border-bottom:0!important}
  .tools,.works{border-bottom:var(--line)}
  .tools,.works{border-bottom:0!important}
  .tools .tool-grid,.works .work-grid{border-bottom:var(--line)}
  .contact-grid{grid-template-columns:1fr}
  .contact-grid>div{height:auto;aspect-ratio:3 / 1;padding:24px 20px}
  .contact-grid>div:nth-child(3){grid-column:auto}
}
@media(max-width:700px){.ticker{line-height:50px}.ticker-track{height:50px;line-height:50px}}
.site-nav a,.menu-toggle{font-size:100%}
.site-footer,.site-footer a{font-family:'Ubuntu','M PLUS 1',sans-serif;font-weight:400}
