.Hero-module-scss-module__twV7AW__hero{background-color:var(--page-bg);height:calc(100svh - 64px);padding-block:0;position:relative;overflow:clip}@media (min-width:768px){.Hero-module-scss-module__twV7AW__hero{height:calc(100svh - 72px)}}@media (min-width:1024px){.Hero-module-scss-module__twV7AW__hero{height:calc(100vh - 72px);min-height:calc(100vh - 72px)}}.Hero-module-scss-module__twV7AW__hero{--mx:50%;--my:40%}.Hero-module-scss-module__twV7AW__mobileOnly{display:block}@media (min-width:768px){.Hero-module-scss-module__twV7AW__mobileOnly{display:none}}.Hero-module-scss-module__twV7AW__desktopOnly{display:none}@media (min-width:768px){.Hero-module-scss-module__twV7AW__desktopOnly{display:block}}.Hero-module-scss-module__twV7AW__glow{pointer-events:none;z-index:0;opacity:.55;background:radial-gradient(480px 480px at var(--mx) var(--my), color-mix(in oklab, var(--accent) 15%, transparent) 0%, color-mix(in oklab, var(--accent) 4%, transparent) 40%, transparent 70%);mix-blend-mode:multiply;transition:opacity .36s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0}[data-theme=dark] .Hero-module-scss-module__twV7AW__glow{mix-blend-mode:screen;opacity:.7}@media (prefers-reduced-motion:reduce){.Hero-module-scss-module__twV7AW__glow{display:none}}.Hero-module-scss-module__twV7AW__inner{width:100%;max-width:1400px;margin-inline:auto;padding-inline:24px}@media (min-width:768px){.Hero-module-scss-module__twV7AW__inner{padding-inline:64px}}.Hero-module-scss-module__twV7AW__inner{z-index:1;grid-template-rows:auto auto 1fr auto auto;grid-template-areas:"top""stack""stage""name""cue";gap:16px;height:100%;padding-block:16px;display:grid;position:relative}@media (min-width:768px){.Hero-module-scss-module__twV7AW__inner{gap:24px;padding-block:24px}}@media (min-width:1024px){.Hero-module-scss-module__twV7AW__inner{grid-template:"top top""stack name""stage name"1fr"cue cue"/minmax(0,1fr) minmax(280px,.42fr);gap:32px 64px;padding-block:32px}}.Hero-module-scss-module__twV7AW__nameHero{height:auto;min-height:calc(100svh - 64px);padding-block:48px;display:flex}@media (min-width:768px){.Hero-module-scss-module__twV7AW__nameHero{min-height:calc(100svh - 72px)}}.Hero-module-scss-module__twV7AW__nameHeroInner{width:100%;max-width:1400px;margin-inline:auto;padding-inline:24px}@media (min-width:768px){.Hero-module-scss-module__twV7AW__nameHeroInner{padding-inline:64px}}.Hero-module-scss-module__twV7AW__nameHeroInner{z-index:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;width:100%;display:flex;position:relative}.Hero-module-scss-module__twV7AW__nameHeroKicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:400}.Hero-module-scss-module__twV7AW__nameHeroName{font-family:var(--serif-display);letter-spacing:-.02em;color:var(--ink);flex-direction:column;font-size:clamp(48px,2px + 9.58333vw,140px);font-weight:500;line-height:.94;display:flex}.Hero-module-scss-module__twV7AW__nameLine{margin-bottom:-.1em;padding:0 .12em .1em 0;display:block;overflow:clip}.Hero-module-scss-module__twV7AW__nameLineInner{display:block}@media (prefers-reduced-motion:no-preference){.Hero-module-scss-module__twV7AW__nameLineInner{animation:.8s cubic-bezier(.22,1,.36,1) both Hero-module-scss-module__twV7AW__heroLineUp;animation-delay:var(--enter-delay,0s)}.Hero-module-scss-module__twV7AW__enter{animation:.5s cubic-bezier(.2,.7,.2,1) both Hero-module-scss-module__twV7AW__heroFadeUp;animation-delay:var(--enter-delay,0s)}}@keyframes Hero-module-scss-module__twV7AW__heroLineUp{0%{transform:translateY(110%)}to{transform:none}}@keyframes Hero-module-scss-module__twV7AW__heroFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.Hero-module-scss-module__twV7AW__nameHeroPitch{font-family:var(--sans);color:var(--ink-2);max-width:44ch;margin-top:8px;font-size:clamp(16px,14px + .416667vw,20px);line-height:1.5}.Hero-module-scss-module__twV7AW__nameHeroProof{font-family:var(--serif-display);color:var(--ink-soft);font-size:clamp(16px,14px + .416667vw,20px);font-style:italic}.Hero-module-scss-module__twV7AW__nameHeroActions{flex-wrap:wrap;gap:16px;margin-top:16px;display:flex}.Hero-module-scss-module__twV7AW__heroButton{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink);min-height:44px;color:var(--ink);align-items:center;padding-inline:24px;font-size:12px;font-weight:400;text-decoration:none;transition:background-color .2s cubic-bezier(.2,.7,.2,1),color .2s cubic-bezier(.2,.7,.2,1);display:inline-flex}.Hero-module-scss-module__twV7AW__heroButton:hover{background-color:var(--ink);color:var(--page-bg)}.Hero-module-scss-module__twV7AW__heroButton:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.Hero-module-scss-module__twV7AW__heroButtonPrimary{background-color:var(--ink);color:var(--page-bg)}.Hero-module-scss-module__twV7AW__heroButtonPrimary:hover{background-color:var(--accent-oxblood);border-color:var(--accent-oxblood);color:var(--paper)}.Hero-module-scss-module__twV7AW__nameHeroStatus{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);flex-wrap:wrap;gap:8px 16px;margin-top:8px;padding:0;font-size:12px;font-weight:400;list-style:none;display:flex}.Hero-module-scss-module__twV7AW__nameHeroStatus li:not(:last-child):after{content:"·";margin-left:16px}.Hero-module-scss-module__twV7AW__topRow{border-bottom:1px solid var(--rule);flex-wrap:wrap;grid-area:top;justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex}@media (min-width:768px){.Hero-module-scss-module__twV7AW__topRow{gap:24px;padding-bottom:24px}}.Hero-module-scss-module__twV7AW__kicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:400}.Hero-module-scss-module__twV7AW__visuallyHiddenHeading{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.Hero-module-scss-module__twV7AW__stack{flex-direction:column;grid-area:stack;gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:flex}.Hero-module-scss-module__twV7AW__stackItem{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-soft);will-change:opacity,transform;grid-template-columns:3ch 1fr;align-items:baseline;gap:16px;font-size:12px;line-height:1.6;display:grid}.Hero-module-scss-module__twV7AW__stackIndex{color:var(--ink-mute);font-feature-settings:"tnum"}.Hero-module-scss-module__twV7AW__stackLine{color:var(--ink-2)}.Hero-module-scss-module__twV7AW__stackItem[data-state=visible]{opacity:1;transform:none}.Hero-module-scss-module__twV7AW__stage{grid-area:stage;min-height:180px;display:block;position:relative}@media (min-width:1024px){.Hero-module-scss-module__twV7AW__stage{min-height:0;padding-left:48px}}.Hero-module-scss-module__twV7AW__stageLine{font-family:var(--serif-display);letter-spacing:-.018em;color:var(--ink);-webkit-hyphens:none;hyphens:none;opacity:0;will-change:opacity,transform;pointer-events:none;justify-content:flex-start;align-items:center;font-size:clamp(28px,5.83333vw,84px);font-weight:500;line-height:1.05;display:flex;position:absolute;inset:0}.Hero-module-scss-module__twV7AW__stageText{text-wrap:balance;max-width:100%;display:inline-block}.Hero-module-scss-module__twV7AW__accentWord{color:var(--accent);font-style:italic}.Hero-module-scss-module__twV7AW__stageLine[data-state=past]{opacity:0}.Hero-module-scss-module__twV7AW__stageLine[data-state=active]{opacity:1}.Hero-module-scss-module__twV7AW__marginRule{pointer-events:none;display:none}@media (min-width:1024px){.Hero-module-scss-module__twV7AW__marginRule{width:2px;height:100%;display:block;position:absolute;top:0;left:0;overflow:visible}.Hero-module-scss-module__twV7AW__marginRule line{stroke:var(--accent);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.7}}.Hero-module-scss-module__twV7AW__nameBlock{border-top:1px solid var(--rule);opacity:0;will-change:opacity,transform;flex-direction:column;grid-area:name;gap:8px;padding-top:16px;display:flex}@media (min-width:768px){.Hero-module-scss-module__twV7AW__nameBlock{gap:16px;padding-top:32px}}@media (min-width:1024px){.Hero-module-scss-module__twV7AW__nameBlock{text-align:right;border-top:none;border-left:1px solid var(--rule);place-self:end;align-items:flex-end;padding-top:0;padding-left:32px}}.Hero-module-scss-module__twV7AW__nameBlock[data-state=visible]{opacity:1;transform:none}.Hero-module-scss-module__twV7AW__nameKicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:400}.Hero-module-scss-module__twV7AW__name{font-family:var(--serif-display);letter-spacing:-.02em;color:var(--ink);flex-direction:column;gap:0;margin:0;font-size:clamp(32px,9.16667vw - 12px,120px);font-weight:500;line-height:.94;display:flex}.Hero-module-scss-module__twV7AW__nameSecond{display:inline-block}.Hero-module-scss-module__twV7AW__scrollCue{grid-area:cue;justify-content:flex-end;align-items:center;gap:16px;padding-top:16px;display:flex}.Hero-module-scss-module__twV7AW__scrollCueLabel{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:400}.Hero-module-scss-module__twV7AW__scrollCueBar{background-color:var(--ink-soft);width:48px;height:1px;display:block}.Hero-module-scss-module__twV7AW__scrollCueCount{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-feature-settings:"tnum";font-size:12px;font-weight:400}.Hero-module-scss-module__twV7AW__mobileInner{width:100%;max-width:1400px;margin-inline:auto;padding-inline:24px}@media (min-width:768px){.Hero-module-scss-module__twV7AW__mobileInner{padding-inline:64px}}.Hero-module-scss-module__twV7AW__mobileInner{z-index:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;height:100%;display:flex;position:relative}.Hero-module-scss-module__twV7AW__mobileName{font-family:var(--serif-display);letter-spacing:-.02em;color:var(--ink);flex-direction:column;gap:0;margin:0;font-size:clamp(36px,26px + 2.08333vw,56px);font-weight:500;line-height:.94;animation:.8s cubic-bezier(.2,.7,.2,1) .15s both Hero-module-scss-module__twV7AW__mobileReveal;display:flex}.Hero-module-scss-module__twV7AW__mobileKicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:12px;font-weight:400;animation:.7s cubic-bezier(.2,.7,.2,1) .35s both Hero-module-scss-module__twV7AW__mobileReveal}.Hero-module-scss-module__twV7AW__mobilePoem{font-family:var(--serif-display);color:var(--ink-2);margin:0;margin-top:30vh;font-size:clamp(18px,16px + .416667vw,22px);font-style:italic;font-weight:500;line-height:1.4;animation:.8s cubic-bezier(.2,.7,.2,1) .55s both Hero-module-scss-module__twV7AW__mobileReveal}.Hero-module-scss-module__twV7AW__mobileScrollCue{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);letter-spacing:.1em;margin-top:16px;font-size:12px;font-weight:400;text-decoration:none;animation:.6s cubic-bezier(.2,.7,.2,1) .75s both Hero-module-scss-module__twV7AW__mobileReveal}.Hero-module-scss-module__twV7AW__mobileScrollCue:hover{color:var(--ink)}@keyframes Hero-module-scss-module__twV7AW__mobileReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.Hero-module-scss-module__twV7AW__mobileName,.Hero-module-scss-module__twV7AW__mobileKicker,.Hero-module-scss-module__twV7AW__mobilePoem,.Hero-module-scss-module__twV7AW__mobileScrollCue{animation:none}}@media (prefers-reduced-motion:no-preference){.Hero-module-scss-module__twV7AW__stackItem{opacity:0}.Hero-module-scss-module__twV7AW__hero[data-state=initial] .Hero-module-scss-module__twV7AW__stageLine[data-line="0"]{opacity:1}}@media (prefers-reduced-motion:reduce){.Hero-module-scss-module__twV7AW__stageLine,.Hero-module-scss-module__twV7AW__stackItem,.Hero-module-scss-module__twV7AW__nameBlock{will-change:auto!important;transition:none!important}.Hero-module-scss-module__twV7AW__stageLine{opacity:0;margin-bottom:16px;position:relative;inset:auto}.Hero-module-scss-module__twV7AW__stageLine[data-line="4"]{opacity:1}.Hero-module-scss-module__twV7AW__stack{gap:8px}.Hero-module-scss-module__twV7AW__stackItem{opacity:1;transform:none}.Hero-module-scss-module__twV7AW__stackItem:last-child{display:none}.Hero-module-scss-module__twV7AW__nameBlock{opacity:1;transform:none}}
.ProjectCard-module-scss-module__ZXKq7a__card{background-image:linear-gradient(120deg, var(--paper), var(--page-bg), color-mix(in oklab, var(--ink) 30%, transparent), var(--rule-soft));border:1px solid var(--rule);color:var(--ink);background-position:0 0;background-size:300%;border-radius:6px;flex-direction:column;padding:20px;transition:all .4s cubic-bezier(.2,.7,.2,1);display:flex;position:relative}.ProjectCard-module-scss-module__ZXKq7a__card:hover{--ink-soft:var(--ink);--ink-2:var(--ink);--accent:var(--ink);background-position:100% 0}.ProjectCard-module-scss-module__ZXKq7a__header{flex-direction:column;gap:16px;padding-bottom:16px;display:flex}@media (min-width:768px){.ProjectCard-module-scss-module__ZXKq7a__header{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:24px}}.ProjectCard-module-scss-module__ZXKq7a__heading{min-width:0}.ProjectCard-module-scss-module__ZXKq7a__title{font-family:var(--serif-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(36px,32px + .833333vw,44px);font-style:italic;font-weight:500;line-height:1.05}.ProjectCard-module-scss-module__ZXKq7a__titleLink{color:inherit;text-decoration:none}.ProjectCard-module-scss-module__ZXKq7a__titleLink:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.ProjectCard-module-scss-module__ZXKq7a__titleLink:focus-visible{outline:none}.ProjectCard-module-scss-module__ZXKq7a__titleLink:focus-visible:after{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.ProjectCard-module-scss-module__ZXKq7a__year{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px;font-size:12px;font-weight:400;transition:color .4s cubic-bezier(.2,.7,.2,1)}.ProjectCard-module-scss-module__ZXKq7a__media{aspect-ratio:16/10;background-color:var(--rule-soft);border-radius:3px;flex:none;order:-1;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:clip}@media (min-width:768px){.ProjectCard-module-scss-module__ZXKq7a__media{order:0;width:clamp(180px,42%,220px)}}.ProjectCard-module-scss-module__ZXKq7a__heroImage{object-fit:cover;object-position:top;transition:transform .5s cubic-bezier(.2,.7,.2,1)}@media (prefers-reduced-motion:no-preference){.ProjectCard-module-scss-module__ZXKq7a__card:hover .ProjectCard-module-scss-module__ZXKq7a__heroImage{transform:scale(1.04)}}.ProjectCard-module-scss-module__ZXKq7a__letter{font-family:var(--serif-display);letter-spacing:-.03em;font-size:64px;line-height:1}.ProjectCard-module-scss-module__ZXKq7a__letterStop{color:var(--accent)}.ProjectCard-module-scss-module__ZXKq7a__specs{flex-direction:column;display:flex}.ProjectCard-module-scss-module__ZXKq7a__spec{border-top:1px solid var(--rule);gap:4px 16px;padding-block:10px;display:grid}.ProjectCard-module-scss-module__ZXKq7a__spec:last-child{padding-bottom:0}@media (min-width:768px){.ProjectCard-module-scss-module__ZXKq7a__spec{grid-template-columns:96px minmax(0,1fr)}}.ProjectCard-module-scss-module__ZXKq7a__label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding-top:3px;font-size:12px;font-weight:400;transition:color .4s cubic-bezier(.2,.7,.2,1)}.ProjectCard-module-scss-module__ZXKq7a__role{color:var(--accent);font-size:14px;font-weight:500;transition:color .4s cubic-bezier(.2,.7,.2,1)}.ProjectCard-module-scss-module__ZXKq7a__skills{flex-wrap:wrap;gap:6px;display:flex}.ProjectCard-module-scss-module__ZXKq7a__skill{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);background-color:var(--rule-soft);border-radius:3px;padding:3px 8px;font-size:12px;font-weight:400}.ProjectCard-module-scss-module__ZXKq7a__blurb{color:var(--ink-2);font-size:14px;line-height:1.5;transition:color .4s cubic-bezier(.2,.7,.2,1)}.ProjectCard-module-scss-module__ZXKq7a__actions{flex-wrap:wrap;align-items:center;gap:0 16px;margin-top:4px;display:flex}.ProjectCard-module-scss-module__ZXKq7a__readMore{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:400;transition:color .4s cubic-bezier(.2,.7,.2,1)}.ProjectCard-module-scss-module__ZXKq7a__arrow{transition:transform .2s cubic-bezier(.2,.7,.2,1);display:inline-block}@media (prefers-reduced-motion:no-preference){.ProjectCard-module-scss-module__ZXKq7a__card:hover .ProjectCard-module-scss-module__ZXKq7a__arrow{transform:translate(4px)}}.ProjectCard-module-scss-module__ZXKq7a__link{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;z-index:2;color:var(--ink-soft);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px;align-items:center;gap:6px;padding-block:6px;font-size:12px;font-weight:400;transition:color .2s cubic-bezier(.2,.7,.2,1),text-decoration-color .2s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.ProjectCard-module-scss-module__ZXKq7a__link:hover{color:var(--ink);text-decoration-color:currentColor}.ProjectCard-module-scss-module__ZXKq7a__link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.ProjectCard-module-scss-module__ZXKq7a__media{animation:linear both ProjectCard-module-scss-module__ZXKq7a__mediaWipe;animation-timeline:view();animation-range:entry 5% entry 90%}.ProjectCard-module-scss-module__ZXKq7a__heroImage{animation:linear both ProjectCard-module-scss-module__ZXKq7a__mediaSettle;animation-timeline:view();animation-range:entry 5% cover 45%}}}@keyframes ProjectCard-module-scss-module__ZXKq7a__mediaWipe{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes ProjectCard-module-scss-module__ZXKq7a__mediaSettle{0%{scale:1.12}to{scale:1}}
.FilteredProjects-module-scss-module__e0oiXG__tabs{gap:8px;padding-bottom:32px;display:flex}@media (min-width:1024px){.FilteredProjects-module-scss-module__e0oiXG__tabs{padding-bottom:48px}}.FilteredProjects-module-scss-module__e0oiXG__tab{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:100px;padding:4px 16px;font-size:12px;font-weight:400;transition:background .2s cubic-bezier(.2,.7,.2,1),color .2s cubic-bezier(.2,.7,.2,1),border-color .2s cubic-bezier(.2,.7,.2,1)}.FilteredProjects-module-scss-module__e0oiXG__tab:hover,.FilteredProjects-module-scss-module__e0oiXG__tab:focus-visible{color:var(--ink);border-color:var(--ink-soft)}.FilteredProjects-module-scss-module__e0oiXG__tab.FilteredProjects-module-scss-module__e0oiXG__active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.FilteredProjects-module-scss-module__e0oiXG__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr));gap:20px;display:grid}
