@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif-regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif-italic.ttf)format("truetype");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist-latin.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;src:url(/fonts/geist-latin-ext.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-latin.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-latin-ext.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper:#f3efe6;--paper-bright:#fbf8f0;--ink:#141411;--muted:#6f6a60;--rule:#c8c0b1;--rule-dark:#3c3d38;--signal:#ff5838;--signal-dark:#b42d18;--night:#1d201c;--night-deep:#11130f;--night-ink:#f4f0e7;--success:#b8ff63;--page-pad:clamp(1.25rem, 4vw, 4.5rem);--content-width:1540px;--header-height:4.25rem;--serif:"Instrument Serif", "Iowan Old Style", "Baskerville", Georgia, serif;--sans:"Geist", "Helvetica Neue", Arial, sans-serif;--mono:"Geist Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);background:var(--paper)}body{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}::selection{background:var(--signal);color:var(--ink)}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.skip-link{z-index:1000;background:var(--ink);color:#fff;font:700 .75rem/1 var(--mono);text-transform:uppercase;padding:.75rem 1rem;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.mobile-progress{z-index:120;pointer-events:none;background:0 0;width:100%;height:3px;display:none;position:fixed;top:0;left:0}.mobile-progress__fill{background:var(--signal);width:100%;height:100%;transform:scaleX(var(--signal-progress,0));transform-origin:0;will-change:transform;display:block}.site-header{z-index:100;min-height:var(--header-height);border-bottom:1px solid var(--rule);padding:0 var(--page-pad);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f3efe6f0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.site-mark{align-items:baseline;gap:.35rem;text-decoration:none;display:inline-flex}.site-mark span:first-child{font:700 1rem/1 var(--sans);letter-spacing:-.05em}.site-mark span:last-child{color:var(--signal-dark);font:500 .58rem/1 var(--mono)}.site-nav{font:600 .69rem/1 var(--mono);letter-spacing:.035em;text-transform:uppercase;align-items:center;gap:clamp(1rem,2.4vw,2.75rem);display:flex}.site-nav a{padding:.4rem 0;text-decoration:none;position:relative}.site-nav a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .22s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.signal-rail{z-index:90;top:calc(var(--header-height) + 3.5rem);pointer-events:none;justify-content:center;align-items:stretch;width:3rem;display:flex;position:fixed;bottom:2.75rem;right:1.1rem}.signal-rail__track{background:#1414112e;width:1px;position:absolute;top:0;bottom:0;left:50%;overflow:hidden}.signal-rail__fill{background:var(--signal);width:100%;height:100%;transform:scaleY(var(--signal-progress,0));transform-origin:top;will-change:transform;display:block}.signal-rail__nav{z-index:2;pointer-events:auto;flex-direction:column;justify-content:space-between;padding:.25rem 0;display:flex;position:relative}.signal-rail__link{background:var(--paper);width:2.9rem;height:2.9rem;font:600 .57rem/1 var(--mono);text-transform:uppercase;border:1px solid #0000;place-items:center;text-decoration:none;transition:border-color .16s,background .16s,color .16s;display:grid;position:relative}.signal-rail__link span:last-child{background:var(--ink);color:#fff;opacity:0;pointer-events:none;padding:.4rem .55rem;transition:opacity .16s,transform .16s;position:absolute;right:calc(100% + .6rem);transform:translate(.25rem)}.signal-rail__link:hover span:last-child,.signal-rail__link:focus-visible span:last-child{opacity:1;transform:translate(0)}html[data-active-section=top] .signal-rail__link--top,html[data-active-section=work] .signal-rail__link--work,html[data-active-section=proof] .signal-rail__link--proof,html[data-active-section=log] .signal-rail__link--log,html[data-active-section=about] .signal-rail__link--about,html[data-active-section=contact] .signal-rail__link--contact{border-color:var(--signal);background:var(--signal);color:var(--ink)}.hero{min-height:min(900px, calc(100svh - var(--header-height)));border-bottom:1px solid var(--rule);background:linear-gradient(to bottom, transparent 0, transparent calc(100% - 1px), var(--rule) calc(100% - 1px)), linear-gradient(to right, #1414110f 1px, transparent 1px);background-position:0 0, var(--page-pad) 0;background-size:100% 100%, calc((100% - (var(--page-pad) * 2)) / 12) 100%;position:relative;overflow:hidden}.hero:after{top:0;right:calc(var(--page-pad) + 10%);background:var(--signal);content:"";transform-origin:top;width:1px;height:27%;animation:.8s cubic-bezier(.2,.75,.25,1) .48s both draw-vertical;position:absolute}.hero__grid{width:min(100%, var(--content-width));min-height:inherit;padding:clamp(1.5rem, 3vw, 3.25rem) var(--page-pad) 2rem;grid-template-rows:auto auto 1fr auto;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.35vw,1.5rem);margin:0 auto;display:grid;position:relative}.hero__folio{color:var(--muted);font:550 .64rem/1.2 var(--mono);letter-spacing:.06em;grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.hero__name{z-index:1;font:400 clamp(7.5rem, 17.3vw, 17rem) / .9 var(--serif);letter-spacing:-.07em;flex-direction:column;grid-column:1/-1;margin:clamp(2rem,4.5vw,4.5rem) 0 0;display:flex;overflow:visible}.hero__name-line{width:max-content;padding-block:.12em;display:block;overflow:visible}.hero__name-line--second{align-self:flex-end;padding-right:1.7vw}.hero__role{font:600 .68rem/1.4 var(--mono);letter-spacing:.035em;text-transform:uppercase;grid-column:1/5;align-self:end;align-items:center;gap:.55rem;margin-bottom:.75rem;display:flex}.hero__role>span:last-child{color:var(--muted);margin-left:.45rem;font-weight:450;display:block}.status-dot{background:var(--signal);border-radius:50%;width:.52rem;height:.52rem;box-shadow:0 0 0 4px #ff583821}.hero__statement{border-top:1px solid var(--ink);grid-column:7/12;align-self:end;padding:1.6rem 0 0}.hero__lead{max-width:15ch;font:400 clamp(2.25rem, 4.3vw, 4.45rem) / .98 var(--serif);letter-spacing:-.035em;margin:0}.hero__lead em{color:var(--signal-dark);font-weight:400}.hero__summary{max-width:52ch;color:var(--muted);margin:1.5rem 0 0;font-size:clamp(.95rem,1.1vw,1.08rem);line-height:1.62}.hero__actions{align-items:center;gap:1.3rem;margin-top:2rem;display:flex}.button{min-height:3.25rem;font:650 .7rem/1 var(--mono);letter-spacing:.03em;text-transform:uppercase;justify-content:center;align-items:center;gap:1.2rem;text-decoration:none;display:inline-flex}.button--primary{background:var(--ink);color:#fff;min-width:13.5rem;padding:0 1.25rem;transition:background .18s,color .18s}.button--primary:hover{background:var(--signal);color:var(--ink)}.button--primary span{transition:transform .18s}.button--primary:hover span{transform:translateY(.2rem)}.button--text{border-bottom:1px solid;min-height:auto;padding:.6rem 0}.hero__evidence{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-column:1/12;grid-template-columns:repeat(3,1fr);align-self:end;margin-top:clamp(2rem,4vw,4rem);display:grid}.hero__evidence>div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);align-items:center;gap:1rem;min-height:5.2rem;padding:1rem 1.3rem;display:flex}.hero__evidence strong{font:400 2.25rem/1 var(--serif)}.hero__evidence span{max-width:15ch;color:var(--muted);font:550 .62rem/1.35 var(--mono);letter-spacing:.03em;text-transform:uppercase}.hero__scroll-note{font:550 .58rem/1.2 var(--mono);text-transform:uppercase;writing-mode:vertical-rl;grid-column:12/-1;place-self:end;align-items:center;gap:.7rem;margin:0;display:flex}.hero__scroll-note span{color:var(--signal-dark)}.content-section,.case-study__layout{width:min(100%, var(--content-width));padding-right:var(--page-pad);padding-left:var(--page-pad);margin:0 auto}.content-section{padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem)}.work-intro{padding-top:clamp(3.5rem,5vw,5rem);padding-bottom:clamp(2.75rem,4vw,4rem)}.section-heading{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.35vw,1.5rem);display:grid}.section-heading__index{color:var(--muted);font:550 .66rem/1.25 var(--mono);letter-spacing:.05em;flex-direction:column;grid-column:1/4;gap:.5rem;display:flex}.section-heading__index span:first-child{color:var(--signal-dark)}.section-heading h2{max-width:12ch;font:400 clamp(3.7rem, 7.5vw, 7.75rem) / .87 var(--serif);letter-spacing:-.05em;grid-column:4/10;margin:0}.section-heading>p{max-width:38ch;color:var(--muted);grid-column:10/-1;align-self:end;margin:0;line-height:1.65}.case-study{border-top:1px solid var(--rule);padding:clamp(6rem,10vw,10rem) 0}.case-study__layout{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.35vw,1.5rem);display:grid}.case-study__visual{top:calc(var(--header-height) + 2rem);grid-area:1/1/span 2/7;align-self:start;position:sticky}.case-study__intro,.case-study__body{grid-column:8/-1}.case-study__intro{grid-row:1}.case-study__body{grid-row:2}.case-meta{color:var(--muted);font:550 .61rem/1.25 var(--mono);letter-spacing:.045em;flex-wrap:wrap;gap:.55rem 1rem;margin-bottom:2.2rem;display:flex}.case-meta span:not(:last-child):after{color:var(--signal);content:"/";margin-left:1rem}.case-study__intro>h2{font:400 clamp(3.5rem, 5.2vw, 5.25rem) / .9 var(--serif);letter-spacing:-.052em;margin:0}.case-study__dek{max-width:46ch;color:var(--muted);margin:2rem 0 0;font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.65}.decision-log{border-bottom:1px solid var(--rule);margin:3.25rem 0 0;padding:0;list-style:none}.decision-log li{border-top:1px solid var(--rule);grid-template-columns:minmax(6rem,.34fr) 1fr;gap:1.25rem;padding:1.5rem 0 1.65rem;display:grid}.decision-log li>span{color:var(--signal-dark);font:600 .6rem/1.35 var(--mono);letter-spacing:.04em;text-transform:uppercase;padding-top:.23rem}.decision-log h3{margin:0;font-size:1rem;line-height:1.35}.decision-log p{color:var(--muted);margin:.65rem 0 0;font-size:.92rem;line-height:1.62}.case-stack{color:var(--muted);font:500 .62rem/1.6 var(--mono);letter-spacing:.025em;text-transform:uppercase;margin:1.5rem 0 0}.case-stack i{color:var(--signal);margin:0 .42rem;font-style:normal}.case-links{flex-wrap:wrap;gap:1rem 1.75rem;margin-top:1.65rem;display:flex}.case-links a,.about__links a{font:650 .65rem/1.3 var(--mono);letter-spacing:.03em;text-transform:uppercase}.external-mark{margin-left:.15rem;transition:transform .18s;display:inline-block}a:hover .external-mark{transform:translate(.18rem,-.18rem)}.case-study--climblens{background:#e8eee8}.case-study--tavoluna{background:#f1e5d5}.tavoluna-frame{background:#2c1711;border-color:#8f715e;box-shadow:0 2rem 5rem #4a241738}.tavoluna-frame .browser-frame__bar,.tavoluna-frame figcaption{border-color:#8f715e}.tavoluna-frame .browser-frame__viewport{background:#2c1711}.climblens-frame{color:#f6f1e8;background:#13201a;border-color:#65786d;box-shadow:0 2rem 5rem #13201a3d}.climblens-frame .browser-frame__bar,.climblens-frame figcaption{color:#e8eee8;border-color:#65786d}.climblens-frame figcaption{background:#13201a}.climblens-frame__canvas{background:#13201a;min-height:clamp(34rem,55vw,47rem);position:relative;overflow:hidden}.climblens-frame__canvas:after{content:"";background:linear-gradient(#13201a0a 30%,#13201aad 100%),linear-gradient(90deg,#13201a14,#0000 55%);position:absolute;inset:0}.climblens-frame__canvas>img{object-fit:cover;object-position:50% 42%;filter:saturate(.88)contrast(1.03);width:100%;height:100%;position:absolute;inset:0}.climblens-frame__panel{z-index:1;color:#1e2420;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f1e8f0;border:1px solid #f6f1e86b;width:min(100% - 2rem,28rem);padding:clamp(1.2rem,2.5vw,2rem);position:absolute;bottom:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem)}.climblens-frame__panel>span{color:#b64916;font:650 .58rem/1.3 var(--mono);letter-spacing:.04em}.climblens-frame__panel>strong{max-width:9ch;font:400 clamp(2.8rem, 5vw, 4.5rem) / .88 var(--serif);letter-spacing:-.05em;margin-top:1rem;display:block}.climblens-frame__panel ol{border-top:1px solid #aeb8b0;grid-template-columns:repeat(3,1fr);margin:2rem 0 0;padding:0;list-style:none;display:grid}.climblens-frame__panel li{border-right:1px solid #aeb8b0;flex-direction:column;gap:.25rem;padding:.75rem .45rem 0;display:flex}.climblens-frame__panel li:last-child{border-right:0}.climblens-frame__panel li span{color:#b64916;font:600 .58rem/1 var(--mono)}.climblens-frame__panel li b{text-transform:uppercase;font-size:.72rem}.case-study--night{border-color:var(--rule-dark);background:var(--night);color:var(--night-ink)}.case-study--night .case-meta,.case-study--night .case-study__dek,.case-study--night .decision-log p,.case-study--night .case-stack{color:#a9aa9f}.case-study--night .decision-log,.case-study--night .decision-log li{border-color:var(--rule-dark)}.case-study--night .decision-log li>span,.case-study--night .case-stack i{color:var(--signal)}.case-study--night :focus-visible,.contact :focus-visible{outline-color:var(--signal)}.browser-frame{border:1px solid var(--rule);background:var(--paper-bright);color:var(--ink);margin:0;overflow:hidden;box-shadow:0 1.8rem 4.5rem #14141121}.case-study--night .browser-frame{color:#eee9df;background:#0c0d0a;border-color:#3e403a;box-shadow:0 2rem 5rem #00000061}.browser-frame__bar{border-bottom:1px solid var(--rule);min-height:3.15rem;font:500 .56rem/1 var(--mono);letter-spacing:.025em;text-transform:uppercase;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 1rem;display:grid}.case-study--night .browser-frame__bar{border-color:#3e403a}.browser-frame__bar>span:first-child{gap:.35rem;display:flex}.browser-frame__bar i{opacity:.45;border:1px solid;border-radius:50%;width:.45rem;height:.45rem}.browser-frame__bar>span:nth-child(2){opacity:.6;justify-self:center}.browser-frame__bar>:last-child{justify-self:end}.browser-frame__bar a{text-decoration:none}.browser-frame__viewport{background:#0a0a0a;position:relative;overflow:hidden}.browser-frame--tall .browser-frame__viewport{height:min(66vh,44rem)}.browser-frame--wide .browser-frame__viewport{aspect-ratio:1.55;background:#ececea}.project-image{object-fit:cover;width:100%;height:100%}.project-image--scroll{object-position:center top;height:auto;min-height:100%;transition:transform 7s cubic-bezier(.22,.61,.36,1);transform:translateY(0)}.browser-frame--tall:hover .project-image--scroll{transform:translateY(calc(-100% + min(66vh,44rem)))}.browser-frame figcaption{border-top:1px solid var(--rule);color:var(--muted);font:500 .57rem/1.3 var(--mono);text-transform:uppercase;padding:.8rem 1rem}.case-study--night .browser-frame figcaption{color:#85877e;border-color:#3e403a}.proof{border-top:1px solid var(--rule)}.proof .section-heading h2{max-width:14ch}.evidence-table-wrap{border-top:1px solid var(--ink);margin-top:clamp(4rem,7vw,7rem);overflow-x:auto}.evidence-table{border-collapse:collapse;text-align:left;width:100%}.evidence-table th,.evidence-table td{border-bottom:1px solid var(--rule);vertical-align:middle;padding:1.35rem 1rem}.evidence-table thead th{color:var(--muted);font:550 .6rem/1.3 var(--mono);letter-spacing:.045em;text-transform:uppercase}.evidence-table tbody tr{transition:background .17s,color .17s}.evidence-table tbody tr:hover{background:var(--ink);color:var(--paper)}.evidence-table tbody tr:hover td{color:#c7c4bb}.evidence-table tbody td:first-child{width:8%;color:var(--signal-dark);font:600 .65rem/1 var(--mono)}.evidence-table tbody tr:hover td:first-child{color:var(--signal)}.evidence-table tbody th{width:28%;font-size:clamp(1.05rem,1.4vw,1.35rem)}.evidence-table tbody td:nth-child(3){width:32%;font:400 clamp(1.7rem, 3.3vw, 3.3rem) / 1 var(--serif)}.evidence-table tbody td:last-child{width:28%;color:var(--muted);font:500 .66rem/1.45 var(--mono);text-transform:uppercase}.evidence-table a{text-decoration:none}.work-log-section{border-top:1px solid var(--rule);background:var(--paper-bright)}.work-log-section .section-heading h2{max-width:11ch}.work-log{border-top:1px solid var(--ink);margin:clamp(4rem,7vw,7rem) 0 0;padding:0;list-style:none}.work-log li{border-bottom:1px solid var(--rule);grid-template-columns:2fr 3fr 4fr;gap:2rem;padding:2rem 0;display:grid;position:relative}.work-log li:before{background:var(--signal);content:"";border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:2.4rem;left:-.2rem;transform:translate(-100%)}.work-log__date{color:var(--muted);font:550 .65rem/1.4 var(--mono);letter-spacing:.03em}.work-log__role{flex-direction:column;gap:.3rem;display:flex}.work-log__role span{font-size:1.05rem;font-weight:650}.work-log__role strong{color:var(--muted);font:500 .66rem/1.4 var(--mono)}.work-log li>p{max-width:52ch;color:var(--muted);margin:0;font-size:.94rem;line-height:1.65}.about{border-top:1px solid var(--rule);background:var(--signal);color:#16130e}.about :focus-visible{outline-color:var(--ink)}.about__label{font:650 .62rem/1.3 var(--mono);letter-spacing:.04em;justify-content:space-between;display:flex}.about__content{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.75rem,1.35vw,1.5rem);margin-top:clamp(4rem,8vw,8rem);display:grid}.about__content h2{max-width:13ch;font:400 clamp(4rem, 8vw, 8.25rem) / .86 var(--serif);letter-spacing:-.052em;grid-column:1/8;margin:0}.about__content h2 em{color:var(--paper);font-weight:400}.about__copy{grid-column:9/-1;align-self:end}.about__copy p{margin:0;line-height:1.67}.about__copy p+p{margin-top:1.25rem}.about__links{border-top:1px solid #14141173;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:2rem;padding-top:1.25rem;display:flex}.contact{background:var(--night-deep);color:var(--night-ink);padding:clamp(6rem, 10vw, 10rem) var(--page-pad) 2rem;position:relative;overflow:hidden}.contact:before{top:0;bottom:0;left:calc(var(--page-pad) + 25%);content:"";background:#ffffff1a;width:1px;position:absolute}.contact:after{content:"";border:1px solid #ff583873;border-radius:50%;width:38vw;height:38vw;position:absolute;top:-10vw;right:-10vw}.contact>*{z-index:1;width:min(100%, calc(var(--content-width) - (var(--page-pad) * 2)));margin-left:auto;margin-right:auto;position:relative}.contact__meta{color:#909388;font:550 .63rem/1.3 var(--mono);letter-spacing:.045em;justify-content:space-between;display:flex}.contact h2{max-width:12ch;font:400 clamp(4.5rem, 11.5vw, 12rem) / .78 var(--serif);letter-spacing:-.065em;margin-top:clamp(4rem,8vw,8rem);margin-bottom:0}.contact h2 em{color:var(--signal);font-weight:400}.contact__email{width:100%;font:400 clamp(1.45rem, 4vw, 4rem) / 1 var(--serif);border-top:1px solid #55584f;border-bottom:1px solid #55584f;justify-content:space-between;align-items:center;margin-top:clamp(4rem,8vw,8rem);padding:1.5rem 0;text-decoration:none;transition:color .18s,padding .18s;display:flex}.contact__email:hover{color:var(--signal);padding-left:.4rem;padding-right:.4rem}.contact__footer{color:#85887e;font:500 .58rem/1.4 var(--mono);text-transform:uppercase;grid-template-columns:1fr 1fr 1fr;align-items:end;margin-top:7rem;display:grid}.contact__footer span:nth-child(2){justify-self:center}.contact__footer a{justify-self:end}@keyframes draw-vertical{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (max-width:1180px){.mobile-progress{display:block}.signal-rail{display:none}.hero__name{font-size:clamp(7rem,18vw,13rem)}.hero__statement{grid-column:6/12}.case-study__visual{grid-column:1/7}.case-study__intro,.case-study__body{grid-column:8/-1}}@media (max-width:960px){:root{--page-pad:clamp(1.25rem, 3.8vw, 2.5rem)}.hero{min-height:auto}.hero__grid{min-height:auto;padding-bottom:3rem}.hero__name{margin-top:4rem;font-size:20vw}.hero__role{grid-column:1/6;margin-top:3rem}.hero__statement{grid-column:6/-1;margin-top:3rem}.hero__evidence{grid-column:1/-1}.hero__scroll-note{display:none}.section-heading__index{grid-column:1/4}.section-heading h2{grid-column:4/-1}.section-heading>p{grid-column:4/11;max-width:52ch;margin-top:2rem}.case-study__layout{row-gap:3.5rem}.case-study__visual{grid-area:2/1/auto/-1;position:relative;top:auto}.case-study__intro,.case-study__body{grid-column:3/12}.case-study__intro{grid-row:1}.case-study__body{grid-row:3}.browser-frame--tall .browser-frame__viewport{height:65vh}.browser-frame--tall:hover .project-image--scroll{transform:translateY(calc(65vh - 100%))}.about__content h2{grid-column:1/9}.about__copy{grid-column:6/-1;margin-top:3rem}}@media (max-width:720px){:root{--header-height:3.7rem;--page-pad:1.25rem}html{scroll-padding-top:4.5rem}.site-header{min-height:var(--header-height)}.site-nav{gap:1rem;font-size:.625rem}.site-nav__optional{display:none}.hero{background-size:100% 100%, calc((100% - (var(--page-pad) * 2)) / 4) 100%}.hero:after{right:var(--page-pad);height:18%}.hero__grid{padding-top:1.25rem;display:block}.hero__folio{font-size:.625rem}.hero__name{margin-top:4.3rem;font-size:27.5vw;line-height:.92}.hero__name-line--second{padding-right:0}.hero__role{grid-template-columns:auto 1fr;width:max-content;margin-top:4rem;font-size:.625rem;display:grid}.hero__role>span:last-child{grid-column:1/-1;margin:.15rem 0 0 1.05rem}.hero__statement{margin-top:1.5rem;padding-top:1.25rem}.hero__lead{font-size:clamp(2.65rem,13vw,4rem)}.hero__summary{font-size:.93rem}.hero__actions{flex-direction:column;align-items:stretch;gap:.65rem}.button--primary{width:100%}.button--text{align-self:flex-start}.hero__evidence{grid-template-columns:1fr;margin-top:3.5rem;display:grid}.hero__evidence>div{min-height:4.5rem}.section-heading{display:block}.section-heading__index{margin-bottom:2.3rem}.section-heading h2{font-size:clamp(3.7rem,17vw,5.5rem)}.section-heading>p{margin-top:1.75rem;font-size:.93rem}.case-study{padding-top:5rem;padding-bottom:5rem}.case-study__layout{flex-direction:column;gap:2.5rem;display:flex}.case-study__intro,.case-study__body{width:100%}.case-meta{margin-bottom:1.4rem}.case-study__intro>h2{font-size:clamp(3.65rem,17vw,5.6rem)}.case-study__dek,.decision-log,.case-links,.case-stack{width:100%}.climblens-frame__canvas{min-height:38rem}.browser-frame__bar{grid-template-columns:auto 1fr auto;padding:0 .65rem;font-size:.625rem}.browser-frame--tall .browser-frame__viewport{height:68vh;max-height:37rem}.browser-frame--tall:hover .project-image--scroll{transform:none}.browser-frame--wide .browser-frame__viewport{aspect-ratio:1.18}.browser-frame--wide .project-image{object-fit:contain;object-position:center}.decision-log li{display:block}.decision-log li>span{margin-bottom:1rem;display:block}.evidence-table-wrap{overflow:visible}.evidence-table{min-width:0;display:block}.evidence-table thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.evidence-table tbody{display:block}.evidence-table tbody tr{border-bottom:1px solid var(--rule);grid-template-columns:2.7rem minmax(0,1fr);padding:1.35rem .75rem;display:grid}.evidence-table tbody th,.evidence-table tbody td{border:0;width:auto;padding:0}.evidence-table tbody td:first-child{grid-area:1/1/span 3}.evidence-table tbody th{grid-area:1/2}.evidence-table tbody td:nth-child(3){grid-area:2/2;margin-top:.85rem;font-size:clamp(2rem,10vw,3rem)}.evidence-table tbody td:last-child{grid-area:3/2;margin-top:.85rem}.work-log li{padding:1.75rem 0;display:block}.work-log li:before{display:none}.work-log__role,.work-log li>p{margin-top:1rem}.about__label{gap:1rem;font-size:.625rem}.about__content{margin-top:4rem;display:block}.about__content h2{font-size:clamp(4rem,18vw,6rem)}.about__copy{margin-top:3rem}.contact{padding-top:5rem}.contact:before{left:50%}.contact__meta{gap:1rem;font-size:.625rem}.contact h2{margin-top:4.5rem;font-size:clamp(4.25rem,20vw,7rem);line-height:.82}.contact__email{align-items:flex-end;font-size:clamp(1.25rem,6.2vw,2rem)}.contact__footer{flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:5rem;display:flex}.contact__footer span:nth-child(2),.contact__footer a{align-self:auto}}@media (max-width:390px){.site-nav{gap:.75rem}.hero__folio span:last-child{display:none}.climblens-frame__panel{width:calc(100% - 1.5rem);bottom:.75rem;right:.75rem}}@media (hover:none){.browser-frame--tall .browser-frame__viewport{overscroll-behavior:contain;touch-action:pan-y;overflow-y:auto}.browser-frame--tall .project-image--scroll{transform:none}.browser-frame--tall figcaption{font-size:0}.browser-frame--tall figcaption:after{content:"Swipe inside to scan the full page / open live from the top bar";font-size:.625rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.project-image--scroll,.browser-frame--tall:hover .project-image--scroll{transform:none}}
