@font-face{font-family:ms_sans_serif;src:url(/assets/ms_sans_serif.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:ms_sans_serif;src:url(/assets/ms_sans_serif_bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{font-family:ms_sans_serif,sans-serif;color:#0a0a0a;background:teal;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y mandatory}html,body,#root{min-width:320px;min-height:100%;margin:0}body{-webkit-font-smoothing:none}.skip-link{position:fixed;top:8px;left:8px;z-index:9999;padding:8px 12px;color:#000;background:#fff;border:2px solid #000;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}a:focus-visible{outline:2px dotted currentColor;outline-offset:3px}button,input,select,textarea{font:inherit}.snap-page{min-height:100%;background:teal}.hero{position:relative;display:grid;min-height:100vh;min-height:100dvh;overflow:hidden;place-items:center;scroll-snap-align:start;scroll-snap-stop:always;text-align:center;background-image:url(/assets/clouds.jpg);background-position:center;background-size:cover}.hero:before{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/plastic.jpg);background-position:center;background-size:cover;content:"";mix-blend-mode:screen;opacity:.4;pointer-events:none}.hero__content{position:relative;z-index:1;display:grid;width:min(100% - 32px,560px);justify-items:center;gap:clamp(28px,4vh,44px)}.hero__portrait{display:block;width:min(100%,480px);height:auto;box-shadow:0 10px 28px #000000b3}.hero__copy{display:grid;justify-items:center;gap:6px;font-size:clamp(1rem,2.2vw,1.4rem);letter-spacing:.125rem;line-height:1.4}.hero__copy h1,.hero__copy p{margin:0}.hero__copy h1{font-size:1.3em;font-weight:700}.hero__copy a{text-underline-offset:2px}.about,.projects{display:grid;min-height:100vh;min-height:100dvh;padding:16px;overflow:hidden;place-items:center;scroll-snap-align:start;scroll-snap-stop:always;background:teal;box-shadow:inset 0 20px 20px -20px #0000007f}.contact{display:grid;min-height:100vh;min-height:100dvh;padding:16px;overflow:hidden;place-items:center;scroll-snap-align:start;scroll-snap-stop:always;box-shadow:inset 0 20px 20px -20px #0000007f}.contact__window{width:min(100%,680px)}.contact__content{min-height:240px;padding:clamp(24px,5vw,40px)}.contact__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.contact__links{display:grid;gap:12px;padding:8px 0}.contact__links a{color:inherit;text-decoration:none}.projects__window{width:min(100%,680px)}.projects__body{padding:16px}.projects__body article{display:grid;gap:16px;line-height:1.45}.projects__body h3,.projects__body p{margin:0}.projects__body h3{font-size:clamp(1.25rem,3vw,1.6rem)}.projects__actions{margin-top:4px}.projects__actions a{color:inherit;text-decoration:none}.about__window{width:min(100%,560px)}.about__titlebar h2{margin:0;font:inherit}.about__titlebar{display:flex;align-items:center;justify-content:space-between}.about__close{margin-left:8px;pointer-events:none}.close-icon{position:relative;display:inline-block;width:16px;height:16px;margin-top:-1px;margin-left:-1px;transform:rotate(45deg)}.close-icon:before,.close-icon:after{position:absolute;background:var(--close-color, #0a0a0a);content:""}.close-icon:before{left:50%;width:3px;height:100%;transform:translate(-50%)}.close-icon:after{top:50%;left:0;width:100%;height:3px;transform:translateY(-50%)}.about__content{display:flex;flex-direction:column;gap:16px;min-height:300px;align-content:center;padding:clamp(24px,6vw,48px);font-size:clamp(1rem,2.2vw,1.25rem);line-height:1.5;text-align:left}.about__content p{margin:0}.about__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:auto;margin-right:16px;margin-bottom:12px}.about__actions a{min-width:96px;color:inherit;text-decoration:none}@media(max-width:475px){.hero__content{width:min(100% - 32px,390px);gap:28px}.hero__portrait{width:100%}.hero__copy{gap:5px;font-size:1rem;letter-spacing:.08rem}.about,.projects,.contact{padding:12px}.about__content{min-height:330px;padding:24px}.projects__body{padding:16px}.contact__content{min-height:390px;padding:24px}.contact__grid{grid-template-columns:1fr}}@media(max-height:650px){.hero__content{gap:18px}.hero__portrait{width:min(58vh,380px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
