:root{color-scheme:light;--paper: #fff;--header-surface: rgb(255 255 255 / 90%);--pressed-surface: #ece7e1;--logo-filter: none;--logo-accent: #a22818;--character-edge: drop-shadow(0 0 0 transparent);--control-border: var(--rule);--ease-out: cubic-bezier(.23, 1, .32, 1);--contact-duration: .16s;--theme-icon-duration: .2s;--ink: #111111;--ink-soft: #3b3733;--signal-red: #e2493a;--red-deep: #c8321f;--wash: #f6f4f1;--rule: #e6e1dc;--muted: #625c57;--halftone: rgb(17 17 17 / 16%);--font-display: "Aoboshi One", Georgia, serif;--font-text: "Google Sans", system-ui, sans-serif;--font-utility: "Geist Mono", ui-monospace, monospace;--text-body: clamp(1.0625rem, 1.3vw, 1.25rem);--text-lead: clamp(1.5rem, 2vw, 1.75rem);--text-label: .75rem;--text-name: clamp(5.25rem, 15vw, 13.5rem);--text-page: clamp(3.5rem, 8.6vw, 7.75rem);--text-section: clamp(2.75rem, 6.1vw, 5.5rem);--text-card: 2.5rem;--leading-name: .94;--leading-display: 1.04;--leading-body: 1.5;--leading-lead: 1.3;--tracking-display: -.02em;--tracking-label: .08em;--space-half: .25rem;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-8: 4rem;--space-12: 6rem;--space-18: 9rem;--content-width: 80rem;--grid-columns: 12;--grid-gap: 1.5rem;--page-gutter: clamp(1rem, 5.556vw, 5rem);--section-gap: 6rem;--focus-width: 2px;--focus-offset: 4px;--ink-draw-duration: .28s;--ink-draw-ease: cubic-bezier(.2, .7, .2, 1);--count-up-duration: .9s;--reduced-duration: .2s}@media(max-width:900px){:root{--section-gap: 4rem}}@media(max-width:600px){:root{--page-gutter: 1rem;--section-gap: 2.5rem}}:root[data-theme=dark]{color-scheme:dark;--paper: #212120;--ink: #f4f0ea;--ink-soft: #d5cec6;--signal-red: #f58170;--red-deep: #ff9a89;--wash: #2c2b29;--rule: #494540;--muted: #bab2a9;--halftone: rgb(244 240 234 / 13%);--header-surface: rgb(33 33 32 / 92%);--pressed-surface: #393632;--logo-filter: invert(1);--logo-accent: var(--signal-red);--character-edge: drop-shadow(0 0 .65px rgb(244 240 234 / 60%));--control-border: #8b837b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper: #212120;--ink: #f4f0ea;--ink-soft: #d5cec6;--signal-red: #f58170;--red-deep: #ff9a89;--wash: #2c2b29;--rule: #494540;--muted: #bab2a9;--halftone: rgb(244 240 234 / 13%);--header-surface: rgb(33 33 32 / 92%);--pressed-surface: #393632;--logo-filter: invert(1);--logo-accent: var(--signal-red);--character-edge: drop-shadow(0 0 .65px rgb(244 240 234 / 60%));--control-border: #8b837b}}*{box-sizing:border-box}html{scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--text-body)/var(--leading-body) var(--font-text);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit;text-underline-offset:.2em}button,input{font:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:var(--focus-width) solid var(--ink);outline-offset:var(--focus-offset)}main:focus{outline:none}.container{width:min(var(--content-width),calc(100% - var(--page-gutter) * 2));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;background:var(--paper);padding:1rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.display{font-family:var(--font-display);font-weight:400;line-height:var(--leading-display);letter-spacing:var(--tracking-display)}.label{font:400 var(--text-label)/1.5 var(--font-utility);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--muted)}.lead{font-size:var(--text-lead);line-height:var(--leading-lead);letter-spacing:-.01em;max-width:36rem}.ink-link{position:relative;display:inline-block;text-decoration:none;padding-block:.25rem}.ink-link:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:currentColor;transform-origin:left;transition:transform var(--ink-draw-duration) var(--ink-draw-ease)}@media(hover:hover)and (pointer:fine){.ink-link:hover{color:var(--red-deep)}.ink-link:hover:after{transform:scaleX(0);transform-origin:right}}.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:.75rem 1.375rem;background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);border-radius:999px;text-decoration:none;font-size:1rem;font-weight:500;transition:transform .1s cubic-bezier(.23,1,.32,1)}.button:active{transform:scale(.97);transition-duration:.16s}.button:focus-visible:active{transform:none}.button-secondary{background:var(--paper);color:var(--ink)}.text-button{padding:0;border:0;background:none;color:var(--ink);text-decoration:underline}.halftone{background-image:radial-gradient(var(--halftone) 1.1px,transparent 1.4px);background-size:7px 7px}.site-header{position:sticky;top:0;z-index:20;background:var(--header-surface);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid var(--rule)}.nav{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;min-height:80px;padding-block:1rem}.wordmark{display:inline-flex;align-items:center;flex-shrink:0;min-height:44px;text-decoration:none}.jtc-logo{position:relative;width:74px;aspect-ratio:23 / 12}.jtc-logo:before,.jtc-logo:after{content:"";position:absolute;inset:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none}.jtc-logo:before{background:var(--ink);-webkit-mask-image:url(/images/jtc-ink.svg);mask-image:url(/images/jtc-ink.svg)}.jtc-logo:after{background:var(--logo-accent);-webkit-mask-image:url(/images/jtc-corner.svg);mask-image:url(/images/jtc-corner.svg);transition:transform .18s var(--ease-out)}.wordmark:focus-visible .jtc-logo:after{transform:translate(2px,-2px)}@media(hover:hover){.wordmark:hover .jtc-logo:after{transform:translate(2px,-2px)}}@media(prefers-reduced-motion:reduce){.jtc-logo:after{transition:none}.wordmark:hover .jtc-logo:after,.wordmark:focus-visible .jtc-logo:after{transform:none}}@media(forced-colors:active){.jtc-logo:before,.jtc-logo:after{background:CanvasText;forced-color-adjust:none}}.nav-links{margin-left:auto;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:1.75rem;font-size:1rem}.nav-links>.ink-link{font-weight:500}.nav-links>.ink-link:after{transform:scaleX(0)}.nav-links>.ink-link[aria-current=page]:after,.nav-links>.ink-link:focus-visible:after{transform:scaleX(1)}@media(hover:hover){.nav-links>.ink-link:hover:after{transform:scaleX(1);transform-origin:left}}.nav-links [aria-current=page]{color:var(--red-deep)}.nav-contact{min-height:44px;padding:.5rem 1.125rem}.hero{padding-block:4.5rem var(--section-gap)}.hero-kicker{margin-bottom:3rem}.hero-name{color:var(--signal-red);font-size:var(--text-name);line-height:var(--leading-name);letter-spacing:-.01em;text-transform:uppercase}.hero-intro{margin-top:3rem}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:1.75rem}.work-band{background:var(--wash);border-block:1px solid var(--rule)}.section-space{padding-block:var(--section-gap)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:3rem}.section-title{font-size:var(--text-section)}.project-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem;padding:0;margin:0;list-style:none}.project-index li{min-width:0;border-top:1px solid var(--rule)}.project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.75rem 1rem;padding-block:1.75rem;text-decoration:none}.project-name{font:400 clamp(1.75rem,2.3vw,2.5rem)/1.1 var(--font-display);letter-spacing:-.015em}.project-company{grid-column:1}.project-arrow{grid-column:2;grid-row:1;font-size:1.5rem}.project-row:hover .project-name{color:var(--red-deep)}.page-shell{min-height:60vh;padding-block:var(--section-gap)}.page-shell>.label{margin-bottom:1.5rem}.page-title{font-size:var(--text-page);margin-bottom:3rem;max-width:64rem;overflow-wrap:anywhere}.page-shell>p:not(.label){margin-bottom:2rem}.shell-description{max-width:36rem}.content-notice{margin-block:1rem;padding:1rem;border:1px solid var(--rule);font-size:1rem}.site-footer{border-top:1px solid var(--rule)}.footer-main{padding-block:var(--section-gap) 3rem}.footer-main>.label{margin-bottom:2rem}.footer-title{color:var(--signal-red);text-transform:uppercase;font-size:clamp(4.5rem,11vw,10.5rem);line-height:.9}.contact-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:1.25rem 2rem;margin-top:2.25rem;font-size:1rem}.email{font-size:inherit}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;border-top:1px solid var(--rule);padding-block:1.5rem 2.5rem;color:var(--muted);font-size:.875rem}@media(min-width:1100px){.hero-kicker,.hero-name,.hero-intro{margin-left:25%}}@media(max-width:700px){.nav{flex-wrap:wrap;gap:.75rem;padding-block:.75rem}.nav-links{gap:1rem;font-size:.9375rem;flex:1;justify-content:flex-end}.nav-links .ink-link{display:inline-flex;align-items:center;min-height:44px}.nav-contact{display:none}.hero{padding-top:2.5rem}.hero-kicker{font-size:.6875rem;margin-bottom:2rem}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.hero-actions>:first-child{grid-column:1 / -1}.hero-actions>.ink-link{justify-self:center}.project-index{grid-template-columns:1fr}.section-heading{flex-wrap:wrap;margin-bottom:2rem}.footer-bottom{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:opacity var(--reduced-duration) linear!important}.button:active,.ink-link:hover:after{transform:none}}.footer-main{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:2rem;align-items:end}.footer-copy>.label{margin-bottom:2rem}.wave-character{position:relative;width:200px;height:auto;justify-self:end}.wave-character>img{width:100%;height:auto}.wave-character>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.wave-character[data-waving]>img{visibility:hidden}.wave-hand{transform-origin:520px 336px}@media(max-width:700px){.footer-main{grid-template-columns:1fr}.wave-character{width:120px}}::view-transition-group(*){animation-duration:.28s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}@media(prefers-reduced-motion:reduce){[style*=view-transition-name]{view-transition-name:none!important}::view-transition-group(root){animation:none!important}::view-transition-old(root){animation:page-fade-out .2s linear both!important}::view-transition-new(root){animation:page-fade-in .2s linear both!important}}@keyframes page-fade-out{to{opacity:0}}@keyframes page-fade-in{0%{opacity:0}}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation-duration:.1s}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.site-header{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-contrast:more){.site-header{border-bottom-color:var(--ink)}}.work-list-link:active,.figure-open:active{background-color:var(--pressed-surface)}.menu-toggle{display:none;width:44px;height:44px;padding:10px;border:0;background:transparent;color:var(--ink);align-items:center;justify-content:center}.menu-icon{position:relative;width:24px;height:18px}.menu-icon:before,.menu-icon:after{content:"";position:absolute;left:0;width:24px;height:2px;background:currentColor;transition:transform .28s cubic-bezier(.22,1,.36,1)}.menu-icon:before{top:4px}.menu-icon:after{bottom:4px}.menu-toggle[aria-expanded=true] .menu-icon:before{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon:after{transform:translateY(-4px) rotate(-45deg)}.mobile-menu{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;border:0;background:transparent;color:var(--ink);overflow:hidden}.mobile-menu[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.mobile-menu::backdrop{background:transparent}.mobile-menu-chrome{position:relative;z-index:1;background:var(--paper);border-bottom:1px solid var(--rule)}.mobile-menu-viewport{min-height:0;overflow:hidden}.mobile-menu-sheet{height:100%;background:var(--paper);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(2rem,env(safe-area-inset-bottom))}html:has(.mobile-menu[open]),body:has(.mobile-menu[open]){overflow:hidden}.mobile-menu-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:80px;padding-block:.75rem}.mobile-menu-header .wordmark{grid-column:2}.mobile-menu-header .menu-toggle{display:flex;justify-self:end}.mobile-menu-links{display:flex;flex-direction:column;padding-top:clamp(2rem,8dvh,5rem)}.mobile-menu-links>a{display:block;width:100%;min-height:44px;padding:.625rem 0;border:0;border-radius:0;background:none;font:400 clamp(2.125rem,8vw,3.5rem)/1.15 var(--font-display);text-decoration:none;text-transform:uppercase;letter-spacing:-.02em;color:var(--ink)}.mobile-menu-links>a:after{display:none}.mobile-menu-links>a[aria-current=page]{color:var(--red-deep)}@media(hover:hover){.mobile-menu-links>a:hover{color:var(--red-deep)}}@media(max-width:700px){.nav{display:grid;grid-template-columns:1fr auto 1fr;gap:0;min-height:80px}.nav>.wordmark{grid-column:2}.nav>.menu-toggle{display:flex;justify-self:end}.nav>.nav-links{display:none}.menu-fallback .nav-links{display:flex;grid-column:1 / -1;justify-content:center;flex-wrap:wrap}.menu-fallback .menu-toggle{display:none}}.page-wipe [style*=view-transition-name]{view-transition-name:none!important}.page-wipe::view-transition{background:#171717}.page-wipe::view-transition-group(root){animation:none}.page-wipe::view-transition-image-pair(root){isolation:auto}.page-wipe::view-transition-old(root),.page-wipe::view-transition-new(root){mix-blend-mode:normal}.page-wipe::view-transition-old(root){animation:wipe-cover .42s cubic-bezier(.65,0,.35,1) both}.page-wipe::view-transition-new(root){animation:wipe-reveal .5s 1.3s cubic-bezier(.22,1,.36,1) both}@keyframes wipe-cover{0%{clip-path:inset(0)}to{clip-path:inset(0 0 100% 0)}}@keyframes wipe-reveal{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}@media(prefers-reduced-motion:reduce){.page-wipe::view-transition{background:var(--paper)}.page-wipe::view-transition-old(root){animation:page-fade-out .16s linear both!important}.page-wipe::view-transition-new(root){animation:page-fade-in .16s linear both!important}}.wipe-title{position:fixed;inset:0;display:grid;place-content:center;padding:2rem;color:#fff;text-align:center;font:400 clamp(2rem,7vw,6rem)/1.1 var(--font-display);letter-spacing:-.02em;pointer-events:none;opacity:0;view-transition-name:wipe-title}.page-wipe:active-view-transition .wipe-title{opacity:1}::view-transition-group(wipe-title){z-index:1;animation:wipe-title 1.8s both}::view-transition-old(wipe-title){display:none}::view-transition-new(wipe-title){animation:none;opacity:1}@keyframes wipe-title{0%,25%{opacity:0}32%,62%{opacity:1}71%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.wipe-title{display:none}::view-transition-group(wipe-title){display:none}}@media(scripting:none)and (max-width:700px){.nav>.menu-toggle{display:none}.nav>.nav-links{display:flex;grid-column:1 / -1;justify-content:center;flex-wrap:wrap}}.contact-button{position:relative;isolation:isolate;overflow:hidden;transition:transform var(--contact-duration) var(--ease-out)}.contact-button>span{position:relative;z-index:1}.contact-button:before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--red-deep);opacity:0;transition:opacity var(--contact-duration) ease}.contact-button:focus-visible:before{opacity:1}@media(hover:hover)and (pointer:fine){.contact-button:hover:before{opacity:1}.contact-button:hover{transform:translateY(-2px)}.contact-button:active{transform:scale(.97)}}.contact-button:focus-visible:active{transform:none}.mobile-menu-links>.contact-button{overflow:visible;transform:none}.mobile-menu-links>.contact-button:before{display:none}.theme-toggle{position:relative;flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink);cursor:pointer}.theme-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.theme-input:focus-visible+.theme-icon{outline:var(--focus-width) solid var(--ink);outline-offset:8px;border-radius:50%}.theme-icon{position:relative;width:22px;height:22px;pointer-events:none}.theme-icon:before,.theme-icon:after{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask:url(/images/theme-sun.svg) center / contain no-repeat;mask:url(/images/theme-sun.svg) center / contain no-repeat;transform:rotate(0) scale(1);transition:transform var(--theme-icon-duration) var(--ease-out),opacity var(--theme-icon-duration) ease}.theme-icon:after{-webkit-mask-image:url(/images/theme-moon.svg);mask-image:url(/images/theme-moon.svg);opacity:0;transform:rotate(-45deg) scale(.9)}:root[data-theme=dark] .theme-icon:before{opacity:0;transform:rotate(45deg) scale(.9)}:root[data-theme=dark] .theme-icon:after{opacity:1;transform:rotate(0) scale(1)}:root:not([data-theme]) .theme-toggle{display:none}@media(hover:hover)and (pointer:fine){.theme-toggle:hover{color:var(--red-deep);background:var(--wash)}}@media(max-width:700px){.nav>.theme-toggle{grid-column:1;grid-row:1;justify-self:start}.nav>.wordmark,.nav>.menu-toggle{grid-row:1}.nav>.menu-toggle{grid-column:3}.mobile-menu-header .theme-toggle{grid-column:1;grid-row:1}.mobile-menu-header .wordmark,.mobile-menu-header .menu-toggle{grid-row:1}.mobile-menu-header .menu-toggle{grid-column:3}}@media(prefers-reduced-motion:reduce){.contact-button:hover,.contact-button:active{transform:none}:root[data-theme] .theme-icon:before,:root[data-theme] .theme-icon:after{transform:none}}@media print{:root,:root[data-theme]{color-scheme:light;--logo-filter: none;--header-surface: #fff;--pressed-surface: #ece7e1;--halftone: rgb(17 17 17 / 16%);--paper: #fff;--ink: #111;--ink-soft: #3b3733;--muted: #625c57;--wash: #f6f4f1;--rule: #e6e1dc;--signal-red: #c8321f;--red-deep: #c8321f}.theme-toggle{display:none}:root,:root[data-theme]{--character-edge: drop-shadow(0 0 0 transparent);--control-border: var(--rule)}}.point-character,.how-heading img,.next-study img,.wave-character{filter:var(--character-edge)}
