*{margin:0;padding:0;user-select:none;caret-color:transparent;box-sizing:border-box}.button-style{background-color:#ffffff1a;color:#fff;border:2px solid white;border-radius:30px;padding:.8rem 2rem;font-size:1.2rem;letter-spacing:1px;cursor:pointer;transition:opacity 4s ease;backdrop-filter:blur(6px);box-shadow:0 0 15px #ffffff1a;font-family:Orbitron,sans-serif;user-select:none;caret-color:transparent;font-weight:500}.button-style:hover{background-color:#ffffff4d;box-shadow:0 0 20px #fff6;transform:scale(1.05)}.button-style:active{transform:scale(.98);box-shadow:0 0 10px #fff9}html,body{height:100%;background-color:#161616;font-family:Poppins,sans-serif}h1,h2,h3,h4,h5,h6{font-family:Orbitron,sans-serif;font-weight:700;letter-spacing:1px;color:#fff}section h1,article h1,nav h1,aside h1{font-size:2rem}h2,section h2,article h2,nav h2,aside h2{font-size:1rem}p{color:#fff;line-height:1.5;user-select:none;caret-color:transparent;font-size:16px}.button,#enterSystem{font-family:Orbitron,sans-serif;font-weight:500;user-select:none;caret-color:transparent;cursor:pointer}*::-webkit-scrollbar{width:4px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#888;border-radius:10px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:transparent}*,*:before,*:after{box-sizing:border-box}@media (max-width: 600px){section h1,article h1,nav h1,aside h1{font-size:1.2rem}#instruction{text-align:center;font-size:15px}}input,textarea{min-width:0;max-width:100%;user-select:text;caret-color:auto}:focus-visible{outline:2px solid #82e8ff;outline-offset:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}#info{width:100%;z-index:2}#info .info-panel{min-height:100svh;width:100%;display:grid;place-items:center;color:#fff;position:relative;overflow:hidden;background:#161616;z-index:20}.infoSection{width:100%;max-width:1440px;margin-inline:auto;display:flex;gap:2rem;align-items:stretch;justify-content:center;padding:2rem}.info-box{overflow-y:auto;overflow-x:hidden;overflow-wrap:anywhere;flex:1 1 45%;min-width:0;max-width:550px;height:calc(100dvh - 4rem);background:#ffffff0d;border:3px solid white;border-radius:10px;color:#fff;padding:clamp(1.25rem,3vw,3rem);position:relative}.infoBoxRight{max-width:760px}.section-divider,.document-divider{border:0;border-top:1px solid #ccc}.section-divider{margin-top:1rem}.document-divider{margin:1rem 0}.story-copy h3{padding:1rem 0 .5rem}.skills-copy h3{padding:.5rem 0 1rem}.skills-list{list-style:none;padding:0}.skills-list li{display:flex;align-items:center;margin-bottom:1rem}.skill-icon{flex-shrink:0;width:1.25em;text-align:center}.skills-list .skill-icon{font-size:2rem;color:#fff;margin-right:1rem}.skills-list li>span:last-child{font-size:1.1rem}.ui-icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}a{color:#2256c6;text-decoration:none;font-weight:500;transition:all .2s ease;padding:.25em .2em;border-radius:6px}a:hover,a:focus{background:#ffffff26;color:#fff;text-decoration:underline}.infoButton{background:#ffffff1a;margin-top:.9rem;max-width:100%;min-height:44px;align-self:center;color:#fff;border:2px solid white;border-radius:30px;padding:.8rem 2rem;font-size:1rem;letter-spacing:1px;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 0 15px #ffffff1a;font-family:Orbitron,sans-serif;font-weight:500}.infoButton:hover{background:#ffffff4d;box-shadow:0 0 20px #fff6;transform:scale(1.05)}.infoButton:active{transform:scale(.98);box-shadow:0 0 10px #fff9}.copy-mobile{display:none}.copy-mobile+.copy-desktop{margin-top:.75rem}@media (max-width: 900px),(max-height: 600px){#info .info-panel{overflow:visible}.infoSection{padding:clamp(1rem,3vw,2rem);gap:1.25rem}.info-box{height:auto;overflow-y:visible}}@media (max-width: 900px){.infoSection{flex-direction:column;align-items:center}.info-box{flex:none;width:100%;max-width:700px}.info-box h1{font-size:clamp(1.4rem,4vw,2rem)}.copy-desktop{display:none}.copy-mobile{display:block}.copy-mobile+.copy-desktop+.copy-mobile{margin-top:.75rem}}.media-item{margin-bottom:1.5rem}.media-item:not(:last-child){border-bottom:1px solid #ccc;padding-bottom:.5rem}.media-item img{width:100%;height:auto;border-radius:10px}.media-item figcaption{font-size:.9rem;color:#fff;line-height:1.5;margin:.5rem 0}.media-image figcaption{margin:2rem 0}.media-open-link{display:inline-block;margin-bottom:.75rem}.media-video{width:100%;height:auto;aspect-ratio:16 / 9;border:0;border-radius:10px}.media-video--portrait{aspect-ratio:9 / 16;max-height:70dvh}.media-video--social{aspect-ratio:476 / 600}.pdf-box{display:flex;flex-direction:column;overflow-y:hidden}.top-bar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:.75rem;min-height:3rem;color:#fff}.top-bar h2{margin:0;font-size:clamp(1rem,1.8vw,1.5rem)}.resumeFrame{flex:1;min-height:0;width:100%;border:0}.pdf-placeholder{flex:1;display:grid;place-content:center;gap:1rem;text-align:center}.pdf-placeholder p{color:#c4c4c4}.pdf-box:not(.pdf-loaded) .resumeFrame{display:none}.pdf-box.pdf-loaded .pdf-placeholder{display:none}.pdf-open-link{flex-shrink:0;align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;color:#82e8ff;font-size:.8rem;margin-top:.75rem}.download-button{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:.5rem;transition:transform .2s ease;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.download-button:hover,.download-button:focus{text-decoration:none}.download-button:hover{transform:scale(1.1)}.tooltip-container{position:relative;display:inline-block}.tooltip{position:absolute;bottom:100%;right:0;background:#333;color:#fff;padding:6px 10px;border-radius:6px;white-space:nowrap;font-size:.875rem;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:999}.tooltip-container:hover .tooltip,.tooltip-container:focus-within .tooltip{opacity:1}@media (max-width: 900px),(max-height: 600px){.pdf-box{min-height:300px}.pdf-box.pdf-loaded{height:max(400px,80dvh)}}a.contact-icon{display:inline-block;cursor:pointer;color:#fff;text-align:center;padding:0}a.contact-icon:hover .ui-icon{transform:scale(1.1);transition:transform .2s,color .2s}a#linkedin-icon:hover .ui-icon{color:#0072b1}a#github-icon:hover .ui-icon{color:#6e5494}.toast{visibility:hidden;min-width:250px;background-color:#323232;color:#fff;text-align:center;border-radius:8px;padding:1rem;position:fixed;z-index:9999;left:50%;top:2rem;transform:translate(-50%);opacity:0;transition:opacity .5s ease,visibility .5s ease}.toast.show{visibility:visible;opacity:1}.contact-icons{display:flex;justify-content:center;gap:3rem;margin-bottom:2rem}.contact-icon{font-size:2.5rem}.contact-divider{padding-bottom:2rem}.contact-form-divider{border:0;border-top:1px solid #ccc;margin:2rem 0}#contactForm{display:flex;flex-direction:column;gap:1rem}#contactForm input,#contactForm textarea{padding:.75rem;border-radius:8px;border:1px solid #ccc;font-size:1rem}#contactForm textarea{resize:vertical}.dissertation-summary hr{border:none;border-top:1px solid #ccc;margin:1rem 0}.dissertation-summary .dissertation-meta,.dissertation-summary .dissertation-note{color:#c4c4c4;font-size:.8rem}.dissertation-summary .dissertation-title{font-size:1.2rem;line-height:1.5;margin-top:.75rem}.dissertation-grade{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem 1.25rem;margin:1.5rem 0;background:#00d1ff14;border:1px solid #00d1ff;border-radius:10px}.dissertation-grade strong{color:#82e8ff;font-family:Orbitron,sans-serif;font-size:2rem}.dissertation-grade strong span{font-size:.9rem;margin-left:.25rem}.dissertation-summary h3{font-size:1rem;margin:1.5rem 0 .75rem}.dissertation-stack{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.dissertation-stack li{background:#ffffff12;border:1px solid #666;border-radius:6px;padding:.35rem .6rem;font-size:.8rem}.dissertation-results{padding-left:1.2rem;line-height:1.6}.dissertation-results li{margin-bottom:.8rem}#intro{min-height:100svh;width:100%;display:grid;place-items:center;position:relative;overflow:hidden;background:#161616}.intro-tab{position:relative;z-index:2;width:100%;padding:clamp(1rem,4vw,3rem);padding-top:42svh;padding-bottom:3rem;text-align:center}#introText{font-size:clamp(1.6rem,4vw,3rem);line-height:1.3;overflow-wrap:anywhere}#intro-content{display:flex;flex-direction:column;align-items:center}#intro-content[hidden]{display:none}#instruction{margin-top:1.25rem}#enterSystem{margin-top:clamp(2rem,7vh,5rem);min-height:48px}#intro:before{content:"";position:absolute;top:var(--sun-top, 5svh);left:50%;width:var(--sun-width, 39svh);height:var(--sun-height, 40svh);border-radius:50%;transform:translate(-50%);background:radial-gradient(circle at 35% 30%,#fff2ad,#ffca54 35%,#ff961b 72%,#d25600);box-shadow:0 0 65px #fba52b55;opacity:1;transition:opacity .9s ease-in-out}#intro.has-webgl:before{opacity:0}#intro.has-low-poly:before{background:radial-gradient(ellipse,#ff8f2430 30%,#ff8f2418 60%,transparent 72%);box-shadow:none;transform:translate(-50%) scale(1.3)}#lowPolySun{position:absolute;top:var(--sun-top, 5svh);left:50%;width:var(--sun-width, 39svh);height:var(--sun-height, 40svh);transform:translate(-50%);image-rendering:pixelated;pointer-events:none;opacity:0;transition:opacity .9s ease-in-out}#intro.has-low-poly #lowPolySun{opacity:1}#intro.has-webgl #lowPolySun{opacity:0}@media (max-height: 500px) and (orientation: landscape){.intro-tab{padding-top:48svh;padding-bottom:1.5rem}#enterSystem{margin-top:1rem}}#solarSystem{position:absolute;inset:0;z-index:1;pointer-events:none}#threeCanvas{display:block;width:100%;height:100%;pointer-events:none}#threeCanvas{opacity:0;transition:opacity .9s ease-in-out}#intro.has-webgl #threeCanvas{opacity:1}
