:root{--desktop-bg: #050833;--desktop-plum: #150a52;--desktop-ink: #10063d;--desktop-hot-pink: #ff91f3;--desktop-soft-pink: #fdc7e8;--desktop-pale-pink: #fff4fa;--desktop-lavender: #c8a9ff;--desktop-violet: #7a52ef;--desktop-cyan: #bdf5f8;--desktop-green: #4ccf28;--desktop-orange: #fdd99f;--desktop-yellow: #fff199;--desktop-brown: #4b2628;--desktop-outline: #63389a;--desktop-outline-soft: rgba(192, 162, 240, .34);--desktop-sticker: #fff4fa;--desktop-sticker-shadow: #e3d3fb;--desktop-panel-top: rgba(45, 25, 126, .9);--desktop-panel-bottom: rgba(9, 5, 48, .96);--desktop-panel-cute-top: rgba(88, 61, 174, .88);--desktop-panel-cute-bottom: rgba(31, 15, 94, .94);--desktop-scene-saturation: 1.38;--desktop-scene-contrast: 1.36;--desktop-scene-brightness: .92;--desktop-radius-lg: 20px;--desktop-radius-md: 14px;--desktop-radius-sm: 8px;--dock-icon-slot: clamp(80px, 7.4vw, 104px);--desktop-cast-shadow: rgba(4, 4, 36, .58);--desktop-cast-shadow-soft: rgba(16, 6, 61, .46);--desktop-magenta-glow: rgba(185, 104, 255, .32);--dock-art-scale: 1;--dock-art-y: 0px;--row-accent: var(--desktop-cyan);--comic-ink: #070229;--comic-ink-2: #160052;--comic-panel: rgba(26, 8, 93, .94);--comic-panel-hot: rgba(119, 32, 189, .92);--comic-shadow: rgba(2, 1, 18, .78);--comic-shadow-solid: #030016;--comic-magenta: #ff2fb3;--comic-title-fill: #ff91f3;--comic-title-stroke: #fff4fa;--comic-title-shadow: 1px 0 0 var(--comic-title-stroke), -1px 0 0 var(--comic-title-stroke), 0 1px 0 var(--comic-title-stroke), 0 -1px 0 var(--comic-title-stroke), 1px 1px 0 var(--comic-title-stroke), -1px 1px 0 var(--comic-title-stroke), 1px -1px 0 var(--comic-title-stroke), -1px -1px 0 var(--comic-title-stroke), 2px 0 0 var(--comic-ink), -2px 0 0 var(--comic-ink), 0 2px 0 var(--comic-ink), 0 -2px 0 var(--comic-ink), 2px 2px 0 var(--comic-ink), -2px 2px 0 var(--comic-ink), 2px -2px 0 var(--comic-ink), -2px -2px 0 var(--comic-ink), 5px 5px 0 var(--comic-shadow-solid), 8px 8px 0 rgba(53, 230, 255, .22);--comic-cyan: #4fd8ff;--comic-cream: #fff1c7;--panel-border-dark: #12052f;--panel-magenta: #ff27cf;--panel-cyan: #35e6ff;--panel-cream: #fff2bd;--panel-texture-opacity: .08;--panel-texture-muted: .035;--comic-panel-dark: #10033f;--comic-panel-mid: #2a0a78;--comic-panel-bright: #5d19bd;--desktop-edge-offset: clamp(16px, 2.2vw, 30px);--desktop-dock-bottom: clamp(8px, 1.6vh, 18px);--panel-border-width: 5px;--panel-shadow-offset: 8px;--panel-cut: 6px;--panel-fill: var(--comic-halftone), linear-gradient(180deg, #1b0a55 0%, #12043b 58%, #090125 100%);--panel-fill-muted: var(--comic-halftone), linear-gradient(180deg, #160747 0%, #0a022b 100%);--panel-fill-light: linear-gradient(90deg, rgba(7, 2, 41, .08) 1px, transparent 1px), linear-gradient(180deg, #fffdf4, #e5dfcf);--panel-outer-shadow: var(--panel-shadow-offset) var(--panel-shadow-offset) 0 var(--comic-shadow-solid);--panel-inner-shadow: inset 0 3px 0 rgba(255, 39, 207, .5), inset 0 -3px 0 rgba(53, 230, 255, .5);--panel-comic-shadow: var(--panel-outer-shadow), var(--panel-inner-shadow);--panel-accent-shadow: 0 0 0 transparent;--nav-cell-size: clamp(92px, 7.6vw, 112px);--ui-control-size: 30px;--titlebar-accent-size: clamp(36px, 5vw, 54px);--comic-border: var(--panel-border-width) solid var(--panel-border-dark);--comic-radius: 6px;--comic-step-corners: polygon( 0 var(--panel-cut), var(--panel-cut) 0, calc(100% - var(--panel-cut)) 0, 100% var(--panel-cut), 100% calc(100% - var(--panel-cut)), calc(100% - var(--panel-cut)) 100%, var(--panel-cut) 100%, 0 calc(100% - var(--panel-cut)) );--comic-hard-shadow: 8px 8px 0 var(--comic-shadow-solid);--comic-edge-light: inset 3px 3px 0 rgba(255, 39, 207, .66), inset -3px -3px 0 rgba(53, 230, 255, .64);--comic-edge-light-soft: inset 2px 2px 0 rgba(255, 39, 207, .38), inset -2px -2px 0 rgba(53, 230, 255, .34);--comic-register-shadow: -2px -2px 0 rgba(255, 47, 179, .7), 2px 2px 0 rgba(79, 216, 255, .62);--comic-halftone: radial-gradient(circle, rgba(255, 244, 250, .16) 0 1px, transparent 1.5px);--window-content-padding: clamp(24px, 3vw, 38px);--window-section-gap: 30px;--window-panel-gap: 18px;--window-header-gap: 10px;--window-heading-gap: 14px;--window-divider-gap: 22px;--window-text-measure: 68ch;--window-panel-padding: clamp(16px, 2.2vw, 24px);--desktop-viewport-height: 100vh}@supports (height: 100dvh){:root{--desktop-viewport-height: 100dvh}}html,body.desktop-page{min-height:100%;background:var(--desktop-bg)}body.desktop-page{overflow:hidden;color:var(--desktop-pale-pink);font-family:var(--font-body)}.desktop-shell{position:relative;width:100vw;height:var(--desktop-viewport-height);overflow:hidden;background:var(--desktop-bg);transform-origin:center}.desktop-shell:after{content:"";position:fixed;inset:14vh 18vw 24vh;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,rgba(3,1,22,.28),rgba(3,1,22,.18) 34%,rgba(3,1,22,.06) 58%,transparent 78%)}.desktop-shell.is-returning{animation:desktopZoomOut .52s cubic-bezier(.22,.78,.24,1) forwards}.desktop-wallpaper,.desktop-entry-overlay,.return-overlay{position:fixed;inset:0;background-color:var(--desktop-bg);background-position:center;background-size:cover;background-repeat:no-repeat;filter:none}.desktop-wallpaper{z-index:0;background-image:url(/images/screensaver.png)}.desktop-entry-overlay,.return-overlay{background-image:url(/images/screensaver.png);backface-visibility:hidden;will-change:opacity,transform}.desktop-entry-overlay:after,.return-overlay:after{content:"";position:absolute;left:50%;top:clamp(252px,calc(43vh + 26px),414px);width:clamp(540px,46.44vw,778px);max-width:calc(100vw - 48px);aspect-ratio:1338 / 229;background:url(/images/oslogo.png) center / contain no-repeat;filter:drop-shadow(4px 4px 0 var(--comic-ink)) drop-shadow(-1px -1px 0 var(--panel-cream));transform:translate(-50%,-50%)}.desktop-entry-overlay{z-index:9996;opacity:1;pointer-events:auto;transition:opacity .52s ease}.return-overlay{z-index:9996;opacity:0;transform:scale(1.08);transition:opacity .38s ease,transform .52s cubic-bezier(.22,.78,.24,1)}.desktop-entry-overlay.is-hidden{opacity:0;pointer-events:none}.return-overlay.is-visible{opacity:1;transform:scale(1)}.desktop-menu{position:fixed;top:var(--desktop-edge-offset);left:var(--desktop-edge-offset);right:var(--desktop-edge-offset);z-index:8;display:flex;align-items:center;justify-content:flex-end;gap:20px;color:var(--desktop-pale-pink);font-family:var(--font-pixel);text-shadow:2px 2px 0 rgba(5,8,51,.76),0 0 14px rgba(200,169,255,.34)}.menu-link{text-decoration:none;outline:none;position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 10px 9px;border:0;border-radius:0;clip-path:none;background:transparent;background-size:auto;box-shadow:none;filter:none;color:#d987d6;font-family:var(--font-pixel);font-weight:400;font-size:clamp(.9rem,1.05vw,1rem);line-height:1;letter-spacing:.04em;text-shadow:1px 0 0 #050015,-1px 0 0 #050015,0 1px 0 #050015,0 -1px 0 #050015,1px 1px 0 #050015,-1px 1px 0 #050015,1px -1px 0 #050015,-1px -1px 0 #050015,2px 0 0 #050015,-2px 0 0 #050015,0 2px 0 #050015,0 -2px 0 #050015,2px 2px 0 #050015,-2px 2px 0 #050015,2px -2px 0 #050015,-2px -2px 0 #050015,3px 0 0 #d9d7cf,-3px 0 0 #d9d7cf,0 3px 0 #d9d7cf,0 -3px 0 #d9d7cf,3px 3px 0 #d9d7cf,-3px 3px 0 #d9d7cf,3px -3px 0 #d9d7cf,-3px -3px 0 #d9d7cf,4px 0 0 #d9d7cf,-4px 0 0 #d9d7cf,0 4px 0 #d9d7cf,0 -4px 0 #d9d7cf,4px 4px 0 #d9d7cf,-4px 4px 0 #d9d7cf,4px -4px 0 #d9d7cf,-4px -4px 0 #d9d7cf,5px 5px 0 #050015;text-transform:lowercase;white-space:nowrap;transition:color .12s ease,transform .12s ease}.menu-link:after{content:"";position:absolute;right:0;bottom:1px;width:0;height:2px;background:#35e6ffb8;transition:width .12s ease}.menu-link:hover:after,.menu-link:focus-visible:after{width:100%}.menu-link:hover,.menu-link:focus-visible{color:#ef9ee8;transform:translateY(-1px)}.room-icon{position:relative;width:auto;height:auto;display:inline-block;flex:0 0 auto;border:0;background:transparent;box-shadow:none;color:inherit;font:inherit;line-height:1;text-shadow:inherit}.room-icon:before{content:"<"}.menu-link:focus-visible,.dock-item:focus-visible,.window-control:focus-visible{outline:2px solid var(--desktop-yellow);outline-offset:4px}.desktop-dock{position:fixed;left:50%;bottom:var(--desktop-dock-bottom);z-index:10;display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.1vw,18px);width:auto;min-width:0;max-width:calc(100vw - 32px);height:clamp(90px,7.5vw,108px);padding:0 clamp(12px,1.4vw,22px) 7px;border:0;border-bottom:0;border-radius:0;clip-path:none;background:linear-gradient(180deg,transparent 0 72%,rgba(3,1,22,.28) 72% 100%);background-size:auto;box-shadow:none;transform:translate(-50%);backdrop-filter:none;filter:contrast(1.12)}.dock-item{--dock-scale: 1;--dock-lift: 0px;position:relative;z-index:2;flex:0 0 var(--nav-cell-size);width:var(--nav-cell-size);height:100%;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:0;background:transparent;background-size:auto;box-shadow:none;color:var(--panel-cream);cursor:pointer;opacity:.92;transition:background .16s ease,box-shadow .16s ease,opacity .16s ease,transform .16s ease}.dock-item:before{content:"";position:absolute;left:50%;bottom:4px;width:32px;height:4px;border:0;background:var(--panel-cyan);opacity:0;pointer-events:none;transform:translate(-50%);transition:opacity .12s ease,width .12s ease,background .12s ease}.dock-item:hover,.dock-item:focus-visible,.dock-item.is-active{opacity:1}.dock-item:hover,.dock-item:focus-visible{background:transparent;background-size:auto;box-shadow:none;transform:none}.dock-item.is-active{background:transparent;background-size:auto;box-shadow:none;transform:none}.dock-item.is-active .dock-icon-wrap{background:transparent;box-shadow:none;filter:drop-shadow(3px 5px 0 rgba(4,4,36,.52)) drop-shadow(0 0 10px rgba(53,230,255,.28))}.dock-item.is-active{--dock-lift: -4px}.dock-item.is-active .dock-icon-art{filter:drop-shadow(1px 1px 0 rgba(255,255,255,.92)) drop-shadow(-1px 1px 0 rgba(255,255,255,.92)) drop-shadow(1px -1px 0 rgba(255,255,255,.92)) drop-shadow(-1px -1px 0 rgba(255,255,255,.92)) drop-shadow(0 0 8px rgba(255,242,189,.22)) saturate(1.16) contrast(1.05) brightness(1.08)}.dock-item:hover .dock-icon-wrap,.dock-item:focus-visible .dock-icon-wrap{filter:drop-shadow(3px 5px 0 rgba(4,4,36,.52))}.dock-item:hover,.dock-item:focus-visible{--dock-lift: -3px}.dock-item.is-active:hover,.dock-item.is-active:focus-visible{--dock-lift: -4px}.dock-item:hover .dock-icon-art,.dock-item:focus-visible .dock-icon-art{filter:drop-shadow(1px 1px 0 rgba(255,255,255,.92)) drop-shadow(-1px 1px 0 rgba(255,255,255,.92)) drop-shadow(1px -1px 0 rgba(255,255,255,.92)) drop-shadow(-1px -1px 0 rgba(255,255,255,.92)) drop-shadow(2px 2px 0 rgba(7,2,41,.44)) saturate(1.12) contrast(1.04) brightness(1.06)}.dock-item.is-active:hover .dock-icon-art,.dock-item.is-active:focus-visible .dock-icon-art{filter:drop-shadow(1px 1px 0 rgba(255,255,255,.95)) drop-shadow(-1px 1px 0 rgba(255,255,255,.95)) drop-shadow(1px -1px 0 rgba(255,255,255,.95)) drop-shadow(-1px -1px 0 rgba(255,255,255,.95)) drop-shadow(0 0 8px rgba(255,242,189,.22)) saturate(1.16) contrast(1.05) brightness(1.08)}.dock-icon-wrap{height:calc(var(--dock-icon-slot) * 1.34);width:calc(var(--dock-icon-slot) * 1.34);display:flex;align-items:center;justify-content:center;border-radius:0;padding:0;filter:drop-shadow(3px 3px 0 rgba(3,0,22,.68)) drop-shadow(-1px -1px 0 rgba(255,47,179,.16)) drop-shadow(1px 1px 0 rgba(79,216,255,.14));transition:filter .13s ease,transform 90ms linear;transform:translateY(var(--dock-lift)) scale(var(--dock-scale));will-change:transform}.dock-icon-art{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;backface-visibility:hidden;filter:drop-shadow(1px 1px 0 rgba(255,255,255,.92)) drop-shadow(-1px 1px 0 rgba(255,255,255,.92)) drop-shadow(1px -1px 0 rgba(255,255,255,.92)) drop-shadow(-1px -1px 0 rgba(255,255,255,.92)) drop-shadow(2px 2px 0 rgba(7,2,41,.42)) saturate(1.28) contrast(1.12) brightness(.98);transform:translateY(var(--dock-art-y)) scale(var(--dock-art-scale));transform-origin:center}.dock-item[data-app-id=projects]{--dock-art-scale: .92}.dock-item[data-app-id=about]{--dock-art-scale: 1.06}.dock-item[data-app-id=process]{--dock-art-scale: .94}.dock-item[data-app-id=mani]{--dock-art-scale: .99;--dock-art-y: 1px}.dock-item[data-app-id=contact]{--dock-art-scale: 1}.dock-hover-tag{position:fixed;z-index:80;padding:7px 11px 6px;border:3px solid var(--comic-ink);border-radius:0;clip-path:var(--comic-step-corners);color:var(--comic-ink);background:var(--comic-cream);box-shadow:4px 4px 0 var(--comic-shadow-solid),inset 2px 2px 0 var(--panel-magenta),inset -2px -2px 0 var(--panel-cyan);opacity:0;pointer-events:none;white-space:nowrap;font-family:var(--font-pixel);font-size:.76rem;font-weight:400;text-transform:uppercase;transform:translate(-50%,calc(-100% + 10px));transition:opacity .12s ease,transform .12s ease}.dock-hover-tag.is-visible{opacity:1;transform:translate(-50%,-100%)}.dock-item:hover:before,.dock-item:focus-visible:before,.dock-item.is-active:before{opacity:1}.dock-item:hover:before,.dock-item:focus-visible:before{width:26px;background:var(--panel-cream)}.window-layer{position:relative;z-index:30;width:100%;height:100%;pointer-events:none}.window-layer:before{content:"";position:fixed;inset:6vh 8vw 14vh;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgba(3,5,36,.36),rgba(3,5,36,.18) 42%,transparent 72%);filter:none}.desktop-landing-brand{position:fixed;left:50%;top:clamp(252px,calc(43vh + 26px),414px);z-index:5;width:clamp(500px,43vw,720px);max-width:calc(100vw - 48px);display:grid;justify-items:center;gap:clamp(8px,1vw,12px);color:var(--desktop-pale-pink);text-align:center;transform:translate(-50%,-50%) scale(1);transition:opacity .26s ease,transform .3s cubic-bezier(.22,.78,.24,1),visibility 0ms linear 0ms}.desktop-landing-brand__badge{width:100%;padding:0;border:0;border-radius:0;clip-path:none;background:transparent;box-shadow:none}.desktop-landing-brand__badge img{display:block;width:108%;height:auto;object-fit:contain;margin-inline:-4%;filter:drop-shadow(4px 4px 0 var(--comic-ink)) drop-shadow(-1px -1px 0 var(--panel-cream))}.desktop-shell.has-active-window .desktop-landing-brand{visibility:hidden;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.94);transition:opacity .18s ease,transform .22s cubic-bezier(.22,.78,.24,1),visibility 0ms linear .22s}.desktop-window{position:absolute;width:min(760px,calc(100vw - 72px));height:min(640px,calc(100vh - 260px));max-height:min(640px,calc(100vh - 260px));overflow:hidden;pointer-events:auto;border:var(--comic-border);border-radius:0;clip-path:var(--comic-step-corners);color:var(--desktop-pale-pink);background:var(--panel-fill);background-size:10px 10px,auto,auto;box-shadow:12px 12px 0 var(--comic-shadow-solid),var(--panel-inner-shadow);backdrop-filter:none;filter:contrast(1.1);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .18s ease,transform .18s ease}.desktop-window.is-open{opacity:1;transform:translateY(0) scale(1)}.desktop-window.is-maximized{width:calc(100vw - 24px);height:calc(var(--desktop-viewport-height) - 24px);max-height:calc(var(--desktop-viewport-height) - 24px)}.project-preview-window{width:clamp(360px,42vw,620px);height:auto;max-height:min(72vh,680px);background:linear-gradient(180deg,#140644fa,#090227fa);box-shadow:9px 9px 0 var(--comic-shadow-solid),inset 2px 2px #ff27cf5c,inset -2px -2px #35e6ff47}.project-preview-window .window-content{height:auto;max-height:calc(min(72vh,680px) - 54px);padding:clamp(16px,2vw,24px);background:linear-gradient(180deg,#0e033ac2,#080228e6)}.window-titlebar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:10px 12px 11px 19px;background:#1b0754;background-size:auto;color:var(--desktop-pale-pink);font-family:var(--font-pixel);box-shadow:inset 0 -4px 0 var(--comic-ink),inset 0 -5px 0 var(--panel-cyan);cursor:grab;user-select:none}.window-title-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.window-identity{min-width:0;display:flex;align-items:center;gap:11px}.window-system-icon{width:calc(var(--ui-control-size) - 4px);height:calc(var(--ui-control-size) - 4px);display:inline-grid;place-items:center;flex:0 0 auto;border:3px solid var(--comic-ink);border-radius:0;color:var(--comic-magenta);background:var(--comic-cream);box-shadow:3px 3px #04042494;font-size:.92rem}.window-path{overflow:hidden;color:var(--desktop-pale-pink);font-size:.84rem;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.window-path__slash{margin-inline:4px;color:var(--panel-cyan)}.window-controls{display:flex;gap:8px}.window-control{width:var(--ui-control-size);height:var(--ui-control-size);padding:0;border:3px solid var(--comic-ink);border-radius:0;color:var(--desktop-outline);display:inline-grid;place-items:center;flex:0 0 var(--ui-control-size);font:700 1rem/1 var(--font-pixel);cursor:pointer;box-shadow:3px 3px #04042494,inset 2px 2px #ffffff52}.window-glyph{position:relative;display:block;width:15px;height:15px;color:#10033f}.window-glyph--minimize:before{content:"";position:absolute;left:2px;right:2px;bottom:2px;height:3px;background:currentColor}.window-glyph--maximize:before{content:"";position:absolute;inset:2px;border:3px solid currentColor}.window-glyph--close:before{content:"♥";position:absolute;inset:0;display:grid;place-items:center;color:#10033f;font:700 1rem/1 var(--font-pixel);transform:translateY(-1px)}.window-close{background:var(--desktop-soft-pink)}.window-maximize{background:var(--desktop-cyan)}.window-back{background:var(--desktop-orange)}.window-content{overflow:auto;height:calc(100% - 54px);max-height:calc(min(640px,calc(100vh - 260px)) - 54px);padding:var(--window-content-padding);background:linear-gradient(180deg,#0e033ab8,#080228d6);background-size:auto;scrollbar-color:#3baec6 #080229;scrollbar-width:thin}.desktop-window.is-maximized .window-content{max-height:calc(var(--desktop-viewport-height) - 78px)}.desktop-window.is-maximized .window-content__shell--contact{max-width:none}.desktop-window.is-maximized .window-content__shell--contact .window-content__header,.desktop-window.is-maximized .window-content__shell--contact .window-content__body{width:min(100%,1320px);max-width:none}.desktop-window.is-maximized .window-content__shell--contact .window-panel{min-height:clamp(300px,48vh,520px);display:grid;align-items:center}.desktop-window.is-maximized .window-content__shell--contact .contact-stack{grid-template-columns:repeat(3,minmax(180px,1fr));align-items:center;gap:clamp(18px,3vw,48px)}.desktop-window.is-maximized .window-content__shell--contact .contact-method{grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(16px,2vh,24px);min-height:clamp(180px,22vh,260px);padding-inline:clamp(10px,2vw,28px);text-align:center}.desktop-window.is-maximized .window-content__shell--contact .contact-method__icon{width:clamp(112px,10vw,168px);height:clamp(112px,10vw,168px)}.desktop-window.is-maximized .window-content__shell--contact .contact-method__label{font-size:clamp(1rem,1.4vw,1.36rem)}.window-content__shell{min-height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:start;gap:var(--window-section-gap)}.window-content__shell--empty{grid-template-rows:auto minmax(170px,1fr)}.window-content__shell--single,.window-content__shell--document,.window-content__shell--contact{max-width:var(--window-text-measure)}.window-content__header{position:relative;display:grid;gap:var(--window-heading-gap);max-width:var(--window-text-measure);padding-bottom:var(--window-divider-gap)}.window-content__header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--panel-magenta),var(--panel-cyan));box-shadow:0 2px #02011280}.window-content__eyebrow{margin:0;color:var(--comic-cream);font:400 .8rem/1.2 var(--font-pixel);text-transform:uppercase;text-shadow:2px 2px 0 var(--comic-ink)}.window-content__title{margin:0;color:var(--comic-cream);font:400 clamp(1.78rem,4.1vw,3.55rem)/.92 var(--font-pixel);letter-spacing:0;text-shadow:4px 4px 0 var(--comic-ink),-1px -1px 0 rgba(255,47,179,.34),1px 1px 0 rgba(79,216,255,.28)}.window-content__intro{max-width:var(--window-text-measure);margin:0;color:#fff4fae6;font:1rem/1.58 var(--font-body)}.window-content__workspace{position:relative;min-height:100%;border:3px solid var(--comic-ink);clip-path:var(--comic-step-corners);background:linear-gradient(90deg,rgba(255,244,250,.012) 1px,transparent 1px),linear-gradient(180deg,rgba(255,244,250,.01) 1px,transparent 1px),linear-gradient(180deg,#0e033a66,#08022880);background-size:36px 36px,36px 36px,auto,auto;box-shadow:inset 3px 3px #ff27cf1f,inset -3px -3px #35e6ff24}.window-content__workspace:before,.window-content__workspace:after{content:"";position:absolute;width:28px;height:28px;pointer-events:none}.window-content__workspace:before{left:14px;top:14px;border-left:3px solid rgba(255,39,207,.36);border-top:3px solid rgba(255,39,207,.36)}.window-content__workspace:after{right:14px;bottom:14px;border-right:3px solid rgba(53,230,255,.38);border-bottom:3px solid rgba(53,230,255,.38)}.window-content__body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.38fr);gap:var(--window-panel-gap);align-items:start}.window-content__body--single-region,.window-content__shell--single .window-content__body,.window-content__shell--list .window-content__body,.window-content__shell--document .window-content__body,.window-content__shell--contact .window-content__body{grid-template-columns:minmax(0,1fr)}.window-content__shell--grid .window-content__body{grid-template-columns:repeat(2,minmax(0,1fr))}.window-panel{min-width:0;padding:var(--window-panel-padding);border:3px solid var(--comic-ink);border-radius:0;clip-path:var(--comic-step-corners);background:linear-gradient(180deg,#18074a,#0a022b);background-size:auto;box-shadow:5px 5px #020112ad,inset 0 2px #ff27cf66,inset 0 -2px #35e6ff6b}.window-content__shell--list .window-panel{padding:0;border:0;clip-path:none;background:transparent;box-shadow:none}.window-content__shell--contact .window-panel{padding-block:clamp(12px,1.5vw,18px)}.window-content__footer{display:flex;flex-wrap:wrap;gap:10px;align-self:end;padding-top:var(--window-header-gap)}.window-content::-webkit-scrollbar{width:7px}.window-content::-webkit-scrollbar-track{background:#070124;border-left:2px solid var(--comic-ink)}.window-content::-webkit-scrollbar-thumb{border:1px solid var(--comic-ink);border-radius:0;background:linear-gradient(180deg,#24316d,#3baec6)}.window-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3a1d78,#55c8d8)}.window-content h2:not(.window-content__title){margin:0 0 10px;font:400 clamp(1.78rem,4.1vw,3.55rem) var(--font-pixel);line-height:.92;letter-spacing:0;color:var(--desktop-pale-pink);text-shadow:4px 4px 0 var(--comic-ink),-1px -1px 0 rgba(255,47,179,.38),1px 1px 0 rgba(79,216,255,.32)}.window-content p:not(.window-content__eyebrow):not(.window-content__intro){max-width:62ch;margin:0 0 12px;font:1rem/1.58 var(--font-body);color:#fff4fae6}.project-list{display:grid;gap:10px;margin:4px 0 0;padding:0;list-style:none}.project-list li{margin:0}.project-row{border:2px solid rgba(7,2,41,.72);border-radius:0;clip-path:var(--comic-step-corners);background:linear-gradient(180deg,#18074ad1,#0a022be0);background-size:auto;box-shadow:3px 3px #0201126b,inset 1px 0 #ff27cf94,inset 0 -2px #35e6ff4d}.project-row{--project-card-x: 0px;--project-card-y: 0px;--project-card-angle: 0deg;--row-accent: var(--desktop-cyan);appearance:none;position:relative;width:100%;min-height:68px;display:grid;grid-template-columns:48px minmax(0,1fr) 34px;align-items:center;gap:14px;padding:11px 14px;border-color:#070229b8;color:var(--desktop-pale-pink);font:inherit;text-decoration:none;text-align:left;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.project-row:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--row-accent);opacity:.34;box-shadow:none;transition:opacity .18s ease,box-shadow .18s ease}.project-row[data-category=installation]{--row-accent: var(--desktop-cyan)}.project-row[data-category=projection]{--row-accent: var(--desktop-lavender)}.project-row[data-category=game]{--row-accent: var(--desktop-soft-pink)}.project-row[data-category=identity]{--row-accent: var(--desktop-yellow)}.project-row[data-category=media]{--row-accent: #9fb9ff}.project-row:hover,.project-row:focus-visible,.project-row[aria-pressed=true]{background:var(--comic-halftone),linear-gradient(180deg,#241064,#0d0335);background-size:auto;box-shadow:5px 5px #020112a3,inset 0 0 0 3px var(--panel-cream),inset 6px 6px 0 var(--panel-magenta),inset -6px -6px 0 var(--panel-cyan);border-color:var(--comic-ink);transform:translate(-1px,-1px)}.project-row:hover:before,.project-row:focus-visible:before,.project-row[aria-pressed=true]:before{opacity:1;box-shadow:0 0 12px var(--row-accent)}.project-row:focus-visible{outline:2px solid var(--desktop-yellow);outline-offset:3px}.project-thumb{width:48px;height:48px;display:inline-grid;place-items:center;border:3px solid var(--comic-ink);border-radius:0;clip-path:var(--comic-step-corners);color:var(--panel-cream);background:linear-gradient(180deg,#28115f,#0b032c);box-shadow:3px 3px #0201129e,inset 2px 2px #ff27cf52,inset -2px -2px #35e6ff38;font:400 .67rem/1 var(--font-pixel);text-transform:uppercase}.project-thumb img{width:100%;height:100%;display:block;object-fit:cover}.window-panel h3{margin:0 0 9px;color:var(--desktop-cyan);font:400 clamp(.78rem,1.2vw,.96rem)/1.25 var(--font-pixel);text-transform:uppercase;text-shadow:2px 2px 0 var(--comic-ink)}.window-panel h3:not(:first-child){margin-top:clamp(20px,2.4vw,30px)}.window-data-list{display:grid;gap:10px;margin:0;padding:0;color:#fff4fae6;list-style:none;font:.96rem/1.45 var(--font-body)}.window-data-list li{position:relative;padding-left:20px}.window-data-list li:before{content:">";position:absolute;left:0;top:.1em;color:var(--desktop-yellow);font-family:var(--font-pixel)}.resume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,42px)}.window-content .window-note{margin-top:clamp(24px,3vw,38px);padding-top:18px;border-top:2px solid rgba(53,230,255,.28);color:#fff4fab8}.project-thumb__extension{display:inline-block;max-width:100%;color:var(--comic-cream);text-shadow:2px 2px 0 var(--comic-ink),-1px -1px 0 rgba(255,47,179,.42),1px 1px 0 rgba(79,216,255,.36);-webkit-text-stroke:.35px var(--comic-ink);paint-order:stroke fill}.project-row:hover .project-thumb,.project-row:focus-visible .project-thumb,.project-row[aria-pressed=true] .project-thumb{box-shadow:3px 3px #0201129e,inset 0 0 0 2px var(--row-accent),inset 2px 2px #ff27cf61,inset -2px -2px #35e6ff47}.project-copy{min-width:0;display:grid;gap:8px}.project-name{min-width:0;overflow:hidden;font:400 clamp(.76rem,1.08vw,.9rem)/1.12 var(--font-pixel);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.project-meta{color:#e3d3fbe0;overflow:hidden;font:.84rem/1.35 var(--font-body);text-overflow:ellipsis;white-space:nowrap}.project-open{justify-self:end;width:30px;height:30px;display:inline-grid;place-items:center;border:2px solid rgba(7,2,41,.78);color:var(--panel-cream);background:#080228b8;box-shadow:2px 2px #02011294,inset 1px 1px #ff27cf52,inset -1px -1px #35e6ff3d;font-size:1.58rem;line-height:1;text-shadow:2px 2px 0 var(--comic-ink);transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.project-row:hover .project-open,.project-row:focus-visible .project-open,.project-row[aria-pressed=true] .project-open{border-color:var(--comic-ink);color:var(--desktop-yellow);background:#230c60eb;transform:translate(4px)}.project-preview{display:grid;grid-template-columns:minmax(140px,.86fr) minmax(0,1.14fr);gap:clamp(16px,2.2vw,24px);align-items:start}.project-preview__media{margin:0;border:3px solid var(--comic-ink);background:#080229;box-shadow:4px 4px #020112a3,inset 0 2px #ff27cf4d,inset 0 -2px #35e6ff47}.project-preview__media img{width:100%;aspect-ratio:4 / 3;display:block;object-fit:cover}.project-preview__copy{min-width:0;display:grid;gap:12px}.project-preview__eyebrow,.project-preview__details{margin:0;color:var(--desktop-cyan);font:400 .72rem/1.25 var(--font-pixel);text-transform:uppercase;text-shadow:2px 2px 0 var(--comic-ink)}.project-preview__title{margin:0;color:var(--comic-cream);font:400 clamp(1.45rem,3.4vw,2.55rem)/.94 var(--font-pixel);letter-spacing:0;text-shadow:4px 4px 0 var(--comic-ink),-1px -1px 0 rgba(255,47,179,.34),1px 1px 0 rgba(79,216,255,.28)}.project-preview__title:focus-visible{outline:2px solid var(--desktop-yellow);outline-offset:5px}.project-preview__description{max-width:48ch;margin:0;color:#fff4faeb;font:.98rem/1.5 var(--font-body)}.project-preview__tags,.project-preview__tools{display:flex;flex-wrap:wrap;gap:7px}.project-preview__tags span,.project-preview__tools span{min-height:28px;display:inline-flex;align-items:center;padding:5px 8px;border:1px solid rgba(189,245,248,.24);color:var(--desktop-pale-pink);background:#05011e75;font:400 .68rem/1.2 var(--font-pixel);text-transform:uppercase}.project-preview__tools span{color:#fff4fadb;font-family:var(--font-body);font-size:.82rem;text-transform:none}.project-preview__actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px}.project-preview__action{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border:2px solid var(--comic-ink);color:var(--comic-cream);background:#0d0335db;box-shadow:3px 3px #020112a3,inset 1px 1px #ff27cf52,inset -1px -1px #35e6ff42;font:400 .76rem/1.2 var(--font-pixel);text-decoration:none;text-transform:uppercase}.project-preview__action--primary{color:#10033f;background:var(--desktop-yellow)}.project-preview__action:hover,.project-preview__action:focus-visible{outline:2px solid var(--desktop-cyan);outline-offset:3px;transform:translate(-1px,-1px)}@keyframes desktopZoomOut{0%{opacity:1;transform:scale(1)}to{opacity:.72;transform:scale(.84)}}@keyframes desktopCrtFlicker{0%,to{opacity:.9}50%{opacity:.96}}.contact-stack{display:grid;gap:4px;margin-top:4px}.contact-method{display:grid;grid-template-columns:clamp(82px,9vw,112px) minmax(0,1fr);align-items:center;gap:clamp(18px,2.2vw,28px);min-height:clamp(76px,7vw,94px);padding:2px clamp(10px,1.4vw,18px);border:0;clip-path:none;background:transparent;box-shadow:none}.contact-method__icon{width:clamp(82px,9vw,112px);height:clamp(82px,9vw,112px);object-fit:contain;filter:drop-shadow(1px 1px 0 rgba(255,255,255,.92)) drop-shadow(-1px 1px 0 rgba(255,255,255,.92)) drop-shadow(1px -1px 0 rgba(255,255,255,.92)) drop-shadow(-1px -1px 0 rgba(255,255,255,.92)) drop-shadow(4px 4px 0 rgba(7,2,41,.58)) saturate(1.08) contrast(1.04) brightness(.94)}.contact-method__label{min-width:0;overflow:visible;padding-inline:6px;color:#d987d6;font:400 clamp(.9rem,1.25vw,1.08rem)/1.1 var(--font-pixel);letter-spacing:.04em;text-shadow:1px 0 0 #050015,-1px 0 0 #050015,0 1px 0 #050015,0 -1px 0 #050015,1px 1px 0 #050015,-1px 1px 0 #050015,1px -1px 0 #050015,-1px -1px 0 #050015,2px 0 0 #050015,-2px 0 0 #050015,0 2px 0 #050015,0 -2px 0 #050015,2px 2px 0 #050015,-2px 2px 0 #050015,2px -2px 0 #050015,-2px -2px 0 #050015,3px 0 0 #d9d7cf,-3px 0 0 #d9d7cf,0 3px 0 #d9d7cf,0 -3px 0 #d9d7cf,4px 0 0 #d9d7cf,-4px 0 0 #d9d7cf,0 4px 0 #d9d7cf,0 -4px 0 #d9d7cf,3px 3px 0 #d9d7cf,-3px 3px 0 #d9d7cf,3px -3px 0 #d9d7cf,-3px -3px 0 #d9d7cf,4px 3px 0 #d9d7cf,-4px 3px 0 #d9d7cf,4px -3px 0 #d9d7cf,-4px -3px 0 #d9d7cf,3px 4px 0 #d9d7cf,-3px 4px 0 #d9d7cf,3px -4px 0 #d9d7cf,-3px -4px 0 #d9d7cf,5px 0 0 #050015,0 5px 0 #050015,5px 4px 0 #050015,4px 5px 0 #050015,5px 5px 0 #050015,6px 6px 0 #050015;white-space:nowrap}.project-route-window-layer{z-index:30}.desktop-window--project-page{left:12px;top:12px;opacity:1;transform:none}.desktop-window--project-page .window-titlebar{cursor:default}.desktop-window--project-page .window-path{text-transform:uppercase}.project-page-back{text-decoration:none}.project-page-content{padding:clamp(22px,2.6vw,40px)}.project-page{width:100%;min-height:100%;display:grid;grid-template-columns:minmax(300px,.42fr) minmax(420px,.78fr);gap:clamp(24px,3.4vw,56px);align-items:start}.project-page__sidebar,.project-page__main{min-width:0}.project-page__sidebar{position:sticky;top:0;display:grid;gap:clamp(18px,2vw,28px)}.project-page__main{display:grid;gap:clamp(22px,2.5vw,34px)}.project-page__header{display:grid;gap:14px}.project-page__title{margin:0;color:var(--comic-title-fill);font:400 clamp(2rem,4.4vw,4.25rem)/.92 var(--font-pixel);letter-spacing:0;text-shadow:var(--comic-title-shadow)}.project-page__summary{margin:0;color:#fff4faeb;font:clamp(.96rem,1vw,1.08rem)/1.58 var(--font-body)}.project-hero{max-width:100%;border:3px solid var(--comic-ink);clip-path:var(--comic-step-corners);background:#090125;box-shadow:6px 6px #020112b3,inset 0 2px #ff27cf6b,inset 0 -2px #35e6ff6b}.project-hero__media{width:100%;max-height:min(56vh,620px);display:block;object-fit:cover}.project-page .project-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.project-page .project-meta__group{min-width:0;padding:11px 12px 12px;border-left:2px solid rgba(255,39,207,.46);border-bottom:2px solid rgba(53,230,255,.3);background:#0a022b73}.project-page .project-meta__group:nth-last-child(1):nth-child(odd){grid-column:1 / -1}.project-page .project-meta dt{margin:0 0 8px;color:var(--comic-cream);font:400 .8rem/1.2 var(--font-pixel);text-transform:uppercase;text-shadow:2px 2px 0 var(--comic-ink)}.project-links h2,.project-gallery h2,.project-credits h2{margin:0 0 12px;color:var(--comic-title-fill);font:400 clamp(1.2rem,2.2vw,1.8rem)/1.08 var(--font-pixel);text-transform:uppercase;text-shadow:var(--comic-title-shadow)}.project-page .project-meta dd{display:flex;flex-wrap:wrap;gap:6px;margin:0}.project-page .project-meta dd span,.project-links a,.project-navigation__link{min-width:0;color:var(--desktop-pale-pink);font:.95rem/1.35 var(--font-body)}.project-page .project-meta dd span{padding:4px 7px 5px;border:1px solid rgba(189,245,248,.22);background:#05011e75}.project-markdown{max-width:78ch;color:#fff4faf0;font:1rem/1.68 var(--font-body)}.project-markdown h2,.project-markdown h3{color:var(--comic-title-fill);font-family:var(--font-pixel);font-weight:400;line-height:1.08}.project-markdown h2{margin:42px 0 14px;font-size:clamp(1.45rem,3vw,2.3rem);text-shadow:var(--comic-title-shadow)}.project-markdown h3{margin:30px 0 10px;font-size:clamp(1.05rem,2vw,1.45rem);text-shadow:1px 0 0 var(--comic-title-stroke),-1px 0 0 var(--comic-title-stroke),0 1px 0 var(--comic-title-stroke),0 -1px 0 var(--comic-title-stroke),2px 2px 0 var(--comic-ink),4px 4px 0 var(--comic-shadow-solid)}.project-markdown p,.project-markdown ul,.project-markdown ol,.project-markdown blockquote,.project-markdown pre{margin:0 0 18px}.project-markdown ul,.project-markdown ol{padding-left:1.25rem}.project-markdown li+li{margin-top:6px}.project-markdown a,.project-links a,.project-navigation__link{color:var(--desktop-cyan);text-decoration:none}.project-markdown a:hover,.project-links a:hover,.project-navigation__link:hover{text-decoration:underline}.project-markdown blockquote{padding:12px 16px;border-left:3px solid var(--panel-magenta);background:#05011e7a}.project-markdown code{color:var(--comic-cream);font-family:Courier New,monospace}.project-markdown pre{overflow:auto;padding:14px;border:2px solid var(--comic-ink);background:#070124}.project-markdown img,.project-gallery img,.project-gallery video{max-width:100%;height:auto}.project-markdown hr{height:2px;margin:32px 0;border:0;background:linear-gradient(90deg,var(--panel-magenta),var(--panel-cyan))}.project-links,.project-gallery,.project-credits,.project-navigation{max-width:100%}.project-links__list{display:flex;flex-wrap:wrap;gap:10px}.project-links a,.project-navigation__link{padding:10px 12px;border:2px solid var(--comic-ink);clip-path:var(--comic-step-corners);background:#0a022bc7;box-shadow:3px 3px #02011299,inset 1px 1px #ff27cf5c,inset -1px -1px #35e6ff47;font-family:var(--font-pixel);text-transform:uppercase}.project-gallery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.project-gallery__item{margin:0}.project-gallery__item img,.project-gallery__item video{display:block;border:3px solid var(--comic-ink);background:#070124}.project-gallery figcaption{margin-top:8px;color:#fff4fac2;font:.92rem/1.45 var(--font-body)}.project-credits dl{display:grid;gap:8px;margin:0}.project-credits div{display:grid;grid-template-columns:minmax(110px,.24fr) minmax(0,1fr);gap:12px}.project-credits dt{color:var(--comic-cream);font-family:var(--font-pixel);text-transform:uppercase}.project-credits dd{margin:0;color:#fff4fae6}.project-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:8px}.project-navigation__link{display:grid;gap:6px}.project-navigation__link--next{text-align:right}.project-navigation__link span{color:var(--comic-cream);font-size:.74rem}.project-navigation__link strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1120px){.project-page{grid-template-columns:minmax(0,1fr);gap:24px}.project-page__sidebar{position:static}.project-page .project-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media(max-width:760px){.desktop-entry-overlay:after,.return-overlay:after{top:clamp(188px,34vh,300px);width:min(92vw,420px);max-width:calc(100vw - 44px)}.resume-grid{grid-template-columns:minmax(0,1fr)}.desktop-menu{top:max(10px,env(safe-area-inset-top));left:10px;right:10px;overflow:visible}.menu-link{max-width:calc(100vw - 20px);font-size:clamp(.72rem,3.4vw,.86rem)}.desktop-dock{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));z-index:70;gap:clamp(4px,1.4vw,7px);width:auto;max-width:none;height:104px;align-items:flex-end;justify-content:center;overflow-x:visible;overflow-y:visible;padding:18px 6px 12px;bottom:max(10px,env(safe-area-inset-bottom));scrollbar-width:none;transform:none}.desktop-dock::-webkit-scrollbar{display:none}.dock-item{flex:1 1 0;min-width:0;width:auto;max-width:72px}.dock-icon-wrap{--dock-icon-slot: clamp(44px, 12vw, 54px)}.dock-hover-tag{font-size:.72rem}.desktop-landing-brand{top:clamp(188px,34vh,300px);width:min(92vw,420px);max-width:calc(100vw - 44px);gap:9px}.desktop-landing-brand__badge{padding:0;border-width:4px;overflow:visible;box-shadow:none}.desktop-landing-brand__badge img{width:100%;max-width:100%;margin-inline:0}.desktop-window{left:14px!important;top:64px!important;translate:0 0!important;width:calc(100vw - 28px);height:calc(var(--desktop-viewport-height) - 178px);max-height:calc(var(--desktop-viewport-height) - 178px)}.desktop-window.is-maximized{width:calc(100vw - 28px);height:calc(var(--desktop-viewport-height) - 178px);max-height:calc(var(--desktop-viewport-height) - 178px)}.desktop-window--project-page.is-maximized{height:calc(var(--desktop-viewport-height) - 76px);max-height:calc(var(--desktop-viewport-height) - 76px)}.project-preview-window{left:12px!important;top:54px!important;width:calc(100vw - 24px);max-height:calc(var(--desktop-viewport-height) - 154px)}.window-titlebar{grid-template-columns:minmax(0,1fr) auto}.window-path{font-size:.76rem}.window-content{height:calc(100% - 54px);max-height:calc(var(--desktop-viewport-height) - 232px);padding:20px}.desktop-window.is-maximized .window-content{max-height:calc(var(--desktop-viewport-height) - 232px)}.desktop-window--project-page.is-maximized .window-content{max-height:calc(var(--desktop-viewport-height) - 130px)}.project-preview-window .window-content{max-height:calc(var(--desktop-viewport-height) - 208px);padding:16px}.window-content__shell{gap:18px}.window-content__shell--empty{grid-template-rows:auto minmax(130px,1fr)}.window-content__body,.window-content__shell--grid .window-content__body{grid-template-columns:minmax(0,1fr)}.window-panel{padding:16px}.window-content__eyebrow{font-size:.74rem}.window-content__title{font-size:clamp(1.65rem,12vw,2.5rem)}.window-content__workspace{min-height:130px;background-size:28px 28px,28px 28px,auto,auto}.window-content h2{font-size:clamp(1.65rem,12vw,2.5rem)}.project-row{grid-template-columns:42px minmax(0,1fr) 30px;gap:11px;min-height:74px;padding:12px}.project-thumb{width:42px;height:42px;font-size:.6rem}.project-preview{grid-template-columns:minmax(0,1fr)}.project-preview__media img{max-height:34vh}.project-preview__actions{position:sticky;bottom:-16px;margin-inline:-16px;padding:10px 16px 0;background:linear-gradient(180deg,#08022800,#080228fa 30%)}.project-preview__action{flex:1 1 100%}.desktop-shell:after{inset:96px 10px 168px;background:radial-gradient(ellipse at 50% 40%,rgba(255,244,250,.14),rgba(189,245,248,.07) 32%,transparent 74%)}.desktop-window.is-maximized .window-content__shell--contact .contact-stack{grid-template-columns:minmax(0,1fr)}.desktop-window.is-maximized .window-content__shell--contact .contact-method{grid-template-columns:clamp(82px,9vw,112px) minmax(0,1fr);justify-items:start;min-height:clamp(76px,7vw,94px);text-align:left}.desktop-window.is-maximized .window-content__shell--contact .contact-method__icon{width:clamp(82px,9vw,112px);height:clamp(82px,9vw,112px)}.project-page-content{padding:20px}.project-page{grid-template-columns:minmax(0,1fr);gap:22px}.project-page__title{font-size:clamp(1.65rem,11vw,3rem)}.project-page .project-meta,.project-gallery__grid,.project-navigation{grid-template-columns:minmax(0,1fr)}.project-navigation__link--next{text-align:left}.project-credits div{grid-template-columns:minmax(0,1fr);gap:4px}}@media(prefers-reduced-motion:reduce){.desktop-entry-overlay,.return-overlay,.desktop-window,.dock-hover-tag,.dock-item,.dock-icon-wrap,.project-row,.project-row:before,.project-open{transition-duration:80ms}.desktop-shell.is-returning{animation-duration:90ms}}.desktop-shell{--desktop-rail-width: clamp(276px, 19vw, 318px);--desktop-workspace-gap: 32px;--comic-ink: var(--manichu-ink);--comic-shadow-solid: var(--manichu-ink);--panel-cream: var(--manichu-cream);--comic-cream: var(--manichu-cream);--panel-magenta: var(--manichu-magenta);--comic-magenta: var(--manichu-magenta);--panel-cyan: var(--manichu-cyan);--comic-cyan: var(--manichu-cyan);background:var(--manichu-ink)}.desktop-shell:before{display:none}.desktop-shell:after{inset:14vh 18vw 24vh;z-index:2;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--manichu-ink) 28%,transparent),color-mix(in srgb,var(--manichu-ink) 18%,transparent) 34%,color-mix(in srgb,var(--manichu-ink) 6%,transparent) 58%,transparent 78%)}.desktop-wallpaper{inset:0;background-image:url(/images/screensaver.png);background-position:center;filter:none}.desktop-menu{top:0;left:0;right:0;min-height:38px;padding:4px 9px 4px 13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:clamp(10px,1.4vw,22px);color:var(--comic-ink);background:var(--panel-cream);border:0;border-bottom:3px solid var(--comic-ink);box-shadow:inset 0 -2px color-mix(in srgb,var(--manichu-magenta) 50%,transparent),0 3px color-mix(in srgb,var(--manichu-ink) 72%,transparent);text-shadow:none}.desktop-menu__brand,.desktop-menu__status,.desktop-menu__clock{margin:0;font-family:var(--font-pixel);line-height:1;white-space:nowrap}.desktop-menu__brand{display:inline-flex;align-items:center;gap:8px;font-size:clamp(.74rem,1vw,.9rem)}.desktop-menu__mark{color:var(--panel-magenta);font-size:1rem;text-shadow:2px 2px 0 var(--comic-ink)}.desktop-menu__status{min-width:0;overflow:hidden;color:color-mix(in srgb,var(--manichu-ink) 58%,transparent);font-size:.62rem;letter-spacing:.09em;text-overflow:ellipsis}.desktop-menu__clock{color:var(--comic-ink);font-size:.68rem}.menu-link{min-height:28px;padding:6px 10px 5px;border:2px solid var(--comic-ink);color:var(--panel-cream);background:var(--comic-ink);box-shadow:3px 3px 0 var(--panel-magenta);font-size:clamp(.61rem,.78vw,.72rem);text-shadow:none;clip-path:polygon(5px 0,100% 0,calc(100% - 5px) 100%,0 100%);transition:transform .12s cubic-bezier(.2,1.5,.4,1),box-shadow .12s ease}.menu-link:after{display:none}.menu-link:hover,.menu-link:focus-visible{color:var(--panel-cream);transform:translate(-2px,-2px) rotate(-1deg);box-shadow:5px 5px 0 var(--panel-cyan)}.desktop-dock{left:var(--desktop-workspace-gap);top:50%;bottom:auto;width:var(--desktop-rail-width);height:auto;max-width:none;max-height:calc(var(--desktop-viewport-height) - 92px);padding:0;display:grid;grid-auto-rows:52px;align-content:start;justify-content:start;justify-items:start;gap:clamp(7px,.85vh,9px);overflow:visible;border:0;background:transparent;box-shadow:none;transform:translateY(-50%) scale(1.08);transform-origin:left center;scrollbar-width:none;filter:none;clip-path:none}.desktop-dock::-webkit-scrollbar{display:none}.dock-item{--dock-lift: 0px;--dock-face: var(--panel-cream);--dock-accent: var(--panel-magenta);--dock-width: 100%;--dock-x: 0px;--dock-angle: -1.8deg;--dock-hover-angle: -.5deg;--dock-height: 44px;--dock-icon-size: 29px;--dock-shadow-x: 6px;--dock-shadow-y: 6px;--dock-shape: polygon( 0 9px, 9px 0, calc(100% - 24px) 0, 100% 46%, calc(100% - 18px) 100%, 6px 100%, 0 calc(100% - 9px) );position:relative;isolation:isolate;width:var(--dock-width);height:var(--dock-height);min-height:var(--dock-height);align-self:center;display:grid;grid-template-columns:var(--dock-icon-size) minmax(0,1fr);align-items:center;gap:7px;padding:3px 13px 3px 9px;border:0;color:var(--comic-ink);background:transparent;box-shadow:none;clip-path:none;filter:none;overflow:visible;opacity:1;text-align:left;transition:color .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease,transform 135ms cubic-bezier(.16,1.42,.32,1);transform:translate(var(--dock-x)) rotate(var(--dock-angle)) scale(var(--dock-scale))}.dock-item:nth-child(2){--dock-width: 92%;--dock-x: 22px;--dock-angle: 1.4deg;--dock-hover-angle: .35deg;--dock-height: 40px;--dock-icon-size: 26px;--dock-accent: var(--panel-cyan);--dock-shadow-x: 5px;--dock-shape: polygon(8px 0, 100% 5px, calc(100% - 8px) 100%, 0 100%, 5px 52%)}.dock-item:nth-child(3){--dock-width: 98%;--dock-x: 2px;--dock-angle: -.8deg;--dock-hover-angle: .2deg;--dock-height: 42px;--dock-icon-size: 28px;--dock-shape: polygon(0 0, calc(100% - 17px) 0, 100% 13px, calc(100% - 9px) 100%, 12px 100%, 0 calc(100% - 12px) , 6px 45%)}.dock-item:nth-child(4){--dock-width: 87%;--dock-x: 36px;--dock-angle: 2deg;--dock-hover-angle: .55deg;--dock-height: 39px;--dock-icon-size: 25px;--dock-accent: var(--panel-cyan);--dock-shadow-x: 5px;--dock-shadow-y: 5px;--dock-shape: polygon(7px 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 5px 48%)}.dock-item:nth-child(5){--dock-width: 96%;--dock-x: 12px;--dock-angle: -1.25deg;--dock-hover-angle: -.15deg;--dock-height: 41px;--dock-icon-size: 27px;--dock-shape: polygon(0 8px, 9px 0, 100% 0, calc(100% - 8px) calc(100% - 8px) , calc(100% - 18px) 100%, 0 100%, 5px 48%)}.dock-item:before,.dock-item:after{content:"";position:absolute;inset:0;width:auto;height:auto;opacity:1;clip-path:var(--dock-shape);pointer-events:none}.dock-item:after{z-index:0;background:var(--comic-ink);transform:translate(var(--dock-shadow-x),var(--dock-shadow-y));transition:transform .12s cubic-bezier(.2,1.5,.4,1)}.dock-item:before{z-index:1;display:block;background:var(--dock-face);transform:none}.desktop-dock .dock-item:hover:before,.desktop-dock .dock-item:focus-visible:before,.desktop-dock .dock-item.is-active:before{inset:0;width:auto;height:auto;opacity:1;background:var(--dock-face);transform:none}.dock-item:hover,.dock-item:focus-visible,.dock-item.is-active,.dock-item:hover:focus-visible{--dock-lift: 0px;--dock-face: var(--panel-cyan);color:var(--comic-ink);box-shadow:none;filter:none;transform:translate(calc(var(--dock-x) + 10px)) rotate(var(--dock-hover-angle)) scale(var(--dock-scale))}.dock-item.is-active{--dock-face: var(--panel-cyan);background:transparent;box-shadow:none;filter:none;transform:translate(calc(var(--dock-x) + 10px)) rotate(var(--dock-hover-angle)) scale(var(--dock-scale))}.dock-item:active{transform:translate(calc(var(--dock-x) + 6px)) rotate(var(--dock-angle)) scale(.97)}.dock-item:hover:after,.dock-item:focus-visible:after,.dock-item.is-active:after{transform:translate(calc(var(--dock-shadow-x) + 3px),calc(var(--dock-shadow-y) + 3px))}.dock-icon-wrap{position:relative;z-index:2;width:var(--dock-icon-size);height:var(--dock-icon-size);filter:drop-shadow(3px 3px 0 color-mix(in srgb,var(--manichu-ink) 72%,transparent));transform:none;transition:transform 135ms cubic-bezier(.16,1.42,.32,1)}.dock-icon-wrap:after{content:none}.dock-item:nth-child(2n) .dock-icon-wrap:after{content:none}.dock-item:hover .dock-icon-wrap,.dock-item:focus-visible .dock-icon-wrap,.dock-item.is-active .dock-icon-wrap{filter:drop-shadow(2px 3px 0 color-mix(in srgb,var(--manichu-ink) 48%,transparent));transform:translateY(-1px) scale(1.035)}.dock-icon-art,.dock-item:hover .dock-icon-art,.dock-item:focus-visible .dock-icon-art,.dock-item.is-active .dock-icon-art,.dock-item.is-active:hover .dock-icon-art,.dock-item.is-active:focus-visible .dock-icon-art{filter:drop-shadow(1px 1px 0 var(--panel-cream)) drop-shadow(-1px -1px 0 var(--panel-cream)) drop-shadow(2px 2px 0 var(--comic-ink)) saturate(1.16) contrast(1.08)}.dock-item__label{position:relative;z-index:2;min-width:0;overflow:visible;overflow-wrap:normal;word-break:normal;white-space:nowrap;color:currentColor;width:100%;max-width:100%;justify-self:stretch;text-align:left;font:900 clamp(.54rem,.6vw,.64rem)/1.2 var(--font-pixel);letter-spacing:-.01em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;text-shadow:1px 1px 0 color-mix(in srgb,var(--panel-cream) 58%,transparent)}.dock-item[data-app-id=about] .dock-item__label{font-size:clamp(.51rem,.56vw,.6rem)}.dock-item__label:before{content:none}.dock-item:hover .dock-item__label,.dock-item:focus-visible .dock-item__label,.dock-item.is-active .dock-item__label{text-shadow:2px 2px 0 color-mix(in srgb,var(--panel-cream) 68%,transparent)}.dock-item:hover .dock-icon-wrap:after,.dock-item:focus-visible .dock-icon-wrap:after,.dock-item.is-active .dock-icon-wrap:after{content:none}.dock-hover-tag{display:none}.desktop-landing-brand{left:50%;top:clamp(252px,calc(43vh + 26px),414px);width:clamp(500px,43vw,720px);gap:clamp(8px,1vw,12px)}.desktop-landing-brand__badge{position:relative;padding:0;background:transparent;clip-path:none;filter:none}.desktop-landing-brand__badge:before{display:none}.desktop-landing-brand__badge img{width:108%;margin-inline:-4%;filter:drop-shadow(4px 4px 0 var(--comic-ink)) drop-shadow(-1px -1px 0 var(--panel-cream))}.window-layer:before{inset:48px 10px 10px 154px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--manichu-ink) 36%,transparent),transparent 70%)}.desktop-window{width:min(1240px,calc(100vw - var(--desktop-rail-width) - 48px));height:min(720px,calc(var(--desktop-viewport-height) - 64px));max-height:min(720px,calc(var(--desktop-viewport-height) - 64px));overflow:hidden;border:0;color:var(--panel-cream);background:var(--comic-ink);box-shadow:none;filter:drop-shadow(8px 9px 0 var(--comic-shadow-solid)) drop-shadow(-3px 4px 0 color-mix(in srgb,var(--manichu-magenta) 78%,transparent));clip-path:polygon(8px 0,calc(100% - 10px) 0,100% 9px,100% calc(100% - 12px),calc(100% - 12px) 100%,7px 100%,0 calc(100% - 8px),0 8px);transition:opacity .16s ease,transform .16s cubic-bezier(.2,1.25,.32,1)}.desktop-shell .window-layer:not(.project-route-window-layer)>.desktop-window{isolation:isolate;filter:drop-shadow(9px 10px 0 color-mix(in srgb,var(--comic-ink) 96%,transparent))}.desktop-shell .window-layer:not(.project-route-window-layer)>.desktop-window:after{content:none}.desktop-shell .window-layer:not(.project-route-window-layer)>.desktop-window:not(.is-window-front){filter:brightness(.78) saturate(.8) drop-shadow(8px 9px 0 color-mix(in srgb,var(--comic-ink) 96%,transparent))}.desktop-shell .window-layer:not(.project-route-window-layer)>.desktop-window.is-window-front{filter:drop-shadow(10px 11px 0 color-mix(in srgb,var(--comic-ink) 98%,transparent)) drop-shadow(-2px 2px 0 color-mix(in srgb,var(--panel-magenta) 62%,transparent))}.desktop-window.is-open{animation:comicWindowSnap .26s cubic-bezier(.2,1.35,.32,1) both}.desktop-window.is-open.is-dragging{transition:none;transform:none;will-change:left,top}.desktop-window.is-maximized{width:calc(100vw - 176px);height:calc(var(--desktop-viewport-height) - 24px);max-height:calc(var(--desktop-viewport-height) - 24px)}.window-titlebar{min-height:48px;padding:7px 9px 9px 13px;color:var(--comic-ink);background:var(--panel-cyan);box-shadow:inset 0 -4px 0 var(--comic-ink),inset 0 -7px 0 var(--panel-magenta);touch-action:none}.desktop-window.is-dragging .window-titlebar,.is-dragging-window .window-titlebar{cursor:grabbing}.is-dragging-window,.is-dragging-window body{user-select:none}.desktop-window.is-maximized .window-titlebar{cursor:default}.window-identity{gap:9px}.window-system-icon{width:27px;height:27px;border:2px solid var(--comic-ink);color:var(--comic-ink);background:var(--panel-cream);box-shadow:3px 3px 0 var(--comic-ink)}.window-path{color:var(--comic-ink);font-size:clamp(.62rem,.82vw,.76rem)}.window-path__slash{color:var(--panel-magenta)}.window-controls{gap:6px}.window-control{width:27px;height:27px;flex-basis:27px;border:2px solid var(--comic-ink);box-shadow:2px 2px 0 var(--comic-ink);transition:transform 90ms ease,box-shadow 90ms ease}.window-control:hover,.window-control:focus-visible{transform:translate(-1px,-1px) scale(1.06);box-shadow:3px 3px 0 var(--comic-ink)}.window-control:active{transform:translate(2px,2px) scale(.94);box-shadow:0 0 0 var(--comic-ink)}.window-content{height:calc(100% - 48px);max-height:none;padding:clamp(18px,2.2vw,30px);background:var(--manichu-ink)}.desktop-window.is-maximized .window-content{max-height:calc(var(--desktop-viewport-height) - 72px)}.window-content__shell{gap:clamp(16px,2vh,22px)}.window-content__header{position:relative;width:min(82%,740px);padding:clamp(16px,2vw,24px) clamp(19px,2.7vw,34px) clamp(17px,2vw,25px);color:var(--comic-ink);background:var(--panel-cream);box-shadow:none;filter:drop-shadow(6px 6px 0 var(--comic-ink)) drop-shadow(4px 4px 0 var(--panel-magenta));clip-path:polygon(13px 0,calc(100% - 7px) 0,100% 10px,calc(100% - 10px) 100%,8px calc(100% - 3px),0 calc(100% - 14px),0 9px);transform:rotate(-.8deg);z-index:3}.window-content__header:after{display:none}.window-content__eyebrow{position:static;display:inline-flex;width:fit-content;max-width:100%;margin:0 0 8px -7px;padding:6px 12px 7px;color:var(--comic-ink);background:var(--panel-cyan);box-shadow:none;filter:drop-shadow(4px 4px 0 var(--comic-ink));clip-path:polygon(7px 0,100% 0,calc(100% - 6px) 100%,0 calc(100% - 3px),0 6px);font-size:clamp(.58rem,.72vw,.68rem);text-shadow:none;transform:rotate(1.2deg)}.window-content__eyebrow:before{content:none}.window-content__title{color:var(--comic-ink);font-size:clamp(2rem,3.9vw,3.8rem);line-height:.88;letter-spacing:-.035em;overflow:visible;text-shadow:2px 2px 0 var(--panel-cream),4px 4px 0 color-mix(in srgb,var(--manichu-cyan) 72%,transparent)}.window-content__intro{max-width:58ch;color:color-mix(in srgb,var(--manichu-ink) 76%,transparent);font-weight:700}.window-content__body,.window-content__shell--grid .window-content__body{gap:clamp(14px,1.8vw,20px)}.window-panel{position:relative;border:3px solid var(--comic-ink);color:var(--comic-ink);background:var(--manichu-cream);box-shadow:none;filter:drop-shadow(5px 5px 0 var(--comic-ink)) drop-shadow(3px 3px 0 color-mix(in srgb,var(--manichu-cyan) 55%,transparent));clip-path:polygon(8px 0,calc(100% - 5px) 0,100% 7px,100% calc(100% - 10px),calc(100% - 11px) 100%,0 100%,0 8px)}.window-content__shell--grid .window-panel:nth-child(2n){transform:rotate(.35deg) translateY(3px);box-shadow:none;filter:drop-shadow(5px 5px 0 var(--comic-ink)) drop-shadow(3px 3px 0 color-mix(in srgb,var(--manichu-magenta) 55%,transparent))}.window-panel h3,.window-content h2:not(.window-content__title){color:var(--comic-ink);text-shadow:2px 2px 0 var(--panel-cyan)}.window-content p:not(.window-content__eyebrow):not(.window-content__intro),.window-data-list,.window-content .window-note{color:color-mix(in srgb,var(--manichu-ink) 86%,transparent)}.window-content .window-note{border-top-color:color-mix(in srgb,var(--manichu-magenta) 40%,transparent)}.window-data-list li:before{color:var(--panel-magenta)}.window-content__shell--list .window-panel{filter:none}.project-browser-toolbar{position:absolute;top:-54px;right:7px;z-index:5;width:fit-content;max-width:100%;margin:0;display:flex;align-items:stretch;filter:drop-shadow(4px 4px 0 var(--comic-ink));transform:none}.project-sort-label{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px 8px 14px;color:var(--comic-ink);background:var(--panel-cyan);clip-path:polygon(5px 0,100% 0,100% 100%,0 100%,0 5px);font:400 clamp(.55rem,.64vw,.66rem)/1 var(--font-pixel);text-transform:uppercase;white-space:nowrap}.project-sort{min-height:38px;max-width:min(210px,48vw);margin-left:-3px;padding:7px 34px 7px 13px;border:0;border-radius:0;color:var(--comic-ink);background:var(--panel-cream);clip-path:polygon(0 0,100% 0,calc(100% - 6px) 100%,0 100%);font:700 clamp(.72rem,.78vw,.84rem)/1.2 var(--font-body);cursor:pointer}.project-sort:focus-visible{outline:3px solid var(--panel-magenta);outline-offset:3px}.project-list{isolation:isolate;overflow:visible;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:clamp(14px,1.25vw,18px);padding:4px 8px 18px 3px}.project-list li{position:relative;z-index:0;min-width:0;grid-column:auto;width:100%;justify-self:stretch}.project-list li:has(.project-row:hover),.project-list li:has(.project-row:focus-visible),.project-list li:has(.project-row[aria-pressed=true]){z-index:10}.project-list li:last-child{grid-column:auto;width:100%;justify-self:stretch}.project-row{--project-card-shape: polygon( 0 10px, 12px 0, calc(100% - 11px) 0, 100% 11px, calc(100% - 7px) calc(100% - 9px) , calc(100% - 16px) 100%, 8px 100%, 0 calc(100% - 12px) );min-height:118px;height:100%;grid-template-columns:minmax(0,1fr) 32px;grid-template-rows:auto;align-items:center;gap:13px;padding:20px 15px 14px 18px;isolation:isolate;overflow:visible;border:0;color:var(--comic-ink);background:transparent;box-shadow:none;filter:none;transform:translate(var(--project-card-x),var(--project-card-y)) rotate(var(--project-card-angle));clip-path:none;transition:color .13s ease,background .13s ease,filter .13s ease,transform .13s cubic-bezier(.2,1.45,.36,1)}.project-list li:nth-child(2n) .project-row{--project-card-shape: polygon( 7px 0, calc(100% - 13px) 0, 100% 9px, 100% calc(100% - 11px) , calc(100% - 10px) 100%, 10px calc(100% - 3px) , 0 calc(100% - 14px) , 0 8px )}.project-list li:nth-child(3n+1) .project-row{--project-card-angle: -.2deg}.project-list li:nth-child(3n+2) .project-row{--project-card-y: 0px;--project-card-angle: .15deg}.project-list li:nth-child(3n) .project-row{--project-card-x: 0px;--project-card-angle: -.1deg}.project-row:before,.project-row:after{content:"";position:absolute;inset:0;width:auto;height:auto;clip-path:var(--project-card-shape);pointer-events:none}.project-row:before{display:block;z-index:0;background:#160728;box-shadow:none;transform:translate(4px,4px)}.project-row:after{z-index:1;background:var(--panel-cream);box-shadow:none;transition:background .12s ease,transform .12s cubic-bezier(.2,1.45,.36,1)}.project-row>*{position:relative;z-index:2}.project-row:hover,.project-row:focus-visible,.project-row[aria-pressed=true]{color:var(--comic-ink);background:transparent;box-shadow:none;filter:none;transform:translate(-2px,-3px) rotate(-.25deg) scale(1.025);z-index:4}.project-row:hover:after,.project-row:focus-visible:after{background:var(--panel-cream);transform:translate(-2px,-2px)}.project-row[aria-pressed=true]:after{background:var(--panel-cyan);transform:translate(-2px,-2px)}.project-row:hover:before,.project-row:focus-visible:before,.project-row[aria-pressed=true]:before{display:block;transform:translate(5px,5px)}.project-thumb{position:absolute;left:15px;top:-7px;z-index:3;width:auto;min-width:48px;height:25px;padding:0 9px;display:inline-grid;place-items:center;border:0;color:var(--comic-ink);background:var(--panel-cyan);box-shadow:none;filter:drop-shadow(3px 3px 0 var(--comic-ink));clip-path:polygon(5px 1px,88% 0,100% 42%,94% 100%,0 88%,0 6px);transform:rotate(-1.5deg)}.project-thumb__extension{color:var(--comic-ink);text-shadow:none;-webkit-text-stroke:0}.project-copy{grid-column:1;min-width:0;display:grid;align-self:center;align-content:center;gap:8px}.project-name{overflow:visible;overflow-wrap:anywhere;font-size:clamp(.68rem,.72vw,.8rem);line-height:1.25;text-overflow:clip;white-space:normal}.project-meta{color:color-mix(in srgb,var(--manichu-ink) 68%,transparent);font-size:clamp(.67rem,.65vw,.76rem);line-height:1.35;white-space:normal}.project-row:hover .project-meta,.project-row:focus-visible .project-meta,.project-row[aria-pressed=true] .project-meta{color:color-mix(in srgb,var(--manichu-ink) 70%,transparent)}.project-open{grid-column:2;align-self:center;justify-self:end;width:30px;height:28px;border:0;background:var(--panel-magenta);color:var(--comic-ink);box-shadow:none;clip-path:polygon(0 0,68% 0,100% 50%,68% 100%,0 100%,16% 50%);filter:drop-shadow(3px 3px 0 var(--comic-ink));font:900 1.08rem/1 var(--font-body);text-shadow:none;transform:none}.project-row:hover .project-open,.project-row:focus-visible .project-open,.project-row[aria-pressed=true] .project-open{color:var(--comic-ink);background:var(--panel-magenta);transform:translate(4px) scale(1.04)}.project-preview-window{width:clamp(430px,43vw,680px);height:auto;max-height:min(72vh,680px);background:var(--comic-ink);filter:drop-shadow(9px 10px 0 var(--comic-shadow-solid)) drop-shadow(-5px 6px 0 var(--panel-cyan))}.project-preview-window .window-content{height:auto;max-height:calc(min(72vh,680px) - 48px);padding:clamp(16px,2vw,24px);background:var(--manichu-ink)}.project-preview:not(:has(.project-preview__media)){grid-template-columns:minmax(0,1fr)}.project-preview:not(:has(.project-preview__media)) .project-preview__copy{gap:10px}.project-preview:not(:has(.project-preview__media)) .project-preview__title{max-width:18ch;color:var(--panel-cream);font-size:clamp(1.7rem,3.1vw,2.4rem);-webkit-text-stroke:0;text-shadow:3px 3px 0 var(--comic-ink),5px 5px 0 var(--panel-magenta)}.project-preview-window .project-preview__copy p.project-preview__description{color:color-mix(in srgb,var(--manichu-cream) 92%,transparent)}.window-close{background:var(--manichu-magenta)}.window-maximize{background:var(--manichu-cyan)}.window-back{background:var(--manichu-cream)}.project-preview-window .project-preview__copy p.project-preview__details{color:var(--panel-cyan)}.project-preview__media{box-shadow:6px 6px 0 var(--panel-magenta)}.project-preview__action{border:3px solid var(--comic-ink);background:var(--panel-cream);color:var(--comic-ink);box-shadow:none;filter:drop-shadow(4px 4px 0 var(--comic-ink)) drop-shadow(3px 3px 0 var(--panel-magenta));clip-path:polygon(5px 0,100% 0,calc(100% - 7px) 100%,0 100%);transition:transform .12s cubic-bezier(.2,1.5,.4,1),filter .12s ease}.project-preview__action--primary{background:var(--panel-cyan)}.project-preview__action:hover,.project-preview__action:focus-visible{transform:translate(4px,-2px) scale(1.03);box-shadow:none;filter:drop-shadow(6px 6px 0 var(--comic-ink)) drop-shadow(4px 4px 0 var(--panel-magenta))}@keyframes comicWindowSnap{0%{opacity:0;transform:translate(-34px,22px) rotate(-2deg) scale(.92)}72%{opacity:1;transform:translate(5px,-3px) rotate(.4deg) scale(1.015)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}.project-route-shell{--project-window-inset: clamp(12px, 1.35vw, 24px)}.project-route-shell .desktop-menu{z-index:80}.project-route-shell .project-route-window-layer{z-index:40}.project-route-shell .desktop-window--project-page{left:var(--project-window-inset)!important;top:52px!important;width:calc(100vw - (var(--project-window-inset) * 2));height:calc(var(--desktop-viewport-height) - 66px);max-height:calc(var(--desktop-viewport-height) - 66px);translate:0 0!important;filter:drop-shadow(8px 8px 0 var(--comic-ink)) drop-shadow(-3px 4px 0 var(--panel-magenta))}.project-route-shell .project-page-content,.project-route-shell .desktop-window--project-page.is-maximized .project-page-content{height:calc(100% - 48px);max-height:none;padding:clamp(20px,2.5vw,38px);overflow-x:hidden;overflow-y:auto;background:var(--manichu-ink);scrollbar-color:var(--panel-cyan) var(--comic-ink);scroll-padding-top:18px}.project-route-shell .project-page{width:min(100%,1540px);min-height:0;margin:0 auto;display:grid;grid-template-columns:clamp(320px,29vw,430px) minmax(0,1fr);gap:clamp(26px,3.4vw,54px);align-items:start}.project-route-shell .project-page__sidebar,.project-route-shell .project-page__main,.project-route-shell .project-page__main>*{min-width:0}.project-route-shell .project-page__sidebar{position:static;display:grid;gap:24px;overflow:visible}.project-route-shell .project-page__header{position:relative;z-index:3;display:grid;gap:12px;padding:clamp(22px,2.5vw,34px);color:var(--comic-ink);background:var(--panel-cream);clip-path:polygon(13px 0,calc(100% - 8px) 0,100% 11px,calc(100% - 11px) 100%,8px calc(100% - 3px),0 calc(100% - 15px),0 9px);filter:drop-shadow(7px 7px 0 var(--comic-ink)) drop-shadow(4px 4px 0 var(--panel-magenta));transform:rotate(-.7deg)}.project-route-shell .project-page__header .window-content__eyebrow{margin:0 0 5px -8px;padding:7px 12px 8px;background:var(--panel-cyan);color:var(--comic-ink);filter:drop-shadow(4px 4px 0 var(--comic-ink));transform:rotate(1.4deg)}.project-route-shell .project-page__title{max-width:12ch;margin:0;color:var(--comic-ink);font:400 clamp(2rem,3.65vw,4rem)/.92 var(--font-pixel);letter-spacing:-.035em;overflow-wrap:anywhere;text-shadow:2px 2px 0 var(--panel-cream),4px 4px 0 var(--panel-cyan)}.project-route-shell .project-page__summary{max-width:42ch;margin:0;color:color-mix(in srgb,var(--manichu-ink) 86%,transparent);font:700 clamp(.96rem,1.05vw,1.08rem)/1.55 var(--font-body)}.project-page__category-strip{display:flex;flex-wrap:wrap;gap:5px 9px;width:fit-content;max-width:calc(100% + 22px);margin:5px -13px -6px auto;padding:9px 14px 10px;color:var(--comic-ink);background:var(--panel-magenta);clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 calc(100% - 3px),0 6px);filter:drop-shadow(5px 5px 0 var(--comic-ink));font:400 clamp(.58rem,.7vw,.68rem)/1.35 var(--font-pixel);text-transform:uppercase;transform:rotate(1deg)}.project-page__category-strip span:not(:last-child):after{content:" /"}.project-route-shell .project-page .project-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;overflow:visible}.project-route-shell .project-page .project-meta__group{min-width:0;padding:13px 14px 15px;border:0;color:var(--comic-ink);background:var(--panel-cream);clip-path:polygon(7px 0,100% 0,100% calc(100% - 8px),calc(100% - 9px) 100%,0 100%,0 7px);filter:drop-shadow(4px 4px 0 var(--comic-ink))}.project-route-shell .project-page .project-meta__group:nth-child(3n+1){background:var(--panel-cyan);transform:rotate(-.45deg)}.project-route-shell .project-page .project-meta__group:nth-child(3n){transform:rotate(.4deg)}.project-route-shell .project-page .project-meta__group:nth-last-child(1):nth-child(odd){grid-column:1 / -1}.project-route-shell .project-page .project-meta dt{margin:0 0 8px;color:var(--comic-ink);font:400 .68rem/1.25 var(--font-pixel);text-transform:uppercase;text-shadow:1px 1px 0 var(--panel-magenta)}.project-route-shell .project-page .project-meta dd{display:flex;flex-wrap:wrap;gap:3px 0;margin:0;color:var(--comic-ink)}.project-route-shell .project-page .project-meta dd span{padding:0;border:0;color:var(--comic-ink);background:transparent;font:700 .84rem/1.4 var(--font-body)}.project-route-shell .project-page .project-meta dd span:not(:last-child):after{content:" / ";color:var(--panel-magenta);font-weight:900;white-space:pre}.project-route-shell .project-page__main{display:grid;gap:clamp(24px,3vw,38px);padding:4px 9px 18px 0}.project-route-shell .project-hero{margin:0;border:0;background:var(--comic-ink);clip-path:polygon(10px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 10px);box-shadow:none;filter:drop-shadow(7px 7px 0 var(--comic-ink)) drop-shadow(4px 4px 0 var(--panel-cyan))}.project-route-shell .project-hero__media{max-height:min(62vh,700px)}.project-route-shell .project-markdown,.project-route-shell .project-links,.project-route-shell .project-gallery,.project-route-shell .project-credits{position:relative;max-width:none;padding:clamp(24px,3.2vw,46px);color:var(--comic-ink);background:var(--panel-cream);clip-path:polygon(10px 0,calc(100% - 7px) 0,100% 9px,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 10px);filter:drop-shadow(7px 7px 0 var(--comic-ink)) drop-shadow(4px 4px 0 color-mix(in srgb,var(--manichu-cyan) 68%,transparent))}.project-route-shell .project-markdown{font:clamp(.98rem,1.04vw,1.08rem)/1.72 var(--font-body)}.project-route-shell .project-markdown h2,.project-route-shell .project-markdown h3,.project-route-shell .project-links h2,.project-route-shell .project-gallery h2,.project-route-shell .project-credits h2{width:fit-content;max-width:100%;color:var(--comic-ink);font-family:var(--font-pixel);font-weight:400;line-height:1.1;text-transform:uppercase;text-shadow:none}.project-route-shell .project-markdown h2,.project-route-shell .project-links h2,.project-route-shell .project-gallery h2,.project-route-shell .project-credits h2{margin:42px 0 18px -10px;padding:9px 13px 10px;background:var(--panel-magenta);clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%,0 6px);filter:drop-shadow(4px 4px 0 var(--comic-ink));font-size:clamp(1.15rem,2vw,1.75rem);transform:rotate(-.45deg)}.project-route-shell .project-markdown h2:first-child{margin-top:0}.project-route-shell .project-markdown h3{margin:30px 0 12px;padding:7px 11px 8px;background:var(--panel-cyan);clip-path:polygon(5px 0,100% 0,calc(100% - 5px) 100%,0 100%);filter:drop-shadow(3px 3px 0 var(--comic-ink));font-size:clamp(.92rem,1.5vw,1.2rem)}.project-route-shell .project-markdown p,.project-route-shell .project-markdown li,.project-route-shell .project-credits dd,.project-route-shell .project-gallery figcaption{color:color-mix(in srgb,var(--manichu-ink) 88%,transparent)}.project-route-shell .project-markdown a{color:color-mix(in srgb,var(--manichu-magenta) 72%,var(--manichu-ink));font-weight:900;text-decoration-thickness:2px}.project-route-shell .project-markdown blockquote{border:0;border-left:7px solid var(--panel-magenta);color:var(--comic-ink);background:color-mix(in srgb,var(--manichu-cyan) 28%,var(--manichu-cream));clip-path:polygon(0 0,100% 0,calc(100% - 7px) 100%,0 100%)}.project-route-shell .project-markdown pre{border:0;color:var(--panel-cream);background:var(--comic-ink);filter:drop-shadow(4px 4px 0 var(--panel-magenta))}.project-route-shell .project-markdown hr{height:6px;background:var(--panel-magenta);box-shadow:12px 6px 0 var(--panel-cyan)}.project-route-shell .project-links h2,.project-route-shell .project-gallery h2,.project-route-shell .project-credits h2{margin-top:0}.project-route-shell .project-links__list{gap:12px}.project-route-shell .project-links a,.project-route-shell .project-navigation__link{min-height:46px;padding:12px 16px;border:0;color:var(--comic-ink);background:var(--panel-cyan);clip-path:polygon(7px 0,100% 0,calc(100% - 9px) 100%,0 100%,0 7px);box-shadow:none;filter:drop-shadow(5px 5px 0 var(--comic-ink));font:400 clamp(.64rem,.82vw,.78rem)/1.35 var(--font-pixel);text-decoration:none;transition:transform .13s cubic-bezier(.2,1.45,.36,1),filter .13s ease}.project-route-shell .project-links a:hover,.project-route-shell .project-links a:focus-visible,.project-route-shell .project-navigation__link:hover,.project-route-shell .project-navigation__link:focus-visible{text-decoration:none;transform:translate(5px,-2px) rotate(-.5deg) scale(1.025);filter:drop-shadow(6px 6px 0 var(--comic-ink)) drop-shadow(3px 3px 0 var(--panel-magenta))}.project-route-shell .project-gallery__grid{gap:clamp(16px,2vw,24px)}.project-route-shell .project-gallery__item img,.project-route-shell .project-gallery__item video{border:0;clip-path:polygon(7px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 7px);filter:drop-shadow(5px 5px 0 var(--comic-ink))}.project-route-shell .project-credits dl{gap:12px}.project-route-shell .project-credits div{padding-bottom:10px;border-bottom:3px solid color-mix(in srgb,var(--manichu-magenta) 42%,transparent)}.project-route-shell .project-credits dt{color:var(--comic-ink);text-shadow:1px 1px 0 var(--panel-cyan)}.project-route-shell .project-navigation{gap:clamp(16px,2vw,24px);padding:4px 6px 12px;overflow:visible}.project-route-shell .project-navigation__link{display:grid;align-content:center;gap:7px;background:var(--panel-cyan)}.project-route-shell .project-navigation__link--next{background:var(--panel-magenta)}.project-route-shell .project-navigation__link span,.project-route-shell .project-navigation__link strong{color:var(--comic-ink)}.project-route-shell .project-navigation__link strong{text-overflow:clip;white-space:normal}@media(max-width:1120px){.project-route-shell .project-page{grid-template-columns:minmax(0,1fr);gap:30px}.project-route-shell .project-page__sidebar{position:static}.project-route-shell .project-page__header{width:min(84%,720px)}.project-route-shell .project-page__title{max-width:16ch}.project-route-shell .project-page .project-meta{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}@media(max-width:760px){.project-route-shell{--project-window-inset: 6px}.project-route-shell .desktop-window--project-page,.project-route-shell .desktop-window--project-page.is-maximized{left:var(--project-window-inset)!important;top:48px!important;width:calc(100vw - (var(--project-window-inset) * 2));height:calc(var(--desktop-viewport-height) - 54px);max-height:calc(var(--desktop-viewport-height) - 54px)}.project-route-shell .project-page-content,.project-route-shell .desktop-window--project-page.is-maximized .project-page-content{height:calc(100% - 46px);max-height:none;padding:16px 14px 28px}.project-route-shell .window-path{font-size:clamp(.54rem,2.5vw,.68rem)}.project-route-shell .project-page{gap:22px}.project-route-shell .project-page__header{width:calc(100% - 8px);padding:20px 18px 23px;transform:rotate(-.25deg)}.project-route-shell .project-page__title{max-width:100%;font-size:clamp(1.7rem,10.5vw,2.8rem)}.project-route-shell .project-page__summary{font-size:.96rem}.project-page__category-strip{max-width:100%;margin-right:-6px;font-size:.56rem}.project-route-shell .project-page .project-meta{grid-template-columns:minmax(0,1fr)}.project-route-shell .project-page .project-meta__group,.project-route-shell .project-page .project-meta__group:nth-last-child(1):nth-child(odd){grid-column:auto}.project-route-shell .project-page__main{gap:22px;padding-right:4px}.project-route-shell .project-markdown,.project-route-shell .project-links,.project-route-shell .project-gallery,.project-route-shell .project-credits{padding:22px 18px 26px}.project-route-shell .project-markdown h2,.project-route-shell .project-links h2,.project-route-shell .project-gallery h2,.project-route-shell .project-credits h2{margin-left:-5px;font-size:clamp(1rem,5vw,1.35rem);transform:none}.project-route-shell .project-gallery__grid,.project-route-shell .project-navigation{grid-template-columns:minmax(0,1fr)}.project-route-shell .project-navigation__link--next{text-align:left}}@media(prefers-reduced-motion:reduce){.project-route-shell .project-page__header,.project-route-shell .project-meta__group,.project-route-shell .project-links a,.project-route-shell .project-navigation__link{transform:none;transition-duration:80ms}}@media(max-width:1120px)and (min-width:761px){.desktop-shell{--desktop-rail-width: 204px}.desktop-dock{width:var(--desktop-rail-width);transform:translateY(-50%) scale(1.03)}.dock-item{grid-template-columns:var(--dock-icon-size) minmax(0,1fr)}.dock-icon-wrap{width:var(--dock-icon-size);height:var(--dock-icon-size)}.desktop-window{width:min(860px,calc(100vw - 224px))}.project-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.project-browser-toolbar{position:relative;top:auto;right:auto;margin:1px 7px 18px auto}.project-list li,.project-list li:nth-child(1),.project-list li:nth-child(4),.project-list li:nth-child(5),.project-list li:nth-child(6),.project-list li:last-child{grid-column:auto;width:100%;justify-self:stretch}}@media(max-width:760px){.desktop-shell{--desktop-rail-width: 0px}.desktop-shell:before{inset:4px;border-width:3px}.desktop-menu{top:4px;left:4px;right:4px;min-height:42px;grid-template-columns:minmax(0,1fr) auto;padding:5px 7px 6px 10px;border-width:3px}.desktop-menu__status,.desktop-menu__clock{display:none}.desktop-menu__brand{font-size:.66rem}.menu-link{min-height:30px;max-width:none;font-size:.56rem}.desktop-dock{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:auto;bottom:max(8px,env(safe-area-inset-bottom));width:auto;height:74px;max-height:none;display:flex;align-items:stretch;gap:4px;padding:4px 5px 5px;overflow:visible;transform:none}.dock-item{width:auto;min-height:54px;height:54px;grid-template-columns:minmax(0,1fr);grid-template-rows:34px auto;justify-items:center;gap:3px;padding:5px 3px;text-align:center}.desktop-dock .dock-item,.desktop-dock .dock-item:nth-child(2n),.desktop-dock .dock-item:nth-child(3n){width:auto;transform:rotate(calc(var(--dock-angle) * .35)) scale(var(--dock-scale))}.desktop-dock .dock-item:hover,.desktop-dock .dock-item:focus-visible,.desktop-dock .dock-item.is-active{transform:translateY(-7px) rotate(var(--dock-hover-angle)) scale(var(--dock-scale))}.dock-item:before{display:block}.dock-icon-wrap{width:34px;height:34px}.dock-item__label{max-width:100%;font-size:clamp(.41rem,1.75vw,.52rem);line-height:1.15;text-align:center}.desktop-landing-brand{left:50%;top:clamp(188px,34vh,300px);width:min(88vw,440px)}.desktop-landing-brand__badge{padding:0}.window-layer:before{inset:46px 8px 112px}.desktop-window,.desktop-window.is-maximized{left:12px!important;top:54px!important;width:calc(100vw - 24px);height:calc(var(--desktop-viewport-height) - 166px);max-height:calc(var(--desktop-viewport-height) - 166px)}.project-preview-window{top:52px!important;max-height:calc(var(--desktop-viewport-height) - 154px)}.window-titlebar{min-height:46px}.window-content,.desktop-window.is-maximized .window-content{height:calc(100% - 46px);max-height:calc(var(--desktop-viewport-height) - 212px);padding:17px 15px 21px}.window-content__header{width:calc(100% - 8px);padding:15px 16px 17px;transform:rotate(-.4deg)}.window-content__header:after{right:-18px;width:32px}.window-content__title{font-size:clamp(1.85rem,11vw,3rem)}.project-list{grid-template-columns:minmax(0,1fr);grid-auto-flow:row;gap:12px}.project-browser-toolbar{position:relative;top:auto;right:auto;margin:0 4px 16px auto}.project-list li,.project-list li:nth-child(1),.project-list li:nth-child(4),.project-list li:nth-child(5),.project-list li:nth-child(6),.project-list li:last-child{grid-column:auto;width:100%;justify-self:stretch}.project-row{min-height:104px;grid-template-columns:minmax(0,1fr) 30px;grid-template-rows:auto;align-items:center;padding:20px 14px 14px 16px}.project-thumb{left:13px;top:-6px;width:auto;min-width:44px;height:24px;padding-inline:8px}.project-name{font-size:.64rem}.project-meta{font-size:.72rem}.window-panel,.window-content__shell--grid .window-panel:nth-child(2n){transform:none}}@media(prefers-reduced-motion:reduce){.desktop-window.is-open{animation:none}.dock-item,.menu-link,.window-control,.project-row,.project-preview__action{transition-duration:80ms}}
