@view-transition { navigation: auto; }
@font-face {
 font-family:'Ninapoly Sans'; src:url('ninapoly-sans-jp.woff2') format('woff2');
 font-style:normal; font-weight:400 700; font-display:swap;
}
:root {
 --paper:#faf9f6; --ink:#172b3a; --coral:#bd4c3d; --bright:#ff8b76; --blue:#214db4;
 --muted:#59636a; --line:#d6d8d3; --gutter:clamp(24px,5.1vw,96px);
 --sans:'Ninapoly Sans',Arial,'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;
 --mono:Arial,sans-serif; --ease:cubic-bezier(.22,1,.36,1);
 --copy-size:18px; --lead-size:18px; --caption-size:14px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:108px; }
body { margin:0; background:var(--paper); color:var(--ink); font:var(--copy-size)/1.85 var(--sans); font-feature-settings:'palt'; -webkit-font-smoothing:antialiased; }
::selection { background:#f7c4b7; color:var(--ink); }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { color:inherit; cursor:pointer; border:0; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,p,figure,dl { margin:0; }
h1,h2,h3 { text-wrap:balance; }
p { line-height:1.85; }
address { font-style:normal; }
dd { margin:0; }
[hidden] { display:none!important; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid var(--blue); outline-offset:6px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:fixed; z-index:100; top:10px; left:20px; transform:translateY(-160%); background:var(--ink); color:white; padding:12px 20px; }
.skip-link:focus { transform:none; }
.section-pad { padding:110px var(--gutter); }
.eyebrow,.section-no,.edition { font:13px/1.6 var(--mono); letter-spacing:.12em; }
.eyebrow { display:flex; align-items:center; gap:12px; }
.dot { width:5px; height:5px; flex:none; background:var(--coral); border-radius:50%; display:inline-block; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:60px; }
.section-no,.edition { color:var(--muted); }
.coral { color:var(--coral); }
.arrow { display:inline-flex; width:24px; height:24px; flex:0 0 24px; align-items:center; justify-content:center; vertical-align:middle; transition:transform .35s var(--ease); }
.arrow svg { width:24px; height:24px; display:block; }
a:hover .arrow,button:hover .arrow { transform:translateX(4px); }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; max-width:100%; min-height:48px; padding:9px 0; border-bottom:1px solid currentColor; font-size:16px; font-weight:600; line-height:1.6; transition:color .25s; }
.text-link:hover { color:var(--coral); }
.body-copy { font-size:var(--copy-size); line-height:1.95; }
.body-copy p+p { margin-top:24px; }
.body-copy .text-link { margin-top:30px; }

/* Clear, quiet navigation. */
.site-header { height:88px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:10px var(--gutter); border-bottom:1px solid var(--line); background:var(--paper); position:sticky; top:0; z-index:30; }
.brand { width:220px; flex:none; display:flex; align-items:center; }
.brand img { width:100%; height:auto; }
.brand picture { display:block; width:100%; }
.site-header nav { display:flex; align-items:center; gap:36px; }
.nav-link { display:inline-flex; align-items:center; gap:12px; min-height:46px; position:relative; font-size:16px; line-height:1.5; }
.nav-num { display:none; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.nav-link:hover::after,.nav-link[aria-current]::after { transform:scaleX(1); }
.nav-contact { margin-left:8px; color:var(--ink); background:none; padding:0; gap:24px; }
.nav-contact[aria-current] { color:var(--coral); }
.menu-toggle { display:none; }

/* An opening composition with space for the words and sculpture. */
.home-hero { padding:0 var(--gutter); position:relative; overflow:hidden; }
.hero-topline { position:absolute; top:54px; left:var(--gutter); right:50%; z-index:3; display:flex; align-items:center; gap:20px; }
.hero-topline .eyebrow { white-space:nowrap; font-size:13px; letter-spacing:.1em; }
.hero-topline .edition { display:none; }
.hero-grid { display:grid; grid-template-columns:52% 48%; align-items:center; min-height:680px; gap:0; }
.hero-copy { min-width:0; position:relative; z-index:2; align-self:start; padding:160px 34px 84px 0; }
.hero-copy h1 { font-size:clamp(48px,5.1vw,76px); line-height:1.4; letter-spacing:-.035em; font-weight:700; }
.hero-copy h1 span { display:block; white-space:nowrap; }
.hero-copy h1 span:nth-child(2) { color:var(--coral); }
.hero-caption { display:flex; align-items:flex-start; gap:20px; margin:34px 0 28px; }
.hero-caption p { font-size:var(--lead-size); line-height:1.95; }
.tiny-cross { font-size:22px; line-height:1.65; color:var(--coral); }
.hero-copy .text-link { border-bottom:0; font-size:16px; font-weight:600; gap:24px; }
.hero-copy .text-link .arrow { width:52px; height:52px; flex-basis:52px; border:1px solid var(--ink); border-radius:50%; transition:background .25s,color .25s,transform .35s var(--ease); }
.hero-copy .text-link:hover .arrow { background:var(--ink); color:var(--paper); transform:translateX(3px); }
.hero-art { position:relative; align-self:stretch; width:calc(100% + var(--gutter)); min-width:0; }
.art-window { position:relative; width:100%; height:680px; overflow:hidden; }
.art-window picture { display:block; width:100%; height:100%; }
.art-window img { width:100%; height:100%; object-fit:cover; object-position:50% 32%; }
.hero-art figcaption { position:absolute; bottom:20px; left:24px; right:24px; display:flex; justify-content:space-between; gap:16px; color:var(--ink); font:13px/1.6 var(--mono); letter-spacing:.03em; }
.hero-art figcaption span:last-child { font-family:var(--sans); }
.scroll-cue { height:56px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; font:13px/1.6 var(--mono); letter-spacing:.12em; }
.scroll-cue span:last-child { font:22px/1 var(--sans); transition:transform .3s; }
.scroll-cue:hover span:last-child { transform:translateY(4px); }
.arrow-down { transform:none; }
a:hover .arrow-down { transform:translateY(4px); }

/* Open editorial sections use one common alignment. */
.manifesto { padding-top:112px; padding-bottom:126px; }
.manifesto-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:8vw; align-items:start; }
.manifesto h2,.lens-heading h2,.company-teaser h2 { font-size:clamp(34px,3.3vw,50px); line-height:1.5; letter-spacing:-.035em; font-weight:500; }
.manifesto h2,.company-teaser h2 { font-weight:600; }
.lens-heading h2 { font-weight:400; }
.lens-section { background:var(--paper); color:var(--ink); padding-top:80px; padding-bottom:0; }
.lens-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:48px; margin-bottom:56px; }
.lens-heading p { font-size:var(--copy-size); line-height:1.85; padding-bottom:6px; }
.lens-experience { display:grid; grid-template-columns:48% 52%; min-height:520px; background:var(--ink); color:var(--paper); }
.lens-visual { min-width:0; position:relative; min-height:520px; overflow:hidden; border-right:1px solid #52616a; background:radial-gradient(ellipse at center,#213a49,var(--ink) 75%); }
.lens-visual canvas { display:block; width:100%; height:100%; position:absolute; inset:0; }
.lens-visual-label { position:absolute; bottom:36px; left:34px; right:28px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.lens-visual-label span:first-child { font:48px/1 Arial,sans-serif; letter-spacing:.08em; font-weight:400; }
.lens-visual-label span:last-child { font:13px/1.6 var(--mono); letter-spacing:.03em; max-width:150px; text-align:right; }
.lens-controls { min-width:0; padding:32px 40px 40px; }
.lens-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid #607079; }
.lens-tabs button { min-width:0; min-height:60px; display:flex; align-items:center; gap:10px; padding:10px 8px 15px 0; color:#d5dde0; background:none; position:relative; text-align:left; font:13px/1.4 var(--mono); }
.lens-tabs button+button { padding-left:14px; border-left:1px solid #435661; }
.lens-tabs button span { font:16px/1.4 Arial,sans-serif; }
.lens-tabs button[aria-selected=true] { color:var(--bright); }
.lens-tabs button[aria-selected=true]::after { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:2px; background:var(--bright); }
.lens-tabs button:focus-visible { outline-color:var(--bright); outline-offset:-4px; }
.lens-panels { padding-top:44px; }
.lens-panels .eyebrow { font-size:13px; color:var(--bright); letter-spacing:.1em; }
.lens-panels h3 { margin:20px 0 22px; font-size:clamp(30px,3vw,44px); line-height:1.45; letter-spacing:-.035em; font-weight:400; }
.lens-panels article>p:not(.eyebrow) { font-size:var(--copy-size); line-height:1.9; color:#e3e8e8; }
.lens-panels .text-link { margin-top:26px; border-color:#94a3aa; }
.lens-panels .text-link:hover { color:var(--bright); }
.lens-panels article { animation:panel-in .45s var(--ease); }
@keyframes panel-in { from { transform:translateY(6px); opacity:.3; } to { transform:none; opacity:1; } }
.home-company { padding-top:106px; padding-bottom:112px; }
.company-teaser { display:grid; grid-template-columns:48% 1fr; gap:8vw; align-items:center; }
.company-teaser img { width:100%; height:430px; object-fit:cover; object-position:center; }
.company-teaser h2 { margin:24px 0; }
.company-teaser p:not(.eyebrow) { font-size:var(--copy-size); line-height:1.95; }
.company-teaser .text-link { margin-top:28px; }

/* A restrained close concentrates colour in the invitation. */
.site-footer { padding:70px var(--gutter) 32px; background:var(--paper); color:var(--ink); border-top:1px solid var(--line); }
.footer-top { padding-bottom:58px; }
.footer-top .eyebrow { margin-bottom:24px; font-size:13px; }
.footer-cta { display:flex; align-items:center; justify-content:space-between; gap:32px; max-width:100%; font-size:clamp(36px,4.5vw,66px); font-weight:600; letter-spacing:-.035em; line-height:1.45; }
.footer-cta .arrow { width:80px; height:80px; flex-basis:80px; border:1px solid var(--coral); background:transparent; color:var(--coral); border-radius:50%; }
.footer-cta>span:first-child br { display:none; }
.footer-cta .arrow svg { width:28px; height:28px; }
.footer-cta:hover .arrow { transform:translateX(4px); }
.footer-bottom { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:28px; border-top:1px solid var(--line); padding-top:30px; }
.footer-name { font:30px/1 Arial,sans-serif; font-weight:600; letter-spacing:-.04em; }
.footer-name span { display:block; font:13px/1.6 var(--sans); letter-spacing:.1em; margin-top:10px; }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; font-size:16px; }
.footer-links a { padding:10px 0; }
.footer-links a:hover { color:var(--coral); }
.footer-bottom>p { font:13px/1.7 var(--mono); text-align:right; color:var(--muted); }
.footer-bottom>p span { display:block; font-size:13px; margin-top:8px; }
body[data-page=contact] .footer-top { display:none; }
body[data-page=contact] .site-footer { padding-top:32px; }
body[data-page=contact] .footer-bottom { border-top:0; padding-top:0; }

/* Business stories pair information with a distinctive material. */
.page-hero { padding-top:38px; padding-bottom:0; }
.page-title-row { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:7vw; margin:52px 0 54px; }
.page-title-row h1 { font-size:clamp(48px,5vw,76px); line-height:1.4; letter-spacing:-.035em; font-weight:600; }
.page-title-row>div { padding-bottom:9px; }
.page-jp-title { font-size:16px; font-weight:600; margin-bottom:18px; }
.wide-art { height:280px; overflow:hidden; position:relative; }
.wide-art img { width:100%; height:100%; object-fit:cover; object-position:center 50%; }
.wide-art figcaption { position:absolute; bottom:18px; left:22px; color:var(--paper); font:13px/1.6 var(--mono); letter-spacing:.1em; background:#172b3aeb; padding:7px 12px; }
.anchor-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:22px 0; border-bottom:1px solid var(--line); }
.anchor-nav a { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:16px; min-height:44px; }
.anchor-nav a:hover { color:var(--coral); }
.anchor-nav a>span { flex:none; font-size:20px; }
.business-chapter { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:7.5vw; border-bottom:1px solid var(--line); padding-top:92px; padding-bottom:92px; scroll-margin-top:106px; }
.chapter-side { min-width:0; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:12px 20px; }
.chapter-number { font:32px/1 Arial,sans-serif; letter-spacing:-.04em; color:var(--coral); }
.chapter-side .eyebrow { margin:0; font-size:13px; }
.chapter-art { grid-column:1/-1; margin-top:16px; min-width:0; }
.chapter-art img { width:100%; height:380px; object-fit:cover; object-position:center; }
.chapter-content { min-width:0; }
.chapter-content h2 { font-size:clamp(32px,3vw,44px); line-height:1.5; font-weight:500; letter-spacing:-.035em; margin:22px 0; }
.chapter-content h3 { font-size:18px; font-weight:600; line-height:1.8; margin-bottom:22px; }
.chapter-content>p { font-size:var(--copy-size); line-height:1.95; max-width:600px; }
.chapter-content .app-link { margin-top:28px; }
.status-pill { display:inline-flex; gap:10px; align-items:center; padding:0; color:var(--coral); font-size:15px; line-height:1.6; }
.status-pill::before { content:''; width:6px; height:6px; flex:none; border-radius:50%; background:currentColor; }
.mini-facts { margin-top:30px; border-top:1px solid var(--line); max-width:600px; }
.mini-facts>div { display:grid; grid-template-columns:108px 1fr; gap:20px; border-bottom:1px solid var(--line); padding:18px 0; font-size:16px; line-height:1.8; }
.mini-facts dt { color:var(--muted); }
.chapter-note { color:var(--muted); margin-top:24px!important; font-size:15px!important; }
.chapter-blue { background:var(--paper); }
.chapter-blue .chapter-number { color:var(--ink); }
#creative .chapter-side { grid-column:2; grid-row:1; }
#creative .chapter-content { grid-column:1; grid-row:1; }
.line-object { display:none; }

/* Company facts begin close to the introduction. */
.company-hero { display:grid; grid-template-columns:1fr 1.08fr; gap:0 6vw; align-items:center; }
.company-hero>.section-heading { grid-column:1/-1; margin-bottom:50px; }
.company-hero .page-title-row { display:block; margin:0; min-width:0; }
.company-hero .page-title-row h1 { font-size:clamp(42px,4.2vw,64px); }
.company-hero .page-title-row>div { margin-top:30px; padding:0; }
.company-panorama { height:440px; position:relative; overflow:hidden; min-width:0; }
.company-panorama img { width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.company-panorama figcaption { position:absolute; bottom:18px; left:22px; right:22px; display:flex; justify-content:space-between; gap:16px; font:13px/1.6 var(--mono); letter-spacing:.04em; }
.company-information { display:grid; grid-template-columns:1fr 2fr; align-items:start; gap:7vw; padding-top:86px; padding-bottom:106px; }
.info-intro { position:sticky; top:126px; }
.info-intro h2 { margin:24px 0 36px; font-size:32px; font-weight:500; letter-spacing:-.035em; }
.info-intro>p:last-child { font:26px/1.6 Arial,sans-serif; letter-spacing:-.03em; color:var(--muted); }
.company-table { border-top:1px solid var(--ink); min-width:0; }
.company-table>div { display:grid; grid-template-columns:125px 1fr; align-items:start; gap:24px; padding:25px 0; border-bottom:1px solid var(--line); }
.company-table dt { font-size:15px; color:var(--muted); padding-top:3px; line-height:1.8; }
.company-table dd,.company-table address { font-size:18px; line-height:1.9; min-width:0; }
.company-table>div:first-child dd { font-size:23px; font-weight:600; }
.small-link { display:inline-flex; align-items:center; gap:20px; margin-top:14px; border-bottom:1px solid var(--line); min-height:40px; font-size:15px; line-height:1.8; }
.small-link:hover { color:var(--coral); }
.table-business { display:block; font-size:18px; line-height:1.8; margin-bottom:24px; }
.table-business small { display:block; font-size:15px; line-height:1.8; color:var(--muted); margin-top:6px; }
.company-table>div:nth-of-type(5) dd { counter-reset:business; }
.table-business { position:relative; padding-left:38px; counter-increment:business; }
.table-business::before { content:counter(business,decimal-leading-zero); position:absolute; left:0; top:2px; color:var(--coral); font:15px/1.8 Arial,sans-serif; }
.email-link { display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; font:18px/1.8 Arial,sans-serif; overflow-wrap:anywhere; }
.email-link:hover { color:var(--coral); }

/* The contact form retains its public and server contracts. */
.contact-section { padding-top:40px; padding-bottom:110px; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; grid-template-rows:auto 1fr; align-items:start; column-gap:5.5vw; row-gap:38px; margin-top:66px; }
.contact-left { grid-column:1; grid-row:1; min-width:0; }
.contact-intro h1 { font-size:clamp(42px,4.4vw,64px); font-weight:600; line-height:1.45; letter-spacing:-.035em; margin-bottom:28px; }
.contact-intro .body-copy { font-size:var(--copy-size); line-height:1.85; }
.contact-email { display:inline-flex; align-items:center; gap:24px; max-width:100%; padding:20px 0 8px; font:clamp(18px,1.8vw,25px)/1.6 Arial,sans-serif; letter-spacing:-.02em; overflow-wrap:anywhere; }
.contact-email:hover { color:var(--coral); }
.contact-email .arrow { color:var(--coral); }
.contact-art { min-width:0; margin-top:36px; }
.contact-grid>.contact-art { grid-column:1; grid-row:2; margin:0; }
.contact-art img { width:100%; height:330px; object-fit:cover; object-position:center; }
.contact-art figcaption { margin-top:14px; font:13px/1.7 var(--mono); letter-spacing:.03em; color:var(--muted); }
.contact-form-wrap { grid-column:2; grid-row:1/span 2; min-width:0; border-left:1px solid var(--line); padding-left:4vw; }
.form-description { font-size:17px; line-height:1.85; padding-bottom:26px; color:var(--ink); }
.form-field { padding-top:24px; }
.form-field label { display:flex; align-items:center; gap:12px; font-size:16px; line-height:1.7; margin-bottom:12px; }
.form-field label>span { font:13px/1.5 var(--mono); color:var(--muted); margin-right:2px; }
.form-field label small { font-size:13px; font-weight:400; line-height:1.6; color:var(--muted); margin-left:auto; padding:0 6px; border:1px solid var(--line); }
.form-field:has([required]) label small { color:#a54436; border-color:#edcfc7; background:#f7ece6; }
.form-field input,.form-field textarea { display:block; width:100%; min-width:0; min-height:56px; border:1px solid #cbd0ca; border-radius:0; padding:14px 16px; background:white; color:var(--ink); font-size:16px; line-height:1.7; transition:border-color .25s,box-shadow .25s; }
.form-field input:hover,.form-field textarea:hover { border-color:#7d8b90; }
.form-field input:focus,.form-field textarea:focus { outline-offset:3px; border-color:var(--ink); }
.form-field textarea { min-height:180px; resize:vertical; }
.form-field input::placeholder,.form-field textarea::placeholder { color:#68757c; font-size:16px; opacity:1; }
.field-hint { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:14px; line-height:1.8; margin-top:8px; color:var(--muted); }
.form-privacy { margin:24px 0 20px; font-size:14px; line-height:1.85; color:var(--muted); }
.submit-button { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; min-height:64px; padding:18px 24px; background:var(--ink); color:white; font-size:16px; line-height:1.6; transition:background .25s; }
.submit-button:hover { background:#284757; }
.submit-button:disabled { opacity:.55; cursor:not-allowed; }
.submit-button:disabled:hover { background:var(--ink); }
.form-status { min-height:16px; padding-top:16px; font-size:14px; line-height:1.8; }
.form-status a { text-decoration:underline; text-underline-offset:4px; }
.contact-trap { display:none!important; }
.contact-verification { margin-top:24px; max-width:100%; }
html:not(.has-js) #contact-form,html:not(.has-js) .form-description { display:none; }
.reveal-ready [data-reveal] { opacity:0; transform:translateY(12px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-ready [data-reveal].is-visible { opacity:1; transform:none; }

@media(min-width:1600px) {
 .hero-topline { top:74px; }
 .lens-visual { min-height:550px; }
}
@media(max-width:1100px) {
 .site-header nav { gap:24px; }
 .brand { width:200px; }
 .hero-copy h1 { font-size:clamp(48px,5vw,56px); }
 .hero-copy { padding-right:20px; }
 .hero-topline .eyebrow { font-size:12px; letter-spacing:.04em; }
 .hero-caption { gap:14px; }
 .hero-caption p { font-size:18px; }
 .hero-art figcaption { flex-wrap:wrap; gap:4px; }
 .section-pad { padding-top:86px; padding-bottom:86px; }
 .page-hero { padding-top:34px; padding-bottom:0; }
 .manifesto-grid { gap:5vw; }
 .lens-section { padding-top:66px; padding-bottom:0; }
 .lens-controls { padding:28px 26px 34px; }
 .lens-tabs button { flex-direction:column; align-items:flex-start; gap:5px; }
 .lens-tabs button+button { padding-left:10px; }
 .lens-visual-label { left:26px; right:26px; flex-direction:column; align-items:flex-start; gap:14px; }
 .lens-visual-label span:last-child { max-width:none; text-align:left; }
 .company-teaser { gap:5vw; }
 .company-teaser img { height:390px; }
 .business-chapter { gap:5vw; }
 .chapter-art img { height:320px; }
 .company-hero { gap:0 4vw; }
 .company-panorama { height:410px; }
 .company-panorama figcaption { flex-wrap:wrap; gap:2px; }
 .company-table>div { grid-template-columns:104px 1fr; gap:18px; }
 .contact-section { padding-top:34px; }
 .contact-grid { column-gap:4vw; }
 .contact-form-wrap { padding-left:3vw; }
 .contact-art img { height:280px; }
 .footer-bottom { grid-template-columns:1fr auto; }
 .footer-links { grid-column:1; grid-row:2; }
 .footer-bottom>p { grid-column:2; grid-row:1/span 2; }
}
@media(max-width:760px) {
 :root { --copy-size:17px; --lead-size:18px; --caption-size:14px; }
 html { scroll-padding-top:94px; }
 .section-pad { padding:66px var(--gutter); }
 .section-heading { margin-bottom:36px; gap:16px; }
 .section-no { letter-spacing:.04em; white-space:nowrap; }
 .eyebrow { letter-spacing:.08em; }
 .site-header { height:76px; gap:20px; padding:8px var(--gutter); }
 .brand { width:180px; }
 .menu-toggle { display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:12px 0; min-height:44px; min-width:72px; background:none; font:13px/1.5 var(--mono); }
 .menu-toggle i { width:20px; height:10px; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); position:relative; transition:transform .3s; }
 .menu-toggle[aria-expanded=true] i { transform:rotate(45deg); height:0; border-bottom:0; }
 .menu-toggle[aria-expanded=true] i::after { content:''; position:absolute; width:20px; height:1px; top:-1px; background:var(--ink); transform:rotate(90deg); }
 .site-header nav { display:none; position:absolute; top:75px; left:0; right:0; background:var(--paper); padding:18px var(--gutter) 30px; border-bottom:1px solid var(--line); }
 .site-header nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
 .nav-link { min-height:60px; font-size:17px; border-bottom:1px solid var(--line); }
 .nav-link::after { display:none; }
 .nav-contact { margin:0; justify-content:space-between; }
 .home-hero { padding-top:0; }
 .hero-topline { position:static; padding-top:30px; }
 .hero-topline .eyebrow { white-space:normal; font-size:13px; letter-spacing:.04em; }
 .hero-grid { grid-template-columns:1fr; min-height:0; }
 .hero-copy { padding:30px 0 32px; }
 .hero-copy h1 { font-size:clamp(32px,10vw,46px); font-weight:600; line-height:1.5; letter-spacing:-.035em; }
 .hero-caption { margin:24px 0 20px; gap:14px; }
 .hero-caption p { font-size:18px; line-height:1.9; }
 .tiny-cross { font-size:20px; }
 .hero-copy .text-link { padding:0; gap:24px; min-height:48px; }
 .hero-copy .text-link .arrow { width:48px; height:48px; flex-basis:48px; }
 .hero-art { width:calc(100% + var(--gutter)*2); margin-left:calc(-1*var(--gutter)); }
 .art-window { height:clamp(410px,110vw,610px); }
 .art-window img { object-position:center 52%; }
 .hero-art figcaption { left:var(--gutter); right:var(--gutter); bottom:18px; font-size:13px; flex-wrap:wrap; gap:2px; }
 .scroll-cue { height:54px; }
 .manifesto-grid { grid-template-columns:1fr; gap:28px; }
 .manifesto h2,.lens-heading h2,.company-teaser h2 { font-size:34px; line-height:1.55; }
 .body-copy .text-link { margin-top:22px; }
 .lens-section { padding-top:54px; padding-bottom:0; }
 .lens-heading { display:block; margin-bottom:32px; }
 .lens-heading p { margin-top:22px; padding:0; }
 .lens-experience { grid-template-columns:1fr; }
 .lens-visual { min-height:320px; border-right:0; border-bottom:1px solid #52616a; }
 .lens-visual-label { left:24px; right:24px; bottom:24px; flex-direction:row; align-items:flex-end; gap:14px; }
 .lens-visual-label span:first-child { font-size:38px; letter-spacing:.04em; }
 .lens-visual-label span:last-child { font-size:13px; max-width:130px; text-align:right; }
 .lens-controls { padding:24px 22px 32px; }
 .lens-tabs button { min-height:61px; padding-right:4px; font-size:13px; }
 .lens-tabs button span { font-size:16px; }
 .lens-tabs button+button { padding-left:10px; }
 .lens-panels { padding-top:30px; }
 .lens-panels h3 { font-size:32px; margin:18px 0 20px; }
 .lens-panels .eyebrow { font-size:13px; letter-spacing:.06em; }
 .lens-panels article>p:not(.eyebrow) { font-size:17px; line-height:1.95; }
 .lens-panels .text-link { gap:20px; margin-top:24px; }
 .company-teaser { grid-template-columns:1fr; gap:34px; }
 .company-teaser img { height:330px; }
 .company-teaser h2 { margin:18px 0 22px; }
 .company-teaser .text-link { margin-top:22px; }
 .site-footer { padding:50px var(--gutter) 28px; }
 .footer-top { padding-bottom:38px; }
 .footer-top .eyebrow { font-size:13px; }
 .footer-cta { font-size:clamp(30px,8vw,42px); gap:16px; }
 .footer-cta>span:first-child br { display:block; }
 .footer-cta .arrow { width:56px; height:56px; flex-basis:56px; }
 .footer-cta .arrow svg { width:24px; height:24px; }
 .footer-bottom { gap:24px; grid-template-columns:1fr; padding-top:26px; }
 .footer-name { font-size:28px; }
 .footer-links { grid-column:1; grid-row:2; gap:20px; font-size:16px; }
 .footer-bottom>p { grid-column:1; grid-row:3; display:flex; justify-content:space-between; gap:16px; text-align:left; }
 .footer-bottom>p span { margin:0; }
 .page-hero { padding-top:28px; padding-bottom:0; }
 .page-title-row { grid-template-columns:1fr; gap:24px; margin:36px 0 32px; }
 .page-title-row h1 { font-size:clamp(34px,8.5vw,44px); line-height:1.5; }
 .page-title-row>div { padding:0; }
 .page-jp-title { font-size:16px; margin-bottom:14px; }
 .wide-art { height:250px; margin:0 calc(-1*var(--gutter)); }
 .wide-art figcaption { left:var(--gutter); bottom:18px; font-size:13px; letter-spacing:.03em; }
 .anchor-nav { display:flex; flex-direction:column; gap:0; padding:8px 0; }
 .anchor-nav a { font-size:16px; min-height:56px; border-bottom:1px solid var(--line); }
 .anchor-nav a:last-child { border-bottom:0; }
 .business-chapter { grid-template-columns:1fr; gap:34px; padding-top:58px; padding-bottom:62px; scroll-margin-top:96px; }
 #creative .chapter-side,#creative .chapter-content { grid-column:auto; grid-row:auto; }
 .chapter-side { grid-template-columns:auto 1fr; gap:14px 16px; }
 .chapter-number { font-size:28px; }
 .chapter-side .eyebrow { font-size:13px; }
 .chapter-art { margin-top:6px; }
 .chapter-art img { height:290px; }
 .chapter-content h2 { font-size:32px; line-height:1.55; margin:20px 0; }
 .chapter-content h3 { font-size:18px; margin-bottom:18px; }
 .chapter-content>p { font-size:17px; line-height:1.95; }
 .mini-facts>div { font-size:16px; grid-template-columns:100px 1fr; gap:16px; }
 .company-hero { grid-template-columns:1fr; gap:0; }
 .company-hero>.section-heading { margin-bottom:36px; }
 .company-hero .page-title-row { margin-bottom:34px; }
 .company-hero .page-title-row h1 { font-size:clamp(34px,8.5vw,44px); }
 .company-hero .page-title-row>div { margin-top:26px; }
 .company-panorama { height:310px; margin:0 calc(-1*var(--gutter)); }
 .company-panorama figcaption { left:var(--gutter); right:var(--gutter); font-size:13px; }
 .company-information { grid-template-columns:1fr; gap:32px; padding-top:62px; }
 .info-intro { position:static; }
 .info-intro h2 { font-size:30px; margin:18px 0 0; }
 .info-intro>p:last-child { display:none; }
 .company-table>div { grid-template-columns:86px 1fr; gap:18px; padding:24px 0; }
 .company-table dt { font-size:15px; }
 .company-table dd,.company-table address,.table-business { font-size:17px; line-height:1.9; }
 .company-table>div:first-child dd { font-size:20px; }
 .table-business small { font-size:15px; }
 .small-link { font-size:15px; gap:12px; }
 .email-link { font-size:17px; }
 .contact-section { padding-top:28px; padding-bottom:66px; }
 .contact-grid { grid-template-columns:1fr; grid-template-rows:auto; margin-top:36px; gap:38px; }
 .contact-left { display:contents; }
 .contact-intro { grid-column:1; grid-row:1; min-width:0; }
 .contact-intro h1 { font-size:clamp(34px,8.5vw,44px); line-height:1.5; margin-bottom:24px; }
 .contact-intro .body-copy { font-size:17px; }
 .contact-email { font-size:22px; gap:18px; padding-top:22px; }
 .contact-form-wrap { grid-column:1; grid-row:2; border-left:0; border-top:1px solid var(--line); padding:28px 0 0; }
 .contact-art,.contact-grid>.contact-art { grid-column:1; grid-row:3; margin:0; }
 .contact-art img { height:270px; }
 .contact-art figcaption { font-size:13px; }
 .form-description { padding-bottom:8px; font-size:17px; }
 .form-field { padding-top:22px; }
 .form-field label { font-size:16px; }
 .form-field input,.form-field textarea,.form-field input::placeholder,.form-field textarea::placeholder { font-size:16px; }
 .submit-button { padding:17px 20px; }
 .desktop-break { display:none; }
 html:not(.has-js) .site-header { height:auto; flex-wrap:wrap; }
 html:not(.has-js) .site-header nav { display:flex; position:static; flex-direction:column; align-items:stretch; width:100%; padding:0; background:none; border:0; }
 html:not(.has-js) .menu-toggle { display:none; }
}
@media(max-width:360px) {
 .brand { width:155px; }
 .hero-copy h1 { font-size:clamp(32px,10vw,36px); }
 .hero-caption { gap:12px; }
 .hero-caption p { font-size:18px; }
 .lens-controls { padding-left:18px; padding-right:18px; }
 .lens-tabs button+button { padding-left:6px; }
 .lens-tabs button span { font-size:16px; letter-spacing:-.03em; }
 .lens-visual-label { flex-direction:column; align-items:flex-start; gap:12px; }
 .lens-visual-label span:last-child { text-align:left; max-width:none; }
 .lens-panels .text-link { gap:10px; }
 .lens-panels h3 { font-size:30px; }
 .footer-cta { font-size:30px; }
 .footer-cta .arrow { width:48px; height:48px; flex-basis:48px; }
 .company-table>div { grid-template-columns:1fr; gap:8px; }
 .company-panorama figcaption span:last-child { display:none; }
 .contact-email { font-size:20px; gap:12px; }
 .chapter-content h2 { font-size:30px; }
}
@media(max-width:480px) {
 .company-table>div { grid-template-columns:1fr; gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
 .reveal-ready [data-reveal] { opacity:1; transform:none; }
}

