@font-face{font-family:Neue Montreal;src:url(/fonts/PPNeueMontreal-Book.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal;src:url(/fonts/PPNeueMontreal-Medium.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal Mono;src:url(/fonts/PPNeueMontrealMono-Book.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Montreal Mono;src:url(/fonts/PPNeueMontrealMono-Thin.otf)format("opentype");font-weight:100;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fffffb;--ink:#0b0b0b;--mid:#62625d;--faint:#71716b;--rule:#e8e8e8;--rule-hi:#0b0b0b;--tile:#f4f4f4;--awake:#4e9e6f;--measure:40rem;--gutter:clamp(1.5rem, 6vw, 4rem);--ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111;--ink:#f0f0f0;--mid:#8c8c8c;--faint:#7d7d7d;--rule:#1f1f1f;--rule-hi:#f0f0f0;--tile:#171717}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);letter-spacing:-.005em;font-feature-settings:"kern" 1, "liga" 1, "calt" 1, "tnum" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .55s var(--ease), color .55s var(--ease);padding:clamp(1.75rem, 6vw, 5rem) var(--gutter) 4rem;min-height:100vh;font-family:Neue Montreal,ui-sans-serif,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.58}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}.wrap{max-width:var(--measure);margin:0 auto}.u{transition:background-size .45s var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:1px}.u:hover,.u:focus-visible{background-size:100% 1px;outline:none}.rise{opacity:0;animation:rise .9s var(--ease-out) forwards;transform:translateY(10px)}@keyframes rise{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.rise{opacity:1;animation:none;transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.wrap{transition:opacity .16s ease-out}.page-leave .wrap{opacity:0}.head{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:3rem;display:flex}.brand{align-items:center;line-height:0;display:flex}.brand-logo{width:clamp(8rem,14.4vw,9.2rem);height:auto;transition:filter .55s var(--ease);display:block}[data-theme=dark] .brand-logo{filter:invert()}.meta{color:var(--mid);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.025em;text-transform:uppercase;align-items:center;gap:.6rem;font-family:Neue Montreal Mono,monospace;font-size:11.5px;display:flex}.dot{background:var(--ink);width:5px;height:5px;animation:breathe 3.6s var(--ease) infinite;border-radius:50%}.dot--awake{background:var(--awake)}@media (hover:hover) and (pointer:fine){.dot--awake{position:relative}.dot--awake:hover:after{content:"Spencer is currently awake";white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);background:var(--bg);border:1px solid var(--rule);padding:.3rem .55rem;font-family:Neue Montreal Mono,monospace;font-size:10px;position:absolute;top:50%;right:calc(100% + .8rem);transform:translateY(-50%)}}@keyframes breathe{0%,to{opacity:.22}50%{opacity:1}}.theme{cursor:pointer;border:1px solid var(--faint);background:linear-gradient(90deg, var(--ink) 50%, transparent 50%);width:11px;height:11px;transition:transform .55s var(--ease), border-color .3s;border-radius:50%;padding:0}.theme:hover,.theme:focus-visible{border-color:var(--ink)}.theme:focus-visible{outline:1px solid var(--ink);outline-offset:4px}[data-theme=dark] .theme{transform:rotate(180deg)}.theme-wipe{z-index:100;pointer-events:none;transform-origin:50%;will-change:transform, opacity;animation:theme-wipe-expand .52s var(--ease-out) forwards;border-radius:50%;position:fixed;transform:translate(-50%,-50%)scale(0)}.theme-wipe--leaving{animation:.16s linear forwards theme-wipe-fade}@keyframes theme-wipe-expand{to{transform:translate(-50%,-50%)scale(1)}}@keyframes theme-wipe-fade{to{opacity:0}}html.theme-instant body,html.theme-instant .brand-logo{transition:none}.lede{letter-spacing:-.012em;text-wrap:balance;max-width:31rem;margin-bottom:1.6rem;font-size:clamp(21px,1.7vw,25px);font-weight:500;line-height:1.34}p{color:var(--mid);max-width:32rem;margin-bottom:1.1rem}section{margin-top:3.75rem}.label{letter-spacing:.11em;text-transform:uppercase;color:var(--faint);justify-content:space-between;align-items:baseline;margin-bottom:1rem;font-family:Neue Montreal Mono,monospace;font-size:10px;font-weight:400;display:flex}.label span{font-variant-numeric:tabular-nums;letter-spacing:.06em}.list{border-top:1px solid var(--rule)}.row{border-bottom:1px solid var(--rule);transition:opacity .38s var(--ease), padding-left .5s var(--ease-out), border-color .38s var(--ease);grid-template-columns:minmax(0,10.5rem) minmax(0,1fr) auto;align-items:baseline;gap:0 1.5rem;padding:.8rem 0;display:grid;position:relative}.list:hover .row{opacity:.34}.list .row:hover,.list .row:focus-visible{opacity:1;border-bottom-color:var(--rule-hi);outline:none;padding-left:9px}.list--quiet:hover .row{opacity:1}.list--quiet .row{transition:none}.list--quiet .row:hover,.list--quiet .row:focus-visible{border-bottom-color:var(--rule);padding-left:0}.name{color:var(--ink);font-weight:500}.disc{color:var(--mid);letter-spacing:.025em;text-transform:uppercase;font-family:Neue Montreal Mono,monospace;font-size:12px}.cred{color:var(--faint);font-size:12.5px}.cred:before{content:" ·"}.yr{color:var(--faint);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-feature-settings:"tnum" 1;letter-spacing:.025em;text-transform:uppercase;font-family:Neue Montreal Mono,monospace;font-size:12px}.mark{vertical-align:-.11em;width:11px;height:11px;color:var(--faint);transition:color .38s var(--ease);flex:none;margin-left:.5em}.row:hover .mark{color:var(--mid)}.note{color:var(--faint);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.45rem;margin-top:.85rem;font-family:Neue Montreal Mono,monospace;font-size:11px;display:flex}.note .mark{vertical-align:0;width:10px;height:10px;margin-left:0}.note--split{justify-content:space-between}.note--split.note{max-width:none}.note-lead{align-items:center;gap:.45rem;display:flex}.note-link{color:var(--mid)}.note-arrow{transition:transform .38s var(--ease);margin-left:.35em;display:inline-block}.note-link:hover .note-arrow,.note-link:focus-visible .note-arrow{transform:translate(3px)}a.row .name:after{content:"↗";opacity:0;transition:opacity .38s var(--ease), transform .38s var(--ease);margin-left:.4em;font-size:.8em;display:inline-block;transform:translate(-4px,2px)}a.row:hover .name:after,a.row:focus-visible .name:after{opacity:.45;transform:none}.work-breakout{width:100%}.work-grid{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.work-card{border-top:1px solid var(--rule);border-left:1px solid var(--rule);height:clamp(13.5rem,20vw,15.5rem);color:var(--ink);transition:background .38s var(--ease), border-color .38s var(--ease);position:relative;overflow:hidden}a.work-card:hover,a.work-card:focus-visible{background:var(--tile);outline:none}.work-logo{place-items:center;display:grid;position:absolute;inset:2rem 1.75rem 4.25rem}.work-logo img{filter:none;width:auto;max-width:78%;height:auto;max-height:22%;transition:filter .55s var(--ease), transform .5s var(--ease-out);display:block}[data-theme=dark] .work-logo img{filter:invert()}.work-logo--coyotes img{max-height:38%}.work-logo--chenin img{max-height:30%}.work-logo--mount-sunny img{width:85%;max-width:85%;max-height:58%}a.work-card:hover .work-logo img,a.work-card:focus-visible .work-logo img{transform:scale(1.035)}.work-disc,.work-year{color:var(--mid);letter-spacing:.025em;text-transform:uppercase;font-family:Neue Montreal Mono,monospace;font-size:10.5px;line-height:1.35;position:absolute;bottom:1rem}.work-disc{max-width:14rem;left:1rem;right:4.6rem}.work-year{color:var(--faint);font-variant-numeric:tabular-nums;right:1rem}.work-credit{color:var(--faint);position:absolute;top:.9rem;right:.95rem}.work-credit .mark{width:10px;height:10px;margin:0;display:block}@media (prefers-reduced-motion:reduce){.theme-wipe{display:none}}.hello{border-bottom:1px solid var(--rule);align-items:baseline;gap:.6rem;max-width:22rem;margin-top:.4rem;transition:border-color .3s;display:flex}.hello:focus-within{border-color:var(--faint)}.hello input{font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:.55rem 0}.hello input::placeholder{color:var(--faint)}.hello button{cursor:pointer;font:inherit;color:var(--mid);transition:transform .38s var(--ease), color .3s;background:0 0;border:0;padding:0}.hello button:hover{color:var(--ink);transform:translate(3px)}.foot{border-top:1px solid var(--rule);color:var(--faint);letter-spacing:.025em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:1.5rem;margin-top:4.5rem;padding-top:1.1rem;font-family:Neue Montreal Mono,monospace;font-size:11.5px;display:flex}.links{color:var(--mid);letter-spacing:.04em;text-transform:uppercase;gap:1.25rem;font-family:Neue Montreal Mono,monospace;font-weight:100;display:flex}kbd{font:inherit;border:1px solid var(--rule);color:var(--faint);border-radius:3px;padding:1px 4px;font-size:11px}@media (max-width:1199px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-card{height:clamp(13rem,23vw,15rem)}}@media (max-width:760px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card{height:clamp(11.75rem,51vw,13.5rem)}.work-logo{inset:1.5rem 1rem 4rem}.work-disc{max-width:10rem}}@media (max-width:640px){body{font-size:14.5px}.lede{font-size:19px}.head{gap:1rem}.row{grid-template-columns:1fr auto;gap:.1rem 1rem}.name{grid-area:1/1}.yr{grid-area:1/2}.disc{grid-area:2/1/auto/-1;font-size:13.5px}}@media (max-width:340px){.work-grid{grid-template-columns:1fr}.work-card{height:13rem}.work-logo{inset-inline:2rem}}.case-title{letter-spacing:-.02em;margin-bottom:2.25rem;font-size:clamp(28px,3.2vw,40px);font-weight:500;line-height:1.1}.case-title--index{margin-bottom:3rem}.case-hero{border:1px solid var(--rule);background:var(--tile);place-items:center;margin-bottom:2.25rem;padding:clamp(2.5rem,7vw,4.5rem);display:grid}.case-hero img{width:auto;max-width:62%;height:auto;max-height:7rem;transition:filter .55s var(--ease);display:block}[data-theme=dark] .case-hero img{filter:invert()}.case-actions{flex-wrap:wrap;gap:1.5rem;margin-top:2rem;font-size:13px;display:flex}.case-hero--photo{border:0;height:clamp(15rem,34vw,24rem);padding:0;display:block;position:relative;overflow:hidden}.case-hero--photo .case-hero-photo{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none;position:absolute;inset:0}[data-theme=dark] .case-hero--photo .case-hero-photo{filter:none}.case-hero--photo:after{content:"";background:rgba(10, 10, 10, var(--hero-scrim,.38));position:absolute;inset:0}.case-hero--plain:after{content:none}.case-hero--photo .case-hero-logo{filter:invert()drop-shadow(0 1px 10px #00000059);z-index:1;width:auto;max-width:54%;height:auto;max-height:44%;margin:auto;display:block;position:absolute;inset:0}body:after{content:"";z-index:200;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:fixed;inset:0}@media (hover:hover) and (pointer:fine){.work-card{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25'%3E%3Cg fill='none' stroke='%230b0b0b' stroke-width='1'%3E%3Ccircle cx='12.5' cy='12.5' r='7'/%3E%3Cpath d='M12.5 1v23M1 12.5h23'/%3E%3C/g%3E%3C/svg%3E") 12 12,crosshair}[data-theme=dark] .work-card{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25'%3E%3Cg fill='none' stroke='%23fffffb' stroke-width='1'%3E%3Ccircle cx='12.5' cy='12.5' r='7'/%3E%3Cpath d='M12.5 1v23M1 12.5h23'/%3E%3C/g%3E%3C/svg%3E") 12 12,crosshair}}.case-hero--photo .case-hero-photo{will-change:transform;animation:40s ease-in-out infinite alternate hero-drift}@keyframes hero-drift{0%{transform:scale(1)translate(0)}to{transform:scale(1.06)translate(-1.2%,-1%)}}@media (prefers-reduced-motion:reduce){.case-hero--photo .case-hero-photo{animation:none}}body:has(.wrap--fit){padding-top:clamp(1.25rem,4vh,3rem);padding-bottom:clamp(1.5rem,3vh,2.5rem)}.wrap--fit{flex-direction:column;min-height:calc(100dvh - clamp(1.25rem,4vh,3rem) - clamp(1.5rem,3vh,2.5rem));display:flex}.wrap--fit main,.wrap--fit article{flex-direction:column;flex:1;display:flex}.wrap--fit .head{margin-bottom:clamp(1rem,3vh,2.25rem)}.wrap--fit .case-title{margin-bottom:clamp(1.1rem,3vh,2.25rem)}.wrap--fit .case-title--index{margin-bottom:clamp(1.4rem,3.5vh,3rem)}.wrap--fit p{margin-bottom:clamp(.8rem,2vh,1.1rem)}.wrap--fit .case-actions{margin-top:clamp(1.1rem,3vh,2rem)}.wrap--fit section{margin-top:clamp(1.6rem,4vh,3.75rem)}.wrap--fit .case-hero--photo{flex:auto;height:auto;min-height:7rem;max-height:min(13rem,19vh);margin-bottom:clamp(1.1rem,3vh,2.25rem)}.hello-hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.hello-done{flex-direction:column;gap:.4rem;padding:.35rem 0 .15rem;display:flex}.hello-done-dot{background:var(--awake);border-radius:50%;width:8px;height:8px;animation:2.4s ease-in-out infinite breathe}.hello-done-line{margin:0}@media (prefers-reduced-motion:reduce){.hello-done-dot{animation:none}}.wrap--fit article p{max-width:none}
