/* The opening remains black until the first words arrive. */
html.intro-pending,html.intro-active,html.intro-pending body,html.intro-active body{background:#000;overflow:hidden;overscroll-behavior:none}
html.intro-pending body{visibility:hidden}
html.intro-active:not(.intro-entering-top) body>header,html.intro-active:not(.intro-entering-top) body>main,html.intro-active:not(.intro-entering-top) body>footer,html.intro-active body>.mobile-dock,html.intro-active body>.reading-progress,html.intro-active body>.skip-link{visibility:hidden}
.cinematic-intro{position:fixed;inset:0;z-index:500;background:#000;color:#eee;overflow:hidden;isolation:isolate;perspective:1100px;font-family:"Noto Serif JP","Yu Mincho",serif}
.intro-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.intro-skip{position:absolute;right:clamp(20px,4vw,64px);top:max(20px,env(safe-area-inset-top));z-index:20;min-height:44px;padding:10px 0 10px 18px;border:0;border-bottom:1px solid #7778;background:none;color:#b3b6bc;letter-spacing:.2em;font:10px/1.5 sans-serif;cursor:pointer;opacity:0;animation:intro-skip-in 1s 1.2s forwards}
.intro-skip span{margin-left:16px;color:#f0f1f4}.intro-skip:focus-visible{outline:1px solid #d9e2f8;outline-offset:6px;opacity:1}
.intro-space{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s}
.intro-horizon{position:absolute;width:82%;height:1px;top:50%;left:9%;background:linear-gradient(90deg,transparent,#a6b7d450,transparent);box-shadow:0 0 45px 10px #748bac14}
.intro-portal{position:absolute;top:50%;left:50%;width:min(55vw,640px);aspect-ratio:1;border:1px solid #b4c8e53b;border-radius:50%;transform:translate(-50%,-50%) rotateX(65deg);box-shadow:0 0 80px #a2b9dd0a,inset 0 0 90px #a2b9dd0a}
.intro-scene{position:absolute;inset:0;opacity:0;pointer-events:none}
.intro-statement{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:translateZ(-500px);filter:blur(18px)}
.intro-statement p{margin:0;display:grid;gap:20px;font-size:clamp(22px,3.2vw,46px);line-height:1.8;letter-spacing:.2em;font-weight:400}
.intro-statement span{display:block}.intro-statement>i{display:block;width:105px;height:1px;margin-top:40px;background:linear-gradient(90deg,transparent,#cbd6e5,transparent)}
[data-phase="statement"] .intro-statement{animation:dimension-words 3.75s both}
[data-phase="statement"] .intro-space,[data-phase="vxer"] .intro-space{opacity:1}
.intro-vxer{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:clamp(20px,4vw,64px);box-sizing:border-box}
.intro-vxer p{margin:0 20px 22px;font-size:clamp(12px,1.3vw,20px);letter-spacing:.28em;line-height:2}
.intro-vxer strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(72px,min(24vw,32svh),280px);line-height:1.3;padding:.08em .18em;max-width:100%;box-sizing:border-box;white-space:nowrap;letter-spacing:-.055em;background:linear-gradient(175deg,#fff 15%,#777d87 49%,#f3f6fc 55%,#6a717c 85%);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:0 0 90px #bbccef15}
[data-phase="vxer"] .intro-vxer{animation:vxer-arrival 3.5s both}
.intro-flash{position:absolute;inset:0;background:radial-gradient(ellipse,#a9bedc44,transparent 65%);opacity:0}
[data-phase="vxer"] .intro-flash{animation:single-flash .65s both}
.intro-identity{transition:opacity 1.15s,filter 1.2s,transform 1.6s;filter:blur(12px);transform:scale(1.04)}
.intro-duo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center;mask-image:linear-gradient(90deg,#000 0 49%,#000d 62%,transparent 83%)}
.intro-nameplate{position:absolute;left:62%;right:4%;top:48%;transform:translateY(-50%);text-align:left;perspective:700px}
.intro-nameplate>p{font:15px/1.5 sans-serif;letter-spacing:.22em;color:#c4cbd8;margin:0 0 30px}.intro-nameplate>p span{margin-left:10px;color:#f0f2f8}
.intro-names{position:relative;min-height:1.6em;font-size:clamp(26px,3.5vw,64px);letter-spacing:.08em;line-height:1.5;white-space:nowrap}
.intro-human,.intro-virtual{display:block;transition:transform 1.25s cubic-bezier(.2,.7,.2,1),filter 1.2s,opacity 1.2s}
.intro-virtual{position:absolute;inset:0;opacity:0;filter:blur(16px);transform:translateZ(-200px) rotateX(-65deg);font-family:Georgia,serif;font-size:1.13em;letter-spacing:.05em}
.intro-name-rule{display:block;height:1px;width:100%;margin-top:20px;background:linear-gradient(90deg,#bdcbdf8c,transparent);transform-origin:left;transition:transform 1s}
[data-phase="human"] .intro-identity,[data-phase="virtual"] .intro-identity,[data-phase="thread"] .intro-identity{opacity:1;filter:blur(0);transform:scale(1)}
[data-phase="virtual"] .intro-human,[data-phase="thread"] .intro-human,[data-phase="exit"] .intro-human{opacity:0;filter:blur(16px);transform:translateZ(180px) rotateX(60deg)}
[data-phase="virtual"] .intro-virtual,[data-phase="thread"] .intro-virtual,[data-phase="exit"] .intro-virtual{opacity:1;filter:blur(0);transform:translateZ(0) rotateX(0)}
.intro-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .5s;overflow:visible}
.intro-thread path{fill:none;stroke:#df203b;stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke}
.intro-thread .intro-thread-glow{stroke:#dc1237;stroke-width:7;filter:blur(6px);opacity:.6}
[data-phase="thread"] .intro-thread,[data-phase="exit"] .intro-thread{opacity:1}
[data-phase="thread"] .intro-thread path,[data-phase="exit"] .intro-thread path{stroke-dashoffset:0;transition:stroke-dashoffset 2s cubic-bezier(.2,.65,.2,1)}
.intro-iris{position:absolute;inset:0;pointer-events:none;opacity:0;box-shadow:inset 0 0 200px 50px #bccbe7}
[data-phase="exit"]{animation:dimension-exit 1.5s both;background:#0000}
[data-phase="exit"] .intro-identity{opacity:0;filter:blur(14px);transform:scale(1.12)}
[data-phase="exit"] .intro-iris{animation:portal-exit 1.5s both}
.intro-paused *,.intro-paused{animation-play-state:paused!important}
@keyframes intro-skip-in{to{opacity:1}}
@keyframes dimension-words{0%{opacity:0;filter:blur(18px);transform:translateZ(-500px);letter-spacing:1em}28%,78%{opacity:1;filter:blur(0);transform:translateZ(0)}100%{opacity:0;filter:blur(8px);transform:translateZ(100px)}}
@keyframes vxer-arrival{0%{opacity:0;transform:scale(1.23);filter:blur(12px)}12%,80%{opacity:1;transform:scale(1);filter:blur(0)}100%{opacity:0;transform:scale(.96);filter:blur(4px)}}
@keyframes single-flash{0%,100%{opacity:0}20%{opacity:1}}
@keyframes portal-exit{0%{opacity:0;transform:scale(.85)}35%{opacity:.25}100%{opacity:0;transform:scale(1.35)}}
@keyframes dimension-exit{0%{opacity:1;clip-path:circle(150% at 48% 50%)}100%{opacity:0;clip-path:circle(0 at 48% 50%);filter:blur(8px)}}
/* The two identities and their four paired ideas share one visual chapter. */
.duality-section .worldview-pairs{position:relative;margin:100px auto 0;padding-top:55px;max-width:760px}
.duality-section .worldview-pairs:before{content:"";position:absolute;top:0;left:50%;height:35px;width:1px;background:linear-gradient(#df203b,transparent)}
.related-artists{position:relative;padding-top:30px;padding-bottom:80px}
.artist-banner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.artist-banner{display:block;position:relative;aspect-ratio:2.15;min-width:0;overflow:hidden;isolation:isolate;border:1px solid #aab6cb45;background:#080b11;text-decoration:none;transition:border-color .4s,box-shadow .4s}
.artist-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#020309e8 0%,#020309b3 25%,#0203091a 66%,transparent);z-index:1;pointer-events:none}
.artist-banner img{width:100%;height:100%;object-fit:cover;object-position:65% center;transition:transform 1s cubic-bezier(.2,.6,.3,1)}
.banner-ichiki img{object-position:68% center}.banner-aibe{border-color:#98465366}
.banner-copy{position:absolute;z-index:3;left:7%;top:50%;transform:translateY(-50%);display:grid;gap:22px;color:#f8f7f5}
.banner-copy strong{font:400 clamp(30px,3vw,52px)/1.25 Georgia,"Yu Mincho",serif;letter-spacing:.13em;text-shadow:0 2px 24px #000}
.banner-copy>span{display:flex;align-items:center;gap:20px;font:9px/1.5 sans-serif;letter-spacing:.22em;color:#d0d4dd}.banner-copy b{font-size:17px;font-weight:400}
.artist-banner svg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.artist-banner path{fill:none;stroke:#d82742;stroke-width:1;opacity:.65;vector-effect:non-scaling-stroke}
.artist-banner:hover,.artist-banner:focus-visible{border-color:#e1dfe7;box-shadow:0 0 35px #a7bfd015}.artist-banner:hover img,.artist-banner:focus-visible img{transform:scale(1.045)}
#intro-replay{background:none;border:0;color:#b9c2d0;font:10px/1.5 sans-serif;letter-spacing:.16em;min-height:44px;padding:10px;cursor:pointer}#intro-replay:focus-visible{outline:1px solid #c5d2e9;outline-offset:3px}
@media(min-width:901px){.follow-section h2#follow-title{font-size:clamp(35px,4vw,56px);letter-spacing:.2em}.related-artists{padding-bottom:40px}}
@media(max-width:900px){.intro-duo{height:70%;width:140%;max-width:none;object-fit:cover;object-position:left 30%;mask-image:linear-gradient(#000 0 60%,transparent 98%)}.intro-nameplate{left:0;right:0;top:auto;bottom:11%;transform:none;text-align:center;padding:0 20px}.intro-nameplate>p{font-size:12px;margin-bottom:18px}.intro-names{font-size:clamp(28px,7vw,48px)}.intro-name-rule{max-width:230px;margin:22px auto 0}.intro-statement p{letter-spacing:.12em;gap:14px}.intro-vxer p{font-size:12px;letter-spacing:.13em}.intro-portal{width:86vw}.duality-section .worldview-pairs{margin-top:65px;padding-top:40px}.related-artists{padding-bottom:45px}.artist-banner-grid{gap:18px}.artist-banner{aspect-ratio:1.7}.banner-copy{gap:15px}.banner-copy strong{font-size:30px}.banner-copy>span{font-size:8px;gap:10px}}
@media(max-width:600px){.artist-banner-grid{grid-template-columns:1fr}.artist-banner{aspect-ratio:2.15}.banner-copy strong{font-size:34px}.intro-statement p{font-size:clamp(19px,5.2vw,28px)}.intro-duo{height:70%;width:160%;object-position:left top}.intro-nameplate{bottom:13%}}
@media(max-height:560px) and (min-width:601px){.intro-duo{height:100%;width:100%;mask-image:linear-gradient(90deg,#000 0 48%,transparent 85%)}.intro-nameplate{left:61%;right:3%;top:50%;bottom:auto;transform:translateY(-50%);padding:0;text-align:left}.intro-names{font-size:28px}.intro-statement p{font-size:25px}.intro-name-rule{margin-left:0}}
@media(prefers-reduced-motion:reduce){.cinematic-intro{display:none!important}.artist-banner,.artist-banner img{transition:none}.artist-banner:hover img,.artist-banner:focus-visible img{transform:none}#intro-replay{display:none}}
@media(max-width:900px) and (min-height:561px){.intro-duo{top:6%;height:auto;width:150%;object-fit:contain;mask-image:linear-gradient(#000 0 65%,transparent 98%)}}
@media(max-width:600px){.intro-duo{top:8%;height:auto;width:180%;object-fit:contain;mask-image:linear-gradient(#000 0 65%,transparent 98%)}}

/* Keep both portraits and their paired ideas in a single, bounded row. */
.duality-section .duality-grid{grid-template-columns:minmax(0,1fr) clamp(130px,14vw,180px) minmax(0,1fr);gap:clamp(12px,2.2vw,28px);align-items:center}
.duality-grid>.duality-card{min-width:0;margin:0;grid-row:1;align-self:start}
.duality-grid>.duality-card:first-child{grid-column:1}
.duality-grid>.duality-person-card{grid-column:3}
.duality-section .duality-grid>.worldview-pairs{grid-column:2;grid-row:1;position:relative;align-self:center;min-width:0;width:100%;max-width:none;margin:0 0 90px;padding:0;gap:24px;font-size:clamp(18px,1.7vw,24px);line-height:1.6;letter-spacing:.07em}
.duality-section .duality-grid>.worldview-pairs:before{display:none}
.duality-grid .worldview-pair{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:0;min-width:0}
.duality-grid .worldview-pair b{white-space:nowrap}
.duality-grid .worldview-pair i{font-size:.65em;line-height:1.4}
.duality-grid .duality-card h2{overflow-wrap:anywhere}
@media(min-width:601px) and (max-width:900px){
 .duality-section .duality-grid{grid-template-columns:minmax(0,1fr) clamp(100px,14vw,130px) minmax(0,1fr);gap:16px}
 .duality-section .duality-grid>.worldview-pairs{font-size:clamp(14px,1.8vw,17px);gap:20px;letter-spacing:.04em;margin-bottom:64px}
 .duality-grid .worldview-pair{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}
 .duality-grid .duality-card h2{font-size:clamp(22px,3.1vw,28px);letter-spacing:.08em}
 .duality-grid .duality-person-card h2{font-size:clamp(21px,2.8vw,26px);letter-spacing:.06em}
}
@media(max-width:600px){
 .duality-section .duality-grid{grid-template-columns:minmax(0,1fr) clamp(72px,14vw,96px) minmax(0,1fr);gap:clamp(8px,2vw,12px)}
 .duality-section .duality-grid>.worldview-pairs{font-size:clamp(12px,3.1vw,14px);line-height:1.6;letter-spacing:.04em;gap:16px;margin-bottom:48px}
 .duality-grid .worldview-pair{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:0}
 .duality-grid .worldview-pair i{font-size:8px;line-height:1}
 .duality-grid .duality-card figcaption{padding:17px 0 0}
 .duality-grid .duality-card h2{font-size:clamp(14px,4vw,22px);letter-spacing:.05em;line-height:1.4}
 .duality-grid .duality-person-card h2{font-size:clamp(14px,3.8vw,21px);letter-spacing:.025em}
 .duality-grid .duality-thread{bottom:70px}
}

/* Original photo pixels, with independent color layers for the two identities. */
.intro-duo .intro-person-color,.intro-duo .intro-artist-color{transition:opacity 1.25s cubic-bezier(.2,.7,.2,1)}
.intro-duo .intro-person-color{opacity:1}
.intro-duo .intro-artist-color{opacity:0}
[data-phase="virtual"] .intro-person-color,[data-phase="thread"] .intro-person-color,[data-phase="exit"] .intro-person-color{opacity:0}
[data-phase="virtual"] .intro-artist-color,[data-phase="thread"] .intro-artist-color,[data-phase="exit"] .intro-artist-color{opacity:1}
/* Large, bounded brand marks retain their source aspect ratios. */
.follow-section .footer-wordmark{display:flex;justify-content:center;width:min(72%,480px);max-width:100%;margin:clamp(36px,5vw,80px) auto 0;opacity:.95}
.follow-section .footer-wordmark>img{display:block;width:100%;height:auto;max-width:100%;max-height:none;object-fit:contain}
body>footer{flex-wrap:wrap;column-gap:clamp(16px,3vw,40px);row-gap:18px}
body>footer>img{flex:0 0 auto;width:clamp(90px,9vw,150px);max-width:40%;height:auto;object-fit:contain}
body>footer>p{flex:1 1 220px;min-width:0;max-width:100%;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.intro-duo .intro-person-color,.intro-duo .intro-artist-color{transition:none}}

/* A second replay control sits inside the lower-right corner of the TOP photo. */
.hero .hero-intro-control{position:absolute;right:6vw;bottom:42px;z-index:12;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-width:104px;min-height:44px;padding:12px 18px;border:1px solid #c7d5ec70;border-radius:2px;background:#030507a8;backdrop-filter:blur(10px);color:#e3eaf5;font:10px/1.5 var(--sans);letter-spacing:.16em;cursor:pointer}
.hero .hero-intro-control:hover{background:#17202cdb;border-color:#e3eaf5}
.hero .hero-intro-control:focus-visible{outline:2px solid #e3eaf5;outline-offset:5px}
.hero .hero-copy>.eyebrow{display:block;font-size:clamp(13px,1.35vw,21px);font-weight:600;line-height:1.7;letter-spacing:.08em;margin:0 0 12px;max-width:100%;color:#e0e8f6;text-shadow:0 2px 16px #000b}
@media(max-width:600px){
 .hero .hero-intro-control{right:24px;bottom:calc(17% + 24px);min-width:96px;gap:12px;padding:11px 15px;font-size:9px}
 .hero .hero-copy>.eyebrow{font-size:clamp(12px,3.1vw,15px);letter-spacing:.04em;margin-bottom:12px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){.hero .hero-intro-control{display:none}}
