:root{--ink:#11110f;--ink-soft:#181916;--panel:#1d1e1a;--panel-raised:#24251f;--paper:#f4efe4;--paper-soft:#d8d1c3;--muted:#aaa396;--gold:#d8a84e;--gold-soft:#8b6a31;--teal:#83b7ae;--line:#f4efe426;--line-strong:#f4efe447;--display:"Arial Narrow", "Aptos Display", "Helvetica Neue", Arial, sans-serif;--sans:"Aptos", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono:"Cascadia Mono", "SFMono-Regular", Consolas, monospace;--max-width:1480px;--gutter:clamp(1.25rem, 4vw, 4.5rem);--home-max-width:1920px;--home-gutter:clamp(1.25rem, 2.5vw, 3.5rem);--portfolio-banner-image:none;--portfolio-banner-image-mobile:var(--portfolio-banner-image);--portfolio-banner-active-image:var(--portfolio-banner-image);--portfolio-banner-position:center center}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{background:radial-gradient(circle at 85% 5%, #83b7ae12, transparent 24rem), var(--ink);color:var(--paper);font-family:var(--sans);text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6}::selection{background:var(--gold);color:var(--ink)}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}#main-content:focus{outline:none}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.04em;text-wrap:balance;line-height:.98}.heading-text{display:inline}.heading-segment{white-space:nowrap;max-width:100%;display:inline-block}p{color:var(--paper-soft)}.skip-link{z-index:1000;background:var(--paper);color:var(--ink);padding:.75rem 1rem;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.section-frame{width:min(100%, var(--max-width));padding-inline:var(--gutter);margin-inline:auto}.home-page .section-frame{width:min(100%, var(--home-max-width));padding-inline:var(--home-gutter)}.site-header{z-index:100;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#11110fe6;position:sticky;top:0}.header-inner{width:min(100%, var(--max-width));min-height:5rem;padding-inline:var(--gutter);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}.brand{letter-spacing:.01em;align-items:center;gap:.85rem;font-size:.96rem;font-weight:650;display:inline-flex}.brand-mark{border:1px solid var(--gold);width:2.35rem;height:2.35rem;color:var(--gold);font-family:var(--mono);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:.66rem;display:grid}.desktop-nav{align-items:center;gap:clamp(1.1rem,2.4vw,2.5rem);font-size:.86rem;font-weight:600;display:flex}.desktop-nav a{color:var(--paper-soft);transition:color .16s}.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--gold)}.mobile-menu{display:none;position:relative}.mobile-menu summary{cursor:pointer;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{border:1px solid var(--line-strong);background:var(--panel);min-width:13rem;display:grid;position:absolute;top:2.5rem;right:0;box-shadow:0 1.2rem 4rem #00000057}.mobile-menu nav a,.mobile-menu nav span{border-bottom:1px solid var(--line);padding:.9rem 1rem}.eyebrow{color:var(--gold);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.2rem;font-size:.72rem;font-weight:600;line-height:1.4}.button-row{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.button{border:1px solid var(--gold);background:var(--gold);min-height:3.35rem;color:var(--ink);letter-spacing:.02em;justify-content:space-between;align-items:center;gap:1.5rem;padding:.8rem 1.1rem;font-size:.84rem;font-weight:720;transition:background .16s,color .16s,transform .16s;display:inline-flex}.button:hover,.button:focus-visible{color:var(--gold);background:0 0;transform:translateY(-2px)}.button-small{min-height:2.85rem;padding-inline:.95rem}.button-disabled{border-color:var(--line-strong);color:var(--muted);cursor:not-allowed;background:0 0}.button-disabled:hover{color:var(--muted);transform:none}.text-link{border-bottom:1px solid var(--line-strong);color:var(--paper);align-items:center;gap:.5rem;font-size:.88rem;font-weight:650;transition:border-color .16s,color .16s;display:inline-flex}.text-link:hover,.text-link:focus-visible{border-color:var(--gold);color:var(--gold)}.project-list{gap:clamp(5rem,10vw,10rem);display:grid}.project-row{grid-template-columns:minmax(0,1.08fr) minmax(21rem,.92fr);align-items:center;gap:clamp(2rem,6vw,6.5rem);display:grid}.project-row-reverse .project-media-link{order:2}.project-row-reverse .project-copy{order:1}.project-media-link{display:block}.project-media-link:hover .project-visual,.project-media-link:focus-visible .project-visual{border-color:#d8a84eb3;transform:translateY(-4px)}.project-visual{border:1px solid var(--line);background:var(--panel);isolation:isolate;min-height:29rem;transition:border-color .18s,transform .18s;position:relative;overflow:hidden}.project-visual:before,.project-visual:after{content:"";position:absolute}.project-visual:before{background:#11110f57;border:1px solid #f4efe41f;inset:15% 12%;transform:rotate(-5deg)}.project-visual:after{aspect-ratio:1;border:1px solid var(--gold);opacity:.65;border-radius:50%;width:42%;top:18%;right:13%}.project-visual-large{min-height:clamp(34rem,65vw,58rem)}.visual-grid{z-index:-1;background-image:linear-gradient(#f4efe40b 1px,#0000 1px),linear-gradient(90deg,#f4efe40b 1px,#0000 1px);background-size:3rem 3rem;position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom right,#000,#0000 78%);mask-image:linear-gradient(to bottom right,#000,#0000 78%)}.visual-orbit{z-index:1;border:1px dashed #f4efe433;border-radius:50%;position:absolute}.visual-orbit-one{aspect-ratio:1;width:74%;top:8%;left:-8%}.visual-orbit-two{aspect-ratio:1;width:68%;bottom:-22%;right:-13%}.visual-node{z-index:3;border:1px solid var(--gold);background:var(--ink);border-radius:50%;width:1.1rem;height:1.1rem;position:absolute;box-shadow:0 0 0 .45rem #d8a84e14}.visual-node-one{top:26%;left:23%}.visual-node-two{top:48%;right:24%}.visual-node-three{border-color:var(--teal);bottom:20%;right:38%}.visual-line{z-index:2;background:var(--gold);transform-origin:0;height:1px;position:absolute}.visual-line-one{width:55%;top:29%;left:24%;transform:rotate(20deg)}.visual-line-two{background:var(--teal);width:44%;bottom:28%;right:19%;transform:rotate(-27deg)}.visual-index{z-index:4;color:#f4efe42e;font-family:var(--display);font-size:clamp(5rem,12vw,11rem);font-weight:750;line-height:1;position:absolute;top:3%;right:4%}.visual-caption{z-index:4;border:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;background:#11110fc7;padding:.45rem .6rem;font-size:.56rem;position:absolute;bottom:4%;right:4%}.visual-caption[data-prominent=true]{width:max-content;max-width:82%;color:var(--paper);font-family:var(--display);letter-spacing:.04em;text-align:center;background:#0b0b0adb;border-color:#d8a84e9e;padding:.8rem 1rem;font-size:clamp(1rem,1.4vw,1.6rem);font-weight:720;line-height:.95;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.project-visual-large .visual-caption[data-prominent=true]{padding:clamp(1rem,2vw,1.5rem) clamp(1.25rem,3vw,2.25rem);font-size:clamp(2.2rem,5vw,5rem)}[data-visual=space-vr]{background:radial-gradient(circle at 50% 18%,#83b7ae40,#0000 24%),linear-gradient(165deg,#10151a,#1b2324 54%,#10110f)}[data-visual=space-vr]:before{border-radius:48% 48% 8% 8%;inset:24% 12% 13%;transform:none}[data-visual=renewable-tower-defence]{background:linear-gradient(45deg,#d8a84e14 25%,#0000 25%) 0 0/4rem 4rem,linear-gradient(135deg,#182018,#252a1b 48%,#151a17)}[data-visual=renewable-tower-defence]:before{inset:18% 23%;transform:rotate(45deg)}[data-visual=rpg-character-balance]{background:linear-gradient(90deg,#0000 49.8%,#d8a84e4d 50%,#0000 50.2%),radial-gradient(circle at 34% 45%,#9a534042,#0000 30%),linear-gradient(135deg,#201816,#1a1d18)}[data-visual=rpg-character-balance]:before{inset:12% 18% 20% 12%;transform:rotate(3deg)}[data-visual=a-rovers-journey]{background:radial-gradient(circle at 30% 72%,#83b7ae38,#0000 24%),linear-gradient(152deg,#151a1d,#20261f 56%,#11120f)}[data-visual=a-rovers-journey]:before{inset:22% 15% 16% 18%;transform:rotate(-2deg)}[data-visual=adventure-booking-system]{background:linear-gradient(#d8a84e14 1px,#0000 1px) 0 0/3rem 3rem,linear-gradient(90deg,#d8a84e14 1px,#0000 1px) 0 0/3rem 3rem,linear-gradient(145deg,#191b18,#25231b 58%,#11120f)}.project-copy{max-width:38rem}.project-copy h3{max-width:20ch;margin-bottom:.8rem;font-size:clamp(2.25rem,3.4vw,4rem);font-weight:650}.project-copy h3 a{transition:color .16s}.project-copy h3 a:hover,.project-copy h3 a:focus-visible{color:var(--gold)}.project-copy>p:not(.eyebrow,.project-context){margin-bottom:1.5rem;font-size:1.04rem}.project-context{color:var(--teal);font-family:var(--mono);letter-spacing:.05em;margin-bottom:1.5rem;font-size:.7rem}.tag-list{flex-wrap:wrap;gap:.5rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:.35rem .55rem;font-size:.6rem}.portfolio-banner{isolation:isolate;border-bottom:1px solid var(--line);place-items:center;min-height:clamp(20rem,38vh,27rem);display:grid;position:relative;overflow:hidden}.portfolio-banner:before{z-index:-1;content:"";background:linear-gradient(90deg,#08090885,#080908ad 50%,#08090885),linear-gradient(#00000014,#00000070);position:absolute;inset:0}.portfolio-banner-media{z-index:-2;background-color:#18201d;background-image:var(--portfolio-banner-active-image), radial-gradient(circle at 18% 52%, #83b7ae47, transparent 24%), radial-gradient(circle at 50% 42%, #d8a84e47, transparent 22%), radial-gradient(circle at 82% 56%, #9a68584d, transparent 24%), linear-gradient(110deg, #172528 0 33%, #2b2919 33% 66%, #2c1d1b 66% 100%);background-position:var(--portfolio-banner-position), center, center, center, center;background-repeat:no-repeat;background-size:cover,auto,auto,auto,cover;position:absolute;inset:0;transform:scale(1.01)}.portfolio-banner-content{width:min(100%, var(--home-max-width));padding:clamp(2.5rem, 5vw, 4rem) var(--home-gutter);text-align:center}.portfolio-banner h1{color:#fff;letter-spacing:-.055em;text-shadow:0 .16em .8em #000000b3;margin-bottom:.75rem;font-size:clamp(2.75rem,4.6vw,5.25rem);font-weight:650;line-height:.96}.banner-disciplines{color:#fff;letter-spacing:-.02em;text-shadow:0 .1em .7em #000000d9;flex-wrap:wrap;justify-content:center;gap:.45rem 1rem;margin:0;padding:0;font-size:clamp(1rem,1.45vw,1.5rem);font-weight:450;list-style:none;display:flex}.banner-disciplines li:not(:last-child):after{color:#ffffffb8;content:"|";margin-left:1rem}.home-introduction{border-bottom:1px solid var(--line);grid-template-columns:minmax(18rem,.65fr) minmax(28rem,1.35fr);align-items:start;gap:clamp(2rem,4vw,4rem);padding-block:clamp(2.25rem,3.5vw,3.75rem);display:grid}.home-introduction h2{max-width:19ch;margin:0;font-size:clamp(1.9rem,2.45vw,2.8rem);font-weight:650}.home-introduction-copy{justify-self:end;width:100%;max-width:58rem}.home-hero-intro{max-width:58ch;margin-bottom:1.4rem;font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.5}.home-work{padding-block:clamp(2.25rem,3.5vw,4rem);scroll-margin-top:5rem}.home-about{border-top:1px solid var(--line)}.home-section-heading{grid-template-columns:1fr minmax(19rem,.55fr);align-items:end;gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(1.5rem,2.4vw,2.5rem);display:grid}.home-section-heading h2{max-width:24ch;margin:0;font-size:clamp(2.25rem,3.4vw,3.8rem);font-weight:650}.home-section-heading>p{justify-self:end;max-width:60ch;margin:0}.home-work .home-section-heading h2{font-size:clamp(2rem,2.8vw,3.25rem)}.home-projects-heading{margin-bottom:1rem}.home-projects-heading h2{max-width:24ch;margin:0;font-size:clamp(2rem,2.8vw,3.25rem);font-weight:650}.home-project-list{gap:1rem;display:grid}.home-project-section{border:1px solid var(--line);grid-template-columns:minmax(22rem,.82fr) minmax(28rem,1.18fr);display:grid;position:relative;overflow:hidden}.home-project-section:before{z-index:2;background:var(--gold-soft);content:"";height:2px;position:absolute;top:0;left:0;right:0}.home-project-section[data-project=a-rovers-journey]:before{background:#718f88}.home-project-section[data-project=space-vr]:before{background:var(--teal)}.home-project-section[data-project=adventure-booking-system]:before{background:#d88d32}.home-project-section[data-project=renewable-tower-defence]:before{background:#9ca86e}.home-project-section[data-project=rpg-character-balance]:before{background:#9a6858}.home-project-section-media{border-right:1px solid var(--line);background:#070706;margin:0}.project-video-player{background:#000;position:relative}.home-project-section-media video,.home-project-section-media>img{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;height:auto;display:block}.home-project-section[data-home-media=cover] .home-project-section-media>img{object-position:center;background:#02040a;padding:clamp(.65rem,1.4vw,1.1rem)}.home-project-section-media .project-visual{aspect-ratio:16/9;border:0;height:100%;min-height:0}.project-video-fullscreen{z-index:3;min-height:2.75rem;color:var(--paper);font:650 .68rem/1 var(--sans);cursor:pointer;background:#11110fdb;border:1px solid #f4efe461;align-items:center;gap:.45rem;padding:.48rem .68rem;transition:border-color .16s,background .16s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.project-video-fullscreen[hidden]{display:none}.project-video-fullscreen:hover,.project-video-fullscreen:focus-visible{border-color:var(--gold);background:#11110ff5}.project-video-fullscreen span{font-size:1rem}:-webkit-any(.project-video-player video:fullscreen,.project-video-player video:-webkit-full-screen){aspect-ratio:auto;object-fit:contain;background:#000;width:100vw;height:100vh}:is(.project-video-player video:fullscreen,.project-video-player video:fullscreen){aspect-ratio:auto;object-fit:contain;background:#000;width:100vw;height:100vh}.home-project-section-media figcaption,.case-video-figure figcaption{color:var(--muted);font-family:var(--mono);padding:.8rem 1rem;font-size:.62rem;line-height:1.55}.home-project-section-media figcaption{padding:.55rem .75rem}.project-video-caption{gap:.35rem;display:grid}.project-video-note{color:var(--paper-soft)}.home-project-section-copy{flex-direction:column;padding:clamp(1.35rem,2.4vw,2.25rem);display:flex}.home-project-section-copy .academic-project-meta{margin-bottom:clamp(1.25rem,2vw,2rem)}.home-project-section-copy h3{max-width:18ch;margin-bottom:.8rem;font-size:clamp(2rem,2.5vw,3rem);font-weight:650;line-height:.95}.home-project-section-copy h3 a{transition:color .16s}.home-project-section-copy h3 a:hover,.home-project-section-copy h3 a:focus-visible{color:var(--gold)}.home-project-section-copy>.text-link{align-self:flex-start}.academic-project-meta{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.academic-project-meta>span{color:var(--gold);font-family:var(--mono);font-size:.72rem}.academic-project-meta p,.project-card-meta-details .compact-project-context{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-align:right;text-transform:uppercase;margin:0;font-size:.58rem}.project-card-meta-details{--project-card-skill-icon-size:2rem;justify-items:end;gap:.32rem;min-width:0;display:grid}.academic-project-summary{margin-bottom:1.25rem;font-size:.88rem;line-height:1.5}.project-tool-list{flex-wrap:wrap;gap:.42rem;margin:0 0 1.05rem;padding:0;list-style:none;display:flex}.project-tool-list>li{border:1px solid var(--line);background:#11110f9e;grid-template-columns:1.75rem minmax(0,1fr);align-items:center;gap:.45rem;min-width:0;padding:.28rem .5rem .28rem .28rem;display:grid}.project-tool-icon{background:#252722;border:1px solid #ffffff24;place-items:center;width:1.75rem;height:1.75rem;display:grid;overflow:hidden}.project-tool-icon img{object-fit:contain;width:100%;height:100%;display:block}.project-tool-copy{min-width:0}.project-tool-copy strong,.project-tool-copy>span{display:block}.project-tool-copy-visually-hidden{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}.project-tool-list[data-variant=icons]{justify-content:flex-end;gap:.28rem;margin:0}.project-tool-list[data-variant=icons]>li{background:0 0;border:0;padding:0;display:block}.project-tool-list[data-variant=icons] .project-tool-icon{width:var(--project-card-skill-icon-size,2rem);height:var(--project-card-skill-icon-size,2rem)}.project-card-team-logo{width:calc(var(--project-card-skill-icon-size,2rem) + var(--project-card-skill-icon-size,2rem));object-fit:contain;max-width:100%;height:auto;margin-top:.4rem;display:block}.project-tool-copy strong{color:var(--paper-soft);font-family:var(--mono);font-size:.58rem;line-height:1.25}.project-tool-copy>span{color:var(--muted);margin-top:.12rem;font-size:.62rem;line-height:1.35}.project-tool-list[data-variant=detailed]>li{flex:12rem;grid-template-columns:2.2rem minmax(0,1fr);padding:.42rem .6rem .42rem .42rem}.project-tool-list[data-variant=detailed] .project-tool-icon{width:2.2rem;height:2.2rem}.project-tool-list[data-variant=detailed] .project-tool-copy strong{color:var(--paper);font-size:.68rem}.project-tool-icon[data-brand=csharp],.project-tool-icon[data-brand=unity],.project-tool-icon[data-brand=github],.project-tool-icon[data-brand=visual-studio],.project-tool-icon[data-brand=visual-studio-code],.project-tool-icon[data-brand=cplusplus]{background:0 0}.project-tool-icon[data-brand=drawio]{background:#d88d32}.project-tool-icon[data-brand=excel]{background:#107c41}.project-tool-icon[data-brand=premiere],.project-tool-icon[data-brand=powerpoint],.project-tool-icon[data-brand=photoshop]{background:0 0}.academic-project-focus{border-top:1px solid var(--line);margin-top:auto;margin-bottom:1.2rem;padding-top:.8rem}.academic-project-focus ul{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.academic-project-focus li{border:1px solid var(--line);color:var(--paper-soft);font-family:var(--mono);padding:.32rem .48rem;font-size:.58rem}.skills-section{border-top:1px solid var(--line);padding-block:clamp(3.75rem,5.5vw,6rem);scroll-margin-top:5rem}.skills-heading h2{max-width:22ch;font-size:clamp(2rem,2.8vw,3.25rem)}.skills-heading{margin-bottom:clamp(1.25rem,1.8vw,1.75rem)}.system-capabilities{border:1px solid var(--line-strong);background:radial-gradient(circle at 8% 15%,#d8a84e14,#0000 24rem),#1d1e1ab8;grid-template-columns:minmax(15rem,.42fr) minmax(0,1.58fr);align-items:center;gap:clamp(1.25rem,2.4vw,2.25rem);margin-bottom:1rem;padding:clamp(1.25rem,2.2vw,2rem);display:grid}.system-capabilities-copy .skill-group-label{margin-bottom:.65rem}.system-capabilities-copy h3{max-width:18ch;color:var(--paper);font-size:clamp(1.55rem,2.15vw,2.35rem);font-weight:650;line-height:1}.system-capability-list{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.system-capability-list li{border:1px solid var(--line);min-height:3.25rem;color:var(--paper-soft);background:#11110f9e;align-items:center;padding:.65rem .75rem;font-size:.74rem;font-weight:650;line-height:1.3;display:flex}.skills-architecture{border:1px solid var(--line-strong);background:radial-gradient(circle at 8% 12%, #d8a84e14, transparent 25rem), var(--ink-soft);grid-template-columns:minmax(18rem,.68fr) minmax(0,1.32fr);margin-bottom:1rem;display:grid}.skills-architecture-copy{border-right:1px solid var(--line);padding:clamp(1.5rem,2.5vw,2.5rem)}.skills-architecture-copy .skill-group-label{margin-bottom:.75rem}.skill-group-label{color:var(--gold);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.1rem;font-size:.62rem;font-weight:650}.skills-architecture-copy h3,.skill-group h3{margin-bottom:1rem;font-weight:650}.skills-architecture-copy h3{max-width:18ch;margin-bottom:.75rem;font-size:clamp(1.85rem,2.35vw,2.75rem)}.skills-architecture-copy>p:not(.skill-group-label){max-width:38rem;margin-bottom:1.25rem;font-size:.92rem;line-height:1.55}.architecture-practices{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.architecture-practices li{border:1px solid var(--line);color:var(--paper-soft);font-family:var(--mono);padding:.32rem .48rem;font-size:.58rem}.architecture-map{background-color:#24251fbd;background-image:linear-gradient(#f4efe407 1px,#0000 1px),linear-gradient(90deg,#f4efe407 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:2rem 2rem;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;align-self:stretch;padding:clamp(1.5rem,2.5vw,2.5rem)}.architecture-map-header{justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:clamp(1.25rem,2vw,2rem);display:flex}.architecture-map-header p{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;font-size:.6rem}.architecture-map-header h4{color:var(--paper);letter-spacing:-.025em;margin:0;font-size:clamp(1.05rem,1.4vw,1.3rem);font-weight:650;line-height:1.15}.architecture-tool{color:var(--paper-soft);font-family:var(--mono);white-space:nowrap;align-items:center;gap:.65rem;font-size:.6rem;display:inline-flex}.architecture-tool img{object-fit:contain;background:#d88d32;border:1px solid #d8a84e8c;width:2rem;height:2rem;display:block}.architecture-flow{border:1px solid var(--line-strong);background:#11110fc7;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.architecture-flow li{border-right:1px solid var(--line);min-width:0;padding:clamp(.85rem,1.25vw,1.15rem);position:relative}.architecture-flow li:last-child{border-right:0}.architecture-flow li:not(:last-child):after{z-index:1;border:1px solid var(--gold-soft);background:var(--ink-soft);width:1.4rem;height:1.4rem;color:var(--gold);content:"→";font-family:var(--mono);border-radius:50%;place-items:center;font-size:.58rem;display:grid;position:absolute;top:50%;right:0;transform:translate(50%,-50%)}.architecture-flow li>span{color:var(--gold);font-family:var(--mono);margin-bottom:1rem;font-size:.58rem;display:block}.architecture-flow li>strong{color:var(--paper);margin-bottom:.55rem;font-size:.86rem;display:block}.architecture-flow li>p{color:var(--muted);margin:0;font-size:.7rem;line-height:1.5}.architecture-map-note{max-width:50rem;color:var(--muted);font-family:var(--mono);margin:.8rem 0 0;font-size:.58rem}.architecture-example{border-top:1px solid var(--line-strong);background:#11110f94;grid-column:1/-1}.architecture-example>summary{cursor:zoom-in;grid-template-columns:minmax(11rem,.45fr) minmax(0,1.55fr) auto;align-items:center;gap:clamp(.8rem,1.5vw,1.25rem);padding:clamp(.8rem,1.25vw,1rem);list-style:none;display:grid}.architecture-example>summary::-webkit-details-marker{display:none}.architecture-example>summary:focus-visible{outline:2px solid var(--gold);outline-offset:-.3rem}.architecture-example[open]>summary{cursor:zoom-out}.architecture-example-preview{border:1px solid var(--line);background:#111;height:clamp(5.5rem,6vw,6.75rem);display:block;overflow:hidden}.architecture-example-preview img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .18s;display:block}.architecture-example>summary:hover .architecture-example-preview img{transform:scale(1.025)}.architecture-example-summary{min-width:0;display:block}.architecture-example-summary .skill-group-label{margin-bottom:.35rem;display:block}.architecture-example-summary strong{color:var(--paper);margin-bottom:.35rem;font-size:clamp(1.05rem,1.3vw,1.3rem);line-height:1.1;display:block}.architecture-example-summary>span:last-child{max-width:46rem;color:var(--muted);font-size:.78rem;line-height:1.55;display:block}.architecture-example-toggle{border:1px solid var(--line-strong);color:var(--paper);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;justify-self:end;padding:.55rem .7rem;font-size:.6rem}.architecture-example-collapse,.architecture-example[open] .architecture-example-expand{display:none}.architecture-example[open] .architecture-example-collapse{display:inline}.architecture-example-expanded{border-top:1px solid var(--line);margin:0;padding:clamp(1rem,2vw,1.6rem)}.architecture-example-scroll{border:1px solid var(--line);overscroll-behavior:contain;background:#111;max-height:min(78vh,60rem);overflow:auto}.architecture-example-scroll img{width:1621px;max-width:none;height:auto;margin-inline:auto;display:block}.architecture-example-expanded figcaption{color:var(--muted);justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:.9rem;font-size:.76rem;line-height:1.5;display:flex}.architecture-example-caption{max-width:52rem}.architecture-example-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:.9rem;display:flex}.architecture-example-expanded a{color:var(--paper);text-underline-offset:.35rem;white-space:nowrap;flex:none;font-weight:700;text-decoration-color:#d8a84ea6}.skill-group-grid{grid-template-columns:1.16fr .92fr .92fr;gap:1rem;display:grid}.skill-group{border:1px solid var(--line);background:#1d1e1ab8;flex-direction:column;min-width:0;padding:clamp(1.5rem,2.6vw,2.25rem);display:flex}.skill-group h3{font-size:clamp(1.85rem,2.4vw,2.55rem)}.skill-tool-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.skill-tool{border:1px solid var(--line);background:#11110f9e;grid-template-columns:3.6rem minmax(0,1fr) auto;align-items:center;gap:.85rem;min-height:4.95rem;padding:.65rem;display:grid}.skill-tool[data-priority=core]{background:#d8a84e0e;border-color:#d8a84e61}.skill-tool[data-priority=developing]{background:0 0;border-style:dashed}.skill-tool-mark{color:#fff;width:3.6rem;height:3.6rem;font-family:var(--display);letter-spacing:-.035em;border:1px solid #ffffff29;place-items:center;padding-inline:.25rem;font-size:.86rem;font-weight:760;line-height:1;display:grid;overflow:hidden}.skill-tool-mark[data-brand=csharp]{background:0 0}.skill-tool-mark[data-brand=unity]{background:0 0;font-size:.68rem}.skill-tool-mark[data-brand=github],.skill-tool-mark[data-brand=visual-studio],.skill-tool-mark[data-brand=visual-studio-code],.skill-tool-mark[data-brand=cplusplus]{background:0 0}.skill-tool-mark[data-brand=javascript]{background:#ffca28}.skill-tool-mark[data-brand=python]{background:0 0}.skill-tool-mark[data-brand=drawio]{background:#d88d32}.skill-tool-mark[data-brand=excel]{background:#107c41}.skill-tool-mark[data-brand=codex]{color:#b8ded6;background:#222522;font-size:.68rem}.skill-tool-mark[data-brand=chatgpt]{background:#287762}.skill-tool-mark[data-brand=gemini]{background:0 0}.skill-tool-mark[data-brand=midjourney]{background:#f8fafb}.skill-tool-mark[data-brand=premiere]{color:#c9b8ff;background:0 0}.skill-tool-mark[data-brand=powerpoint]{background:0 0}.skill-tool-mark[data-brand=photoshop]{color:#7dd5ff;background:0 0}.skill-tool-copy{min-width:0}.skill-tool-copy strong,.skill-tool-copy>span{display:block}.skill-tool-copy strong{color:var(--paper);margin-bottom:.15rem;font-size:.84rem}.skill-tool-copy>span{color:var(--muted);font-size:.7rem;line-height:1.35}.skill-tool-status{color:var(--muted);font-family:var(--mono);letter-spacing:.05em;text-align:right;text-transform:uppercase;font-size:.66rem}.skill-tool[data-priority=core] .skill-tool-status{color:var(--gold)}.skill-tool[data-priority=developing] .skill-tool-status{color:var(--paper-soft)}.skill-group-note{color:var(--muted);font-family:var(--mono);margin:auto 0 0;padding-top:1.4rem;font-size:.6rem}.home-about{grid-template-columns:1fr minmax(20rem,.68fr);gap:clamp(3rem,7vw,8rem);padding-block:clamp(3.75rem,5.5vw,6rem);display:grid}.home-about h2{max-width:24ch;margin:0;font-size:clamp(2.2rem,3.4vw,3.8rem);font-weight:650}.home-about-copy{align-self:end;max-width:65ch}.home-about-copy>p:first-child{font-size:1.05rem}.page-hero{border-bottom:1px solid var(--line);padding-block:clamp(6rem,11vw,11rem)}.page-hero h1,.contact-hero h1{letter-spacing:-.075em;text-transform:uppercase;max-width:24ch;margin-bottom:2rem;font-size:clamp(3rem,5vw,5rem);font-weight:720;line-height:.92}.page-hero>p:last-child,.resume-hero>p{max-width:49rem;margin-bottom:0;font-size:clamp(1.08rem,1.5vw,1.35rem)}.resume-hero .button{margin-top:2rem}.work-index{padding-block:clamp(5rem,9vw,9rem)}.case-hero{grid-template-columns:1fr .42fr;gap:4rem;padding-block:clamp(5rem,9vw,9rem);display:grid}.case-heading h1{letter-spacing:-.07em;max-width:24ch;margin-bottom:1.7rem;font-size:clamp(3rem,4.5vw,5rem);font-weight:720;line-height:.92}.case-summary{max-width:52rem;margin-bottom:0;font-size:clamp(1.1rem,1.7vw,1.45rem)}.case-meta{border-top:1px solid var(--line-strong);align-self:end;margin:0}.case-meta div{border-bottom:1px solid var(--line);padding-block:1rem}.case-meta dt{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.58rem}.case-meta dd{color:var(--paper-soft);margin:0;font-size:.9rem}.case-media{padding-bottom:clamp(5rem,9vw,9rem)}.case-video-figure{border:1px solid var(--line);background:#070706;margin:0}.case-video-figure video{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;display:block}.project-cover-art{border:1px solid var(--line-strong);background:#02040a;width:min(100%,31rem);margin:0 auto}.project-cover-art-frame{place-items:center;padding:clamp(.55rem,1.2vw,.9rem);display:grid}.project-cover-art img{width:100%;height:auto;display:block}.project-cover-art figcaption{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);padding:.8rem .9rem;font-size:.75rem;line-height:1.55}.project-diagram{border:1px solid var(--line-strong);background:#111}.project-diagram>summary{cursor:zoom-in;list-style:none;display:block;position:relative;overflow:hidden}.project-diagram>summary::-webkit-details-marker{display:none}.project-diagram>summary:focus-visible{outline:2px solid var(--gold);outline-offset:-.3rem}.project-diagram[open]>summary{cursor:zoom-out}.project-diagram-preview{aspect-ratio:1621/1131;display:block;overflow:hidden}.project-diagram-preview img{object-fit:cover;width:100%;height:100%;transition:transform .18s;display:block}.project-diagram>summary:hover .project-diagram-preview img{transform:scale(1.018)}.project-diagram-toggle{color:#fff;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;background:#0a0a09eb;border:1px solid #ffffff52;padding:.55rem .7rem;font-size:.6rem;position:absolute;bottom:.75rem;right:.75rem}.project-diagram-collapse,.project-diagram[open] .project-diagram-expand{display:none}.project-diagram[open] .project-diagram-collapse{display:inline}.project-diagram-expanded{border-top:1px solid var(--line);margin:0;padding:.8rem}.project-diagram-scroll{border:1px solid var(--line);overscroll-behavior:contain;background:#fff;max-height:min(65vh,44rem);overflow:auto}.project-diagram-scroll img{width:1621px;max-width:none;height:auto;margin-inline:auto;display:block}.project-diagram-expanded figcaption{color:var(--muted);font-family:var(--mono);justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:.75rem;font-size:.62rem;line-height:1.45;display:flex}.project-diagram-expanded figcaption>span{max-width:38rem}.project-diagram-expanded figcaption a{color:var(--paper);text-underline-offset:.3rem;white-space:nowrap;flex:none;font-weight:700;text-decoration-color:#d8a84ea6}.project-download-action p{color:var(--muted);font-family:var(--mono);margin:.75rem 0 0;font-size:.62rem}.case-evidence-media{padding-bottom:clamp(5rem,9vw,9rem)}.case-evidence-heading{grid-template-columns:minmax(18rem,.7fr) minmax(22rem,1fr);column-gap:clamp(2rem,6vw,7rem);margin-bottom:clamp(2.5rem,5vw,5rem);display:grid}.case-evidence-heading .eyebrow{grid-column:1/-1}.case-evidence-heading h2{max-width:20ch;margin:0;font-size:clamp(2.3rem,4vw,4.2rem);line-height:.95}.case-evidence-heading>p:last-child{align-self:end;max-width:50ch;margin:0}.media-caption{color:var(--muted);font-family:var(--mono);margin:.7rem 0 0;font-size:.62rem}.case-body{border-top:1px solid var(--line);grid-template-columns:.32fr 1fr;gap:clamp(3rem,8vw,9rem);padding-block:clamp(5rem,9vw,9rem);display:grid}.case-rail{align-self:start;position:sticky;top:7rem}.case-rail p:last-child{max-width:17rem;color:var(--muted);font-size:.86rem}.case-content{gap:clamp(5rem,9vw,9rem);max-width:58rem;display:grid}.case-content section h2{max-width:24ch;margin-bottom:1.6rem;font-size:clamp(2.25rem,3.3vw,3.8rem)}.case-content section>p:last-child{max-width:47rem;margin-bottom:0;font-size:1.06rem}.decision-list{border-top:1px solid var(--line);margin:2.5rem 0 0;padding:0;list-style:none}.decision-list li{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;gap:1rem;padding-block:1.4rem;display:grid}.decision-list span{color:var(--gold);font-family:var(--mono);font-size:.64rem}.decision-list p{margin:0}.evidence-list,.verification-panel ul{gap:.8rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.evidence-list li,.verification-panel li{border:1px solid var(--line);color:var(--paper-soft);padding:1rem 1rem 1rem 2.8rem;position:relative}.evidence-list li:before,.verification-panel li:before{color:var(--teal);font-family:var(--mono);content:"◇";font-size:.7rem;position:absolute;top:1.15rem;left:1rem}.verification-panel{border:1px solid var(--gold-soft);background:#d8a84e0d;padding:clamp(1.5rem,4vw,3.5rem)}.verification-panel li:before{color:var(--gold);content:"○"}.project-pagination{border-top:1px solid var(--line);grid-template-columns:minmax(0,30rem) minmax(0,30rem);justify-content:space-between;gap:clamp(1.5rem,5vw,6rem);width:80vw;margin-inline:auto;padding-block:clamp(2.25rem,3.5vw,3.75rem);display:grid}.project-pagination-card{border:1px solid var(--line);width:100%;min-width:0;color:var(--paper);background:#f4efe405;grid-template-columns:clamp(7rem,8vw,9rem) minmax(0,1fr);align-items:center;gap:clamp(.75rem,1.3vw,1.15rem);padding:.65rem;transition:border-color .16s,background-color .16s,transform .16s;display:grid}.project-pagination-card[data-direction=previous]{justify-self:start}.project-pagination-card[data-direction=next]{text-align:right;justify-self:end}.project-pagination-card:hover,.project-pagination-card:focus-visible{background:#d8a84e0e;border-color:#d8a84eb8;transform:translateY(-2px)}.project-pagination-copy{min-width:0;display:block}.project-pagination-direction{color:var(--gold);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.6rem;display:flex}.project-pagination-card[data-direction=next] .project-pagination-direction{justify-content:flex-end}.project-pagination-title{max-width:22ch;font-family:var(--display);letter-spacing:-.04em;margin-top:.4rem;font-size:clamp(1.1rem,1.6vw,1.45rem);font-weight:650;line-height:1;display:block}.project-pagination-card[data-direction=next] .project-pagination-title{margin-left:auto}.project-pagination-thumbnail{aspect-ratio:16/10;border:1px solid var(--line);background:var(--panel);width:100%;display:block;overflow:hidden}.project-pagination-thumbnail>img,.project-pagination-thumbnail .project-visual{width:100%;height:100%;display:block}.project-pagination-thumbnail>img{object-fit:cover}.project-pagination-thumbnail[data-media=diagram]>img{object-fit:contain;object-position:center top;background:#fff}.project-pagination-thumbnail .project-visual{border:0;min-height:0;transform:none}.project-pagination-thumbnail .visual-caption{display:none}.project-pagination-thumbnail .visual-index{font-size:clamp(2rem,4vw,3.5rem);top:7%;right:7%}.about-grid{grid-template-columns:.72fr 1fr;gap:clamp(3rem,8vw,9rem);padding-block:clamp(5rem,9vw,9rem);display:grid}.about-copy{align-self:center;max-width:47rem}.about-copy h2{max-width:22ch;margin-bottom:2rem;font-size:clamp(2.2rem,3.5vw,4rem)}.about-copy p{font-size:1.08rem}.principles{border-top:1px solid var(--line);grid-template-columns:.7fr 1fr;gap:clamp(3rem,8vw,8rem);padding-block:clamp(5rem,9vw,9rem);display:grid}.principles h2{max-width:22ch;font-size:clamp(2.2rem,3.5vw,3.8rem)}.principles ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.principles li{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;gap:1.4rem;padding-block:1.5rem;display:grid}.principles li>span{color:var(--gold);font-family:var(--mono);font-size:.65rem}.principles h3{margin-bottom:.4rem;font-size:1.45rem}.principles p{margin:0}.about-cta{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:2rem;padding-block:clamp(4rem,7vw,7rem);display:flex}.about-cta h2{max-width:22ch;margin:0;font-size:clamp(2.2rem,3.5vw,4rem)}.resume-sheet{padding-block:clamp(5rem,9vw,9rem)}.resume-header{border-bottom:1px solid var(--line-strong);grid-template-columns:1fr .6fr;gap:3rem;padding-bottom:3rem;display:grid}.resume-header h2{margin:0;font-size:clamp(2.4rem,4vw,4.4rem)}.resume-header>p{align-self:end;margin:0}.resume-section{border-bottom:1px solid var(--line);padding-block:4rem}.resume-section>h3,.resume-columns h3{color:var(--gold);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem;font-size:.72rem}.resume-projects{border-top:1px solid var(--line);gap:0;display:grid}.resume-projects article{border-bottom:1px solid var(--line);grid-template-columns:.8fr 1.4fr auto;align-items:start;gap:2rem;padding-block:1.5rem;display:grid}.resume-projects h4{letter-spacing:-.02em;margin:0;font-size:1.25rem}.resume-projects p{margin:0;font-size:.9rem}.resume-projects article>div p{color:var(--teal);font-family:var(--mono);margin-bottom:.4rem;font-size:.58rem}.resume-projects a{border-bottom:1px solid var(--line-strong);font-size:.78rem;font-weight:650}.resume-columns{border-left:1px solid var(--line);grid-template-columns:repeat(2,1fr);display:grid}.resume-columns>section{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:16rem;padding:2rem}.resume-pending{border:1px dashed var(--line-strong);padding:1rem}.resume-pending strong{color:var(--paper-soft);margin-bottom:.45rem;font-size:.9rem;display:block}.resume-pending p{margin:0;font-size:.85rem}.resume-skills-summary{gap:1rem;display:grid}.resume-skills-summary p{margin:0;font-size:.83rem}.resume-skills-summary strong{color:var(--paper);margin-bottom:.15rem;font-size:.82rem;display:block}.resume-skills-link{color:var(--gold);margin-top:1.5rem;font-size:.78rem;font-weight:650;display:inline-block}.contact-hero{border-bottom:1px solid var(--line);grid-template-columns:1fr .65fr;align-items:end;gap:4rem;padding-block:clamp(6rem,11vw,11rem);display:grid}.contact-hero h1{margin-bottom:0}.contact-hero>p{max-width:39rem;margin:0;font-size:1.08rem}.contact-grid{grid-template-columns:repeat(2,1fr);padding-block:clamp(5rem,9vw,9rem);display:grid}.contact-grid article{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:24rem;padding:clamp(1.5rem,4vw,3rem);position:relative}.contact-grid article:nth-child(odd){border-left:1px solid var(--line)}.contact-grid article:nth-child(n+3){border-bottom:1px solid var(--line)}.contact-grid article>span{color:#f4efe429;font-family:var(--display);font-size:4.5rem;font-weight:700;position:absolute;top:1.2rem;right:1.2rem}.contact-grid h2{margin:4rem 0 1rem;font-size:clamp(2.4rem,4vw,4.2rem)}.contact-grid article>p:not(.eyebrow){max-width:28rem}.contact-grid strong{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;padding-top:.9rem;font-size:.65rem;position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem}.contact-footer{border-top:1px solid var(--line);justify-content:space-between;gap:2rem;padding-block:3rem;display:flex}.contact-footer p{margin:0}.not-found{min-height:70vh;padding-block:clamp(7rem,13vw,13rem)}.not-found h1{max-width:22ch;margin-bottom:2rem;font-size:clamp(3rem,5vw,5rem)}.not-found p:not(.eyebrow){margin-bottom:2rem}.site-footer{width:min(100%, var(--max-width));padding:clamp(4rem, 7vw, 6rem) var(--gutter) 2rem;border-top:1px solid var(--line);margin-inline:auto}.footer-lead{grid-template-columns:1fr auto;justify-content:space-between;align-items:flex-end;gap:3rem;padding-bottom:clamp(3rem,5vw,4.5rem);display:grid}.footer-lead>div{max-width:70rem}.footer-lead h2{max-width:30ch;margin-bottom:0;font-size:clamp(2.45rem,4vw,4.4rem)}.footer-lead>div>p:last-child{max-width:36rem;margin:0}.footer-meta{border-top:1px solid var(--line);justify-content:space-between;gap:2rem;padding-top:1.2rem;display:flex}.footer-meta p{color:var(--muted);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:.58rem}.subpage-banner{isolation:isolate;border-bottom:1px solid var(--line);place-items:center;min-height:clamp(18rem,34vh,24rem);display:grid;position:relative;overflow:hidden}.subpage-banner:before{z-index:-1;content:"";background:linear-gradient(90deg,#08090894,#080908c7 50%,#08090894),linear-gradient(#0000000f,#00000075);position:absolute;inset:0}.subpage-banner-media{z-index:-2;background-color:#17201e;background-image:var(--subpage-banner-image,none), radial-gradient(circle at 18% 48%, #83b7ae4d, transparent 25%), radial-gradient(circle at 52% 42%, #d8a84e3d, transparent 23%), linear-gradient(112deg, #152325 0 34%, #292719 34% 68%, #291b1a 68% 100%);background-position:var(--subpage-banner-position,center), center, center, center;background-repeat:no-repeat;background-size:cover,auto,auto,cover;position:absolute;inset:0;transform:scale(1.01)}.subpage-banner[data-banner-variant=about] .subpage-banner-media{background-image:var(--subpage-banner-image,none), radial-gradient(circle at 25% 45%, #d8a84e47, transparent 24%), radial-gradient(circle at 78% 55%, #8d5b6757, transparent 26%), linear-gradient(118deg, #201d18, #182624 52%, #281c22)}.subpage-banner[data-banner-variant=resume] .subpage-banner-media{background-image:var(--subpage-banner-image,none), linear-gradient(90deg, #83b7ae24 1px, transparent 1px), linear-gradient(#83b7ae1a 1px, transparent 1px), linear-gradient(120deg, #152126, #24231a 58%, #1c1a20);background-size:cover,4rem 4rem,4rem 4rem,cover}.subpage-banner[data-banner-variant=contact] .subpage-banner-media{background-image:var(--subpage-banner-image,none), radial-gradient(circle at 33% 52%, #d8a84e4f, transparent 25%), radial-gradient(circle at 72% 48%, #83b7ae40, transparent 24%), linear-gradient(115deg, #211d16, #17221f 56%, #281c1a)}.subpage-banner-content{text-align:center;padding-block:clamp(2.75rem,5vw,4.5rem)}.subpage-banner-content .eyebrow{margin-bottom:1rem}.subpage-banner h1{color:#fff;letter-spacing:-.06em;text-shadow:0 .16em .8em #000000b8;max-width:24ch;margin:0 auto 1.25rem;font-size:clamp(2.6rem,4.8vw,5.15rem);font-weight:680;line-height:.95}.subpage-banner-details{color:#ffffffd6;font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:.5rem 1.25rem;margin:0;padding:0;font-size:clamp(.62rem,.8vw,.76rem);list-style:none;display:flex}.subpage-banner-details li:not(:last-child):after{color:var(--gold);content:"/";margin-left:1.25rem}.page-feature{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.06fr) minmax(22rem,.94fr);align-items:center;gap:clamp(2rem,4.5vw,5rem);padding-block:clamp(3rem,5vw,5rem);display:grid}.page-feature-portrait{grid-template-columns:minmax(18rem,.68fr) minmax(24rem,1.12fr)}.about-portrait{aspect-ratio:1;border:1px solid var(--line);object-fit:cover;object-position:center;width:100%;height:auto;display:block}.page-feature-document{grid-template-columns:minmax(19rem,.72fr) minmax(24rem,1.18fr)}.page-feature-media{min-width:0}.page-feature-media>figure{margin:0}.page-feature-media .project-visual{min-height:clamp(22rem,29vw,29rem)}.page-feature-copy{max-width:54rem}.page-feature-copy h2{max-width:22ch;margin-bottom:1.35rem;font-size:clamp(2rem,3vw,3.3rem);font-weight:650}.page-feature-prose{gap:.9rem;display:grid}.page-feature-prose p{max-width:65ch;margin:0;font-size:clamp(1rem,1.15vw,1.08rem)}.page-feature-details,.page-feature-action{margin-top:1.5rem}.page-feature-details>.project-tool-list{margin-top:1rem}.feature-meta{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.feature-meta div{min-width:0;padding:.9rem .9rem 0 0}.feature-meta dt{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;font-size:.58rem}.feature-meta dd{color:var(--paper-soft);margin:0;font-size:.78rem;line-height:1.45}.support-section{padding-block:clamp(2.75rem,4.5vw,4.75rem)}.support-heading{grid-template-columns:1fr minmax(20rem,.65fr);align-items:end;gap:clamp(2rem,4vw,4rem);margin-bottom:clamp(1.75rem,3vw,3rem);display:grid}.support-heading h2{max-width:24ch;margin:0;font-size:clamp(1.9rem,3vw,3.25rem);font-weight:650}.support-heading>p{justify-self:end;max-width:58ch;margin:0}.contact-support-heading{grid-template-columns:1fr}.support-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.support-card{border:1px solid var(--line);background:#f4efe405;min-width:0;padding:clamp(1.2rem,2vw,1.75rem)}.support-card .eyebrow{margin-bottom:1rem}.support-card h3{max-width:22ch;margin-bottom:1rem;font-size:clamp(1.35rem,1.8vw,1.85rem)}.support-card>p:last-child{margin-bottom:0;font-size:.9rem}.compact-project-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;display:grid}.compact-project-card{border:1px solid var(--line);background:#f4efe405;flex-direction:column;grid-column:span 2;min-width:0;display:flex}.compact-project-card:nth-last-child(2):nth-child(4),.compact-project-card:last-child:nth-child(5){grid-column:span 3}.compact-project-visual{border-bottom:1px solid var(--line);display:block}.compact-project-card .project-visual{border:0;min-height:11.5rem}.compact-project-image{aspect-ratio:16/9;object-fit:cover;object-position:center;background:#fff;width:100%;display:block}.compact-project-copy{flex-direction:column;height:100%;padding:clamp(1.15rem,1.8vw,1.55rem);display:flex}.compact-project-copy .eyebrow{margin:0;font-size:.6rem}.compact-project-meta{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.compact-project-copy h3{max-width:21ch;margin-bottom:.65rem;font-size:clamp(1.45rem,1.8vw,2rem)}.compact-project-context{color:var(--teal);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.58rem}.compact-project-copy>p:not(.eyebrow,.compact-project-context){margin-bottom:1rem;font-size:.88rem}.compact-project-copy .tag-list{margin-bottom:1.2rem}.compact-project-copy .text-link{align-self:flex-start;margin-top:auto}.case-support{border-bottom:1px solid var(--line)}.case-support-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:1rem;display:grid}.case-support-grid>.support-card{align-self:stretch;min-height:0}.case-support-grid>.academic-challenge-card{grid-column:span 2}.case-support-grid>.design-direction-card,.case-support-grid>.reflection-card{grid-column:span 3}.case-support-grid>.project-focus-card{grid-column:span 2}.case-support-grid>.project-credits-card{grid-column:1/-1}.project-credits-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.project-credits-header h3{margin:0}.project-credits-logo{object-fit:contain;width:9rem;max-width:100%;height:auto;display:block}.project-credits-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem clamp(1.5rem,3vw,3rem);margin:0;padding:0;list-style:none;display:grid}.project-credit{border-top:1px solid var(--line);min-width:0;padding-top:1rem}.project-credit h4{margin:0 0 .45rem;font-size:1.25rem}.project-credit-role{color:var(--gold);margin:0 0 .8rem;font-size:1rem}.project-credit-contributions{margin:0;font-size:1rem;line-height:1.65}.project-credit-link{margin-top:.85rem;font-size:.875rem}.case-support-grid[data-origin=independent]>.design-direction-card{grid-column:span 4}.compact-decision-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.compact-decision-list li{border-bottom:1px solid var(--line);grid-template-columns:2.25rem minmax(0,1fr);align-content:start;gap:.75rem;padding-block:.85rem;display:grid}.compact-decision-list span{color:var(--gold);font-family:var(--mono);font-size:.62rem}.compact-decision-list p{margin:0;font-size:.85rem}.case-evidence-media{border-bottom:1px solid var(--line);padding-block:clamp(2.75rem,4.5vw,4.75rem)}.case-evidence-heading{margin-bottom:clamp(1.75rem,3vw,3rem)}.case-evidence-heading h2{font-size:clamp(1.9rem,3vw,3.25rem)}.case-video-figure figcaption{color:var(--muted);font-family:var(--mono);padding:.75rem .9rem;font-size:.62rem;line-height:1.45}.evidence-turntable{border:1px solid var(--line);background:var(--panel);min-width:0;overflow:hidden}.evidence-turntable-stage{background:radial-gradient(circle at 50% 48%,#d8a84e14,#0000 34%),#11110f;grid-template-columns:minmax(7rem,.5fr) minmax(26rem,1.7fr) minmax(7rem,.5fr);align-items:center;gap:clamp(.75rem,1.5vw,1.5rem);min-width:0;margin:0;padding:clamp(1rem,2vw,1.75rem);list-style:none;display:grid;overflow:hidden}.evidence-turntable-stage[data-enhanced=false]{justify-content:initial;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-color:var(--gold-soft) var(--ink-soft);scrollbar-width:thin;grid-template-columns:none;grid-auto-columns:minmax(16rem,32%);grid-auto-flow:column;overflow-x:auto}.evidence-turntable-stage[data-enhanced=false][data-neighbor-count="0"]{grid-template-columns:minmax(0,58rem);grid-auto-flow:row;grid-auto-columns:initial;justify-content:center;overflow-x:hidden}.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="0"]{grid-template-columns:minmax(0,58rem);justify-content:center}.evidence-turntable-slide{min-width:0;list-style:none;position:relative}.evidence-turntable-stage[data-enhanced=false] .evidence-turntable-slide{scroll-snap-align:center;align-self:center}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=active]{z-index:2;grid-area:1/2}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=previous]{grid-area:1/1}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=next]{grid-area:1/3}.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="0"] .evidence-turntable-slide[data-position=active]{grid-column:1}.evidence-turntable-active-media{border:1px solid var(--line-strong);cursor:zoom-in;background:#0b0b0a;place-items:center;width:100%;min-width:0;height:clamp(24rem,36vw,34rem);padding:clamp(.75rem,1.5vw,1.25rem);display:grid;position:relative;overflow:hidden}.evidence-turntable-active-video{border:1px solid var(--line-strong);background:#0b0b0a;place-items:center;width:100%;min-width:0;height:clamp(24rem,36vw,34rem);padding:clamp(.75rem,1.5vw,1.25rem);display:grid;overflow:hidden}.evidence-turntable-active-video .project-video-player{width:100%;max-width:100%}.evidence-turntable-active-video video{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;height:auto;max-height:100%;display:block}.evidence-turntable-active-media img,.evidence-turntable-fallback-media img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.evidence-turntable-slide[data-evidence-slide=oxygen-feedback-system] .evidence-turntable-active-media img,.evidence-turntable-slide[data-evidence-slide=oxygen-feedback-system] .evidence-turntable-fallback-media img{object-fit:contain;width:100%;min-width:0;height:100%;min-height:0}.evidence-turntable-fallback-media{border:1px solid var(--line);height:clamp(16rem,24vw,24rem);color:var(--paper);background:#0b0b0a;grid-template-rows:minmax(0,1fr) auto;display:grid;overflow:hidden}.evidence-turntable-fallback-media img{place-self:center;padding:.65rem}.evidence-turntable-fallback-media>span{border-top:1px solid var(--line);background:var(--panel);font-family:var(--mono);padding:.65rem .75rem;font-size:.62rem}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-active-media,.evidence-turntable[data-media-shape=landscape] .evidence-turntable-active-video{padding:clamp(.35rem,.6vw,.65rem)}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-fallback-media{grid-template-rows:auto auto;height:auto}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-fallback-media img{aspect-ratio:16/10;object-fit:contain;width:100%;height:auto}.evidence-turntable-open{border:1px solid var(--line-strong);color:var(--paper);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;background:#11110fe0;padding:.45rem .65rem;font-size:.58rem;position:absolute;bottom:.75rem;right:.75rem}.evidence-lightbox{border:1px solid var(--line-strong);width:80vw;max-width:none;height:80dvh;max-height:none;color:var(--paper);background:#090908;padding:0;overflow:hidden;box-shadow:0 2rem 6rem #0009}.evidence-lightbox::backdrop{-webkit-backdrop-filter:blur(.35rem);backdrop-filter:blur(.35rem);background:#030403db}.evidence-lightbox-frame{grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;display:grid}.evidence-lightbox-header{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:1rem;min-height:3.25rem;padding:.55rem .7rem .55rem 1rem;display:flex}.evidence-lightbox-header p{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem}.evidence-lightbox-close{border:1px solid var(--line-strong);min-width:2.75rem;min-height:2.75rem;color:var(--paper);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:#0b0b0a;justify-content:center;align-items:center;gap:.65rem;padding:.5rem .7rem;font-size:.62rem;display:inline-flex}.evidence-lightbox-close:hover,.evidence-lightbox-close:focus-visible{border-color:var(--gold);color:var(--gold)}.evidence-lightbox-close>span:last-child{font-family:var(--sans);font-size:1.15rem;line-height:1}.evidence-lightbox-image{justify-content:center;align-items:center;min-width:0;min-height:0;padding:clamp(.5rem,1vw,1rem);display:flex;overflow:hidden}.evidence-lightbox-image img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.evidence-turntable-neighbor{border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;height:clamp(12rem,18vw,17rem);color:var(--paper);font:inherit;cursor:pointer;opacity:.64;grid-template-rows:minmax(0,1fr) auto;padding:0;transition:border-color .16s,opacity .16s,transform .16s;display:grid;position:relative;overflow:hidden;transform:scale(.84)}.evidence-turntable-neighbor[data-neighbor-position=previous]{transform-origin:100%}.evidence-turntable-neighbor[data-neighbor-position=next]{transform-origin:0}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor{grid-template-rows:auto auto;height:auto;transform:scale(.92)}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor img{aspect-ratio:16/10;object-fit:contain;width:100%;height:auto;padding:.3rem}.evidence-turntable-neighbor:hover,.evidence-turntable-neighbor:focus-visible{border-color:var(--gold);opacity:1;outline:2px solid var(--gold);outline-offset:3px;transform:scale(.9)}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor:hover,.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor:focus-visible{transform:scale(.98)}.evidence-turntable-neighbor img{object-fit:contain;background:#0b0b0a;width:100%;height:100%;min-height:0;padding:.55rem;display:block}.evidence-turntable-neighbor-label{border-top:1px solid var(--line);min-width:0;font-family:var(--mono);text-align:left;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:.55rem .65rem;font-size:.56rem;line-height:1.4;display:-webkit-box;overflow:hidden}.evidence-turntable-stage-arrow{z-index:3;border:1px solid var(--line-strong);width:3rem;height:3rem;color:var(--paper);cursor:pointer;background:#11110feb;place-items:center;font-size:1.2rem;transition:border-color .16s,background-color .16s,color .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.evidence-turntable-stage-arrow[data-carousel-action=previous]{left:.75rem}.evidence-turntable-stage-arrow[data-carousel-action=next]{right:.75rem}.evidence-turntable-stage-arrow:hover,.evidence-turntable-stage-arrow:focus-visible{border-color:var(--gold);background:var(--gold);color:var(--ink);outline:2px solid var(--paper);outline-offset:2px}.evidence-turntable-copy{border-top:1px solid var(--line);grid-template-columns:minmax(16rem,.7fr) minmax(20rem,1.3fr);align-items:start;gap:clamp(1.5rem,4vw,5rem);min-width:0;padding:clamp(1.25rem,2.4vw,2.25rem);display:grid}.evidence-turntable-counter{color:var(--gold);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem;font-size:.62rem}.evidence-turntable-copy-heading h3{max-width:20ch;margin:0;font-size:clamp(1.35rem,1.8vw,1.9rem)}.evidence-turntable-description{align-self:center}.evidence-turntable-description p{max-width:44ch;margin:0;font-size:.9rem}.evidence-turntable-description p+p{margin-top:.75rem}.evidence-turntable-controls{border-top:1px solid var(--line);overscroll-behavior-inline:contain;background:#11110f59;justify-content:center;gap:.5rem;max-width:100%;padding:.75rem;display:flex;overflow-x:auto}.evidence-turntable-indicator{border:1px solid var(--line);min-width:max-content;min-height:2.75rem;color:var(--paper);font-family:var(--mono);cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;padding:.55rem .7rem;font-size:.62rem;transition:border-color .16s,background-color .16s,color .16s;display:grid}.evidence-turntable-indicator:hover,.evidence-turntable-indicator:focus-visible,.evidence-turntable-indicator[aria-current=true]{border-color:var(--gold);color:var(--gold);background:#d8a84e1a}.evidence-turntable-indicator>span:first-child{color:var(--gold)}.evidence-turntable-indicator>span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:15ch;overflow:hidden}.evidence-turntable-stage-arrow[hidden],.evidence-turntable-controls[hidden],.evidence-turntable-slide[hidden]{display:none}.evidence-turntable-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.evidence-turntable-neighbor,.evidence-turntable-stage-arrow,.evidence-turntable-indicator{transition:none}}.resume-profile-card{border:1px solid var(--line);background:linear-gradient(#f4efe409 1px, transparent 1px), linear-gradient(90deg, #f4efe409 1px, transparent 1px), radial-gradient(circle at 72% 24%, #83b7ae2e, transparent 27%), var(--panel);background-size:3rem 3rem,3rem 3rem,auto,auto;min-height:25rem;padding:clamp(1.5rem,3vw,2.5rem)}.resume-profile-name{color:var(--paper);font-family:var(--display);letter-spacing:-.055em;margin:clamp(4.5rem,8vw,7rem) 0 .35rem;font-size:clamp(2.2rem,3.5vw,4rem);font-weight:650;line-height:.95}.resume-profile-role{color:var(--gold);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}.resume-profile-card ul{flex-wrap:wrap;gap:.45rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.resume-profile-card li{border:1px solid var(--line);color:var(--muted);font-family:var(--mono);text-transform:uppercase;padding:.35rem .55rem;font-size:.6rem}.resume-experience{border-bottom:1px solid var(--line)}.resume-projects h3{letter-spacing:-.02em;margin:0;font-size:1.25rem}.resume-skill-grid .support-card{min-height:13rem}.resume-update-note{max-width:58rem;color:var(--muted);font-family:var(--mono);margin:1.4rem 0 0;font-size:.68rem;line-height:1.55}.contact-methods{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.contact-method{border:1px solid var(--line);background:#f4efe405;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:5.75rem;padding:1rem 1.2rem;transition:border-color .16s,transform .16s;display:grid}a.contact-method:hover,a.contact-method:focus-visible{border-color:var(--gold);transform:translateY(-2px)}.contact-method[aria-current=page]{border-color:var(--gold-soft);background:#d8a84e14}.contact-method-icon{border:1px solid var(--line-strong);width:2.5rem;height:2.5rem;color:var(--gold);border-radius:50%;place-items:center;display:grid}.contact-method-icon svg{width:1.2rem;height:1.2rem}.contact-method-copy,.contact-method-copy strong,.contact-method-copy span{display:block}.contact-method-copy strong{color:var(--paper);margin-bottom:.2rem;font-size:.88rem}.contact-method-copy span{color:var(--muted);font-size:.76rem}.contact-method-status{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.58rem}.contact-form-panel{border:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(15rem,.62fr) minmax(0,1.38fr);margin-top:clamp(1.5rem,3vw,2.5rem);display:grid}.contact-form-introduction{border-right:1px solid var(--line);background:radial-gradient(circle at 20% 18%,#d8a84e1f,#0000 32%),#f4efe404;padding:clamp(1.5rem,3vw,2.75rem)}.contact-form-introduction h3{letter-spacing:-.04em;max-width:20ch;margin:.8rem 0 1rem;font-size:clamp(1.8rem,2.8vw,2.8rem)}.contact-form-introduction>p:not(.eyebrow){max-width:34rem}.contact-form{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:1.15rem;padding:clamp(1.5rem,3vw,2.75rem);display:grid;position:relative}.contact-form label{min-width:0;color:var(--paper-soft);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;align-content:start;gap:.5rem;font-size:.66rem;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line-strong);width:100%;color:var(--paper);font:inherit;font-family:var(--sans);letter-spacing:normal;text-transform:none;background:#090a09b8;border-radius:0;font-size:.92rem}.contact-form input{min-height:3rem;padding:.75rem .85rem}.contact-form textarea{resize:vertical;min-height:12rem;padding:.85rem;line-height:1.55}.contact-form input:focus-visible,.contact-form textarea:focus-visible{border-color:var(--gold);outline-offset:2px;outline:2px solid #d8a84e40}.contact-form-wide{grid-column:1/-1}.contact-form-verification{border:1px solid var(--line);background:#f4efe406;gap:.65rem;min-width:0;padding:.9rem 1rem;display:grid}.contact-form-turnstile{width:100%;min-width:0}.contact-form-verification>p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.55}.contact-form-feedback{border:1px solid var(--line-strong);border-left:.25rem solid var(--muted);background:#090a0994;gap:.25rem;min-height:4.75rem;padding:.9rem 1rem;display:grid}.contact-form-feedback strong{color:var(--paper);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.contact-form-feedback span{color:var(--muted);font-size:.8rem;line-height:1.55}.contact-form-feedback-busy{border-left-color:var(--gold)}.contact-form-feedback-success{background:#37744729;border-color:#6fbe847a #6fbe847a #6fbe847a #6fbe84}.contact-form-feedback-success strong,.contact-form-feedback-success span{color:#bce8c7}.contact-form-feedback-error{background:#7d2d2424;border-color:#d3695d7a #d3695d7a #d3695d7a #d3695d}.contact-form-feedback-error strong,.contact-form-feedback-error span{color:#efb9b2}.contact-form-actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.contact-form-actions .button{flex:none}.contact-form-actions .button:disabled{border-color:var(--line-strong);color:var(--muted);cursor:wait;background:0 0;transform:none}.contact-form-actions .button[aria-busy=false]:disabled{cursor:default}.contact-form-send-another{color:var(--gold);font:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:.35rem 0;font-size:.78rem}.contact-form-send-another:hover,.contact-form-send-another:focus-visible{color:var(--paper)}.contact-form-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.skill-tool-mark img{object-fit:contain;width:100%;height:100%;display:block}.skill-tool-mark:has(img){padding:0}@media (width>=1280px){.skill-group:first-child .skill-tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1100px){.contact-methods,.support-grid,.compact-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-project-card,.compact-project-card:nth-last-child(2):nth-child(4),.compact-project-card:last-child:nth-child(5){grid-column:auto}.compact-project-card:last-child:nth-child(odd){grid-column:1/-1}.case-support-grid,.project-credits-list{grid-template-columns:repeat(2,minmax(0,1fr))}.case-support-grid>.academic-challenge-card,.case-support-grid>.design-direction-card{grid-column:1/-1}.case-support-grid>.reflection-card,.case-support-grid>.project-focus-card{grid-column:auto}.skill-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group:first-child{grid-column:1/-1}.skill-group:first-child .skill-tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group:first-child .skill-tool{grid-template-columns:3.6rem minmax(0,1fr)}.skill-group:first-child .skill-tool-status{text-align:left;grid-column:2}.project-row,.case-hero,.contact-hero{grid-template-columns:1fr}.project-row-reverse .project-media-link,.project-row-reverse .project-copy{order:initial}.project-copy{max-width:46rem}.case-meta{grid-template-columns:repeat(3,1fr);display:grid}.case-meta div{padding-right:1rem}.resume-projects article{grid-template-columns:.8fr 1.3fr}.resume-projects a{justify-self:start}}@media (width<=960px){.page-feature,.page-feature-portrait,.page-feature-document,.support-heading{grid-template-columns:1fr}.page-feature-media{width:min(100%,52rem)}.page-feature-copy{max-width:52rem}.support-heading>p{justify-self:start}.contact-form-panel{grid-template-columns:1fr}.contact-form-introduction{border-right:0;border-bottom:1px solid var(--line)}.evidence-turntable-stage[data-enhanced=true]{grid-template-columns:minmax(5.5rem,.45fr) minmax(18rem,1.55fr) minmax(5.5rem,.45fr);gap:.75rem;padding:.85rem}.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="0"]{grid-template-columns:minmax(0,52rem)}.evidence-turntable-active-media,.evidence-turntable-active-video{height:clamp(22rem,50vw,30rem)}.evidence-turntable-neighbor{height:clamp(9rem,22vw,13rem)}.skills-architecture{grid-template-columns:1fr}.system-capabilities{grid-template-columns:1fr;align-items:start}.skills-architecture-copy{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=820px){.home-introduction,.home-project-section{grid-template-columns:1fr}.home-introduction-copy{justify-self:start;max-width:48rem}.home-project-section-media{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=760px){:root{--portfolio-banner-active-image:var(--portfolio-banner-image-mobile)}.desktop-nav{display:none}.mobile-menu{display:block}.brand-name{display:none}.portfolio-banner{min-height:clamp(18rem,42vh,24rem)}.subpage-banner{min-height:clamp(16rem,34vh,20rem)}.subpage-banner-content{padding-block:2.25rem}.subpage-banner h1{max-width:none;font-size:clamp(1.8rem,8vw,3rem)}.subpage-banner-details{gap:.4rem .8rem}.subpage-banner-details li:not(:last-child):after{margin-left:.8rem}.page-feature,.support-section{padding-block:2.5rem}.page-feature-copy h2,.support-heading h2{max-width:none;font-size:clamp(1.55rem,7vw,2.4rem)}.feature-meta,.support-grid,.compact-project-grid,.case-support-grid,.contact-methods,.contact-form{grid-template-columns:1fr}.contact-form-wide{grid-column:auto}.contact-form-actions{flex-direction:column;align-items:flex-start}.compact-project-card,.compact-project-card:last-child:nth-child(odd),.case-support-grid>.support-card{grid-column:auto}.compact-decision-list{grid-template-columns:1fr;column-gap:0}.project-credits-list{grid-template-columns:1fr}.compact-project-card .project-visual{min-height:11.5rem}.page-feature-media .project-visual,.resume-profile-card{min-height:22rem}.portfolio-banner-content{padding-block:2.25rem}.home-introduction,.home-work{padding-block:2rem}.home-introduction,.home-section-heading,.home-about{grid-template-columns:1fr}.home-section-heading>p{justify-self:start}.portfolio-banner h1{font-size:clamp(1.8rem,9vw,4rem)}.banner-disciplines{grid-template-columns:repeat(2,max-content);justify-content:center;gap:.35rem .8rem;display:grid}.banner-disciplines li:not(:last-child):after{content:none}.banner-disciplines li:last-child{grid-column:1/-1}.home-introduction h2,.home-projects-heading h2,.home-section-heading h2,.home-about h2{max-width:none;font-size:clamp(1.35rem,6vw,2.5rem)}.home-project-section-copy h3{max-width:none;font-size:clamp(1.5rem,7vw,2.2rem)}.skills-architecture-copy h3,.skill-group h3{max-width:none;font-size:clamp(1.5rem,6.5vw,2.25rem)}.page-hero h1,.contact-hero h1,.not-found h1{max-width:none;font-size:clamp(1.1rem,5.8vw,2.25rem)}.case-heading h1,.project-copy h3{max-width:none;font-size:clamp(1.5rem,7.4vw,2.4rem)}.case-evidence-heading h2,.case-content section h2,.about-copy h2,.principles h2,.about-cta h2{max-width:none;font-size:clamp(1.35rem,6.5vw,2.35rem)}.contact-grid h2{font-size:clamp(1.5rem,7vw,2.5rem)}.footer-lead h2{max-width:none;font-size:clamp(1.25rem,6vw,2rem)}.hero-brand-line{flex-direction:column;gap:.35rem}.architecture-map-header{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.architecture-example>summary{grid-template-columns:1fr}.architecture-example-preview{height:clamp(6rem,32vw,8.5rem)}.architecture-example-toggle{justify-self:start}.architecture-example-expanded figcaption,.project-diagram-expanded figcaption{flex-direction:column}.project-tool-list[data-variant=detailed]>li{flex-basis:100%}.architecture-example-actions{justify-content:flex-start}.architecture-flow{grid-template-columns:1fr}.architecture-flow li,.architecture-flow li:last-child{border-right:0;border-bottom:1px solid var(--line)}.architecture-flow li:last-child{border-bottom:0}.architecture-flow li:not(:last-child):after{content:"↓";top:auto;bottom:0;right:50%;transform:translate(50%,50%)}.architecture-flow li>span{margin-bottom:.65rem}.architecture-flow li{padding:.85rem 1rem}.skill-group-grid{grid-template-columns:1fr}.skill-group:first-child{grid-column:auto}.skill-group:first-child .skill-tool-list{grid-template-columns:1fr}.skill-tool{grid-template-columns:3.35rem minmax(0,1fr)}.skill-tool-mark{width:3.35rem;height:3.35rem}.skill-tool-status{text-align:left;grid-column:2}.case-body,.about-grid,.principles,.resume-header,.case-evidence-heading{grid-template-columns:1fr}.case-evidence-heading>p:last-child{align-self:auto;margin-top:1.5rem}.evidence-turntable-stage[data-enhanced=true],.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="0"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.65rem}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=active],.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="0"] .evidence-turntable-slide[data-position=active]{grid-area:1/1/auto/-1}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=previous]{grid-area:2/1}.evidence-turntable-stage[data-enhanced=true] .evidence-turntable-slide[data-position=next]{grid-area:2/2}.evidence-turntable-stage[data-enhanced=true][data-neighbor-count="1"] .evidence-turntable-slide[data-position=next]{grid-column:1/-1;justify-self:center;width:min(48%,11rem)}.evidence-turntable-active-media,.evidence-turntable-active-video{height:clamp(18rem,100vw,26rem);padding:.65rem}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-active-media,.evidence-turntable[data-media-shape=landscape] .evidence-turntable-active-video{height:clamp(16rem,78vw,30rem);padding:.4rem}.evidence-turntable-neighbor{opacity:.78;height:clamp(7rem,30vw,10rem);transform:none}.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor,.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor:hover,.evidence-turntable[data-media-shape=landscape] .evidence-turntable-neighbor:focus-visible{height:auto;transform:none}.evidence-turntable-copy{grid-template-columns:1fr;gap:1rem;padding:1rem}.evidence-turntable-controls{justify-content:flex-start}.evidence-turntable-indicator>span:last-child{max-width:12ch}.evidence-lightbox{width:92vw;height:88dvh}.evidence-lightbox-header{padding-left:.75rem}.evidence-lightbox-header p{max-width:20ch}.evidence-lightbox-close>span:first-child{display:none}.about-cta{flex-direction:column;align-items:flex-start}.footer-lead{grid-template-columns:1fr;align-items:flex-start}.project-visual{min-height:22rem}.project-visual-large{min-height:30rem}.contact-grid,.resume-columns,.case-meta{grid-template-columns:1fr}.case-rail{position:static}.principles{gap:2rem}.resume-projects article{grid-template-columns:1fr;gap:1rem}.contact-grid article,.contact-grid article:nth-child(odd),.contact-grid article:nth-child(n+3){border:1px solid var(--line);border-bottom:0}.contact-grid article:last-child{border-bottom:1px solid var(--line)}.contact-footer,.footer-meta{flex-direction:column}.project-pagination{width:auto;margin-inline:var(--gutter);grid-template-columns:1fr;gap:1rem;padding-block:2rem}.project-pagination-card{grid-template-columns:clamp(6.25rem,26vw,8rem) minmax(0,1fr);width:min(100%,30rem)}.project-pagination-card[data-direction=previous]{justify-self:start}.project-pagination-card[data-direction=next]{justify-self:end}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{.site-header,.site-footer,.resume-hero,.skip-link{display:none!important}body{color:#000;background:#fff}p,.resume-projects p,.resume-pending p{color:#222}.resume-sheet{padding:1.5cm}.resume-section,.resume-header,.resume-projects,.resume-projects article,.resume-columns,.resume-columns>section,.resume-pending{border-color:#aaa}}
