/* Homepage composition. Programme-specific styles remain in studies.css. */
.home-pathways {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid currentColor;
}
.home-pathways a {display: flex; align-items: center; gap: 20px; padding: 22px 0; font-size: 13px;}
.home-pathways a + a {padding-left: 28px; border-left: 1px solid #ffffff50;}
.home-pathways a > span:last-child {margin-left: auto; margin-right: 24px; font-size: 19px;}
.home-pathways .path-number {font-size: 10px; opacity: .75;}
.home-pathways a:hover > span:nth-child(2) {text-decoration: underline; text-underline-offset: 5px;}
[data-direction=b] .home-pathways {margin-top: 48px; border-color: var(--line);}
[data-direction=b] .home-pathways a + a {border-color: var(--line);}
[data-direction=b] .hero {padding-bottom: 0;}
.portfolio, .destinations, .people {padding: 70px var(--pad); scroll-margin-top: 24px;}
.section-heading {display: grid; grid-template-columns: 1fr 1fr; gap: 20px 8vw; align-items: end; margin-bottom: 48px;}
.section-heading > .eyebrow {grid-column: 1 / -1;}
.section-heading h2 {font-size: clamp(35px, 4vw, 65px); font-weight: 500; letter-spacing: -.05em; line-height: 1.08;}
.section-heading > p {font-size: 16px; line-height: 1.65; max-width: 430px; padding-bottom: 4px;}
.portfolio-list {border-top: 1px solid var(--ink);}
.portfolio-item {border-bottom: 1px solid var(--line);}
.portfolio-item summary {display: grid; grid-template-columns: 35px 115px 1fr 240px 26px; align-items: center; gap: 25px; cursor: pointer; padding: 30px 0; list-style: none;}
.portfolio-item summary::-webkit-details-marker {display: none;}
.portfolio-item summary:focus-visible {outline: 3px solid var(--blue); outline-offset: -3px;}
.portfolio-number {font-size: 11px; align-self: start; padding-top: 7px;}
.portfolio-item h3 {font-size: clamp(24px, 2.4vw, 40px); font-weight: 500; letter-spacing: -.035em; line-height: 1.1;}
.portfolio-type {font-size: 12px; color: #535353;}
.expand-symbol {font-size: 29px; font-weight: 400; transition: transform .2s;}
.portfolio-item[open] .expand-symbol {transform: rotate(45deg);}
.portfolio-item summary:hover h3 {text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px;}
.portfolio-glyph {display: flex; width: 85px; height: 68px; align-items: end; gap: 6px; position: relative; color: var(--blue);}
.portfolio-glyph i {display: block; background: currentColor;}
.bars i {width: 15px;}
.bars i:nth-child(1) {height: 22px;}
.bars i:nth-child(2) {height: 42px;}
.bars i:nth-child(3) {height: 31px;}
.bars i:nth-child(4) {height: 65px;}
.matches {align-items: center;}
.matches i {width: 25px; height: 50px; border-radius: 50%;}
.matches i:nth-child(2) {height: 66px; background: var(--ink);}
.retrieval {display: grid; align-items: stretch; grid-template-columns: 1fr 1fr; gap: 5px; width: 68px;}
.retrieval i {border: 1px solid currentColor; background: transparent;}
.retrieval i:nth-child(2) {background: currentColor;}
.portfolio-detail {display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-left: 200px; padding: 0 0 30px;}
.portfolio-detail > p {font-size: 16px; line-height: 1.65; max-width: 600px;}
.process-line {font-size: 12px; line-height: 1.8; align-self: center;}
.process-line span {margin: 0 8px; color: var(--blue);}
.portfolio-end {display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 30px;}
.portfolio-end p {font-size: 13px; max-width: 430px; line-height: 1.6;}
.destinations {padding-top: 15px;}
.destinations-intro {display: flex; justify-content: space-between; align-items: baseline; gap: 25px; border-top: 1px solid var(--ink); padding-top: 22px; margin-bottom: 28px;}
.destinations-intro h2 {font-size: 25px; letter-spacing: -.035em; font-weight: 500;}
.destination-grid {display: grid; grid-template-columns: 1.15fr 1fr;}
.minarai-feature, .fde-feature {padding: 34px; display: flex; flex-direction: column; min-width: 0;}
.minarai-feature {background: #f2efe6; color: #1f201e; font-family: 'Helvetica Neue', Helvetica, 'Noto Sans JP', sans-serif; border: 1px solid #cdc8be;}
.fde-feature {background: var(--blue); color: white;}
.destination-top {display: flex; justify-content: space-between; gap: 12px; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 35px;}
.minarai-feature h3 {display: flex; align-items: center; gap: 18px; font-size: clamp(48px, 5.5vw, 92px); letter-spacing: -.065em; line-height: 1; font-weight: 650;}
.minarai-mark {width: .25em; height: .25em; background: #e44d2e; flex-shrink: 0;}
.destination-lead {font-size: clamp(25px, 2.6vw, 42px); font-weight: 500; letter-spacing: -.035em; line-height: 1.14; margin: 23px 0 18px;}
.destination-copy {font-size: 15px; line-height: 1.65; max-width: 460px;}
.minarai-preview {margin: 30px 0;}
.minarai-preview img {width: 100%; height: auto; display: block; border: 1px solid #a49e92;}
.minarai-preview figcaption {font-size: 9px; margin-top: 8px; color: #5c5d56;}
.destination-link {display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; border-top: 1px solid currentColor; padding-top: 20px; font-size: 17px; font-weight: 500;}
.destination-link > span:last-child {font-size: 27px;}
.destination-link:hover > span:first-child {text-decoration: underline; text-underline-offset: 5px;}
.destination-domain {font-size: 10px; margin-top: 10px; line-height: 1.5;}
.fde-feature h3 {font-size: clamp(48px, 5vw, 84px); letter-spacing: -.06em; font-weight: 550; line-height: .93;}
.fde-feature .destination-lead {font-size: clamp(25px, 2.6vw, 42px);}
.fde-emblem {margin: auto 0; padding: 35px 0;}
.fde-emblem svg {height: 130px; width: 100%;}
.fde-emblem > div {display: flex; justify-content: space-around; margin-top: 15px; font-size: 8px; letter-spacing: .05em;}
.people {background: #e3e5e8;}
.people-grid {display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;}
.people-grid a {display: flex; gap: 22px; align-items: center; border-top: 1px solid var(--ink); padding-top: 20px;}
.people-grid img {width: 85px; height: 100px; object-fit: cover; filter: grayscale(1);}
.people-grid a > span {font-size: 20px; letter-spacing: -.025em;}
.people-grid small {display: block; font-size: 11px; letter-spacing: .04em; margin-top: 10px;}
.community-link {display: grid; grid-template-columns: 1fr 1.5fr auto; align-items: center; gap: 20px; margin-top: 55px; border-top: 1px solid var(--ink); padding-top: 25px;}
.community-link > span:nth-child(2) {font-size: 24px; letter-spacing: -.03em;}
.community-link > span:last-child {font-size: 28px;}
[data-direction=b] .portfolio-glyph {color: var(--ink);}
[data-direction=b] .fde-feature {background: #191b1d;}
[data-direction=b] .fde-emblem {color: #b5bdf0;}
[data-direction=b] .people {background: #e9e9e9;}
html[lang=ja] .section-heading h2 {font-size: 3.4vw; line-height: 1.3;}
html[lang=ja] .section-heading > p, html[lang=ja] .destination-copy {font-size: 14px; line-height: 1.9;}
html[lang=ja] .portfolio-item h3 {font-size: 2vw; line-height: 1.5;}
html[lang=ja] .destination-lead {font-size: 2.3vw; line-height: 1.4;}
@media(max-width:1100px) {
  .site-nav {gap: 22px;}
  .home-pathways a {font-size: 12px; gap: 12px;}
  .home-pathways a + a {padding-left: 18px;}
  .portfolio-item summary {grid-template-columns: 25px 85px 1fr 180px 25px; gap: 20px;}
  .portfolio-glyph {transform: scale(.8); transform-origin: left center;}
  .portfolio-detail {margin-left: 150px; gap: 25px;}
  .minarai-feature, .fde-feature {padding: 25px;}
  .people-grid {gap: 20px;}
  .people-grid a {gap: 15px;}
  .people-grid img {width: 65px; height: 80px;}
  .people-grid a > span {font-size: 16px;}
}
@media(max-width:700px) {
  .site-header {gap: 15px;}
  .site-nav {gap: 16px;}
  .site-nav > a.minarai-nav {display: inline;}
  .site-nav > a.programme-link {display: none;}
  .home-pathways {grid-template-columns: 1fr;}
  .home-pathways a {font-size: 13px; padding: 16px 0; gap: 20px;}
  .home-pathways a + a {padding-left: 0; border-left: 0; border-top: 1px solid #ffffff50;}
  .home-pathways a > span:last-child {margin-right: 0;}
  [data-direction=b] .home-pathways {margin-top: 32px;}
  .portfolio, .destinations, .people {padding: 40px var(--pad);}
  .section-heading {grid-template-columns: 1fr; gap: 20px; margin-bottom: 32px;}
  .section-heading h2 {font-size: 37px;}
  .section-heading > p {font-size: 14px;}
  .portfolio-item summary {grid-template-columns: 18px 46px 1fr 18px; gap: 12px; padding: 23px 0;}
  .portfolio-number {font-size: 9px; padding-top: 4px;}
  .portfolio-glyph {grid-column: 2; grid-row: 1 / 3; transform: scale(.52); width: 78px; height: 64px;}
  .portfolio-item h3 {grid-column: 3; font-size: 21px;}
  .portfolio-type {grid-column: 3; grid-row: 2; font-size: 9px;}
  .expand-symbol {grid-column: 4; grid-row: 1 / 3; font-size: 24px;}
  .portfolio-detail {margin-left: 0; display: block; padding-bottom: 25px;}
  .portfolio-detail > p {font-size: 14px;}
  .process-line {margin-top: 18px; font-size: 10px;}
  .process-line span {margin: 0 4px;}
  .portfolio-end {align-items: flex-start; flex-direction: column; gap: 8px; margin-top: 25px;}
  .portfolio-end p {font-size: 12px;}
  .destinations {padding-top: 5px;}
  .destinations-intro {display: block;}
  .destinations-intro h2 {font-size: 25px; margin-top: 15px;}
  .destination-grid {grid-template-columns: 1fr;}
  .minarai-feature, .fde-feature {padding: 25px 22px;}
  .destination-top {font-size: 8px; margin-bottom: 30px;}
  .minarai-feature h3 {font-size: 57px; gap: 15px;}
  .destination-lead, .fde-feature .destination-lead {font-size: 30px;}
  .destination-copy {font-size: 14px;}
  .destination-link {font-size: 16px;}
  .fde-feature h3 {font-size: 58px;}
  .fde-emblem {padding: 30px 0;}
  .fde-emblem svg {height: 100px;}
  .people-grid {grid-template-columns: 1fr; gap: 22px;}
  .people-grid a {gap: 22px; padding-top: 18px;}
  .people-grid img {width: 68px; height: 78px;}
  .people-grid a > span {font-size: 23px;}
  .community-link {grid-template-columns: 1fr auto; margin-top: 30px; padding-top: 20px;}
  .community-link > .eyebrow {grid-column: 1 / -1;}
  .community-link > span:nth-child(2) {font-size: 24px; line-height: 1.3;}
  html[lang=ja] .section-heading h2 {font-size: 31px;}
  html[lang=ja] .portfolio-item h3 {font-size: 18px;}
  html[lang=ja] .destination-lead {font-size: 25px;}
  html[lang=ja] .home-pathways a {font-size: 12px;}
  html[lang=ja] .destinations-intro h2 {font-size: 23px;}
}
@media(max-width:360px) {
  .site-nav {gap: 12px;}
  .site-nav a {font-size: 10px;}
  .site-nav a span {display: none;}
  .site-header {gap: 10px;}
  .portfolio-item summary {grid-template-columns: 14px 35px 1fr 16px; gap: 10px;}
  .portfolio-glyph {transform: scale(.4);}
  .portfolio-item h3 {font-size: 19px;}
}

/* Reviewed homepage: brand-led hero, paired destinations, three work columns. */
.hero-brand {position:relative;min-width:0;height:340px;align-self:center;overflow:hidden;}
.hero-brand #viewport {position:absolute;inset:0;}
.hero-brand canvas {display:block;width:100%;height:100%;}
.hero-brand .fallback {position:absolute;width:80%;height:80%;object-fit:contain;left:10%;top:10%;}
.hero-brand[data-ready=true] .fallback {display:none;}
.hero-brand[data-ready=false] canvas {display:none;}
.visually-hidden {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
[data-direction=b] .hero {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.85fr);gap:3vw;padding-top:44px;padding-bottom:44px;align-items:center;}
[data-direction=b] .hero-copy {display:block;}
[data-direction=b] .hero-copy h1 {font-size:clamp(46px,4.8vw,83px);margin:26px 0 24px;}
[data-direction=b] .hero-description p {font-size:14px;max-width:430px;}
.hero .home-pathways {display:flex;flex-direction:column;grid-column:auto;border:0;margin:0;align-self:center;}
.hero .home-pathways a {border:0;border-top:1px solid currentColor;padding:22px 0;gap:15px;font-size:13px;align-items:baseline;}
.hero .home-pathways a:last-child {border-bottom:1px solid currentColor;}
.hero .home-pathways a>span:last-child {margin:0;font-size:inherit;line-height:1.45;}
.hero .home-pathways .path-number {font-size:9px;opacity:.6;flex-shrink:0;}
[data-direction=a] .hero {grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.85fr);column-gap:3vw;padding-bottom:40px;}
[data-direction=a] .hero-description {display:block;}
[data-direction=a] .hero-copy {padding-bottom:0;}
[data-direction=a] .hero-brand .fallback {filter:invert(1);}
[data-direction=a] .hero-brand {height:350px;}
.destination-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
.destinations {padding-top:22px;padding-bottom:65px;}
.destination-link > span:last-child {font-size:inherit;}
.portfolio {padding-top:10px;}
.portfolio-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.portfolio-item {min-width:0;padding:0 30px 24px 0;}
.portfolio-item + .portfolio-item {padding-left:30px;border-left:1px solid var(--line);}
.portfolio-item:last-child {padding-right:0;}
.portfolio-item summary {position:relative;display:grid;grid-template-columns:1fr auto;align-items:start;gap:22px 15px;padding:25px 0 0;}
.portfolio-number {grid-column:1;grid-row:1;font-size:10px;padding:0;}
.portfolio-glyph {grid-column:1/-1;grid-row:2;transform:none;margin:8px 0 12px;}
.portfolio-item h3 {grid-column:1/-1;grid-row:3;font-size:clamp(23px,2.2vw,38px);min-height:2.15em;}
.portfolio-type {grid-column:1/-1;grid-row:4;font-size:11px;}
.portfolio-blurb {grid-column:1/-1;grid-row:5;font-size:14px;line-height:1.7;}
.expand-symbol {grid-column:2;grid-row:1;line-height:1;font-size:23px;}
.portfolio-detail {display:block;margin:0;padding:20px 0 0;}
.process-line {font-size:11px;border-top:1px solid var(--line);padding-top:16px;}
.community-link {grid-template-columns:1fr 1.5fr;}
.community-link > span:last-child {font-size:24px;}
html[lang=ja] .portfolio-item h3 {font-size:clamp(20px,1.8vw,32px);}
@media(max-width:1100px) and (min-width:701px){
  [data-direction=b] .hero,[data-direction=a] .hero {grid-template-columns:1.4fr 1fr;gap:20px;}
  .hero .home-pathways {grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .hero .home-pathways a:last-child {border-bottom:0;}
  .portfolio-item {padding-right:20px;}.portfolio-item + .portfolio-item {padding-left:20px;}
}
@media(max-width:700px){
  [data-direction=b] .hero,[data-direction=a] .hero {grid-template-columns:1fr;gap:12px;padding-top:30px;padding-bottom:30px;}
  [data-direction=b] .hero-copy h1 {font-size:44px;margin:20px 0;}
  [data-direction=a] .hero-copy {padding-top:12px;}
  .hero-brand,[data-direction=a] .hero-brand {height:280px;width:100%;max-width:370px;margin:auto;}
  .hero .home-pathways {display:flex;grid-column:1;}
  .hero .home-pathways a {padding:16px 0;}
  .destination-grid,.portfolio-list {grid-template-columns:1fr;}
  .portfolio-item,.portfolio-item + .portfolio-item {padding:0 0 25px;border-left:0;}
  .portfolio-item h3 {font-size:28px;min-height:0;}
  .portfolio-item summary {gap:18px 15px;grid-template-columns:1fr auto;}
  .portfolio-glyph {grid-column:1/-1;grid-row:2;transform:none;width:85px;height:68px;margin:6px 0;}
  .portfolio-glyph.retrieval {width:68px;}
  .portfolio-type {grid-column:1/-1;grid-row:4;}
  .expand-symbol {grid-column:2;grid-row:1;}
  .portfolio-item h3 {grid-column:1/-1;grid-row:3;}
  .destinations {padding-bottom:40px;}
  .community-link {grid-template-columns:1fr;}
  html[lang=ja] .portfolio-item h3 {font-size:25px;}
  .review-bar .review-label {display:none;}.review-bar .review-note {display:block;font-size:8px;}
}

.hero-brand #viewport[role=button] {cursor:pointer;}
.hero-brand #viewport:focus-visible {outline:2px solid currentColor;outline-offset:-4px;}

/* Concrete use cases: keep the customer story visible and detail readable. */
.portfolio-detail > p {font-size:14px;line-height:1.7;margin-bottom:18px;}
.portfolio-list .portfolio-item h3 {font-size:clamp(25px,2.4vw,40px);line-height:1.12;min-height:3.4em;}
html[lang=ja] .portfolio-list .portfolio-item h3 {font-size:clamp(22px,2vw,32px);line-height:1.45;min-height:4.35em;}
@media(max-width:700px){.portfolio-list .portfolio-item h3{font-size:29px;min-height:0}html[lang=ja] .portfolio-list .portfolio-item h3{font-size:25px;min-height:0}}

/* Tokyo AI: its own mark and an explicit destination. */
.community-link {grid-template-columns:112px minmax(0,1fr) auto;gap:28px;padding:28px 0;border-bottom:1px solid var(--ink);scroll-margin-top:25px;}
.community-logo {display:block;width:112px;height:112px;object-fit:contain;}
.community-link > span.community-copy {font-size:inherit;letter-spacing:normal;}
.community-copy .eyebrow {display:block;margin-bottom:12px;}
.community-title {display:block;font-size:clamp(24px,2.5vw,38px);line-height:1.2;letter-spacing:-.035em;max-width:650px;}
.community-link > span.community-action {display:flex;flex-direction:column;align-items:center;gap:9px;font-size:13px;}
.community-cta {display:block;border:1px solid currentColor;padding:14px 22px;font-weight:550;text-decoration:underline;text-underline-offset:4px;transition:background .2s,color .2s;}
.community-domain {font-size:10px;letter-spacing:.025em;}
.community-link:hover .community-cta,.community-link:focus-visible .community-cta {background:var(--ink);color:white;}
@media(max-width:700px){
  .community-link {grid-template-columns:80px minmax(0,1fr);gap:20px;padding:24px 0;}
  .community-logo {width:80px;height:80px;}
  .community-copy .eyebrow {font-size:9px;margin-bottom:10px;}
  .community-title {font-size:25px;}
  .community-link > span.community-action {grid-column:1/-1;flex-direction:row;justify-content:space-between;gap:15px;}
  .community-cta {padding:12px 20px;}
}

/* Two main hero columns: message, then one grouped brand/navigation block. */
[data-direction=b] .hero,[data-direction=a] .hero {grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:5vw;align-items:center;}
[data-direction=b] .hero {padding-top:38px;padding-bottom:38px;}
.hero-side {display:flex;flex-direction:column;min-width:0;width:min(100%,420px);justify-self:center;}
.hero-side .hero-brand,[data-direction=a] .hero-side .hero-brand {height:260px;width:100%;max-width:none;margin:0;}
.hero-side .home-pathways {width:100%;display:flex;flex-direction:column;gap:0;}
.hero-side .home-pathways a {padding:15px 0;font-size:14px;}
.hero-side .home-pathways a:last-child {border-bottom:1px solid currentColor;}
[data-direction=b] .hero-copy h1 {font-size:clamp(48px,5.7vw,88px);margin:25px 0 28px;}
[data-direction=b] .hero-description p {font-size:16px;max-width:490px;line-height:1.6;}
[data-direction=b] .destinations {padding-top:6px;}
.destinations-intro {display:grid;grid-template-columns:1fr 1fr;column-gap:0;align-items:baseline;}
.destinations-intro h2 {justify-self:start;}
@media(min-width:1600px){
  .hero-side {width:460px;}
  .hero-side .hero-brand,[data-direction=a] .hero-side .hero-brand {height:285px;}
  [data-direction=b] .hero {padding-top:48px;padding-bottom:48px;}
}
@media(min-width:701px) and (max-width:1000px){
  [data-direction=b] .hero,[data-direction=a] .hero {column-gap:35px;}
  [data-direction=b] .hero-copy h1 {font-size:clamp(43px,5.7vw,60px);}
  [data-direction=b] .hero-description p {font-size:14px;}
  .hero-side .hero-brand,[data-direction=a] .hero-side .hero-brand {height:230px;}
}
@media(max-width:700px){
  [data-direction=b] .hero,[data-direction=a] .hero {grid-template-columns:1fr;gap:22px;padding-top:28px;padding-bottom:28px;}
  [data-direction=b] .hero-copy h1 {font-size:clamp(40px,10.5vw,66px);margin:20px 0;}
  [data-direction=b] .hero-description p {font-size:14px;}
  .hero-side {width:100%;max-width:460px;}
  .hero-side .hero-brand,[data-direction=a] .hero-side .hero-brand {height:230px;}
  .hero-side .home-pathways a {padding:16px 0;font-size:13px;}
}

@media(max-width:700px){.destinations-intro{grid-template-columns:1fr;gap:0}}

/* Case studies have their own page; the homepage carries a short introduction. */
.case-studies-teaser {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;margin:0 var(--pad);padding:42px 0 60px;border-top:1px solid var(--ink);scroll-margin-top:24px;}
.case-studies-teaser h2 {font-size:clamp(32px,3.3vw,48px);font-weight:500;letter-spacing:-.04em;line-height:1.12;margin-top:18px;}
.case-studies-summary {padding-top:35px;max-width:440px;}
.case-studies-summary p {font-size:17px;line-height:1.65;}
.case-studies-summary .text-link {margin-top:18px;font-size:16px;}
html[lang=ja] .case-studies-teaser h2 {font-size:clamp(29px,3vw,42px);line-height:1.4;}
@media(max-width:700px){
  .case-studies-teaser {grid-template-columns:1fr;gap:22px;padding:32px 0 40px;}
  .case-studies-teaser h2 {font-size:34px;}
  .case-studies-summary {padding-top:0;}
  .case-studies-summary p {font-size:16px;}
  html[lang=ja] .case-studies-teaser h2 {font-size:30px;}
}
@media(max-width:400px){.site-nav>a.minarai-nav{display:none}}
