*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-10{bottom:2.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.right-0{right:0}.top-0{top:0}.-z-10{z-index:-10}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[700px\]{height:700px}.h-screen{height:100vh}.w-16{width:4rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.touch-none{touch-action:none}.resize{resize:both}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-4{border-width:4px}.border-\[hsl\(var\(--brand-primary\)\)\]{border-color:hsl(var(--brand-primary))}.border-\[hsl\(var\(--brand-soft\)\)\]{border-color:hsl(var(--brand-soft))}.border-input{border-color:hsl(var(--input))}.border-t-transparent{border-top-color:transparent}.bg-\[\#f5faff\]{--tw-bg-opacity:1;background-color:rgb(245 250 255/var(--tw-bg-opacity,1))}.bg-\[\#f5faff\]\/60{background-color:rgb(245 250 255/.6)}.bg-\[\#f5faff\]\/70{background-color:rgb(245 250 255/.7)}.bg-\[hsl\(var\(--background\)\)\]{background-color:hsl(var(--background))}.bg-\[hsl\(var\(--brand-soft\)\)\]{background-color:hsl(var(--brand-soft))}.bg-background{background-color:hsl(var(--background))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.text-7xl{font-size:4.5rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[hsl\(var\(--brand-deep\)\)\]{color:hsl(var(--brand-deep))}.text-\[hsl\(var\(--brand-deep\)\/0\.7\)\]{color:hsl(var(--brand-deep)/.7)}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-300{animation-duration:.3s}:root{color-scheme:light;--page:#f3efe5;--page-muted:#e9e2d5;--ink:#101a32;--ink-muted:#41506a;--cobalt:#3867ed;--cobalt-soft:#c5d2f3;--paper:#f8f1e4;--paper-ink:#131923;--paper-muted:#665f56;--line:rgba(16,26,50,0.2);--tape:rgba(184,157,112,0.48);--texture:url(/textures/paper-light.webp);--brand-primary:223 82% 58%;--brand-secondary:226 62% 68%;--brand-deep:220 51% 21%;--brand-soft:216 44% 86%;--background:39 30% 92%;--foreground:220 51% 13%;--border:220 18% 77%;--radius:0.25rem}:root[data-theme=dark]{color-scheme:dark;--page:#101111;--page-muted:#17191a;--ink:#f4efe5;--ink-muted:#c8c3ba;--cobalt:#5278ff;--cobalt-soft:#223366;--paper:#e9dfce;--paper-ink:#121519;--paper-muted:#5c574f;--line:rgba(244,239,229,0.2);--tape:rgba(206,199,184,0.36);--texture:url(/textures/paper-dark.webp);--brand-deep:40 20% 92%;--background:180 3% 6%;--foreground:40 20% 94%;--border:40 8% 25%}*{box-sizing:border-box;border-color:hsl(var(--border))}html{scroll-behavior:smooth;background:var(--page)}body{min-width:320px;margin:0;overflow-x:hidden;background-color:var(--page);background-image:var(--texture);background-size:768px 768px;color:var(--ink);font-family:var(--font-typewriter),ui-monospace,monospace;letter-spacing:0;transition:background-color .24s ease,color .24s ease}a,button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cobalt);outline-offset:4px}::selection{background:var(--cobalt);color:#fff}.portfolio-rail{position:fixed;inset:0 auto 0 0;z-index:80;width:96px;border-right:1px solid var(--line);background-color:color-mix(in srgb,var(--page) 92%,transparent);background-image:var(--texture);background-size:768px 768px}.portfolio-rail-logo{position:absolute;top:36px;left:50%;display:grid;width:52px;height:52px;transform:translateX(-50%) rotate(-3deg);place-items:center;border:1.5px solid;border-radius:50%;color:var(--ink);font-family:var(--font-editorial),serif;font-size:25px;font-weight:600}.portfolio-rail-logo:after,.portfolio-rail-logo:before{position:absolute;inset:-5px 2px 3px -4px;content:"";border:1px solid;border-radius:47% 53% 50% 49%;opacity:.45;transform:rotate(9deg)}.portfolio-rail-logo:after{inset:1px -4px -4px 3px;opacity:.25;transform:rotate(-8deg)}.portfolio-rail-socials{position:absolute;left:0;bottom:210px;display:grid;width:100%;justify-items:center;gap:22px}.portfolio-rail-socials a,.portfolio-theme-toggle{display:grid;width:38px;height:38px;place-items:center;color:var(--ink);transition:color .18s ease,transform .18s ease}.portfolio-rail-socials a:hover,.portfolio-theme-toggle:hover{color:var(--cobalt);transform:rotate(-6deg) scale(1.08)}.portfolio-theme-toggle{position:absolute;bottom:72px;left:50%;border:0;background:transparent;transform:translateX(-50%);cursor:pointer}.portfolio-theme-toggle:hover{transform:translateX(-50%) rotate(-8deg) scale(1.08)}.portfolio-theme-toggle svg{width:26px;height:26px;stroke-width:1.6}.portfolio-topnav{position:fixed;top:32px;right:48px;z-index:75;padding:10px 12px;color:var(--ink);transition:background-color .18s ease,border-color .18s ease,top .18s ease}.portfolio-topnav-scrolled{top:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--page) 90%,transparent);box-shadow:0 8px 0 color-mix(in srgb,var(--ink) 5%,transparent)}.portfolio-topnav-links{display:flex;align-items:center;gap:42px;font-family:var(--font-hand),cursive;font-size:21px;font-weight:600}.portfolio-topnav-links>a:not(.portfolio-say-hi){position:relative}.portfolio-topnav-links>a:not(.portfolio-say-hi):after{position:absolute;right:0;bottom:-8px;left:0;height:2px;content:"";background:var(--cobalt);opacity:0;transform:rotate(-2deg) scaleX(.3);transition:opacity .15s ease,transform .15s ease}.portfolio-topnav-links>a:hover:after{opacity:1;transform:rotate(-2deg) scaleX(1)}.portfolio-say-hi{display:inline-flex;min-height:48px;align-items:center;gap:14px;padding:0 8px 0 22px;border:1px solid;border-radius:999px}.portfolio-send-icon{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--cobalt);border-radius:50%;color:var(--cobalt)}.vertical-pagination{position:fixed;top:50%;left:37px;z-index:85;display:grid;transform:translateY(-50%);gap:17px}.vertical-pagination a{display:grid;width:22px;height:12px;place-items:center}.vertical-pagination .dot{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink) 38%,transparent);transition:background-color .18s ease,transform .18s ease}.vertical-pagination .dot.active{background:var(--cobalt);transform:scale(1.55)}.project-detail-page,.sketchbook-site{margin-left:96px;background-color:var(--page);background-image:var(--texture);background-size:768px 768px}.sketchbook-site{position:relative;isolation:isolate;overflow:clip}.project-detail-page,.sketch-section{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.project-detail-shell,.sketch-shell{position:relative;z-index:5;width:min(1240px,calc(100% - 96px));margin:0 auto}.portfolio-particles{position:absolute;inset:0;z-index:1;opacity:.55}.cosmic-grid{position:absolute;z-index:1;width:190px;height:170px;opacity:.22;background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(180deg,#000 55%,transparent)}.cosmic-planet{position:absolute;z-index:2;width:112px;height:112px;border-radius:50%;background-color:color-mix(in srgb,var(--cobalt) 35%,var(--page));background-image:var(--texture);background-blend-mode:multiply;opacity:.62}.cosmic-orbit{z-index:2;width:620px;height:170px;border:1.5px solid var(--cobalt);opacity:.8;transform:rotate(7deg)}.cosmic-orbit,.cosmic-orbit span{position:absolute;border-radius:50%}.cosmic-orbit span{top:48%;left:-5px;width:10px;height:10px;background:var(--cobalt)}.cosmic-grid-hero{right:5%;top:145px}.planet-hero-one{right:45%;top:94px}.planet-hero-two{right:2%;bottom:120px;width:138px;height:138px}.orbit-hero{right:-3%;top:260px;width:750px}.sketch-hero{min-height:790px;padding:142px 0 78px}.hero-layout{display:grid;grid-template-columns:minmax(430px,.9fr) minmax(480px,1.1fr);align-items:center;gap:72px}.hero-copy{position:relative;z-index:6}.hand-note,.hero-kicker,.sketch-eyebrow{margin:0;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:25px;font-weight:600;white-space:pre-line}.hero-kicker{display:inline-block;margin-bottom:10px;border-bottom:2px solid var(--cobalt)}.portfolio-name{display:flex;min-height:112px;align-items:baseline;margin:0;color:var(--ink);font-family:var(--font-editorial),serif;font-size:100px;font-weight:600;line-height:.96;white-space:nowrap}:root[data-theme=dark] .portfolio-name{font-size:92px}.portfolio-name-window{position:relative;display:inline-block;width:8.4ch;height:1.08em;overflow:hidden}.portfolio-name-value{position:absolute;inset:0 auto auto 0;display:block;transform-origin:center}@keyframes portfolio-name-slot-in{0%{opacity:.72;translate:0 28%;filter:blur(2px)}to{opacity:1;translate:0 0;filter:blur(0)}}.portfolio-name-value-active{animation:portfolio-name-slot-in 105ms linear both}.portfolio-name-value[data-script-size=cjk],.portfolio-name-value[data-script-size=devanagari],.portfolio-name-value[data-script-size=korean]{font-size:.64em;line-height:1.45}.portfolio-name-value[data-script-size=arabic]{font-size:.8em;line-height:1.25}.portfolio-name-value[data-script-size=cyrillic]{font-size:.72em;line-height:1.3}.portfolio-name-dot{color:var(--cobalt)}.hero-role,.project-detail-category{margin:8px 0 34px;color:var(--cobalt);font-size:17px;line-height:1.5;text-transform:uppercase}.typewriter-block{max-width:610px;padding-left:18px;border-left:2px solid var(--cobalt);color:var(--ink-muted);font-size:15px;line-height:1.85}.typewriter-block p{margin:0}.hero-actions{display:flex;align-items:center;gap:32px;margin-top:42px}.ink-button,.ink-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;color:var(--ink);font-family:var(--font-hand),cursive;font-size:20px;font-weight:600}.ink-button{min-height:54px;padding:0 26px;border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--cobalt);transition:color .16s ease,background-color .16s ease,transform .16s ease,box-shadow .16s ease}.ink-button:hover{color:var(--page);background:var(--ink);box-shadow:1px 1px 0 var(--cobalt);transform:translate(2px,2px)}.ink-button svg,.ink-link svg{width:20px;height:20px}.ink-link{position:relative;border:0;background:transparent;cursor:pointer}.ink-link:after{position:absolute;right:0;bottom:-6px;left:0;height:2px;content:"";background:var(--cobalt);transform:rotate(-1deg)}.hero-photo-composition{position:relative;z-index:5;min-height:540px}.hero-photo{position:absolute;top:22px;right:74px;width:500px;height:500px;overflow:hidden;border:10px solid color-mix(in srgb,var(--paper) 70%,transparent);box-shadow:8px 12px 0 color-mix(in srgb,var(--ink) 10%,transparent);transform:rotate(-2deg)}.artifact-tape,.photo-tape{position:absolute;z-index:9;width:130px;height:42px;background-color:var(--tape);background-image:var(--texture);background-blend-mode:multiply;clip-path:polygon(2% 13%,100% 0,94% 92%,0 100%)}.taped-paper-wrap{position:relative;min-width:0}.tape-asset-blue,.tape-asset-kraft{width:116px;height:39px;background-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;clip-path:none;opacity:.82;pointer-events:none}.tape-asset-blue{background-image:url(/decor/tape-blue-torn.png)}.tape-asset-kraft{background-image:url(/decor/tape-kraft-torn.png)}.photo-tape-top{top:0;left:25%;transform:rotate(-14deg)}.torn-note{position:absolute;display:flex;flex-direction:column;padding:28px 26px;background-color:var(--paper);background-image:url(/textures/paper-light.webp);background-size:768px 768px;color:var(--paper-ink);font-family:var(--font-hand),cursive;font-size:21px;line-height:1.35;clip-path:polygon(3% 0,96% 3%,100% 94%,91% 100%,5% 97%,0 9%);box-shadow:5px 8px 0 rgba(0,0,0,.12)}.hero-note{right:8px;bottom:4px;z-index:10;width:158px;transform:rotate(-4deg)}.scroll-chapter-cue{position:absolute;right:48px;bottom:24px;z-index:10;display:flex;align-items:center;gap:10px;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:19px}.scroll-chapter-cue svg{width:20px}.sketch-heading{max-width:700px;margin-bottom:46px}.sketch-heading h2{margin:5px 0 14px;color:var(--ink);font-family:var(--font-hand),cursive;font-size:68px;font-weight:600;line-height:1}.sketch-heading h2 span{color:var(--cobalt)}.sketch-heading-copy{max-width:640px;margin:0;padding-left:16px;border-left:2px solid var(--cobalt);color:var(--ink-muted);font-size:14px;line-height:1.75}.paper-artifact{position:relative;background-color:var(--paper);background-image:url(/textures/paper-light.webp);background-size:768px 768px;color:var(--paper-ink);box-shadow:5px 7px 0 color-mix(in srgb,var(--ink) 10%,transparent)}.artifact-number{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:22px;font-weight:600}.artifact-number svg{width:18px}.artifact-link-icon{position:absolute;right:14px;bottom:13px;width:24px;height:24px}.sketch-tags{display:flex;flex-wrap:wrap;gap:7px}.sketch-tags>span{display:inline-flex;min-height:27px;align-items:center;gap:6px;padding:3px 10px;border:1px solid rgba(19,25,35,.15);border-radius:999px;background:rgba(19,25,35,.05);color:var(--paper-ink);font-size:11px}.selected-work-section{min-height:410px;padding:58px 0 68px;background:color-mix(in srgb,var(--page-muted) 48%,transparent)}.section-row-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.selected-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.selected-project-card{display:grid;min-height:225px;grid-template-columns:1.1fr .9fr;overflow:visible;clip-path:polygon(1% 3%,99% 0,100% 96%,96% 100%,2% 98%,0 7%);transition:transform .18s ease,box-shadow .18s ease}.selected-project-card:hover{z-index:3;box-shadow:9px 11px 0 color-mix(in srgb,var(--cobalt) 25%,transparent);transform:translateY(-6px) rotate(-.7deg)}.selected-project-card:nth-child(2){transform:rotate(.5deg)}.selected-project-card:nth-child(3){transform:rotate(-.4deg)}.selected-project-copy{display:flex;flex-direction:column;min-width:0;padding:24px 10px 20px 23px}.github-paper-card h3,.project-paper-copy h3,.selected-project-copy h3{margin:0 0 8px;font-family:var(--font-typewriter),monospace;font-size:19px;font-weight:400;text-transform:uppercase}.project-paper-copy>p:not(.artifact-number),.selected-project-copy>p:not(.artifact-number){margin:0 0 18px;color:var(--paper-muted);font-size:11px;line-height:1.65}.selected-project-copy .sketch-tags{margin-top:auto}.project-paper-image,.selected-project-image{position:relative;min-width:0;margin:18px 18px 20px 4px;overflow:hidden;border:1px solid rgba(19,25,35,.18)}.about-section{min-height:760px;padding:112px 0}.about-layout{display:grid;grid-template-columns:minmax(380px,.9fr) minmax(480px,1.1fr);align-items:center;gap:104px}.about-copy .ink-button{margin-top:36px}.about-paragraphs{display:grid;max-width:590px;gap:16px}.about-photo-wrap{position:relative;min-height:500px}.about-photo{position:absolute;inset:10px 50px 30px 10px;overflow:hidden;border:10px solid var(--paper);box-shadow:8px 10px 0 color-mix(in srgb,var(--ink) 10%,transparent);transform:rotate(2deg)}.about-photo-wrap .photo-tape{top:-8px;right:34%;transform:rotate(10deg)}.about-note{position:absolute;right:2px;bottom:14px;padding:14px;background:var(--page);transform:rotate(-4deg)}.planet-about{left:4%;bottom:80px;width:154px;height:154px}.orbit-about{left:-120px;top:260px;width:640px;transform:rotate(-12deg)}.skills-section{min-height:680px;padding:94px 0 112px;background:color-mix(in srgb,var(--page-muted) 38%,transparent)}.grid-skills{right:2%;bottom:18px}.skills-wheel{position:relative;padding:38px 0 56px}.skills-wheel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.project-shuffle-button,.skills-motion-toggle{display:inline-flex;min-height:40px;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--line);background:transparent;color:var(--ink);font-family:var(--font-hand),cursive;font-size:18px;cursor:pointer}.project-shuffle-button svg,.skills-motion-toggle svg{width:17px;height:17px}.skills-wheel-viewport{overflow-x:auto;padding:20px 0 28px;scrollbar-width:none;cursor:grab;touch-action:pan-y}.skills-wheel-viewport::-webkit-scrollbar{display:none}.skills-wheel-viewport.is-dragging{cursor:grabbing}.skills-wheel-track{display:flex;width:max-content;gap:20px;animation:skill-reel 48s linear infinite;will-change:transform}.skills-wheel-track.is-paused{animation-play-state:paused}@keyframes skill-reel{0%{transform:translateX(0)}to{transform:translateX(-33.333%)}}.skill-paper-strip{display:grid;width:190px;min-height:210px;flex:0 0 190px;place-items:center;padding:30px 20px 20px;clip-path:polygon(3% 1%,97% 2%,100% 95%,93% 100%,2% 97%,0 8%);transform:rotate(-1deg);user-select:none}.skill-paper-strip:nth-child(3n+2){transform:rotate(1.2deg) translateY(12px)}.skill-paper-strip:nth-child(3n+3){transform:rotate(-.2deg) translateY(-8px)}.skill-pin{position:absolute;top:15px;width:9px;height:9px;border-radius:50%;background:var(--cobalt);box-shadow:1px 2px 0 rgba(0,0,0,.25)}.skill-brand-mark{display:grid;width:72px;height:72px;place-items:center;border:1px solid rgba(19,25,35,.18);border-radius:50%}.skill-paper-strip strong{font-family:var(--font-hand),cursive;font-size:25px;font-weight:600}.skill-index{position:absolute;right:12px;bottom:8px;color:var(--cobalt);font-family:var(--font-hand),cursive}.skills-wheel-axis{position:absolute;right:0;bottom:8px;left:0;display:flex;align-items:center;gap:10px}.skills-wheel-axis:after,.skills-wheel-axis:before{height:1px;flex:1;content:"";background:var(--line)}.skills-wheel-axis span{width:7px;height:7px;border-radius:50%;background:var(--cobalt)}.skills-wheel-axis span:nth-child(2){background:color-mix(in srgb,var(--ink) 32%,transparent)}.projects-section{min-height:900px;padding:100px 0 120px}.planet-projects{top:70px;right:7%;width:94px;height:94px}.orbit-projects{right:-180px;top:160px;width:850px;height:230px;transform:rotate(13deg)}.projects-browser{position:relative;z-index:5}.projects-browser-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.sketch-tabs{display:flex;gap:34px}.sketch-tabs button{position:relative;padding:0 0 8px;border:0;background:transparent;color:var(--ink);font-family:var(--font-hand),cursive;font-size:24px;cursor:pointer}.sketch-tabs button:after{position:absolute;right:0;bottom:0;left:0;height:2px;content:"";background:var(--cobalt);opacity:0;transform:rotate(-2deg)}.sketch-tabs button.is-active{color:var(--cobalt)}.sketch-tabs button.is-active:after{opacity:1}.github-paper-grid,.project-paper-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 24px}.github-paper-card,.project-paper-card{min-width:0;min-height:250px;clip-path:polygon(1% 2%,97% 0,100% 95%,96% 100%,3% 98%,0 6%);transition:box-shadow .18s ease,transform .18s ease}.github-paper-card:hover,.project-paper-card:hover{z-index:3;box-shadow:9px 11px 0 color-mix(in srgb,var(--cobalt) 26%,transparent);transform:translateY(-6px) rotate(-.5deg)}.project-paper-card:nth-child(2n){transform:rotate(.5deg)}.project-paper-card:nth-child(3n){transform:rotate(-.6deg)}.project-paper-surface>a{position:absolute;inset:0;display:grid;grid-template-columns:.9fr 1.1fr}.project-paper-copy{display:flex;flex-direction:column;padding:24px 8px 22px 22px}.project-paper-copy .sketch-tags{margin-top:auto}.project-paper-image{margin:16px 16px 18px 6px}.project-paper-image img{object-fit:cover}.project-tech-tags>span{padding:3px 8px}.project-paper-card .tape-1{left:auto;right:6%;transform:rotate(-4deg)}.project-paper-card .tape-2{left:8%;transform:rotate(10deg)}.github-paper-card{display:flex;min-height:230px;flex-direction:column;padding:24px}.github-paper-card>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.github-paper-card h3{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-project-description{flex:1;margin:14px 0 22px;color:var(--paper-muted);font-size:12px;line-height:1.7}.github-project-link{display:inline-flex;align-items:center;gap:4px;color:var(--paper-ink);font-family:var(--font-hand),cursive;font-size:17px;border-bottom:1px solid var(--cobalt)}.github-project-link.is-primary{color:var(--cobalt)}.certifications-section{min-height:760px;padding:100px 0 120px;background:color-mix(in srgb,var(--page-muted) 40%,transparent)}.certificate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px}.certificate-sheet{display:grid;min-height:325px;grid-template-columns:1.15fr .85fr;gap:24px;padding:34px;clip-path:polygon(1% 1%,99% 2%,100% 95%,94% 100%,2% 97%,0 6%)}.certificate-sheet>button{position:relative;min-height:245px;border:1px solid rgba(19,25,35,.15);background:rgba(255,255,255,.3);cursor:zoom-in}.certificate-sheet>div{align-self:center}.certificate-sheet h3{margin:0 0 8px;font-size:18px;font-weight:400}.certificate-sheet div>p:not(.artifact-number){margin:0 0 14px;color:var(--cobalt);font-size:12px}.certificate-sheet div>span{display:block;margin-bottom:26px;color:var(--paper-muted);font-size:11px;line-height:1.65}.certificate-slot{position:relative;min-width:0;transform-origin:center;transition:filter .18s ease,transform .18s ease}.certificate-sheet{height:100%}.tape-certificate{z-index:12}.tape-certificate-0{top:-18px;left:12%;transform:rotate(-9deg)}.tape-certificate-1{top:-15px;right:9%;transform:rotate(8deg)}.tape-certificate-2{right:-18px;bottom:9%;transform:rotate(78deg)}.tape-certificate-3{bottom:-16px;left:18%;transform:rotate(7deg)}.certificate-slot.certificate-tilt-left{transform:rotate(-.65deg)}.certificate-slot.certificate-tilt-right{transform:rotate(.65deg)}.certificate-slot.certificate-tilt-straight{transform:none}.certificate-slot:hover{z-index:5;filter:drop-shadow(7px 10px 0 color-mix(in srgb,var(--cobalt) 18%,transparent));transform:translateY(-5px) rotate(-.25deg)}.certificate-layout-image-right .certificate-sheet{grid-template-columns:.8fr 1.2fr}.certificate-layout-image-right .certificate-sheet>button{order:2}.certificate-layout-image-right .certificate-sheet>div{order:1}.certificate-layout-stacked .certificate-sheet{grid-template-columns:1fr}.certificate-layout-stacked .certificate-sheet>button{min-height:210px}.contact-section-wrap{min-height:780px;padding:104px 0 124px}.planet-contact{right:5%;top:90px;width:140px;height:140px}.orbit-contact{left:-160px;bottom:40px;width:720px;transform:rotate(11deg)}.contact-desk{display:grid;grid-template-columns:.75fr 1.25fr;align-items:stretch;gap:62px}.contact-form-wrap,.contact-note-wrap{min-height:420px}.contact-note-wrap{transform:rotate(-1.4deg)}.contact-note-wrap .contact-note{transform:none}.contact-form-wrap .contact-form-sheet{height:100%}.tape-contact-left{top:24px;left:-42px;z-index:12;transform:rotate(77deg)}.tape-contact-form{top:-18px;right:13%;z-index:12;transform:rotate(-7deg)}.contact-note{position:relative;width:auto;min-height:420px;justify-content:space-between;padding:48px 42px;transform:rotate(-1.4deg)}.contact-note .hand-note{color:var(--paper-ink);font-size:30px}.contact-links{display:grid;gap:18px}.contact-links a{display:grid;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;gap:12px;padding-bottom:9px;border-bottom:1px solid rgba(19,25,35,.2);font-family:var(--font-typewriter),monospace;font-size:12px}.contact-links svg{width:19px;height:19px}.contact-form-sheet{min-height:420px;padding:48px;clip-path:polygon(1% 2%,99% 0,100% 95%,96% 100%,2% 98%,0 6%)}.contact-field-row,.contact-form-sheet form{display:grid;gap:24px}.contact-field-row{grid-template-columns:1fr 1fr}.contact-form-sheet label{display:grid;gap:8px;color:var(--paper-ink);font-family:var(--font-hand),cursive;font-size:20px}.contact-form-sheet input,.contact-form-sheet textarea{width:100%;border:0;border-bottom:1px solid rgba(19,25,35,.35);border-radius:0;background:transparent;color:var(--paper-ink);font-family:var(--font-typewriter),monospace;font-size:13px;line-height:1.7}.contact-form-sheet input{min-height:46px}.contact-form-sheet textarea{padding:10px 0;resize:vertical}.contact-form-sheet input::placeholder,.contact-form-sheet textarea::placeholder{color:rgba(19,25,35,.45)}.contact-submit{justify-self:end;border-color:var(--paper-ink);color:var(--paper-ink)}.contact-submit:hover{background:var(--paper-ink);color:var(--paper)}.contact-error{margin:0;color:#a12828;font-size:12px}.contact-spinner{width:18px;height:18px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:contact-spin .7s linear infinite}@keyframes contact-spin{to{transform:rotate(1turn)}}.contact-success{display:grid;min-height:320px;place-items:center;align-content:center;gap:16px;color:var(--paper-ink);text-align:center}.contact-success>svg{width:48px;height:48px;color:var(--cobalt)}.contact-success h3{margin:0;font-family:var(--font-hand),cursive;font-size:42px}.contact-success p{max-width:420px;margin:0 0 12px;font-size:13px;line-height:1.7}.sketch-footer{margin-left:0;padding:60px 0 48px;background:var(--page-muted);border-top:1px solid var(--line)}.footer-layout{display:grid;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:44px}.footer-note-wrap{width:300px;transform:rotate(-2deg)}.footer-note{position:relative;width:100%;min-height:128px;font-size:19px;transform:none}.tape-footer-note{top:-18px;left:26%;z-index:12;transform:rotate(-8deg)}.footer-copy{color:var(--ink-muted);font-size:11px;line-height:1.8}.back-to-top{display:grid;justify-items:center;gap:5px;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:18px}.footer-signature{display:grid;width:70px;height:70px;place-items:center;border:1px solid var(--ink);border-radius:50%;font-family:var(--font-editorial),serif;font-size:30px;transform:rotate(5deg)}.sketch-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:28px;background:rgba(0,0,0,.84)}.sketch-modal-sheet{position:relative;width:min(1000px,94vw);height:min(780px,88vh);padding:24px;background-color:var(--paper);background-image:url(/textures/paper-light.webp);box-shadow:12px 16px 0 rgba(0,0,0,.28)}.modal-close{position:absolute;top:-18px;right:-18px;z-index:3;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--paper-ink);border-radius:50%;background:var(--paper);color:var(--paper-ink);cursor:pointer}.project-detail-page{position:relative;min-height:100vh;padding:126px 0 66px}.project-detail-shell{width:min(1260px,calc(100% - 92px))}.project-back-link{display:inline-flex;align-items:center;gap:10px;margin-bottom:42px;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:21px;border-bottom:2px solid var(--cobalt)}.project-back-link svg{width:19px}.project-detail-hero{display:grid;grid-template-columns:minmax(370px,.8fr) minmax(560px,1.2fr);align-items:center;gap:70px;min-height:500px}.project-detail-copy h1{margin:0 0 16px;color:var(--ink);font-family:var(--font-hand),cursive;font-size:72px;font-weight:600;line-height:.98;text-transform:uppercase}.project-detail-category{margin-bottom:32px}.project-detail-tech{margin-top:28px}.project-detail-tech>span{border-color:var(--line);background:transparent;color:var(--ink)}.project-gallery-composition{position:relative;min-height:510px}.project-gallery-frame{position:absolute;inset:8px 42px 70px 0;overflow:hidden;border:12px solid color-mix(in srgb,var(--paper) 68%,transparent);box-shadow:8px 10px 0 color-mix(in srgb,var(--ink) 10%,transparent);transform:rotate(-1.2deg)}.project-gallery-slide{position:absolute;inset:0;background:color-mix(in srgb,var(--page-muted) 45%,transparent)}.project-gallery-tape-top{top:-8px;right:28%;transform:rotate(-6deg)}.project-gallery-controls{position:absolute;right:130px;bottom:4px;left:60px;display:flex;align-items:center;justify-content:center;gap:34px}.project-gallery-controls button{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}.project-gallery-controls span{color:var(--ink-muted);font-size:12px}.project-gallery-controls strong{color:var(--cobalt);font-weight:400}.project-detail-note{right:-12px;bottom:8px;width:145px;padding:22px;font-size:19px;transform:rotate(3deg)}.project-detail-note span{white-space:pre-line}.project-detail-grid{top:96px;right:2%}.project-detail-planet-one{top:64px;left:43%;width:150px;height:150px}.project-detail-planet-two{right:1%;top:380px;width:130px;height:130px}.project-detail-orbit{right:-5%;top:285px;width:820px;height:190px;transform:rotate(7deg)}.project-detail-lower{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:54px;padding:38px 0 48px;border-top:1px solid var(--cobalt);border-bottom:1px solid var(--line)}.project-detail-lower h2{display:flex;align-items:center;gap:10px;margin:0 0 26px;font-family:var(--font-hand),cursive;font-size:28px;font-weight:600;text-transform:uppercase}.project-detail-lower h2 svg{width:18px;color:var(--cobalt)}.project-detail-lower ul{margin:0;padding-left:24px;color:var(--ink-muted);font-size:13px;line-height:2}.project-margin-note{margin:20px 0 0 auto;max-width:260px;font-size:18px;transform:rotate(-2deg)}.project-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-top:38px}.next-project-link{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:30px;color:var(--ink);font-family:var(--font-hand),cursive}.next-project-link span{grid-column:1;color:var(--cobalt);font-size:15px;text-transform:uppercase}.next-project-link strong{grid-column:1;font-size:27px;font-weight:500;border-bottom:2px solid var(--cobalt)}.next-project-link svg{grid-column:2;grid-row:1/3;width:52px}@media (max-width:1180px){.project-detail-shell,.sketch-shell{width:min(100% - 64px,1060px)}.hero-layout{grid-template-columns:minmax(360px,.9fr) minmax(400px,1.1fr);gap:36px}.portfolio-name{font-size:78px;min-height:94px}:root[data-theme=dark] .portfolio-name{font-size:76px}.hero-photo{right:28px;width:440px;height:470px}.about-layout{gap:64px}.selected-project-card{grid-template-columns:1fr}.selected-project-image{position:absolute;right:0;bottom:0;width:45%;height:56%;opacity:.72}.selected-project-copy{padding-right:34%}.github-paper-grid,.project-paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-hero{grid-template-columns:minmax(330px,.8fr) minmax(460px,1.2fr);gap:38px}.project-detail-copy h1{font-size:58px}}@media (max-width:900px){.portfolio-rail{top:12px;bottom:auto;left:12px;width:56px;height:56px;border:1px solid var(--line);border-radius:50%}.portfolio-rail-logo{top:6px;width:42px;height:42px;font-size:20px}.portfolio-rail-socials{display:none}.portfolio-theme-toggle{position:fixed;right:16px;bottom:16px;left:auto;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--page);transform:none;box-shadow:3px 4px 0 color-mix(in srgb,var(--ink) 8%,transparent)}.portfolio-theme-toggle:hover{transform:rotate(-8deg) scale(1.04)}.vertical-pagination{display:none}.portfolio-topnav{top:12px;right:12px;padding:5px 7px;background:color-mix(in srgb,var(--page) 90%,transparent);border:1px solid var(--line)}.portfolio-topnav-scrolled{top:12px}.portfolio-topnav-links{gap:24px;font-size:18px}.portfolio-say-hi{min-height:42px;padding-left:16px}.portfolio-send-icon{width:30px;height:30px}.project-detail-page,.sketchbook-site{margin-left:0}.project-detail-shell,.sketch-shell{width:min(100% - 44px,760px)}.sketch-hero{min-height:1020px;padding-top:132px}.hero-layout{grid-template-columns:1fr;gap:54px}.hero-copy{max-width:650px}.portfolio-name{font-size:82px}:root[data-theme=dark] .portfolio-name{font-size:78px}.hero-photo-composition{min-height:510px}.hero-photo{right:10%;width:76%;height:480px}.hero-note{right:2%}.scroll-chapter-cue{right:24px}.selected-work-section{padding-top:70px}.selected-project-grid{grid-template-columns:1fr}.selected-project-card{min-height:220px;grid-template-columns:1fr 1fr}.selected-project-image{position:relative;width:auto;height:auto;opacity:1}.selected-project-copy{padding-right:10px}.about-layout{grid-template-columns:1fr;gap:56px}.about-photo-wrap{min-height:520px}.github-paper-grid,.project-paper-grid{grid-template-columns:1fr}.project-paper-card{min-height:260px}.certificate-grid,.contact-desk{grid-template-columns:1fr}.contact-desk{gap:44px}.contact-note{min-height:340px}.footer-layout{grid-template-columns:1fr auto}.footer-copy,.footer-note-wrap{grid-column:1}.back-to-top,.footer-signature{grid-column:2}.project-detail-page{padding-top:116px}.project-detail-hero{grid-template-columns:1fr;gap:52px}.project-gallery-composition{min-height:550px}.project-detail-lower{grid-template-columns:1fr;gap:44px}}@media (max-width:620px){.portfolio-topnav-links{gap:14px;font-size:17px}.portfolio-topnav-links>a:nth-child(3){display:none}.portfolio-say-hi>span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.portfolio-say-hi{min-height:36px;padding:3px;border:0}.portfolio-send-icon{width:32px;height:32px}.project-detail-shell,.sketch-shell{width:calc(100% - 30px)}.sketch-hero{min-height:920px;padding-top:112px;padding-bottom:60px}.hero-kicker,.sketch-eyebrow{font-size:21px}.portfolio-name{min-height:72px;font-size:53px}:root[data-theme=dark] .portfolio-name{font-size:51px}.portfolio-name-window{width:8.6ch}.hero-role{margin:6px 0 24px;font-size:12px}.typewriter-block{padding-left:13px;font-size:12px;line-height:1.75}.hero-actions{align-items:flex-start;flex-direction:column;gap:22px;margin-top:30px}.ink-button{min-height:48px;padding:0 20px;font-size:18px}.hero-photo-composition{min-height:415px}.hero-photo{top:28px;right:5%;width:90%;height:380px;border-width:7px}.hero-note{right:0;bottom:-2px;width:120px;padding:19px;font-size:17px}.cosmic-grid{width:130px;height:120px}.cosmic-orbit{width:440px}.scroll-chapter-cue{display:none}.about-section,.certifications-section,.contact-section-wrap,.projects-section,.selected-work-section,.skills-section{min-height:0;padding:76px 0}.section-row-heading{align-items:flex-start;flex-direction:column;gap:18px}.selected-project-card{min-height:350px;grid-template-columns:1fr}.selected-project-copy{padding:22px}.selected-project-image{min-height:145px;margin:0 20px 22px}.sketch-heading{margin-bottom:34px}.sketch-heading h2{font-size:49px}.sketch-heading-copy{font-size:12px}.about-photo-wrap{min-height:380px}.about-photo{inset:8px 18px 28px 4px;border-width:7px}.about-note{right:-2px;bottom:-6px;font-size:17px}.skills-wheel-heading{align-items:flex-start;gap:18px}.skills-wheel-heading .hand-note{font-size:19px}.skill-paper-strip{width:158px;min-height:184px;flex-basis:158px}.projects-browser-controls{align-items:flex-end}.sketch-tabs{gap:20px}.sketch-tabs button{font-size:20px}.project-shuffle-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.project-shuffle-button{width:42px;padding:0;justify-content:center}.project-paper-card{min-height:390px}.project-paper-surface>a{grid-template-columns:1fr;grid-template-rows:1fr 165px}.project-paper-copy{padding:24px 24px 8px}.project-paper-image{margin:10px 22px 22px}.certificate-sheet{grid-template-columns:1fr;padding:26px}.certificate-sheet>button{min-height:220px}.contact-note{min-height:330px;padding:38px 28px}.contact-note .hand-note{font-size:25px}.contact-form-sheet{padding:36px 24px}.contact-field-row{grid-template-columns:1fr}.contact-submit{justify-self:stretch}.footer-layout{grid-template-columns:1fr;gap:28px}.back-to-top,.footer-copy,.footer-note-wrap,.footer-signature{grid-column:1}.footer-note-wrap{width:100%}.back-to-top{justify-self:start}.project-detail-page{padding-top:100px}.project-back-link{margin-bottom:32px}.project-detail-copy h1{font-size:48px}.project-detail-category{font-size:12px}.project-gallery-composition{min-height:390px}.project-gallery-frame{inset:8px 8px 72px 0;border-width:7px}.project-gallery-controls{right:20px;left:10px;justify-content:flex-start;gap:20px}.project-detail-note{right:-2px;bottom:-8px;width:116px;padding:16px;font-size:16px}.project-detail-lower{margin-top:28px;padding-top:30px}.project-detail-footer{align-items:stretch;flex-direction:column}.next-project-link{align-self:flex-end}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.interactive-cosmos{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.interactive-cosmos-page{z-index:auto;overflow:visible}.cosmos-planet-layer{position:absolute;inset:0;z-index:18;overflow:visible;pointer-events:none}.cosmos-warp-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%}.draggable-planet{position:absolute;z-index:3;border:0;border-radius:50%;background-color:transparent;background-position:50%;background-size:150%;box-shadow:0 0 38px color-mix(in srgb,var(--cobalt) 9%,transparent);cursor:grab;pointer-events:auto;transform:translate(-50%,-50%);touch-action:none;user-select:none}.draggable-planet:not(.is-dragging){transition:left .14s linear,top .14s linear}.interactive-cosmos-page .draggable-planet{z-index:18}.draggable-planet-visual{top:50%;left:50%;width:var(--planet-visual-size);height:var(--planet-visual-size);box-shadow:0 0 38px color-mix(in srgb,var(--cobalt) 9%,transparent);transform:translate(-50%,-50%);transition:filter .18s ease,transform .18s ease}.draggable-planet-texture,.draggable-planet-visual{position:absolute;display:block;border-radius:50%;pointer-events:none}.draggable-planet-texture{inset:0;background-position:50%;background-size:150%;animation:planet-idle-float var(--planet-float-duration,10s) ease-in-out infinite alternate;will-change:transform}.draggable-planet:hover .draggable-planet-visual{filter:drop-shadow(0 0 11px color-mix(in srgb,var(--cobalt) 45%,transparent)) brightness(1.06);transform:translate(-50%,-50%) scale(1.04)}.draggable-planet:active{z-index:8;cursor:grabbing;filter:saturate(1.16) contrast(1.04)}.draggable-planet.is-dragging{z-index:80;filter:drop-shadow(0 15px 18px rgba(0,0,0,.22)) saturate(1.14) contrast(1.04)}.draggable-planet.is-dragging .draggable-planet-texture{animation-play-state:paused}.draggable-planet.is-dragging .draggable-planet-visual{transform:translate(-50%,-50%) scale(1.1)}@keyframes planet-idle-float{0%{transform:translate(calc(var(--planet-float-x, 8px) * -.45),calc(var(--planet-float-y, 6px) * -.35)) rotate(-1.5deg)}52%{transform:translate(calc(var(--planet-float-x, 8px) * .18),calc(var(--planet-float-y, 6px) * .5)) rotate(1deg)}to{transform:translate(var(--planet-float-x,8px),calc(var(--planet-float-y, 6px) * -.18)) rotate(2deg)}}.certifications-section,.project-detail-page,.projects-section,.sketch-hero{isolation:isolate}.hero-name-lockup{position:relative;width:max-content;max-width:100%}.name-emphasis-lines{position:absolute;top:-15px;left:73px;z-index:8;display:grid;width:46px;gap:4px;transform:rotate(-76deg)}.name-emphasis-lines i{display:block;height:2px;background:var(--cobalt);transform-origin:left center}.name-emphasis-lines i:first-child{width:18px}.name-emphasis-lines i:nth-child(2){width:31px}.name-emphasis-lines i:nth-child(3){width:23px}.hero-code-note{position:absolute;top:92px;right:-84px;z-index:10;margin:0;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:17px;transform:rotate(2deg)}.ink-button,.ink-link{position:relative}.hero-actions .ink-button:after{position:absolute;right:-5px;bottom:-6px;left:5px;z-index:-1;height:9px;content:"";background:var(--cobalt);filter:blur(4px);opacity:.82;transform:rotate(-1deg)}.hero-actions .ink-link:before{position:absolute;right:-12px;bottom:-4px;left:-10px;z-index:-1;height:14px;content:"";background:color-mix(in srgb,var(--tape) 70%,transparent);filter:blur(2px);opacity:.8;transform:rotate(1.5deg)}.sketch-hero{min-height:660px;padding:116px 0 42px}.selected-work-section .sketch-shell,.sketch-hero .sketch-shell{width:min(1420px,calc(100% - 72px))}.hero-layout{grid-template-columns:minmax(430px,.95fr) minmax(510px,1.05fr);gap:44px}.hero-copy{align-self:center;padding-bottom:18px}.hero-kicker{font-size:23px}.portfolio-name{min-height:100px;font-size:92px}:root[data-theme=dark] .portfolio-name{font-size:88px}.hero-role{margin:4px 0 28px;font-size:15px}.typewriter-block{font-size:13px;line-height:1.75}.hero-actions{margin-top:32px}.hero-photo-composition{min-height:510px}.hero-photo{top:8px;right:56px;width:510px;height:480px;border-width:8px;transform:rotate(-1.6deg)}.hero-note{right:4px;bottom:-2px;width:145px;padding:23px 22px;font-size:19px}.photo-tape-top{top:-10px;left:37%;width:112px;height:36px}.selected-work-section{min-height:310px;padding:34px 0 42px}.section-row-heading{margin-bottom:18px}.selected-project-card{min-height:180px}.selected-project-copy{padding:18px 8px 16px 18px}.selected-project-copy h3{font-size:17px}.selected-project-image{margin:14px 14px 16px 4px}.selected-project-card .artifact-number{margin-bottom:7px;font-size:18px}.about-section{min-height:620px;padding:92px 0}.about-layout{grid-template-columns:minmax(380px,.95fr) minmax(420px,1.05fr);gap:90px}.about-manifesto{position:relative;min-height:370px;padding:66px 58px 46px;clip-path:polygon(2% 2%,98% 0,100% 94%,92% 100%,1% 97%,0 8%);transform:rotate(1.2deg)}.about-manifesto .artifact-tape{top:-12px;left:34%;transform:rotate(-7deg)}.about-manifesto .hand-note{max-width:330px;color:var(--cobalt);font-size:31px}.about-manifesto>p:last-child{position:absolute;right:50px;bottom:40px;margin:0;color:var(--paper-muted);font-size:12px;line-height:1.8;transform:rotate(-2deg)}.manifesto-lines{position:absolute;inset:124px 42px auto;display:grid;gap:25px;opacity:.16}.manifesto-lines span{height:1px;background:var(--paper-ink)}.skills-section{min-height:610px;padding:82px 0 94px}.skills-wheel-heading{justify-content:flex-start}.projects-section{min-height:760px;padding:72px 0 50px;border-bottom:0}.projects-section .sketch-heading{max-width:510px;margin-bottom:24px}.projects-section .sketch-heading h2{font-size:72px}.projects-building-note{top:80px;right:16%;z-index:4;width:160px;padding:23px 25px;font-size:18px;transform:rotate(3deg)}.projects-browser-controls{margin-bottom:24px}.projects-drag-note{margin:0;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:18px;transform:rotate(-1deg)}.github-paper-grid,.project-paper-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 24px}.github-paper-card,.project-paper-card{grid-column:span 2;min-height:188px}.github-paper-card:nth-child(4),.project-paper-card:nth-child(4){grid-column:2/span 2}.github-paper-card:nth-child(5),.project-paper-card:nth-child(5){grid-column:4/span 2}.github-paper-card:nth-child(n+6),.project-paper-card:nth-child(n+6){grid-column:span 2}.project-paper-surface>a{grid-template-columns:.92fr 1.08fr}.project-paper-copy{padding:18px 6px 16px 18px}.project-paper-copy h3{font-size:16px}.project-paper-copy>p:not(.artifact-number){margin-bottom:10px;line-height:1.5}.project-paper-card .artifact-number{margin-bottom:6px;font-size:18px}.project-tech-tags>span{min-height:23px;padding:2px 7px;font-size:9px}.project-tech-tags svg{width:12px;height:12px}.project-drag-handle{position:absolute;top:10px;right:10px;z-index:12;display:grid;width:27px;height:27px;place-items:center;color:var(--cobalt);cursor:grab;opacity:0;transition:opacity .15s ease}.project-drag-handle svg{width:16px;height:16px}.project-paper-card:hover .project-drag-handle{opacity:1}.github-paper-card[draggable=true],.project-paper-card[draggable=true]{cursor:grab}.github-paper-card[draggable=true]:active,.project-paper-card[draggable=true]:active{cursor:grabbing}.github-paper-card{min-height:190px;padding:18px}.github-project-description{margin:9px 0 12px;font-size:10px;line-height:1.55}.github-project-link{font-size:14px}.certifications-section{min-height:420px;padding:48px 0 66px;background:transparent}.certifications-board-layout{display:grid;grid-template-columns:.64fr 1.36fr;align-items:center;gap:54px}.certifications-board-layout .sketch-heading{margin:0}.certifications-board-layout .sketch-heading h2{font-size:58px}.certificate-grid{gap:28px}.certificate-sheet{min-height:220px;grid-template-columns:1.2fr .8fr;gap:16px;padding:24px}.certificate-sheet>button{min-height:168px}.certificate-sheet h3{font-size:15px}.certificate-sheet div>span{margin-bottom:14px;font-size:9px}.certificate-sheet .ink-link{font-size:16px}.contact-form-sheet input,.contact-form-sheet textarea{padding:11px 13px;border:1px solid rgba(19,25,35,.28);background:rgba(255,255,255,.34)}.contact-form-sheet textarea{min-height:150px}.contact-form-sheet input:focus,.contact-form-sheet textarea:focus{border-color:var(--cobalt);background:rgba(255,255,255,.58)}.project-detail-page{padding:98px 0 56px}.project-detail-shell{width:min(1260px,calc(100% - 78px))}.project-back-link{margin-bottom:30px}.project-detail-hero{grid-template-columns:minmax(350px,.82fr) minmax(560px,1.18fr);gap:54px;min-height:430px}.project-detail-copy h1{font-size:66px}.project-gallery-composition{min-height:440px}.project-gallery-frame{inset:2px 45px 62px 0;border-width:9px}.project-gallery-tape-side{right:auto;bottom:62px;left:4%;width:94px;height:32px;transform:rotate(11deg)}.project-gallery-controls{right:140px;left:30px}.project-detail-note{right:-5px;bottom:4px;width:138px}.project-gallery-margin-note{position:absolute;top:58px;right:-60px;max-width:122px;font-size:16px;line-height:1.45;transform:rotate(2deg)}.project-detail-lower{gap:88px;margin-top:34px;padding:30px 0 38px}.project-detail-lower h2{margin-bottom:18px}.project-detail-footer{padding-top:30px}@media (max-width:1180px){.hero-code-note{display:none}.hero-photo{right:10px;width:455px}.projects-building-note{right:8%}.github-paper-grid,.project-paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.github-paper-card,.github-paper-card:nth-child(4),.github-paper-card:nth-child(5),.github-paper-card:nth-child(n+6),.project-paper-card,.project-paper-card:nth-child(4),.project-paper-card:nth-child(5),.project-paper-card:nth-child(n+6){grid-column:auto}.certifications-board-layout{grid-template-columns:1fr}}@media (max-width:900px){.interactive-cosmos{opacity:.72}.sketch-hero{min-height:960px}.hero-photo{width:min(560px,86%)}.about-layout{grid-template-columns:1fr}.about-manifesto{min-height:330px}.projects-building-note{display:none}.certifications-board-layout{gap:36px}.project-detail-hero{grid-template-columns:1fr}.project-gallery-margin-note{display:none}}@media (max-width:620px){.name-emphasis-lines{top:-10px;left:47px;transform:rotate(-78deg) scale(.75)}.github-paper-grid,.project-paper-grid{grid-template-columns:1fr}.github-paper-card,.project-paper-card{min-height:360px}.projects-drag-note{max-width:130px;text-align:right}.certifications-board-layout{display:block}.certifications-board-layout .sketch-heading{margin-bottom:34px}.project-gallery-tape-side{display:none}}.sketch-hero .sketch-shell{width:min(1320px,calc(100% - 88px))}.portfolio-topnav{right:90px}.portfolio-topnav-links{gap:80px}.portfolio-say-hi{min-width:150px;justify-content:space-between}.hero-kicker{position:relative;margin-bottom:12px;padding-bottom:7px;border-bottom:0;font-family:var(--font-sketch-title),cursive;font-size:21px;font-weight:400;transform:rotate(-1deg)}.hero-copy{padding-left:18px}.hero-kicker:after,.hero-kicker:before{position:absolute;bottom:1px;height:2px;content:"";background:var(--cobalt);transform-origin:left center}.hero-kicker:after{right:2px;left:0;transform:rotate(-1.5deg)}.hero-kicker:before{right:12%;bottom:-3px;left:36%;transform:rotate(4deg)}:root[data-theme=dark] .portfolio-name{min-height:100px;font-family:var(--font-hand),cursive;font-size:96px;font-weight:500;line-height:.98}:root[data-theme=dark] .name-emphasis-lines{display:none}:root[data-theme=dark] .portfolio-name-value{transform-origin:left center;scale:1.43 1}:root[data-theme=dark] .portfolio-name-window{width:10.5ch}:root:not([data-theme=dark]) .portfolio-name-window{width:10ch}:root:not([data-theme=dark]) .portfolio-name-value[data-script-size=english]{transform-origin:left center;scale:1.3 1}.hero-code-note{top:102px;right:-27px;width:143px;overflow:hidden;font-family:var(--font-sketch-title),cursive;font-size:13px;line-height:1.45;white-space:pre;pointer-events:none;transform:rotate(1deg)}:root:not([data-theme=dark]) .hero-code-note{display:none}:root[data-theme=dark] .hero-photo{border-width:4px;border-color:rgba(211,207,196,.42);box-shadow:8px 10px 0 rgba(255,255,255,.055)}.photo-tape-top{top:30px;right:550px;left:auto;width:114px;height:31px;background-color:rgba(137,134,127,.52);background-image:url(/textures/paper-light.webp);opacity:.8;filter:brightness(.68) saturate(.25);transform:rotate(-22deg)}:root:not([data-theme=dark]) .photo-tape-top{background-color:rgba(190,157,105,.52);filter:none}:root:not([data-theme=dark]) .interactive-cosmos-hero .draggable-planet[data-planet-index="0"]{opacity:.68;filter:grayscale(.7) sepia(.12) hue-rotate(165deg) saturate(.45) brightness(1.28)}.photo-tape-top:after{position:absolute;inset:3px -34px -1px 32px;content:"";background:inherit;clip-path:polygon(2% 13%,100% 0,94% 92%,0 100%);opacity:.72;transform:rotate(13deg)}.hero-note{right:90px;bottom:18px;width:142px;padding:24px 20px 20px;font-family:var(--font-sketch-title),cursive;font-size:16px;line-height:1.45;transform:rotate(-3deg)}:root[data-theme=dark] .hero-note{background-color:#d8c5a5;background-blend-mode:multiply}.hero-note:before{position:absolute;top:-8px;left:50%;width:70px;height:19px;content:"";background:rgba(56,103,237,.52);clip-path:polygon(3% 8%,100% 0,94% 92%,0 100%);transform:translateX(-50%) rotate(-7deg)}.hero-actions .ink-button{position:relative;isolation:isolate;min-width:225px;min-height:52px;padding:0 23px;border:0;background:transparent;box-shadow:none;font-family:var(--font-sketch-title),cursive;font-size:16px;font-weight:400;text-transform:uppercase}:root[data-theme=dark] .hero-actions .ink-button{color:var(--cobalt)}.hero-actions .ink-button:hover{color:var(--ink);background:transparent;box-shadow:none;transform:translate(1px,1px) rotate(-.25deg)}.hero-actions .ink-button>span,.hero-actions .ink-button>svg:not(.rough-cta-box),.hero-actions .ink-link>span{position:relative;z-index:2}.rough-cta-box,.rough-cta-loop{position:absolute;z-index:0;overflow:visible;pointer-events:none}.rough-cta-box{inset:-3px -5px -4px -5px;width:calc(100% + 10px)!important;height:calc(100% + 7px)!important}.rough-cta-box path{fill:transparent;stroke:var(--cobalt);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;vector-effect:non-scaling-stroke}.rough-cta-box path+path{opacity:.36;stroke-width:.8}.hero-secondary-cta{min-width:200px;min-height:48px;padding:0 18px;isolation:isolate}:root[data-theme=dark] .hero-secondary-cta{color:var(--ink-muted)}.rough-cta-loop{inset:-5px -10px -8px;width:calc(100% + 20px)!important;height:calc(100% + 13px)!important}.rough-cta-loop path{fill:transparent;stroke:color-mix(in srgb,var(--ink) 38%,transparent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.05;vector-effect:non-scaling-stroke}.rough-cta-loop path+path{opacity:.4;stroke-width:.7}.hero-actions{gap:34px;transform:translateY(40px)}.hero-role,.typewriter-block{transform:translateY(8px)}.typewriter-block{margin-left:-11px}.hero-photo{top:42px;right:260px;width:455px;height:450px}.hero-actions .ink-link{font-family:var(--font-sketch-title),cursive;font-size:17px;font-weight:400}:root:not([data-theme=dark]) .hero-actions .ink-button{color:var(--page);background:transparent;font-family:var(--font-typewriter),ui-monospace,monospace;font-size:14px;text-transform:lowercase}:root:not([data-theme=dark]) .rough-cta-box path:first-child{fill:var(--ink);stroke:var(--ink)}:root:not([data-theme=dark]) .rough-cta-box path+path{fill:none;stroke:color-mix(in srgb,var(--cobalt) 68%,var(--ink));opacity:.44}:root:not([data-theme=dark]) .hero-actions .ink-button:hover{color:var(--page)}:root[data-theme=dark] .hero-actions .ink-button:after{opacity:.2}:root:not([data-theme=dark]) .hero-actions .ink-button:after{opacity:.72}:root:not([data-theme=dark]) .hero-actions .ink-link{color:var(--cobalt);font-family:var(--font-typewriter),ui-monospace,monospace;font-size:14px}:root:not([data-theme=dark]) .hero-actions .ink-link:before{height:12px;background:rgba(221,194,148,.5);opacity:.55}.hero-actions .ink-link:before{right:-7px;bottom:-3px;left:-7px;height:8px;filter:blur(4px);opacity:.3;transform:rotate(1deg)}.hero-actions .ink-link:after{right:2px;bottom:-7px;left:1px;transform:rotate(-1.5deg)}@media (max-width:1180px){.portfolio-topnav{right:34px}.portfolio-topnav-links{gap:38px}.portfolio-say-hi{min-width:0}.sketch-hero .sketch-shell{width:min(1060px,calc(100% - 64px))}}.project-detail-page{--detail-paper:#f3eddd;--detail-paper-ink:#111827;padding-top:102px}.project-detail-page .project-detail-shell{width:min(1320px,calc(100% - 80px))}.project-detail-page .project-back-link{margin-bottom:34px}.project-detail-page .project-detail-hero{grid-template-columns:minmax(360px,.78fr) minmax(600px,1.22fr);align-items:start;gap:64px;min-height:570px}.project-detail-page .project-detail-copy{padding-top:26px}.project-detail-page .project-detail-copy h1{max-width:620px;margin-bottom:12px;font-size:clamp(56px,5vw,78px);line-height:.94;letter-spacing:0}.project-detail-page .project-detail-category{margin:0 0 20px;color:var(--cobalt);font-family:var(--font-typewriter),monospace;font-size:14px;text-transform:uppercase}.project-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 26px;color:var(--ink-muted);font-family:var(--font-typewriter),monospace;font-size:12px}.project-detail-meta span{display:inline-flex;align-items:center;gap:8px}.project-detail-meta svg{width:17px;height:17px;color:var(--ink);stroke-width:1.7}.project-detail-meta i{width:4px;height:4px;border-radius:50%;background:var(--cobalt)}.project-detail-page .project-detail-copy .typewriter-block{max-width:560px;margin-top:0}.project-detail-page .project-detail-tech{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.project-detail-page .project-detail-tech>span{position:relative;display:inline-flex;min-height:34px;align-items:center;gap:8px;padding:6px 12px 6px 9px;overflow:hidden;border:1px solid color-mix(in srgb,var(--technology-color) 30%,rgba(17,24,39,.28));border-radius:999px;background-color:color-mix(in srgb,var(--technology-color) 13%,var(--detail-paper));background-image:url(/textures/paper-light.webp);background-size:560px 560px;color:var(--detail-paper-ink);font-family:var(--font-typewriter),monospace;font-size:11px;box-shadow:1px 2px 0 color-mix(in srgb,var(--technology-color) 16%,transparent)}.project-detail-tech-icon{width:18px;height:18px;flex:0 0 18px;object-fit:contain}.project-detail-page .project-gallery-composition{min-height:550px;isolation:isolate}.project-detail-page .project-gallery-frame{position:absolute;overflow:visible;border:10px solid color-mix(in srgb,var(--detail-paper) 92%,transparent);background-color:var(--detail-paper);background-image:url(/textures/paper-light.webp);background-size:680px 680px;box-shadow:9px 12px 0 rgba(0,0,0,.12),0 16px 30px rgba(0,0,0,.12);transform-origin:center}.project-detail-page .project-gallery-frame img{padding:3px;background:color-mix(in srgb,white 88%,var(--detail-paper))}.project-detail-page .project-gallery-frame-back{z-index:1;top:74px;right:0;bottom:128px;left:24%;transform:rotate(5.2deg);opacity:.94}.project-detail-page .project-gallery-frame-front{z-index:3;top:28px;right:14%;bottom:154px;left:0;transform:rotate(-2.4deg)}.project-detail-page .project-gallery-slide{position:absolute;inset:0;overflow:hidden;background:color-mix(in srgb,white 88%,var(--detail-paper))}.project-detail-note-tape,.project-gallery-tape-back,.project-gallery-tape-top{width:124px;height:41px;background-color:transparent;background-repeat:no-repeat;background-position:50%;background-size:100% 100%;background-blend-mode:normal;clip-path:none;opacity:.82;pointer-events:none}.project-gallery-tape-top{top:-30px;right:23%;background-image:url(/decor/tape-kraft-torn.png);transform:rotate(-7deg)}.project-gallery-tape-back{top:-24px;right:11%;background-image:url(/decor/tape-blue-torn.png);transform:rotate(9deg)}.project-detail-note-tape{top:-21px;left:28%;background-image:url(/decor/tape-blue-torn.png);transform:rotate(4deg)}.project-gallery-caption{position:absolute;right:19%;bottom:92px;left:13%;z-index:5;display:grid;justify-items:center;gap:6px;color:var(--ink);text-align:center}.project-gallery-caption strong{position:relative;font-family:var(--font-hand),cursive;font-size:20px;font-weight:500}.project-gallery-caption strong:after{position:absolute;right:-6px;bottom:-4px;left:-6px;height:2px;content:"";background:var(--cobalt);transform:rotate(-1deg)}.project-gallery-caption span{color:var(--ink-muted);font-family:var(--font-typewriter),monospace;font-size:11px}.project-detail-page .project-gallery-controls{right:14%;bottom:24px;left:0;z-index:6;gap:28px}.project-detail-page .project-gallery-controls button{position:relative;width:47px;height:47px;border-width:1.5px;transition:color .16s ease,border-color .16s ease,transform .16s ease}.project-detail-page .project-gallery-controls button:after{position:absolute;inset:-4px 2px 1px -3px;border:1px solid color-mix(in srgb,var(--ink) 48%,transparent);border-radius:50%;content:"";transform:rotate(8deg)}.project-detail-page .project-gallery-controls button:hover{border-color:var(--cobalt);color:var(--cobalt);transform:rotate(-5deg) scale(1.05)}.project-detail-page .project-gallery-controls svg{width:24px;height:24px}.project-gallery-dots{position:absolute;bottom:9px;left:43%;z-index:7;display:flex;gap:10px;transform:translateX(-50%)}.project-gallery-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--ink) 28%,transparent);cursor:pointer}.project-gallery-dots button.is-active{background:var(--cobalt);transform:scale(1.25)}.project-detail-page .project-detail-note{right:-6px;bottom:66px;z-index:8;width:150px;padding:28px 24px 22px;font-size:18px;box-shadow:7px 9px 0 rgba(0,0,0,.12);transform:rotate(3.2deg)}.project-detail-page .project-gallery-margin-note{top:72px;right:-58px;z-index:4;color:var(--cobalt);white-space:pre-line}.project-detail-page .project-detail-lower{margin-top:18px;padding-top:34px}:root[data-theme=dark] .project-detail-page .project-gallery-frame{border-color:rgba(217,211,196,.62);box-shadow:9px 12px 0 rgba(255,255,255,.045),0 18px 34px rgba(0,0,0,.26)}:root[data-theme=dark] .project-detail-page .project-detail-tech>span{border-color:color-mix(in srgb,var(--technology-color) 42%,rgba(235,230,215,.34));background-color:color-mix(in srgb,var(--technology-color) 15%,#efe8d6)}@media (max-width:1180px){.project-detail-page .project-detail-hero{grid-template-columns:minmax(320px,.82fr) minmax(500px,1.18fr);gap:38px}.project-detail-page .project-gallery-margin-note{display:none}}@media (max-width:900px){.project-detail-page .project-detail-shell{width:min(100% - 44px,760px)}.project-detail-page .project-detail-hero{grid-template-columns:1fr;min-height:auto}.project-detail-page .project-gallery-composition{min-height:520px}.project-detail-page .project-gallery-frame-back{left:18%}}@media (max-width:620px){.project-detail-page{padding-top:108px}.project-detail-page .project-detail-shell{width:calc(100% - 28px)}.project-detail-page .project-back-link{margin-left:66px}.project-detail-page .project-detail-copy h1{font-size:50px}.project-detail-page .project-detail-meta{display:grid;gap:8px}.project-detail-page .project-detail-meta i{display:none}.project-detail-page .project-gallery-composition{min-height:430px}.project-detail-page .project-gallery-frame-front{top:24px;right:8%;bottom:150px}.project-detail-page .project-gallery-frame-back{top:55px;bottom:138px;left:17%}.project-gallery-caption{right:10%;bottom:86px;left:3%}.project-detail-page .project-gallery-controls{right:5%}.project-detail-page .project-detail-note{right:-3px;bottom:48px;width:112px;padding:20px 16px;font-size:15px}.project-gallery-dots{left:38%}.sketch-hero .sketch-shell{width:calc(100% - 40px)}:root[data-theme=dark] .portfolio-name{min-height:70px;font-size:53px}.hero-actions .ink-button{min-width:0}.hero-actions{gap:22px;transform:none}.hero-copy{padding-left:0}.hero-role,.typewriter-block{transform:none}.typewriter-block{margin-left:0}}@media (max-width:1180px){.hero-code-note{display:none}.hero-photo{top:28px;right:28px;width:440px;height:470px}.photo-tape-top{top:16px;right:334px}.hero-note{right:-4px;bottom:10px}}@media (max-width:900px){.portfolio-topnav{top:12px;right:12px}.portfolio-topnav-links{gap:24px}.hero-layout{grid-template-columns:1fr;gap:54px}.hero-photo{top:28px;right:10%;width:76%;height:480px}.photo-tape-top{top:18px;right:auto;left:22%}.hero-note{right:2%;bottom:0}}@media (max-width:620px){.portfolio-topnav-links{gap:14px}.hero-photo{top:28px;right:5%;width:90%;height:380px}.photo-tape-top{top:18px;left:18%;width:92px;height:27px}.hero-note{right:0;bottom:-2px;width:120px;padding:19px;font-size:17px}.hero-copy{width:100%;min-width:0}.portfolio-name{min-height:72px;font-size:53px}.portfolio-name-window,:root:not([data-theme=dark]) .portfolio-name-window,:root[data-theme=dark] .portfolio-name-window{width:8.6ch}:root:not([data-theme=dark]) .portfolio-name-value[data-script-size=english],:root[data-theme=dark] .portfolio-name-value{scale:1 1}.typewriter-block{width:100%;max-width:100%}}.portfolio-name-window{overflow:visible}.skills-section{min-height:440px;padding:48px 0 52px}.skills-section .sketch-heading{margin-bottom:0}.skills-section .sketch-heading h2{margin-top:0;font-size:58px}.skills-wheel{padding:12px 0 24px}.skills-wheel-heading{margin-bottom:2px}.skills-wheel-heading .hand-note{font-size:20px}.skills-wheel-viewport{padding:10px 0 16px}.skill-paper-strip{width:164px;min-height:166px;flex-basis:164px;padding:25px 16px 16px}.skill-brand-mark{width:58px;height:58px}.skill-brand-mark svg{width:31px;height:31px}.skill-paper-strip strong{font-size:22px}.project-paper-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}.project-paper-slot{position:relative;min-width:0;grid-column:span 2}.project-paper-slot.project-slot-compact,.project-paper-slot.project-slot-standard,.project-paper-slot.project-slot-tall,.project-paper-slot.project-slot-wide{grid-column:span 2}.project-paper-card{width:100%;min-height:214px;overflow:visible;border:0;background:transparent;box-shadow:none;clip-path:none;transform-origin:center;transition:border-color .18s ease,box-shadow .18s ease,filter .18s ease,opacity .18s ease,transform .18s ease}.project-paper-surface{position:absolute;inset:0;z-index:1;overflow:hidden;border:1px solid color-mix(in srgb,var(--paper-ink) 10%,transparent);clip-path:polygon(1% 2%,97% 0,100% 95%,96% 100%,3% 98%,0 6%)}.project-card-size-wide{min-height:228px}.project-card-size-standard{min-height:218px}.project-card-size-compact{min-height:206px}.project-card-size-tall{min-height:242px}.project-card-tilt-left{transform:rotate(-.7deg)}.project-card-tilt-right{transform:rotate(.7deg)}.project-card-tilt-soft-left{transform:rotate(-.3deg)}.project-card-tilt-soft-right{transform:rotate(.3deg)}.project-card-tilt-straight{transform:none}.selected-project-card.selected-card-left{--selected-card-tilt:-0.7deg;transform:rotate(var(--selected-card-tilt))}.selected-project-card.selected-card-right{--selected-card-tilt:0.7deg;transform:rotate(var(--selected-card-tilt))}.selected-project-card.selected-card-soft-left{--selected-card-tilt:-0.3deg;transform:rotate(var(--selected-card-tilt))}.selected-project-card.selected-card-soft-right{--selected-card-tilt:0.3deg;transform:rotate(var(--selected-card-tilt))}.selected-project-card.selected-card-straight{--selected-card-tilt:0deg;transform:rotate(var(--selected-card-tilt))}.selected-project-card[class*=selected-card-]:hover{transform:translateY(-6px) rotate(var(--selected-card-tilt))}.project-paper-card:hover{transform:translateY(-7px) rotate(-.35deg)}.project-paper-card.is-dragging,.project-paper-card.is-dragging:hover{z-index:20;opacity:.88;filter:saturate(1.08);box-shadow:15px 18px 0 color-mix(in srgb,var(--cobalt) 34%,transparent);transform:translateY(-12px) rotate(2.4deg) scale(1.035)}.project-paper-card.is-drop-target:after{position:absolute;inset:7px;z-index:14;border:2px dashed color-mix(in srgb,var(--cobalt) 78%,transparent);content:"";pointer-events:none;animation:project-drop-pulse .62s ease-in-out infinite alternate}@keyframes project-drop-pulse{0%{opacity:.38;transform:scale(.985)}to{opacity:.95;transform:scale(1)}}.project-paper-surface>a{grid-template-columns:.88fr 1.12fr}.project-paper-image{margin:12px 12px 14px 5px;border-color:rgba(19,25,35,.2);background:rgba(255,255,255,.46);box-shadow:3px 4px 0 rgba(19,25,35,.08);transform-origin:center}.project-paper-image img{display:block;width:100%;height:100%;padding:3px;object-fit:contain}.project-image-left{transform:rotate(-1.6deg)}.project-image-right{transform:rotate(1.35deg)}.project-image-soft-left{transform:rotate(-.65deg)}.project-image-soft-right{transform:rotate(.7deg)}.project-image-straight{transform:none}.project-board-tape{z-index:8;width:114px;height:38px;background-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;opacity:.84;filter:var(--project-tape-filter,none);pointer-events:none}.project-tape-blue{background-image:url(/decor/tape-blue-torn.png)}.project-tape-kraft{background-image:url(/decor/tape-kraft-torn.png)}.project-tape-graphite{--project-tape-filter:grayscale(0.9) brightness(0.7) contrast(0.88);background-image:url(/decor/tape-blue-torn.png);opacity:.62}.project-tape-cream{--project-tape-filter:brightness(1.08) saturate(0.62);background-image:url(/decor/tape-kraft-torn.png);opacity:.65}.project-tape-top-left{top:-20px;left:-31px;transform:rotate(14deg)}.project-tape-top-center{top:-21px;left:43%;transform:translateX(-50%) rotate(-5deg)}.project-tape-top-right{top:-18px;right:-29px;transform:rotate(9deg)}.project-tape-side-left{top:40%;left:-52px;width:124px;height:40px;transform:rotate(78deg)}.project-tape-side-right{top:37%;right:-52px;width:124px;height:40px;transform:rotate(-78deg)}.project-tape-bottom-left{bottom:-18px;left:-22px;width:118px;transform:rotate(8deg)}.project-tape-bottom-right{right:-19px;bottom:-18px;width:120px;transform:rotate(-9deg)}.project-tape-secondary-bottom{right:21%;bottom:-18px;width:101px;height:33px;opacity:.62;transform:rotate(7deg)}.project-tape-secondary-top{top:-18px;left:8%;width:99px;height:33px;opacity:.62;transform:rotate(-11deg)}.project-drag-handle{opacity:.48;transition:color .15s ease,opacity .15s ease,transform .15s ease}.project-paper-card.is-dragging .project-drag-handle,.project-paper-card:hover .project-drag-handle{opacity:1;transform:rotate(8deg) scale(1.08)}.project-drag-status{position:absolute;top:13px;right:40px;z-index:12;color:var(--cobalt);font-family:var(--font-hand),cursive;font-size:13px;opacity:0;pointer-events:none;transform:rotate(-2deg);transition:opacity .15s ease}.project-paper-card.is-dragging .project-drag-status,.project-paper-card:hover .project-drag-status{opacity:.78}:root:not([data-theme=dark]) .project-paper-card{filter:drop-shadow(6px 8px 0 rgba(24,40,74,.15)) drop-shadow(0 10px 18px rgba(24,40,74,.1))}:root:not([data-theme=dark]) .project-paper-card:hover{filter:drop-shadow(8px 10px 0 rgba(48,94,192,.18)) drop-shadow(0 14px 22px rgba(24,40,74,.11))}:root:not([data-theme=dark]) .project-paper-surface{border-color:rgba(24,40,74,.3)}@media (max-width:1180px){.project-paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-paper-slot,.project-paper-slot.project-slot-compact,.project-paper-slot.project-slot-standard,.project-paper-slot.project-slot-tall,.project-paper-slot.project-slot-wide{grid-column:auto}}@media (max-width:620px){.skills-section{padding:52px 0 56px}.skills-section .sketch-heading h2{font-size:49px}.skill-paper-strip{width:148px;min-height:158px;flex-basis:148px}.project-paper-grid{grid-template-columns:1fr}.project-card-size-compact,.project-card-size-standard,.project-card-size-tall,.project-card-size-wide,.project-paper-card{min-height:360px;transform:none}}.disable-draft-mode{position:fixed;right:18px;bottom:18px;z-index:10000;padding:10px 14px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-typewriter);box-shadow:4px 4px 0 var(--cobalt)}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:scale-105:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-10{opacity:.1}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-9xl{font-size:8rem;line-height:1}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/46bdd75a3ff56824-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Caveat Fallback;src:local("Arial");ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.00%;size-adjust:76.94%}.__className_ed2da7{font-family:Caveat,Caveat Fallback;font-style:normal}.__variable_ed2da7{--font-hand:"Caveat","Caveat Fallback"}