@font-face{font-family:Site Sans TC;src:url('/site-assets/fonts/sans-tc-600.woff') format('woff');font-weight:600;font-display:swap}
@font-face{font-family:Site Sans JP;src:url('/site-assets/fonts/sans-jp-600.woff') format('woff');font-weight:600;font-display:swap}
@font-face{font-family:Site Sans TC;src:url('/site-assets/fonts/sans-tc-400.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Site Sans TC;src:url('/site-assets/fonts/sans-tc-700.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:Site Serif TC;src:url('/site-assets/fonts/serif-tc-400.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Site Sans JP;src:url('/site-assets/fonts/sans-jp-400.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Site Sans JP;src:url('/site-assets/fonts/sans-jp-700.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:Site Serif JP;src:url('/site-assets/fonts/serif-jp-400.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'Service Sans TC';src:url('/site-assets/fonts/service-sans-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4F01,U+5065,U+5E8F,U+6388,U+6392,U+63A2,U+6559,U+6572,U+6838,U+6D3D,U+8907,U+8AC7,U+8C61}
@font-face{font-family:'Service Serif TC';src:url('/site-assets/fonts/service-serif-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4F01,U+5065,U+5E8F,U+6388,U+6392,U+63A2,U+6559,U+6572,U+6838,U+6D3D,U+8907,U+8AC7,U+8C61}
@font-face{font-family:'Service Sans JP';src:url('/site-assets/fonts/service-sans-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4ED5,U+4F3A,U+512A,U+5148,U+5225,U+52D9,U+671F,U+6A21,U+790E,U+7E70,U+7FD2,U+8A3A,U+8AC7,U+8B1B}
@font-face{font-family:'Service Serif JP';src:url('/site-assets/fonts/service-serif-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4ED5,U+4F3A,U+512A,U+5148,U+5225,U+52D9,U+671F,U+6A21,U+790E,U+7E70,U+7FD2,U+8A3A,U+8AC7,U+8B1B}
@font-face{font-family:'FOCAXIS Portfolio Sans TC';src:url('/site-assets/fonts/portfolio-sans-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+57F7,U+5957,U+5E03,U+61B6,U+64CE,U+6572,U+65E9,U+67B6,U+6E90,U+78BC,U+7A81,U+885D,U+8A3A}
@font-face{font-family:'FOCAXIS Portfolio Serif TC';src:url('/site-assets/fonts/portfolio-serif-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+57F7,U+5957,U+5E03,U+61B6,U+64CE,U+6572,U+65E9,U+67B6,U+6E90,U+78BC,U+7A81,U+885D,U+8A3A}
@font-face{font-family:'FOCAXIS Portfolio Sans JP';src:url('/site-assets/fonts/portfolio-sans-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+30AA,U+30B3,U+30BD,U+4F1A,U+4F9B,U+5099,U+614B,U+61B6,U+63D0,U+671F,U+7570,U+7AF6,U+8A3A}
@font-face{font-family:'FOCAXIS Portfolio Serif JP';src:url('/site-assets/fonts/portfolio-serif-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+30AA,U+30B3,U+30BD,U+4F1A,U+4F9B,U+5099,U+614B,U+61B6,U+63D0,U+671F,U+7570,U+7AF6,U+8A3A}
@font-face{font-family:'FOCAXIS Contact Sans TC';src:url('/site-assets/fonts/contact-sans-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4F01,U+4FEE,U+5065,U+52FF,U+5360,U+5373,U+537B,U+5718,U+586B,U+5957,U+5E8F,U+6388,U+6392,U+63A2,U+6559,U+6572,U+6838,U+68B3,U+6D3D,U+76E4,U+77E5,U+7BB1,U+7DE8,U+804A,U+8907,U+8A62,U+8AB0,U+8AC7,U+8C61,U+8FA8,U+9080,U+968A}
@font-face{font-family:'FOCAXIS Contact Serif TC';src:url('/site-assets/fonts/contact-serif-tc-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4F01,U+4FEE,U+5065,U+52FF,U+5360,U+5373,U+537B,U+5718,U+586B,U+5957,U+5E8F,U+6388,U+6392,U+63A2,U+6559,U+6572,U+6838,U+68B3,U+6D3D,U+76E4,U+77E5,U+7BB1,U+7DE8,U+804A,U+8907,U+8A62,U+8AB0,U+8AC7,U+8C61,U+8FA8,U+9080,U+968A}
@font-face{font-family:'FOCAXIS Contact Sans JP';src:url('/site-assets/fonts/contact-sans-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4ED5,U+4F3A,U+512A,U+5148,U+5225,U+52D9,U+578B,U+5C4A,U+671F,U+6A21,U+6B21,U+6B69,U+6E21,U+790E,U+7C21,U+7DE8,U+7E70,U+7FD2,U+805E,U+8A3A,U+8AB0,U+8AC7,U+8B1B,U+8CBB,U+8CC7,U+9805}
@font-face{font-family:'FOCAXIS Contact Serif JP';src:url('/site-assets/fonts/contact-serif-jp-400.woff') format('woff');font-weight:400;font-display:swap;unicode-range:U+4ED5,U+4F3A,U+512A,U+5148,U+5225,U+52D9,U+578B,U+5C4A,U+671F,U+6A21,U+6B21,U+6B69,U+6E21,U+790E,U+7C21,U+7DE8,U+7E70,U+7FD2,U+805E,U+8A3A,U+8AB0,U+8AC7,U+8B1B,U+8CBB,U+8CC7,U+9805}

/* Editorial system: one outer measure, natural photographic proportions, quiet rules. */
@font-face{font-family:Montserrat;src:url('/site-assets/fonts/brand-montserrat.woff') format('woff');font-weight:100 900;font-display:swap}
*{box-sizing:border-box}
html{scroll-behavior:auto;scroll-padding-top:24px}
body{margin:0;background:#f7f5ef;color:#41453f}
.site{--layout-max:1200px;--reading-max:720px;--article-measure:760px;--page-gutter:56px;--paper:#f7f5ef;--ink:#252723;--body:#41453f;--muted:#686d64;--line:#d1d3c9;--accent:#66745f;--accent-hover:#505e4b;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--space-12:96px;--site-sans:'Site Sans TC',sans-serif;--site-serif:'Site Serif TC',serif;font:400 18px/1.85 var(--site-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.site:lang(ja){--site-sans:'Site Sans JP',sans-serif;--site-serif:'Site Serif JP',serif;line-break:strict}
.site:lang(en){--reading-max:680px;--article-measure:720px;--site-sans:Arial,Helvetica,'Site Sans TC',sans-serif;--site-serif:Georgia,'Times New Roman','Site Serif TC',serif}
.wrap{width:calc(100% - 2 * var(--page-gutter));max-width:var(--layout-max);margin-inline:auto}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{color:var(--ink);text-wrap:pretty}
h1{font:400 clamp(34px,3.8vw,56px)/1.35 var(--site-serif);letter-spacing:.015em}
h2{font:400 32px/1.5 var(--site-serif)}
h3{font:400 25px/1.6 var(--site-serif)}
h4{font-size:19px;font-weight:600;line-height:1.7}
p+p{margin-top:24px}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:6px}
a:hover{color:var(--accent-hover)}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
img{display:block;max-width:100%;height:auto}
figure>a,picture{display:block}
figcaption{margin-top:16px;color:var(--muted);font-size:14px;line-height:1.75}
button,summary,a{-webkit-tap-highlight-color:transparent}
summary{cursor:pointer}
nav{display:flex;gap:24px}
nav a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;line-height:1.5;text-decoration:none}
nav a[aria-current]{text-decoration:underline;text-underline-offset:8px}
.site main{min-height:55vh}
.wordmark{display:inline-flex;align-items:center;flex-shrink:0;width:180px;height:28px;color:var(--ink);font:600 23px/1 Montserrat,var(--site-sans);letter-spacing:.1em;text-decoration:none}
.brand-logo{display:block;width:100%;height:100%;overflow:visible;fill:currentColor}
.site-header{position:relative;z-index:5}
.header-row{min-height:88px;display:flex;align-items:center;gap:32px}
.header-row>.wordmark{margin-right:auto}
.language-nav{gap:0;padding-left:24px;border-left:1px solid var(--line)}
.language-nav a{min-width:36px;justify-content:center;font-size:14px}
.mobile-menu{display:none}
.skip{position:absolute;top:-100px;left:24px;z-index:20;padding:12px 16px;background:var(--paper)}
.skip:focus{top:12px}
.eyebrow{font-size:13px;line-height:1.8;letter-spacing:.09em;color:var(--muted)}
.meta,time{font-size:14px;line-height:1.75;color:var(--muted)}
.button,.editorial-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 24px;background:var(--accent);color:#fff;font:400 16px/1.5 var(--site-sans);text-decoration:none;border:0;border-radius:0}
.button:hover,.editorial-cta:hover{background:var(--accent-hover);color:#fff}
.inline-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;gap:8px;font-size:16px;line-height:1.7;color:var(--accent-hover)}
.title-unit{white-space:nowrap}
.link-arrow{font-family:'Site Sans TC',sans-serif}
/* Keep failed remote photography readable without substituting another image. */
.image-unavailable{display:flex!important;flex-direction:column;justify-content:center;gap:16px;min-height:160px;padding:24px;border:1px solid var(--line);background:#efede6;text-decoration:none}
.image-unavailable img[hidden]{display:none!important}
.image-fallback-message{font:400 14px/1.8 var(--site-sans);color:var(--muted);overflow-wrap:anywhere}
.image-fallback-action{font:400 14px/1.7 var(--site-sans);color:var(--accent-hover);text-decoration:underline}
/* Editorial A: typography leads; the complete illustration shares its paper. */
.page-home>main.wrap{width:100%;max-width:none}
.home-cover{width:100%}
.photo-hero{position:relative;isolation:isolate;min-height:clamp(640px,50vw,887px)}
.hero-photo{position:absolute;inset:auto 0 0;width:100%;max-width:1774px;margin-inline:auto;pointer-events:none;z-index:-1}
.hero-photo picture,.hero-photo img{display:block;width:100%;height:auto}
.hero-photo{mask-image:linear-gradient(to bottom,transparent,#000 36px,#000 calc(100% - 20px),transparent)}
.hero-photo picture{mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent)}
.hero-photo img{aspect-ratio:2/1;object-fit:contain}
.hero-cover{min-height:inherit;padding-top:56px}
.hero-voice{width:64%;max-width:760px;min-width:0}
.hero-voice .eyebrow{color:var(--accent-hover);letter-spacing:.12em}
.hero-voice h1{font-size:clamp(54px,6vw,84px);line-height:1.16;letter-spacing:-.025em;margin-top:24px}
.hero-description{max-width:440px;margin-top:32px}
.hero-description>p{font-size:18px;line-height:1.8;text-wrap:pretty;color:var(--ink)}
.hero-disclosure{font-size:13px;line-height:1.75;color:var(--muted);padding-block:16px 0}
@media(min-width:1001px){
 .photo-hero{overflow:hidden}
 .hero-photo{transform:translateX(12%)}
}
/* The product is evidence, shown complete beside the introduction. */
.product-showcase{display:grid;grid-template-columns:minmax(0,4.5fr) minmax(0,7.5fr);gap:24px 48px;align-items:start;width:calc(100% - 2 * var(--page-gutter));max-width:var(--layout-max);margin:64px auto 0;padding-block:48px;border-block:1px solid var(--line);scroll-margin-top:24px}
.product-backdrop{grid-column:2;grid-row:1/3;align-self:center;min-width:0}
.product-backdrop img{width:100%;height:auto;object-fit:contain;border:1px solid var(--line)}
.product-identity{grid-column:1;grid-row:1;align-self:end;min-width:0}
.product-details{grid-column:1;grid-row:2;min-width:0}
.product-copy{max-width:460px}
.product-copy h2{font:400 clamp(40px,4.5vw,56px)/1.2 var(--site-serif);margin:16px 0 24px}
.product-heading{font:400 26px/1.6 var(--site-serif);color:var(--ink);text-wrap:pretty}
.product-description{text-wrap:pretty}
.product-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px}
.product-actions .inline-link{font-size:15px}
/* A main story, followed by two quieter entries with their original titles. */
.home-notes{margin-top:96px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:32px}
.notes-composition{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px}
.note-feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:32px;align-items:start;min-width:0}
.note-feature-media>time,.note-archive article>time,.journal-feature-media>time{display:block;margin-bottom:16px}
.note-feature-image,.archive-photo,.journal-feature-image,.journal-archive-image{display:block;max-width:100%}
.note-feature-image img,.archive-photo img,.journal-feature-image img,.journal-archive-image img{width:100%;height:auto;object-fit:contain}
[data-image-orientation] picture{display:block;width:100%}
.note-feature h3{font-size:27px;margin:32px 0 24px}
.note-feature h3 a,.note-archive h3 a,.journal-feature-copy h2 a,.journal-archive-item h2 a{text-decoration:none;text-decoration-thickness:1px;text-underline-offset:.18em}
:is(.note-feature h3,.note-archive h3,.journal-feature-copy h2,.journal-archive-item h2) a:is(:hover,:focus-visible){text-decoration-line:underline}
.note-feature-copy>p{font-size:17px;line-height:1.85}
.note-archive{display:grid;gap:32px;align-content:start}
.note-archive article{min-width:0;display:grid;grid-template-columns:88px minmax(0,1fr);gap:0 20px}
.note-archive article>time{grid-column:1/-1}
.note-archive-copy{min-width:0}
.note-archive h3{font:400 23px/1.5 var(--site-serif);text-wrap:pretty}
.home-followup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;margin:96px 0;padding-top:48px;border-top:1px solid var(--line)}
.home-followup h2{margin:16px 0 24px}
.home-author>p:not(.eyebrow),.home-services>p{max-width:540px}
.home-services h2{margin-top:0;font-size:30px}
.home-services h2 .title-unit{display:inline-block}
.home-services p+p{margin-top:16px}
.home-services .service-boundary{font-size:15px;color:var(--muted);margin-top:24px}
.home-services>.inline-link{margin-top:16px}
.home-followup aside{font-size:15px}
.service-list{margin:32px 0;padding:0}
.service-list>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px}
.service-list>div+div{margin-top:24px}
.service-list dt{color:var(--ink)}
.service-list dd{margin:0;font-size:17px}
/* Shared inner-page rhythm. */
.page-intro{padding:64px 0 48px}
.page-intro .eyebrow{margin-bottom:24px}
.page-intro h1{max-width:960px;text-wrap:balance}
.page-intro-copy{max-width:var(--reading-max);margin-top:32px;font-size:18px;text-wrap:pretty}
.page-intro .meta{margin-top:24px}
.reading{max-width:var(--reading-max);min-width:0;overflow-wrap:break-word}
.reading>p{margin:0 0 24px}
.reading h2{font-size:30px;line-height:1.5;margin:64px 0 24px}
.reading h3{font-size:24px;line-height:1.6;margin:40px 0 24px}
.reading h4{margin:32px 0 16px}
.reading h2:first-child{margin-top:0}
.reading section+section{margin-top:48px}
.reading ul,.reading ol{padding-left:1.4em}
.reading li+li{margin-top:12px}
.reading a{overflow-wrap:anywhere}
.reading blockquote{margin:32px 0;padding:8px 0 8px 24px;border-left:2px solid var(--line);color:var(--muted)}
.reading pre{overflow:auto;max-width:100%;padding:24px;background:#eeeee6;font-size:14px;line-height:24px;white-space:pre}
.reading code{font-size:.88em;overflow-wrap:anywhere}
.reading table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;margin:32px 0;font-size:15px;line-height:26px}
.reading th,.reading td{padding:16px;border:1px solid var(--line);text-align:left;min-width:110px}
.reading iframe,.reading video,.reading svg{max-width:100%}
.reading img{max-width:100%;width:auto;height:auto;margin:32px auto}
.reading figure{margin:48px 0}
.reading figure img{margin:0 auto}
.reading hr{border:0;border-top:1px solid var(--line);margin:48px 0}
.content-grid{max-width:var(--reading-max);margin:0 0 96px}
.page-privacy .reading{padding-top:8px}
.page-support .support-note{margin-bottom:96px}
/* Articles keep text and pictures on one measured spine. */
.article-intro{padding-bottom:48px;max-width:960px}
.article-intro .inline-link{margin-bottom:24px}
.article-intro h1{font-size:clamp(34px,3.8vw,52px);line-height:1.4}
.article-body,.article-bottom-nav{max-width:var(--article-measure)}
.article-body{font-size:18px;line-height:1.9;margin-bottom:64px;overflow-wrap:break-word}
.article-body h1{font:400 32px/1.5 var(--site-serif);margin:48px 0 24px}
.article-body h2{font-size:30px;margin:56px 0 24px}
.article-body h3{font-size:24px;margin:40px 0 24px}
.article-body>p:not(.article-media){margin:0 0 24px}
.article-body>.article-media,.article-body>p:has(>img),.article-body>figure{width:100%;max-width:none;margin:40px 0}
.article-body>.article-media--wide{width:min(var(--layout-max),calc(100vw - 2 * var(--page-gutter)))}
.article-media>a{display:block;width:fit-content;max-width:100%}
.article-body .article-media img,.article-body>p:has(>img) img{width:auto;max-width:100%;height:auto;max-height:800px;object-fit:contain;margin:0}
.article-body .article-media--tool img{max-height:none}
.article-tool-entry{margin-bottom:24px;line-height:1.7}
.article-bottom-nav{margin-bottom:96px;padding-top:24px;border-top:1px solid var(--line)}
/* News opens with the current story, then a quieter chronological archive. */
.page-news .page-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px 64px;padding:48px 0 32px;align-items:end}
.page-news .page-intro .eyebrow{grid-column:1/-1;margin:0}
.page-news .page-intro-copy{margin:0;max-width:36em}
.journal-metadata{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;margin-bottom:12px}
.journal-metadata>p+p{margin-top:0}
.journal-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.journal-feature-copy h2{font-size:36px;line-height:1.45;max-width:17em;margin-bottom:24px;text-wrap:balance}
.journal-feature-copy>p{max-width:32em}
.journal-feature-copy .inline-link{margin-top:24px}
.journal-lead-compact{display:none}
.journal-archive{margin-bottom:96px}
.journal-archive-item{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;align-items:center;padding:32px 0;border-top:1px solid var(--line)}
.journal-archive-item:first-child{border-top:0;padding-top:0}
.journal-archive-media>time{display:block;margin-bottom:16px}
.journal-archive-item h2{font-size:28px;line-height:1.6;max-width:760px}
.journal-archive-copy .inline-link{margin-top:16px}
/* The author preface separates identity from background without changing prose. */
.page-about .page-intro{padding-bottom:48px}
.author-layout{margin-bottom:96px}
.author-preface.reading{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:64px;max-width:none}
.author-preface>.about-lead{grid-column:1;font-size:21px;line-height:1.85;margin-bottom:32px}
.author-identity{grid-column:1;margin:0 0 32px}
.author-signature{font:400 28px/1.6 var(--site-serif)}
.author-signature span{display:block;font:400 16px/1.85 var(--site-sans);color:var(--muted);margin-top:8px}
.author-role{font-size:15px;color:var(--muted);margin-top:16px}
.author-preface>section{grid-column:2;grid-row:1/4;border-left:1px solid var(--line);padding-left:48px}
.author-preface>nav{grid-column:1}
.author-preface h2{font:400 28px/1.5 var(--site-serif);margin:0 0 24px}
.author-preface section>p{margin-bottom:24px}
.author-qualification{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:16px}
.author-qualification h3{font:600 17px/1.7 var(--site-sans);margin:0 0 16px}
.about-method{margin-block:24px}
.about-method h3{font-size:20px;margin-bottom:8px}
.about-method p{font-size:17px}
.about-evidence-links{list-style:none;padding:0!important;margin:0;display:flex;flex-wrap:wrap;gap:8px 24px}
.about-evidence-links li+li{margin:0}
/* Portfolio evidence always retains its original image boundaries. */
.portfolio-intro{padding:48px 0 40px}
.portfolio-intro .eyebrow{margin-bottom:16px}
.portfolio-intro .page-intro-copy{margin-top:24px}
@media(min-width:1000px){
 .portfolio-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px 64px;align-items:end}
 .portfolio-intro .eyebrow{grid-column:1/-1;margin:0}
 .portfolio-intro .page-intro-copy{margin:0;max-width:36em}
}
.portfolio-feature{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 48px;padding-top:40px;border-top:1px solid var(--line)}
.portfolio-summary{display:contents}
.portfolio-feature-heading{grid-column:1;grid-row:1/3}
.portfolio-feature-heading .eyebrow,.portfolio-project-name .eyebrow{display:flex;align-items:center;gap:20px}
.portfolio-number{font:400 30px/1.2 var(--site-serif);letter-spacing:0;color:var(--muted)}
.portfolio-feature h2{font:400 clamp(64px,5.5vw,72px)/1.15 var(--site-serif);margin-top:24px}
.portfolio-overview{grid-column:2;grid-row:2;min-width:0}
.portfolio-lead{grid-column:2;grid-row:1;font:400 30px/1.45 var(--site-serif);color:var(--ink);text-wrap:pretty}
.portfolio-tool{grid-column:1/-1;grid-row:3;margin-top:20px}
.portfolio-tool img{width:100%;height:auto;object-fit:contain;border:1px solid var(--line)}
.portfolio-tool figcaption{margin-top:12px}
.portfolio-case-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.portfolio-fieldnotes{grid-column:1/-1;grid-row:4;display:flex;align-items:center;gap:28px;margin-top:20px;padding:24px 0;border-block:1px solid var(--line)}
.portfolio-fieldnotes-image{display:block;flex:0 0 128px}
.portfolio-fieldnotes-image img{width:100%;height:auto}
.portfolio-fieldnotes .eyebrow{margin-bottom:8px}
.portfolio-fieldnotes .inline-link{font:400 22px/1.5 var(--site-serif)}
.portfolio-projects{margin:48px 0 80px}
.portfolio-projects>h2{font-size:24px;margin-bottom:32px}
.portfolio-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.portfolio-project{min-width:0}
.portfolio-project-name h3{font:400 46px/1.25 var(--site-serif);margin:20px 0 24px}
.portfolio-project-copy>p+p{margin-top:16px}
.portfolio-scope{font-size:15px;color:var(--muted)}
.portfolio-project-copy .inline-link{margin-top:24px}
/* Contact makes the real email actions and their scope readable. */
.service-contact{margin-bottom:96px}
.contact-opening{max-width:800px;margin-bottom:64px}
.service-contact h2{font-size:30px;line-height:1.5}
.contact-opening>p{margin-top:24px}
.contact-direct{margin-top:32px}
.contact-direct .eyebrow{display:block;margin-bottom:8px}
.contact-address{display:inline-block;min-height:44px;font:400 clamp(24px,3vw,36px)/1.6 var(--site-serif);color:var(--accent-hover);overflow-wrap:anywhere}
.contact-situations>h2{margin-bottom:32px}
.contact-situation{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;padding:32px 0;border-top:1px solid var(--line)}
.contact-question{display:grid;grid-template-columns:24px minmax(0,1fr);gap:24px;align-items:baseline}
.contact-question h3{font-size:25px;line-height:1.6}
.contact-help>p+p{margin-top:16px}
.contact-scope{max-width:800px;margin-top:32px;padding-left:24px;border-left:2px solid var(--line)}
.service-contact .contact-scope h2{font-size:24px}
.contact-scope p{margin-top:16px;font-size:16px}
.contact-invitation{max-width:960px;margin-top:64px;padding-top:48px;border-top:1px solid var(--line)}
.contact-invitation>p{margin-top:24px;max-width:800px}
.contact-mail-note{font-size:15px;color:var(--muted)}
.contact-mail-options{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;margin-top:32px}
.contact-mail-options .inline-link{font-size:17px;text-decoration:underline}
.contact-mail-options a:first-child{min-height:48px;padding:12px 24px;color:#fff;background:var(--accent);text-decoration:none}
.contact-mail-options a:first-child:hover{background:var(--accent-hover)}
.contact-issue{max-width:800px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.service-contact .contact-issue h2{font-size:24px}
.contact-issue p{font-size:16px;margin-top:16px}
.page-feedback .note-card{margin-top:48px;max-width:600px;font-size:16px}
.not-found-links{display:flex;align-items:center;gap:32px;margin-bottom:96px}
.page-404 .page-intro{padding-top:96px}
/* The same quiet closing across public, support and fallback pages. */
.site-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:32px 0;border-top:1px solid var(--line)}
.footer-author p{font-size:15px;margin-top:16px}
.footer-author>a:last-child{font-size:15px;display:inline-block;min-height:44px;padding-block:8px;overflow-wrap:anywhere}
.footer-links{justify-content:flex-end;align-items:start;flex-wrap:wrap;gap:8px 24px}
.preview-control{grid-column:1/-1;font-size:13px;color:var(--muted)}
.preview-control summary{min-height:44px;display:list-item;list-style-position:inside;padding:8px 0}
.preview-control nav{flex-wrap:wrap;gap:8px 24px}
.preview-control p{font-size:13px;margin-top:8px}
/* Keep every existing CJK supplement in its original semantic scope. */
.home-services{--service-sans:'FOCAXIS Contact Sans TC';--service-serif:'FOCAXIS Contact Serif TC';font-family:var(--service-sans),var(--site-sans)}
.site:lang(ja) .home-services{--service-sans:'FOCAXIS Contact Sans JP';--service-serif:'FOCAXIS Contact Serif JP'}
.home-services h2{font-family:var(--service-serif),var(--site-serif)}
.product-copy,.case-source{--service-sans:'Service Sans TC';--service-serif:'Service Serif TC';font-family:var(--service-sans),var(--site-sans)}
.site:lang(ja) :is(.product-copy,.case-source){--service-sans:'Service Sans JP';--service-serif:'Service Serif JP'}
.page-portfolio:lang(zh-TW){--site-sans:'FOCAXIS Portfolio Sans TC','Site Sans TC',sans-serif;--site-serif:'FOCAXIS Portfolio Serif TC','Site Serif TC',serif}
.page-portfolio:lang(ja){--site-sans:'FOCAXIS Portfolio Sans JP','Site Sans JP',sans-serif;--site-serif:'FOCAXIS Portfolio Serif JP','Site Serif JP',serif}
.page-feedback:lang(zh-TW){--site-sans:'FOCAXIS Contact Sans TC','Site Sans TC',sans-serif;--site-serif:'FOCAXIS Contact Serif TC','Site Serif TC',serif}
.page-feedback:lang(ja){--site-sans:'FOCAXIS Contact Sans JP','Site Sans JP',sans-serif;--site-serif:'FOCAXIS Contact Serif JP','Site Serif JP',serif}
.site:lang(en) h1{letter-spacing:0;line-height:1.25}
.site:lang(en) .hero-voice h1{font-size:clamp(54px,6vw,84px);line-height:1.05;letter-spacing:-.045em}
.site:lang(en) :is(.journal-feature-copy h2,.note-feature h3){line-height:1.35}
@media(max-width:1100px){
 .site{--page-gutter:32px}
 .product-showcase{gap:32px}
 .header-row{gap:24px}.primary-nav{gap:20px}.language-nav{padding-left:16px}
 .notes-composition{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px}
 .note-feature{gap:24px}.note-feature h3{font-size:24px}
 .note-archive article{grid-template-columns:88px minmax(0,1fr);gap:0 16px}
 .note-archive h3{font-size:22px}
 .author-preface.reading,.contact-situation{gap:40px}
 .author-preface>section{padding-left:32px}
}
@media(max-width:900px){
 .primary-nav{display:none}
 .language-nav{padding:0;border:0;margin-left:96px}
 .header-row{gap:0}
 .mobile-menu{display:block}
 .mobile-menu summary{position:absolute;right:124px;top:22px;display:flex;align-items:center;justify-content:center;gap:12px;min-width:80px;min-height:44px;list-style:none;font:400 13px/1.5 var(--site-sans);letter-spacing:.06em}
 .mobile-menu summary::-webkit-details-marker{display:none}
 .mobile-menu summary span{font-size:22px}
 .mobile-menu[open] summary span{transform:rotate(45deg)}
 .mobile-menu nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;padding:8px 0 24px;border-bottom:1px solid var(--line)}
 .mobile-menu nav a{font-size:17px;min-height:48px}
 .hero-voice{width:76%}
 .hero-voice h1{font-size:clamp(48px,6.6vw,60px)}
 .site:lang(en) .hero-voice h1{font-size:clamp(48px,6.6vw,60px)}
 .hero-description>p{font-size:17px}
 .hero-description{margin-top:24px}
 .product-heading{font-size:24px}
 .product-actions{display:block}.product-actions .inline-link{margin-top:8px}
 .notes-composition{grid-template-columns:1fr;gap:40px}
 .note-feature{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px}
 .note-feature h3{font-size:28px}
 .note-archive{grid-template-columns:1fr 1fr;gap:32px}
 .note-archive article{grid-template-columns:96px minmax(0,1fr);gap:0 20px}
 .home-followup{gap:40px}
 .journal-feature{gap:40px}.journal-feature-copy h2{font-size:30px}
 .journal-archive-item{grid-template-columns:220px minmax(0,1fr);gap:40px}
 .portfolio-feature{column-gap:32px}
 .portfolio-project-grid{gap:40px}
 .contact-question{gap:16px}.contact-question h3{font-size:23px}
}
@media(max-width:700px){
 .site{--page-gutter:24px;font-size:17px;line-height:1.85}
 .header-row{min-height:80px}
 .header-row>.wordmark{width:120px;height:24px;font-size:19px}
 .language-nav{margin-left:72px}.language-nav a{min-width:28px;font-size:12px}
 .mobile-menu summary{right:92px;top:18px;min-width:64px;gap:8px;font-size:12px}
 .mobile-menu nav{grid-template-columns:1fr 1fr}
 h2{font-size:28px}h3{font-size:23px}
 .photo-hero{display:grid;grid-template-columns:minmax(0,1fr);min-height:0}
 .hero-cover{grid-column:1;grid-row:1;min-height:0;padding-top:32px}
 .hero-voice{width:100%;max-width:none}
 .hero-voice h1{font-size:clamp(30px,10vw,44px);line-height:1.25;letter-spacing:-.025em;margin-top:16px}
 .site:lang(en) .hero-voice h1{font-size:clamp(42px,12vw,54px);line-height:1.04;letter-spacing:-.045em;max-width:440px}
 .hero-description{max-width:440px;margin-top:24px}
 .hero-description>p{font-size:17px;line-height:1.8}
 .hero-photo{position:relative;inset:auto;grid-column:1;grid-row:2;width:min(100%,480px);margin:clamp(-180px,-44vw,-140px) 0 0 auto;z-index:-1}
 .hero-photo img{aspect-ratio:2/3;object-fit:contain}
 .hero-disclosure{padding-top:8px;font-size:13px}
 .product-showcase{grid-template-columns:1fr;gap:32px;margin-top:48px;padding-block:32px}
 .product-identity{grid-column:1;grid-row:1}.product-backdrop{grid-column:1;grid-row:2}.product-details{grid-column:1;grid-row:3}
 .product-copy{max-width:none}.product-copy h2{font-size:44px;margin-bottom:16px}
 .product-heading{font-size:25px}.product-description{margin-top:0}
 .product-actions{margin-top:24px;display:flex;gap:8px 24px}
 .product-actions .inline-link{margin:0}
 .home-notes{margin-top:64px}
 .section-heading{gap:16px;margin-bottom:24px;align-items:center}
 .section-heading h2{font-size:28px}.section-heading .inline-link{font-size:14px;flex-shrink:0}
 .note-feature{grid-template-columns:1fr;gap:24px}
 .note-feature-media{max-width:100%}
 .note-feature-image{width:100%}
 .note-feature-image[data-image-orientation=portrait]{width:min(74%,300px)}
 .note-feature h3{font-size:28px;margin:0 0 16px}
 .note-feature-copy>p{font-size:17px}
 .note-archive{grid-template-columns:1fr;gap:32px}
 .note-archive article{grid-template-columns:88px minmax(0,1fr);gap:16px 20px;padding-top:24px;border-top:1px solid var(--line)}
 .note-archive article>time{grid-column:2;grid-row:1;align-self:center;margin:0}
 .note-archive .archive-photo{grid-column:1;grid-row:1}
 .note-archive-copy{grid-column:1/-1;grid-row:2}
 .note-archive h3{font-size:23px;line-height:1.5}
 .home-followup{grid-template-columns:1fr;gap:40px;margin:64px 0;padding-top:32px}
 .home-followup h2{font-size:28px;margin:16px 0 24px}
 .home-services{padding-top:32px;border-top:1px solid var(--line)}
 .home-services h2{margin-top:0;font-size:27px}
 .service-list>div{display:block}.service-list dt{margin-bottom:8px}
 .page-intro{padding:48px 0 32px}
 .page-intro .eyebrow{margin-bottom:16px}
 .page-intro h1{font-size:36px;line-height:1.4}
 .page-intro-copy{font-size:17px;margin-top:24px}
 .reading h2{font-size:27px;margin:48px 0 24px}
 .reading h3{font-size:23px;margin:32px 0 16px}
 .reading section+section{margin-top:40px}
 .reading pre{padding:16px}
 .reading figure{margin:32px 0}
 .content-grid{margin-bottom:64px}
 .article-intro{padding-bottom:32px}
 .article-intro h1{font-size:34px}
 .article-intro .inline-link{margin-bottom:24px}
 .article-body{font-size:17px;line-height:1.9;margin-bottom:48px}
 .article-body h2{font-size:27px;margin:48px 0 24px}
 .article-body h3{font-size:23px;margin:32px 0 16px}
 .article-body>.article-media,.article-body>.article-media--wide,.article-body>p:has(>img),.article-body>figure{width:100%;margin:32px 0}
 .article-body .article-media img{max-height:none}
 .article-bottom-nav{margin-bottom:64px}
 .page-news .page-intro{display:block;padding:32px 0 24px}
 .page-news .page-intro .eyebrow{margin-bottom:12px}
 .page-news .page-intro-copy{margin-top:16px}
 .journal-feature{grid-template-columns:1fr;gap:24px;padding-bottom:32px;margin-bottom:32px}
 .journal-feature-media>time{margin-bottom:12px}
 .journal-feature-image[data-image-orientation=portrait]{width:min(78%,340px)}
 .journal-feature-copy h2{font-size:30px;margin-bottom:16px}
 .journal-archive{margin-bottom:64px}
 .journal-archive-item{grid-template-columns:1fr;gap:24px;padding-block:24px;align-items:start}
 .journal-archive-image{width:min(65%,240px)}
 .journal-archive-copy{min-width:0;overflow-wrap:anywhere}
 .journal-archive-item h2{font-size:23px;line-height:1.5;margin-top:0}
 .site:lang(en) .journal-archive-copy .title-unit,.site:lang(en) .article-intro h1 .title-unit{white-space:normal}
 .site:lang(en) .article-intro h1{overflow-wrap:anywhere}
 .journal-archive-copy .inline-link{font-size:15px;margin-top:8px}
 .page-about .page-intro{padding-bottom:32px}
 .author-layout{margin-bottom:64px}
 .author-preface.reading{display:block}
 .author-preface>.about-lead{font-size:20px;margin-bottom:24px}
 .author-identity{margin-bottom:40px}
 .author-preface>section{border-left:0;border-top:1px solid var(--line);padding:32px 0 0}
 .author-preface>nav{margin-top:24px}
 .author-preface h2{font-size:27px;margin-bottom:24px}
 .author-signature{font-size:27px}
 .portfolio-intro{padding:32px 0 28px}
 .portfolio-intro .eyebrow{margin-bottom:12px}
 .portfolio-intro .page-intro-copy{margin-top:16px}
 .portfolio-feature{display:block;padding-top:28px}
 .portfolio-feature-heading{margin-bottom:24px}
 .portfolio-tool{margin-top:28px}
 .portfolio-overview{margin-top:24px}
 .portfolio-feature h2{font-size:40px;line-height:1.2;margin-top:16px}
 .portfolio-number{font-size:25px}
 .portfolio-lead{font-size:25px;line-height:1.5}
 .portfolio-case-actions{gap:16px 24px;margin-top:24px}
 .portfolio-fieldnotes{gap:20px;margin-top:28px;padding-block:24px}
 .portfolio-fieldnotes-image{flex-basis:112px}
 .portfolio-fieldnotes .inline-link{font-size:20px}
 .portfolio-projects{margin:36px 0 64px}
 .portfolio-projects>h2{font-size:23px;margin-bottom:24px}
 .portfolio-project-grid{grid-template-columns:1fr;gap:40px}
 .portfolio-project-name h3{font-size:36px;margin:16px 0 20px}
 .service-contact{margin-bottom:64px}
 .service-contact h2{font-size:27px}
 .contact-opening{margin-bottom:48px}.contact-opening>p{margin-top:24px}
 .contact-direct{margin-top:24px}
 .contact-address{font-size:clamp(23px,6vw,30px)}
 .contact-situations>h2{margin-bottom:24px}
 .contact-situation{grid-template-columns:1fr;gap:24px;padding-block:24px}
 .contact-question h3{font-size:24px}.contact-question{gap:16px}
 .contact-scope{padding-left:16px;margin-top:24px}
 .service-contact .contact-scope h2{font-size:23px}
 .contact-invitation{margin-top:48px;padding-top:32px}
 .contact-mail-options{display:grid;grid-template-columns:1fr;gap:0;margin-top:24px}
 .contact-mail-options .inline-link{display:flex;justify-content:center;padding:16px 8px;min-height:56px;border-bottom:1px solid var(--line)}
 .contact-mail-options a:first-child{min-height:48px;border:0;padding:12px 16px}
 .contact-issue{margin-top:40px;padding-top:24px}
 .service-contact .contact-issue h2{font-size:23px}
 .not-found-links{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:64px}
 .page-404 .page-intro{padding-top:64px}
 .site-footer{grid-template-columns:1fr;gap:24px;padding:32px 0 24px}
 .footer-links{justify-content:flex-start;gap:8px 24px}
 .preview-control{grid-column:1}
}
@media(max-width:350px){
 .site{--page-gutter:20px}
 .header-row>.wordmark{width:112px;height:22px}
 .mobile-menu summary{right:84px;min-width:60px;font-size:11px;gap:6px}
 .language-nav a{min-width:26px}
 .hero-voice h1{font-size:30px}
 .page-intro h1{font-size:34px}.article-intro h1{font-size:31px}
 .note-archive article{grid-template-columns:80px minmax(0,1fr);gap:16px}
 .contact-address{font-size:23px}
}
@media(max-width:360px){
 .portfolio-fieldnotes{gap:12px}
 .portfolio-fieldnotes-image{flex-basis:64px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}

@media(max-width:350px){
 .site:lang(en) .hero-voice h1{font-size:37px}
}
