:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#000;background-color:#efeeea;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.footer-container{position:fixed;width:100%;bottom:0;height:40px;padding:0}.footer-blur-background{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:#e6e4df4d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(8px);z-index:0}.footer{position:relative;padding:0;z-index:1;color:#fff;height:40px;display:flex;align-items:flex-end;justify-content:space-between;margin:0;font-family:Metropolis,sans-serif}.footer p{margin:0;font-size:.9rem;padding:5px 15px;color:#000}.footer ul{list-style:none;padding:5px 15px;margin:0;display:flex;gap:.5rem}.footer-secret-button{position:absolute;right:20%;top:50%;transform:translateY(-50%);background:transparent;border:none;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:#00000040;cursor:pointer;opacity:0;transition:opacity .4s ease,color .2s ease;display:inline-flex;pointer-events:none}body[data-active-section=contact] .footer-secret-button{display:inline-flex}.footer-secret-button:hover{color:#00000080}.footer-secret-button.is-visible{opacity:1;pointer-events:auto}.footer-secret-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#e6e4df8c;display:grid;place-items:center;z-index:2000}.footer-secret-card{position:relative;background:#ffffffe6;border-radius:18px;padding:2rem;border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 40px #00000026;width:min(360px,90vw);display:grid;gap:1.2rem}.footer-secret-close{position:absolute;top:.6rem;right:.8rem;border:none;background:transparent;font-size:1.8rem;cursor:pointer}.footer-secret-title{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:#0009;text-align:center}.footer-secret-keypad{display:grid;grid-template-columns:auto auto;gap:1rem;justify-items:center;justify-content:center;align-items:center}.keypad-dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:.4rem;justify-content:center;align-content:center;justify-self:center;margin-left:auto;margin-right:auto}.keypad-dpad button{width:44px;height:44px;border-radius:10px;border:1px solid rgba(0,0,0,.2);background:#fffc;color:#ec3107;cursor:pointer;display:grid;place-items:center;padding:0}.keypad-key.is-correct{background:#1eb75a33;border-color:#1eb75acc;box-shadow:0 0 0 3px #1eb75a40;animation:keypad-flash .22s ease}.keypad-dpad svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;display:block}.keypad-dpad button:nth-child(1){grid-column:2;grid-row:1}.keypad-dpad button:nth-child(2){grid-column:1;grid-row:2}.keypad-dpad button:nth-child(3){grid-column:2;grid-row:3}.keypad-dpad button:nth-child(4){grid-column:3;grid-row:2}.keypad-buttons{display:grid;gap:.6rem}.keypad-buttons button{width:48px;height:48px;border-radius:999px;border:1px solid rgba(236,49,7,.5);color:#ec3107;background:#ec310714;font-size:.95rem;cursor:pointer}@keyframes keypad-flash{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}.keypad-enter{border:1px solid rgba(0,0,0,.2);background:#111;color:#fff;padding:.7rem 1.2rem;border-radius:999px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;justify-self:center;transition:color .3s ease,background .3s ease,border-color .3s ease;position:relative;overflow:hidden;text-shadow:none;z-index:0;isolation:isolate}.keypad-enter:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#111;opacity:1;transition:opacity .5s ease;border-radius:inherit;z-index:0;pointer-events:none}.keypad-enter-label{position:relative;z-index:1}.keypad-enter.is-ready{background:repeating-linear-gradient(90deg,#ff4d4d,#ff9d00,#ffe600,#26d07c,#2f80ed,#8e44ad 83%,#ff4d4d);background-size:200% 100%;animation:keypad-rainbow-flow 3s linear infinite;border-color:#00000059;color:#111;text-shadow:0 0 10px rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.65)}.keypad-enter.is-ready:before{opacity:0}@keyframes keypad-rainbow-flow{0%{background-position:0% 50%}to{background-position:-200% 50%}}.footer-arcade-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:grid;place-items:center;z-index:2600;opacity:0;pointer-events:none;transition:opacity 4s ease}.footer-arcade-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s ease}.footer-arcade-stars:before,.footer-arcade-stars:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:repeat;background-size:200px 200px;opacity:.5}.footer-arcade-stars:before{background-image:radial-gradient(circle at 20px 30px,rgba(255,255,255,.8) 0 1px,transparent 2px),radial-gradient(circle at 80px 120px,rgba(255,255,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 140px 60px,rgba(255,255,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 40px 170px,rgba(255,255,255,.5) 0 1px,transparent 2px);animation:star-flicker-a 3.2s infinite}.footer-arcade-stars:after{background-image:radial-gradient(circle at 60px 40px,rgba(255,255,255,.5) 0 1px,transparent 2px),radial-gradient(circle at 110px 150px,rgba(255,255,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 170px 90px,rgba(255,255,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 30px 100px,rgba(255,255,255,.4) 0 1px,transparent 2px);animation:star-flicker-b 4.1s infinite}@keyframes star-flicker-a{0%,to{opacity:.25}40%{opacity:.65}75%{opacity:.4}}@keyframes star-flicker-b{0%,to{opacity:.45}55%{opacity:.8}85%{opacity:.35}}.footer-arcade-modal.fade-to-black,.footer-arcade-modal.show-arcade,.footer-arcade-modal.fade-arcade,.footer-arcade-modal.fade-back{pointer-events:auto}.footer-arcade-modal.fade-to-black,.footer-arcade-modal.show-arcade,.footer-arcade-modal.fade-arcade{opacity:1}.footer-arcade-modal.fade-back{opacity:0;transition:opacity 1.2s ease}.footer-arcade-frame{position:relative;height:100vh;width:auto;aspect-ratio:16 / 9;background:url(/images/arcade.png) center/contain no-repeat;display:grid;place-items:center;opacity:0;transition:opacity 1.4s ease 3s;z-index:1}.footer-arcade-modal.show-arcade .footer-arcade-frame{opacity:1}.footer-arcade-modal.fade-to-black .footer-arcade-frame,.footer-arcade-modal.fade-arcade .footer-arcade-frame,.footer-arcade-modal.fade-back .footer-arcade-frame{opacity:0;transition:none}.footer-arcade-modal.show-arcade .footer-arcade-stars{opacity:1;transition:opacity 1.2s ease}.footer-arcade-modal.fade-to-black .footer-arcade-stars,.footer-arcade-modal.fade-arcade .footer-arcade-stars,.footer-arcade-modal.fade-back .footer-arcade-stars{opacity:0}.footer-arcade-close{position:absolute;top:12px;right:14px;border:none;background:transparent;width:34px;height:34px;border-radius:999px;font-size:1.6rem;cursor:pointer;color:#ec3107}.footer-arcade-screen{width:130%;height:155%;margin-top:-14%;margin-left:.5%;border-radius:10px;overflow:hidden;box-shadow:0 12px 28px #00000040}.footer-arcade-viewport{width:100%;height:100%;overflow:hidden;transform:scale(.25);transform-origin:center}.footer-arcade-screen iframe{width:100%;height:100%;border:0}.footer li{display:inline-block}.footer svg{width:18px;height:18px;fill:#000;transition:fill .3s ease}.footer a:hover svg{fill:#ec3107}.footer svg:hover{fill:#666}.about-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:2rem;font-family:Metropolis,sans-serif}.about-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;max-width:1200px;width:100%;height:100%;align-items:center}.about-text{max-width:520px}.about-text h2{font-size:2.5rem;margin-bottom:1.5rem;color:#222;font-weight:600}.about-text p{font-size:1.1rem;line-height:1.7;margin-bottom:1.5rem;color:#4b4b4b}.brain-panel{position:relative;height:520px;border-radius:16px;overflow:hidden;background:#fff6;border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 40px #00000014}.brain-caption{position:absolute;bottom:18px;right:20px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#0000008c}@media (max-width: 1024px){.about-layout{grid-template-columns:1fr;gap:2rem}.brain-panel{height:420px}.about-text{max-width:100%}}@media (max-width: 768px){.about-container{padding:1rem}.brain-panel{height:320px}.about-text h2{font-size:2rem}}@media (max-width: 480px){.about-layout{gap:1rem}.brain-panel{height:260px}.about-text h2{font-size:1.8rem}.about-text p{font-size:1rem}}.experience-container{width:100%;height:100%;padding:2.5rem 6vw;display:grid;grid-template-rows:auto 1fr;gap:2rem;font-family:Metropolis,sans-serif;color:#1d1d1d;background:transparent;--experience-accent: #ec3107}.experience-header h2{margin:0;font-size:2.4rem}.experience-header{display:grid;gap:.5rem}.experience-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.experience-resume{text-decoration:none;color:#111;font-weight:600;font-size:.92rem;padding:.7rem 1.4rem;border-radius:999px;border:1px solid rgba(0,0,0,.2);background:#ffffffb3;box-shadow:0 10px 24px #0000001a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s ease,box-shadow .2s ease,border .2s ease}.experience-resume:hover{transform:translateY(-1px);box-shadow:0 14px 30px #00000024;border-color:#00000047}.experience-header p{margin:0;color:#0009;font-size:1rem}.experience-heading{display:flex;align-items:center;gap:.9rem}.experience-logo{width:36px;height:36px;object-fit:contain;background:transparent;mix-blend-mode:multiply}.experience-title{font-size:1.05rem;font-weight:600}.experience-company{color:#0009;margin-top:.2rem}.experience-dates{font-size:.9rem;color:#0000008c;white-space:nowrap}.experience-body{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.7fr);gap:2.2rem;align-items:stretch}.experience-rail-list{display:grid;gap:.6rem;position:relative;justify-items:center;align-content:center;height:100%;grid-auto-rows:1fr}.experience-tab{border:1px solid rgba(0,0,0,.1);background:#fff;text-align:left;padding:.75rem .85rem;display:grid;grid-template-columns:44px minmax(0,1fr);gap:.75rem;align-items:center;cursor:pointer;color:inherit;font-family:inherit;border-radius:16px;box-shadow:0 10px 22px #00000014;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;width:100%;max-width:380px;height:100%;z-index:1}.experience-tab:hover{transform:translateY(-2px);box-shadow:0 14px 28px #0000001a}.experience-tab:focus-visible{outline:2px solid rgba(15,15,15,.3);outline-offset:4px;border-radius:12px}.experience-tab-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:transparent}.experience-tab-logo{width:26px;height:26px;object-fit:contain;background:transparent;mix-blend-mode:multiply}.experience-tab-content{display:grid;gap:.35rem}.experience-tab-title{font-size:.95rem;font-weight:600;line-height:1.3}.experience-tab-company{font-size:.86rem;color:#0009}.experience-tab-dates{font-size:.78rem;color:#00000073;letter-spacing:.02em;text-transform:uppercase}.experience-tab-accent{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;background:transparent;opacity:0;transition:opacity .2s ease;pointer-events:none}.experience-tab.is-active{border-color:var(--experience-accent);box-shadow:0 18px 34px #ec31072e;transform:translateY(-1px)}.experience-tab.is-active .experience-tab-accent{opacity:1}.experience-detail{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:26px;padding:0;box-shadow:0 18px 38px #00000014;position:relative;display:flex;align-items:center;transition:border-color .25s ease,box-shadow .25s ease}.experience-detail.is-active{border-color:var(--experience-accent);box-shadow:0 20px 42px #ec310726}.experience-panel{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.6rem 1.8rem;opacity:0;pointer-events:none}.experience-panel.is-active{position:relative;inset:auto;display:grid;gap:1.2rem;animation:experience-fade .35s ease;opacity:1;pointer-events:auto}.experience-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.experience-bullets{margin:0;padding-left:1.2rem;color:#000000b8;line-height:1.65;display:grid;gap:.5rem}.experience-bullets li{font-size:.98rem}.experience-inline-link{border:none;background:transparent;color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:#0006;text-underline-offset:3px;cursor:pointer;padding:0}.experience-inline-link:hover{text-decoration-color:#000c}.experience-inline-link:focus-visible{outline:2px solid rgba(0,0,0,.4);outline-offset:2px;border-radius:4px}@keyframes experience-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.experience-container{padding:2rem 1.5rem}.experience-header h2{font-size:2rem}.experience-body{grid-template-columns:1fr;gap:1.8rem}.experience-rail-list{grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);overflow-x:auto;padding-bottom:.5rem;justify-items:start}}@media (max-width: 600px){.experience-detail{padding:1.4rem}.experience-bullets li{font-size:.92rem}}.thesis-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:2rem 3rem;font-family:Metropolis,sans-serif}.thesis-split{width:100%;max-width:1200px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}.thesis-copy{display:grid;gap:.9rem;max-width:520px}.thesis-eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#0000008c}.thesis-copy h2{margin:0;font-size:2.4rem;color:#1b1b1b}.thesis-copy p{margin:0;color:#000000a6;line-height:1.7;font-size:1.05rem}.thesis-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#00000080;text-decoration:none;margin-top:.4rem;border-bottom:1px dashed rgba(0,0,0,.35);padding-bottom:.2rem;transition:color .2s ease,border-color .2s ease}.thesis-link.is-placeholder{color:#00000073;border-bottom-color:#0000004d}.thesis-link:hover{color:#ec3107;border-bottom-color:#ec3107b3}.thesis-authors{margin-top:.6rem;font-size:.82rem;line-height:1.5;color:#0000008c;font-family:Palatino Linotype,Book Antiqua,Palatino,serif;font-style:italic}.thesis-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}.thesis-tags span{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#00000073;border:1px solid rgba(0,0,0,.15);padding:.35rem .7rem;border-radius:999px}.thesis-media{display:grid;gap:.8rem;width:100%;position:relative}.thesis-media-track{display:flex;gap:1.6rem;overflow-x:auto;padding-bottom:.8rem;scroll-snap-type:x mandatory;scrollbar-width:none;position:relative;cursor:grab;-webkit-user-select:none;user-select:none;scroll-behavior:smooth}.thesis-media-track a{pointer-events:auto}.thesis-media-track::-webkit-scrollbar{display:none}.thesis-media-track.is-dragging{cursor:grabbing}.thesis-scroll-hint{display:flex;align-items:center;gap:.6rem;justify-content:flex-end;font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:#0006}.thesis-media-nav{position:absolute;top:50%;left:-32px;right:-32px;height:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;padding:0;z-index:3;transform:translateY(-50%)}.thesis-media-nav button{border:none;background:transparent;color:#ec3107;width:36px;height:36px;cursor:pointer;pointer-events:auto;display:grid;place-items:center;padding:0}.thesis-media-nav button:focus,.thesis-media-nav button:focus-visible{outline:none}.thesis-media-nav button svg{width:26px;height:26px;stroke:currentColor;stroke-width:2;fill:none}.thesis-media-nav button:hover{color:#b91805}.thesis-media-nav button:disabled{color:#00000040;cursor:default}.thesis-media-card{min-width:100%;position:relative;padding:2rem;border-radius:20px;background:#ffffffb3;border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 40px #00000014;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;gap:1.4rem;scroll-snap-align:start}.thesis-media-card:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:16px;border:1px dashed rgba(236,49,7,.25);pointer-events:none}.thesis-media-card figure{margin:0;display:grid;gap:.6rem}.thesis-media-card img{width:100%;max-height:260px;object-fit:cover;height:auto;border-radius:16px;border:1px solid rgba(0,0,0,.08);box-shadow:0 12px 28px #0000001a;background:#f1eeea}.thesis-media-card figcaption{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#0000008c}.thesis-media-body{display:grid;gap:.75rem}.thesis-card-title{font-size:.95rem;letter-spacing:.3em;text-transform:uppercase;color:#111;margin-bottom:.9rem;margin-top:1.4rem}.thesis-media-body p{margin:0;font-size:1rem;line-height:1.6;color:#000000a6}.thesis-card-meta{margin-top:1.2rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#00000073}.thesis-card-links{margin-top:.8rem}.thesis-card-links a{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#ec3107;text-decoration:none}.thesis-card-links a:hover{color:#b91805}@media (max-width: 900px){.thesis-container{padding:2rem}.thesis-split{grid-template-columns:1fr}}@media (max-width: 600px){.thesis-copy h2{font-size:2rem}.thesis-media-card{padding:1.6rem;min-width:100%}}.projects-page{position:relative;width:100%;height:100%;font-family:Metropolis,sans-serif;overflow:hidden}.projects-header{position:absolute;top:8%;left:8%;z-index:3;display:grid;gap:.6rem;max-width:420px}.projects-eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#00000080}.projects-header h2{margin:0;font-size:2.4rem;color:#1b1b1b}.projects-header p{margin:0;color:#0009;line-height:1.6}.projects-network{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1}.projects-network-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.projects-network-lines line{stroke:#0000002e;stroke-width:.8}.project-node{position:absolute;transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px)));background:transparent;border:none;cursor:pointer;display:grid;justify-items:center;gap:.6rem;padding:0;z-index:2}.project-node:focus,.project-node:focus-visible{outline:none}.project-node{-webkit-tap-highlight-color:transparent}.project-node-core{width:58px;height:58px;background:#ec31071f;border:1px solid rgba(236,49,7,.45);border-radius:999px;display:grid;place-items:center;color:#ec3107;transition:transform .2s ease,color .2s ease,background .2s ease,border-color .2s ease}.project-node:hover .project-node-core{transform:translateY(-2px) scale(1.06);color:#b91805;background:#ec310738;border-color:#ec3107b3}.project-node-core svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.8;fill:none}.project-node-core img{width:28px;height:28px;display:block;filter:brightness(0) saturate(100%) invert(23%) sepia(67%) saturate(5199%) hue-rotate(4deg) brightness(94%) contrast(103%)}.project-node-label{font-family:Metropolis,sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#000000b3;text-align:center;max-width:140px;opacity:1;transform:translateY(0);pointer-events:none}.shape-circle .project-node-core{border-radius:999px}.projects-modal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#e6e4df8c;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:10}.projects-modal.is-open{opacity:1;pointer-events:auto}.projects-modal-card{position:relative;width:min(860px,94vw);padding:2.5rem;border-radius:22px;background:#ffffffd1;border:1px solid rgba(0,0,0,.08);box-shadow:0 25px 55px #0000001f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.projects-modal-card:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:18px;border:1px dashed rgba(236,49,7,.25);pointer-events:none}.projects-modal-card h3{margin:0 0 1rem;font-size:1.8rem;color:#1a1a1a}.projects-modal-card p{margin:0 0 1.6rem;color:#000000b3;font-size:1rem;line-height:1.65}.projects-hint{margin:-.8rem 0 1.6rem;font-size:.8rem;font-family:Palatino Linotype,Book Antiqua,Palatino,serif;font-style:italic;color:#0000008c}.projects-media{display:grid;gap:.8rem;margin-bottom:1.6rem}.projects-media-frame{position:relative;border-radius:18px;overflow:hidden;border:none;background:transparent}.projects-media-frame img,.projects-media-frame iframe{width:100%;height:320px;border:0;display:block;object-fit:contain;background:transparent}.projects-media-image.is-small{height:240px}.projects-media-nav{position:absolute;top:50%;transform:translateY(-50%);border:none;background:#f3efe9;color:#ec3107;width:30px;height:30px;border-radius:999px;cursor:pointer;display:grid;place-items:center;box-shadow:none;padding:0}.projects-media-nav svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;display:block}.projects-media-nav.prev{left:10px}.projects-media-nav.next{right:10px}.projects-media-caption{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#0000008c}.projects-media-dots{display:flex;gap:6px}.projects-media-dots .dot{width:6px;height:6px;border-radius:999px;background:#0003}.projects-media-dots .dot.is-active{background:#ec3107b3}@media (max-width: 768px){.projects-media-frame img,.projects-media-frame iframe{height:240px}.projects-media-image.is-small{height:200px}}.projects-modal-close{position:absolute;top:1rem;right:1.2rem;z-index:2;background:transparent;border:none;font-size:2rem;color:#0009;cursor:pointer;pointer-events:auto}.projects-link{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.4rem;border-radius:999px;background:#111;color:#fff;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;text-decoration:none}.projects-link.is-disabled{background:#0000001f;color:#00000073;cursor:default}@media (max-width: 768px){.projects-header{top:6%;left:6%;right:6%}.project-node-core{width:48px;height:48px}.project-node-label{font-size:.6rem}.projects-modal-card{padding:2rem}.projects-modal-card h3{font-size:1.5rem}}*{padding:0;margin:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}*:focus,*:focus-visible{outline:none}button:focus,button:focus-visible,button:active,a:focus,a:focus-visible,a:active,input:focus,input:focus-visible,textarea:focus,textarea:focus-visible,select:focus,select:focus-visible{outline:none;box-shadow:none}html,body,#root{width:100%;height:100vh;margin:0;padding:0;background:#fff;color:#000;overflow:hidden}body{margin:0;padding:0;width:100%;height:100vh;overflow:hidden}.App{width:100%;height:100vh;overflow:hidden;scroll-behavior:smooth;position:relative}h1{position:fixed;top:50%;left:2rem;transform:rotate(-90deg) translate(50%);transform-origin:right center;z-index:1000;font-size:2rem;text-align:center;font-family:StarlightRune,sans-serif}@font-face{font-family:StarlightRune;src:url(/fonts/StarlightRune.ttf) format("truetype")}@font-face{font-family:Metropolis;src:url(/fonts/Metropolis-Regular.otf) format("opentype")}@font-face{font-family:Space Mono;src:url(/fonts/SpaceMono-Regular.ttf) format("truetype")}.side-nav{position:fixed;top:50%;right:16px;transform:translateY(-50%);z-index:1200;display:flex;align-items:center;gap:8px;flex-direction:row-reverse;opacity:0;pointer-events:none;transition:opacity .25s ease}.side-nav.is-visible{opacity:1;pointer-events:auto}.side-nav-list{list-style:none;display:flex;flex-direction:column;gap:8px;align-items:flex-end;margin:0;padding:6px 4px;background:transparent;border-radius:999px}.side-nav-button{display:flex;align-items:center;gap:6px;flex-direction:row-reverse;background:transparent;border:none;cursor:pointer;font-family:Metropolis,sans-serif;padding:4px 6px;color:#1a1a1a;text-align:right}.side-nav-dot{width:6px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.35);background:transparent;transition:transform .2s ease,background .2s ease,border-color .2s ease}.side-nav-label{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#0009;opacity:0;transform:translate(-6px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.side-nav-button:hover .side-nav-label,.side-nav-button.is-active .side-nav-label{opacity:1;transform:translate(0)}.side-nav-button.is-active{font-weight:600}.side-nav-button.is-active .side-nav-label{color:#000}.side-nav-button.is-active .side-nav-dot{background:#ec3107;border-color:#ec3107;transform:scale(1.1)}@media (max-width: 768px){.side-nav{right:10px}}@media (max-width: 480px){.side-nav{right:8px}.side-nav-label{display:none}}.sections-container{height:100%;transition:transform 1s ease}.section{min-height:100vh;height:100vh;width:100%;padding:2rem;display:flex;flex-direction:column;justify-content:center;scroll-snap-align:start;scroll-snap-stop:always;position:relative}.hero{padding:0;height:100vh}.about,.experience,.thesis,.projects,.contact{background:#f4f1eb}h2{font-family:Metropolis,sans-serif;font-size:3rem;margin-bottom:2rem}p{font-family:Metropolis,sans-serif;font-size:1.2rem;line-height:1.6;max-width:800px;margin:0 auto}.hero>div{width:100%;height:100vh}input,textarea{width:90%;background:transparent;border:1px solid #000;padding:.5rem;margin-bottom:1rem;font-family:Metropolis,sans-serif;transition:all .3s ease;color:#000!important}input:focus,textarea:focus{outline:none;border-color:#ec3107;color:#ec3107}button[type=submit]{border:1px solid #000;background:#000;color:#fff;padding:1rem;font-size:1.2rem;cursor:pointer;transition:all .3s ease}button[type=submit]:hover{background:#444;color:#fff}.contact form{max-width:800px;margin:0 auto;padding:2rem;height:100%;width:90%}.section.contact{display:flex;align-items:center;justify-content:center;padding:2rem;height:100vh;position:relative;overflow:hidden}.contact-form-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative}.contact-form,.contact-success-message{max-width:800px;width:100%;padding:2rem;visibility:visible;opacity:1}.fade-out{animation:fadeOut .3s ease forwards}.fade-in{animation:fadeIn .3s ease forwards}.contact-success-message{text-align:center}.contact-success-message h2{margin-bottom:1rem;font-size:2.5rem}.contact-success-message p{font-size:1.2rem}@keyframes fadeIn{0%{opacity:0;visibility:hidden;transform:translateY(-30%)}to{opacity:1;visibility:visible;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;visibility:visible;transform:translateY(0)}to{opacity:0;visibility:hidden;transform:translateY(-20%)}}.contact-content{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:100%;height:100%}.contact-shell{width:min(900px,92vw);display:grid;gap:1.5rem;z-index:2}.contact-header{display:grid;gap:.75rem}.contact-eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#0000008c}.contact-header h2{margin:0;font-size:2.6rem;color:#1e1e1e}.contact-header p{margin:0;font-size:1.05rem;color:#0009}.contact-card{position:relative;padding:2rem;border-radius:20px;background:#ffffffb3;border:1px solid rgba(0,0,0,.08);box-shadow:0 20px 45px #0000001a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.contact-card:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:16px;border:1px dashed rgba(236,49,7,.2);pointer-events:none}.contact-form-modern{display:flex;flex-direction:column;gap:1.5rem;width:100%;transition:opacity .3s ease,transform .3s ease}.contact-form--blocked{opacity:.5;pointer-events:none}.contact-form--resetting{opacity:.2;transform:translateY(12px)}.contact-toast{position:absolute;top:-12px;right:0;background:#111111e6;color:#fff;padding:.45rem .9rem;border-radius:999px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}.contact-toast.is-visible{opacity:1;transform:translateY(0)}.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.contact-field{display:flex;flex-direction:column;gap:.6rem;font-family:Metropolis,sans-serif}.contact-field span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#0000008c}.contact-limit{margin-top:.35rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#ec3107cc}.contact-field input,.contact-field textarea{width:100%;border-radius:12px;border:1px solid rgba(0,0,0,.2);padding:.85rem .9rem;background:#ffffffd9;color:#111!important;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease,opacity .3s ease,color .3s ease,transform .3s ease}.contact-field textarea{min-height:140px;resize:vertical}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:#ec3107b3;box-shadow:0 0 0 3px #ec310726}.contact-field--full{grid-column:1 / -1}.contact-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.contact-actions button{border-radius:999px;border:1px solid #111;background:#111;color:#fff;padding:.85rem 1.6rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.contact-actions button:hover{transform:translateY(-1px);background:#2a2a2a;border-color:#2a2a2a}.contact-actions button:disabled{cursor:not-allowed;opacity:.6}.contact-hint{font-size:.78rem;color:#00000080;letter-spacing:.04em}.contact-error{font-size:.85rem;color:#b31212}.contact-footer{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:#00000073}@media (max-width: 768px){.contact-header h2{font-size:2rem}.contact-card{padding:1.5rem}.contact-form-grid{grid-template-columns:1fr}.contact-actions{flex-direction:column;align-items:flex-start}}@media (max-width: 480px){.contact-card{padding:1.25rem}}.wireframe-envelope{position:absolute;width:100%;height:100%;z-index:0;pointer-events:none}.about-content{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:100%;gap:3rem}.about-text{flex:1;display:flex;flex-direction:column;gap:1.5rem;max-width:500px}.about-text h2{font-size:2.5rem;margin-bottom:1rem;color:#333}.about-text p{font-size:1.1rem;line-height:1.6;color:#555;margin-bottom:1rem}.about-text ul{list-style:none;padding:0;margin:1rem 0}.about-text li{font-size:1rem;line-height:1.5;color:#555;margin-bottom:.5rem;padding-left:1.5rem;position:relative}.about-text li:before{content:"•";color:#ec3107;font-weight:700;position:absolute;left:0}.about-graph{flex:1;height:600px;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0000001a}@media (max-width: 768px){.about-content{flex-direction:column;padding:1rem;gap:2rem;justify-content:center}.about-text{max-width:100%;text-align:center}.about-text h2{font-size:2rem}.about-text p{font-size:1rem;line-height:1.5}.about-graph{height:400px;width:100%}}.popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffb3;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:center;z-index:1000;width:100vw;height:100vh}.popup-content{background:#ff7070a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:3rem;border-radius:8px;max-width:90vw;min-width:90vw;width:90vw;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0003;border:1px solid rgba(255,255,255,.2)}.popup-content h2{margin-bottom:2rem;font-family:Space Mono,monospace;font-size:2.5rem}.popup-content p{margin-bottom:1.5rem;font-family:Space Mono,monospace;line-height:1.8;font-size:1.2rem;max-width:100%;margin-left:auto;margin-right:auto}.close-button{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;font-size:2rem;cursor:pointer;padding:.5rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .3s}.close-button:hover{background-color:#0000001a}.step-enter{opacity:0;transform:translate(100%)}.step-enter-active{opacity:1;transform:translate(0);transition:all .3s ease-in-out}.step-exit{opacity:1;transform:translate(0)}.step-exit-active{opacity:0;transform:translate(-100%);transition:all .3s ease-in-out}.form-step{position:relative;width:100%;display:flex;flex-direction:column;margin-bottom:10px}.contact-form{overflow:hidden;display:flex;flex-direction:column;height:auto;min-height:250px;justify-content:flex-start;width:800px;padding:2rem}.button-container{margin-top:20px;z-index:2;padding-top:10px;background:transparent;position:relative}.form-step label{font-size:1.5rem;font-weight:500;margin-bottom:1rem;display:block;font-family:Metropolis,sans-serif;white-space:pre-line}.fill-in-blank-container{position:relative;padding-bottom:.5rem;margin-bottom:10px}.fill-in-blank-textarea{width:73%;background:transparent;border:1px solid #000;margin-bottom:0;font-family:Metropolis,sans-serif;resize:none;line-height:1.6;transition:all .3s ease;min-height:150px;color:#000!important}.fill-in-blank-textarea:focus{outline:none;border-color:#ec3107}.fill-in-blank-input{width:73%;background:transparent;border:none;border-bottom:1px solid #000;padding:.5rem 0;margin-bottom:0;font-family:Metropolis,sans-serif;font-size:1.2rem;transition:all .3s ease;color:#000!important}.fill-in-blank-input:focus{outline:none;border-color:#ec3107;color:#ec3107}.simple-form-container{max-width:500px;margin:0 auto;padding:20px;font-family:Metropolis,sans-serif}.step-container{display:flex;flex-direction:column;gap:20px}.step-container h3{font-size:1.5rem;margin-bottom:10px}.form-input{width:80%;padding:10px 0;font-size:16px;border:none;border-bottom:1px solid #000;background:transparent;margin-bottom:20px}textarea.form-input{min-height:150px;resize:vertical}.form-buttons{color:#000;display:flex;justify-content:space-between;gap:10px;margin-top:10px}.form-buttons button{color:#000;flex:1;padding:10px;border:1px solid #000;background:transparent;cursor:pointer;font-family:inherit;transition:all .3s}.fixed-height-container{width:800px}.form-buttons button:hover{color:#000;background:#0000000d}.thank-you-message{text-align:center;padding:40px 20px}.thank-you-message h2{font-size:2rem;margin-bottom:10px}.hidden{visibility:hidden;opacity:0;position:absolute;pointer-events:none}
