@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.contents{display:contents}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#111;--muted:#6f6d6d;--paper:snow;--line:#ddd9d9;--lilac:#cda8f8;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Manrope,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0;overflow-x:hidden}img{max-width:100%}a{color:inherit;text-decoration:none}.site-header{grid-template-columns:1fr auto 1fr;align-items:center;width:100%;height:92px;margin:auto;padding:0 clamp(48px,5vw,100px);display:grid}.brand{justify-self:start;align-items:center;width:clamp(100px,8vw,132px);display:flex}.brand-logo{width:100%;height:auto;display:block}.brand span{letter-spacing:0;margin-top:6px;font-family:DM Mono,monospace;font-size:clamp(6px,.5vw,8px)}nav{justify-self:center;gap:clamp(28px,3vw,48px);font-size:clamp(11px,1vw,15px);font-weight:500;display:flex}nav a{transition:opacity .2s}nav a:hover{opacity:.5}nav a.active{border-bottom:1px solid;padding-bottom:4px}.section-shell{max-width:1440px;margin:auto;padding-left:42px;padding-right:42px}.hero{justify-content:space-between;align-items:center;min-height:calc(100vh - 92px);padding:20px 9% 100px 10%;display:flex}.hero-copy{max-width:560px;transform:translateY(36px)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 27px;font-family:DM Mono,monospace;font-size:10px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-3.5px;margin-bottom:20px;font-size:clamp(54px,5.3vw,100px);font-weight:800;line-height:.98}h1 span,h2 span{color:#aa80dc}.page-section{min-height:calc(100vh - 140px)}.page-title{font-size:clamp(48px,6vw,78px)}main{animation:.45s both page-fade-in}@keyframes page-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){main{animation:none}}.hero-lede{color:#393737;max-width:390px;margin-bottom:25px;font-size:clamp(18px,1.35vw,24px);line-height:1.35}.button{cursor:pointer;border:0;border-radius:3px;align-items:center;gap:15px;padding:14px 20px;font:600 clamp(10px,1vw,14px) Manrope,sans-serif;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-dark{color:#fff;background:var(--ink)}.portrait-wrap{isolation:isolate;background:0 0;border:0;border-radius:50%;flex:0 0 clamp(360px,32vw,520px);width:clamp(360px,32vw,520px);height:clamp(360px,32vw,520px);margin-right:0;padding:clamp(28px,2.4vw,38px);position:relative}.portrait-wrap:before{content:"";z-index:-2;background:conic-gradient(#cda8f8,#f59be4,#7da8ff,#cda8f8,#f59be4,#7da8ff,#cda8f8);border-radius:50%;animation:5s linear infinite portrait-ring-spin;position:absolute;inset:0}.portrait-wrap:after{content:"";z-index:-1;background:var(--paper);border-radius:50%;position:absolute;inset:7px}.portrait{z-index:1;object-fit:cover;filter:saturate(.9);border-radius:50%;width:100%;height:100%;position:relative}@keyframes portrait-ring-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.portrait-wrap:before{animation:none}}.mobile-menu-button{display:none}.landing-hero{position:relative}.landing-hero h1{color:#08090d}.landing-hero h1 span{color:#0000;background:linear-gradient(100deg,#4f7cff 0%,#8f5bea 48%,#ff4b9b 100%);-webkit-background-clip:text;background-clip:text}.landing-hero .hero-lede{color:#151515}.scroll-cue{display:none}.about,.projects,.contact{border-top:1px solid var(--line);padding-top:75px;padding-bottom:95px}.about.page-section{max-width:1440px;padding-top:85px}.section-heading h2{letter-spacing:-1.5px;margin-bottom:0;font-size:27px}.about-content{grid-template-columns:minmax(265px,.75fr) 1.35fr;align-items:start;gap:clamp(38px,3vw,70px);max-width:1120px;margin:0 auto 125px;display:grid}.image-placeholder{background:#dedddd;border-radius:3px;min-height:195px}.about-image-frame{aspect-ratio:165/216;isolation:isolate;width:100%;padding:8px;position:relative}.about-image-frame:before{content:"";z-index:-2;background:linear-gradient(135deg,#7da8ff,#cda8f8 48%,#f59be4);border-radius:8px;position:absolute;inset:0;transform:rotate(3deg)}.about-image-frame:after{content:"";z-index:-1;background:var(--paper);border-radius:4px;position:absolute;inset:7px}.about-image{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.about-copy{max-width:600px;font-size:clamp(12px,1vw,16px);line-height:1.3}.about-copy h2{margin:3px 0 15px;font-size:clamp(20px,1.7vw,28px);line-height:1.1}.about-copy p+p{margin-top:12px}.about-copy .button{margin-top:22px}.skills-heading{text-align:center;margin-bottom:32px}.skills-heading h2{margin-bottom:7px;font-size:clamp(18px,1.7vw,28px)}.skills-heading p,.centered>p:last-child{color:var(--muted);font-size:clamp(12px,1vw,16px)}.skills-grid{grid-template-columns:repeat(3,minmax(160px,1fr));gap:clamp(20px,2.2vw,36px);max-width:1120px;margin:auto;display:grid}.skill-card{background:linear-gradient(#fffdfd,#fffdfd) 0 0/100% 100% padding-box padding-box,linear-gradient(135deg,#ff8ec7,#aa80dc,#65c7ff) 0 0/0% 100% border-box;border:2px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:clamp(145px,12vw,220px);transition:transform .3s,box-shadow .3s,background-size .45s;display:flex}.skill-card:hover{background-size:100% 100%,100% 100%;transform:translateY(-8px);box-shadow:0 16px 30px #966ebe2e}.skill-card img{object-fit:contain;width:clamp(48px,4vw,80px);height:clamp(48px,4vw,80px);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.skill-card:hover img{animation:.7s both skill-logo-bounce}.skill-card span{aspect-ratio:auto;background:0 0;border:0;min-height:0;font-size:clamp(13px,1.1vw,17px);font-weight:600;display:block}@keyframes skill-logo-bounce{0%{transform:scale(1)rotate(0)}45%{transform:scale(1.16)rotate(-5deg)}to{transform:scale(1.08)rotate(0)}}@media (prefers-reduced-motion:reduce){.skill-card,.skill-card img{transition:none;animation:none}.skill-card:hover{transform:none}}@media (width<=900px){.contact{grid-template-columns:1fr;gap:40px}.contact-content{max-width:600px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{min-height:180px}}.centered{text-align:center}.centered .eyebrow{margin-bottom:18px}.centered h2{margin-bottom:7px}.centered>p:last-child{margin-bottom:30px}.project-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.project-card{color:#fff;border-radius:3px;flex-direction:column;justify-content:space-between;min-height:190px;padding:18px;transition:transform .2s;display:flex}.project-card:hover{transform:translateY(-4px)}.project-card small{opacity:.75;font:9px DM Mono,monospace}.project-card h3{letter-spacing:-1px;margin:8px 0 0;font-size:19px}.project-card>span{align-self:flex-end;font-size:20px}.project-one{background:linear-gradient(135deg,#ad7c6c,#302524)}.project-two{background:linear-gradient(135deg,#657179,#1f2b30)}.project-three{background:linear-gradient(135deg,#dbc08b,#4f3f2a)}.project-four{background:linear-gradient(135deg,#9f91a9,#292735)}.projects-reference{max-width:1440px;padding-top:54px}.projects-reference .section-heading h1{letter-spacing:-1px;margin-bottom:7px;font-size:20px}.projects-reference .section-heading p{margin-bottom:30px;font-size:12px}.projects-reference .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 30px;max-width:980px;margin:0 auto}.projects-reference .project-card{aspect-ratio:1/1.3;color:#0000;background:#dedede;border-radius:4px;min-height:0;padding:0;transition:transform .25s,background .25s}.projects-reference .project-card:hover{background:#d4d4d4;transform:translateY(-5px)}.featured-projects{background:0 0;max-width:1440px;padding-top:54px}.featured-projects .section-heading{background:var(--paper);max-width:820px;margin:0 auto}.featured-projects .section-heading h1{letter-spacing:-1.5px;margin-bottom:8px;font-size:clamp(28px,3vw,48px)}.featured-projects .section-heading p{color:#747d90;margin-bottom:40px;font-size:clamp(14px,1.3vw,20px)}.project-toolbar{justify-content:space-between;align-items:center;gap:24px;max-width:1216px;margin:0 auto 28px;display:flex}.project-filters{flex-wrap:wrap;gap:14px;display:flex}.filter-button,.project-pagination button{color:#455066;cursor:pointer;background:#fff;border:1px solid #d3d9e3;border-radius:24px;padding:10px 20px;font:500 14px Manrope,sans-serif}.filter-button.active{color:#fff;background:#152238;border-color:#152238}.project-search{color:#8c99ad;background:#fff;border:1px solid #d3d9e3;border-radius:24px;flex-direction:row-reverse;align-items:center;gap:10px;width:320px;padding:0 16px;display:flex}.project-search input{border:0;outline:0;width:100%;padding:10px 0;font:14px Manrope,sans-serif}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;max-width:1216px;margin:0 auto;display:grid}.featured-card{background:#fffffff5;border:1px solid #b8c1d0;border-radius:8px;flex-direction:column;align-items:center;padding:22px 20px 28px;transition:transform .25s,box-shadow .25s;display:flex;box-shadow:0 12px 25px #26334b1f}.featured-card:hover{transform:translateY(-5px);box-shadow:0 18px 32px #26334b2e}.featured-card[hidden]{display:none}.featured-card h2{color:#253044;text-align:center;text-transform:uppercase;margin:0 0 14px;font-size:clamp(17px,1.6vw,27px)}.project-type{color:#fff;border-radius:22px;margin-bottom:20px;padding:9px 22px;font-size:13px;font-weight:700}.web-type,.arduino-type{background:#202d42}.project-image{aspect-ratio:1.8;background-position:50%;background-size:cover;border-radius:12px;width:100%;position:relative;overflow:hidden}.project-image:after{content:"";background:#1723301f;position:absolute;inset:0}.project-image span{z-index:1;color:#fff;font-size:15px;font-weight:600;position:absolute;bottom:18px;left:20px}.project-pagination{color:#778198;justify-content:center;align-items:center;gap:18px;margin-top:55px;font-size:14px;display:flex}.project-pagination button:disabled{opacity:.55;cursor:default}@media (width<=900px){.featured-projects{background-position:-4px 120px;padding-top:42px}.project-toolbar{flex-direction:column;align-items:stretch}.project-filters{justify-content:center}.project-search{width:100%}.featured-grid{grid-template-columns:1fr;gap:26px;max-width:620px}}.project-detail{max-width:1440px;margin:auto;padding:28px 42px 90px}.project-back{color:#657087;margin-bottom:22px;font-size:14px;display:inline-block}.project-detail-grid{grid-template-columns:1.25fr 1fr;align-items:start;gap:34px;display:grid}.detail-gallery{background:#dfe5e7;border-radius:4px;overflow:hidden}.detail-gallery img{aspect-ratio:1.2;object-fit:cover;width:100%;display:block}.detail-copy{padding-top:2px}.detail-copy h1{border-left:3px solid var(--ink);letter-spacing:-1.5px;text-transform:uppercase;max-width:600px;margin:0;padding-left:18px;font-size:clamp(28px,3vw,48px);line-height:1.04}.detail-date{color:#7a8495;margin:14px 0 28px 20px;font-size:16px}.detail-copy article{color:#344056;background:#f0f1f3;border-radius:8px;padding:20px 22px;font-size:15px;line-height:1.5}.detail-copy article h2{color:#111820;margin-bottom:12px;font-size:20px}.detail-copy article p+p{margin-top:18px}.detail-tools{max-width:900px;margin:38px auto 0}.detail-tools h2{font-size:18px}.detail-tools>div{grid-template-columns:repeat(3,1fr);gap:18px 40px;display:grid}.detail-tools span{color:#26344a;border-bottom:4px solid #7d4cff;padding:12px 0;font-weight:700}@media (width<=900px){.project-detail{padding:22px 20px 70px}.project-detail-grid{grid-template-columns:1fr;gap:28px}.detail-copy h1{font-size:clamp(28px,8vw,48px)}.detail-copy article{font-size:16px}.detail-tools>div{grid-template-columns:repeat(2,1fr);gap:12px 24px}}.project-view-button{color:#fff;background:#152238;border-radius:4px;align-items:center;gap:14px;margin-top:24px;padding:12px 20px;font-size:14px;font-weight:700;transition:transform .2s,background .2s;display:inline-flex}.project-view-button:hover{background:#263b5e;transform:translateY(-2px)}.contact{grid-template-columns:1fr 1.2fr;gap:80px;padding-bottom:110px;display:grid}.contact h2{letter-spacing:-4px;font-size:clamp(41px,6vw,72px);line-height:.95}.contact-content{max-width:450px}.contact-content>p{max-width:350px;margin-bottom:26px;font-size:13px;line-height:1.5}.contact form{gap:15px;display:grid}.contact label{text-transform:uppercase;color:var(--muted);gap:7px;font:9px DM Mono,monospace;display:grid}.contact input,.contact textarea{border:1px solid var(--line);color:var(--ink);resize:vertical;background:#fff;border-radius:2px;padding:11px;font:12px Manrope,sans-serif}.contact input:focus,.contact textarea:focus{outline:1px solid var(--lilac)}.form-status{color:#6f4993;margin:-4px 0 0;font-size:11px}footer{border-top:1px solid var(--line);max-width:1210px;color:var(--muted);justify-content:space-between;margin:auto;padding:22px 42px;font:9px DM Mono,monospace;display:flex}@media (width<=700px){.site-header{z-index:10;position:relative}.mobile-menu-button{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:space-between;width:32px;height:32px;margin-left:auto;padding:7px 5px;display:flex}.mobile-menu-button span{background:var(--ink);width:100%;height:2px;transition:transform .3s,opacity .2s;display:block}.mobile-menu-button.menu-active span:first-child{transform:translateY(8px)rotate(45deg)}.mobile-menu-button.menu-active span:nth-child(2){opacity:0}.mobile-menu-button.menu-active span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.site-header nav{z-index:20;border:1px solid var(--line);visibility:hidden;opacity:0;pointer-events:none;background:#fffafafa;border-radius:14px;flex-direction:row;justify-content:center;align-items:center;gap:clamp(16px,6vw,34px);width:calc(100vw - 36px);height:auto;max-height:90px;padding:22px 18px;font-size:14px;transition:opacity .25s,transform .3s,visibility .3s;display:flex;position:fixed;top:68px;right:18px;transform:translateY(-12px)scale(.96);box-shadow:0 18px 45px #19121e2e}.site-header nav.menu-open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.site-header nav a{border:0;padding:0}.landing-hero{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:36px;min-height:calc(100svh - 70px);padding:84px 22px 82px;overflow:hidden}.landing-hero:after{display:none}.landing-hero .hero-copy{order:1;max-width:560px;transform:none}.landing-hero h1{letter-spacing:-2.5px;margin-bottom:16px;font-size:clamp(42px,12vw,66px);line-height:1.05}.landing-hero h1 span{color:#0000;background:linear-gradient(100deg,#4f7cff,#c64ee9,#ff4b9b);-webkit-background-clip:text;background-clip:text}.landing-hero .hero-lede{max-width:390px;margin:0 auto 25px;font-size:16px;line-height:1.4}.landing-hero .portrait-wrap{flex-basis:250px;order:2;width:250px;height:250px;margin:0;padding:15px}.scroll-cue{width:48px;height:48px;color:var(--ink);background:#fff;border-radius:50%;order:3;place-items:center;font-size:25px;animation:1.8s ease-in-out infinite scroll-cue-bob;display:grid;box-shadow:0 8px 20px #1e1e1e1f}.scroll-cue:hover{transform:translateY(-3px)}}@keyframes scroll-cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=700px){.site-header{gap:16px;height:70px;padding:0 22px;display:flex}.brand{flex-shrink:0;width:88px}.section-shell{padding-left:22px;padding-right:22px}.hero{flex-direction:column;align-items:flex-start;gap:50px;min-height:auto;padding:65px 22px 75px}.hero-copy{order:2;transform:none}.hero-lede{font-size:16px}.portrait-wrap{flex-basis:250px;order:1;align-self:center;width:250px;height:250px;margin-right:0;padding:15px}nav{white-space:nowrap;gap:12px;font-size:8px}.about,.projects,.contact{padding-top:55px;padding-bottom:70px}.about-content,.contact{grid-template-columns:1fr;gap:28px}.about-image{max-width:none;min-height:180px}.skills-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,1fr);gap:10px}.project-card{min-height:160px}.contact{gap:35px}footer{padding:20px 22px}}@media (width>=560px) and (width<=700px){.about.page-section{padding:30px 75px 70px}.about-content{grid-template-columns:165px 1fr;gap:24px;margin-bottom:88px}.about-copy{font-size:10px;line-height:1.18}.about-copy h2{margin:3px 0 10px;font-size:16px}.about-copy .button{margin-top:18px;padding:9px 14px;font-size:9px}.skills-heading{margin-bottom:24px}.skills-heading h2{font-size:16px}.skills-heading p{font-size:10px}.skills-grid{grid-template-columns:repeat(3,1fr);gap:12px}.skill-card{gap:8px;min-height:100px}.skill-card img{width:32px;height:32px}.skill-card span{font-size:10px}}@media (width<=480px){.site-header{align-items:center;height:auto;min-height:70px;padding:16px 18px}.brand{width:78px}.site-header nav{gap:9px;margin-left:auto;font-size:8px}.site-header nav a.active{padding-bottom:2px}.hero{gap:42px;padding:52px 18px 65px}.hero h1{letter-spacing:-2.5px;font-size:50px}.hero-lede{max-width:290px;font-size:15px}.portrait-wrap{flex-basis:min(250px,78vw);width:min(250px,78vw);height:min(250px,78vw);padding:14px}.about.page-section,.projects.page-section,.contact.page-section{padding-left:18px;padding-right:18px}.about-content{margin-bottom:80px}.project-grid{grid-template-columns:1fr}.project-card{min-height:190px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.skill-card{min-height:125px}.contact h1{font-size:48px}.contact-content{width:100%}footer{flex-direction:column;gap:8px;padding:20px 18px}}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#app{width:100%;max-width:none;text-align:initial;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;min-height:100svh;margin:0 auto;display:flex}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}.featured-projects .section-heading{background:0 0}.featured-projects .section-heading h1{letter-spacing:-3.5px;font-size:clamp(42px,5.3vw,78px);line-height:.98}.featured-projects .section-heading p{color:var(--muted)}.project-filters{gap:10px}.filter-button,.project-pagination button{border-color:var(--line);color:var(--ink);background:0 0;border-radius:3px;font-weight:600;transition:transform .2s,background .2s,color .2s}.filter-button:hover{transform:translateY(-2px)}.filter-button.active{background:var(--ink);border-color:var(--ink)}.project-search{border-color:var(--line);color:var(--muted);background:0 0;border-radius:3px}.project-search input{background:0 0}.featured-grid{gap:40px}.featured-card{border-color:var(--line);background:#ffffffb8;border-radius:3px;box-shadow:0 12px 25px #11111114}.featured-card:hover{box-shadow:0 18px 32px #11111121}.featured-card h2{color:var(--ink);letter-spacing:-1px;text-transform:none}.project-type,.web-type,.arduino-type{background:var(--ink);border-radius:3px}.project-pagination{color:var(--muted);font-family:DM Mono,monospace}@media (width<=700px){.featured-projects .section-heading h1{letter-spacing:-2.5px;font-size:clamp(36px,11vw,52px)}}.project-placeholder-image{background:linear-gradient(135deg,#eee8f8,#f8dce9)}.scholarship-image{background-image:url(/Images/imused.png)}.parking-image{background-image:url(/Images/smartparking.jpg)}.team-portfolio-image{background:#050505 url(/Images/teamportfolio.png) 50%/cover no-repeat}.mobile-project-image{background-image:url(/Images/mobile.png?v=2)}.first-graphic-image{background-image:url(/Images/FirstGraphic.png)}.second-graphic-image{background-image:url(/Images/SecondGraphic.png)}.third-graphic-image{background-image:url(/Images/ThirdGraphic.png)}.fourth-graphic-image{background-image:url(/Images/FourthGraphic.png)}.graphic-project-card .project-image{border:1px solid var(--line);pointer-events:none}.graphic-detail-image{object-fit:contain;width:min(100%,520px);height:auto;max-height:75vh;box-shadow:none;background:0 0;border:0;border-radius:4px;place-self:start center;display:block}.graphic-detail-frame,.graphic-detail-gallery{box-shadow:none;background:0 0;border:0;padding:0}.graphic-detail-frame:before,.graphic-detail-frame:after,.graphic-detail-gallery:before,.graphic-detail-gallery:after{display:none}.graphic-detail-frame img{object-fit:contain;width:min(100%,520px);height:auto;max-height:75vh;box-shadow:none;background:0 0;border:0;display:block}.project-placeholder-card .project-image:after{background:0 0}.project-placeholder-card .project-image span{color:var(--ink)}.detail-tools-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;display:grid}.detail-tools-grid .detail-tool-card{min-height:150px;padding:20px 14px}.detail-tools-grid .detail-tool-card span{color:var(--ink);border:0;padding:0;font-weight:600}@media (width<=900px){.detail-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact .page-title{letter-spacing:-3.5px;font-size:clamp(54px,5.3vw,100px);font-weight:800;line-height:.98}.contact .page-title span{color:#0000;background:linear-gradient(100deg,#4f7cff 0%,#8f5bea 48%,#ff4b9b 100%);-webkit-background-clip:text;background-clip:text}.contact input:focus,.contact textarea:focus{border-color:#aa80dc;outline:0;box-shadow:0 0 0 2px #aa80dc29}.form-status{color:#8f5bea}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
