:root{--background: 0 0% 100%;--foreground: 222 37% 10%;--muted: 215 12% 53%;--border: 220 16% 90%;--line: rgba(15, 23, 42, .08);--surface: rgba(255, 255, 255, .88);--surface-strong: rgba(255, 255, 255, .96);--footer: #090909;--footer-foreground: #f3f3f0;--amber: #c8922b;--blue: #5472a8;--clay: #a76752;--forest: #5a6b53}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;min-width:320px;background:hsl(var(--background));color:hsl(var(--foreground));font-family:Avenir Next,Segoe UI,Helvetica Neue,sans-serif;line-height:1.4;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}#root{min-height:100vh}body{transition:background-color .22s ease,color .22s ease}.page-shell{position:relative;overflow-x:clip}.page-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at top right,rgba(200,146,43,.08),transparent 24%),radial-gradient(circle at left center,rgba(84,114,168,.08),transparent 20%),hsl(var(--background))}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:9.5rem 9.5rem;background-position:top left;pointer-events:none}.site-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(to bottom,#ffffffe6,#ffffff8c);border-bottom:1px solid var(--line)}.brand,.top-nav a,.index-section-header,.content-section-label,.footer-links a{font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;letter-spacing:.04em;text-transform:uppercase}.brand{font-size:1.2rem}.top-nav{display:flex;align-items:center;gap:1.1rem;font-size:.92rem}.mobile-nav-actions{display:none;align-items:center;gap:.7rem}.mobile-menu-toggle{width:2.5rem;height:2.5rem;display:inline-grid;place-items:center;padding:0;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#ffffffb8;cursor:pointer}.mobile-menu-toggle img{display:block;width:1.15rem;height:1.15rem}.mobile-nav-panel{position:sticky;top:4.65rem;z-index:29;display:none;padding:.75rem 1rem 1rem;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-nav-panel a{display:block;padding:.8rem 0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;letter-spacing:.04em;text-transform:uppercase}.theme-toggle{width:2.25rem;height:2.25rem;display:inline-grid;place-items:center;padding:0;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#ffffffb8;color:inherit;cursor:pointer;transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.theme-toggle:hover{transform:translateY(-1px);background:#fffffff5;border-color:#0f172a3d}.theme-toggle-icon{font-size:1rem;line-height:1}.hero{min-height:calc(100svh - 4.5rem);padding:2rem 1.5rem 4rem;display:grid;grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:1.5rem;align-items:center}.hero-index{display:flex;align-items:baseline;gap:.5rem;align-self:start;padding-top:1rem;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif}.hero-number{font-size:clamp(4rem,9vw,7rem);line-height:.9}.hero-total{font-size:clamp(1.7rem,3vw,2.6rem)}.hero-copy{max-width:1180px}.hero-intro{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,34vw,440px);gap:clamp(1.5rem,4vw,4rem);align-items:center}.hero-collage{position:relative;width:100%;min-height:clamp(360px,42vw,520px)}.hero-collage-card,.hero-headshot-frame{position:relative;overflow:hidden;border-radius:1.4rem;border:1px solid rgba(15,23,42,.12);background:linear-gradient(135deg,#ffffff61,#ffffff14),#ffffff80;box-shadow:0 24px 60px #0f172a1f;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.hero-collage-card{position:absolute}.hero-collage-card:active,.hero-headshot-frame:active{cursor:grabbing}.hero-collage-back{top:0;right:0;width:70%;aspect-ratio:1.18 / 1;transform:rotate(7deg)}.hero-collage-front{left:4%;bottom:4%;width:52%;aspect-ratio:3 / 4;transform:rotate(-9deg);z-index:1}.hero-headshot-frame{position:absolute;right:12%;top:17%;width:70%;aspect-ratio:4 / 5;z-index:2}.hero-collage-image,.hero-headshot{display:block;width:100%;height:100%;object-fit:cover}.hero-collage-image{object-position:center}.hero-headshot{object-position:center top}.hero-text{min-width:0;max-width:42rem}.hero-eyebrow{margin:0 0 1.25rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--muted))}.hero h1{margin:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(4.4rem,14vw,10rem);line-height:.88;text-transform:uppercase;letter-spacing:.02em}.hero-summary{max-width:32rem;margin:1.35rem 0 0;font-size:clamp(1rem,1.7vw,1.28rem);color:#0f172ac2}.portfolio-layout{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:0;align-items:start}.portfolio-index{position:sticky;top:4.5rem;height:calc(100svh - 4.5rem);padding:0 0 2rem 1.5rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.25rem;background:linear-gradient(to bottom,#ffffffc7,#ffffff9e);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.index-section{border-top:1px solid var(--line);padding:1rem .85rem .45rem 0}.index-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:0;border:0;background:transparent;font-size:.98rem;color:inherit;cursor:pointer;text-align:left}.section-count{color:hsl(var(--muted))}.index-items{display:grid;grid-template-rows:0fr;opacity:0;overflow:hidden;transition:grid-template-rows .22s ease,opacity .18s ease,margin-top .22s ease}.index-section.is-active .index-items{grid-template-rows:1fr;opacity:1;margin-top:.75rem}.index-items>*{min-height:0}.index-item{width:100%;display:grid;grid-template-columns:2rem 1fr;gap:.6rem;padding:.45rem 0;border:0;background:transparent;color:#0f172a8c;cursor:pointer;text-align:left;transition:color .18s ease,transform .18s ease}.index-item:hover,.index-item.is-current{color:hsl(var(--foreground))}.index-item.is-current{transform:translate(.18rem)}.index-item-number{font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:.95rem}.index-item-title{font-size:.97rem}.portfolio-content{padding:0 3rem 7rem 1.5rem}.content-section{padding-top:1.5rem}.content-section-label{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid var(--line);color:hsl(var(--muted));font-size:.9rem}.content-card{min-height:88svh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:1.5rem;align-items:center;padding:1.25rem 0 4rem;opacity:.5;transform:translateY(2rem);transition:opacity .3s ease,transform .3s ease}.content-card.is-focused{opacity:1;transform:translateY(0)}.content-visual{position:relative}.visual-badge{margin-bottom:.8rem;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted))}.visual-frame{position:relative;aspect-ratio:4 / 3;overflow:hidden;border:1px solid rgba(15,23,42,.1);background:linear-gradient(135deg,#ffffff73,#ffffff1a),radial-gradient(circle at 20% 20%,rgba(255,255,255,.92),transparent 40%)}.visual-trigger,.project-modal-frame{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;border-radius:1rem;border:1px solid rgba(15,23,42,.1);background:linear-gradient(135deg,#ffffff73,#ffffff1a),radial-gradient(circle at 20% 20%,rgba(255,255,255,.92),transparent 40%)}.visual-trigger{display:block;padding:0;cursor:default;text-align:left}.visual-trigger.is-enabled{cursor:pointer;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.visual-trigger.is-enabled:hover{transform:translateY(-2px);border-color:#0f172a2e;box-shadow:0 24px 44px #0f172a14}.visual-orb,.visual-panel,.visual-image{position:absolute;inset:auto}.visual-orb{width:46%;aspect-ratio:1;border-radius:50%;left:9%;bottom:10%;filter:blur(0);opacity:.95}.visual-panel{right:8%;top:10%;width:46%;height:74%;border:1px solid rgba(255,255,255,.45);background:#ffffff2e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px #ffffff1a}.visual-image{top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}.accent-amber .visual-frame,.accent-amber .visual-trigger,.accent-amber .project-modal-frame{background-color:#c8922b29}.accent-amber .visual-orb{background:radial-gradient(circle at 30% 30%,#ffe3a9,var(--amber))}.accent-blue .visual-frame,.accent-blue .visual-trigger,.accent-blue .project-modal-frame{background-color:#5472a829}.accent-blue .visual-orb{background:radial-gradient(circle at 30% 30%,#c7d6f5,var(--blue))}.accent-clay .visual-frame,.accent-clay .visual-trigger,.accent-clay .project-modal-frame{background-color:#a7675229}.accent-clay .visual-orb{background:radial-gradient(circle at 30% 30%,#efd3ca,var(--clay))}.accent-forest .visual-frame,.accent-forest .visual-trigger,.accent-forest .project-modal-frame{background-color:#5a6b5329}.accent-forest .visual-orb{background:radial-gradient(circle at 30% 30%,#d0dcc7,var(--forest))}.content-copy{max-width:30rem}.content-count{display:flex;align-items:center;gap:.65rem;margin-bottom:1rem;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:1rem}.content-count-line{width:2.4rem;height:1px;background:#0f172a40}.content-copy h2{margin:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(2.8rem,5.6vw,5rem);line-height:.95;text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere;word-break:break-word}.content-title-button{padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.content-title-button:hover h2{opacity:.8}.content-subtitle{margin:1rem 0 0;font-size:clamp(1rem,1.7vw,1.3rem);color:#0f172ac7}.content-description{margin:1rem 0 0;max-width:28rem;color:#0f172aa8}.content-links{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.5rem}.content-links a{display:inline-flex;align-items:center;gap:.45rem;padding:.58rem .88rem;border:1px solid rgba(15,23,42,.12);background:#ffffffb8;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.content-links a:hover{background:#fffffff2;border-color:#0f172a3d;transform:translateY(-1px)}.project-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:1.25rem;background:radial-gradient(circle at top,rgba(84,114,168,.12),transparent 32%),#090c128f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.project-modal-card{position:relative;width:min(100%,72rem);max-height:calc(100svh - 2.5rem);overflow:auto;padding:1.4rem;border-radius:1.5rem;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#fffffff7,#ffffffed),#ffffffe6;box-shadow:0 40px 120px #090c1238}.project-modal-card.has-video{width:min(100%,58rem)}.project-modal-close{position:absolute;top:.75rem;right:.75rem;width:2.5rem;height:2.5rem;border:0;background:transparent;color:#0f172a9e;font-size:1.7rem;line-height:1;cursor:pointer}.project-modal-header{padding-right:3rem}.project-modal-eyebrow{margin:0 0 .65rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--muted))}.project-modal-header h2{margin:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(2.6rem,6vw,4.5rem);line-height:.95;text-transform:uppercase;letter-spacing:.02em}.project-modal-subtitle{max-width:44rem;margin:.9rem 0 0;font-size:clamp(1rem,1.9vw,1.3rem);color:#0f172ac2}.project-modal-visual{margin-top:1.5rem;max-width:38rem;margin-inline:auto}.project-modal-card.has-video .project-modal-visual{max-width:none}.project-modal-card.has-video .project-modal-frame{aspect-ratio:16 / 9}.project-modal-frame.has-image{width:fit-content;max-width:100%;aspect-ratio:auto;margin-inline:auto;display:flex;align-items:center;justify-content:center;background:transparent}.project-modal-frame.has-image .visual-image{position:static;width:auto;max-width:100%;height:auto;max-height:min(70svh,42rem);object-fit:contain}.project-modal-video{display:block;width:100%;aspect-ratio:16 / 9;border:0}.project-modal-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem;margin-top:1.5rem;color:#0f172ab8}.project-modal-description{margin:0;font-size:clamp(1.05rem,1.7vw,1.22rem);line-height:1.45;color:#0f172ad6;max-width:58rem}.project-modal-summary{margin:0;font-size:1.05rem;color:hsl(var(--foreground))}.project-modal-body>p:last-of-type{margin:0}.project-modal-highlights{display:grid;gap:.75rem;align-content:start;padding-left:1.2rem;border-left:1px solid var(--line)}.project-modal-highlights p{margin:0}.project-modal-tech{grid-column:1 / -1}.project-modal-section-title{margin:0 0 .85rem;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--foreground))}.project-modal-tech-list{display:flex;flex-wrap:wrap;gap:.7rem}.project-modal-tech-pill{display:inline-flex;align-items:center;min-height:2rem;padding:.45rem .8rem;border-radius:999px;background:#0f172a14;color:#0f172ae0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:.9rem;letter-spacing:.02em}.project-modal-links{grid-column:1 / -1;margin-top:.25rem}.site-footer{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:2rem;padding:2rem 1.5rem 2.5rem;background:var(--footer);color:var(--footer-foreground)}.resume-page{min-height:100vh;background:radial-gradient(circle at top right,rgba(200,146,43,.12),transparent 24%),radial-gradient(circle at left center,rgba(84,114,168,.12),transparent 20%),hsl(var(--background));color:hsl(var(--foreground))}.resume-page .site-header,.resume-page .site-footer{transition:background-color .22s ease,border-color .22s ease,color .22s ease}.resume-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;background:linear-gradient(to bottom,#ffffffe6,#ffffff8c);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.resume-header-brand,.resume-header-nav a,.resume-role,.resume-section-marker span,.resume-block-header span,.resume-block-header p,.resume-skill-column p,.resume-role-heading div,.resume-section-chip{font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;letter-spacing:.06em;text-transform:uppercase}.resume-header-brand{font-size:1rem}.resume-header-nav{display:inline-flex;gap:.5rem;padding:.25rem;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#ffffffb8}.resume-header-nav a{padding:.7rem 1rem;border-radius:999px;font-size:.8rem;color:#0f172a9e;transition:background-color .18s ease,color .18s ease,transform .18s ease}.resume-header-nav a:hover{background:#fffffff5;color:hsl(var(--foreground));transform:translateY(-1px)}.resume-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:2rem;padding:1.25rem 1.5rem 4rem}.resume-sidebar{position:relative}.resume-sidebar-inner{position:sticky;top:5.75rem;display:grid;gap:1.4rem;padding:1.5rem 0 0}.resume-avatar{width:6.2rem;height:6.2rem;border-radius:50%;display:grid;place-items:center;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:2rem;color:#fffffff2;background:radial-gradient(circle at 30% 30%,#ffe9baf2,#c8922bb8 46%),linear-gradient(135deg,#5472a8eb,#5a6b53f0);border:1px solid rgba(15,23,42,.08);box-shadow:0 18px 36px #0f172a14}.resume-role{margin:0;font-size:.72rem;color:hsl(var(--muted))}.resume-name{margin:-.6rem 0 0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(2.3rem,4vw,3.6rem);line-height:.96;text-transform:uppercase;letter-spacing:.02em}.resume-summary{max-width:18rem;margin:0;color:#0f172ab3}.resume-section-marker{position:relative;display:grid;gap:.35rem;padding:4rem 1.2rem .4rem 0;min-height:9.5rem;align-content:end;overflow:hidden}.resume-section-marker span{position:relative;z-index:1;font-size:.72rem;color:#0f172a6b}.resume-section-marker strong{position:relative;z-index:1;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(2.4rem,4.1vw,3.8rem);line-height:.9;color:hsl(var(--foreground));text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere}.resume-section-marker em{position:absolute;right:.2rem;bottom:-.25rem;z-index:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(5.6rem,11vw,7.6rem);line-height:.84;font-style:normal;letter-spacing:.01em;color:#0f172a1a;pointer-events:none}.resume-section-rail{display:flex;flex-wrap:wrap;gap:.7rem;padding-top:1rem}.resume-section-chip{display:grid;gap:.28rem;min-width:4.4rem;padding:.85rem .95rem;border-radius:.9rem;border:1px solid rgba(15,23,42,.1);background:#ffffffa8;color:#0f172ab8;font-size:.68rem;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.resume-section-chip.is-active{background:#fffffff5;border-color:#0f172a3d;color:hsl(var(--foreground))}.resume-content{position:relative;display:grid;gap:1.8rem;padding-top:.25rem}.resume-track{position:absolute;top:0;bottom:0;left:.55rem;width:1px;background:linear-gradient(to bottom,#0f172a2e,#0f172a0d)}.resume-block{position:relative;display:grid;gap:1rem;padding-left:2.4rem}.resume-block-anchor{position:absolute;top:1.7rem;left:0;width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid rgba(15,23,42,.22);background:#fffffff5;box-shadow:0 0 0 .35rem #ffffffe6}.resume-block-header{display:grid;grid-template-columns:3.5rem minmax(0,1fr);align-items:start;gap:1rem}.resume-block-header>span{color:#0f172a47;font-size:.8rem}.resume-block-header p{margin:0;font-size:.72rem;color:hsl(var(--muted))}.resume-block-header h2{max-width:45rem;margin:.35rem 0 0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:clamp(1.8rem,3vw,2.9rem);line-height:1.02;text-transform:uppercase;letter-spacing:.02em}.resume-timeline{display:grid;gap:1.5rem}.resume-entry,.resume-cta{padding:1.3rem 1.2rem 1.35rem;border:1px solid rgba(15,23,42,.1);border-radius:1rem;background:linear-gradient(180deg,#ffffffeb,#ffffffd1),#ffffffd6;box-shadow:0 24px 44px #0f172a0f}.resume-entry-top{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.resume-entry-top h3{margin:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:1.3rem;letter-spacing:.02em}.resume-entry-top h3 a{border-bottom:1px solid transparent;transition:border-color .18s ease,opacity .18s ease}.resume-entry-top h3 a:hover{opacity:.7;border-color:#0f172a4d}.resume-entry-top>div>p,.resume-entry-summary,.resume-role-item p,.resume-cta p{margin:.4rem 0 0;color:#0f172aa8}.resume-role-list{display:grid;gap:1rem;padding-top:1rem}.resume-role-item{display:grid;gap:.6rem}.resume-role-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.resume-role-heading h4{margin:0;font-family:Arial Narrow,Avenir Next Condensed,Franklin Gothic Medium,sans-serif;font-size:1rem;letter-spacing:.02em}.resume-role-heading div{display:inline-flex;flex-wrap:wrap;gap:.8rem;font-size:.72rem;color:hsl(var(--muted))}.resume-highlights{display:grid;gap:.45rem;padding-left:1rem;border-left:1px solid var(--line)}.resume-highlights p{margin:0}.resume-skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.resume-skill-column{padding:1rem;border:1px solid rgba(15,23,42,.1);border-radius:1rem;background:linear-gradient(180deg,#ffffffeb,#ffffffd1),#ffffffd6}.resume-skill-column p{margin:0 0 .85rem;font-size:.72rem;color:hsl(var(--muted))}.resume-skill-column div{display:flex;flex-wrap:wrap;gap:.6rem}.resume-skill-column span{padding:.45rem .72rem;border-radius:999px;background:#0f172a0f;color:#0f172ad6;font-size:.92rem}.resume-cta{display:grid;gap:1rem;max-width:48rem}.resume-cta-links{display:flex;flex-wrap:wrap;gap:.8rem}.resume-cta-links a{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.6rem .95rem;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#ffffffb8;transition:transform .18s ease,background-color .18s ease,border-color .18s ease}.resume-cta-links a:hover,.resume-section-chip:hover{transform:translateY(-1px);background:#fffffff5;border-color:#0f172a3d}.resume-page.is-dark{background:radial-gradient(circle at top right,rgba(200,146,43,.12),transparent 24%),radial-gradient(circle at left center,rgba(84,114,168,.16),transparent 20%),#08090b;color:#f4f2ebeb}.resume-page.is-dark .site-header{background:linear-gradient(to bottom,#08090beb,#08090bb3);border-bottom-color:#ffffff14}.resume-page.is-dark .brand,.resume-page.is-dark .top-nav a,.resume-page.is-dark .theme-toggle{color:#f4f2ebdb}.resume-page.is-dark .grid-overlay{opacity:.35}.resume-page.is-dark .resume-role,.resume-page.is-dark .resume-section-marker span,.resume-page.is-dark .resume-block-header>span,.resume-page.is-dark .resume-block-header p,.resume-page.is-dark .resume-role-heading div,.resume-page.is-dark .resume-skill-column p{color:#f4f2eb75}.resume-page.is-dark .resume-summary,.resume-page.is-dark .resume-entry-top>div>p,.resume-page.is-dark .resume-entry-summary,.resume-page.is-dark .resume-role-item p,.resume-page.is-dark .resume-cta p{color:#f4f2eba8}.resume-page.is-dark .resume-section-marker strong,.resume-page.is-dark .resume-name,.resume-page.is-dark .resume-entry-top h3,.resume-page.is-dark .resume-role-heading h4{color:#f9f7f1f5}.resume-page.is-dark .resume-section-marker em,.resume-page.is-dark .resume-track{color:#ffffff1a;background:linear-gradient(to bottom,#ffffff24,#ffffff0a)}.resume-page.is-dark .resume-block-anchor{border-color:#ffffff47;background:#0f1115;box-shadow:0 0 0 .35rem #ffffff08}.resume-page.is-dark .resume-entry,.resume-page.is-dark .resume-cta,.resume-page.is-dark .resume-skill-column{border-color:#ffffff14;background:linear-gradient(180deg,#14161bf5,#0e1014eb),#0e1014eb;box-shadow:0 24px 44px #00000038}.resume-page.is-dark .resume-entry-top,.resume-page.is-dark .resume-highlights{border-color:#ffffff14}.resume-page.is-dark .resume-section-chip,.resume-page.is-dark .resume-cta-links a,.resume-page.is-dark .resume-skill-column span{border-color:#ffffff14;background:#ffffff0d;color:#f4f2ebd6}.resume-page.is-dark .resume-section-chip.is-active,.resume-page.is-dark .resume-cta-links a:hover,.resume-page.is-dark .resume-section-chip:hover{background:#ffffff1a;border-color:#ffffff2e;color:#fffffff5}.resume-page.is-dark .resume-entry-top h3 a:hover{border-color:#ffffff4d}.resume-page.is-dark .site-footer{background:#060708;color:#f4f2ebe6}.page-shell.is-dark{min-height:100vh;color:#f4f2ebeb}.page-shell.is-dark:before{background:radial-gradient(circle at top right,rgba(200,146,43,.12),transparent 24%),radial-gradient(circle at left center,rgba(84,114,168,.16),transparent 20%),#08090b}.page-shell.is-dark .grid-overlay{opacity:1;background-image:linear-gradient(to right,rgba(244,242,235,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(244,242,235,.06) 1px,transparent 1px)}.page-shell.is-dark .site-header{background:linear-gradient(to bottom,#08090beb,#08090bb3);border-bottom-color:#ffffff14}.page-shell.is-dark .brand,.page-shell.is-dark .top-nav a,.page-shell.is-dark .hero h1,.page-shell.is-dark .hero-number,.page-shell.is-dark .hero-total,.page-shell.is-dark .content-copy h2,.page-shell.is-dark .index-item:hover,.page-shell.is-dark .index-item.is-current,.page-shell.is-dark .content-title-button,.page-shell.is-dark .project-modal-header h2,.page-shell.is-dark .project-modal-summary,.page-shell.is-dark .project-modal-section-title,.page-shell.is-dark .theme-toggle{color:#f9f7f1f5}.page-shell.is-dark .hero-eyebrow,.page-shell.is-dark .hero-summary,.page-shell.is-dark .section-count,.page-shell.is-dark .index-item,.page-shell.is-dark .visual-badge,.page-shell.is-dark .content-section-label,.page-shell.is-dark .content-subtitle,.page-shell.is-dark .content-description,.page-shell.is-dark .project-modal-eyebrow,.page-shell.is-dark .project-modal-subtitle,.page-shell.is-dark .project-modal-description,.page-shell.is-dark .project-modal-body,.page-shell.is-dark .project-modal-highlights,.page-shell.is-dark .footer-links a{color:#f4f2eba3}.page-shell.is-dark .portfolio-index{border-right-color:#ffffff14;background:linear-gradient(to bottom,#0a0b0ecc,#0a0b0e9e)}.page-shell.is-dark .index-section,.page-shell.is-dark .content-section-label,.page-shell.is-dark .project-modal-highlights{border-color:#ffffff14}.page-shell.is-dark .content-count-line{background:#ffffff2e}.page-shell.is-dark .visual-trigger,.page-shell.is-dark .project-modal-frame,.page-shell.is-dark .content-links a,.page-shell.is-dark .project-modal-tech-pill,.page-shell.is-dark .theme-toggle,.resume-page.is-dark .theme-toggle{border-color:#ffffff1a;background-color:#ffffff0d}.page-shell.is-dark .content-links a,.page-shell.is-dark .project-modal-tech-pill{color:#f4f2ebe0}.page-shell.is-dark .content-links a:hover,.page-shell.is-dark .theme-toggle:hover,.resume-page.is-dark .theme-toggle:hover{background:#ffffff1a;border-color:#ffffff2e}.page-shell.is-dark .content-card{opacity:.72}.page-shell.is-dark .content-card.is-focused{opacity:1}.page-shell.is-dark .project-modal{background:radial-gradient(circle at top,rgba(200,146,43,.12),transparent 32%),#04060ab8}.page-shell.is-dark .project-modal-card{border-color:#ffffff1f;background:linear-gradient(180deg,#111318f7,#0b0d12f0),#0c0e12f0;box-shadow:0 40px 120px #0000004d}.page-shell.is-dark .project-modal-close{color:#f4f2eba8}.page-shell.is-dark .site-footer{background:#050607;color:#f4f2ebe6}body.dark-mode{background:#08090b;color:#f4f2ebeb}.footer-title{max-width:36rem;margin:0 0 1rem;font-size:clamp(1.2rem,2.2vw,1.8rem)}.footer-links{display:grid;gap:.7rem;justify-items:start}@media (max-width: 1100px){.site-header{padding-inline:1rem}.top-nav{display:none}.mobile-nav-actions,.mobile-nav-panel{display:flex}.mobile-nav-panel{flex-direction:column}.hero{min-height:auto;grid-template-columns:1fr;gap:1rem;padding:1rem 1rem 2.5rem}.hero-intro{grid-template-columns:1fr;gap:1rem}.hero-collage{width:min(420px,100%);min-height:420px}.portfolio-layout{grid-template-columns:1fr}.portfolio-index{position:relative;top:0;height:auto;padding:0 1rem .5rem;border-right:0;border-top:1px solid var(--line);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.index-section{padding-right:0}.portfolio-content{padding:0 1rem 5rem}.content-section{gap:.5rem}.content-section-label{display:grid;grid-template-columns:1fr;gap:.25rem;padding:.85rem 0}.content-card{min-height:auto;grid-template-columns:1fr;gap:1rem;padding-bottom:2.4rem;opacity:1;transform:none}.content-visual,.content-copy{width:100%;max-width:none}.content-copy{display:grid;gap:.8rem}.content-count,.content-subtitle,.content-description,.content-links{margin:0}.visual-trigger{width:100%}.content-copy h2{font-size:clamp(2.5rem,10vw,4rem)}.project-modal{padding:.75rem}.project-modal-card{max-height:calc(100svh - 1.5rem);padding:1rem}.project-modal-body{grid-template-columns:1fr;gap:1rem}.project-modal-highlights{padding-left:0;border-left:0;padding-top:1rem;border-top:1px solid var(--line)}.site-footer{grid-template-columns:1fr;padding-inline:1rem}.resume-header{padding-inline:1rem}.resume-layout{grid-template-columns:1fr;gap:1.5rem;padding-inline:1rem}.resume-sidebar-inner{position:static;padding-top:.5rem}.resume-section-marker{padding:1rem 0 .3rem;min-height:auto}.resume-track{left:.55rem}.resume-entry-top,.resume-skill-grid{grid-template-columns:1fr}.resume-role-heading{display:grid}}@media (max-width: 1280px){.portfolio-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr)}.portfolio-content{padding-right:2rem}.content-card{grid-template-columns:minmax(0,1fr) minmax(250px,.9fr)}.content-copy h2{font-size:clamp(2.4rem,4.6vw,4.2rem)}}@media (max-width: 1100px){.portfolio-layout{grid-template-columns:1fr}}
