:root{
--paper:#f4f1e8;
--ink:#10100f;
--blue:#3d43ff;
--lime:#bdff27;
--line:#bcb9b0;
--shell:min(calc(100% - 48px),1180px)
}

*{
box-sizing:border-box
}
html{
scroll-behavior:smooth;
scroll-padding-top:82px
}
body{
margin:0;
background:var(--paper);
color:var(--ink);
font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
overflow-x:hidden
}
a{
color:inherit;
text-decoration:none
}
img{
display:block;
max-width:100%
}
.shell{
width:var(--shell);
margin-inline:auto
}
.site-header{
position:sticky;
top:0;
z-index:50;
background:rgba(244,241,232,.96);
border-bottom:1px solid #d8d5cc
}
.header-inner{
min-height:82px;
display:flex;
align-items:center;
justify-content:space-between
}
.brand{
display:flex;
align-items:center
}
.brand img{
width:40px;
height:40px;
object-fit:contain;
margin-right:10px;
transform:translateY(-6px)
}
.brand strong{
font-size:28px;
letter-spacing:-.06em
}
.brand span{
margin-left:14px;
font-size:9px;
font-weight:800;
letter-spacing:.15em
}
.desktop-nav{
display:flex;
align-items:center;
gap:34px;
font-size:13px;
font-weight:800
}
.contact-link{
padding:16px 23px;
border-radius:999px;
background:var(--ink);
color:#fff
}
.mobile-nav{
display:none
}
.back-to-top{
position:fixed;
right:24px;
bottom:24px;
z-index:40;
display:grid;
place-items:center;
width:52px;
height:52px;
border:1px solid var(--ink);
border-radius:50%;
background:var(--paper);
color:var(--ink);
font-size:26px;
font-weight:700;
line-height:1;
box-shadow:4px 4px 0 var(--blue)
}
.back-to-top:hover{
background:var(--blue);
color:#fff
}
.back-to-top:focus-visible{
outline:2px solid var(--blue);
outline-offset:3px
}
.pc-only{
display:inline
}
.sp-only{
display:none
}
.hero{
position:relative;
isolation:isolate;
width:100%;
min-height:780px;
overflow:hidden;
background:transparent
}
.hero-image{
position:absolute;
z-index:-2;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:right center
}
.hero-shade{
position:absolute;
z-index:-1;
inset:0;
background:linear-gradient(90deg,rgba(244,241,232,.42),rgba(244,241,232,.2) 52%,transparent)
}
.hero-copy{
width:min(calc(100% - 48px),940px);
margin-left:max(24px,calc((100% - 1180px)/2));
min-height:780px;
padding:92px 0 72px;
display:flex;
flex-direction:column;
justify-content:center
}
.hero-kicker{
margin:0 0 40px;
font-size:11px;
font-weight:800;
letter-spacing:.12em
}
.hero-kicker b{
margin-right:12px;
padding:7px 9px;
background:var(--blue);
color:#fff
}
.hero-label{
width:max-content;
margin:0 0 22px;
padding:6px 9px;
background:rgba(244,241,232,.88);
color:var(--blue);
font-size:10px;
font-weight:900;
letter-spacing:.14em
}
.hero h1{
margin:0;
display:flex;
flex-direction:column;
align-items:flex-start;
font-size:clamp(52px,5.2vw,78px);
line-height:.96;
letter-spacing:-.075em;
font-weight:950
}
.hero h1>span{
padding:.03em .1em .08em;
background:rgba(244,241,232,.9);
box-shadow:5px 0 rgba(244,241,232,.9),-5px 0 rgba(244,241,232,.9);
white-space:nowrap
}
.hero h1 .hero-sub{
margin-top:14px;
font-size:.59em;
line-height:1.12
}
.hero-sub b{
margin-right:.2em;
padding:.03em .16em .08em;
background:var(--lime)
}
.hero-sub em{
font-style:normal
}
.rock-copy{
width:max-content;
max-width:100%;
margin:22px 0 0;
padding:9px 12px;
background:var(--ink);
color:#fff;
font-size:15px;
font-weight:700
}
.rock-copy strong{
margin-left:.55em;
color:var(--lime)
}
.hero-lead{
max-width:540px;
margin:38px 0 0;
padding:12px 14px;
background:rgba(244,241,232,.83);
font-size:16px;
font-weight:600;
line-height:2
}
.button{
display:flex;
align-items:center;
justify-content:space-between;
width:220px;
margin-top:38px;
padding:18px 22px;
border-radius:999px;
font-size:13px;
font-weight:800
}
.button.dark{
background:var(--ink);
color:#fff
}
.ticker{
padding:14px;
background:var(--ink);
color:var(--lime);
overflow:hidden;
white-space:nowrap;
font-size:13px;
font-weight:900;
letter-spacing:.08em
}
.section{
padding-block:120px
}
.section-label,.footer-label{
font-size:10px;
font-weight:900;
letter-spacing:.18em
}
.split-heading{
display:grid;
grid-template-columns:1fr 1fr;
gap:8vw;
align-items:end;
margin-bottom:70px
}
.split-heading h2,.archive-heading h2{
margin:16px 0 0;
font-size:clamp(48px,6vw,82px);
line-height:1;
letter-spacing:-.07em
}
.split-heading>div:last-child,.split-heading>p{
max-width:510px;
font-size:16px;
font-weight:600;
line-height:2
}
.date-pill{
display:inline-block;
margin-top:15px;
padding:8px 12px;
background:var(--lime);
font-size:12px;
font-weight:900
}
.tech-feature{
display:grid;
grid-template-columns:1fr;
border:1px solid var(--ink);
background:#fff
}
.tech-feature>img{
width:100%;
height:auto;
min-height:0;
object-fit:contain
}
.tech-feature-content{
padding:36px 42px 42px;
display:grid;
grid-template-columns:1fr 1fr;
gap:56px;
align-items:end
}
.tech-feature-summary{align-self:start}
.tech-feature-details{display:flex;flex-direction:column}
.tech-feature-details dl{margin:0}
.tech-feature h3{
margin:12px 0;
font-size:48px;
line-height:1;
letter-spacing:-.06em
}
.tech-feature p{
line-height:1.8
}
.tech-feature dl div{
display:grid;
grid-template-columns:70px 1fr;
padding:13px 0;
border-top:1px solid var(--line)
}
.tech-feature-cta{
display:flex;
align-items:center;
justify-content:center;
gap:28px;
align-self:flex-start;
margin-top:22px;
padding:15px 48px;
border-radius:999px;
background:var(--blue);
color:#fff;
font-size:14px;
font-weight:900;
position:relative
}
.tech-feature-cta span{
font-size:20px;
line-height:1;
position:absolute;
right:18px
}
dt{
font-size:9px;
font-weight:900;
letter-spacing:.12em
}
dd{
margin:0;
font-size:13px;
font-weight:700
}
.program-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
margin-top:48px;
border-top:1px solid var(--ink);
border-left:1px solid var(--ink)
}
.program-card{
min-width:0;
padding:30px;
border-right:1px solid var(--ink);
border-bottom:1px solid var(--ink);
background:var(--paper)
}
.program-card>p:first-child{
display:flex;
justify-content:space-between;
color:var(--blue);
font-size:9px;
font-weight:900;
letter-spacing:.12em
}
.program-card>p:first-child b{
font-size:23px
}
.program-card h3{
min-height:92px;
margin:28px 0 12px;
font-size:28px;
line-height:1.18;
letter-spacing:-.05em
}
.program-card>p:nth-of-type(2){
min-height:112px;
font-size:13px;
line-height:1.8
}
.program-card dl{
display:grid;
grid-template-columns:48px 1fr;
gap:10px 8px;
padding:20px 0;
border-top:1px solid var(--line)
}
.program-card small{
display:inline-block;
padding:7px 9px;
background:#fff;
border:1px solid var(--ink);
font-weight:900
}
.program-card footer{
margin-top:25px;
padding-top:16px;
border-top:1px solid var(--line);
font-size:11px;
font-weight:800
}
.principles{
padding:110px 0 0;
background:var(--ink);
color:#fff
}
.principles-grid{
display:grid;
grid-template-columns:1.15fr .85fr;
gap:40px
}
.lime{
color:var(--lime)
}
.principles h2{
margin:20px 0;
font-size:clamp(48px,6vw,82px);
line-height:.98;
letter-spacing:-.07em
}
.principle-list article{
display:grid;
grid-template-columns:45px 170px 1fr;
align-items:start;
padding:28px 0;
border-top:1px solid #4b4b48
}
.principle-list article:last-child{
border-bottom:1px solid #4b4b48
}
.principle-list b{
color:var(--lime)
}
.principle-list h3{
margin:0;
font-size:20px
}
.principle-list p{
margin:0;
font-size:13px;
line-height:1.8
}
.collage{
display:grid;
grid-template-columns:1.5fr 1fr 1fr;
grid-template-rows:240px 210px;
gap:12px;
margin-top:80px
}
.collage img{
width:100%;
height:100%;
object-fit:cover
}
.collage img:first-child{
grid-row:1/3
}
.collage img:nth-child(4),.collage img:nth-child(5){
grid-column:auto
}
.movement .split-heading{
margin-bottom:50px
}
.movement h2 span{
white-space:nowrap
}
.join-strip{
display:grid;
grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--ink);
border-left:1px solid var(--ink)
}
.join-strip span{
padding:25px 18px;
border-right:1px solid var(--ink);
border-bottom:1px solid var(--ink);
font-size:11px;
font-weight:900
}
.archive-heading{
margin-bottom:55px
}
.archive-stack{
border-top:1px solid var(--ink)
}
.archive{
display:grid;
grid-template-columns:210px 1fr 50px;
align-items:center;
min-height:150px;
padding:25px;
border:1px solid var(--ink);
border-top:0;
background:var(--ink);
color:#fff
}
.archive.blue{
background:var(--blue)
}
.archive.lime-bg{
background:var(--lime);
color:var(--ink)
}
.archive>strong{
font-size:40px;
letter-spacing:-.06em
}
.archive strong small{
font-size:10px
}
.archive>span b,.archive>span small{
display:block
}
.archive>span b{
font-size:27px
}
.archive>span small{
margin-top:8px
}
.archive i{
font-size:25px;
font-style:normal
}
.site-footer{
padding:90px 0 20px;
background:var(--ink);
color:#fff
}
.partner-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
margin-top:30px;
border-top:1px solid #444;
border-left:1px solid #444
}
.partner-grid a{
display:flex;
min-width:0;
min-height:190px;
padding:20px;
flex-direction:column;
border-right:1px solid #444;
border-bottom:1px solid #444
}
.partner-grid img{
width:100%;
height:110px;
padding:15px;
object-fit:contain;
background:#fff
}
.partner-grid span{
margin-top:auto;
padding-top:12px;
font-size:10px
}
.support-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:50px;
margin-top:70px
}
.support-grid article>p{
color:var(--lime);
font-size:10px;
font-weight:900;
letter-spacing:.15em
}
.special-sponsor{
position:relative;
min-height:260px;
overflow:hidden
}
.special-sponsor>img{
width:100%;
height:260px;
object-fit:cover;
filter:brightness(.62)
}
.special-sponsor>div{
position:absolute;
inset:auto 20px 20px;
display:flex;
flex-direction:column
}
.special-sponsor b{
font-size:22px
}
.special-sponsor span{
font-size:12px
}
.support-grid ul{
columns:2;
margin:0;
padding:0;
list-style:none
}
.support-grid li{
break-inside:avoid;
padding:12px 0;
border-bottom:1px solid #444;
font-size:12px
}
.people-link{
display:grid;
grid-template-columns:190px 1fr 30px;
align-items:center;
gap:25px;
margin-top:70px;
padding:35px;
border:1px solid #fff
}
.people-link span{
color:var(--lime);
font-size:9px;
font-weight:900;
letter-spacing:.15em
}
.people-link strong{
font-size:30px
}
.people-link i{
font-style:normal;
font-size:22px
}
.footer-bottom{
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
margin-top:80px;
padding-top:50px;
border-top:1px solid #444
}
.footer-bottom>div:first-child b{
font-size:42px;
letter-spacing:-.06em
}
.footer-bottom p{
font-size:12px;
line-height:1.8
}
.footer-bottom>div:last-child{
display:grid;
grid-template-columns:1fr 1fr;
gap:25px
}
.footer-copyright{
margin:36px 0 0;
padding-top:24px;
border-top:1px solid #444;
font-size:11px;
line-height:1.5;
text-align:center
}

@media(min-width:981px) and (max-width:1179px){
html,body{
min-width:1180px;
overflow-x:auto
}
}

@media(max-width:980px){
:root{
--shell:min(calc(100% - 40px),820px)
}
.desktop-nav{
display:none
}
.pc-only{
display:none
}
.sp-only{
display:inline
}
.mobile-nav{
display:block;
position:static
}
.mobile-nav summary{
list-style:none;
display:grid;
place-items:center;
width:44px;
height:44px;
padding:0;
border:0;
cursor:pointer
}
.mobile-nav summary:focus{
outline:0
}
.mobile-nav summary:focus-visible{
outline:2px solid var(--blue);
outline-offset:3px
}
.mobile-nav summary::-webkit-details-marker{
display:none
}
.menu-toggle,.menu-toggle::before,.menu-toggle::after{
display:block;
width:24px;
height:2px;
background:currentColor;
transition:transform .2s ease,background .2s ease
}
.menu-toggle{
position:relative
}
.menu-toggle::before,.menu-toggle::after{
content:"";
position:absolute;
left:0
}
.menu-toggle::before{
top:-8px
}
.menu-toggle::after{
top:8px
}
.mobile-nav[open] .menu-toggle{
background:transparent
}
.mobile-nav[open] .menu-toggle::before{
top:0;
transform:rotate(45deg)
}
.mobile-nav[open] .menu-toggle::after{
top:0;
transform:rotate(-45deg)
}
.sr-only{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0
}
.mobile-nav nav{
position:absolute;
right:0;
top:100%;
width:100%;
padding:16px;
background:var(--ink);
color:#fff
}
.mobile-nav nav a{
display:block;
padding:14px;
border-bottom:1px solid #444
}
.hero-image{
object-fit:cover;
object-position:38% center
}
.hero-copy{
width:var(--shell);
margin-inline:auto
}
.hero-shade{
background:linear-gradient(90deg,rgba(244,241,232,.9),rgba(244,241,232,.72) 62%,rgba(61,67,255,.12))
}
.tech-feature{
grid-template-columns:1fr
}
.tech-feature-content{
grid-template-columns:1fr;
gap:24px
}
.tech-feature-cta{
align-self:center
}
.program-grid{
grid-template-columns:repeat(2,1fr)
}
.program-card h3,.program-card>p:nth-of-type(2){
min-height:0
}
.principles-grid{
grid-template-columns:1fr
}
.partner-grid{
grid-template-columns:repeat(3,1fr)
}
.footer-bottom{
grid-template-columns:1fr
}

}

@media(max-width:640px){
:root{
--shell:calc(100% - 32px)
}
html{
scroll-padding-top:68px
}
.header-inner{
min-height:68px
}
.brand img{
width:33px;
height:33px
}
.brand strong{
font-size:22px
}
.brand span{
display:none
}
.back-to-top{
right:16px;
bottom:16px;
width:44px;
height:44px;
font-size:22px;
box-shadow:3px 3px 0 var(--blue)
}
.hero{
min-height:780px
}
.hero-copy{
min-height:780px;
padding:68px 0 55px
}
.hero-shade{
background:rgba(244,241,232,.82)
}
.hero-kicker{
margin-bottom:32px
}
.hero-label{
padding:0;
background:transparent;
font-size:8px
}
.hero h1{
font-size:clamp(43px,13vw,56px)
}
.hero h1>span{
white-space:normal
}
.hero h1 .hero-sub{
font-size:clamp(22px,7vw,30px)
}
.hero-sub b,.hero-sub em{
display:block;
width:max-content
}
.hero-sub em{
margin-top:6px
}
.rock-copy{
width:100%;
font-size:12px;
line-height:1.5
}
.rock-copy strong{
display:block;
margin:2px 0 0
}
.hero-lead{
margin-top:28px;
padding:12px;
font-size:14px;
line-height:1.8
}
.section{
padding-block:80px
}
.movement{
padding-bottom:40px
}
.movement .split-heading{
margin-bottom:32px
}
#archive{
padding-top:40px
}
.split-heading{
grid-template-columns:1fr;
gap:32px;
margin-bottom:45px
}
.split-heading h2,.archive-heading h2,.principles h2{
font-size:48px
}
.tech-feature>img{
min-height:0
}
.tech-feature-content{
padding:25px
}
.tech-feature h3{
font-size:37px
}
.program-grid{
grid-template-columns:1fr
}
.program-card{
padding:25px
}
.principle-list article{
grid-template-columns:35px 1fr
}
.principle-list article p{
grid-column:2;
margin-top:10px
}
.collage{
grid-template-columns:1fr 1fr;
grid-template-rows:190px 150px 150px
}
.collage img:first-child{
grid-column:1/3;
grid-row:auto
}
.join-strip{
grid-template-columns:1fr 1fr
}
.archive{
grid-template-columns:1fr 30px;
min-height:160px
}
.archive>strong{
grid-column:1/3;
font-size:28px
}
.archive>span b{
font-size:21px
}
.partner-grid{
grid-template-columns:repeat(2,1fr)
}
.partner-grid a{
min-height:160px;
padding:12px
}
.partner-grid img{
height:90px
}
.support-grid{
grid-template-columns:1fr
}
.support-grid ul{
columns:1
}
.people-link{
grid-template-columns:1fr 25px;
padding:25px
}
.people-link span{
grid-column:1/3
}
.people-link strong{
font-size:23px
}
.footer-bottom>div:last-child{
grid-template-columns:1fr;
gap:14px
}
.footer-bottom{
gap:26px;
margin-top:48px;
padding-top:32px
}
.footer-bottom p{
margin:10px 0 0
}
.footer-bottom>div:last-child p{
margin:0
}
.footer-copyright{
margin-top:24px;
padding-top:16px
}
}

@media(prefers-reduced-motion:reduce){
html{
scroll-behavior:auto
}

}

/* People page */
.people-hero{
position:relative;
isolation:isolate;
overflow:hidden;
background:var(--blue);
color:#fff
}
.people-hero::after{
content:"";
position:absolute;
z-index:-1;
inset:0;
background:linear-gradient(90deg,rgba(61,67,255,.98),rgba(61,67,255,.9) 42%,rgba(61,67,255,.56) 68%,rgba(16,16,15,.18))
}
.people-hero-photo{
position:absolute;
z-index:-2;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center 54%;
filter:saturate(.72) contrast(1.06)
}
.people-hero-logo{
position:absolute;
z-index:2;
top:34px;
right:max(28px,calc((100vw - min(100% - 48px,1180px))/2));
width:104px;
height:104px;
border-radius:20px;
box-shadow:12px 12px 0 var(--lime);
transform:rotate(3deg)
}
.people-hero-grid{
position:relative;
z-index:1;
min-height:560px;
padding-block:100px;
display:grid;
grid-template-columns:1.3fr .7fr;
align-items:center;
gap:8vw
}
.people-hero-grid>div>p{
margin:0 0 28px;
color:var(--lime);
font-size:10px;
font-weight:900;
letter-spacing:.16em
}
.people-hero h1{
margin:0;
font-size:clamp(48px,6vw,82px);
line-height:.94;
letter-spacing:-.075em
}
.people-hero h1 span{
display:block;
white-space:nowrap
}
.people-hero-grid>p{
margin:0;
padding:20px;
background:rgba(16,16,15,.76);
font-size:15px;
line-height:2;
font-weight:600
}
.people-role-guide{
padding-block:90px
}
.people-role-guide>div{
display:grid;
grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--ink);
border-left:1px solid var(--ink)
}
.people-role-guide article{
min-height:120px;
padding:20px;
display:flex;
flex-direction:column;
justify-content:space-between;
border-right:1px solid var(--ink);
border-bottom:1px solid var(--ink)
}
.people-role-guide strong{
color:var(--blue);
font-size:13px
}
.people-role-guide span{
font-size:11px;
line-height:1.6
}
.people-list{
padding-bottom:140px
}
.people-list-heading{
display:grid;
grid-template-columns:1fr 1fr;
gap:8vw;
align-items:end;
margin-bottom:58px
}
.people-list-heading .section-label{
grid-column:1/-1;
margin-bottom:0
}
.people-list-heading h2{
margin:0;
font-size:clamp(44px,5vw,72px);
line-height:1.05;
letter-spacing:-.065em
}
.people-list-heading>p:last-child{
margin:0;
font-size:13px;
line-height:1.9
}
.person-group+.person-group{
margin-top:80px
}
.person-group-heading{
padding:0 0 16px;
display:flex;
align-items:end;
justify-content:space-between;
gap:24px
}
.person-group-heading h3{
margin:0;
font-size:clamp(28px,3.2vw,46px);
line-height:1;
letter-spacing:-.055em
}
.person-group-heading span{
color:var(--blue);
font-size:9px;
font-weight:900;
letter-spacing:.14em
}
.people-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
border-top:1px solid var(--ink);
border-left:1px solid var(--ink)
}
.person-card{
min-width:0;
padding:24px;
border-right:1px solid var(--ink);
border-bottom:1px solid var(--ink)
}
.person-visual{
aspect-ratio:1.35;
margin-bottom:22px;
overflow:hidden;
background:var(--blue)
}
.person-visual img{
width:100%;
height:100%;
object-fit:cover;
object-position:top center;
filter:grayscale(1)
}
.person-tags{
min-height:52px;
display:flex;
flex-wrap:wrap;
align-content:flex-start;
gap:5px
}
.person-tags span{
padding:5px 7px;
border:1px solid var(--ink);
font-size:8px;
font-weight:900
}
.person-card h4{
margin:12px 0 7px;
font-size:28px;
letter-spacing:-.05em
}
.person-nickname{
margin:0 0 12px;
color:var(--blue);
font-size:12px;
font-weight:900
}
.person-organization{
min-height:34px;
margin:0;
font-size:11px;
line-height:1.55;
font-weight:800
}
.person-company-title{
margin:6px 0 0;
color:#66665f;
font-size:10px;
font-weight:800
}
.person-meta{
margin:18px 0 0;
padding-top:14px;
display:grid;
grid-template-columns:48px 1fr;
gap:8px 12px;
border-top:1px solid rgba(15,15,13,.22);
font-size:11px;
line-height:1.5
}
.person-meta dt{
color:var(--blue);
font-weight:900
}
.person-meta dd{
margin:0;
font-weight:800
}
.people-footer{
padding-top:0
}
.people-footer .footer-bottom{
margin-top:0
}

@media(max-width:980px){
.people-hero-grid,.people-list-heading{
grid-template-columns:1fr;
gap:40px
}
.people-role-guide>div{
grid-template-columns:repeat(2,1fr)
}
.people-grid{
grid-template-columns:repeat(2,1fr)
}

}

@media(max-width:640px){
.people-hero-grid{
min-height:500px;
padding-block:75px
}
.people-hero h1{
font-size:clamp(38px,11.5vw,50px)
}
.people-hero::after{
background:linear-gradient(180deg,rgba(61,67,255,.94),rgba(61,67,255,.76) 64%,rgba(16,16,15,.26))
}
.people-hero-photo{
object-position:62% center
}
.people-hero-logo{
top:22px;
right:22px;
width:72px;
height:72px;
border-radius:14px;
box-shadow:7px 7px 0 var(--lime)
}
.people-role-guide>div,.people-grid{
grid-template-columns:1fr
}
.people-role-guide{
padding-block:60px
}
.people-role-guide article{
min-height:0;
padding:20px;
justify-content:flex-start;
gap:16px
}
.people-list{
padding-bottom:80px
}
.person-group+.person-group{
margin-top:60px
}
.person-card{
padding:24px
}
.person-tags{
min-height:0;
margin-bottom:16px
}
.person-card h4{
margin-top:0
}
}
