@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/caveat-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/caveat-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Kalam;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/kalam-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kalam;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/kalam-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Kalam;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/kalam-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kalam;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/kalam-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--spring-paper:linear(0, .0217, .0775, .1556, .2466, .3432, .4398, .5325, .6185, .6962, .7647, .8238, .8736, .9147, .9479, .9739, .9938, 1.0083, 1.0185, 1.0251, 1.0288, 1.0303, 1.0301, 1.0287, 1.0266, 1.0239, 1.021, 1.0181, 1.0152, 1.0125, 1.0101, 1.0079, 1.006, 1.0044, 1.003, 1);--spring-paper-ms:.279s;--spring-snap:linear(0, .0547, .1831, .3433, .5065, .6551, .7799, .8776, .9492, .9976, 1.0272, 1.0423, 1.0472, 1.0454, 1.0398, 1.0323, 1.0246, 1.0174, 1.0113, 1.0064, 1.0029, 1.0004, .9989, .9981, .9978, .9978, 1);--spring-snap-ms:.21s;--spring-pop:linear(0, .0428, .1523, .302, .4692, .6358, .7882, .9178, 1.0201, 1.0938, 1.1406, 1.1636, 1.1672, 1.1563, 1.1355, 1.1092, 1.0808, 1.0534, 1.0288, 1.0083, .9925, .9815, .9749, .9721, .9722, .9746, .9785, .983, .9878, .9923, .9962, .9995, 1.0019, 1.0035, 1.0044, 1.0047, 1.0046, 1.0041, 1.0034, 1.0026, 1);--spring-pop-ms:.321s;--spring-wobble:linear(0, .0257, .0955, .1985, .3239, .4615, .6024, .7391, .8654, .9769, 1.0705, 1.1446, 1.1988, 1.2338, 1.2512, 1.2532, 1.2421, 1.2209, 1.1923, 1.1591, 1.1235, 1.0879, 1.054, 1.0232, .9965, .9745, .9576, .9456, .9384, .9355, .9364, .9402, .9464, .9542, .9629, .972, .9809, .9893, .9968, 1.0031, 1.0082, 1.0121, 1.0146, 1.016, 1.0164, 1.0159, 1.0147, 1.0129, 1.0108, 1.0086, 1.0063, 1.004, 1.002, 1.0002, .9987, .9975, .9967, .9961, .9959, .9959, .9961, .9964, .9969, .9975, 1);--spring-wobble-ms:.571s;--spring-settle:linear(0, .0116, .0417, .0845, .1358, .1919, .2504, .3093, .3671, .4231, .4763, .5264, .5732, .6165, .6563, .6928, .726, .7561, .7833, .8078, .8298, .8495, .8671, .8828, .8967, .9091, .9201, .9298, .9384, .946, .9527, .9586, .9638, .9684, .9724, .9759, .9789, .9816, .984, .9861, .9879, .9894, .9908, .992, .9931, .994, .9948, .9955, .9961, .9966, .997, .9974, .9978, 1);--spring-settle-ms:.425s}@supports not (transition-timing-function:linear(0, 1)){:root{--spring-paper:cubic-bezier(.2, .8, .2, 1);--spring-snap:cubic-bezier(.2, .8, .2, 1);--spring-pop:cubic-bezier(.2, .8, .2, 1);--spring-wobble:cubic-bezier(.2, .8, .2, 1);--spring-settle:cubic-bezier(.2, .8, .2, 1)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#faf8f5;--card:#fff;--card-soft:#fdfdfd;--wash:#00000005;--input-bg:#ffffffb3;--ink:#1a1a1a;--ink-light:#4a4a4a;--marker-red:#d32f2f;--marker-blue:#0288d1;--marker-green:#2e7d32;--marker-orange:#ef6c00;--link:#01579b;--on-fill:#fff;--tint-red:#d32f2f14;--tint-blue:#0288d11f;--tint-green:#2e7d3214;--tint-orange:#ef6c0014;--focus-ring:#0288d140;--grid-line:#0000000f;--hairline:#0000001a;--dash:#0000002e;--shadow-soft:#0000001a;--shadow-lift:#0000001f;--shadow-hard:#0003;--shadow-hard-lift:#0000004d;--room-scrim:#141210e0;--room-paper:#faf8f5;--room-ink:#1a1a1a;--room-accent:#d32f2f}@supports (color:light-dark(white, black)){:root{color-scheme:light dark;--paper:light-dark(#faf8f5,#14120f);--card:light-dark(#fff,#1e1b17);--card-soft:light-dark(#fdfdfd,#17150f);--wash:light-dark(#00000005,#ffffff08);--input-bg:light-dark(#ffffffb3,#ffffff0d);--ink:light-dark(#1a1a1a,#f2ede4);--ink-light:light-dark(#4a4a4a,#b8b0a4);--marker-red:light-dark(#d32f2f,#ff8a80);--marker-blue:light-dark(#0288d1,#56c8f5);--marker-green:light-dark(#2e7d32,#6bc973);--marker-orange:light-dark(#ef6c00,#ffa14a);--link:light-dark(#01579b,#56c8f5);--on-fill:light-dark(#fff,#14120f);--tint-red:light-dark(#d32f2f14,#ff8a8024);--tint-blue:light-dark(#0288d11f,#56c8f524);--tint-green:light-dark(#2e7d3214,#6bc97324);--tint-orange:light-dark(#ef6c0014,#ffa14a24);--focus-ring:light-dark(#0288d140,#56c8f552);--grid-line:light-dark(#0000000f,#ffffff0d);--hairline:light-dark(#0000001a,#ffffff1f);--dash:light-dark(#0000002e,#ffffff2e);--shadow-soft:light-dark(#0000001a,#00000080);--shadow-lift:light-dark(#0000001f,#0009);--shadow-hard:light-dark(#0003,#0000008c);--shadow-hard-lift:light-dark(#0000004d,#000000a6)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}}*,:before,:after{box-sizing:border-box}body,html{background-color:var(--paper);color:var(--ink);margin:0;padding:0}.sketch-body{background-color:var(--paper);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);min-height:100vh;color:var(--ink);background-size:30px 30px;font-family:Kalam,cursive;overflow-x:hidden}.sketch-container{width:100%;max-width:1100px;margin:0 auto;padding:2rem}.sketch-box{background:var(--card);border:3px solid var(--ink);box-shadow:4px 4px 0px var(--shadow-soft);transition:transform var(--spring-paper-ms,.2s) var(--spring-paper,ease);border-radius:255px 15px 225px/15px 225px 15px 255px;padding:2rem}@keyframes sketch-rise{0%{opacity:0;translate:0 18px}to{opacity:1;translate:none}}@keyframes sketch-pop{0%{opacity:0;scale:.86}to{opacity:1;scale:1}}@keyframes sketch-draw{to{stroke-dashoffset:0}}@keyframes sketch-slide{0%{translate:0 14px}to{translate:none}}.sketch-enter{animation:sketch-rise var(--spring-settle-ms,.55s) var(--spring-settle,cubic-bezier(.2, .8, .2, 1)) both}.sketch-enter--slide{animation-name:sketch-slide}.sketch-enter--2{animation-delay:80ms}.sketch-enter--3{animation-delay:.16s}.sketch-enter--4{animation-delay:.24s}.sketch-enter--5{animation-delay:.32s}.sketch-enter--6{animation-delay:.4s}.js-reveal .sketch-reveal{opacity:0}.js-reveal .sketch-reveal.is-shown{animation:sketch-rise var(--spring-settle-ms,.6s) var(--spring-settle,cubic-bezier(.2, .8, .2, 1)) var(--reveal-delay,0s) both}.js-reveal .sketch-reveal--pop.is-shown{animation-name:sketch-pop;animation-duration:var(--spring-pop-ms,.45s);animation-timing-function:var(--spring-pop,cubic-bezier(.2, .8, .2, 1))}.sketch-underline-pass{stroke-dasharray:100;stroke-dashoffset:0}.js-reveal .sketch-section-title .sketch-underline-pass{stroke-dashoffset:100px}.js-reveal .sketch-section-title.is-shown .sketch-underline-pass{animation:.7s ease-out .15s forwards sketch-draw}.js-reveal .sketch-section-title.is-shown .sketch-underline-pass--second{animation-duration:.5s;animation-delay:.5s}.sketch-page-title .sketch-underline-pass{stroke-dashoffset:100px;animation:.75s ease-out .3s forwards sketch-draw}.sketch-page-title .sketch-underline-pass--second{animation-duration:.55s;animation-delay:.62s}.sketch-progress{z-index:150;pointer-events:none;height:4px;position:fixed;top:0;left:0;right:0}.sketch-progress-bar{background:var(--marker-red);transform-origin:0;will-change:transform;border-radius:0 6px 6px 0;height:100%;display:block}html{scroll-behavior:smooth}.sketch-section[id]{scroll-margin-top:2rem}.sketch-nav a:focus-visible,.sketch-logo:focus-visible,.sketch-btn:focus-visible,.sketch-socials a:focus-visible,.sketch-cert-img-btn:focus-visible,.sketch-cert-verify:focus-visible,.sketch-contact-link:focus-visible,.sketch-lightbox-close:focus-visible,.sketch-lightbox-nav:focus-visible,.sketch-skip-link:focus-visible,.sketch-theme-btn:focus-visible,.sketch-menu-btn:focus-visible,.sketch-skills-shake button:focus-visible,.sketch-input:focus-visible{outline:3px solid var(--marker-blue);outline-offset:3px}.sketch-skip-link{z-index:100;background:var(--ink);color:var(--paper);transition:transform var(--spring-snap-ms,.15s) var(--spring-snap,ease);border-radius:8px;padding:.7rem 1.2rem;font-family:Kalam,cursive;font-size:1.2rem;text-decoration:none;position:absolute;top:.75rem;left:.75rem;transform:translateY(-150%)}.sketch-skip-link:focus{transform:translateY(0)}.sketch-header{z-index:80;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:4rem;display:flex;position:relative}.sketch-logo{color:var(--ink);transition:rotate var(--spring-wobble-ms,.25s) var(--spring-wobble,ease), color .2s;font-family:Caveat,cursive;font-size:3.5rem;font-weight:700;text-decoration:none;rotate:-3deg}.sketch-logo:hover{color:var(--marker-red);rotate:1deg}.sketch-nav{flex-wrap:wrap;align-items:center;gap:2rem;display:flex}.sketch-nav a{color:var(--ink-light);font-size:1.6rem;text-decoration:none;position:relative}.sketch-nav a:hover{color:var(--marker-red)}.sketch-nav a:after{content:"";background-color:var(--marker-red);transform-origin:0;border-radius:255px 15px 225px/15px 225px 15px 255px;width:100%;height:3px;transition:transform .2s;position:absolute;bottom:-2px;left:0;transform:rotate(-2deg)scaleX(0)}.sketch-nav a:hover:after,.sketch-nav .sketch-nav-active:after{transform:rotate(-2deg)scaleX(1)}.sketch-nav-active{font-size:1.6rem;color:var(--marker-red)!important}.sketch-header-actions{align-items:center;gap:1.5rem;display:flex}.sketch-theme-btn,.sketch-menu-btn{border:2px solid var(--ink);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background .2s, color .2s, border-radius .25s, rotate var(--spring-snap-ms,.25s) var(--spring-snap,ease);background:0 0;border-radius:255px 15px 225px/15px 225px 15px 255px;justify-content:center;align-items:center;padding:0;display:inline-flex}.sketch-theme-btn:hover,.sketch-menu-btn:hover{background:var(--ink);color:var(--paper);border-radius:15px 225px 15px 255px/255px 15px 225px}.sketch-theme-btn:hover{rotate:-12deg}.sketch-menu-btn{display:none}.sketch-hero{flex-wrap:wrap;align-items:center;gap:4rem;margin-bottom:6rem;display:flex}.sketch-hero-text{flex:1;min-width:280px}.sketch-greeting{color:var(--marker-blue);margin-bottom:-.5rem;font-size:2.5rem;display:inline-block;transform:rotate(-2deg)}.sketch-title{color:var(--ink);margin:0;font-family:Caveat,cursive;font-size:7rem;line-height:1}.sketch-subtitle{color:var(--ink-light);margin:1rem 0 2rem;font-size:2.2rem}.sketch-description{margin-bottom:2rem;font-size:1.6rem;line-height:1.5}.sketch-socials{gap:1.5rem;margin-bottom:2rem;display:flex}.sketch-socials a{color:var(--ink);transition:transform var(--spring-paper-ms,.2s) var(--spring-paper,ease), color .2s}.sketch-socials a:hover{color:var(--marker-blue);transform:translateY(-3px)}.sketch-btn{border:3px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0px var(--shadow-hard);transition:background .2s, color .2s, border-radius .25s, transform var(--spring-snap-ms,.2s) var(--spring-snap,ease), box-shadow var(--spring-snap-ms,.2s) var(--spring-snap,ease);background:0 0;border-radius:255px 15px 225px/15px 225px 15px 255px;align-items:center;gap:.8rem;padding:.8rem 2rem;font-family:Kalam,cursive;font-size:1.6rem;text-decoration:none;display:inline-flex}.sketch-btn:hover{background:var(--ink);color:var(--paper);box-shadow:5px 5px 0px var(--shadow-hard-lift);border-radius:15px 225px 15px 255px/255px 15px 225px;transform:translateY(-2px)}.sketch-btn svg{transition:translate var(--spring-snap-ms,.2s) var(--spring-snap,ease)}.sketch-btn:hover svg{translate:3px}.sketch-detail-back:hover svg{translate:-3px}.sketch-hero-visual{flex:.8;min-width:280px;position:relative}.sketch-avatar-frame{border:4px solid var(--ink);background:var(--card);box-shadow:10px 10px 0px var(--shadow-soft);border-radius:255px 15px 225px/15px 225px 15px 255px;padding:10px;animation:7s ease-in-out infinite sketch-drift;position:relative;overflow:hidden;transform:rotate(3deg)}@keyframes sketch-drift{50%{translate:0 -10px}}.sketch-avatar-frame:hover{border-radius:15px 225px 15px 255px/255px 15px 225px}.sketch-avatar{opacity:1;border-radius:15px 225px 15px 255px/255px 15px 225px;width:100%;height:auto;display:block}.sketch-arrow-annotation{color:var(--marker-red);font-family:Caveat,cursive;font-size:2.5rem;animation:2.6s ease-in-out infinite sketch-bob;position:absolute;bottom:-40px;right:20px;transform:rotate(-10deg)}@keyframes sketch-bob{50%{translate:0 7px}}.sketch-section{margin-top:8rem}.sketch-section-title{text-align:center;margin-bottom:3rem;font-family:Caveat,cursive;font-size:4rem}.sketch-title-inner{display:inline-block;position:relative}.sketch-underline{pointer-events:none;width:106%;height:.26em;position:absolute;bottom:-.14em;left:-3%;overflow:visible}.sketch-underline-pass{fill:none;stroke:var(--marker-blue);stroke-width:4px;stroke-linecap:round;vector-effect:non-scaling-stroke}.sketch-underline-pass--second{stroke-width:2.5px;opacity:.5}.sketch-about-grid{flex-wrap:wrap;align-items:flex-start;gap:4rem;display:flex}.sketch-about-bio{flex:1.2;font-size:1.5rem;line-height:1.6}.sketch-about-bio p{margin:0 0 1rem}.sketch-fast-facts{flex:.8}.sketch-facts-title{color:var(--marker-blue);margin:0 0 1rem;font-size:2rem}.sketch-fact{margin-bottom:.8rem;font-size:1.3rem;line-height:1.4}.sketch-skills-grid{flex-wrap:wrap;justify-content:center;gap:1.2rem;display:flex}.sketch-pill{border:2px solid var(--ink);transition:transform var(--spring-paper-ms,.2s) var(--spring-paper,ease), border-radius .25s;cursor:default;border-radius:255px 15px 225px/15px 225px 15px 255px;padding:.7rem 1.4rem;font-family:Kalam,cursive;font-size:1.3rem;font-weight:700;display:inline-block}.sketch-pill:hover{border-radius:15px 225px 15px 255px/255px 15px 225px;transform:rotate(-2deg)scale(1.05)}.sketch-pill--blue{background:var(--tint-blue);color:var(--marker-blue);border-color:var(--marker-blue)}.sketch-pill--red{background:var(--tint-red);color:var(--marker-red);border-color:var(--marker-red)}.sketch-pill--green{background:var(--tint-green);color:var(--marker-green);border-color:var(--marker-green)}.sketch-pill--orange{background:var(--tint-orange);color:var(--marker-orange);border-color:var(--marker-orange)}.sketch-skills-grid.is-physical{position:relative}.sketch-skills-grid.is-physical .sketch-pill{cursor:grab;-webkit-user-select:none;user-select:none;will-change:translate, rotate}.sketch-skills-grid.is-lifted .sketch-pill{white-space:nowrap;margin:0;position:absolute}.sketch-skills-grid.is-physical .sketch-pill:active{cursor:grabbing}.sketch-skills-grid.is-physical .sketch-pill:hover{transform:scale(1.05)}.sketch-skills-shake{visibility:hidden;justify-content:center;margin-top:1.6rem;display:flex}.sketch-skills-shake.is-live{visibility:visible}.sketch-skills-shake button{border:2px dashed var(--ink-light);color:var(--ink-light);cursor:pointer;transition:background .2s, color .2s, border-color .2s, border-radius .25s, rotate var(--spring-wobble-ms,.4s) var(--spring-wobble,ease);background:0 0;border-radius:255px 15px 225px/15px 225px 15px 255px;padding:.4rem 1.1rem;font-family:Kalam,cursive;font-size:1rem}.sketch-skills-shake button:hover{border-style:solid;border-color:var(--ink);color:var(--ink);border-radius:15px 225px 15px 255px/255px 15px 225px;rotate:-2deg}.sketch-grid{grid-template-columns:repeat(2,1fr);gap:3rem;display:grid}.sketch-project-card{transition:border-radius .25s, transform var(--spring-paper-ms,.2s) var(--spring-paper,ease), box-shadow var(--spring-paper-ms,.2s) var(--spring-paper,ease);flex-direction:column;padding:1.2rem;display:flex}.sketch-project-card:hover{box-shadow:8px 8px 0px var(--shadow-lift);border-radius:15px 225px 15px 255px/255px 15px 225px;transform:translateY(-4px)rotate(-.5deg)}.sketch-project-img-wrap{border:2px solid var(--ink);background:var(--card);border-radius:8px;margin-bottom:1rem;padding:.3rem;overflow:hidden}.sketch-project-img{width:100%;height:auto;transition:transform var(--spring-paper-ms,.3s) var(--spring-paper,ease);border-radius:4px;display:block}.sketch-project-card:hover .sketch-project-img{transform:scale(1.03)}.sketch-project-title{color:var(--ink);margin:0 0 .5rem;font-size:2rem}.sketch-project-tech{color:var(--marker-red);margin:0 0 1rem;font-size:1.2rem}.sketch-project-desc{flex:1;margin-bottom:1.5rem;font-size:1.3rem;line-height:1.4}.sketch-certs-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:2.5rem;padding:1rem 0 2rem;display:grid}.sketch-cert-card{background:var(--card);border:2px solid var(--ink);height:100%;box-shadow:4px 4px 0px var(--shadow-soft);color:inherit;transition:border-radius .3s, transform var(--spring-paper-ms,.25s) var(--spring-paper,ease), box-shadow var(--spring-paper-ms,.25s) var(--spring-paper,ease);border-radius:255px 15px 225px/15px 225px 15px 255px;flex-direction:column;display:flex;position:relative;overflow:hidden}.sketch-cert-card:hover{box-shadow:8px 8px 0px var(--shadow-lift);border-radius:15px 225px 15px 255px/255px 15px 225px;transform:rotate(-1.5deg)translateY(-4px)}.sketch-cert-pin{background:var(--marker-red);border:2px solid var(--ink);width:20px;height:20px;box-shadow:0 2px 4px var(--shadow-hard);z-index:5;transition:scale var(--spring-snap-ms,.25s) var(--spring-snap,ease), background .25s;border-radius:50%;position:absolute;top:12px;left:50%;transform:translate(-50%)}.sketch-cert-card:hover .sketch-cert-pin{background:var(--marker-orange);scale:1.2}.sketch-cert-img-btn{background:var(--card);width:100%;font:inherit;color:inherit;cursor:zoom-in;text-align:center;border:0;flex:1;padding:2rem 1.5rem 1rem;display:block;position:relative}.sketch-cert-zoom{color:var(--ink-light);opacity:0;justify-content:center;align-items:center;gap:.4rem;margin-top:.6rem;font-family:Kalam,cursive;font-size:1.1rem;transition:opacity .2s;display:inline-flex}.sketch-cert-img-btn:hover .sketch-cert-zoom,.sketch-cert-img-btn:focus-visible .sketch-cert-zoom{opacity:1}.sketch-cert-img{object-fit:contain;border:1px solid var(--hairline);background:var(--card-soft);border-radius:4px;width:100%;height:220px;display:block}.sketch-img-placeholder{border:2px dashed var(--dash);background:var(--wash);width:100%;height:220px;color:var(--ink-light);text-align:center;border-radius:4px;justify-content:center;align-items:center;padding:1rem;font-size:1.3rem;display:flex}.sketch-cert-info{background:var(--wash);border-top:1px dashed var(--dash);justify-content:space-between;align-items:center;gap:.8rem;margin-top:auto;padding:1rem 1.5rem;display:flex}.sketch-cert-header{align-items:center;gap:.8rem;display:flex}.sketch-cert-star{flex-shrink:0}.sketch-cert-star--blue{color:var(--marker-blue)}.sketch-cert-star--red{color:var(--marker-red)}.sketch-cert-star--green{color:var(--marker-green)}.sketch-cert-star--orange{color:var(--marker-orange)}.sketch-cert-title{color:var(--ink);margin:0;font-size:1.4rem;line-height:1.2}.sketch-cert-issuer{color:var(--ink-light);margin:.2rem 0 0;font-size:1.1rem}.sketch-cert-verify{color:var(--link);border:2px solid var(--link);border-radius:255px 15px 225px/15px 225px 15px 255px;flex-shrink:0;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:1.15rem;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.sketch-cert-verify:hover{background:var(--link);color:var(--on-fill)}.sketch-page-hero{text-align:center;margin-bottom:4rem}.sketch-page-title{color:var(--ink);margin:0 0 1rem;font-family:Caveat,cursive;font-size:5rem}.sketch-page-subtitle{color:var(--ink-light);margin:0;font-size:1.6rem}.sketch-page-hero-actions{margin-top:2rem}.sketch-detail-back{margin-bottom:3rem}.sketch-detail-card{padding:2.5rem}.sketch-detail-title{color:var(--ink);margin:0 0 1rem;font-family:Caveat,cursive;font-size:clamp(3rem,8vw,5rem);line-height:1}.sketch-detail-meta{color:var(--ink-light);margin:0 0 1.2rem;font-size:1.3rem}.sketch-stack-list{flex-wrap:wrap;gap:.6rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.sketch-stack-item{color:var(--link);background:var(--tint-blue);border:2px solid var(--link);border-radius:255px 15px 225px/15px 225px 15px 255px;padding:.3rem .9rem;font-size:1.15rem}.sketch-case-block{margin:0 0 2.5rem}.sketch-case-title{color:var(--ink);margin:0 0 .6rem;font-family:Caveat,cursive;font-size:2.4rem}.sketch-case-body{margin:0;font-size:1.35rem;line-height:1.7}.sketch-highlights{margin:0;padding:0;font-size:1.35rem;line-height:1.6;list-style:none}.sketch-highlights li{margin-bottom:.7rem;padding-left:1.8rem;position:relative}.sketch-highlights li:before{content:"—";color:var(--marker-red);position:absolute;left:0}.sketch-detail-img-wrap{max-width:700px;margin:0 auto 3rem;padding:1rem}.sketch-detail-desc{margin:0 0 3rem;font-size:1.4rem;line-height:1.8}.sketch-detail-cta{padding:1rem 2rem;font-size:1.4rem}.sketch-contact-card{max-width:600px;margin:0 auto;padding:3rem}.sketch-contact-heading{color:var(--ink);margin:0 0 1rem;font-size:2rem}.sketch-contact-sub{color:var(--ink-light);margin-bottom:2rem;font-size:1.3rem}.sketch-contact-form{flex-direction:column;gap:1.5rem;display:flex}.sketch-input{border:2px solid var(--ink);background:var(--input-bg);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:1rem;font-family:Kalam,cursive;font-size:1.3rem;transition:box-shadow .2s}.sketch-input:focus{box-shadow:0 0 0 3px var(--focus-ring)}.sketch-textarea{resize:vertical;min-height:120px}.sketch-submit-btn{justify-content:center;width:100%;margin-top:.5rem}.sketch-input:disabled,.sketch-btn:disabled{opacity:.6;cursor:not-allowed}.sketch-btn:disabled:hover{color:var(--ink);box-shadow:3px 3px 0px var(--shadow-hard);background:0 0;transform:none}.sketch-contact-link{color:var(--link);text-underline-offset:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.sketch-contact-link:hover{color:var(--marker-red)}.sketch-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sketch-form-status:empty{display:none}.sketch-form-msg{border:2px solid;border-radius:255px 15px 225px/15px 225px 15px 255px;align-items:center;gap:.6rem;margin:1.5rem 0 0;padding:.9rem 1.1rem;font-size:1.25rem;line-height:1.4;display:flex}.sketch-form-msg svg{flex-shrink:0}.sketch-form-msg--ok{color:var(--marker-green);background:var(--tint-green)}.sketch-form-msg--err{color:var(--marker-red);background:var(--tint-red)}.sketch-spin{animation:.9s linear infinite sketch-spin}@keyframes sketch-spin{to{transform:rotate(360deg)}}.sketch-footer{text-align:center;border-top:2px dashed var(--ink-light);margin-top:6rem;padding-top:3rem}.sketch-footer-signature{color:var(--ink);font-family:Caveat,cursive;font-size:2.5rem}.sketch-footer-links{justify-content:center;gap:1.5rem;margin-top:.75rem;display:flex}.sketch-footer-links a{color:var(--ink);transition:transform var(--spring-paper-ms,.2s) var(--spring-paper,ease), color .2s}.sketch-footer-links a:hover{color:var(--marker-blue);transform:translateY(-3px)}.sketch-footer-links a:focus-visible{outline:3px solid var(--marker-blue);outline-offset:3px}.sketch-footer-email{margin-top:.9rem;font-size:1.25rem;display:inline-block}.sketch-footer-copy{color:var(--ink-light);margin-top:.5rem;font-size:1.2rem}.sketch-lightbox{z-index:200;background:var(--room-scrim);justify-content:center;align-items:center;padding:2rem;animation:.15s ease-out sketch-fade-in;display:flex;position:fixed;inset:0}@keyframes sketch-fade-in{0%{opacity:0}to{opacity:1}}.sketch-lightbox-frame{flex-direction:column;align-items:center;gap:1rem;max-width:min(1100px,100%);max-height:100%;display:flex;position:relative}.sketch-lightbox-img{background:var(--room-paper);border:3px solid var(--room-paper);border-radius:6px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 10rem);display:block;box-shadow:0 18px 50px #00000080}.sketch-lightbox-caption{color:var(--room-paper);text-align:center;margin:0;font-family:Caveat,cursive;font-size:2rem}.sketch-lightbox-close,.sketch-lightbox-nav{background:var(--room-paper);color:var(--room-ink);border:2px solid var(--room-ink);cursor:pointer;transition:transform var(--spring-snap-ms,.2s) var(--spring-snap,ease), background .2s;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.sketch-lightbox-close{z-index:2;width:44px;height:44px;position:absolute;top:-1rem;right:-1rem}.sketch-lightbox-nav{width:48px;height:48px;position:absolute;top:50%;transform:translateY(-50%)}.sketch-lightbox-nav--prev{left:-1.5rem}.sketch-lightbox-nav--next{right:-1.5rem}.sketch-lightbox-close:hover,.sketch-lightbox-nav:hover{background:var(--room-accent);color:var(--room-paper)}@media (width<=700px){.sketch-lightbox{padding:1rem}.sketch-lightbox-close{top:.25rem;right:.25rem}.sketch-lightbox-nav--prev{left:0}.sketch-lightbox-nav--next{right:0}.sketch-lightbox-caption{font-size:1.6rem}}::selection{background:var(--link);color:var(--on-fill)}@media (width<=900px){.sketch-hero{text-align:center;flex-direction:column;gap:2rem}.sketch-title{font-size:5rem}.sketch-grid{grid-template-columns:1fr}.sketch-about-grid{flex-direction:column;gap:2rem}.sketch-header{flex-wrap:nowrap;margin-bottom:3rem}.sketch-menu-btn{display:inline-flex}.sketch-nav{z-index:90;background:var(--card);border:3px solid var(--ink);box-shadow:5px 5px 0px var(--shadow-hard);border-radius:255px 15px 225px/15px 225px 15px 255px;flex-direction:column;align-items:stretch;gap:0;padding:.6rem;display:none;position:absolute;top:calc(100% + .6rem);left:0;right:0}.sketch-nav.is-open{display:flex}.sketch-nav a{padding:.8rem 1.2rem;font-size:1.5rem}.sketch-nav a:after{display:none}.sketch-page-title{font-size:3.5rem}}@media (width<=700px){.sketch-certs-grid{grid-template-columns:1fr;gap:2rem}}@media (width<=600px){.sketch-container{padding:1rem}.sketch-title{font-size:3.5rem}.sketch-section-title{font-size:3rem}.sketch-skills-grid{gap:.8rem}.sketch-pill{padding:.5rem 1rem;font-size:1.1rem}.sketch-logo{font-size:2.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.sketch-pill:hover,.sketch-project-card:hover,.sketch-cert-card:hover,.sketch-btn:hover,.sketch-socials a:hover,.sketch-footer-links a:hover{transform:none}.sketch-logo:hover,.sketch-theme-btn:hover,.sketch-btn:hover svg,.sketch-detail-back:hover svg,.sketch-cert-card:hover .sketch-cert-pin{translate:none;rotate:none;scale:none}.sketch-btn:hover,.sketch-project-card:hover,.sketch-cert-card:hover,.sketch-theme-btn:hover,.sketch-menu-btn:hover,.sketch-avatar-frame:hover{border-radius:255px 15px 225px/15px 225px 15px 255px}.sketch-lightbox{animation:none}}
