@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--background:#0b0d0f;--surface:#15181b;--surface-raised:#242a2f;--ink:#d7dde0;--ink-strong:#eef1f2;--ink-soft:#8c969c;--accent:#ff681f;--accent-deep:#ff7a38;--accent-cool:#8c969c;--accent-cool-light:#c4ccd0;--frame:#465159;--line:#96a5ad29;--line-strong:#96a5ad4d;--shadow:0 18px 42px #00000057;--shadow-hover:0 24px 54px #00000080;color:var(--ink);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Space Grotesk,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{background:var(--background);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body,button,a{font-family:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}p{margin:0}::selection{background:var(--accent);color:var(--surface)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-page{isolation:isolate;background:radial-gradient(circle at 7% 17%, #ff681fad 0 2px, transparent 3px), radial-gradient(circle at 25% 7%, #96a5ad5c 0 2px, transparent 3px), radial-gradient(circle at 47% 24%, #96a5ad4d 0 2px, transparent 3px), radial-gradient(circle at 73% 13%, #ff681f70 0 2px, transparent 3px), radial-gradient(circle at 91% 32%, #96a5ad47 0 2px, transparent 3px), linear-gradient(#96a5ad0b 1px, transparent 1px), linear-gradient(90deg, #96a5ad0b 1px, transparent 1px), linear-gradient(66deg, transparent 0 20%, #96a5ad0e 20.1% 20.18%, transparent 20.28% 100%), linear-gradient(114deg, transparent 0 69%, #ff681f09 69.1% 69.18%, transparent 69.28% 100%), var(--background);background-size:auto,auto,auto,auto,auto,48px 48px,48px 48px,auto,auto,auto;min-height:100vh;position:relative;overflow:hidden}.site-page:before,.site-page:after{z-index:-1;content:"";border:1px solid #96a5ad14;border-radius:50%;width:280px;height:280px;position:absolute}.site-page:before{top:210px;left:-180px}.site-page:after{top:36%;right:-210px}.page-shell{width:min(1180px,100% - 64px);margin:0 auto}.site-navigation{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:96px;display:flex}.site-identity,.hud-eyebrow,.work-section-heading>span,.work-card-index,.work-card-action,.project-hero-status,.footer-status{letter-spacing:.1em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.site-identity{color:var(--ink-soft);align-items:center;gap:10px;font-size:.76rem;font-weight:600;display:flex}.system-status-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #ff681f94}.site-navigation-links{gap:8px;display:flex}.site-navigation a{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:3px;padding:11px 15px;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:600;line-height:1;transition:background-color .18s,color .18s,transform .18s}.site-navigation a:hover{border-color:var(--line-strong);color:var(--ink-strong);transform:translateY(-1px)}.site-navigation a.active{border-color:var(--frame);background:var(--surface-raised);box-shadow:inset 0 -2px var(--accent);color:var(--ink-strong)}.work-introduction{border-bottom:1px solid var(--line);align-items:center;min-height:360px;padding:58px 32px 52px;display:flex;position:relative}.work-introduction:before,.work-introduction:after{border-color:var(--frame);content:"";width:26px;height:26px;position:absolute}.work-introduction:before{border-top:1px solid;border-left:1px solid;top:28px;left:0}.work-introduction:after{border-bottom:1px solid;border-right:1px solid;bottom:28px;right:0}.work-introduction>div{border-left:3px solid var(--accent);padding-left:22px}.hud-eyebrow{color:var(--ink-soft);margin-bottom:16px;font-size:.72rem;font-weight:600}.work-introduction h1{max-width:1020px;color:var(--ink);letter-spacing:0;margin:0;font-size:clamp(2.15rem,3.2vw,2.75rem);font-weight:400;line-height:1.48}.work-introduction h1 span{display:block}.work-introduction strong{color:var(--ink-strong);font-weight:700}.work-introduction .work-name-highlight{color:var(--accent)}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:32px 0 72px;display:grid}.work-section{padding-top:52px}.older-work-section{border-top:1px solid var(--line)}.work-section-heading{justify-content:space-between;align-items:end;gap:24px;padding:0 4px;display:flex}.work-section-heading h2{color:var(--ink-strong);margin:0;font-size:2rem;font-weight:600}.work-section-heading p{color:var(--ink-soft);margin-top:6px;font-size:1.2rem;font-weight:500}.work-section-heading h2:before{background:var(--accent);content:"";vertical-align:middle;width:14px;height:3px;margin-right:10px;display:inline-block}.work-section-heading>span{color:var(--ink-soft);font-size:.68rem}.work-card{aspect-ratio:16/10;border:1px solid var(--line-strong);border-bottom:2px solid var(--accent);background:var(--surface);box-shadow:var(--shadow);border-radius:3px;transition:box-shadow .22s,transform .22s;position:relative;overflow:hidden}.work-card:before,.work-card:after{z-index:3;border-color:var(--frame);pointer-events:none;content:"";width:14px;height:14px;position:absolute}.work-card:before{border-top:1px solid;border-left:1px solid;top:7px;left:7px}.work-card:after{border-bottom:1px solid;border-right:1px solid;bottom:8px;right:7px}.work-card-index{z-index:4;color:var(--ink-soft);text-shadow:0 1px 4px var(--background);font-size:.68rem;font-weight:700;position:absolute;top:11px;right:12px}.work-card:hover,.work-card:focus-visible{box-shadow:var(--shadow-hover);transform:translateY(-5px)}.work-card-media,.work-card-media img,.work-card-placeholder{width:100%;height:100%}.work-card-media img{object-fit:cover;transition:filter .24s,transform .36s}.work-card:hover .work-card-media img,.work-card:focus-visible .work-card-media img{filter:saturate(.8)brightness(.58);transform:scale(1.035)}.work-card-placeholder{background:linear-gradient(#96a5ad0b 1px, transparent 1px), linear-gradient(90deg, #96a5ad0b 1px, transparent 1px), var(--surface);background-size:24px 24px;place-items:center;display:grid}.work-card-placeholder span,.project-hero-placeholder span{border:1px solid var(--frame);width:64px;height:64px;color:var(--ink-soft);border-radius:50%;place-items:center;font-size:2.25rem;font-weight:500;line-height:1;display:grid}.work-card-overlay{color:var(--ink-strong);opacity:1;background:linear-gradient(#0000 26%,#0b0d0ff5 78%);flex-direction:column;justify-content:flex-end;padding:24px;transition:background-color .22s;display:flex;position:absolute;inset:0}.work-card:hover .work-card-overlay,.work-card:focus-visible .work-card-overlay{background:#0b0d0fe6}.work-card-overlay h2{color:inherit;margin:0 0 8px;font-size:clamp(1.18rem,1.8vw,1.72rem);font-weight:600;line-height:1.05}.work-card-overlay p{color:var(--ink-soft);font-size:.84rem;line-height:1.35}.work-card-action{max-height:0;color:var(--accent);opacity:0;font-size:.64rem;transition:max-height .18s,margin-top .18s,opacity .18s;overflow:hidden}.work-card:hover .work-card-action,.work-card:focus-visible .work-card-action{opacity:1;max-height:24px;margin-top:12px}.site-footer{border-top:1px solid var(--line-strong);color:var(--ink);text-align:center;background:#080a0c;justify-items:center;gap:28px;padding:44px 32px;display:grid}.footer-status{width:min(1180px,100%);color:var(--ink-soft);justify-content:space-between;font-size:.66rem;display:flex}.footer-status span:first-child:before{background:var(--accent);content:"";border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block;box-shadow:0 0 7px #ff681f80}.footer-links,.project-link-list{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.footer-links a,.project-link-list a{letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:3px;align-items:center;gap:8px;padding:10px 14px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;transition:background-color .18s,color .18s;display:inline-flex}.footer-links a:hover,.footer-links a:focus-visible{border-color:var(--accent);background:var(--surface-raised);box-shadow:inset 0 -2px var(--accent);color:var(--ink-strong)}.about-hero{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:center;gap:52px;min-height:520px;padding:38px 64px 60px;display:grid}.about-portrait{border:1px solid var(--line-strong);border-bottom:2px solid var(--accent);background:radial-gradient(circle at 70% 25%, #96a5ad1f, transparent 30%), radial-gradient(circle at 25% 75%, #ff681f14, transparent 34%), linear-gradient(#96a5ad0a 1px, transparent 1px), linear-gradient(90deg, #96a5ad0a 1px, transparent 1px), var(--surface);min-height:430px;box-shadow:var(--shadow);background-size:auto,auto,24px 24px,24px 24px,auto;border-radius:3px;place-items:center;display:grid;position:relative;overflow:hidden}.about-portrait:after{content:"";pointer-events:none;border:1px solid #eef1f22e;border-radius:2px;position:absolute;inset:12px}.about-portrait img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.about-copy h1{color:var(--ink-strong);margin:0 0 24px;font-size:1.6rem;font-weight:500}.about-copy p{margin-top:22px;font-size:1.32rem;line-height:1.45}.about-copy .hud-eyebrow{color:var(--ink-soft);margin:0 0 14px;font-size:.72rem;line-height:1.4}.about-section{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.36fr) minmax(0,1fr);gap:48px;padding:64px;display:grid}.about-section h2,.project-section h2{color:var(--ink-strong);margin:0;font-size:1.75rem;font-weight:600}.education-grid{gap:30px;display:grid}.education-grid article{border-left:2px solid var(--frame);padding-left:22px}.education-grid span{color:var(--ink-soft);font-size:.92rem}.education-grid h3{color:var(--ink-strong);margin:8px 0;font-size:1.25rem}.education-grid p{line-height:1.5}.skills-list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.skills-list li{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:3px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:.92rem}.project-link-list a{color:var(--ink-strong)}.project-link-list a:hover{border-color:var(--accent);background:var(--surface-raised);box-shadow:inset 0 -2px var(--accent);color:var(--ink-strong)}.project-shell{width:min(1280px,100%)}.project-shell .site-navigation{padding-right:32px}.project-hero{border-top:1px solid var(--line);border-bottom:2px solid var(--accent);background:var(--surface);min-height:410px;position:relative;overflow:hidden}.project-hero>img,.project-hero-placeholder{object-fit:cover;width:100%;height:410px}.project-hero-placeholder{background:radial-gradient(circle at center, #96a5ad14, transparent 27%), linear-gradient(#96a5ad0b 1px, transparent 1px), linear-gradient(90deg, #96a5ad0b 1px, transparent 1px), var(--surface);background-size:auto,28px 28px,28px 28px,auto;place-items:center;display:grid}.project-hero-placeholder span{width:88px;height:88px;font-size:3rem}.project-hero-shade{background:linear-gradient(#0b0d0f14,#0b0d0fe6);position:absolute;inset:0}.project-hero-status{z-index:2;border-left:2px solid var(--accent);color:var(--ink-soft);padding-left:10px;font-size:.7rem;position:absolute;top:26px;left:32px}.project-hero h1{color:var(--ink-strong);text-align:center;text-shadow:0 3px 12px #000c;margin:0;font-size:clamp(2.5rem,5.3vw,4.8rem);font-weight:500;line-height:1;position:absolute;bottom:38px;left:48px;right:48px}.project-overview{grid-template-columns:minmax(0,1.55fr) minmax(270px,.75fr);gap:56px;padding:72px 96px;display:grid}.project-introduction p,.project-section-copy>p,.detail-group p{margin:0 0 22px;font-size:1.12rem;line-height:1.58}.project-introduction .project-summary{border-left:3px solid var(--accent);color:var(--ink-strong);margin-bottom:28px;padding-left:20px;font-size:1.36rem;font-weight:500;line-height:1.45}.project-facts{border-left:1px solid var(--line-strong);margin:0;padding-left:48px}.project-facts div+div{margin-top:28px}.project-facts dt{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700}.project-facts dd{margin:0;font-size:1rem;line-height:1.5}.project-section{border-top:1px solid var(--line);grid-template-columns:minmax(190px,.34fr) minmax(0,1fr);gap:56px;margin:0 96px;padding:64px 0;display:grid}.project-section-copy{min-width:0}.detail-list{margin:22px 0 0;padding-left:22px}.detail-list li{margin-bottom:10px;padding-left:5px;font-size:1.05rem;line-height:1.5}.detail-list li::marker{color:var(--accent)}.detail-group{border-left:2px solid var(--frame);margin-top:42px;padding-left:26px}.detail-group h3{color:var(--ink-strong);margin:0 0 16px;font-size:1.3rem;font-weight:600}.project-gallery-section{display:block}.project-gallery-section>h2{margin-bottom:32px}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.project-gallery a{border:1px solid var(--line-strong);border-bottom:2px solid var(--accent);background:var(--surface);min-height:260px;box-shadow:var(--shadow);border-radius:3px;display:block;overflow:hidden}.project-gallery img{object-fit:contain;width:100%;height:100%;transition:transform .22s}.project-gallery a:hover img{transform:scale(1.02)}.project-links-section{align-items:start}.project-link-list{justify-content:flex-start}.content-wrapper{width:min(960px,100% - 48px);margin:0 auto;padding:32px 0 80px}.portfolio-header{margin-bottom:24px}.portfolio-close,.url-link{color:var(--ink-strong);font-weight:600}.cv-preview-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.cv-preview-header h2{margin:0}.cv-pdf-link{border:1px solid;border-radius:3px;padding:9px 12px}.cv-preview-pages{gap:16px;display:grid}.cv-preview-frame{background:var(--surface);width:100%;box-shadow:var(--shadow)}@media (width<=980px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.about-hero{padding-left:24px;padding-right:24px}.about-section,.project-section{grid-template-columns:1fr;gap:28px}.project-overview{padding-left:56px;padding-right:56px}.project-section{margin-left:56px;margin-right:56px}}@media (width<=720px){.page-shell{width:min(100% - 32px,560px)}.site-navigation{flex-wrap:wrap;gap:8px;min-height:78px;padding:14px 0}.site-identity{width:100%}.site-navigation-links{justify-content:flex-end;width:100%}.site-navigation a{padding:11px 12px;font-size:1.08rem}.work-introduction{min-height:330px;padding:40px 6px}.work-introduction h1{font-size:1.86rem;line-height:1.48}.work-grid{grid-template-columns:1fr;gap:28px;padding:26px 0 52px}.work-section{padding-top:38px}.work-section-heading h2{font-size:1.65rem}.work-card{aspect-ratio:16/11}.work-card-media img{filter:saturate(.9)brightness(.78)}.work-card-overlay{opacity:1;background:linear-gradient(#0000 24%,#0b0d0ff5);justify-content:flex-end;padding:22px}.work-card-overlay h2{font-size:1.65rem}.site-footer{padding:52px 20px}.footer-links{gap:8px}.about-hero{grid-template-columns:1fr;gap:36px;padding:24px 0 52px}.about-portrait{aspect-ratio:3/4;min-height:0}.about-copy h1{font-size:1.45rem}.about-copy p{font-size:1.1rem}.about-section{padding:46px 0}.project-shell{width:100%}.project-shell .site-navigation{padding-right:16px}.project-hero,.project-hero>img,.project-hero-placeholder{height:330px;min-height:330px}.project-hero h1{font-size:2.35rem;bottom:26px;left:20px;right:20px}.project-overview{grid-template-columns:1fr;gap:38px;padding:48px 24px}.project-facts{border-top:2px solid var(--accent-cool-light);border-left:0;padding-top:32px;padding-left:0}.project-section{margin:0 24px;padding:48px 0}.project-gallery{grid-template-columns:1fr}.project-gallery a{min-height:220px}.detail-group{padding-left:18px}}@media (hover:none){.work-card-overlay{opacity:1;background:linear-gradient(#0000 24%,#0b0d0ff5);justify-content:flex-end}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
