@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/src/assets/fonts/archivo-variable.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/src/assets/fonts/ibm-plex-sans-jp-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/src/assets/fonts/ibm-plex-sans-jp-500.woff2") format("woff2");
}
/* Shared studio foundation; the current homepage is owned by the home layer. */
@layer reset,tokens,base,layout,components,motion,responsive;
@layer reset{
 *,*::before,*::after{box-sizing:border-box;scrollbar-width:none;scrollbar-color:var(--ivory) transparent}
 *::-webkit-scrollbar{display:none}
 *::-webkit-scrollbar-thumb{background:var(--ivory)}
 body,h1,h2,h3,h4,p,figure,blockquote{margin:0}
 img,video,svg{display:block;max-width:100%}
 button,input,textarea,select{font:inherit}
 button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
 button,a{color:inherit}
 button{cursor:pointer}
 [hidden]{display:none!important}
}
@layer tokens{
 :root{
  color-scheme:light dark;
  --cream:#f3f0e8;--ivory:#dcd5c7;--charcoal:#20211f;
  --paper:light-dark(var(--cream),#272724);--ink:light-dark(var(--charcoal),var(--ivory));--muted:light-dark(#666259,#c2bdb2);--line:light-dark(#d3cdc1,#56534b);--soft:light-dark(#e7e2d7,#3e3d37);--surface:light-dark(#eae6dc,#34342f);
  --inverse-paper:light-dark(var(--charcoal),#e5dfd2);--inverse-ink:light-dark(var(--ivory),#292823);--inverse-muted:light-dark(#beb9ae,#605b50);--inverse-line:light-dark(#535249,#ada799);--inverse-soft:light-dark(#2d2e2a,#d7cfbf);
  --inverse-surface:light-dark(#292a26,var(--ivory));
  --accent:var(--ink);--accent-contrast:light-dark(var(--ivory),var(--paper));--gutter:clamp(24px,3.2vw,56px);--content:1440px;--section-space:clamp(76px,8vw,120px);
  --font:"Archivo","Helvetica Neue",Arial,sans-serif;--font-ja:"IBM Plex Sans JP",sans-serif;--mono:"SFMono-Regular",Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);--motion-fast:180ms;--motion-medium:300ms;--motion-slow:500ms;
  --menu-item-duration:140ms;--menu-item-step:20ms;--menu-close-duration:300ms;
 }
 :root[data-theme=light]{color-scheme:light}
 :root[data-theme=dark]{color-scheme:dark}
}
@layer base{
 html{background:var(--paper);scroll-padding-top:var(--section-nav-height,28px)}
 body{background:var(--paper);color:var(--ink);font:400 16px/1.85 var(--font);-webkit-font-smoothing:antialiased}
 body:lang(ja){font-family:var(--font-ja)}
 h1,h2,h3,h4{font-family:var(--font);font-weight:850;font-stretch:100%;line-height:1.05;letter-spacing:-.045em;overflow-wrap:break-word;text-wrap:balance}
 h1:lang(ja),h2:lang(ja),h3:lang(ja),h4:lang(ja){font-family:var(--font-ja);font-weight:500;line-height:1.55;letter-spacing:-.025em;word-break:auto-phrase}
 p{text-wrap:wrap}
 a{text-underline-offset:.3em;text-decoration-thickness:1px}
 ::selection{background:var(--ink);color:var(--accent-contrast)}
 :focus-visible{outline:2px solid var(--ink);outline-offset:5px}
 .container{width:min(calc(100% - var(--gutter)*2),var(--content));margin-inline:auto}
 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
 .skip-link{position:fixed;z-index:100;left:var(--gutter);top:10px;padding:10px 18px;background:var(--ink);color:var(--accent-contrast);transform:translateY(-180%)}
 .skip-link:focus{transform:none}
 .eyebrow,.breadcrumb{font:400 11px/1.6 var(--mono);letter-spacing:.03em}
 .eyebrow{margin-bottom:20px;color:var(--muted)}
}
@layer layout{
 .site-header{position:relative;z-index:20;background:var(--paper)}
 .site-header>.container{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
 .brand{display:inline-flex;gap:10px;align-items:center;font:700 16px/1.3 var(--font);letter-spacing:-.025em;text-decoration:none;white-space:nowrap}
 .brand-mark{width:22px;height:22px;flex:none}
 .nav-preferences{display:flex;align-items:center;gap:8px}
 .theme-toggle{display:none;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;background:transparent}
 :root[data-theme] .theme-toggle{display:grid}
 .theme-toggle svg{width:20px;height:20px;transition:transform var(--motion-medium) var(--ease)}
 .theme-toggle[aria-pressed=true] svg{transform:rotate(180deg)}
 .site-nav{display:flex;align-items:center;gap:clamp(18px,2.5vw,36px);font:500 13px/1.4 var(--font)}
 .site-nav a{text-decoration:none;padding-block:12px}
 .site-nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
 .site-nav .lang-link{font-size:11px;margin-left:10px}
 .menu-toggle{display:none;position:relative;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;border:0;padding:0;background:transparent}
 .menu-toggle>span:not(.sr-only){display:block;width:23px;height:1px;background:var(--ink);transform-origin:center}
 .menu-toggle[aria-expanded=true]>span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
 .menu-toggle[aria-expanded=true]>span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

}
@layer components{
 .horizontal-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}
 .horizontal-tabs>a,.horizontal-tabs>button{flex:none;white-space:nowrap}
 /* The index keeps normal browser anchors and has no scroll interception. */
 .section-reading{position:sticky;top:0;z-index:15;background:var(--paper);color:var(--ink);padding:18px var(--gutter);border-block:1px solid var(--line);font:500 11px/1.4 var(--font);letter-spacing:.03em}
 .section-reading .horizontal-tabs{justify-content:safe center;gap:12px 30px}
 .section-reading a{text-decoration:none;padding-block:5px;color:var(--muted)}
 .section-reading a[aria-current=location]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}
 .section-reading-line{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--ink);transform:scaleX(var(--reading-progress,0));transform-origin:left}
 .section-reading>[data-reading-links]{max-width:var(--content);margin-inline:auto}
 @media(max-width:900px){.section-reading{padding-block:13px;font-size:10px}}
 @media(max-width:560px){.section-reading{padding:11px 20px;font-size:9px}.section-reading .horizontal-tabs{gap:4px 17px}}
 .text-link,.button{position:relative;display:inline-flex;align-items:center;gap:14px;width:fit-content;min-height:44px;font-size:13px;font-weight:500;line-height:1.5;padding-block:9px;text-decoration:none;border:0;background:transparent}
 .link-label{position:relative;display:inline-block}
 .link-label::after,.nav-link::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--motion-fast) var(--ease)}
 .text-link:hover .link-label::after,.button:hover .link-label::after,.text-link:focus-visible .link-label::after,.button:focus-visible .link-label::after,.nav-link:hover::after,.nav-link:focus-visible::after{transform:scaleX(1)}
 .site-footer{padding-block:34px;background:var(--paper);font-family:var(--font)}
 .site-footer>.container{display:grid;gap:24px}
 .footer-meta{display:flex;justify-content:space-between;align-items:center;gap:20px}
 .site-footer .brand{font-size:14px}
 .site-footer .brand-mark{width:19px;height:19px}
 .site-footer p{font-size:11px;color:var(--muted)}
 .site-footer nav{display:grid;grid-template-columns:repeat(4,max-content);column-gap:24px;align-items:start;overflow-x:auto;overscroll-behavior-x:contain;padding-top:16px;border-top:1px solid var(--line)}
 .site-footer nav a{font-size:11px;min-height:44px;white-space:nowrap}
 .site-footer nav>a{grid-row:1}
 .footer-service{display:contents;font-size:11px;text-align:left}
 .footer-service::details-content{grid-column:1/-1;grid-row:2}
 .footer-service summary{grid-column:1;grid-row:1;display:flex;align-items:center;gap:12px;min-height:44px;width:fit-content;cursor:pointer;list-style:none}
 .footer-service summary::-webkit-details-marker{display:none}
 .footer-service summary::after{content:"";width:4px;height:4px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform 240ms var(--ease)}
 .footer-service[open] summary::after{transform:rotate(225deg)}
 .footer-service-links{display:flex;gap:32px;padding-block:8px 12px}
 .site-footer .footer-service-links a{font-size:12px;gap:12px}
 .footer-service-number{font-size:9px;color:var(--muted)}
 @media(max-width:600px){
  .site-footer{text-align:center}
  .footer-meta{flex-direction:column;gap:12px}
  .site-footer nav{justify-content:safe center;column-gap:12px}
  .footer-service-links{justify-content:center;gap:24px}
 }
 .nav-link{position:relative}
 .nav-link::after{bottom:6px}
 .platform-links{display:flex;flex-wrap:nowrap;gap:4px;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
 .platform-link{display:grid;place-items:center;flex:none;width:44px;height:44px;text-decoration:none;opacity:.8;transition:opacity var(--motion-fast) linear}
 .platform-link:hover,.platform-link:focus-visible{opacity:1}
 .platform-link svg{width:20px;height:20px}
 .journal-thumbnail{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--paper);min-width:0}
 [data-art-stage]>.art-motion-canvas{position:absolute;inset:0;width:100%;height:100%;max-width:none;opacity:0;pointer-events:none}
 [data-art-stage].is-art-rendered>.art-motion-canvas{opacity:1}
 [data-art-stage].is-art-rendered>img{opacity:0}
 .journal-thumbnail-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
 .media-layers{position:relative;display:block;width:100%;overflow:clip;min-width:0}
 .media-layers[data-image-inspect]{padding:0;border:0;border-radius:0;background:transparent;text-align:inherit;cursor:zoom-in}
 .media-layers img{width:100%;height:100%;object-fit:var(--media-fit,cover);object-position:var(--media-position,center)}
 .media-viewer{min-width:0}
 .viewer-controls{display:flex;justify-content:flex-end;gap:22px;margin-bottom:17px}
 .viewer-controls button{border:0;border-bottom:1px solid transparent;background:transparent;padding:7px 0;color:var(--muted);font:500 12px/1.5 var(--font)}
 .viewer-controls button[aria-pressed=true]{color:var(--ink);border-bottom-color:currentColor}
 .viewer-stage{display:grid;gap:28px}
 .viewer-panel{--media-fit:contain;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-width:0;min-height:0}
 .viewer-panel>.media-layers{aspect-ratio:16/9;min-height:0}
 .viewer-panel figcaption{font-size:12px;line-height:1.8;color:var(--muted)}
 .viewer-panel video{width:100%;aspect-ratio:4/5;max-height:690px;object-fit:contain;background:#101010}
 .media-viewer:has(.viewer-controls:not([hidden])) .viewer-stage{height:var(--viewer-height);min-height:0;grid-template-rows:minmax(0,1fr);gap:0}
 .media-viewer:has(.viewer-controls:not([hidden])) .viewer-panel{height:100%}
 .media-viewer:has(.viewer-controls:not([hidden])) .viewer-panel>.media-layers{height:100%;aspect-ratio:auto}
 .media-viewer:has(.viewer-controls:not([hidden])) .viewer-panel video{height:100%;aspect-ratio:auto}

}
@layer motion{
 @media(prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  @view-transition{navigation:auto}
  :root{--page-direction:1;--page-duration:520ms}
  :root[data-page-direction=backward]{--page-direction:-1}
  @media(max-width:800px){:root{--page-duration:380ms}}
  ::view-transition-group(root){animation-duration:var(--page-duration);animation-timing-function:var(--ease)}
  ::view-transition-old(root){animation:page-slide-out var(--page-duration) var(--ease) both;mix-blend-mode:normal}
  ::view-transition-new(root){animation:page-slide-in var(--page-duration) var(--ease) both;mix-blend-mode:normal}
  :root:active-view-transition-type(menu)::view-transition-old(*){animation:none}
  :root:active-view-transition-type(menu)::view-transition-old(root){animation:menu-page-out var(--menu-close-duration) var(--ease) var(--menu-close-delay,0ms) both}
  :root:active-view-transition-type(menu)::view-transition-new(root){animation:menu-page-in 280ms var(--ease) calc(var(--menu-close-delay,0ms) + var(--menu-close-duration)) both}
 }
 @keyframes page-slide-out{to{transform:translateX(calc(-100% * var(--page-direction)))}}
 @keyframes page-slide-in{from{transform:translateX(calc(100% * var(--page-direction)))}to{transform:translateX(0)}}
 @keyframes menu-page-out{to{transform:translateX(100%)}}
 @keyframes menu-page-in{from{opacity:0;transform:translateX(calc(24px * var(--page-direction)))}to{opacity:1;transform:translateX(0)}}
 .menu-toggle>span:not(.sr-only){transition:transform var(--motion-medium) var(--ease)}
 .disclosure-panel{min-width:0;display:flow-root}
 .home-capability{--disclosure-duration:500ms;--disclosure-ease:cubic-bezier(.65,0,.35,1)}
 .footer-service{--disclosure-duration:320ms;--disclosure-ease:var(--ease)}
 .footer-service-links a{transition:opacity 220ms var(--ease),transform 320ms var(--ease);transition-delay:calc(var(--service-order,0)*60ms)}
 .footer-service-links a:nth-child(2){--service-order:1}
 .footer-service-links a:nth-child(3){--service-order:2}
 .footer-service-links[inert] a{opacity:0;transform:translateX(12px);transition:none}
 @media(prefers-reduced-motion:reduce){
  *,*::before,*::after,details::details-content{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 }
}
@layer responsive{
 @media(max-width:1100px){.site-nav{gap:18px}}
 @media(max-width:800px){
  :root{--gutter:26px;--section-space:80px}
  .site-header>.container{min-height:72px;flex-wrap:wrap;padding-block:16px;gap:16px}
  .site-nav{width:100%;flex-wrap:wrap;gap:10px 24px}
  .site-nav .lang-link{margin-left:0}
  .js-nav .site-header>.container{flex-wrap:nowrap;padding-block:10px}
  .js-nav .menu-toggle{display:flex}
  .js-nav:has(.menu-toggle[aria-expanded=true]),.js-nav:has(.menu-toggle[aria-expanded=true]) body{overflow:hidden}
  .js-nav .menu-toggle[aria-expanded=true]{position:fixed;top:12px;right:var(--gutter);z-index:31}
  .js-nav .site-nav{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:stretch;justify-content:center;width:100%;height:100dvh;gap:0;padding:88px var(--gutter) 40px;overflow-y:auto;background:var(--paper);font:750 clamp(28px,4.2dvh,38px)/1.1 var(--font);letter-spacing:-.03em}
  .js-nav .site-nav a{padding-block:clamp(8px,1.4dvh,14px)}
  .js-nav .nav-preferences{margin-top:22px}
  .js-nav .site-nav .lang-link{font-size:15px;margin:0}
 }
 @media(max-width:560px){
  :root{--gutter:20px;--section-space:64px}
  .brand{font-size:14px;gap:9px}.brand-mark{width:20px;height:20px}
  .site-header>.container{min-height:68px}
  .viewer-controls{justify-content:flex-start;gap:20px;margin-bottom:15px}
  .viewer-controls button{font-size:11px}
  .viewer-panel{gap:10px}
  .viewer-panel figcaption{font-size:12px}
 }
}

/* One photographic focus system; layout and components own presentation. */
@layer motion {
  .page-home .color-media .mono-layer { filter:grayscale(1); }
  .media-layers .color-layer {
    position:absolute; inset:0; width:100%; height:100%;
    filter:none; pointer-events:none; clip-path:circle(0 at 50% 50%);
  }
  .page-home .color-media.is-color .color-layer {
    clip-path:circle(var(--reveal-radius,165px) at var(--focus-x,50%) var(--focus-y,50%));
  }
  .page-home .color-media:focus-within .color-layer { clip-path:inset(0); }
  .page-home .color-media video { filter:grayscale(1); transition:filter 180ms linear; }
  .page-home .color-media.is-color video,.page-home .color-media:focus-within video { filter:grayscale(0); }
  .viewer-controls button { transition:color 160ms linear,border-color 160ms linear; }
  @media(prefers-reduced-motion:reduce) {
    .media-layers,.color-media video,.viewer-controls button {
      animation:none!important; transition:none!important;
    }
  }
}


@layer components {
 .site-loading{position:fixed;inset:0;z-index:200;overflow:hidden;pointer-events:none}
 .site-loading-panel{position:absolute;left:0;width:100%;height:calc(50% + 1px);background:#111}
 .site-loading-panel--top{top:0}
 .site-loading-panel--bottom{bottom:0}
 .site-loading-line{position:absolute;top:50%;left:50%;width:70%;height:1px;background:var(--ivory);translate:-50% -50%;transform:scaleX(0);transform-origin:center}
 .studio-media{--media-fit:contain;--media-position:center;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:15px;padding:var(--media-inset);background:var(--soft);color:var(--ink);border-radius:0;box-shadow:none}
 .studio-media>.media-layers{min-height:0;height:100%;aspect-ratio:3/2}
 .studio-media>figcaption{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0;font:400 12px/1.65 var(--font);letter-spacing:.015em;color:var(--muted);text-align:left;overflow-wrap:anywhere}
 .studio-media>video{width:100%;height:100%;min-height:0;object-fit:contain;object-position:center;background:#111}
 .project-gallery{container-type:inline-size;--viewer-height:calc(100cqw * 2 / 3 + 56px)}
 .project-gallery .viewer-controls{justify-content:flex-start;gap:26px;margin:0 0 14px}
 .project-gallery .viewer-controls button{min-height:44px;padding:10px 0;font:500 12px/1.5 var(--font);color:var(--muted)}
 .project-gallery .viewer-controls button[aria-pressed=true]{color:var(--ink);border-bottom-color:currentColor}
 .project-media{--media-fit:contain;--media-position:center;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:0;background:transparent;color:inherit;gap:12px}
 .project-gallery .viewer-panel>.media-layers{aspect-ratio:3/2}
 .project-outbound{display:block;min-height:0;height:100%}
 .animation-image{height:100%;width:100%;min-height:0;object-fit:contain;object-position:center}
 .animation-controls{display:flex;align-items:center;gap:4px}
 .animation-controls button{border:0;background:transparent;color:inherit;min-height:44px;font:500 12px/1.5 var(--font)}
 .animation-controls .animation-toggle{padding:8px 0;border-bottom:1px solid currentColor}
 .animation-controls .animation-step{display:grid;place-items:center;width:44px;padding:8px}
 .animation-step svg{width:16px;height:16px}
 .phone-lineup,.release-lineup{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
 .phone-lineup{height:100%;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(22px,4vw,64px);padding:28px 0;scroll-snap-type:x proximity}
 .interface-slide{width:min(26%,300px,calc((100cqw * 2 / 3 - 140px) * .44));flex:none;min-width:0;display:grid;justify-items:center;scroll-snap-align:center}
 .interface-device{container-type:inline-size;width:100%;min-width:0}
 .interface-device>figcaption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px;font:400 11px/1.5 var(--font);color:var(--muted)}
 .phone-shell{--phone-radius:clamp(12px,20cqw,38px);--phone-inset:clamp(2px,3.75cqw,7px);padding:var(--phone-inset);border:1px solid #777;background:#111;border-radius:var(--phone-radius)}
 .phone-display{overflow:hidden;border-radius:calc(var(--phone-radius) - var(--phone-inset) - 1px);background:var(--ivory)}
 .phone-status{height:clamp(12px,16cqw,30px);display:grid;grid-template-columns:minmax(0,1fr) min(35cqw,65px) minmax(0,1fr);gap:clamp(2px,3.2cqw,6px);align-items:center;padding:0 clamp(4px,6.5cqw,12px);color:#111;font:600 clamp(4px,5cqw,9px)/1 var(--font)}
 .phone-island{width:100%;height:clamp(6px,8.5cqw,16px);border-radius:20px;background:#111}
 .phone-battery{width:clamp(6px,7.5cqw,14px);height:clamp(3px,3.75cqw,7px);justify-self:end}
 .phone-display>.media-layers{aspect-ratio:390/844}
 .project-media>figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font:400 12px/1.65 var(--font);color:var(--muted);align-items:center;min-height:44px}
 dialog.media-lightbox{width:min(1200px,calc(100% - 40px));max-height:90svh;border:0;background:var(--paper);color:var(--ink);padding:24px;overflow:auto}
 dialog.media-lightbox::backdrop{background:rgb(0 0 0 / 75%)}
 .media-lightbox form{display:flex;justify-content:flex-end;margin:0 0 16px}
 .media-lightbox button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink)}
 .media-lightbox button svg{width:22px;height:22px}
 .media-lightbox img{width:auto;max-width:100%;height:auto;max-height:min(75svh,calc(90svh - 150px));object-fit:contain;margin-inline:auto}
 .media-lightbox [data-lightbox-caption]{font:400 12px/1.8 var(--font);color:var(--muted);margin-top:16px;overflow-wrap:anywhere}
 .release-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:26px;height:100%;min-height:0}
 .release-device{min-width:0}
 .release-device>.media-layers{aspect-ratio:1;height:auto}
 .release-device>figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;font:500 11px/1.6 var(--font);color:var(--muted)}
 .release-device .text-link{font-size:11px}
 .back-to-top{position:fixed;right:var(--gutter);bottom:22px;z-index:20;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:var(--charcoal);color:var(--ivory);text-decoration:none}
 .back-to-top[data-surface=dark]{background:var(--ivory);color:var(--charcoal)}
 .back-to-top svg{width:20px;height:20px}
 @media(max-width:800px){
  .project-gallery:has(.viewer-panel:not([hidden])[data-animation-set]){--viewer-height:auto}
  .viewer-panel[data-animation-set]>.project-outbound{height:auto}
  .viewer-panel[data-animation-set] .animation-image{height:auto;aspect-ratio:4/5}
 }
 @media(max-width:560px){
  .project-gallery{--viewer-height:calc(100cqw * 2 / 3 + 68px)}
  .project-media>figcaption{min-height:56px}
  .project-gallery .viewer-controls{margin-bottom:12px}
  .project-gallery:has(.viewer-panel:not([hidden])>:is(.phone-lineup,.release-lineup)){--viewer-height:auto}
  .phone-lineup,.release-lineup{display:grid;grid-auto-flow:column;grid-auto-columns:75%;align-items:start;justify-content:normal;gap:0;padding:0;scroll-padding:0;scroll-snap-type:x mandatory}
  .release-lineup{grid-template-columns:none}
  .release-device{width:210px;scroll-snap-align:start}
  .interface-slide{width:100%;scroll-snap-align:start}
  .interface-device{width:190px}
  .phone-shell{--phone-radius:30px}
 }
}

@layer pages {
 body.studio-site:not(.page-home){--page-space:clamp(64px,7vw,104px);--page-inset:22px;--media-inset:var(--page-inset);--page-display:"Archivo","IBM Plex Sans JP",sans-serif;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.95}
 body.studio-site:not(.page-home) :is(h1,h2,h3,h4){font-family:var(--page-display);font-weight:800;font-stretch:100%;text-transform:uppercase;line-height:1.08;letter-spacing:-.035em;text-wrap:balance;overflow-wrap:anywhere}
 body.studio-site:not(.page-home) .site-nav a{font-family:var(--font);text-transform:uppercase}
 body.studio-site:not(.page-home) .eyebrow{font:500 11px/1.6 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
 body.studio-site:not(.page-home) .section{padding-block:var(--page-space)}
 body.studio-site:not(.page-home) :is(.page-hero,.section--light){background:var(--surface)}
 body.studio-site:not(.page-home) .section-shell{padding-bottom:var(--page-space)}
 body.studio-site:not(.page-home) .section-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:35px;align-items:end;margin-bottom:42px}
 body.studio-site:not(.page-home) .section-heading>div{max-width:850px;min-width:0}
 body.studio-site:not(.page-home) .section-heading>.text-link{margin-bottom:0;flex:none}
 body.studio-site:not(.page-home) .section-title{font-size:clamp(34px,3.4vw,48px);line-height:1.08;max-width:850px}
 body.studio-site:not(.page-home) .section-intro{font-size:16px;line-height:1.95;color:var(--muted);max-width:650px;margin-top:22px}
 /* A single editorial entry pattern for every index, detail and legal route. */
 body.studio-site:not(.page-home) .page-hero,body.studio-site:not(.page-home) .page-heading{padding-block:clamp(40px,5vw,72px) clamp(38px,4.2vw,60px)}
 body.studio-site:not(.page-home) .breadcrumb{font:400 12px/1.6 var(--font);color:var(--muted);margin-bottom:35px}
 body.studio-site:not(.page-home) .breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
 body.studio-site:not(.page-home) .breadcrumb a{text-decoration:none}
 body.studio-site:not(.page-home) .breadcrumb li+li::before{content:"/";margin-right:10px;color:var(--muted)}
 body.studio-site:not(.page-home) .page-title{font-size:clamp(48px,7vw,100px);font-weight:850;line-height:1.01;letter-spacing:-.045em;max-width:1280px}
 body.studio-site:not(.page-home) .page-intro{font-size:clamp(17px,1.5vw,21px);line-height:1.9;max-width:800px;color:var(--muted);margin-top:26px}
 /* Service scope, evidence and commissioning information share one editorial grid. */
 .service-section-head,.project-feature-head{margin-bottom:42px}
 .service-section-head h2,.project-feature-head h2{font-size:clamp(42px,5vw,72px);line-height:1.06}
 .service-section-head .service-name,.project-feature-head>p:last-child{font-size:18px;line-height:1.8;color:var(--muted);margin-top:18px}
 .service-section-body,.service-detail-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9%;align-items:start}
 .service-audience h3,.service-selection h3,.service-consulting h3,.service-detail-intro h2,.project-story h2,.project-feature-copy h3{font-size:24px;line-height:1.2;margin-bottom:20px}
 .service-audience p,.service-detail-intro p,.project-feature-copy p,.project-sections p{font-size:16px;line-height:1.95;color:var(--muted)}
 .service-detail-intro h2:not(:first-child),.project-feature-copy h3{margin-top:38px}
 .service-selection>.text-link,.service-detail-intro .text-link{margin-top:28px}
 .service-audience{max-width:780px;margin-bottom:38px}
 .service-evidence{min-width:0}
 .service-evidence>.interface-device{max-width:230px;margin-inline:auto}
 .service-evidence .studio-media>.media-layers{height:clamp(330px,35vw,500px);aspect-ratio:auto}
 .service-evidence>.text-link{margin-top:18px}
 .service-process{list-style:none;padding:0;margin:0}
 .service-process li{display:grid;grid-template-columns:80px minmax(0,760px);gap:35px;border-top:1px solid var(--line);padding-block:30px}
 .service-process li:last-child{border-bottom:1px solid var(--line)}
 .service-process span{font-size:13px;color:var(--muted)}
 .service-process p{font-size:18px;line-height:1.95}
 .project-feature-body{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:6%;align-items:start}
 .project-feature-copy{padding-top:58px}
 .project-feature-copy>.text-link{margin-top:24px}
 .project-feature-copy .project-role{font-size:14px}
 .project-story{min-width:0}
 .project-story>.project-gallery{max-width:1080px;margin-inline:auto}
 .project-story-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8%;margin-block:64px;padding-top:32px;border-top:1px solid var(--line)}
 .project-story-intro p{font-size:16px;line-height:1.95;color:var(--muted)}
 .project-story-intro .page-intro{margin-top:0;font-size:21px}
 .project-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 8%}
 .project-sections section{border-top:1px solid var(--line);padding-top:30px}
 .project-sections p+p{margin-top:20px}
 body.studio-site:not(.page-home) .work-copy .work-summary{font-size:14px;line-height:1.9}
 .contact-form-layout{max-width:800px;padding-top:48px}

 /* One media treatment. Fit and position are inherited by both registered layers. */
 body.studio-site:not(.page-home) :is(.project-image,.work-image,.project-film){--media-fit:contain;--media-position:center;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;padding:var(--page-inset);background:var(--soft);border:0;border-radius:0;box-shadow:none}
 body.studio-site:not(.page-home) :is(.project-image,.work-image){aspect-ratio:3/2;overflow:clip}
 body.studio-site:not(.page-home) :is(.project-image,.work-image)>.media-layers{height:100%;min-height:0}
 body.studio-site:not(.page-home) .detail-media>figure>.media-layers{height:clamp(330px,42vw,630px);min-height:0;aspect-ratio:auto}
 body.studio-site:not(.page-home) .detail-media .media-layers>.mono-layer{height:100%}
 body.studio-site:not(.page-home) .project-film figcaption{font:400 12px/1.8 var(--font);color:var(--muted);margin-top:15px;text-align:left}
 body.studio-site:not(.page-home) .detail-media>*+*{margin-top:28px}
 body.studio-site:not(.page-home) .project-film{margin-top:28px}
 body.studio-site:not(.page-home) .project-film .animation-image{width:100%;height:auto;object-fit:contain}
 body.studio-site:not(.page-home) .project-film{max-width:480px;margin-inline:auto}
 body.studio-site:not(.page-home) .project-film figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px}
 /* Project index, related output and the complete accessible work collection. */
 body.studio-site:not(.page-home) .project-card,body.studio-site:not(.page-home) .work-card{min-width:0}
 body.studio-site:not(.page-home) .project-copy{margin-top:25px}
 body.studio-site:not(.page-home) .project-topline{font:500 11px/1.6 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:15px}
 body.studio-site:not(.page-home) .project-title{font-size:clamp(30px,3.2vw,44px);line-height:1.08;letter-spacing:-.035em}
 body.studio-site:not(.page-home) .project-title a,body.studio-site:not(.page-home) .work-copy h3 a{text-decoration:none}
 body.studio-site:not(.page-home) .project-summary{font-size:16px;line-height:1.95;color:var(--muted);max-width:650px;margin-top:20px}
 body.studio-site:not(.page-home) .project-copy>.text-link{margin-top:16px}
 body.studio-site:not(.page-home) .project-tags{display:flex;flex-wrap:wrap;gap:8px 20px;font:400 12px/1.7 var(--font);color:var(--muted);margin-top:15px}
 body.studio-site:not(.page-home) .related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}
 body.studio-site:not(.page-home) .related-grid .project-title{font-size:28px}
 body.studio-site:not(.page-home) .works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 28px}
 body.studio-site:not(.page-home) .work-copy{padding-top:20px}
 body.studio-site:not(.page-home) .work-copy .eyebrow{font:500 10px/1.6 var(--font);letter-spacing:.06em;margin-bottom:10px}
 body.studio-site:not(.page-home) .work-copy h3{font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.015em}
 body.studio-site:not(.page-home) .work-copy p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:11px}
 body.studio-site:not(.page-home) .collection-filters{gap:12px 28px;margin-bottom:22px;padding-block:0 22px;border-bottom:1px solid var(--line)}
 body.studio-site:not(.page-home) .collection-filters button{border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:9px 0;min-height:42px;font:500 12px/1.5 var(--font);text-transform:uppercase}
 body.studio-site:not(.page-home) .collection-filters button[aria-pressed=true]{color:var(--ink);border-bottom-color:currentColor}
 body.studio-site:not(.page-home) [data-filter-status]{font:400 12px/1.6 var(--font);color:var(--muted);margin-bottom:30px}
 /* Detail, article and legal reading patterns share the same measure. */
 body.studio-site:not(.page-home) .detail-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:9%;align-items:start}
 body.studio-site:not(.page-home) .detail-copy{min-width:0}
 body.studio-site:not(.page-home) .detail-copy h2{font-size:clamp(27px,2.6vw,36px);line-height:1.2;font-weight:750;margin-bottom:24px}
 body.studio-site:not(.page-home) .detail-copy p{font-size:16px;line-height:1.95;color:var(--muted);margin-bottom:25px}
 body.studio-site:not(.page-home) .detail-copy>.page-intro{font-size:19px;margin-top:0}
 body.studio-site:not(.page-home) .detail-copy>.text-link,body.studio-site:not(.page-home) .detail-copy>.button{margin-top:17px}
 body.studio-site:not(.page-home) .detail-links{display:flex;flex-wrap:wrap;align-items:center;gap:15px 28px;margin-block:26px}
 body.studio-site:not(.page-home) .meta-list{display:grid;grid-template-columns:100px minmax(0,1fr);border-top:1px solid var(--line);margin:30px 0 0}
 body.studio-site:not(.page-home) .meta-list dt,body.studio-site:not(.page-home) .meta-list dd{font-size:14px;line-height:1.9;padding-block:16px;border-bottom:1px solid var(--line);margin:0;overflow-wrap:anywhere}
 body.studio-site:not(.page-home) .meta-list dt{font-size:12px;color:var(--muted)}
 body.studio-site:not(.page-home) .scope-list{list-style:none;margin:0;padding:0}
 body.studio-site:not(.page-home) .scope-list li{font-size:16px;line-height:1.85;padding-block:18px;border-bottom:1px solid var(--line)}
 body.studio-site:not(.page-home) .prose{max-width:820px;font-size:17px;line-height:2}
 body.studio-site:not(.page-home) .prose p+p{margin-top:26px}
 body.studio-site:not(.page-home) .prose h2{font-size:clamp(27px,2.7vw,36px);line-height:1.2;margin-block:48px 25px}
 body.studio-site:not(.page-home) .prose h3{font-size:25px;line-height:1.25;margin-block:36px 22px}
 body.studio-site:not(.page-home) .prose ul,body.studio-site:not(.page-home) .prose ol{padding-left:24px}
 body.studio-site:not(.page-home) .prose li+li{margin-top:12px}
 body.studio-site:not(.page-home) :is(.prose>img,.prose p>img){height:auto;margin-block:35px}
 body.studio-site:not(.page-home) .prose blockquote{border-left:2px solid var(--ink);padding-left:24px;margin-block:35px}
 body.studio-site:not(.page-home) .detail-copy .prose{width:100%;font-size:16px}
 body.studio-site:not(.page-home) .article-byline{font:400 12px/1.8 var(--font);color:var(--muted);margin-bottom:30px}
 body.studio-site:not(.page-home) .article-body .project-gallery{margin-top:32px}
 body.studio-site:not(.page-home) .article-body>section+section{margin-top:45px}
 body.studio-site:not(.page-home) .legal-body{margin-inline:auto}
 /* Article navigation shares native anchors and the HOME reading controller. */
 .article-layout{display:grid;grid-template-columns:220px minmax(0,820px);gap:clamp(40px,6vw,88px);justify-content:center;align-items:start}
 .article-body{min-width:0}
 .article-contents{position:sticky;top:28px;align-self:start;padding-block:16px 22px;border-block:1px solid var(--line)}
 .article-contents-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;font:500 10px/1.5 var(--font);letter-spacing:.04em}
 .article-contents-head a{font-size:10px;text-decoration:none}
 .article-chapters.horizontal-tabs{display:flex;flex-direction:column;gap:0;align-items:stretch;overflow:visible}
 .article-chapters a{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;min-height:44px;padding-block:13px;text-decoration:none;white-space:normal;font:500 12px/1.6 var(--font);color:var(--muted)}
 .article-chapters a[aria-current=location]{color:var(--ink)}
 .article-chapter-number{font-size:10px;opacity:.6}
 .article-chapters a[aria-current=location] .article-chapter-number{opacity:1}
 .article-reading-line{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--ink);transform-origin:left;transform:scaleX(var(--reading-progress,0))}
 .article-body>section{scroll-margin-top:28px}
 .article-next{border-top:1px solid var(--line)}
 .article-next-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:32px}
 .article-next-head h2{font-size:clamp(28px,3vw,42px)}
 .article-next-head a{font:500 11px/1.5 var(--font);white-space:nowrap}
 .article-story-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:32px 64px}
 .article-story-link{display:block;padding-block:24px;text-decoration:none}
 .article-story-link .journal-thumbnail{max-width:360px;margin-bottom:24px}
 .article-story-direction,.article-story-link time{font:500 11px/1.7 var(--font);color:var(--muted)}
 .article-story-link time{display:block;margin-top:12px}
 .article-story-link h3{font-size:clamp(27px,3vw,38px);line-height:1.2;margin-top:18px;max-width:750px}
 .article-story-link p{font-size:16px;line-height:1.95;color:var(--muted);margin-top:18px;max-width:720px}
 .article-story-link:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
 .article-reference{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
 .article-reference p:first-child{margin-top:0}
 @media(max-width:800px){
  .article-layout{display:block}
  .article-contents{top:0;z-index:15;background:var(--paper);padding-block:12px 0;margin-bottom:32px}
  .article-contents-head{margin-bottom:4px}
  .article-chapters.horizontal-tabs{flex-direction:row;gap:24px;overflow-x:auto;align-items:center}
  .article-chapters a{display:flex;flex:none;gap:8px;padding-block:14px;white-space:nowrap;font-size:11px}
  .article-body>section{scroll-margin-top:110px}
  .article-next-head{gap:16px;margin-bottom:24px}
 }
 /* Journal is an honest text index, including the current empty state. */
 body.studio-site:not(.page-home) .journal-empty{padding-top:27px}
 body.studio-site:not(.page-home) .journal-empty h3{font-size:26px;font-weight:700;line-height:1.25}
 body.studio-site:not(.page-home) .journal-empty p{font-size:16px;line-height:1.95;color:var(--muted);margin-top:20px}
 body.studio-site:not(.page-home) .journal-grid{display:grid;grid-template-columns:1fr}
 body.studio-site:not(.page-home) .journal-card{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:32px;align-items:start;padding-block:30px}
 body.studio-site:not(.page-home) .journal-card:not([hidden])~.journal-card{border-top:1px solid var(--line)}
 body.studio-site:not(.page-home) .journal-card .eyebrow{margin:0}
 body.studio-site:not(.page-home) .journal-card h2,body.studio-site:not(.page-home) .journal-card h3{font-size:28px;line-height:1.22;font-weight:750;margin-block:15px}
 body.studio-site:not(.page-home) .journal-card a{text-decoration:none}
 body.studio-site:not(.page-home) .journal-card time{font:400 12px/1.7 var(--font);color:var(--muted)}
 body.studio-site:not(.page-home) .journal-card p{font-size:16px;line-height:1.95;color:var(--muted)}
 /* The closing invitation follows the approved white Contact, not the old black poster. */
 body.studio-site:not(.page-home) .contact-section{background:var(--paper);color:var(--ink);padding-block:72px;min-height:0;border-top:2px solid var(--ink)}
 body.studio-site:not(.page-home) .contact-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
 body.studio-site:not(.page-home) .contact-copy .section-title{font-size:clamp(36px,4.2vw,60px);line-height:1.08}
 body.studio-site:not(.page-home) .contact-copy>.section-intro{font-size:16px;margin-top:24px}
 body.studio-site:not(.page-home) .contact-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:17px 28px}
 body.studio-site:not(.page-home) .contact-links>.button{margin-right:0}
 /* Native form/dialog behavior remains owned by contact.js. */
 body.studio-site:not(.page-home) .contact-form{display:grid;gap:27px;align-content:start;min-width:0}
 body.studio-site:not(.page-home) .contact-form label{display:block;font-size:13px;font-weight:500;line-height:1.6;margin-bottom:8px}
 body.studio-site:not(.page-home) .contact-form input:not([type=checkbox]),body.studio-site:not(.page-home) .contact-form textarea,body.studio-site:not(.page-home) .contact-form select{width:100%;min-width:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:inherit;padding:13px 0;font-size:16px;line-height:1.6}
 body.studio-site:not(.page-home) .contact-form input:focus,body.studio-site:not(.page-home) .contact-form textarea:focus,body.studio-site:not(.page-home) .contact-form select:focus{border-bottom-color:var(--ink)}
 body.studio-site:not(.page-home) .contact-form textarea{resize:vertical;min-height:190px}
 body.studio-site:not(.page-home) .contact-form select option{background:var(--paper);color:var(--ink)}
 body.studio-site:not(.page-home) .form-note,body.studio-site:not(.page-home) .field small{font-size:13px;line-height:1.9;color:var(--muted)}
 body.studio-site:not(.page-home) .contact-submit{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:48px;padding:13px 24px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--accent-contrast);font-size:14px;font-weight:500;line-height:1.5}
 body.studio-site:not(.page-home) .contact-submit:hover{opacity:.82}
 body.studio-site:not(.page-home) .contact-submit:disabled{opacity:.45;cursor:not-allowed}
 body.studio-site:not(.page-home) .form-status{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
 body.studio-site:not(.page-home) dialog.contact-dialog{width:min(700px,calc(100% - 40px));max-height:85svh;overflow:auto;border:0;background:var(--paper);color:var(--ink);padding:clamp(25px,4vw,45px)}
 body.studio-site:not(.page-home) dialog.contact-dialog::backdrop{background:rgb(0 0 0 / 72%)}
 body.studio-site:not(.page-home) .contact-dialog h2{font-size:30px;line-height:1.15;margin-bottom:25px}
 body.studio-site:not(.page-home) .contact-preview{border-block:1px solid var(--line);padding-block:18px;margin:0}
 body.studio-site:not(.page-home) .contact-preview>div{padding-block:11px}
 body.studio-site:not(.page-home) .contact-preview dt{font-size:12px;color:var(--muted)}
 body.studio-site:not(.page-home) .contact-preview dd{font-size:16px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}
 body.studio-site:not(.page-home) .contact-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:25px}
 body.studio-site:not(.page-home) .contact-actions button{min-height:48px;padding:12px 22px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font-size:14px;font-weight:500}
 body.studio-site:not(.page-home) .contact-actions .contact-submit{background:var(--ink);color:var(--accent-contrast)}
 @media(max-width:1000px){
  .project-feature-body{grid-template-columns:minmax(0,1fr);gap:38px}
  .project-feature-copy{padding-top:0}
  body.studio-site:not(.page-home) .detail-layout{gap:6%}
  body.studio-site:not(.page-home) .related-grid{gap:24px}
  body.studio-site:not(.page-home) .journal-card{gap:28px}
 }
 @media(max-width:800px){
  .service-section-body,.service-detail-intro,.project-story-intro,.project-sections{grid-template-columns:1fr;gap:38px}
  .service-section-head h2,.project-feature-head h2{font-size:clamp(30px,10vw,42px)}
  .project-story-intro{margin-block:42px}
  .project-story-intro .page-intro{font-size:18px}
  .service-process li{grid-template-columns:30px minmax(0,1fr);gap:20px}
  .service-process p{font-size:16px}

  body.studio-site:not(.page-home){--page-space:76px}
  body.studio-site:not(.page-home) .page-title{font-size:clamp(46px,7.8vw,68px)}
  body.studio-site:not(.page-home) .page-intro{font-size:18px}
  body.studio-site:not(.page-home) .section-heading{gap:25px}
  body.studio-site:not(.page-home) .section-title{font-size:38px}
  body.studio-site:not(.page-home) .project-title{font-size:32px}
  body.studio-site:not(.page-home) .related-grid,body.studio-site:not(.page-home) .works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.studio-site:not(.page-home) .works-grid{gap:38px 24px}
  body.studio-site:not(.page-home) .detail-layout{grid-template-columns:1fr;gap:37px}
  body.studio-site:not(.page-home) .detail-media>figure>.media-layers{height:clamp(340px,62vw,550px)}
  body.studio-site:not(.page-home) .detail-copy{max-width:780px}
  body.studio-site:not(.page-home) .contact-form{max-width:740px}
  body.studio-site:not(.page-home) .contact-section{padding-block:65px}
  body.studio-site:not(.page-home) .contact-copy .section-title{font-size:44px}
 }
 @media(max-width:560px){
  body.studio-site:not(.page-home){--page-space:62px;--page-inset:16px}
  body.studio-site:not(.page-home) .page-hero,body.studio-site:not(.page-home) .page-heading{padding-block:33px 38px}
  body.studio-site:not(.page-home) .breadcrumb{font-size:11px;margin-bottom:27px}
  body.studio-site:not(.page-home) .page-title{font-size:clamp(28px,9.9vw,52px);line-height:1.05;letter-spacing:-.035em}
  body.studio-site:not(.page-home) .page-intro{font-size:17px;margin-top:24px}
  body.studio-site:not(.page-home) .eyebrow{font-size:10px;margin-bottom:17px}
  body.studio-site:not(.page-home) .section-heading{display:block;margin-bottom:32px}
  body.studio-site:not(.page-home) .section-heading>.text-link{margin-top:20px}
  body.studio-site:not(.page-home) .section-title{font-size:33px}
  body.studio-site:not(.page-home) .section-intro{font-size:16px;margin-top:21px}
  body.studio-site:not(.page-home) .project-copy{margin-top:22px}
  body.studio-site:not(.page-home) .project-title{font-size:36px}
  body.studio-site:not(.page-home) .project-summary{font-size:16px;margin-top:19px}
  body.studio-site:not(.page-home) .related-grid{grid-template-columns:1fr;gap:35px}
  body.studio-site:not(.page-home) .related-grid .project-title{font-size:29px}
  body.studio-site:not(.page-home) .works-grid{gap:31px 17px}
  body.studio-site:not(.page-home) .work-copy{padding-top:16px}
  body.studio-site:not(.page-home) .work-copy h3{font-size:16px;line-height:1.3}
  body.studio-site:not(.page-home) .work-copy .eyebrow{font-size:9px;margin-bottom:9px}
  body.studio-site:not(.page-home) .work-copy p{font-size:12px;margin-top:10px}
  body.studio-site:not(.page-home) .collection-filters{gap:8px 22px;margin-bottom:20px;padding-bottom:19px}
  body.studio-site:not(.page-home) .collection-filters button{font-size:12px}
  body.studio-site:not(.page-home) [data-filter-status]{margin-bottom:25px}
  body.studio-site:not(.page-home) .detail-layout{gap:31px}
  body.studio-site:not(.page-home) .detail-media>figure>.media-layers{height:clamp(310px,100vw,460px)}
  body.studio-site:not(.page-home) .detail-media>*+*{margin-top:21px}
  body.studio-site:not(.page-home) .detail-copy h2{font-size:28px}
  body.studio-site:not(.page-home) .detail-copy>.page-intro{font-size:18px}
  body.studio-site:not(.page-home) .meta-list{grid-template-columns:85px minmax(0,1fr)}
  body.studio-site:not(.page-home) .meta-list dt,body.studio-site:not(.page-home) .meta-list dd{font-size:13px}
  body.studio-site:not(.page-home) .meta-list dt{font-size:12px}
  body.studio-site:not(.page-home) .prose{font-size:16px;line-height:2}
  body.studio-site:not(.page-home) .prose h2{font-size:27px;margin-block:38px 22px}
  body.studio-site:not(.page-home) .prose h3{font-size:23px;margin-block:29px 19px}
  body.studio-site:not(.page-home) .journal-card{display:block;padding-block:24px}
  body.studio-site:not(.page-home) .journal-card .journal-thumbnail{margin-bottom:24px}
  body.studio-site:not(.page-home) .journal-card h2,body.studio-site:not(.page-home) .journal-card h3{font-size:26px;margin-block:15px}
  body.studio-site:not(.page-home) .journal-card p{font-size:16px}
  body.studio-site:not(.page-home) .journal-empty h3{font-size:25px}
  body.studio-site:not(.page-home) .contact-section{padding-block:56px}
  body.studio-site:not(.page-home) .contact-copy .section-title{font-size:35px}
  body.studio-site:not(.page-home) .contact-form{gap:25px}
  body.studio-site:not(.page-home) .contact-form label{font-size:14px}
  body.studio-site:not(.page-home) .form-note{font-size:13px}
  body.studio-site:not(.page-home) .contact-dialog h2{font-size:27px}
  body.studio-site:not(.page-home) .contact-actions{gap:12px}
 }
}

/* OPEN PRACTICE. One homepage implementation; shared font/media runtime remains canonical. */
@layer home {
 .home-reset{overflow-x:clip;--media-inset:22px;--home-gap:clamp(24px,4vw,64px);background:var(--paper);color:var(--ink);font-size:16px;line-height:1.9}
 .home-wrap{width:min(calc(100% - var(--gutter)*2),1440px);margin-inline:auto}
 .home-reset h1,.home-reset h2,.home-reset h3{font-family:var(--font);font-weight:800;font-stretch:100%;letter-spacing:-.035em;line-height:1.08;text-transform:uppercase;word-break:normal;overflow-wrap:normal;text-wrap:balance}
 .home-reset h1{font-size:clamp(44px,4.8vw,68px)}
 .home-reset h1>span{display:block}
 .home-reset h2{font-size:clamp(34px,3.4vw,48px)}
 .home-reset h3{font-size:28px}
 .home-kicker{font:500 11px/1.6 var(--font);letter-spacing:.08em;color:var(--muted);margin-bottom:20px;text-transform:uppercase}
 .home-lead{font-size:clamp(20px,1.9vw,26px);font-weight:500;line-height:1.7;letter-spacing:-.015em}
 .home-role{font-size:12px;line-height:1.9;color:var(--muted)}
 .home-actions{display:flex;flex-wrap:wrap;gap:15px 28px;align-items:center;margin-top:25px}
 .home-link{position:relative;display:inline-flex;align-items:center;min-height:44px;font:500 13px/1.6 var(--font);text-decoration:none;padding-block:8px}
 .home-link:lang(ja){font-family:var(--font-ja)}
 .home-link:hover .link-label::after,.home-link:focus-visible .link-label::after{transform:scaleX(1)}
 .home-link:focus-visible{outline-color:var(--ink)}
 .home-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:10%;align-items:end;margin-bottom:50px}
 .home-section-head>p{color:var(--muted);font-size:16px}
 /* Every image, illustration, interface and film has this same matte and inset. */
 /* The original artwork is the full-bleed hero surface; field exploration follows it. */
 .home-hero{position:relative;isolation:isolate;min-height:680px;height:calc(100svh - 78px);max-height:1080px;background:var(--paper);overflow:hidden}
 .home-hero-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center}
 .home-hero-art>img{width:100%;height:100%;object-fit:cover;object-position:inherit}
 .home-hero-inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-block:36px 44px}
 .home-hero-inner>.home-kicker{color:var(--accent-contrast);background:var(--ink);padding:6px 10px;width:fit-content;margin:0;letter-spacing:.09em}
 .home-hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.48fr);gap:40px;align-items:end}
 .home-reset .home-hero h1{font-size:clamp(64px,7.4vw,112px);font-weight:850;line-height:.98;letter-spacing:-.055em;color:var(--ink)}
 .home-hero h1>span{width:fit-content;background:var(--paper);padding:3px 12px 8px}
 .home-hero h1>span+span{margin-top:5px}
 .home-hero-note{padding:20px 24px;background:var(--paper);color:var(--ink)}
 .home-hero-note .home-lead{font-size:18px;line-height:1.8}
 .home-hero-note .home-actions{margin-top:12px;gap:8px 24px}
 .home-opening-explore{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--home-gap);padding-block:64px 70px}
 .home-opening-copy>p{font-size:18px;color:var(--muted);line-height:2}
 .home-field{min-width:0}
 .home-field-switch{display:flex;gap:14px;flex-wrap:wrap;padding-bottom:19px;border-bottom:1px solid var(--line);margin-bottom:22px}
 .home-field-switch button{border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;padding:8px 0;font:500 11px/1.4 var(--font);letter-spacing:.035em;color:var(--muted);min-height:36px}
 .home-field-switch button[aria-pressed=true]{border-bottom-color:var(--ink);color:var(--ink)}
 .home-field-stage article+article{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
 .home-opening.is-enhanced .home-field-stage article{margin:0;padding:0;border:0}
 .home-reset .home-field-stage h2{font-size:16px;letter-spacing:0;line-height:1.4;margin-bottom:14px}
 .home-field-stage p{font-size:16px;line-height:1.95;color:var(--muted)}
 .home-field-stage .home-link{margin-top:14px}
 /* PROJECT COVERS: shared media/copy columns for both primary projects. */
 .home-project{padding-block:70px 80px;background:var(--paper);color:var(--ink)}
 .home-project--dst61,.home-practice{--paper:var(--inverse-paper);--ink:var(--inverse-ink);--muted:var(--inverse-muted);--line:var(--inverse-line);--soft:var(--inverse-soft);--accent-contrast:var(--paper)}
 .home-project-topline{display:flex;justify-content:space-between;gap:18px;font:500 11px/1.6 var(--font);letter-spacing:.05em;color:var(--muted)}
 .home-project-topline span{margin-right:22px;color:var(--ink)}
 .home-reset .home-project-title{font-size:clamp(68px,8.5vw,122px);font-weight:850;letter-spacing:-.055em;line-height:1;margin-block:25px 20px}
 .home-project-story{min-width:0}
 .home-project-story>.home-role{margin-bottom:18px}
 .home-project-body{font-size:16px;line-height:1.95;color:var(--muted);margin-top:18px}
 /* Three factual native disclosures, not a row of decorative cards. */
 .home-practice{background:var(--inverse-surface);color:var(--ink);padding-block:85px}
 .home-practice .home-section-head{margin-bottom:54px}
 .home-capability{padding-block:26px;border-top:1px solid var(--line)}
 .home-capability:last-child{border-bottom:1px solid var(--line)}
 .home-capability summary{list-style:none;display:grid;grid-template-columns:70px minmax(0,1fr) 26px;gap:24px;align-items:center;cursor:pointer;min-height:48px}
 .home-capability summary::-webkit-details-marker{display:none}
 .home-capability summary h3{font-size:clamp(30px,3.2vw,46px);font-weight:700;letter-spacing:-.025em}
 .home-number{font:400 12px/1.4 var(--font);color:var(--muted)}
 .home-capability-marker{width:22px;height:1px;background:currentColor;position:relative}
 .home-capability-marker::after{content:"";position:absolute;inset:0;width:100%;height:1px;background:currentColor;transform:rotate(90deg);transition:transform 220ms var(--ease)}
 .home-capability[open] .home-capability-marker::after{transform:none}
 .home-capability-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 9%;margin-left:94px;padding-block:28px 10px;max-width:1100px}
 .home-capability-body>.home-kicker{grid-column:1/-1;margin:0}
 .home-capability-body>p:not(.home-kicker){font-size:16px;line-height:1.95;color:var(--muted)}
 .home-capability-body ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;font-size:13px;line-height:1.8;color:var(--muted)}
 .home-capability-body>.home-link{grid-column:1/-1;width:fit-content}
 /* Section content and complete cards arrive once; their contents stay together. */
 @media(prefers-reduced-motion:no-preference){
  .page-home[data-home-interactions=ready] [data-home-reveal]{--entry-distance:36px;--entry-delay:0ms;opacity:1;transform:none;transition:opacity 300ms var(--ease),transform 560ms var(--ease);transition-delay:var(--entry-delay)}
  .page-home[data-home-interactions=ready] [data-home-reveal=left]{--entry-offset:calc(-1 * var(--entry-distance))}
  .page-home[data-home-interactions=ready] [data-home-reveal=right]{--entry-offset:var(--entry-distance)}
  .page-home[data-home-interactions=ready] [data-home-reveal]:not(.is-in-view):not(:focus-within){opacity:0;transform:translateX(var(--entry-offset))}
  .page-home[data-home-interactions=ready] .home-tool:nth-child(2){--entry-delay:60ms}
  @media(max-width:800px){
   .page-home[data-home-interactions=ready] [data-home-reveal]{--entry-distance:16px;transition-duration:240ms,420ms}
   .page-home[data-home-interactions=ready] .home-tool:nth-child(2){--entry-delay:0ms}
  }
 }
 /* Depth belongs only to the clipped hero background; original UV motion is separate. */
 @supports(animation-timeline:view()) and (animation-range:exit 0% exit 80%){
  @media(prefers-reduced-motion:no-preference){
   .page-home[data-home-interactions=ready] .home-hero{view-timeline-name:--hero;view-timeline-axis:block}
   .page-home[data-home-interactions=ready] .home-hero-art{--hero-depth:18px;inset:calc(-1 * var(--hero-depth)) 0;height:calc(100% + var(--hero-depth) * 2);animation:optical-depth linear both;animation-timeline:--hero;animation-range:exit 0% exit 80%}
   @media(max-width:800px){.page-home[data-home-interactions=ready] .home-hero-art{--hero-depth:8px}}
  }
 }
 @keyframes optical-depth{from{transform:translateY(0)}to{transform:translateY(var(--hero-depth))}}
 /* All evidence remains readable; one original image is previewed at a time. */
 .home-experience{padding-block:90px}
 .home-evidence-list{position:relative;padding-left:44%;min-height:470px}
 .home-evidence{padding-block:25px;border-top:1px solid var(--line)}
 .home-evidence:last-child{border-bottom:1px solid var(--line)}
 .home-evidence-top{display:contents}
 .home-evidence-image{text-decoration:none;display:none;position:absolute;left:0;top:0;width:36%;height:100%;max-height:550px}
 .home-evidence:first-child .home-evidence-image{text-decoration:none;display:block}
 .home-evidence-list:has(.is-selected) .home-evidence-image{text-decoration:none;display:none}
 .home-evidence-list:has(.is-selected) .home-evidence.is-selected .home-evidence-image{text-decoration:none;display:block}
 .home-evidence-image>.studio-media{height:100%}
 .home-evidence-head>.home-kicker{margin-bottom:13px}
 .home-evidence-head h3{font-size:26px;line-height:1.25}
 .home-evidence-head h3 a{text-decoration:none}
 .home-evidence.is-selected h3 a{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
 .home-evidence-summary{font-size:16px;line-height:1.95;color:var(--muted);margin-top:14px}
 .home-evidence-head>.home-role{margin-top:15px}
 .home-experience>.home-wrap>.home-actions{margin-left:44%}
 /* Quiet, complete smaller outputs and a truthful editorial index. */
 .home-tools{padding-block:78px;background:var(--surface)}
 .home-tool-list{display:grid;grid-template-columns:1fr 1fr;gap:40px}
 .home-tool{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);gap:25px;align-items:start}
 .home-tool>.home-tool-image{height:230px}
 .home-tool-image>.studio-media{height:100%}
 .home-tool h3{font-size:26px;line-height:1.2}
 .home-tool>div>p{font-size:16px;line-height:1.9;color:var(--muted);margin-top:18px}
 .home-tool .home-link{margin-top:14px}
 .home-journal{padding-block:85px}
 .home-journal-index{border-top:1px solid var(--line)}
 .home-journal-index>p{padding-block:25px;font-size:16px;color:var(--muted)}
 .home-journal-index article{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;padding-block:26px;border-bottom:1px solid var(--line);align-items:start}
 .home-journal-index time{font:400 12px/1.7 var(--font);color:var(--muted)}
 .home-journal-index h3{font-size:22px;line-height:1.3;margin-block:14px}
 .home-journal-index h3 a{text-decoration:none}
 .home-journal-index article p{font-size:16px;line-height:1.9;color:var(--muted)}
 .home-studio{padding-block:30px 95px}
 .home-studio-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:12%;align-items:center}
 .home-studio-layout>.studio-media{height:clamp(380px,42vw,590px)}
 .home-studio-layout h2{font-size:clamp(34px,3.8vw,52px)}
 .home-studio-layout .home-lead{margin-top:28px}
 .home-studio-layout>div>p:not(.home-kicker):not(.home-lead){font-size:16px;color:var(--muted);line-height:1.95;margin-top:22px}
 .home-contact{padding-block:75px;border-top:2px solid var(--ink)}
 .home-contact .home-section-head{margin-bottom:24px}
 .home-contact h2{font-size:clamp(36px,4.4vw,64px)}
 .home-contact .home-actions{margin-top:24px}
 @media(max-width:1100px){
  .home-capability-body{grid-template-columns:minmax(0,1fr);margin-left:0}
  .home-hero-bottom{grid-template-columns:minmax(0,1fr) 320px;gap:28px}
  .home-hero-note{padding:16px 20px}
  .home-field-switch{gap:11px}
  .home-field-switch button{font-size:10px}
  .home-tool{grid-template-columns:1fr}
  .home-tool>.home-tool-image{height:240px}
  .home-studio-layout{gap:8%}
 }
 @media(max-width:800px){
  .home-reset{--home-gap:32px}
  .home-hero{min-height:650px;height:calc(100svh - 70px)}
  .home-hero-art>img{width:100%;height:100%;object-fit:cover;object-position:inherit}
 .home-hero-inner{padding-block:28px 30px}
  .home-hero-bottom{grid-template-columns:1fr;gap:25px}
  .home-reset .home-hero h1{font-size:clamp(64px,10vw,80px)}
  .home-hero-note{width:fit-content;max-width:470px;padding:16px 20px}
  .home-opening-explore{grid-template-columns:1fr;gap:32px;padding-block:40px 50px}
  .home-opening-copy>p{font-size:17px}
  .home-section-head{display:block;margin-bottom:35px}
  .home-section-head>p{margin-top:22px}
  .home-practice .home-section-head{margin-bottom:35px}
  .home-reset h2{font-size:36px}
  .home-project{padding-block:50px 58px}
  .home-practice{padding-block:68px}
  .home-capability summary{grid-template-columns:38px minmax(0,1fr) 22px}
  .home-evidence-list{padding-left:40%;min-height:470px}
  .home-evidence-image{text-decoration:none;width:33%;max-height:480px}
  .home-evidence-head h3{font-size:22px}
  .home-experience>.home-wrap>.home-actions{margin-left:40%}
  .home-tool-list{grid-template-columns:1fr;gap:35px}
  .home-studio-layout{grid-template-columns:1fr;gap:32px}
  .home-studio-layout>.studio-media{height:auto}
  .home-studio-layout>.studio-media>.media-layers{height:auto;aspect-ratio:auto}
  .home-studio-layout>.studio-media>.media-layers>.mono-layer{height:auto}
  .home-journal-index article{grid-template-columns:180px minmax(0,1fr);gap:25px}
 }
 @media(max-width:560px){
  .home-reset{--media-inset:16px;--home-gap:25px}
  .home-reset h1{font-size:clamp(35px,9.3vw,48px)}
  .home-reset h2{font-size:32px}
  .home-kicker{font-size:10px;margin-bottom:17px}
  .home-lead{font-size:20px;line-height:1.75}
  .home-actions{gap:13px 24px;margin-top:20px}
  .home-link{font-size:13px}
  .studio-media{gap:12px}
  .home-hero{min-height:620px;height:calc(100svh - 62px);max-height:850px}
  .home-hero-art{object-position:53% center}
  .home-hero-art>img{width:100%;height:100%;object-fit:cover;object-position:inherit}
 .home-hero-inner{padding-block:24px 26px}
  .home-hero-bottom{gap:24px}
  .home-reset .home-hero h1{font-size:clamp(32px,11.5vw,64px)}
  .home-hero-note{padding:14px 16px;width:min(100%,18rem);justify-self:end}
  .home-hero-note .home-lead{font-size:16px;line-height:1.8}
  .home-hero-note .home-link{font-size:12px;min-height:44px}
  .home-opening-explore{gap:28px;padding-block:32px 40px}
  .home-opening-copy>p{font-size:16px}
  .home-field-switch{gap:19px;margin-bottom:21px;padding-bottom:15px}
  .home-field-switch button{font-size:11px;min-height:40px}
  .home-reset .home-field-stage h2{font-size:16px}
  .home-section-head{margin-bottom:33px}
  .home-project{padding-block:35px 45px}
  .home-project-topline{font-size:10px;align-items:start}
  .home-project-topline>p:last-child{max-width:135px;text-align:right}
  .home-project-topline span{margin-right:12px}
  .home-reset .home-project-title{font-size:clamp(53px,15.5vw,86px);margin-block:22px 14px}
  .home-project-story{padding-top:25px}
  .home-project-story .home-lead{font-size:20px}
  .home-practice{padding-block:58px}
  .home-capability{padding-block:21px}
  .home-capability summary{grid-template-columns:25px minmax(0,1fr) 18px;gap:14px}
  .home-capability summary h3{font-size:25px;letter-spacing:-.025em}
  .home-capability-marker{width:18px}
  .home-capability-body{padding-block:24px 5px;gap:17px}
  .home-capability-body ul{grid-template-columns:minmax(0,1fr);gap:9px;font-size:14px}
  .home-experience{padding-block:58px}
  .home-evidence-list{padding-left:0;min-height:0}
  .home-evidence{padding-block:26px}
  .home-evidence-top{display:grid;grid-template-columns:minmax(112px,37%) minmax(0,1fr);gap:18px;align-items:center}
  .home-evidence-image,.home-evidence:first-child .home-evidence-image,.home-evidence-list:has(.is-selected) .home-evidence-image{text-decoration:none;display:block;position:static;width:auto;height:auto;max-height:none}
  .home-evidence-image>.studio-media{height:auto;gap:0}
  .home-evidence-image .media-layers{height:auto;aspect-ratio:1}
  .home-evidence-image figcaption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .home-evidence-head h3{font-size:clamp(19px,5.2vw,21px);line-height:1.2}
  .home-evidence-head>.home-kicker{font-size:10px;margin-bottom:10px}
  .home-evidence-head>.home-role{font-size:12px;margin-top:8px}
  .home-evidence-summary{font-size:16px;line-height:1.85;margin-top:18px}
  .home-experience>.home-wrap>.home-actions{margin-left:0}
  .home-tools{padding-block:55px}
  .home-tool{grid-template-columns:110px minmax(0,1fr);gap:14px 20px}
  .home-tool>div{display:contents}
  .home-tool>.home-tool-image{grid-row:1;height:175px}
  .home-tool h3{grid-column:2;font-size:22px;overflow-wrap:anywhere;align-self:center}
  .home-tool>div>p{grid-column:1/-1;font-size:16px;margin-top:4px}
  .home-tool .home-link{grid-column:1/-1;margin:0;justify-self:start}
  .home-journal{padding-block:60px}
  .home-journal-index article{display:block;padding-block:23px}
  .home-journal-index .journal-thumbnail{margin-bottom:24px}
  .home-journal-index h3{font-size:23px;margin-block:14px}
  .home-studio{padding-block:18px 60px}
  .home-studio-layout h2{font-size:33px}
  .home-studio-layout .home-lead{margin-top:24px}
  .home-contact{padding-block:58px}
  .home-contact .home-section-head{margin-bottom:18px}
  .home-contact h2{font-size:37px}
 }
}
