.main-container{min-height:100vh;padding:2rem}.main-inner{max-width:72rem;margin:0 auto}.intro-section,.about-section,.projects-section,.contact-section{margin-bottom:6rem;padding:2rem 0}@keyframes slideUpFromBottom{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFromTop{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.animate-on-load{opacity:0;animation:.8s ease-out forwards slideUpFromBottom}.nav-container.animate-on-load{animation:.6s ease-out forwards slideDownFromTop}.animate-on-scroll{opacity:0;transition:all .6s ease-out;transform:translateY(50px)}.animate-on-scroll.animate{opacity:1;transform:translateY(0)}.animate-stagger-1{animation-delay:.1s}.animate-stagger-2{animation-delay:.2s}.animate-stagger-3{animation-delay:.3s}.animate-stagger-4{animation-delay:.4s}.animate-stagger-5{animation-delay:.5s}.intro-section{flex-direction:column;align-items:center;gap:2rem;display:flex}@media (min-width:768px){.intro-section{flex-direction:row;align-items:flex-start}}.profile-image-container{width:16rem;height:16rem;box-shadow:0 10px 15px -3px rgba(var(--ink-rgb), .1);border:1px solid rgba(var(--sand-rgb), .3);background-position:top;background-size:cover;border-radius:50%;flex-shrink:0}.intro-content{flex-grow:1}.intro-title{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--heading);border-bottom:1px solid rgba(var(--sand-rgb), .3);margin-bottom:1rem;padding-bottom:.5rem;font-size:1.75rem;font-weight:600}.intro-text{font-size:1.125rem;line-height:1.75}.intro-text-bold{font-weight:700}.intro-text-margin{margin-top:1rem}.contact-links{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}@media (min-width:640px){.contact-links{flex-flow:wrap}}.contact-link{color:var(--text);border:1px solid rgba(var(--sand-rgb), .3);border-radius:.25rem;align-items:center;gap:.5rem;padding:.5rem 1rem;transition:color .2s;display:inline-flex}.contact-link:hover{color:var(--moss-200);border-color:rgba(var(--moss-rgb), .55)}.section-header{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--heading);text-align:center;border-bottom:1px solid #0000;-o-border-image:linear-gradient(90deg, transparent, rgba(var(--moss-rgb), .55) 35%, rgba(var(--sand-rgb), .35) 50%, rgba(var(--moss-rgb), .55) 65%, transparent) 1;border-image:linear-gradient(90deg, transparent, rgba(var(--moss-rgb), .55) 35%, rgba(var(--sand-rgb), .35) 50%, rgba(var(--moss-rgb), .55) 65%, transparent) 1;margin-bottom:3rem;padding-bottom:1rem;font-size:2rem;font-weight:600}.about-section{color:var(--text);flex-direction:column;gap:3rem;display:flex}.about-content{width:100%;max-width:64rem;margin:0 auto}.about-subtitle{font-family:var(--font-heading);letter-spacing:-.025em;color:var(--heading);border-bottom:1px solid rgba(var(--sand-rgb), .2);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.3rem;font-weight:600}.about-text{margin-bottom:1rem;font-size:1.125rem;line-height:1.75}.about-list{flex-direction:column;gap:.75rem;margin:1.5rem 0;list-style:none;display:flex}.about-list-item{align-items:center;gap:.75rem;display:flex}.about-list-bullet{background-color:var(--text);border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.about-list-text{font-size:1.125rem;font-weight:600}.about-experience{flex-direction:column;gap:1.5rem;display:flex}.about-company{font-family:var(--font-heading);letter-spacing:-.025em;color:var(--heading);margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.about-education{align-items:center;gap:1rem;margin-top:3rem;display:flex}.about-school{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--heading);font-size:1.25rem;font-weight:600}.about-degree{color:var(--text-muted);font-size:1.125rem}.contact-section{color:var(--text)}.contact-content{max-width:64rem;margin:0 auto}.contact-item{color:var(--text);border:1px solid var(--line);background-color:rgba(var(--ink-rgb), .45);white-space:nowrap;border-radius:.5rem;flex:1;align-items:center;gap:.75rem;min-width:0;padding:1rem;text-decoration:none;transition:all .2s;display:flex;overflow:hidden}.contact-item span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.contact-item:hover{background-color:rgba(var(--moss-rgb), .16);border-color:rgba(var(--moss-rgb), .45);transform:translateY(-2px)}.contact-icon{filter:brightness(0)invert(.92)sepia(.35)saturate(1.6)hue-rotate(350deg)}.nav-container{color:var(--text);padding:1rem}.nav-wrapper{justify-content:space-between;align-items:center;max-width:72rem;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1.15rem;font-weight:600;text-decoration:none;transition:color .2s}.nav-brand:hover{color:var(--moss-200)}.nav-links{display:none}@media (min-width:768px){.nav-links{gap:2rem;display:flex}}.nav-link{color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1rem;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--moss-200)}.dropdown{position:relative}@media (min-width:768px){.dropdown{display:none}}.menu-button{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:.25rem;padding:.5rem;display:flex}.menu-line{background-color:var(--text);width:1.5rem;height:.125rem;transition:all .2s}.menu-line:last-child{width:1rem}.dropdown-content{background-color:rgba(var(--ink-rgb), .9);border:1px solid rgba(var(--sand-rgb), .2);border-radius:.5rem;flex-direction:column;gap:.25rem;min-width:8rem;padding:.5rem;display:none;position:absolute;top:100%;right:0}.dropdown-content.show{display:flex}.dropdown-link{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.25rem;padding:.5rem 1rem;font-size:1rem;text-decoration:none;transition:background-color .2s}.dropdown-link:hover{background-color:rgba(var(--sand-rgb), .1)}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:64rem;margin:0 auto;display:grid}.project-card{background-color:rgba(var(--sand-rgb), .05);border:1px solid rgba(var(--sand-rgb), .1);color:var(--text);border-radius:.5rem;flex-direction:column;gap:1rem;padding:2rem;transition:all .2s;display:flex}.project-card:hover{background-color:rgba(var(--sand-rgb), .08);border-color:rgba(var(--sand-rgb), .2);transform:translateY(-4px)}.project-card-title{color:var(--text);margin:0;font-size:1.5rem;font-weight:700}.project-card-description{color:var(--text-muted);flex-grow:1;margin:0;font-size:1rem;line-height:1.6}.project-card-links{flex-wrap:wrap;gap:.75rem;display:flex}.project-card-link{background-color:var(--moss-500);border:1px solid var(--moss-500);color:var(--accent-ink);border-radius:.25rem;width:fit-content;padding:.75rem 1.5rem;font-family:inherit;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.project-card-link:hover{background-color:var(--moss-400);border-color:var(--moss-400);transform:translateY(-2px)}.project-card-link-secondary{border-color:var(--line-strong);color:var(--text);background-color:#0000}.project-card-link-secondary:hover{background-color:rgba(var(--sand-rgb), .1);border-color:rgba(var(--sand-rgb), .5);color:var(--sand-50)}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));justify-content:center;gap:1.5rem;display:grid}.resume-section{color:var(--text);margin-bottom:6rem;padding:2rem 0}.resume-container{flex-direction:column;gap:2rem;max-width:64rem;margin:0 auto;display:flex}.resume-controls{background-color:rgba(var(--sand-rgb), .05);border:1px solid rgba(var(--sand-rgb), .1);border-radius:.5rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex}.resume-btn{background-color:rgba(var(--sand-rgb), .1);border:1px solid rgba(var(--sand-rgb), .3);color:var(--text);cursor:pointer;border-radius:.25rem;padding:.5rem 1rem;font-weight:500;transition:all .2s}.resume-btn:hover:not(:disabled){background-color:rgba(var(--sand-rgb), .2);border-color:rgba(var(--sand-rgb), .5);transform:translateY(-2px)}.resume-btn:disabled{opacity:.5;cursor:not-allowed}.resume-download-btn{background-color:var(--moss-500);border-color:var(--moss-500);color:var(--accent-ink)}.resume-download-btn:hover{background-color:var(--moss-400);border-color:var(--moss-400);color:var(--accent-ink)}.resume-page-info{text-align:center;min-width:100px;font-weight:500}.resume-zoom-controls{border-left:1px solid rgba(var(--sand-rgb), .1);align-items:center;gap:.5rem;padding-left:1rem;display:flex}.resume-zoom-level{text-align:center;min-width:50px;font-weight:500}.resume-viewer{background-color:rgba(var(--ink-rgb), .5);border:1px solid rgba(var(--sand-rgb), .1);border-radius:.5rem;justify-content:center;padding:2rem;display:flex;overflow-x:auto}.resume-loading{color:var(--text-muted);text-align:center;padding:2rem}.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}.typewriter{max-width:72rem;margin:0 auto 3rem;padding:1.5rem 0 0}.typewriter-line{font-family:var(--font-heading);letter-spacing:-.015em;min-height:2.6em;color:var(--text);font-size:clamp(1.6rem,4.6vw,2.9rem);font-weight:600;line-height:1.3}.typewriter-prefix{color:var(--text-dim);font-style:italic}.typewriter-typed{color:var(--sand-50)}.typewriter-cursor{background-color:var(--moss-400);vertical-align:baseline;width:.08em;min-width:2px;height:.95em;margin-left:.1em;display:inline-block;translate:0 .08em}.typewriter-cursor-blink{animation:1.05s step-end infinite cursorBlink}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}.typewriter-rule{background:linear-gradient(90deg, var(--moss-500), rgba(var(--moss-rgb), 0));border-radius:2px;width:4.5rem;height:2px;margin-top:1.75rem;display:block}@media (prefers-reduced-motion:reduce){.typewriter-cursor-blink{animation:none}}.carousel{--card-width:min(44rem, 86vw);--card-height:calc(var(--card-width) * .625 + 2.45rem);max-width:72rem;margin:0 auto}.carousel-stage{height:var(--card-height);perspective:1800px;perspective-origin:50%;touch-action:pan-y;outline:none;position:relative;overflow-x:clip;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 7% 93%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 7% 93%,#0000 100%)}.carousel-stage:focus-visible{outline:1px solid rgba(var(--sand-rgb), .5);outline-offset:1.25rem;border-radius:.75rem}.carousel-slide{width:var(--card-width);margin-left:calc(var(--card-width) / -2);transform-style:preserve-3d;transform:translateX(calc(var(--offset) * 52% + var(--drag,0px))) translateZ(calc(var(--distance) * -340px)) rotateY(calc(var(--offset) * -32deg)) scale(calc(1 - var(--distance) * .06));opacity:calc(1 - var(--distance) * .65);filter:blur(calc(var(--distance) * 2px));pointer-events:none;transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .55s,filter .55s;position:absolute;top:0;left:50%}.carousel-slide:not(.carousel-slide-active) .carousel-shot{pointer-events:auto;cursor:pointer}.carousel-slide-active{pointer-events:auto;opacity:1;filter:none}.carousel-stage-dragging .carousel-slide{transition:opacity .55s,filter .55s}.carousel-shot{background-color:rgba(var(--ink-rgb), .92);border:1px solid var(--line);width:100%;box-shadow:0 30px 60px -20px rgba(var(--ink-rgb), .85);border-radius:.75rem;padding:0;transition:border-color .4s,box-shadow .4s;display:block;overflow:hidden}.carousel-slide-active .carousel-shot{border-color:rgba(var(--moss-rgb), .45);box-shadow:0 40px 80px -24px rgba(var(--ink-rgb), .95), 0 0 0 1px rgba(var(--moss-rgb), .12)}.carousel-chrome{border-bottom:1px solid var(--line);background-color:#30281feb;align-items:center;gap:.4rem;padding:.6rem .85rem;display:flex}.carousel-dot{background-color:rgba(var(--sand-rgb), .26);border-radius:50%;flex-shrink:0;width:.6rem;height:.6rem}.carousel-dot:first-child{background-color:rgba(var(--moss-rgb), .6)}.carousel-chrome-label{font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;color:rgba(var(--sand-rgb), .55);text-overflow:ellipsis;white-space:nowrap;margin-left:.6rem;font-size:.72rem;overflow:hidden}.carousel-shot-frame{aspect-ratio:16/10;width:100%;display:block;position:relative;overflow:hidden}.carousel-image{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;transition:filter .6s,transform .9s cubic-bezier(.22,1,.36,1)}.carousel-slide-active .carousel-shot-frame .carousel-image{filter:grayscale(0%)sepia(0%)}.carousel-slide:not(.carousel-slide-active) .carousel-shot{filter:brightness(.55)contrast(.92)sepia(.25)}.carousel-slide-active .carousel-shot:hover .carousel-image{transform:scale(1.03)}.carousel-sheen{background:linear-gradient(105deg, transparent 35%, rgba(var(--sand-rgb), .16) 48%, transparent 62%);pointer-events:none;position:absolute;inset:0;transform:translate(-120%)}.carousel-slide-active .carousel-sheen{animation:1.5s cubic-bezier(.22,1,.36,1) .25s sheenSweep}@keyframes sheenSweep{0%{transform:translate(-120%)}to{transform:translate(120%)}}.carousel-body{text-align:center;margin-top:2.25rem;animation:.55s cubic-bezier(.22,1,.36,1) both carouselBodyIn}@keyframes carouselBodyIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.carousel-title{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--heading);margin:0 0 .75rem;font-size:1.5rem;font-weight:600}.carousel-tags{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.carousel-tag{letter-spacing:.02em;color:var(--moss-200);background-color:rgba(var(--moss-rgb), .12);border:1px solid rgba(var(--moss-rgb), .3);border-radius:999px;padding:.25rem .7rem;font-size:.78rem}.carousel-description{max-width:38rem;color:var(--text-muted);margin:0 auto 1.25rem;font-size:1rem;line-height:1.65}.carousel-links{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.carousel-controls{justify-content:center;align-items:center;gap:1.5rem;margin-top:2.5rem;display:flex}.carousel-arrow{width:2.75rem;height:2.75rem;color:var(--text);background-color:rgba(var(--sand-rgb), .06);border:1px solid rgba(var(--sand-rgb), .22);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:all .25s;display:flex}.carousel-arrow:hover{background-color:rgba(var(--moss-rgb), .2);border-color:rgba(var(--moss-rgb), .5);color:var(--moss-200);transform:translateY(-2px)}.carousel-dots{align-items:center;gap:.6rem;display:flex}.carousel-pip{background-color:rgba(var(--sand-rgb), .2);cursor:pointer;border:none;border-radius:999px;width:2.5rem;height:.3rem;padding:0;transition:background-color .25s,width .35s;overflow:hidden}.carousel-pip:hover{background-color:rgba(var(--sand-rgb), .4)}.carousel-pip-active{background-color:rgba(var(--sand-rgb), .25);width:3.75rem}.carousel-pip-fill{background-color:var(--moss-400);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.carousel-pip-active .carousel-pip-fill{transform:scaleX(1)}.carousel-pip-timer{animation:7s linear forwards pipTimer}@keyframes pipTimer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.carousel-counter{text-align:center;font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;color:rgba(var(--sand-rgb), .4);margin-top:1.25rem;font-size:.8rem}.carousel-counter-current{color:var(--moss-200)}.carousel-counter-divider{margin:0 .4rem}@media (max-width:767px){.carousel{--card-width:92vw}.carousel-stage{perspective:1200px;-webkit-mask-image:none;mask-image:none}.carousel-slide:not(.carousel-slide-active){opacity:0;pointer-events:none}.carousel-controls{gap:1rem}}@media (prefers-reduced-motion:reduce){.carousel-slide{transform:translateX(calc(var(--offset) * 52%));filter:none;transition:opacity .3s}.carousel-slide:not(.carousel-slide-active){opacity:0}.carousel-sheen,.carousel-pip-timer,.carousel-body{animation:none}.carousel-image{transition:none}}
