/* Desktop keeps the original 1440-unit composition. Mobile reflows real content. */
.mobile-header{display:none}
@media(min-width:1600px){
  html{overflow-x:clip}
  .bleed-section{position:relative;isolation:isolate}
  .bleed-section::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:calc(100vw / var(--page-zoom));transform:translateX(-50%);background:var(--bleed-background,#fff);z-index:-1;pointer-events:none}
  .topnav{isolation:isolate}
  .topnav::before{content:"";position:absolute;inset:0;left:50%;width:calc(100vw / var(--page-zoom));transform:translateX(-50%);background:#FAF8F4;z-index:-1}
}
.mobile-poster-canvas{display:contents}
@media(max-width:767px){
  html{overflow-x:clip;scroll-padding-top:76px}
  body{width:100%;min-width:0}
  #page{width:100%!important;zoom:1!important;margin:0!important}
  #page>.topnav,#loader{display:none!important}
  dc-section{scroll-margin-top:76px}
  .mobile-header{display:block;position:sticky;top:0;z-index:110;background:rgba(250,248,244,.97);border-bottom:1px solid rgba(19,35,58,.1);backdrop-filter:blur(14px);color:#13233A;font-family:'Poppins',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}
  .mobile-header-bar{height:64px;padding:0 20px;display:flex;align-items:center;justify-content:space-between}
  .mobile-logo{display:flex;align-items:center;min-height:44px;text-decoration:none}
  .mobile-logo svg{width:46px;height:28px}
  .mobile-actions{display:flex;align-items:center;gap:8px}
  .mobile-menu-toggle{display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:50%;color:#13233A;background:transparent;cursor:pointer}
  .mobile-menu-toggle:hover{background:rgba(59,158,219,.08)}
  .mobile-menu-toggle:focus-visible,.mobile-header a:focus-visible{outline:2px solid #3B9EDB;outline-offset:3px}
  .mobile-site-nav{display:grid;gap:4px;padding:8px 20px 16px;background:#FAF8F4;box-shadow:0 14px 20px rgba(19,35,58,.06)}
  .mobile-site-nav[hidden]{display:none}
  .mobile-site-nav a{display:flex;align-items:center;min-height:46px;padding:0 14px;border-radius:9px;text-decoration:none;color:#13233A;font-size:15px}
  .mobile-site-nav a[aria-current="page"]{color:#3B9EDB;background:rgba(59,158,219,.07)}
  .nextpage{padding:48px 20px 56px;gap:16px}
  .nextpage .np-t{font-size:36px;line-height:1.2;overflow-wrap:anywhere}

  :host{display:block;max-width:100%;min-width:0}
  :host *, :host *::before,:host *::after{box-sizing:border-box}
  [data-responsive-root]{width:100%!important;max-width:100%!important;min-height:0!important}
  section{padding-top:56px!important;padding-bottom:56px!important;scroll-margin-top:76px}
  .wrap,.build-wrap,[data-mobile-container]{width:100%;max-width:100%!important;padding-left:20px!important;padding-right:20px!important;margin-left:auto!important;margin-right:auto!important}
  [data-mobile-grid]{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
  [data-mobile-row]{flex-wrap:wrap!important;gap:16px!important;max-width:100%}
  [data-mobile-heading]{flex-direction:column!important;align-items:flex-start!important;gap:24px!important}
  [data-mobile-inset]{padding:24px!important}
  [data-mobile-gap]{gap:24px!important}
  [data-mobile-space]{margin-top:32px!important;margin-bottom:32px!important}
  [style*="position: sticky"]{position:static!important;top:auto!important}
  h1,h2,h3,p,a,span,b{overflow-wrap:break-word}
  h2,.h2{font-size:36px!important;line-height:1.22!important;letter-spacing:-.03em!important;max-width:100%}
  h2>.serif,.h2>.serif{display:block;margin-top:4px}
  h3,.st-h{font-size:30px!important;line-height:1.2!important}
  .lead,p[style*="font-size: 17px"]{font-size:16px!important;line-height:1.7!important;max-width:100%!important}
  .lbl,.mono{font-size:11px;line-height:1.65;letter-spacing:.09em}
  .mobile-display{font-size:36px!important;line-height:1.2!important}
  img{max-width:100%;height:auto}
  svg{max-width:100%}
  svg[width][height]:not(.icon){height:auto}
  .chip,.sv,.tab,.navbtn{min-height:44px;touch-action:manipulation}
  a,button{-webkit-tap-highlight-color:rgba(59,158,219,.15)}
  .grid2,.two,.cards,.beyond{grid-template-columns:minmax(0,1fr)!important;gap:28px!important}
  .card{width:100%;min-width:0}
  .cards{gap:20px!important}
  .track{grid-auto-columns:minmax(260px,84vw);scroll-snap-type:x mandatory;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .track>.card{scroll-snap-align:start}

  /* Cover: greeting, title, portrait, details; none of the desktop absolute sizing. */
  :host([data-src="cover"]) [data-responsive-root]{display:flex;flex-direction:column;gap:24px;height:auto!important;min-height:0!important;padding:36px 20px 40px!important;overflow:visible!important}
  :host([data-src="cover"]) .cover-desktop-nav,:host([data-src="cover"]) [data-responsive-root]>.rule{display:none!important}
  :host([data-src="cover"]) .cover-hero,:host([data-src="cover"]) .cover-hero>div{display:contents!important}
  :host([data-src="cover"]) .cover-greeting{order:1;animation:none!important;opacity:1!important;transform:none!important}
  :host([data-src="cover"]) h1{order:2;line-height:1.1!important;margin:0!important;max-width:100%}
  :host([data-src="cover"][lang]) h1>.bod{font-size:40px!important;line-height:1.14!important}
  :host([data-src="cover"][lang]) h1>.bod>.bod{font-size:48px!important;line-height:1!important}
  :host([data-src="cover"][lang]) h1>.serif{font-size:34px!important;line-height:1.2!important;margin-top:12px!important}
  :host([data-src="cover"][lang="ja"]) h1>.bod{font-size:31px!important}
  :host([data-src="cover"][lang="ja"]) h1>.serif{font-size:26px!important}
  :host([data-src="cover"]) figure{order:3;position:static!important;width:220px!important;max-width:100%;margin:0!important;animation:none!important;opacity:1!important;transform:none!important;align-self:flex-start}
  :host([data-src="cover"]) figure>div{height:auto!important;aspect-ratio:230/288}
  :host([data-src="cover"]) figure img{width:100%!important;height:100%!important;object-fit:cover}
  :host([data-src="cover"]) figcaption{font-size:9px!important}
  :host([data-src="cover"]) .cover-details{order:4;display:grid!important;grid-template-columns:62px minmax(0,1fr)!important;gap:14px 12px!important;font-size:14px!important;line-height:1.7!important;animation:none!important;opacity:1!important;transform:none!important}
  :host([data-src="cover"]) .cover-details .mono{font-size:10px!important;letter-spacing:.06em}
  :host([data-src="cover"]) .cover-footer{order:5;position:static!important;margin-top:12px!important}

  /* Career rows become cards, with reading order unchanged. */
  :host([data-src="career"]) .row{grid-template-columns:minmax(0,1fr);gap:9px;padding:20px 16px;margin-bottom:8px}
  :host([data-src="career"]) .row.hd{display:none}
  :host([data-src="career"]) .yr{font-size:11px}
  :host([data-src="career"]) .role{font-size:25px;line-height:1.25}
  :host([data-src="career"]) .org{font-size:14px;line-height:1.5}
  :host([data-src="career"]) .what{font-size:14px;line-height:1.65}
  :host([data-src="career"]) h2{font-size:38px!important}

  .tw{width:560px!important;max-width:none!important;zoom:var(--mobile-window-scale);margin:0 auto!important}
  .mobile-about-art{height:360px!important;margin-top:8px}
  .build-intro{padding:56px 0!important}
  .build-kicker{font-size:10px;line-height:1.65;letter-spacing:.1em;margin-bottom:22px}
  .build-heading{font-size:36px!important;line-height:1.2!important}
  .build-heading>.serif{font-size:40px;line-height:1.22;margin-top:10px}
  :host([lang="ja"]) .build-heading>.serif{font-size:34px}
  .build-details{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:28px;padding-top:24px}
  .build-bio{font-size:15px;line-height:1.7}
  .build-stats{gap:36px}
  .build-stat{min-width:0;flex:1;gap:8px}
  .build-number{font-size:52px}
  .build-stat-label{font-size:12px}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:180px;gap:12px}
  .tile{padding:16px!important;border-radius:20px;min-width:0}
  .tile .mobile-art-text{font-size:40px!important;line-height:1.05!important}
  .tile .cyc{font-size:24px!important}
  .tile>div[style*="width: 220px"]{width:120px!important;height:120px!important}
  .tile [style*="font-size: 92px"]{font-size:44px!important}
  .tile [style*="font-size: 14px"]{font-size:11px!important}
  .tile [style*="font-size: 13px"]{font-size:10px!important}
  .tile .band{max-width:none!important;gap:0!important;flex-wrap:nowrap!important}
  .graph{height:auto!important;padding:24px 18px!important;overflow:visible!important;display:flex;flex-direction:column;gap:16px}
  .graph>svg{display:none}
  .graph .node{position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;right:auto!important;width:100%!important;min-width:0}
  .graph .node:not(:last-of-type)::after{content:'↓';display:block;position:absolute;left:50%;bottom:-20px;color:#3B9EDB;font-size:18px}
  .graph .po,.graph .pi{display:none}
  .graph>div[style*="bottom:"]{position:static!important;margin-top:12px;flex-wrap:wrap}
  .slide{aspect-ratio:auto!important;min-height:410px;padding:28px 24px}
  .slide>[style*="font-size:"]{max-width:100%!important}
  .slide>[style*="font-size: 18px"]{font-size:16px!important;line-height:1.6}

  /* Work and Agent demonstrations. */
  .stage,.step,.gcard,.past{padding:24px!important}
  .stage .big{font-size:80px}
  .stage .arr{font-size:42px}
  .cases li{grid-template-columns:minmax(0,1fr)!important;gap:6px!important}
  .br{grid-template-columns:72px minmax(0,1fr) 74px;gap:8px;font-size:11px}
  .br .tr{height:30px}
  .apill{height:96px;border-radius:48px;padding:0 10px;gap:10px;grid-template-columns:64px minmax(0,1fr) 64px}
  .ava{width:64px;height:64px}
  .ava>svg{width:48px;height:48px}
  .alab{height:64px}
  .alab span{font-size:16px;line-height:1.35;white-space:normal}
  .orb{width:64px;height:64px}
  .orb>i>svg{width:32px;height:32px}
  .orb>.retry-icon{font-size:28px}
  .tdot{width:7px;height:7px;margin:0 2px}
  .phone{zoom:var(--mobile-phone-scale);margin:0 auto}
  .loc{grid-template-columns:minmax(0,1fr)!important;gap:16px}
  .lp{min-height:300px}

  /* Leadership: vertical workflows and independently scrollable data. */
  .lead-node{width:100%;max-width:100%;padding:16px 20px;font-size:14px}
  .lead-node>span{min-width:0}
  .lead-node>i{flex:none}
  .org>svg{display:none!important}
  .org>[data-mobile-grid]{margin-top:20px}
  .panel{padding:24px!important;border-radius:24px;gap:18px}
  .loop li{padding:12px;font-size:14px;line-height:1.5;align-items:flex-start}
  .loop li>span{flex:none}
  .path{grid-template-columns:minmax(0,1fr)!important;gap:8px}
  .path>div{padding:18px}
  .path b{font-size:17px!important}
  .path span{font-size:13px!important}
  .path>i{transform:rotate(90deg);justify-self:center;font-size:28px}
  :host([data-src="eff"]) .flow{grid-template-columns:minmax(0,1fr)!important;padding:22px!important;gap:16px}
  :host([data-src="eff"]) .chain{flex-wrap:wrap;gap:8px}
  :host([data-src="eff"]) .chain span{font-size:12px!important;padding:8px 10px!important;white-space:normal}
  .tabs{max-width:100%;overflow-x:auto;border-radius:16px;gap:4px;scrollbar-width:thin}
  .tab{flex:none;padding:10px 14px;font-size:12px;white-space:nowrap}
  .board{padding:16px;min-height:0;border-radius:20px;min-width:0}
  .ph{flex-wrap:wrap;gap:12px}
  .ph b{font-size:20px}
  .kpis,.rels{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:14px 12px;min-width:0}
  .kpi b{font-size:30px}
  .kpi span,.kpi em{font-size:11px}
  .kanban{grid-template-columns:repeat(6,168px);overflow-x:auto;max-width:100%;padding-bottom:12px;scrollbar-width:thin;scroll-snap-type:x mandatory}
  .kanban>.col{scroll-snap-align:start}
  .chart{overflow-x:auto;padding:14px 12px}
  .chart>svg{min-width:640px!important;max-width:none!important}
  .tbl{max-width:100%;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}
  .tbl .tr{min-width:780px}
  .mobile-down-arrow{height:28px;transform:rotate(90deg);margin:6px 0}
  .ob{padding:24px!important;min-width:0}
  .ob .src{padding:20px}
  .kit{padding:16px 16px 16px 56px}
  .kit b{font-size:16px}.kit span{font-size:13px}
  .qr span{font-size:12px;padding:8px 9px}
  .qr i{min-width:8px}
  .fstage{width:1000px!important;height:440px;zoom:var(--mobile-flex-scale);margin:0 auto}
  .ftrack{height:56px;touch-action:none}
  .ftrack:focus-visible{outline:2px solid #3B9EDB;outline-offset:4px;border-radius:8px}
  .icg{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px}
  .ic{min-width:0;padding:14px 4px}
  .ic span{font-size:10px;line-height:1.3;overflow-wrap:anywhere}

  /* Scale each poster's original artboard, rather than cropping its typography. */
  .pw{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:calc(300px * var(--mobile-poster-scale));gap:calc(16px * var(--mobile-poster-scale))}
  .pw-p{padding:0!important;min-width:0;width:100%;height:100%;border-radius:16px}
  .pw-big,.pw-half{grid-column:span 2!important}
  .pw-big,.pw-tall{grid-row:span 2!important}
  .mobile-poster-canvas{display:flex;flex-direction:var(--poster-direction,column);justify-content:var(--poster-justify,normal);align-items:var(--poster-align,normal);position:relative;width:var(--poster-width);height:var(--poster-height);padding:24px;zoom:var(--mobile-poster-scale);box-sizing:border-box}
  :host([data-src="contact"]) a{max-width:100%;overflow-wrap:anywhere}
  :host([data-src="contact"]) h2{font-size:38px!important}
  :host([data-src="contact"]) section{padding-left:20px!important;padding-right:20px!important}
  :host([data-src="contact"]) [data-mobile-container]{padding-left:0!important;padding-right:0!important}
}

@media(max-width:359px){.alab span{font-size:14px;line-height:1.3}}
