@font-face{font-family:Instrument;src:url('assets/instrument-serif.woff2');font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url('assets/instrument-serif-italic.woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.woff2');font-weight:200 800;font-display:swap}
:root{--paper:#f5f5f2;--ink:#242424;--blue:#2143a5;--rule:#2143a52b}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:1px solid var(--blue);outline-offset:7px}
::selection{background:var(--blue);color:var(--paper)}
h1,h2,h3,p{margin:0}
em{font-weight:400;color:var(--blue)}
.header{padding:34px 5vw 26px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{width:160px;display:block}
.brand img{display:block;width:100%;height:auto}
.header nav{display:flex;gap:32px;font-size:14px}
.header nav a{position:relative;padding:6px 0}
.header nav a:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .4s}
.header nav a:hover:after{transform:scaleX(1);transform-origin:left}
.overline{font-size:12px;letter-spacing:.04em;line-height:1.6}
.hero{min-height:calc(100svh - 105px);padding:40px 5vw 40px;display:flex;flex-direction:column;justify-content:center}
.hero-stage{position:relative}
.hero-heading{position:relative}
.hero-heading>.overline{display:block;margin-bottom:36px;opacity:var(--hero-meta-alpha,1)}
.hero h1{font-family:Instrument,Georgia,serif;font-weight:400;font-size:clamp(110px,16.3vw,290px);line-height:.92;letter-spacing:-.035em;padding-bottom:.06em;perspective:1600px;perspective-origin:50% 65%}
.hero-line{display:block;white-space:nowrap;transform-origin:50% 65%;transform-style:preserve-3d}
.line-one{transform:translate3d(var(--row-one-x,0px),var(--row-one-y,0px),0) rotateX(calc(var(--row-one-turn,0deg) + var(--type-pitch,0deg))) rotateY(var(--type-yaw,0deg))}
.line-two{margin-left:12vw;margin-top:6px;transform:translate3d(var(--row-two-x,0px),var(--row-two-y,0px),0) rotateX(calc(var(--row-two-turn,0deg) + var(--type-pitch,0deg))) rotateY(calc(var(--type-yaw,0deg) * -.65))}
.hero-ink{display:inline-block}
.ampersand{font-size:.69em;letter-spacing:-.08em;display:inline-block;margin-right:.035em}
/* Live font glyphs follow one curved plane. Native text keeps the exact
   kerning, document semantics, selection and intrinsic responsive layout. */
.type-word,.hero-ink{transform-style:preserve-3d}
.type-word{position:relative;display:inline-block}
.type-source{display:inline-block}
.type-glyphs{position:absolute;inset:0;display:none;pointer-events:none;user-select:none;-webkit-user-select:none;transform-style:preserve-3d}
.type-glyph{position:absolute;top:0;display:block;letter-spacing:0;font-kerning:none;transform-origin:50% 78%;white-space:pre}
.motion-ready .type-word.is-set .type-source{color:transparent}
.motion-ready .type-word.is-set .type-glyphs{display:block}
.hero.is-measuring .hero-line{transform:none!important}
.hero-bottom{display:grid;grid-template-columns:1.2fr 1fr .8fr;align-items:end;gap:4vw;margin-top:52px}
.hero-bottom>p{font-size:16px;line-height:1.7;max-width:380px}
.hero-signature{font-size:13px;line-height:1.8;text-align:right;color:var(--blue)}
.scroll-cue{justify-self:center;display:flex;align-items:center;gap:24px;font-size:14px;min-height:48px}
.scroll-stem{display:block;width:1px;height:38px;background:var(--blue);transform-origin:top;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.scroll-cue:hover .scroll-stem{transform:scaleY(1.3)}
.motion-ready .hero-bottom,.motion-ready .header{animation:quiet-arrive 1.2s ease both}
.motion-ready .hero-bottom{animation-delay:.2s}
@keyframes quiet-arrive{from{opacity:0}to{opacity:1}}

/* The blue chapter naturally covers the pinned typography. No mask,
   canvas capture, background filter or synthetic scroll container. */
.studio-chapter{margin-top:80px;position:relative;background:var(--blue);z-index:3}
.studio{min-height:85svh;display:flex;align-items:center;position:relative;background:var(--blue);color:var(--paper);padding:95px 5vw 90px;overflow:clip;isolation:isolate}
.studio-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:center;gap:6vw;width:100%}
.studio h2{font:400 clamp(100px,14.4vw,250px)/.94 Instrument,Georgia,serif;letter-spacing:-.03em}
.project-link{position:relative;display:block;width:max-content;max-width:100%;padding-right:.12em;transform:translate(var(--project-nudge-x,0px),var(--project-nudge-y,0px))}
.studio-word{display:block;transform:translateX(var(--studio-upright,0px))}
.studio h2 em{position:relative;display:block;width:max-content;white-space:nowrap;color:var(--paper);margin-left:4.5vw;margin-top:.05em;padding-bottom:.23em;transform:translateX(var(--studio-italic,0px))}
.project-mark{position:absolute;right:-.04em;top:-.04em;font-size:.52em;line-height:1;pointer-events:none;transform:rotate(var(--project-turn,-15deg));transition:color .35s}
.project-link:hover .project-mark{color:#f5f5f2aa}
.project-action{display:block;font:400 14px/1.7 Manrope,Arial,sans-serif;letter-spacing:0;margin-left:4.5vw;margin-top:4px;padding:10px 0}
.studio a:focus-visible{outline:1px solid var(--paper);outline-offset:10px}
.studio-copy{max-width:365px;padding:15px 0}
.studio-copy>p{font-size:clamp(18px,1.45vw,24px);line-height:1.7;letter-spacing:-.015em}
.request-cta{position:relative;display:inline-block;margin-top:30px;background:var(--paper);color:var(--blue);padding:16px 22px;font-size:16px;transition:background .3s,translate .3s}
.request-cta:hover{background:#e9ebf2;translate:0 -2px}
.contact-direct{margin-top:36px}
.contact-direct>span{display:block;font-size:14px;line-height:1.6;margin-bottom:8px;color:#f5f5f2b8}
.contact-number{display:inline-block;font-size:clamp(24px,2.15vw,38px);line-height:1.5;letter-spacing:-.04em;white-space:nowrap}
.contact-number:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}

.expertise{padding:120px 5vw 25px}
.expertise-top{display:flex;justify-content:space-between;gap:30px;margin-bottom:50px;padding-bottom:22px}
.edition{font-size:13px;color:var(--blue)}
.discipline{display:grid;grid-template-columns:16% 42% 42%;align-items:center;padding:45px 0 80px;position:relative}
.discipline-label{align-self:start;display:flex;align-items:baseline;gap:14px;color:var(--blue);padding-top:15px}
.discipline-label>span{font-size:13px}
.discipline-label h2{font-size:18px;font-weight:400}
.discipline-copy{max-width:365px;padding-left:35px}
.discipline-copy h3{font:400 clamp(50px,4.5vw,82px)/1.04 Instrument,Georgia,serif;letter-spacing:-.02em}
.discipline-copy p{font-size:16px;line-height:1.8;margin-top:25px}
.scope{display:block;font-size:13px;line-height:1.7;margin-top:25px;color:var(--blue)}
.type-study{position:relative;height:400px;font-family:Instrument,Georgia,serif;color:var(--blue);display:flex;align-items:center;justify-content:center;isolation:isolate}
.study-upright,.study-italic{font-size:clamp(150px,20vw,360px);line-height:1;transform-origin:50% 65%;will-change:transform}
.study-upright{transform:translate(calc(-10% + var(--letter-spread,0px)),calc(-8% + var(--letter-rise,0px))) rotate(var(--letter-angle,0deg))}
.study-italic{position:absolute;font-style:italic;color:var(--paper);-webkit-text-stroke:1px var(--blue);transform:translate(calc(10% - var(--letter-spread,0px)),calc(8% - var(--letter-rise,0px))) rotate(calc(var(--letter-angle,0deg) * -1))}
.type-caption{position:absolute;bottom:0;font:400 13px/1.6 Manrope,Arial,sans-serif}
.digital{padding-top:100px}
.digital-study{font-family:Instrument,Georgia,serif;color:var(--blue);container-type:inline-size;padding:.15em 14px .25em;overflow:visible;transform:translateY(var(--digital-rise,0px))}
.digital-word{display:block;position:relative;white-space:nowrap;font-size:clamp(36px,19cqi,100px);line-height:1.25;padding-bottom:.12em;will-change:transform}
.word-one{transform:translateX(var(--word-one-x,0px))}
.word-two{font-style:italic;transform:translateX(var(--word-two-x,0px));color:var(--paper);-webkit-text-stroke:1px var(--blue)}
.word-three{transform:translateX(var(--word-three-x,0px))}
.endnote{margin:25px 5vw 0;padding:90px 0 40px;display:flex;align-items:flex-end;justify-content:space-between;gap:50px}
.endnote>p{font:400 clamp(55px,5.4vw,95px)/1.05 Instrument,Georgia,serif;transform:translateY(var(--end-rise,0px))}
.colophon{font-size:13px;line-height:1.8;text-align:right}
.colophon>span{display:block;color:var(--blue);margin-bottom:10px}
.colophon a{display:inline-block;margin-top:24px;padding-bottom:3px}
.colophon .footer-phone{font-size:16px;color:var(--blue);margin-top:18px}
.colophon a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.motion-reveal{opacity:0;transform:translateY(26px);transition:opacity .95s ease,transform 1.15s cubic-bezier(.16,1,.3,1)}
.motion-reveal.is-visible{opacity:1;transform:translateY(0)}
.motion-reveal:focus-within{opacity:1;transform:none}
html.scroll-inertia{scroll-behavior:auto}

.cursor-dot,.cursor-halo{position:fixed;top:0;left:0;pointer-events:none;z-index:1000;opacity:0;border-radius:50%;transform:translate(-50%,-50%)}
.cursor-dot{width:6px;height:6px;background:var(--blue)}
.cursor-halo{width:28px;height:28px;border:1px solid #2143a565;transition:width .4s,height .4s,border-color .4s,background .4s}
.cursor-hover .cursor-halo{width:45px;height:45px;background:#2143a50b}
.cursor-in-contact .cursor-dot{background:var(--paper)}
.cursor-in-contact .cursor-halo{border-color:#f5f5f280}
.cursor-in-contact.cursor-hover .cursor-halo{background:#f5f5f210}
@media(hover:hover) and (pointer:fine){.cursor-active,.cursor-active a,.cursor-active button{cursor:none}.cursor-active .cursor-dot,.cursor-active .cursor-halo{opacity:1}}
@media(min-width:901px) and (min-height:650px) and (prefers-reduced-motion:no-preference){
  .motion-cinema .header{position:absolute;inset:0 0 auto;z-index:6}
  .motion-cinema .hero-stage{height:230svh}
  .motion-cinema .hero{position:sticky;top:0;min-height:100svh;padding-top:calc(40px + var(--hero-head-space,105px));background:var(--paper)}
  .motion-cinema .studio-chapter{margin-top:-100svh}
  .motion-ready .studio-chapter{height:150svh}
  .motion-ready .studio-chapter .studio{position:sticky;top:0;min-height:100svh}
  .discipline{min-height:85svh}
  .discipline-label{position:sticky;top:10vh}
}
@media(max-width:900px){
  .hero{padding-top:50px}.hero h1{font-size:17vw;perspective:1100px}.line-two{margin-left:9vw}
  .hero-bottom{grid-template-columns:1.4fr 1fr;gap:30px}.hero-signature{display:none}.scroll-cue{justify-self:end}
  .studio-body{grid-template-columns:1fr;gap:48px}.studio h2{font-size:23vw}.studio-copy{margin-left:auto;max-width:480px}
  .contact-number{font-size:30px}.studio{padding:70px 5vw;min-height:85svh}
  .discipline{grid-template-columns:15% 45% 40%;padding-top:55px;padding-bottom:90px}
  .discipline-label{display:block}.discipline-label h2{margin-top:12px;font-size:16px}
  .discipline-copy{padding-left:15px}.discipline-copy h3{font-size:6vw}.type-study{height:300px}
}
@media(max-width:600px){
  .header{padding:28px 6vw 20px;gap:15px}.brand{width:125px}.header nav{font-size:14px;gap:20px}
  .hero{padding:60px 6vw 38px;min-height:calc(90svh - 80px);justify-content:space-between}
  .overline{font-size:12px;line-height:1.6;max-width:255px;display:block}
  .hero-heading>.overline{margin-bottom:45px}.hero h1{font-size:18.1vw;line-height:.96;perspective:700px}
  .line-two{margin-left:2vw;margin-top:10px}.hero-bottom{grid-template-columns:1fr;margin-top:48px;gap:26px}
  .hero-bottom>p{max-width:320px;font-size:16px}.scroll-cue{justify-self:start;gap:24px}
  .studio-chapter{margin-top:42px}.studio{padding:60px 6vw 65px;min-height:85svh}
  .studio-body{gap:38px}.studio h2{font-size:25vw}.studio h2 em,.project-action{margin-left:4vw}
  .studio-copy{margin-left:0;max-width:none}.studio-copy>p{font-size:18px}.contact-number{font-size:27px}
  .project-action{margin-top:0}.contact-direct{margin-top:30px}
  .expertise{padding:75px 6vw 15px}.expertise-top{margin-bottom:25px;align-items:start}.edition{display:none}
  .discipline{grid-template-columns:1fr;padding:25px 0 65px}
  .discipline-label{display:flex;padding:0;gap:15px}.discipline-label h2{margin:0;font-size:18px}
  .type-study{height:330px;margin-top:15px}.study-upright,.study-italic{font-size:59vw}
  .discipline-copy{padding:0;margin-top:40px;max-width:340px}.discipline-copy h3{font-size:14vw}
  .digital{padding-top:45px}.digital-study{margin-top:35px;padding-left:12px;padding-right:12px}
  .digital .discipline-copy{margin-top:20px}.digital-word{font-size:21cqi}
  .endnote{margin:0 6vw;padding:55px 0 35px;flex-direction:column;align-items:flex-start;gap:45px}
  .endnote>p{font-size:15vw}.colophon{align-self:flex-end}.cursor-dot,.cursor-halo{display:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}
  .type-glyphs{display:none!important}.type-word.is-set .type-source{color:inherit!important}
  .hero-heading,.hero-line,.studio-word,.studio h2 em,.project-link,.digital-study,.digital-word,.endnote>p{transform:none;translate:none}
  .studio{clip-path:none}.motion-reveal{opacity:1;transform:none}.cursor-halo{display:none}
  .study-upright{transform:translate(-10%,-8%)}.study-italic{transform:translate(10%,8%)}
  .hero-heading,.hero-bottom,.header{opacity:1}
  .hero-heading>.overline{opacity:1}
}
.request-section{padding:120px 5vw 100px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:8vw;scroll-margin-top:40px}
.request-intro h2{font:400 clamp(65px,7.3vw,130px)/.98 Instrument,Georgia,serif;letter-spacing:-.03em;margin-top:30px}
.request-intro>p{font-size:16px;line-height:1.75;max-width:340px;margin-top:30px}
.request-phone{display:inline-block;color:var(--blue);font-size:18px;margin-top:30px}
.request-form{padding-top:10px}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 25px}
.request-form label{display:block;font-size:14px;line-height:1.6}
.request-form label>span{font-size:12px;color:#606060}
.request-form input,.request-form select,.request-form textarea{display:block;width:100%;font:400 16px/1.5 Manrope,Arial,sans-serif;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #24242450;border-radius:0;padding:13px 0;margin-top:8px;min-height:50px;transition:border-color .25s}
.request-form input::placeholder,.request-form textarea::placeholder{color:#666;opacity:1}
.request-form input:focus,.request-form select:focus,.request-form textarea:focus{outline:none;border-bottom-color:var(--blue);box-shadow:0 1px 0 var(--blue)}
.request-form select{padding-right:16px}
.request-form textarea{resize:vertical;min-height:145px}
.field-wide{grid-column:1/-1}
.request-form .form-trap{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(100%)}
.form-bottom{margin-top:35px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.form-bottom>p{font-size:12px;line-height:1.6;max-width:240px;color:#555}
.request-submit{appearance:none;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:58px;padding:14px 24px;border:0;background:var(--blue);color:var(--paper);font:400 16px/1.5 Manrope,Arial,sans-serif;cursor:pointer;transition:background .25s,transform .3s;white-space:nowrap}
.request-submit>span{font:400 34px/.7 Instrument,Georgia,serif;transition:transform .5s}
.request-submit:hover{background:#173687;transform:translateY(-2px)}
.request-submit:hover>span{transform:rotate(75deg)}
.request-submit:focus-visible{outline:1px solid var(--blue);outline-offset:5px}
.request-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.form-status{margin-top:22px;font-size:16px;line-height:1.7;color:var(--blue)}
.form-status:empty{display:none}
.form-status.is-error{color:#9f2727}
.request-form.is-complete .form-grid,.request-form.is-complete .form-bottom{display:none}
.request-form.is-complete .form-status{font:400 40px/1.2 Instrument,Georgia,serif;padding-top:30px}
@media(max-width:1000px){.request-section{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:5vw}.form-bottom{align-items:flex-start;flex-direction:column}.form-bottom>p{max-width:340px}}
@media(max-width:700px){.request-section{grid-template-columns:1fr;gap:50px;padding:75px 6vw 70px}.request-intro h2{font-size:17vw}.request-intro>p{max-width:360px}.form-grid{gap:24px 20px}.request-form label>span{display:block}.request-form input,.request-form select,.request-form textarea{margin-top:5px}.request-submit{width:100%}.request-intro{max-width:100%}}
@media(max-width:400px){.form-grid{grid-template-columns:1fr}.request-form label>span{display:inline}.request-form.is-complete .form-status{font-size:34px}}
