/* A cinematic opening, a collection of craft, and space to see the work. */
:root { --chapter-ink:#061019; --chapter-line:#bddbea26; }
.hero.scene-ready .hero-content { animation:hero-arrive 1.35s cubic-bezier(.16,1,.3,1) backwards; }
@keyframes hero-arrive { from { opacity:0; filter:blur(6px); translate:0 20px; } to { opacity:1; filter:blur(0); translate:0 0; } }
.chapter { scroll-margin-top:28px; }
.chapter .eyebrow { font-size:12px; letter-spacing:.14em; }
.chapter .latin-title { font-family:var(--latin); font-weight:500; letter-spacing:-.065em; }
.chapter .latin-title > span { color:inherit; }
.scene-service,.scene-service-inner { background:#07121a; }
.works { padding-top:70px; }
.works { background:#03070b; padding-bottom:120px; }
.works-heading { align-items:center; margin-bottom:46px; }
.works-heading h2 { font-size:clamp(100px,14vw,206px); }
.works-heading > p { max-width:300px; }
.work-filters { gap:8px; border:0; }
.work-filters button { padding:9px 19px; border:1px solid #abcdda30; border-radius:28px; font-size:13px; min-height:44px; transition:background .3s,color .3s,border-color .3s; }
.work-filters button::after { display:none; }
.work-filters button.active { background:var(--white); color:#061019; border-color:var(--white); }
.work-filters button:hover { border-color:var(--cyan); }
.work-transition { --stage-height:clamp(430px,50vw,730px); perspective:1600px; }
.work-stage { border-radius:3px; clip-path:inset(var(--screen-inset,0%) round 3px); transform:scale(var(--screen-scale,1)); box-shadow:0 30px 90px #0006; will-change:clip-path,transform; }
.film-aperture { position:absolute; inset:0; pointer-events:none; border:1px solid #b2efff50; background:linear-gradient(110deg,transparent 25%,#b1f0ff30 51%,transparent 70%); opacity:var(--screen-gloss,0); }
.reel-poster>img { filter:brightness(.78); }
.reel-play { font-family:var(--latin); font-size:19px; }
.project-grid { gap:90px 30px; }
.project-image { aspect-ratio:1.16; border-radius:3px; }
.project-image>img { transition:transform 1.2s var(--motion-ease),filter .6s; }
.project-image:hover>img { transform:scale(1.055); }
.project-type { font-size:12px; letter-spacing:.055em; padding:7px 12px; border-radius:2px; }
.project-meta { border-color:var(--chapter-line); padding-top:24px; }
.project-meta h3 { font-size:clamp(24px,2.4vw,36px); }
.project-meta dd,.project-context { font-size:13px; }
.proof { padding-block:86px 100px; border-color:var(--chapter-line); background:transparent; }
.proof-heading { align-items:start; }
.proof-heading h2 { font-size:26px; }
.proof-number strong { font-size:clamp(100px,15vw,220px); font-weight:400; }
.proof-capabilities>p { font-family:var(--latin); font-size:clamp(35px,4.7vw,67px); letter-spacing:-.05em; }
.proof-capabilities em { color:var(--cyan); font-style:normal; }
.proof-number h3 { font-size:20px; letter-spacing:.035em; }
.proof-grid { margin-top:25px; }
.service { padding-top:120px; padding-bottom:110px; border-top:1px solid var(--chapter-line); }
.service-intro { grid-template-columns:1.1fr 1fr; gap:5%; margin-bottom:65px; }
.service-intro h2 { font-size:clamp(65px,8.1vw,120px)!important; }
.service-intro h3 { font:400 clamp(26px,2.5vw,37px)/1.75 var(--serif); letter-spacing:.06em; }
.service-intro .section-copy { font-size:15px; color:#a4b8c2; line-height:2; }
.service-gallery-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; border-bottom:1px solid var(--chapter-line); padding-bottom:12px; }
.service-gallery-bar > p { font:500 12px/1.5 var(--ui); letter-spacing:.12em; color:#96aeba; }
.service-motion-controls { margin:0; min-height:44px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; isolation:isolate; }
.service-card { aspect-ratio:auto; min-width:0; display:flex; flex-direction:column; border-radius:3px; border:1px solid #83c3dc24; overflow:hidden; isolation:auto; background:linear-gradient(155deg,#112735,#070e16 75%); }
.service-card.depth-ready { background:linear-gradient(155deg,#11273588,#070e1680 75%); }
.service-card::before { background:radial-gradient(ellipse at 50% 40%,#20799820,transparent 65%); z-index:0; }
.service-card::after { z-index:3; border-radius:inherit; }
.service-card-top { width:100%; padding:18px 20px 0; display:flex; align-items:center; justify-content:space-between; gap:8px; font:500 10px/1.3 var(--ui); letter-spacing:.09em; color:#97b1bf; position:relative; z-index:2; }
.service-card-mark { font-size:21px; font-weight:400; line-height:1; color:#54c9df; }
.service-visual { display:block; position:relative; width:100%; aspect-ratio:1; margin:8px 0 0; }
.service-visual img { width:100%; height:100%; object-fit:contain; padding:8%; transition:opacity .5s; }
.service-card.depth-ready .service-visual img { opacity:0; }
.service-text { display:block; position:relative; inset:auto; padding:8px 22px 22px; width:100%; z-index:2; }
.service-text strong { display:block; font-size:clamp(24px,2.15vw,32px); font-weight:500; line-height:1.15; letter-spacing:-.045em; }
.service-text .service-jp { display:block; margin-top:8px; font-size:13px; color:#bbcbd3; }
.service-text small { display:block; font-size:13px; line-height:1.8; margin-top:17px; color:#a6bdc8; }
.service-open { display:flex; justify-content:space-between; align-items:center; width:calc(100% - 44px); margin:0 22px 19px; border-top:1px solid #a6ddef20; padding-top:12px; font:500 11px/1.4 var(--ui); letter-spacing:.12em; color:#c0d7e1; z-index:2; }
.service-open > span { font-size:19px; line-height:1; transition:transform .5s var(--motion-ease); }
.service-card:hover .service-open > span,.service-card:focus-visible .service-open > span { transform:rotate(90deg); color:var(--cyan); }
.service-depth-canvas { z-index:1; opacity:1; }
.service-outro { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:34px; }
.service-outro>p { font:400 16px/1.8 var(--serif); color:#b5c6ce; }
.kusabi-feature { padding-block:120px 0; background:linear-gradient(180deg,#0b1721,#051018); border-top:1px solid var(--chapter-line); }
.kusabi-top { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.kusabi-copy h2 { font-size:38px!important; letter-spacing:-.035em!important; margin-bottom:32px; }
.kusabi-copy h3 { font:400 clamp(32px,3.8vw,53px)/1.55 var(--serif); margin-top:0; letter-spacing:.07em; }
.kusabi-copy .eyebrow { margin-bottom:24px; color:#7da8bb; }
.kusabi-copy .section-copy { font-size:15px; line-height:2.15; margin-top:26px; color:#a8bec8; }
.kusabi-identity { padding-block:70px; position:relative; background:radial-gradient(ellipse at 50% 50%,#1d4d693d,transparent 68%); }
.kusabi-identity::after { content:''; position:absolute; inset:auto 8% 28px; height:1px; background:linear-gradient(90deg,transparent,#6dcede55,transparent); }
.kusabi-logo { margin:auto; width:100%; min-height:180px; }
.kusabi-model { height:170px; top:0; }
.kusabi-logo>.kusabi-logo-caption { color:#91aeba; font-size:11px; letter-spacing:.13em; margin-top:32px; }
.kusabi-identity-note { font:400 12px/1.5 var(--latin); letter-spacing:.13em; color:#7893a0; text-align:center; margin-top:8px; }
.kusabi-film { margin-top:70px; margin-bottom:0; }
.kusabi-film-button { aspect-ratio:2.12; border-radius:3px; }
.kusabi-film-caption { padding:70px 30px 25px; font-size:12px; }
.chapter-art { position:relative; overflow:hidden; margin:0; }
.chapter-art>img { width:100%; height:100%; object-fit:cover; transform:translate3d(0,var(--art-y,0px),0) scale(1.07); will-change:transform; }
.architecture-art { width:100%; max-width:1800px; margin:38px auto 0; aspect-ratio:2; }
.architecture-art::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#051018,transparent 18%,transparent 80%,#090d10); pointer-events:none; }
.architecture-art figcaption { position:absolute; inset:30% auto auto max(var(--gutter),calc((100vw - 1200px)/2)); max-width:28%; z-index:1; }
.architecture-art figcaption>span { display:block; font:400 clamp(20px,2.4vw,35px)/1.85 var(--serif); letter-spacing:.06em; }
.architecture-art small { display:block; font:500 11px/1.5 var(--ui); letter-spacing:.12em; color:#779cab; margin-top:25px; }
.about { padding-block:130px 110px; gap:50px 9%; }
.about-heading .latin-title { font-size:clamp(75px,9vw,130px); }
.about-heading .eyebrow { margin-bottom:30px; }
.about-location { margin-top:34px; font-size:12px; letter-spacing:.1em; }
.about-copy h3 { font:400 clamp(27px,2.8vw,39px)/1.75 var(--serif); }
.about-copy p { font-size:16px; line-height:2.1; color:#afc0c8; }
.atelier-art { grid-column:1/-1; aspect-ratio:2; border:1px solid #bddbea20; border-radius:3px; }
.atelier-art::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#02090dcc); pointer-events:none; }
.atelier-art figcaption { position:absolute; bottom:25px; left:26px; right:26px; display:flex; justify-content:space-between; gap:20px; font:500 12px/1.5 var(--ui); letter-spacing:.09em; z-index:1; }
.atelier-art small { font-size:10px; color:#aac5d0; }
.about-disciplines { grid-column:1/-1; display:flex; justify-content:space-between; margin-top:-22px; gap:20px; color:#7f9caa; font:500 clamp(13px,2.2vw,28px)/1.3 var(--latin); letter-spacing:-.03em; }
.news { padding-block:100px 110px; border-top:1px solid var(--chapter-line); }
.news .section-intro { align-items:end; margin-bottom:42px; }
.news .eyebrow { margin-bottom:24px; color:#84a9ba; }
.news-label { color:#94adba; font-size:14px; }
.news-list { border-top:1px solid var(--chapter-line); }
.news-row { position:relative; width:100%; min-height:106px; grid-template-columns:125px 85px 1fr 25px; gap:24px; border-color:var(--chapter-line); padding:23px 10px; transition:background .45s,color .45s,padding .45s var(--motion-ease); }
.news-row::before { content:''; position:absolute; inset:auto 0 -1px; height:1px; background:var(--cyan); transform:scaleX(0); transform-origin:left; transition:transform .7s var(--motion-ease); }
.news-row:hover::before,.news-row:focus-visible::before { transform:scaleX(1); }
.news-row:hover { background:linear-gradient(90deg,#12354788,transparent); padding-left:22px; }
.news-row time { font-size:13px; color:#849eac; }
.news-category { background:transparent; border:1px solid #a7cddb45; border-radius:20px; font-size:10px; padding:3px 8px; text-align:center; }
.news-headline { font-size:15px; text-wrap:balance; }
.news-plus { font-size:24px; line-height:1; transition:transform .45s; }
.news-row:hover .news-plus { transform:rotate(90deg); color:var(--cyan); }
.contact { min-height:760px; padding-block:95px 100px; background:#061019; border-top:1px solid var(--chapter-line); }
.contact-art { position:absolute; inset:0; width:100%; height:100%; opacity:.67; z-index:0; }
.contact-art::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#03101cf0,transparent 95%),linear-gradient(0deg,#030b12a0,transparent 55%); }
.contact-art img { object-position:center; }
.contact-top { color:#a3c0cc; margin-bottom:56px; border:0; }
.contact h2 { font:500 clamp(78px,11.2vw,174px)/.94 var(--latin); letter-spacing:-.075em; max-width:1000px; }
.contact h2>span { display:block; color:var(--cyan); }
.contact h2 br { display:none; }
.contact-bottom { margin-top:64px; align-items:end; }
.contact-bottom h3 { font:400 24px/1.8 var(--serif); }
.contact-bottom p { color:#abc4d0; font-size:15px; }
.contact .solid-button { min-height:72px; min-width:330px; font-size:15px; border-radius:2px; }
.footer { padding-block:45px 28px; }
.footer-main { gap:30px; align-items:center; }
.footer-main nav { gap:24px; }
.footer-main nav a { font:500 12px/1.6 var(--ui); letter-spacing:.07em; }
.footer-main .back-top { width:auto; height:auto; border:0; display:inline-flex; gap:18px; align-items:center; font:500 11px/1.5 var(--ui); letter-spacing:.07em; white-space:nowrap; }
.back-top>span { display:grid; place-items:center; width:42px; height:42px; border:1px solid #9cc2d255; border-radius:50%; font-size:18px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--chapter-line); padding-top:22px; margin-top:32px; font:400 10px/1.8 var(--ui); letter-spacing:.04em; color:#86a2b0; }
.footer-bottom button,.footer-bottom small { font:inherit; }
.dialog-image[src*="gallery/"] { object-fit:contain; background:radial-gradient(ellipse,#193747,#071019); height:min(48vh,420px); padding:20px; }
@media(max-width:1000px) {
 .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
 .service-text strong { font-size:30px; }
 .service-visual { aspect-ratio:1.06; }
 .service-intro { gap:25px; }
 .service-intro h2 { font-size:76px!important; }
 .service-intro .section-copy br { display:none; }
 .kusabi-top { gap:4%; }
 .kusabi-copy .section-copy br { display:none; }
 .kusabi-model { height:130px; }
 .kusabi-logo { min-height:150px; }
 .footer-main nav { flex-wrap:wrap; max-width:350px; gap:12px 20px; }
 .contact h2 { font-size:12vw; }
 .contact-bottom { gap:30px; }
 .contact .solid-button { min-width:280px; }
}
@media(max-width:700px) {
 :root { --gutter:24px; }
 .chapter { scroll-margin-top:20px; }
 .chapter .eyebrow { font-size:11px; letter-spacing:.09em; }
 .works { padding-top:60px; }
 .works-heading { display:block; margin-bottom:30px; }
 .works-heading h2 { font-size:clamp(90px,20vw,138px); }
 .works-heading>p { margin-top:30px; font-size:20px; }
 .work-filters { gap:7px; padding-top:0; margin-bottom:24px; flex-wrap:wrap; }
 .work-filters button { font-size:11px; padding:8px 14px; min-height:42px; }
 .work-transition { --stage-height:56vw; }
 .project-grid { grid-template-columns:1fr; gap:54px; }
 .project-image { aspect-ratio:1.35; }
 .project-lead .project-meta { display:block; }
 .project-lead .project-meta dl { margin-top:20px; gap:15px 22px; }
 .project-meta h3 { font-size:27px; }
 .project-context { font-size:12px; }
 .project-type { font-size:10px; }
 .reel-play { gap:12px; font-size:14px; }
 .play-symbol { width:57px; height:57px; font-size:16px; }
 .frame-label { font-size:9px; left:16px; bottom:13px; }
 .works { padding-bottom:70px; }
 .proof { padding-block:56px 70px; }
 .proof-heading { display:block; }
 .proof-heading h2 { margin-top:22px; font-size:24px; }
 .proof-grid { grid-template-columns:1fr; gap:36px; }
 .proof-number strong { font-size:clamp(100px,27vw,165px); }
 .proof-capabilities { padding:28px 0 0; border-left:0; border-top:1px solid var(--chapter-line); display:grid; grid-template-columns:1fr 1.2fr; gap:20px; align-items:center; }
 .proof-capabilities>p { font-size:36px; }
 .proof-capabilities>span { margin-top:0; font-size:13px; }
 .proof-tags { grid-column:1/-1; margin-top:0; }
 .service { padding-block:72px; }
 .service-intro { grid-template-columns:1fr; gap:30px; margin-bottom:32px; }
 .service-intro h2 { font-size:clamp(61px,16vw,105px)!important; }
 .service-intro h3 { font-size:26px; line-height:1.65; }
 .service-intro .section-copy { font-size:14px; }
 .service-gallery-bar { align-items:center; gap:10px; }
 .service-gallery-bar>p { font-size:10px; letter-spacing:.07em; }
 .service-motion-toggle { font-size:11px; padding-left:0; }
 .service-grid { grid-template-columns:1fr; gap:22px; }
 .service-card { max-width:500px; width:100%; margin-inline:auto; }
 .service-card-top { padding:18px 22px 0; font-size:10px; }
 .service-visual { aspect-ratio:1.15; }
 .service-text { padding-top:0; }
 .service-text strong { font-size:30px; }
 .service-text small { font-size:13px; margin-top:13px; }
 .service-outro { flex-direction:column; align-items:start; gap:20px; margin-top:30px; }
 .service-outro>p { font-size:15px; }
 .service-outro .outline-button { width:100%; }
 .kusabi-feature { padding-top:75px; }
 .kusabi-top { grid-template-columns:1fr; gap:14px; }
 .kusabi-copy h2 { font-size:32px!important; margin-bottom:23px; }
 .kusabi-copy h3 { font-size:38px; }
 .kusabi-copy .section-copy { font-size:14px; }
 .kusabi-identity { padding-block:35px 40px; }
 .kusabi-logo { max-width:360px; min-height:120px; }
 .kusabi-model { height:125px; }
 .kusabi-identity-note { margin-top:10px; font-size:10px; }
 .kusabi-film { margin-top:15px; }
 .kusabi-film-button { aspect-ratio:1.5; }
 .kusabi-film-caption { padding:50px 17px 18px; font-size:10px; }
 .architecture-art { aspect-ratio:1.08; margin-top:30px; }
 .architecture-art>img { object-position:65% 50%; }
 .architecture-art figcaption { inset:auto 24px 38px; max-width:none; }
 .architecture-art figcaption>span { font-size:23px; text-shadow:0 2px 20px #000; }
 .architecture-art small { font-size:9px; margin-top:15px; }
 .architecture-art::after { background:linear-gradient(0deg,#090d10,transparent 65%),linear-gradient(180deg,#051018,transparent 20%); }
 .about { padding-block:75px; grid-template-columns:1fr; gap:35px; }
 .about-heading .latin-title { font-size:clamp(76px,18vw,115px); }
 .about-location { font-size:11px; margin-top:22px; }
 .about-copy h3 { font-size:27px; }
 .about-copy p { font-size:14px; }
 .about-copy p br { display:none; }
 .atelier-art { aspect-ratio:1.7; margin-inline:-24px; width:calc(100% + 48px); border-radius:0; }
 .atelier-art>img { object-position:50% 50%; }
 .atelier-art figcaption { font-size:10px; bottom:20px; left:24px; }
 .atelier-art small { display:none; }
 .about-disciplines { margin-top:-10px; gap:10px; font-size:13px; }
 .news { padding-block:65px; }
 .news .section-intro { margin-bottom:30px; }
 .news .latin-title { font-size:80px; }
 .news-row { min-height:125px; grid-template-columns:100px 1fr 25px; gap:8px 14px; padding:20px 0; }
 .news-category { justify-self:start; font-size:9px; }
 .news-headline { grid-column:1/3; font-size:14px; line-height:1.8; padding-top:7px; }
 .news-plus { grid-column:3; grid-row:1/3; }
 .news-row:hover { padding-left:8px; }
 .contact { min-height:710px; padding-block:62px 68px; }
 .contact-top { margin-bottom:40px; }
 .contact-top>span { display:none; }
 .contact h2 { font-size:clamp(56px,13.5vw,92px); line-height:1; letter-spacing:-.065em; }
 .contact-art>img { object-position:62% 50%; }
 .contact-art { opacity:.56; }
 .contact-art::after { background:linear-gradient(90deg,#03101cd9,transparent),linear-gradient(0deg,#03101ce0,transparent 70%); }
 .contact-bottom { flex-direction:column; align-items:start; margin-top:62px; gap:30px; }
 .contact-bottom h3 { font-size:21px; }
 .contact-bottom p { font-size:14px; }
 .contact .solid-button { min-width:0; width:100%; min-height:64px; font-size:14px; }
 .footer-main { flex-wrap:wrap; align-items:start; gap:26px 18px; }
 .footer-main .logo { order:0; font-size:38px; }
 .footer-main .back-top { order:1; margin-left:auto; font-size:9px; gap:10px; }
 .footer-main nav { order:2; width:100%; max-width:none; gap:18px; }
 .footer-main nav a { font-size:10px; }
 .footer-bottom { flex-wrap:wrap; font-size:9px; gap:13px 22px; }
 .footer-bottom>span { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
 .hero.scene-ready .hero-content { animation:none; }
 .work-stage { clip-path:none!important; transform:none!important; will-change:auto; }
 .chapter-art>img { transform:none!important; will-change:auto; }
 .service-open>span,.news-plus,.news-row::before { transition:none; }
}
