:root{--cream:#f3efe3;--paper:#fffdf5;--ink:#11130f;--muted:#65665f;--rule:#11130f2e;--cobalt:#0d4eb8;--cobalt-deep:#072d70;--citron:#d8ef4b;--solar:#f4bf35;--coral:#f4775f;--dusk:#393152;--dusk-deep:#19192b;--serif:"Iowan Old Style", "Baskerville", "Times New Roman", serif;--sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--shell:min(1440px, calc(100vw - 64px));--radius:16px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--cream);min-width:320px;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:clip}body:before{z-index:1000;content:"";mix-blend-mode:multiply;opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");position:fixed;inset:-15%}::selection{background:var(--solar);color:var(--ink)}a{color:inherit;text-decoration:none}img,picture{display:block}img{max-width:100%}h1,h2,h3,h4,p{margin-top:0}main{overflow:clip}.atlas-shell{width:var(--shell);margin-inline:auto}.editorial-grid,.project-grid{-moz-column-gap:clamp(.75rem, 1.45vw, 1.5rem);grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(.75rem,1.45vw,1.5rem);display:grid}.skip-link{z-index:2000;background:var(--ink);color:var(--paper);padding:.7rem 1rem;font-size:.75rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--solar);outline-offset:4px;border-radius:3px}
.eyebrow,.flight-index,.project-meta{letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;font-weight:700;line-height:1.35}.eyebrow{margin-bottom:1.25rem}.atlas-picture{border-radius:var(--radius);background:#d9d4c6;position:relative;overflow:hidden}.atlas-picture img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}
.site-header{--atlas-corner-top:max(.75rem, env(safe-area-inset-top));z-index:100;pointer-events:none;position:fixed;inset:0}.site-header[data-current=home]{--atlas-corner-top:max(4.5rem, env(safe-area-inset-top))}.site-nav{pointer-events:none;position:static}.atlas-home-link,.atlas-route-index{color:var(--ink);pointer-events:auto}.atlas-home-link{top:var(--atlas-corner-top);left:max(clamp(1rem, 2vw, 2rem), env(safe-area-inset-left));border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:color-mix(in srgb, var(--cream) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:5.5rem;min-height:44px;transition:background-color .22s ease, border-color .22s ease, transform .3s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:0 .85rem;display:inline-flex;position:fixed;box-shadow:0 .35rem 1.25rem #19192b1a}.atlas-home-link__arrow{width:1.15rem;height:1.15rem;transition:transform .3s var(--ease-out);display:block}.atlas-home-link__label{letter-spacing:.12em;text-transform:uppercase;font-size:.58rem;font-weight:700;line-height:1}.atlas-home-link:hover,.atlas-home-link:focus-visible{border-color:color-mix(in srgb, var(--ink) 34%, transparent);background:var(--cream);transform:translateY(-1px)}.atlas-home-link:hover .atlas-home-link__arrow,.atlas-home-link:focus-visible .atlas-home-link__arrow{transform:translate(-.18rem)}.atlas-route-index{top:var(--atlas-corner-top);right:max(clamp(1rem, 2vw, 2rem), env(safe-area-inset-right));min-width:9.5rem;text-shadow:0 0 .7rem var(--cream), 0 0 .7rem var(--cream);gap:.05rem;margin:0;padding:0;list-style:none;display:grid;position:fixed}.site-header[data-current=home] .atlas-route-index{top:auto;bottom:clamp(7rem,14vh,9rem)}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-route-index{grid-template-columns:repeat(4,max-content);gap:clamp(.7rem,1.2vw,1rem);min-width:0;position:relative;top:auto;right:auto}.site-header[data-index-visible=true]:not([data-current=home]) .site-nav{top:var(--atlas-corner-top);right:max(clamp(1rem, 2vw, 2rem), env(safe-area-inset-right));pointer-events:auto;align-items:center;gap:clamp(.7rem,1.2vw,1rem);display:flex;position:fixed}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-home-link{min-width:5.5rem;padding:0 .85rem;position:relative;top:auto;left:auto}.atlas-route-index li{display:block}.atlas-route-link{letter-spacing:.12em;text-transform:uppercase;grid-template-columns:1.5rem minmax(6.75rem,auto);align-items:center;gap:.65rem;min-height:28px;padding:.25rem 0;font-size:.62rem;font-weight:700;line-height:1;display:grid;position:relative}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-route-link{grid-template-columns:max-content max-content;gap:.3rem}.atlas-route-link:before{content:"";opacity:0;width:1px;height:1rem;transition:background-color .22s ease, opacity .22s ease, transform .3s var(--ease-out);background:currentColor;position:absolute;top:50%;left:-.55rem;transform:translateY(-50%)scaleY(.25)}.atlas-route-link[aria-current]:before,.atlas-route-link[data-active-destination=true]:before{background:var(--solar);opacity:1;transform:translateY(-50%)scaleY(1)}.atlas-route-link__index{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.08em;font-size:.56rem;transition:color .22s}.atlas-route-link__label{transition:transform .3s var(--ease-out)}.atlas-route-link:hover .atlas-route-link__label,.atlas-route-link:focus-visible .atlas-route-link__label{transform:translate(.22rem)}.atlas-route-link:hover .atlas-route-link__index,.atlas-route-link:focus-visible .atlas-route-link__index,.atlas-route-link[aria-current] .atlas-route-link__index,.atlas-route-link[data-active-destination=true] .atlas-route-link__index{color:var(--ink)}.text-link,.repository-link,.site-footer a{letter-spacing:.12em;text-transform:uppercase;font-size:.67rem;font-weight:700;position:relative}.text-link:after,.repository-link:after,.site-footer a:after{content:"";transform-origin:100%;height:1px;transition:transform .3s var(--ease-out);background:currentColor;position:absolute;bottom:-.35rem;left:0;right:0;transform:scaleX(0)}.text-link:hover:after,.repository-link:hover:after,.site-footer a:hover:after,.text-link:focus-visible:after,.repository-link:focus-visible:after,.site-footer a:focus-visible:after{transform-origin:0;transform:scaleX(1)}@media (max-width:840px){.site-header{--atlas-corner-top:auto;height:calc(4.75rem + env(safe-area-inset-bottom));background:linear-gradient(0deg,#f3efe3fa 0,#f3efe3e0 68%,#0000 100%);top:auto}.site-nav{right:max(.75rem, env(safe-area-inset-right));bottom:max(.35rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));pointer-events:auto;grid-template-columns:44px minmax(0,1fr);align-items:center;min-height:52px;display:grid;position:absolute}.site-header[data-current=home] .site-nav{grid-template-columns:minmax(0,1fr)}.site-header[data-index-visible=true]:not([data-current=home]) .site-nav{top:auto;right:max(.75rem, env(safe-area-inset-right));bottom:max(.35rem, env(safe-area-inset-bottom));left:max(.75rem, env(safe-area-inset-left));grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr);gap:0;display:grid;position:absolute}.site-header[data-index-visible=false]{background:0 0;height:0;top:0;bottom:auto}.site-header[data-index-visible=false] .site-nav{min-height:0;display:block;position:static}.atlas-home-link{min-width:44px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;align-self:stretch;gap:0;padding:0;position:relative;top:auto;left:auto}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-home-link{width:auto;min-width:5.5rem;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;gap:0;padding:0 .35rem}.site-header[data-index-visible=false] .atlas-home-link{top:max(.75rem, env(safe-area-inset-top));left:max(.75rem, env(safe-area-inset-left));border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:color-mix(in srgb, var(--cream) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;gap:.45rem;min-width:5.5rem;padding:0 .85rem;position:fixed;box-shadow:0 .35rem 1.25rem #19192b1a}.site-header[data-index-visible=false] .atlas-home-link:hover,.site-header[data-index-visible=false] .atlas-home-link:focus-visible{background:var(--cream)}.atlas-route-index{min-width:0;text-shadow:none;grid-template-columns:repeat(4,minmax(0,1fr));align-self:stretch;gap:0;display:grid;position:relative;top:auto;right:auto}.site-header[data-current=home] .atlas-route-index{bottom:auto}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-route-index{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.atlas-route-link{text-align:center;grid-template-rows:1.35rem auto;grid-template-columns:none;place-items:center;gap:.1rem;min-width:0;min-height:44px;padding:.2rem 0;display:grid}.site-header[data-index-visible=true]:not([data-current=home]) .atlas-route-link{grid-template-columns:none;gap:.1rem}.atlas-route-link:before{width:.9rem;height:1px;top:.12rem;left:50%;transform:translate(-50%)scaleX(.25)}.atlas-route-link[aria-current]:before,.atlas-route-link[data-active-destination=true]:before{transform:translate(-50%)scaleX(1)}.atlas-route-link__index{align-self:end;font-size:.52rem}.atlas-route-link__label{letter-spacing:.05em;text-overflow:clip;max-width:100%;font-size:clamp(.42rem,1.8vw,.5rem);overflow:hidden}.atlas-route-link:hover .atlas-route-link__label,.atlas-route-link:focus-visible .atlas-route-link__label{transform:translateY(-1px)}}
.portfolio-gateway{z-index:50;background:var(--paper);height:100svh;min-height:0;color:var(--ink);contain:layout paint style;contain-intrinsic-size:auto 100svh;content-visibility:auto;isolation:isolate;position:relative;overflow:hidden}.portfolio-gateway__meta{z-index:4;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;grid-template-columns:repeat(3,1fr);font-size:.62rem;font-weight:700;line-height:1.35;display:grid;position:absolute;top:clamp(.9rem,2.2vh,1.3rem);left:clamp(2rem,4vw,4rem);right:clamp(2rem,4vw,4rem)}.portfolio-gateway__meta p{margin:0}.portfolio-gateway__meta p:nth-child(2){text-align:center}.portfolio-gateway__meta p:last-child{text-align:right}.portfolio-gateway__sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portfolio-gateway__introduction{z-index:4;font-family:var(--serif);letter-spacing:.025em;text-align:center;white-space:nowrap;margin:0;font-size:clamp(1.05rem,1.8vw,1.55rem);font-style:italic;line-height:1;position:absolute;top:clamp(2.8rem,6.5vh,3.7rem);left:50%;transform:translate(-50%)}.portfolio-gateway__word{z-index:0;font-family:var(--serif);letter-spacing:max(.005em,1px);white-space:nowrap;margin:0;font-size:clamp(6rem,14.8vw,17rem);font-weight:400;line-height:.74;position:absolute;top:clamp(5.4rem,11.5vh,6.7rem);left:50%;transform:translate(-50%)}.portfolio-gateway__word>span{display:inline-block}.portfolio-gateway__word-space{width:.22em}.portfolio-gateway__carousel{z-index:2;outline-offset:-5px;position:absolute;inset:0}.portfolio-gateway:not([data-gateway-entrance=settled]) .portfolio-gateway__carousel{pointer-events:none}.portfolio-gateway:not([data-gateway-entrance=settled]) .portfolio-gateway__visual{cursor:default}.portfolio-gateway__visual{cursor:grab;isolation:isolate;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:min(56.5rem,82vw);height:min(35.5rem,74svh);position:absolute;top:clamp(13rem,29vh,16rem);left:50%;transform:translate(-50%)}.portfolio-gateway__carousel[data-dragging=true] .portfolio-gateway__visual{cursor:grabbing}.portfolio-gateway__carousel[data-dragging=true] .portfolio-gateway__fallback-ring{transition:none}.portfolio-gateway__side-arrow{z-index:4;color:#11130f94;cursor:pointer;width:clamp(2.25rem,3vw,2.75rem);height:clamp(2.25rem,3vw,2.75rem);font:inherit;background:#faf8f461;border:1px solid #11130f33;border-radius:50%;place-items:center;padding:0;font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1;transition:background .18s,border-color .18s,color .18s,transform .18s;display:grid;position:absolute;top:34%;transform:translate(-50%,-50%)}.portfolio-gateway__side-arrow svg{width:1em;height:1em;display:block}.portfolio-gateway__side-arrow--previous{left:calc(50% - min(21.5rem,45vw))}.portfolio-gateway__side-arrow--next{left:calc(50% + min(21.5rem,45vw))}.portfolio-gateway__side-arrow:hover,.portfolio-gateway__side-arrow:focus-visible{color:var(--ink);background:#faf8f4c2;border-color:#11130f57;transform:translate(-50%,-50%)scale(1.05)}.portfolio-gateway__side-arrow:focus-visible{outline-offset:.2rem;outline:2px solid #11130f94}.portfolio-gateway__fallback{z-index:1;perspective:72rem;transition:opacity .24s;position:absolute;inset:0}.portfolio-gateway__ground-shadow{z-index:0;filter:blur(clamp(.28rem,.6vw,.55rem));opacity:.28;pointer-events:none;background:#0a0b08;border-radius:50%;width:min(33rem,74vw);height:min(2.35rem,6vw);position:absolute;top:69%;left:50%;transform:translate(-50%)}.portfolio-gateway__fallback-ring{--gateway-cylinder-radius:min(23.5rem, 42.5vw);--gateway-cylinder-slice-width:min(3.03rem, 5.48vw);--gateway-segments-per-category:12;width:0;height:68%;transform-style:preserve-3d;transition:transform .86s var(--ease-out);position:absolute;top:0;left:50%}.portfolio-gateway__fallback-slice{width:calc(var(--gateway-cylinder-slice-width) + 1px);height:100%;margin-left:calc(-.5 * var(--gateway-cylinder-slice-width));transform:rotateY(var(--gateway-segment-angle)) translateZ(var(--gateway-cylinder-radius));transform-style:preserve-3d;position:absolute;top:0;left:50%}.portfolio-gateway__fallback-slice-body{background-image:linear-gradient(180deg, #ffffff1f, transparent 70%), var(--gateway-segment-image);background-position:center, var(--gateway-segment-position) center;backface-visibility:hidden;transform-style:preserve-3d;background-repeat:no-repeat;background-size:100% 100%,1200% 100%;position:absolute;inset:0;overflow:hidden}.portfolio-gateway__surface-label{z-index:1;top:0;left:calc(-1 * var(--gateway-surface-label-index) * var(--gateway-cylinder-slice-width));width:calc(var(--gateway-cylinder-slice-width) * var(--gateway-segments-per-category));color:#fffcf3f5;height:100%;font-family:var(--serif);letter-spacing:-.06em;mix-blend-mode:normal;filter:drop-shadow(0 1px .18rem #0c0e0c61);opacity:.98;paint-order:stroke fill;pointer-events:none;text-shadow:0 1px #ffffff6b,0 2px .28rem #0d0f0c57;-webkit-text-stroke:clamp(.5px, .065vw, .8px) #12131061;white-space:nowrap;place-items:center;font-size:clamp(3.7rem,7vw,6.8rem);line-height:.9;display:grid;position:absolute;transform:translateZ(.1px)}.portfolio-gateway__surface-link{z-index:3;color:#0000;font-family:var(--serif);letter-spacing:-.06em;white-space:nowrap;border-radius:999px;padding:.6rem .9rem;font-size:clamp(3.7rem,7vw,6.8rem);line-height:.9;text-decoration:none;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.portfolio-gateway__portal-source{z-index:2;pointer-events:none;border-radius:50%/8%;width:min(36.36rem,65.76vw);height:62%;position:absolute;top:2%;left:50%;transform:translate(-50%)}.portfolio-gateway__surface-link-text{opacity:0}.portfolio-gateway__surface-link:focus-visible{outline-offset:-.45rem;outline:2px solid #fffdf5e0}@media (max-width:720px){.portfolio-gateway{height:calc(100svh - 4.75rem - env(safe-area-inset-bottom));min-height:0}.portfolio-gateway__meta{-moz-column-gap:.45rem;letter-spacing:.09em;column-gap:.45rem;font-size:.48rem;top:.8rem;left:.875rem;right:.875rem}.portfolio-gateway__introduction{max-width:calc(100vw - 2rem);font-size:clamp(.92rem,4.2vw,1.12rem);top:2.8rem}.portfolio-gateway__word{font-size:clamp(3.4rem,14vw,6.4rem);line-height:.8;top:30%;transform:translate(-50%,-50%)}.portfolio-gateway__visual{width:min(100vw,31rem);height:min(27rem,52svh);top:31%}.portfolio-gateway__side-arrow{top:31%}.portfolio-gateway__fallback-ring{--gateway-cylinder-radius:min(11.2rem, 46vw);--gateway-cylinder-slice-width:min(1.44rem, 5.9vw);width:0;height:58%;top:2%;left:50%}.portfolio-gateway__ground-shadow{filter:blur(.3rem);opacity:.26;width:min(20.5rem,76vw);height:min(1.8rem,7vw);top:62%}.portfolio-gateway__surface-label{font-size:clamp(2.25rem,11vw,3.4rem)}.portfolio-gateway__surface-link{padding:.5rem .7rem;font-size:clamp(2.25rem,11vw,3.4rem);top:31%}.portfolio-gateway__portal-source{width:min(17.28rem,70.8vw);height:50%;top:1%}}@media (prefers-reduced-motion:reduce){.portfolio-gateway__fallback,.portfolio-gateway__fallback-ring,.portfolio-gateway__fallback-slice-body,.portfolio-gateway__side-arrow{transition:none}}
.craft-section{background:var(--cream);isolation:isolate;height:calc(100svh - 59px);min-height:0;position:relative;overflow:hidden}.skill-workbench{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.65rem,1.2vw,1.1rem);width:100%;height:100%;min-height:0;padding:clamp(1rem,2.2vw,2rem) clamp(1rem,3vw,3rem) clamp(.85rem,1.8vw,1.6rem);display:grid;position:relative}.skill-workbench:before{z-index:-1;background:linear-gradient(var(--page-rule) 1px, transparent 1px), linear-gradient(90deg, var(--page-rule) 1px, transparent 1px);content:"";opacity:.34;pointer-events:none;background-size:clamp(4rem,7vw,7.5rem) clamp(4rem,7vw,7.5rem);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000002e,#0000 65%);mask-image:linear-gradient(#0000002e,#0000 65%)}.skill-workbench__header{justify-content:space-between;align-items:end;gap:2rem;min-width:0;display:flex}.skill-workbench__header .eyebrow{margin-bottom:clamp(.35rem,.8vw,.65rem)}.skill-workbench__header h2{font-family:var(--serif);letter-spacing:-.075em;white-space:nowrap;margin:0;font-size:clamp(3.35rem,6.2vw,6.6rem);font-weight:500;line-height:.78}.skill-workbench__mode{border:1px solid var(--ink);appearance:none;background:var(--ink);min-height:44px;color:var(--cream);cursor:pointer;font:inherit;letter-spacing:.08em;text-transform:uppercase;transition:background-color .16s var(--ease-out), color .16s var(--ease-out), transform .16s var(--ease-out);border-radius:999px;align-items:center;gap:.45rem;padding:.7rem .95rem;font-size:.64rem;font-weight:750;display:inline-flex}.skill-workbench__status{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skill-workbench__mode>span{color:currentColor;font-size:1rem}.skill-workbench__mode:is(:hover,:focus-visible){background:var(--cream);color:var(--ink);transform:translateY(-2px)}.skill-workbench__interactive{min-height:0}.skill-workbench__arena{touch-action:none;background:radial-gradient(circle at 50% 32%,#ffffffc2,#0000 54%),#f8f5eaed;border:1px solid #11130f6b;border-radius:clamp(.85rem,1.4vw,1.35rem);height:100%;min-height:0;position:relative;overflow:hidden;box-shadow:0 1.3rem 3.5rem #11130f12,inset 0 0 0 1px #ffffff7a}.skill-workbench__arena:after{z-index:3;border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 -1.3rem 2.5rem #11130f0d}.skill-workbench__list{z-index:1;opacity:0;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.45rem,.9vw,.85rem);width:100%;height:100%;min-height:0;margin:0;padding:clamp(1.4rem,2.4vw,2.5rem) clamp(1rem,2vw,2rem);list-style:none;display:grid;position:relative}.skill-workbench[data-ready=true] .skill-workbench__list{opacity:1}.skill-workbench__item{opacity:1;min-width:0;transition:filter .18s var(--ease-out), opacity .18s var(--ease-out);place-items:center;margin:0;display:grid}.skill-workbench__item[data-dragging=true]{z-index:4}.skill-workbench__token{--skill-token-gap:clamp(.42rem, .75vw, .72rem);--skill-token-glyph:clamp(1.25rem, 1.7vw, 1.7rem);--skill-token-height:48px;--skill-token-padding-block:.54rem;--skill-token-padding-inline:.62rem;width:max-content;min-width:0;max-width:none;min-height:var(--skill-token-height);padding:var(--skill-token-padding-block) var(--skill-token-padding-inline);border:1.5px solid var(--skill-category-color);appearance:none;background:color-mix(in srgb, var(--skill-category-color) 12%, #fffef8);color:var(--ink);cursor:grab;font:inherit;align-items:center;gap:var(--skill-token-gap);grid-template-columns:var(--skill-token-glyph) max-content;letter-spacing:-.01em;text-align:left;transform-origin:50%;-webkit-user-select:none;user-select:none;will-change:transform;border-radius:.7rem;font-size:clamp(.56rem,.72vw,.72rem);font-weight:750;line-height:1.05;display:grid;box-shadow:0 .38rem .85rem #11130f14,inset 0 1px #ffffffeb}.skill-workbench[data-dragging] .skill-workbench__token{cursor:grabbing}.skill-workbench__item[data-dragging=true] .skill-workbench__token{box-shadow:0 1rem 2rem #11130f33, 0 0 0 2px color-mix(in srgb, var(--skill-category-color) 30%, transparent)}.skill-workbench[data-physics=stuck] .skill-workbench__token{cursor:default}.skill-workbench__token:is(:hover,:focus-visible){z-index:2;background:color-mix(in srgb, var(--skill-category-color) 18%, #fffef8);box-shadow:0 .7rem 1.3rem #11130f21, 0 0 0 2px color-mix(in srgb, var(--skill-category-color) 24%, transparent);outline:none}.skill-workbench__glyph{pointer-events:none;width:100%;height:auto;display:block}.skill-workbench__token>span{pointer-events:none;text-overflow:clip;white-space:nowrap;overflow:visible}.skill-workbench__hint{z-index:2;color:#11130f70;letter-spacing:.11em;pointer-events:none;text-transform:uppercase;margin:0;font-size:.52rem;font-weight:700;position:absolute;bottom:.48rem;right:1rem}.skill-workbench__filters{justify-content:center;align-items:center;gap:clamp(.35rem,1vw,.8rem);min-width:0;display:flex}.skill-workbench__filters button{appearance:none;min-height:36px;color:var(--ink);cursor:pointer;font:inherit;letter-spacing:.055em;text-transform:uppercase;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.42rem;padding:.45rem clamp(.55rem,1vw,.85rem);font-size:clamp(.54rem,.68vw,.66rem);font-weight:750;display:inline-flex}.skill-workbench__filters button>span{background:var(--skill-category-color);width:.55rem;height:.55rem;box-shadow:0 0 0 2px color-mix(in srgb, var(--skill-category-color) 12%, transparent);border:1px solid #11130f29;border-radius:50%}.skill-workbench__filters button:is(:hover,:focus-visible,[aria-pressed=true]){border-color:var(--skill-category-color);background:#fffdf5b8;outline:none}.skill-workbench[data-active-category=languages] .skill-workbench__item:not([data-skill-category=languages]),.skill-workbench[data-active-category=frameworks] .skill-workbench__item:not([data-skill-category=frameworks]),.skill-workbench[data-active-category=cloud-devops] .skill-workbench__item:not([data-skill-category=cloud-devops]),.skill-workbench[data-active-category=databases] .skill-workbench__item:not([data-skill-category=databases]),.skill-workbench[data-active-category=ai-ml] .skill-workbench__item:not([data-skill-category=ai-ml]),.skill-workbench[data-active-category=languages] .skill-logo:not([data-skill-category=languages]),.skill-workbench[data-active-category=frameworks] .skill-logo:not([data-skill-category=frameworks]),.skill-workbench[data-active-category=cloud-devops] .skill-logo:not([data-skill-category=cloud-devops]),.skill-workbench[data-active-category=databases] .skill-logo:not([data-skill-category=databases]),.skill-workbench[data-active-category=ai-ml] .skill-logo:not([data-skill-category=ai-ml]){filter:grayscale();opacity:.15}.skill-workbench__fallback{min-height:0;display:none}.skill-workbench__noscript{z-index:5;background:var(--cream);padding:1.5rem;position:absolute;inset:0}.craft-logo-grid{background:#fffdf5d1;border:1px solid #11130f47;border-radius:.9rem;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;height:100%;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.skill-logo{border:1.5px solid var(--skill-category-color);background:color-mix(in srgb, var(--skill-category-color) 10%, #fffef8);min-width:0;min-height:3.25rem;transition:filter .18s var(--ease-out), opacity .18s var(--ease-out);grid-template-columns:1.4rem minmax(0,1fr);align-items:center;gap:.4rem;margin:0;padding:.55rem;display:grid;position:relative}.skill-logo__glyph{width:100%;height:auto}.skill-logo__name{min-width:0;color:var(--ink);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.52rem,.64vw,.64rem);font-weight:750;line-height:1.05;overflow:hidden}.skill-logo[data-skill-logo=PostgreSQL] .skill-logo__name,.skill-logo[data-skill-logo=Kubernetes] .skill-logo__name,.skill-logo[data-skill-logo=TensorFlow] .skill-logo__name{letter-spacing:.02em;overflow-wrap:anywhere;padding-inline:.2rem;font-size:clamp(.4rem,.52vw,.52rem)}@media (max-height:820px) and (min-width:721px){.skill-workbench{gap:.55rem;padding-top:.8rem;padding-bottom:.65rem}.skill-workbench__header .eyebrow{margin-bottom:.22rem}.skill-workbench__header h2{font-size:clamp(3rem,5.5vw,5.2rem)}.skill-workbench__list{gap:.4rem .65rem;padding-block:1.25rem}.skill-workbench__token{min-height:min(var(--skill-token-height), 44px);padding-block:.4rem}.skill-workbench__filters button{min-height:32px;padding-block:.35rem}}@media (max-width:720px){.craft-section{height:auto;min-height:calc(100svh - 59px);overflow:visible}.skill-workbench{height:auto;min-height:calc(100svh - 59px);padding:1.2rem .85rem calc(1.35rem + 4.75rem + env(safe-area-inset-bottom));grid-template-rows:auto auto auto;gap:1rem}.skill-workbench__header{align-items:start;gap:.75rem}.skill-workbench__header h2{white-space:normal;font-size:clamp(2.65rem,13.5vw,4.2rem);line-height:.84}.skill-workbench__mode,.skill-workbench__interactive{display:none}.skill-workbench__fallback{display:block}.craft-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;overflow:visible}.skill-logo{min-height:3.6rem}.skill-logo__name{font-size:.62rem}.skill-workbench__filters{flex-wrap:wrap;justify-content:flex-start;gap:.25rem}.skill-workbench__filters button{min-height:34px;font-size:.56rem}}@media (prefers-reduced-motion:reduce){.skill-workbench__mode,.skill-workbench__interactive{display:none}.skill-workbench__fallback{display:block}.skill-workbench *,.skill-workbench :before,.skill-workbench :after{scroll-behavior:auto!important;transition:none!important}}
.experience-section{--experience-coral:#a13f32;--experience-gold:var(--page-accent);--experience-rule:var(--page-rule);--experience-rule-strong:#11130f4d;--experience-surface:var(--page-surface);background:var(--experience-surface);color:var(--ink);overflow:clip}.experience-timeline{isolation:isolate;min-height:calc(100svh - 58px);padding-bottom:clamp(4rem,8vw,8rem);position:relative}.experience-timeline__atmosphere{z-index:-2;pointer-events:none;height:min(48rem,92svh);position:absolute;inset:0 0 auto;overflow:hidden}.experience-timeline__art,.experience-timeline__art img{width:100%;height:100%;display:block}.experience-timeline__art img{-o-object-fit:cover;object-fit:cover;-o-object-position:66% 54%;object-position:66% 54%;filter:saturate(.38)contrast(.9)brightness(1.12);opacity:.24;transform:scale(1.015)}.experience-timeline__shade,.experience-timeline__glow{position:absolute;inset:0}.experience-timeline__shade{background:linear-gradient(180deg, #f3efe347, #f3efe3c7 65%, var(--experience-surface) 96%), linear-gradient(90deg, #f3efe3f0, #f3efe36b 72%)}.experience-timeline__glow{mix-blend-mode:screen;background:radial-gradient(circle at 82% 22%,#f4c84a2e,#0000 23%),radial-gradient(circle at 8% 42%,#ff7b6317,#0000 24%)}.experience-timeline__intro{gap:2rem;padding-top:clamp(4rem,8vw,7.5rem);padding-bottom:clamp(3rem,6vw,5.5rem);display:grid}.experience-timeline__intro .eyebrow{color:var(--experience-coral);margin-bottom:.8rem}.experience-timeline__intro h2{color:var(--ink);font-family:var(--serif);letter-spacing:-.075em;margin:0;font-size:clamp(4.8rem,17vw,8rem);font-weight:500;line-height:.78}.experience-timeline__ledger{position:relative}.experience-timeline__rail{max-width:100%;position:relative}.experience-timeline__map{border:1px solid var(--experience-rule);background:linear-gradient(90deg,#a13f3212,#0000 36%),#fffdf5a3;margin-bottom:clamp(1.5rem,3vw,2.5rem);padding:1rem 1.25rem 1.1rem;position:relative;box-shadow:0 1.5rem 5rem #11130f14}.experience-timeline__map-meta{color:#11130f8a;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;font-size:.58rem;display:flex}.experience-timeline__map-meta>span:last-child{color:#11130f61;font-size:.5rem}.experience-timeline__plot{min-height:8.4rem;margin-top:1.05rem;position:relative}.experience-timeline__spine{height:3px;position:absolute;top:2.35rem;left:.7rem;right:.7rem}.experience-timeline__spine-line{background:linear-gradient(90deg, var(--experience-coral), var(--experience-gold));border-radius:999px;height:3px;position:absolute;inset:0;box-shadow:0 0 0 1px #11130f14,0 0 1.5rem #a13f3233}.experience-timeline__axis-marker{background:var(--ink);width:1px;height:.65rem;position:absolute;top:-.3rem}.experience-timeline__axis-marker span{color:#11130f80;font-family:var(--mono);letter-spacing:.08em;white-space:nowrap;font-size:.48rem;font-style:normal;position:absolute;top:calc(100% + .35rem);transform:translate(-50%)}.experience-timeline__axis-marker:first-child span{transform:none}.experience-timeline__axis-marker:last-child span{transform:translate(-100%)}.experience-timeline__duration-lines,.experience-timeline__list,.experience-timeline__highlights,.experience-timeline__tags{margin:0;padding:0;list-style:none}.experience-timeline__duration-lines{background:repeating-linear-gradient(90deg,#11130f0a 0 1px,#0000 1px 10%);height:5rem;position:absolute;top:3.35rem;left:.7rem;right:.7rem}.experience-timeline__duration-line{top:calc(var(--experience-lane-index) * 1.65rem);right:calc(100% - var(--experience-lane-end));left:var(--experience-lane-start);min-width:1.25rem;height:1.5rem;position:absolute}.experience-timeline__duration-link{color:#11130f9e;text-decoration:none;display:block;position:absolute;inset:0}.experience-timeline__duration-bar{background:#ff7b63b8;border-radius:999px;height:2px;transition:background-color .18s,box-shadow .18s,transform .18s;position:absolute;top:calc(50% - 1px);left:0;right:0}.experience-timeline__duration-bar:before,.experience-timeline__duration-bar:after{background:var(--experience-surface);content:"";border:1px solid;border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:50%;transform:translate(-50%,-50%)}.experience-timeline__duration-bar:after{background:var(--experience-gold);right:0;transform:translate(50%,-50%)}.experience-timeline__line-tooltip{z-index:4;border:1px solid var(--experience-rule-strong);width:max-content;max-width:min(24rem,74vw);color:var(--ink);font-family:var(--mono);opacity:0;pointer-events:none;background:#fffdf5f5;gap:.18rem;padding:.55rem .65rem;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:calc(100% + .1rem);left:0;transform:translateY(-.2rem);box-shadow:0 .9rem 2.2rem #11130f2e}.experience-timeline__line-tooltip strong{font-family:var(--serif);letter-spacing:-.02em;font-size:1rem;font-weight:500;line-height:1}.experience-timeline__line-tooltip>span{color:var(--experience-coral);letter-spacing:.07em;text-transform:uppercase;font-size:.47rem;line-height:1.35}.experience-timeline__duration-link:is(:hover,:focus){z-index:3;color:var(--experience-gold)}.experience-timeline__duration-link:is(:hover,:focus) .experience-timeline__duration-bar{background:var(--experience-gold);transform:scaleY(1.5);box-shadow:0 0 1rem #f4c84a61}.experience-timeline__duration-link:is(:hover,:focus) .experience-timeline__line-tooltip,.experience-timeline__milestone:is(:hover,:focus) .experience-timeline__line-tooltip{opacity:1;transform:translateY(0)}.experience-timeline__duration-link:focus-visible,.experience-timeline__milestone:focus-visible{outline:2px solid var(--ink);outline-offset:.2rem}.experience-timeline__milestone{z-index:5;bottom:calc(100% + .35rem);left:var(--experience-position);width:2.4rem;height:2.4rem;color:var(--experience-gold);place-items:center;text-decoration:none;display:grid;position:absolute;transform:translate(-50%)}.experience-timeline__milestone:after{background:linear-gradient(var(--experience-gold), transparent);content:"";width:1px;height:.85rem;position:absolute;top:calc(100% - .18rem);left:50%}.experience-timeline__milestone-star{filter:drop-shadow(0 0 .7rem #f4c84a6b);font-size:2rem;line-height:1;transition:transform .18s}.experience-timeline__milestone:is(:hover,:focus) .experience-timeline__milestone-star{transform:rotate(45deg)scale(1.08)}.experience-timeline__line-tooltip--milestone{text-align:right;inset:auto 0 calc(100% + .15rem) auto}.experience-timeline__list{border-bottom:1px solid var(--experience-rule);display:grid;position:relative}.experience-timeline__list:before{background:linear-gradient(var(--experience-coral), var(--experience-gold) 72%, #11130f3d);content:"";width:1px;position:absolute;top:0;bottom:0;left:1.45rem}.experience-timeline__stop{border-top:1px solid var(--experience-rule);background:#fffdf538;transition:background-color .22s,box-shadow .22s;position:relative}.experience-timeline__stop:has(details[open]){background:#fffdf5c7}.experience-timeline__stop[data-timeline-highlighted=true],.experience-timeline__stop:is(:hover,:focus-within){z-index:2;box-shadow:inset 0 0 0 1px #a13f3294, 0 0 2.5rem color-mix(in srgb, var(--experience-gold) 22%, transparent);background-color:#fffdf5eb}.experience-timeline__stop article{position:relative}.experience-timeline__stop-header{cursor:pointer;align-items:center;gap:.8rem 1rem;min-width:0;padding:1.15rem 0;list-style:none;display:grid}.experience-timeline__stop-header::-webkit-details-marker{display:none}.experience-timeline__node{z-index:1;align-content:space-between;justify-items:center;width:2.9rem;height:3.7rem;display:grid;position:relative}.experience-timeline__node>span{color:var(--experience-coral);font-family:var(--mono);letter-spacing:.12em;font-size:.57rem}.experience-timeline__node img,.experience-timeline__node-mark{width:2.5rem;height:2.5rem;box-shadow:0 0 0 .35rem var(--experience-surface);-o-object-fit:contain;object-fit:contain;background:#fffdf5eb;border:1px solid #11130f3d;border-radius:50%;padding:.35rem}.experience-timeline__node-mark{background:radial-gradient(circle, var(--experience-coral) 0 .22rem, transparent .24rem), #11130f0f;display:block}.experience-timeline__identity{min-width:0}.experience-timeline__identity>span:first-child{color:var(--experience-coral);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .32rem;font-size:.61rem;line-height:1.45;display:block}.experience-timeline__identity>[role=heading]{color:var(--ink);font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(1.9rem,7.8vw,3rem);font-weight:500;line-height:.95;display:block}.experience-timeline__period,.experience-timeline__location{color:#11130fad;font-family:var(--mono);letter-spacing:.055em;text-transform:uppercase;gap:.2rem;margin:0;font-size:.65rem;line-height:1.45;display:grid}.experience-timeline__period>span,.experience-timeline__location>span{color:#11130f66;letter-spacing:.12em;font-size:.52rem}.experience-timeline__toggle{border:1px solid var(--experience-rule-strong);min-width:7.6rem;min-height:44px;color:var(--ink);cursor:pointer;font:inherit;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:#fffdf54d;border-radius:999px;justify-content:space-between;align-items:center;gap:.85rem;padding:.75rem .9rem;font-size:.59rem;transition:border-color .18s,background-color .18s,color .18s;display:inline-flex}.experience-timeline__toggle-open{display:none}.experience-timeline__toggle i{width:.8rem;height:.8rem;display:block;position:relative}.experience-timeline__toggle i:before,.experience-timeline__toggle i:after{content:"";background:currentColor;width:.8rem;height:1px;transition:transform .18s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.experience-timeline__toggle i:after{transform:translate(-50%,-50%)rotate(90deg)}.experience-timeline__stop details[open] .experience-timeline__toggle{border-color:var(--experience-gold);background:var(--experience-gold);color:var(--ink)}.experience-timeline__stop details[open] .experience-timeline__toggle-closed{display:none}.experience-timeline__stop details[open] .experience-timeline__toggle-open{display:inline}.experience-timeline__stop details[open] .experience-timeline__toggle i:after{transform:translate(-50%,-50%)rotate(0)}.experience-timeline__stop-header:is(:hover,:focus-visible) .experience-timeline__toggle{border-color:var(--experience-gold)}.experience-timeline__stop-header:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.experience-timeline__details{border-top:1px solid #11130f1a;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:clamp(1.5rem,3vw,3.5rem);padding:.5rem 0 2rem 3.9rem;display:grid}.experience-timeline__stop details:not([open])>.experience-timeline__details{display:none}.experience-timeline__summary{padding-top:1.5rem}.experience-timeline__details-label,.experience-timeline__evidence h4{color:var(--experience-coral);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .85rem;font-size:.58rem;font-weight:600}.experience-timeline__summary>p:last-child{color:#11130fd6;max-width:33rem;font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.35}.experience-timeline__summary .experience-timeline__gpa{color:var(--experience-gold);letter-spacing:-.05em;font-size:clamp(2.6rem,5vw,4rem);line-height:.95}.experience-timeline__evidence{grid-template-columns:minmax(0,1.35fr) minmax(12rem,.65fr);gap:clamp(1.5rem,3vw,3rem);padding-top:1.5rem;display:grid}.experience-timeline__highlights{gap:.72rem;display:grid}.experience-timeline__highlights li{color:#11130fa8;padding-left:1.1rem;font-size:.82rem;line-height:1.52;position:relative}.experience-timeline__highlights li:before{background:var(--experience-gold);content:"";width:.35rem;height:1px;position:absolute;top:.7em;left:0}.experience-timeline__tags{flex-wrap:wrap;gap:.42rem;display:flex}.experience-timeline__tags li{color:#11130fb3;font-family:var(--mono);letter-spacing:.075em;text-transform:uppercase;border:1px solid #11130f2e;border-radius:999px;padding:.48rem .64rem;font-size:.55rem;line-height:1.2}.experience-timeline__tags--courses li{border-radius:.3rem}@media (max-width:720px){.experience-timeline__intro{padding-top:max(4.75rem, calc(env(safe-area-inset-top) + 4rem))}}@media (min-width:720px){.experience-timeline__list:before{left:1.95rem}}@media (min-width:960px){.experience-timeline__intro h2{font-size:clamp(7rem,11.5vw,11rem)}.experience-timeline__rail{overscroll-behavior-inline:contain;scrollbar-color:var(--experience-coral) #11130f14;scrollbar-width:thin;scroll-snap-type:x proximity;overflow-x:auto}.experience-timeline__rail::-webkit-scrollbar{height:.35rem}.experience-timeline__rail::-webkit-scrollbar-track{background:#11130f14}.experience-timeline__rail::-webkit-scrollbar-thumb{background:var(--experience-coral);border-radius:999px}.experience-timeline__list{width:100%;min-width:calc(var(--experience-stop-count) * 15rem);grid-template-columns:repeat(var(--experience-stop-count), minmax(0, 1fr));align-items:start}.experience-timeline__list:before{content:none}.experience-timeline__stop{border-top:0;border-left:1px solid var(--experience-rule);scroll-snap-align:start;background:linear-gradient(#fffdf57a,#0000 42%),#fffdf53d;min-width:0}.experience-timeline__stop:last-child{border-right:1px solid var(--experience-rule)}.experience-timeline__stop:before{z-index:0;background:var(--experience-rule-strong);content:"";height:1px;position:absolute;top:4.05rem;left:0;right:0}.experience-timeline__stop:first-child:before{left:50%}.experience-timeline__stop:last-child:before{right:50%}.experience-timeline__stop article,.experience-timeline__stop details{height:100%}.experience-timeline__stop-header{grid-template-rows:5.3rem minmax(11rem,auto) auto auto 1fr;grid-template-columns:minmax(0,1fr);align-content:start;justify-items:stretch;min-height:30rem;padding:0 1.35rem 1.5rem;display:grid}.experience-timeline__node{justify-items:center;width:100%;height:5.3rem}.experience-timeline__node>span{padding-top:.4rem}.experience-timeline__identity{text-align:center;align-self:start;padding-top:1.4rem}.experience-timeline__identity>span:first-child{min-height:2.7rem;margin-bottom:.75rem}.experience-timeline__identity>[role=heading]{overflow-wrap:anywhere;font-size:clamp(2.15rem,2.85vw,3.35rem)}.experience-timeline__period,.experience-timeline__location{text-align:center;border-top:1px solid #11130f1a;justify-items:center;padding-top:1rem}.experience-timeline__location{margin-top:.9rem}.experience-timeline__toggle{align-self:end;width:100%;min-width:0;margin-top:1.5rem}.experience-timeline__details{grid-template-columns:minmax(0,1fr);gap:1.75rem;padding:1.5rem 1.35rem 2rem}.experience-timeline__summary{padding-top:0}.experience-timeline__summary>p:last-child{font-size:clamp(1.12rem,1.35vw,1.4rem)}.experience-timeline__summary .experience-timeline__gpa{font-size:clamp(2.4rem,3.5vw,3.6rem)}.experience-timeline__evidence{grid-template-columns:minmax(0,1fr);padding-top:0}.experience-timeline__stop:hover{background:#fffdf594}.experience-timeline__stop:has(details[open]):hover{background:#fffdf5e0}}@media (max-width:959px){.experience-timeline__rail{scroll-snap-type:none;overflow-x:visible}.experience-timeline__list{scroll-snap-type:none;grid-template-columns:1fr;grid-auto-flow:row;width:auto;min-width:0;overflow-x:visible}.experience-timeline__stop-header{grid-template-columns:4rem minmax(0,1fr) auto;grid-template-areas:"node identity toggle""node period period""node location location";padding-left:0}.experience-timeline__node{grid-area:node}.experience-timeline__identity{grid-area:identity}.experience-timeline__period{grid-area:period;margin-top:.5rem}.experience-timeline__location{grid-area:location}.experience-timeline__toggle{grid-area:toggle;min-width:44px;padding-inline:.8rem}.experience-timeline__toggle>span{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.experience-timeline__details{grid-template-columns:1fr;padding-left:4rem}}@media (max-width:640px){.experience-timeline{padding-bottom:4rem}.experience-timeline__atmosphere{height:35rem}.experience-timeline__intro{padding-top:max(4.75rem, calc(env(safe-area-inset-top) + 4rem));padding-bottom:2.75rem}.experience-timeline__intro h2{font-size:clamp(4.4rem,21vw,6.5rem)}.experience-timeline__map{padding:.85rem .9rem .75rem}.experience-timeline__map-meta{font-size:.52rem}.experience-timeline__map-meta>span:last-child{font-size:.44rem}.experience-timeline__plot{min-height:8.65rem}.experience-timeline__spine,.experience-timeline__duration-lines{left:.35rem;right:.35rem}.experience-timeline__axis-marker:not(:first-child):not(:last-child) span{display:none}.experience-timeline__line-tooltip{max-width:calc(100vw - 4rem)}.experience-timeline__milestone{width:2.15rem;height:2.15rem}.experience-timeline__milestone-star{font-size:1.75rem}.experience-timeline__stop-header{grid-template-columns:3rem minmax(0,1fr) auto}.experience-timeline__list:before{left:1.25rem}.experience-timeline__node{width:2.5rem}.experience-timeline__node img,.experience-timeline__node-mark{width:2.25rem;height:2.25rem}.experience-timeline__identity>[role=heading]{font-size:clamp(1.85rem,9vw,2.6rem)}.experience-timeline__details{padding:.25rem 0 1.75rem 3rem}.experience-timeline__evidence{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.experience-timeline__art img{transform:none}.experience-timeline__stop,.experience-timeline__toggle,.experience-timeline__toggle i:after,.experience-timeline__duration-bar,.experience-timeline__line-tooltip,.experience-timeline__milestone-star{transition:none}}
.projects-section{background:var(--cream);padding-top:0}.project-spiral{--project-chrome-height:3.25rem;--project-chrome-top:clamp(4.75rem, 8vh, 6rem);--project-nav-clearance:clamp(10.5rem, 13vw, 12rem);background:var(--cream);position:relative}.project-spiral[data-project-view=spiral]{background:#070806;min-height:100svh}.project-spiral[data-project-view=spiral][data-project-spiral-enhanced]{min-height:1180svh}.project-spiral__stage{isolation:isolate;width:100%;height:100svh;min-height:620px;color:var(--paper);background:radial-gradient(circle at 50% 46%,#161c2852,#0000 44%),repeating-linear-gradient(90deg,#ffffff0a 0 1px,#0000 1px 64px),repeating-linear-gradient(0deg,#ffffff0a 0 1px,#0000 1px 64px),#070806;display:none;position:relative;overflow:clip}.project-spiral__stage:after{z-index:3;content:"";pointer-events:none;background:linear-gradient(90deg,#0708067a,#0000 22% 78%,#0708067a),linear-gradient(#07080642,#0000 20% 82%,#07080661);position:absolute;inset:0}.project-spiral[data-project-spiral-enhanced] .project-spiral__stage{opacity:0;pointer-events:none;visibility:hidden;place-items:center;transition:opacity .32s,visibility 0s linear .32s;display:grid;position:absolute;top:0}.project-spiral[data-project-view=spiral][data-project-spiral-enhanced] .project-spiral__stage{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .32s,visibility;position:sticky;top:0}.project-spiral__webgl{z-index:1;opacity:0;transition:opacity .7s;position:absolute;inset:0}.project-spiral__stage[data-project-spiral-ready] .project-spiral__webgl{opacity:1}.project-spiral-canvas{pointer-events:none!important;width:100%!important;height:100%!important}.project-spiral__hint{z-index:5;letter-spacing:-.01em;margin:0;font-size:.72rem;position:absolute}.project-spiral__active-link{z-index:7;aspect-ratio:1.42;border-radius:1.25rem;justify-content:center;align-items:flex-end;width:min(36vw,38rem);min-width:19rem;padding:1rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-spiral__active-label{min-width:min(19rem,82%);color:var(--paper);opacity:0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:opacity .32s ease, transform .5s var(--ease-out);background:#070806bd;border:1px solid #ffffff61;border-radius:999px;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.52rem .62rem;font-size:.72rem;display:grid;transform:translateY(1rem);box-shadow:0 1rem 3rem #00000047}.project-spiral__active-label strong{letter-spacing:-.025em;font-size:.82rem}.project-spiral__active-link:is(:hover,:focus-visible) .project-spiral__active-label,.project-spiral__stage[data-project-spiral-ready] .project-spiral__active-label{opacity:1;transform:translateY(0)}.project-spiral__hint{color:#fffdf594;text-transform:lowercase;bottom:clamp(1.25rem,3vw,2.3rem);left:clamp(1.25rem,3vw,3rem)}.project-spiral__overlay{z-index:6;color:var(--ink);position:relative}.project-spiral__overlay-inner{padding-top:0;padding-bottom:clamp(5rem,10vw,9rem);position:relative}.project-spiral[data-project-view=index] .project-spiral__overlay-inner{min-height:min(100svh,60rem)}.project-spiral[data-project-view=spiral] .project-spiral__overlay{color:var(--paper);pointer-events:none;position:absolute;inset:0}.project-spiral[data-project-view=spiral] .project-spiral__overlay-inner{pointer-events:none;height:100svh;min-height:620px;padding-block:0;position:sticky;top:0}.project-spiral__chrome{z-index:10;top:var(--project-chrome-top);min-height:var(--project-chrome-height);margin-bottom:calc(var(--project-chrome-top) + clamp(1.75rem, 3vw, 3rem));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:clamp(1rem,2vw,2rem);display:flex;position:sticky}.project-spiral[data-project-view=spiral] .project-spiral__chrome{margin-bottom:0;position:absolute;left:0;right:0}.project-spiral__scene-heading{min-width:0}.project-spiral__scene-heading p{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .35rem;font-size:.56rem;font-weight:700}.project-spiral__scene-heading h2{font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:.88}.project-spiral[data-project-view=spiral] .project-spiral__scene-heading p{color:#fffdf594}.project-spiral[data-project-view=spiral] .project-spiral__scene-heading h2{color:var(--paper);text-shadow:0 .6rem 2rem #00000052}.project-spiral__view-toggle{width:max-content;min-height:3.25rem;margin-right:var(--project-nav-clearance);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;background:#fffdf5f0;border:1px solid #11130f61;border-radius:999px;align-items:center;gap:.2rem;padding:.35rem;display:flex;box-shadow:0 .9rem 2.5rem #11130f24,inset 0 0 0 1px #ffffff70}.project-spiral__view-toggle>span{color:var(--ink);letter-spacing:.1em;opacity:.68;text-transform:uppercase;padding:0 .65rem 0 .8rem;font-size:.6rem;font-weight:700}.project-spiral__view-toggle button{min-height:2.45rem;color:var(--muted);cursor:pointer;font:inherit;letter-spacing:.035em;background:0 0;border:0;border-radius:999px;padding:.5rem .9rem;font-size:.7rem;font-weight:700}.project-spiral__view-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.project-spiral[data-project-view=spiral] .project-spiral__view-toggle{background:#070806e0;border-color:#fffdf56b;box-shadow:0 1rem 3rem #00000057,inset 0 0 0 1px #ffffff14}.project-spiral[data-project-view=spiral] .project-spiral__view-toggle>span{color:#fffdf58a}.project-spiral[data-project-view=spiral] .project-spiral__view-toggle button{color:#fffdf59e}.project-spiral[data-project-view=spiral] .project-spiral__view-toggle button[aria-pressed=true]{background:var(--paper);color:var(--ink)}.project-spiral__projects{border-bottom:1px solid var(--rule);margin:0;padding:0;list-style:none;display:grid}.project-spiral__projects>li{border-top:1px solid var(--rule);background:#fffdf538;transition:background-color .24s,color .24s;position:relative}.project-spiral__projects>li>article{grid-template-columns:clamp(2.5rem,5vw,4.75rem) clamp(6rem,9vw,8rem) minmax(0,1fr) auto;align-items:start;gap:clamp(1rem,2vw,2rem);min-height:10.5rem;padding:clamp(1.25rem,2.6vw,2.2rem) .4rem;display:grid}.project-spiral__number{color:var(--muted);letter-spacing:.1em;padding-top:.38rem;font-size:.62rem;font-weight:700}.project-spiral__copy{min-width:0}.project-spiral__thumbnail{aspect-ratio:1.42;border:1px solid var(--rule);border-radius:.8rem;width:100%;overflow:clip}.project-spiral__thumbnail img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.project-spiral__copy h3{font-family:var(--serif);letter-spacing:-.06em;margin-bottom:.6rem;font-size:clamp(2rem,4.3vw,4.2rem);font-weight:500;line-height:.92}.project-spiral__copy>p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-bottom:1rem;font-size:clamp(.82rem,1.15vw,1rem);line-height:1.5;overflow:hidden}.project-spiral__technologies{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.project-spiral__technologies li{border:1px solid var(--rule);color:var(--muted);letter-spacing:.055em;text-transform:uppercase;border-radius:999px;padding:.3rem .52rem;font-size:.58rem;font-weight:700}.project-spiral__case-study-link{z-index:1;border:1px solid var(--ink);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;gap:1.2rem;min-height:2.6rem;padding:.65rem .85rem;font-size:.65rem;font-weight:700;display:inline-flex;position:relative}.project-spiral__case-study-link:after{z-index:-1;content:"";position:absolute;inset:calc(-1*clamp(1.25rem,2.6vw,2.2rem)) -.4rem}.project-spiral__case-study-link span:last-child{transition:transform .22s var(--ease-out);font-size:.9rem}.project-spiral__projects>li:hover{background:#fffdf5b8}.project-spiral__projects>li:has(.project-spiral__case-study-link:focus-visible){background:#fffdf5b8}.project-spiral__projects>li:is(:hover,:has(.project-spiral__case-study-link:focus-visible)) .project-spiral__case-study-link span:last-child{transform:translate(3px,-3px)}.project-spiral[data-project-view=spiral] .project-spiral__projects{pointer-events:auto;border:0;flex-direction:column;align-items:flex-end;gap:.45rem;width:min(15rem,32vw);display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.project-spiral[data-project-view=spiral] .project-spiral__projects>li{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070806b8;border:1px solid #fffdf52e;border-radius:999px;width:max-content;max-width:100%;box-shadow:0 .8rem 2rem #00000029}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:first-child{margin-right:.25rem}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:nth-child(2){margin-right:2.1rem}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:nth-child(3){margin-right:.7rem}.project-spiral[data-project-view=spiral] .project-spiral__projects>li>article{grid-template-columns:auto minmax(0,auto) auto;align-items:center;gap:.5rem;min-height:0;padding:.42rem .5rem .42rem .62rem}.project-spiral[data-project-view=spiral] .project-spiral__number{color:#fffdf56b;padding-top:0;font-size:.55rem}.project-spiral[data-project-view=spiral] .project-spiral__copy h3{color:#fffdf5b8;max-width:10rem;font-family:var(--sans);letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0;font-size:.64rem;font-weight:700;line-height:1.2;overflow:hidden}.project-spiral[data-project-view=spiral] .project-spiral__copy>p,.project-spiral[data-project-view=spiral] .project-spiral__technologies,.project-spiral[data-project-view=spiral] .project-spiral__thumbnail{display:none}.project-spiral[data-project-view=spiral] .project-spiral__case-study-link{color:#fffdf59e;border:0;min-height:1.6rem;padding:.2rem .3rem}.project-spiral[data-project-view=spiral] .project-spiral__case-study-link span:first-child{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project-spiral[data-project-view=spiral] .project-spiral__case-study-link:after{border-radius:999px;inset:-.42rem -.5rem}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:hover{background:var(--paper);color:var(--ink)}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:has(.project-spiral__case-study-link[aria-current=true]){background:var(--paper);color:var(--ink)}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:has(.project-spiral__case-study-link:focus-visible){background:var(--paper);color:var(--ink)}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:is(:hover,:has(.project-spiral__case-study-link[aria-current=true]),:has(.project-spiral__case-study-link:focus-visible)) :is(.project-spiral__number,.project-spiral__copy h3,.project-spiral__case-study-link){color:var(--ink)}@media (max-width:767px){.project-spiral{--project-chrome-top:4.5rem;--project-nav-clearance:0}.project-spiral__active-link{width:min(66vw,18rem);height:min(44vw,12rem)}.project-spiral__hint{bottom:1rem;left:1rem}.project-spiral__overlay-inner{width:calc(100vw - 28px);padding-bottom:clamp(4.5rem,18vw,6rem)}.project-spiral__chrome{align-items:center;gap:.6rem}.project-spiral__scene-heading p{margin-bottom:.25rem;font-size:.48rem}.project-spiral__scene-heading h2{font-size:clamp(1.55rem,7vw,2rem)}.project-spiral__view-toggle{padding:.3rem}.project-spiral__view-toggle>span{padding:0 .42rem 0 .58rem;font-size:.52rem}.project-spiral__view-toggle button{padding-inline:.7rem;font-size:.64rem}.project-spiral[data-project-view=spiral] .project-spiral__projects{width:min(12.5rem,54vw);right:0}.project-spiral[data-project-view=spiral] .project-spiral__projects>li:nth-child(2){margin-right:1.15rem}.project-spiral__projects>li>article{grid-template-columns:2rem minmax(0,1fr);gap:.65rem;min-height:0;padding:1.2rem .2rem}.project-spiral__thumbnail{display:none}.project-spiral__copy h3{font-size:clamp(2rem,12vw,3.2rem)}.project-spiral__copy>p{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-spiral__case-study-link{grid-column:2;justify-self:start;gap:1rem}.project-spiral__case-study-link:after{inset:-1.2rem -.2rem}.project-spiral[data-project-view=spiral] .project-spiral__projects>li>article{grid-template-columns:auto minmax(0,auto) auto;gap:.4rem;padding:.38rem .42rem .38rem .55rem}.project-spiral[data-project-view=spiral] .project-spiral__case-study-link{grid-column:auto}}@media (prefers-reduced-motion:reduce){.project-spiral__stage,.project-spiral__webgl,.project-spiral__projects>li,.project-spiral__case-study-link span:last-child{transition:none}}@media print{.project-spiral{background:var(--cream)!important;min-height:0!important}.project-spiral__stage,.project-spiral__view-toggle{display:none!important}.project-spiral__overlay{color:var(--ink)!important;position:relative!important}.project-spiral__overlay-inner{height:auto!important;min-height:0!important;padding-top:2rem!important;position:relative!important}.project-spiral__chrome{position:static!important}.project-spiral__projects{border-bottom:1px solid var(--rule)!important;width:auto!important;color:var(--ink)!important;display:grid!important;position:static!important;transform:none!important}}.project-page__footer a{letter-spacing:.12em;text-transform:uppercase;font-size:.67rem;font-weight:700}.project-page{background:var(--cream);min-height:100svh}.project-page-study{min-height:100svh}.project-page__footer{border-top:1px solid var(--ink);justify-content:space-between;align-items:center;gap:2rem;padding:clamp(2rem,5vw,4rem) 0;display:flex}.project-page__footer a{align-items:center;gap:.6rem;transition:opacity .22s;display:inline-flex}.project-page__footer a:hover,.project-page__footer a:focus-visible{opacity:.58}.project-chapter{--project-case-start:-48px;--project-tech-start:48px;--project-pan-start:-6.522%;--project-pan-end:6.522%;isolation:isolate;padding:clamp(4rem,8vw,8rem) 0;position:relative}.project-chapter--1{--project-results-accent:var(--citron);--repository-inverted:var(--cobalt);background:var(--cobalt);color:var(--paper)}.project-chapter--2{--project-case-start:48px;--project-tech-start:-48px;--project-pan-start:6.522%;--project-pan-end:-6.522%;--project-results-accent:var(--cobalt);--repository-inverted:var(--citron);background:var(--citron);color:var(--ink)}.project-chapter--3{--project-results-accent:var(--citron);--repository-inverted:var(--dusk);background:var(--dusk);color:var(--paper)}.project-grid{z-index:1;align-items:start;position:relative}.project-meta{grid-column:1/span 3;margin-bottom:clamp(2.5rem,5vw,4.5rem)}.project-meta p{margin-bottom:.55rem}.project-meta p:last-child{color:currentColor;opacity:.9;max-width:18rem;font-size:.6rem;line-height:1.5}.project-title{grid-column:5/-1;margin-bottom:clamp(2.5rem,5vw,4.5rem)}.project-title :is(h1,h3){font-family:var(--serif);letter-spacing:-.075em;margin-bottom:1rem;font-size:clamp(3.5rem,8.7vw,9rem);font-weight:500;line-height:.82}.project-title p{opacity:.76;max-width:42rem;margin-bottom:0;font-size:clamp(.95rem,1.4vw,1.2rem);line-height:1.55}.project-art{aspect-ratio:3/2;grid-column:1/span 8}.project-art img{-o-object-position:center;object-position:center;width:115%;max-width:none;position:relative;left:-7.6%}.case-study-copy{grid-column:9/-1;padding-left:clamp(1rem,2vw,2rem)}.case-study-copy>div{margin-bottom:1.4rem;padding:0 0 1.4rem;position:relative}.case-study-copy>div:after{content:"";transform-origin:0;background:currentColor;height:1px;position:absolute;bottom:0;left:0;right:0}.case-study-copy :is(h2,h4){letter-spacing:.15em;text-transform:uppercase;margin-bottom:.55rem;font-size:.62rem}.case-study-copy p{opacity:.78;margin-bottom:0;font-size:.9rem;line-height:1.55}.project-results{grid-column:9/-1;padding-left:clamp(1rem,2vw,2rem)}.project-results summary{color:currentColor;cursor:pointer;letter-spacing:.13em;text-transform:uppercase;border-top:1px solid;border-bottom:1px solid;justify-content:space-between;align-items:center;padding:.85rem 0;font-size:.66rem;font-weight:700;list-style:none;display:flex}.project-results summary::-webkit-details-marker{display:none}.project-results__symbol{color:var(--project-results-accent);transition:transform .22s var(--ease-out);font-size:1.1rem;line-height:1}.project-results[open] .project-results__symbol{transform:rotate(45deg)}.project-results__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:0;padding:1rem 0 .35rem;display:grid}.project-results__metrics>div{padding-right:.5rem}.project-results__metrics dt{color:var(--project-results-accent);font-family:var(--serif);letter-spacing:-.055em;margin-bottom:.25rem;font-size:clamp(2rem,3.4vw,3.3rem);font-weight:500;line-height:.9}.project-results__metrics dd{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700;line-height:1.35}.repository-link{--repository-foreground:currentColor;border:1px solid var(--repository-foreground);color:var(--repository-foreground);letter-spacing:.1em;text-transform:uppercase;transition:background-color .18s var(--ease-out), color .18s var(--ease-out);background:0 0;border-radius:999px;grid-column:9/-1;justify-self:start;align-items:center;gap:.55rem;margin:1.5rem 0 0 clamp(1rem,2vw,2rem);padding:.72rem 1rem;font-size:.7rem;font-weight:700;display:inline-flex}.repository-link span{transition:transform .22s var(--ease-out)}.repository-link:hover span,.repository-link:focus-visible span{transform:translate(3px,-3px)}.repository-link:hover,.repository-link:focus-visible,.repository-link:active{background:var(--repository-foreground);color:var(--repository-inverted)}.repository-link[data-magnetic-ready]{will-change:transform}.project-chapter--2 .project-art{grid-column:5/-1}.project-chapter--2 .case-study-copy{grid-area:3/1/auto/span 4;padding-left:0;padding-right:clamp(1rem,2vw,2rem)}.project-chapter--2 .project-results{grid-area:4/1/auto/span 4;padding-left:0;padding-right:clamp(1rem,2vw,2rem)}.project-chapter--2 .repository-link{grid-area:5/1/auto/span 4;margin-left:0}@media (prefers-reduced-motion:no-preference){html.atlas-js.atlas-reveal-ready .case-study-copy[data-reveal-stagger]>div{opacity:0;transition:opacity .56s var(--ease-out) var(--atlas-reveal-delay,0s), transform .56s var(--ease-out) var(--atlas-reveal-delay,0s);transform:translateY(22px)}html.atlas-js.atlas-reveal-ready .case-study-copy[data-reveal-stagger]>div:after{transition:transform .62s var(--ease-out) var(--atlas-reveal-delay,0s);transform:scaleX(0)}html.atlas-js.atlas-reveal-ready .case-study-copy[data-reveal-stagger]>.is-revealed{opacity:1;transform:translateY(0)}html.atlas-js.atlas-reveal-ready .case-study-copy[data-reveal-stagger]>.is-revealed:after{transform:scaleX(1)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html.atlas-js .project-chapter{view-timeline-axis:block;view-timeline-name:--atlas-project-chapter}html.atlas-js .project-case-label,html.atlas-js .project-tech-list{animation:linear both atlas-project-lockup;animation-timeline:--atlas-project-chapter;animation-range:entry cover 24%}html.atlas-js .project-case-label{--project-lockup-start:var(--project-case-start)}html.atlas-js .project-tech-list{--project-lockup-start:var(--project-tech-start)}html.atlas-js [data-project-pan]{view-timeline-axis:block;view-timeline-name:--atlas-project-plate}html.atlas-js [data-project-pan] img{animation:linear both atlas-project-pan;animation-timeline:--atlas-project-plate;animation-range:entry exit}}}@supports not (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html.atlas-js.atlas-project-fallback [data-project-pan] img{transform:translate3d(var(--atlas-project-pan-x,0%), 0, 0)}}}@keyframes atlas-project-lockup{0%{opacity:.72;transform:translate3d(var(--project-lockup-start), 0, 0)}to{opacity:1;transform:translate(0,0)}}@keyframes atlas-project-pan{0%{transform:translate3d(var(--project-pan-start), 0, 0)}to{transform:translate3d(var(--project-pan-end), 0, 0)}}@media (max-width:720px){.project-page__footer{padding-bottom:calc(7rem + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start}}
.contact-section{background:var(--cream);min-height:100svh}.contact-board{border-top:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));min-height:100svh;display:grid}.contact-plate{background:#dca97c;min-height:0;position:relative;overflow:hidden}.contact-plate--inset{border:1px solid var(--rule);border-radius:clamp(1rem,1.8vw,1.6rem);margin:clamp(1rem,1.5vw,1.75rem);box-shadow:0 1.5rem 4rem #11130f1a}.contact-art{width:100%;height:100%;position:absolute;inset:0}.contact-art img{-o-object-fit:cover;object-fit:cover;-o-object-position:50% center;object-position:50% center;width:100%;height:100%}.contact-flock{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.contact-flock canvas{display:block;width:100%!important;height:100%!important}.contact-sunrise{z-index:2;mix-blend-mode:overlay;opacity:var(--atlas-contact-glow,0);pointer-events:none;background:radial-gradient(circle at 50% 67%,#fff5bdc7 0,#f4bf3540 18%,#0000 52%);position:absolute;inset:0}.contact-panel{border-left:1px solid var(--ink);flex-direction:column;min-width:0;padding:clamp(2rem,4vw,4.5rem) clamp(1.5rem,4.6vw,5.5rem) clamp(1.25rem,2vw,2rem);display:flex}.contact-copy{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding-bottom:clamp(1.5rem,3vw,3rem);display:flex}.contact-copy .eyebrow{margin-bottom:clamp(1.5rem,3vw,2.75rem)}.contact-copy h2{max-width:6.4ch;font-family:var(--serif);letter-spacing:-.08em;margin-bottom:clamp(1.5rem,2.6vw,2.5rem);font-size:clamp(4.6rem,8.1vw,9.2rem);font-weight:500;line-height:.79}.contact-copy .contact-intro{max-width:31rem;color:var(--muted);margin-bottom:clamp(1.5rem,3vw,2.75rem);font-size:clamp(.95rem,1.25vw,1.12rem);line-height:1.55}.contact-links{gap:.8rem;display:flex}.contact-link{aspect-ratio:1;border:1px solid var(--ink);width:clamp(3.5rem,4.5vw,4.25rem);transition:background-color .22s var(--ease-out), color .22s var(--ease-out), border-color .22s var(--ease-out);border-radius:50%;place-items:center;display:grid}.contact-link svg{width:1.45rem;height:1.45rem}.contact-link:hover,.contact-link:focus-visible{border-color:var(--ink);background:var(--ink);color:var(--cream)}.site-footer{border-top:1px solid var(--ink);grid-template-columns:1fr auto;align-items:end;gap:.35rem 1.5rem;padding:1rem 0 0;display:grid}.site-footer p{margin-bottom:0;font-size:.64rem}.site-footer>p:nth-child(2){color:var(--muted)}.site-footer>a{grid-area:1/2/span 2;justify-self:end}.site-footer>a span{transition:transform .18s var(--ease-out);display:inline-block}.site-footer>a:hover span,.site-footer>a:focus-visible span{transform:translateY(-.3rem)}.not-found-page{place-items:center;min-height:100svh;padding:clamp(1.5rem,4vw,4rem);display:grid}.not-found-plate{border:1px solid var(--ink);text-align:center;width:min(48rem,100%);padding:clamp(2rem,7vw,6rem)}.not-found-plate img{width:clamp(3rem,8vw,5rem);margin:0 auto 2rem}.not-found-plate h1{font-family:var(--serif);letter-spacing:-.07em;margin-bottom:1.5rem;font-size:clamp(3rem,8vw,7rem);font-weight:500;line-height:.88}.not-found-plate>p:not(.eyebrow){color:var(--muted);margin-bottom:2rem}@media (max-width:720px) and (orientation:portrait){.contact-section,.contact-board{min-height:calc(100svh - 55px)}.contact-board{grid-template-rows:minmax(14rem,42svh) minmax(0,1fr);grid-template-columns:1fr}.contact-panel{border-top:1px solid var(--ink);border-left:0;padding:1.4rem 1.1rem .9rem}.contact-copy{justify-content:flex-start;padding-bottom:1.2rem}.contact-copy .eyebrow{margin-bottom:1rem}.contact-panel .contact-copy h2{max-width:7ch;margin-bottom:1rem;font-size:clamp(3.7rem,17.5vw,5.3rem);line-height:.78}.contact-copy .contact-intro{max-width:34rem;margin-bottom:1.1rem;font-size:.9rem;line-height:1.42}.contact-link{width:3.15rem}.contact-link svg{width:1.2rem;height:1.2rem}.contact-panel .site-footer{padding-top:.75rem}}@media (max-height:620px) and (orientation:landscape){.contact-panel{padding-top:1.25rem;padding-bottom:.9rem}.contact-copy{padding-bottom:1rem}.contact-copy .eyebrow{margin-bottom:.75rem}.contact-panel .contact-copy h2{margin-bottom:.9rem;font-size:clamp(3rem,7vw,5.4rem)}.contact-copy .contact-intro{margin-bottom:1rem;font-size:.85rem}.contact-link{width:3rem}}
.atlas-split-mask,.atlas-split-token{display:inline-block}.atlas-split-mask{vertical-align:bottom;overflow:clip}.atlas-split-word{white-space:nowrap;display:inline-block}@media (prefers-reduced-motion:no-preference){body:before{will-change:transform;animation:1.6s steps(8,end) infinite atlas-live-grain}html.atlas-js [data-magnetic-ready]{will-change:transform}html.atlas-js [data-contact-ready] [data-contact-word]{opacity:var(--atlas-contact-word-reveal,0);transform:translate3d(0, calc((1 - var(--atlas-contact-word-reveal,0)) * 105%), 0);will-change:transform, opacity}html.atlas-js [data-contact-scroll-ready] .contact-plate{opacity:calc(.45 + var(--atlas-contact-plate-reveal,0) * .55);transform:translate3d(0, calc((1 - var(--atlas-contact-plate-reveal,0)) * 2rem), 0) scale(calc(.96 + var(--atlas-contact-plate-reveal,0) * .04));transform-origin:50% 70%;will-change:transform, opacity}html.atlas-js [data-contact-scroll-ready] .contact-art img{transform:translate3d(0, var(--atlas-contact-image-y,2.5%), 0) scale(1.08);will-change:transform}html.atlas-js [data-contact-scroll-ready] [data-contact-detail]{opacity:var(--atlas-contact-detail-reveal,0);translate:0 calc((1 - var(--atlas-contact-detail-reveal,0)) * 1.25rem);will-change:translate, opacity}html.atlas-js [data-contact-ready]>.contact-board .atlas-split-mask--word{margin-inline:-.15em;padding-inline:.15em}html.atlas-js [data-contact-ready] .atlas-split-mask--character{overflow:visible}html.atlas-js [data-contact-ready] .atlas-split-mask--character>.atlas-split-token{transform:translate3d(var(--atlas-contact-character-x,0), 0, 0);will-change:transform}}@keyframes atlas-live-grain{0%{transform:translate(-2%,1.5%)}to{transform:translate(2%,-1.5%)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.frame-reveal[data-reveal]{animation:linear both atlas-reveal;animation-timeline:view();animation-range:entry 8% cover 34%}@keyframes atlas-reveal{0%{opacity:.4;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}}}@supports not (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){html.atlas-js.atlas-reveal-ready [data-reveal],html.atlas-js.atlas-reveal-ready [data-reveal-stagger]>*{opacity:.4;transition:opacity .7s var(--ease-out) var(--atlas-reveal-delay,0s), transform .7s var(--ease-out) var(--atlas-reveal-delay,0s);transform:translateY(26px)}html.atlas-js.atlas-reveal-ready [data-reveal].is-revealed,html.atlas-js.atlas-reveal-ready [data-reveal-stagger]>.is-revealed{opacity:1;transform:translateY(0)}}}@media (max-width:980px){:root{--shell:min(100vw - 40px, 1440px)}.experience-intro .section-heading,.projects-intro .section-heading{grid-column:1/span 7}.experience-kicker,.projects-intro>p{grid-column:8/-1}.project-meta{grid-column:1/span 4}.project-title{grid-column:5/-1}.project-art{grid-column:1/span 7}.case-study-copy,.project-results,.repository-link{grid-column:8/-1}.project-chapter--2 .project-results{grid-column:1/span 4}}@media (max-width:720px){:root{--shell:calc(100vw - 28px);--radius:12px}html{scroll-padding-top:1rem;scroll-padding-bottom:5rem}.editorial-grid,.project-grid{display:block}.projects-intro>p{margin-top:2rem}.section-heading h2{font-size:clamp(3.5rem,17vw,6rem)}.experience-art,.project-art{aspect-ratio:4/3}.experience-intro,.projects-intro{margin-bottom:0}.project-title :is(h1,h3){font-size:clamp(4rem,19vw,6rem)}.project-art{margin-top:2.5rem}.case-study-copy{padding:2rem 0 0}.project-results,.project-chapter--2 .project-results{margin-top:.5rem;padding:0}.project-results__metrics dt{font-size:clamp(2.3rem,13vw,3.8rem)}.repository-link,.project-chapter--2 .repository-link{margin:.5rem 0 0;display:inline-block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media (pointer:fine) and (prefers-reduced-motion:no-preference){.atlas-cursor{z-index:1900;opacity:0;pointer-events:none;transition:opacity .12s linear;position:fixed;inset:0}.atlas-cursor.is-visible{opacity:1}.atlas-cursor__dot,.atlas-cursor__ring{pointer-events:none;border-radius:50%;place-items:center;display:grid;position:fixed;top:0;left:0}.atlas-cursor__dot{background:var(--ink);width:5px;height:5px}.atlas-cursor__ring{width:38px;height:38px;transition:width .18s var(--ease-out), height .18s var(--ease-out), background .18s var(--ease-out), color .18s var(--ease-out);border:1px solid #11130f8f}.atlas-cursor__label{letter-spacing:.04em;text-transform:uppercase;font-size:.55rem;font-weight:700;line-height:1}.atlas-cursor[data-cursor-mode=external] .atlas-cursor__ring,.atlas-cursor[data-cursor-mode=expand] .atlas-cursor__ring,.atlas-cursor[data-cursor-mode=read] .atlas-cursor__ring{border-color:var(--ink);background:var(--ink);width:48px;height:48px;color:var(--cream)}}
.fluid-cursor-layer,.splash-cursor{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.fluid-cursor-layer{z-index:1050;contain:strict}.splash-cursor{mix-blend-mode:multiply;opacity:.7}.splash-cursor__canvas{width:100vw;height:100vh;display:block}@media (prefers-reduced-motion:reduce),(pointer:coarse),(hover:none){.fluid-cursor-layer{display:none!important}}
.feather-fall-layer{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.feather-fall-layer canvas{opacity:.92;display:block;pointer-events:none!important;width:100%!important;height:100%!important}.feather-fall-layer *{pointer-events:none!important}.experience-section>*,.projects-section>*,.craft-section>*,.contact-section>*{z-index:50;position:relative}@media (prefers-reduced-motion:reduce){.feather-fall-layer{display:none!important}}
.atlas-spectacle{--atlas-flare-x:50vw;--atlas-flare-y:29px;z-index:1100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.atlas-spectacle__flare{top:var(--atlas-flare-y);left:var(--atlas-flare-x);aspect-ratio:1;background:radial-gradient(circle, #fffdf5f5 0 2%, #f4bf35db 7%, #d8ef4b52 26%, transparent 63%), repeating-conic-gradient(from 18deg, #f4bf3529 0 2deg, transparent 2deg 11deg);filter:blur(.35px);mix-blend-mode:screen;opacity:0;transform-origin:50%;border-radius:50%;width:min(82vmax,78rem);position:absolute;transform:translate(-50%,-50%)scale(.18)}[data-atlas-plate-sheen]:before{z-index:3;border-radius:inherit;content:"";mix-blend-mode:screen;opacity:0;pointer-events:none;background:linear-gradient(108deg,#0000 28%,#d8ef4b05 36%,#fffdf570 43%,#0d4eb824 49%,#f4775f1f 55%,#0000 66%);transition:opacity .18s,transform .94s cubic-bezier(.16,1,.3,1);position:absolute;inset:-30%;transform:translate(-72%)skew(-13deg);-webkit-mask-image:linear-gradient(90deg,#0000,#000 23% 77%,#0000);mask-image:linear-gradient(90deg,#0000,#000 23% 77%,#0000)}[data-atlas-plate-sheen]:hover:before,[data-atlas-plate-sheen]:focus-visible:before,[data-atlas-plate-sheen]:focus-within:before{opacity:.72;will-change:opacity, transform;transform:translate(72%)skew(-13deg)}.contact-links{position:relative}.contact-golden-feather{z-index:8;color:#b58a19;opacity:0;pointer-events:none;width:1.65rem;height:3.6rem;display:block;position:absolute;top:-.45rem;left:-2.35rem}.contact-golden-feather svg{filter:drop-shadow(0 .35rem .4rem #11130f33);width:100%;height:100%;display:block;overflow:visible}.contact-golden-feather path:first-child{fill:#f4bf357a;stroke:#8e6810;stroke-width:1px}.contact-golden-feather path:last-child{fill:none;stroke:#8e6810;stroke-linecap:round;stroke-width:1.1px}.not-found-page{isolation:isolate;position:relative}.not-found-plate{z-index:50;background:#f3efe3e0;position:relative;overflow:hidden;box-shadow:0 2rem 7rem #11130f1c}.not-found-plate>img,.not-found-plate>p,.not-found-plate>h1,.not-found-plate>a{z-index:2;position:relative}.letter-glitch{background:var(--cream);pointer-events:none;overflow:hidden}.letter-glitch canvas{mix-blend-mode:multiply;width:100%;height:100%;display:block}.not-found-glitch{z-index:0;opacity:.18;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 44%,#0000 0 20%,#000 68%);mask-image:radial-gradient(circle at 50% 44%,#0000 0 20%,#000 68%)}@media (max-width:720px){.contact-golden-feather{top:-.25rem;left:auto;right:-3rem}}@media (prefers-reduced-motion:reduce){.atlas-spectacle,.contact-golden-feather,.letter-glitch,[data-atlas-plate-sheen]:before{display:none!important}}
:root{--page-accent:#8e6810;--page-rule:#11130f24;--page-surface:var(--cream)}main{background:var(--page-surface)}.portfolio-gateway,.experience-section,.projects-section,.craft-section,.contact-section{--page-flow-line-x:50%;background-color:var(--page-surface);background-image:linear-gradient(to right, transparent calc(var(--page-flow-line-x) - .5px), var(--page-rule) calc(var(--page-flow-line-x) - .5px), var(--page-rule) calc(var(--page-flow-line-x) + .5px), transparent calc(var(--page-flow-line-x) + .5px));color:var(--ink);background-repeat:no-repeat}.portfolio-gateway,.craft-section{background-image:none}main>section+section{border-top:1px solid var(--page-rule)}.contact-panel{border-inline-color:#0000}.contact-board,.site-footer{border-top-color:var(--page-rule)}@media (max-width:720px){.portfolio-gateway,.experience-section,.projects-section,.craft-section,.contact-section{--page-flow-line-x:14px}.contact-panel{border-top-color:var(--page-rule)}}

