:root{font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;color:#303333;background:#e4e5e3;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #316ed4;outline-offset:5px}button{border:0}a{color:inherit}.menubar{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 23px;background:#f6f7f5d9;border-bottom:1px solid #b9bdb86b;box-shadow:0 1px 8px #00000003;position:relative;z-index:1000;user-select:none;gap:20px}.menu-left,.status{display:flex;align-items:center;gap:21px;font-size:13px;white-space:nowrap}.menu-left strong{font-size:13px;font-weight:600}.identity{font-size:19px;font-weight:750;letter-spacing:-1.5px;background:transparent;padding:4px 0}.identity-dot{color:#5c7369}.menu-divider{height:13px;width:1px;background:#cbd0c9}.menu-about{font-size:13px;background:transparent;padding:7px 0}.status{gap:18px;font-size:12px}.location{display:flex;align-items:center;gap:6px}.location svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3}time{font-variant-numeric:tabular-nums;min-width:142px;text-align:right}.desktop{position:relative;height:calc(100dvh - 43px);min-height:300px;isolation:isolate;background:#e4e5e3}.desktop-icon{position:absolute;top:32%;left:calc(43% - 95px);width:190px;padding:10px 5px 14px;border-radius:12px;background:transparent;display:flex;align-items:center;flex-direction:column;touch-action:manipulation;transition:background .18s}.davinci-icon{left:calc(62% - 95px);top:calc(32% - 8px)}.desktop-icon:hover{background:#ffffff34}.desktop-icon:focus-visible{outline-offset:0}.desktop-icon:active .object-wrap{transform:scale(.97)}.object-wrap{display:flex;justify-content:center;align-items:center;width:180px;height:153px;transition:transform .25s}.object-wrap img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 12px 7px #363c3820)}.byton-icon img{height:130px}.davinci-icon .object-wrap img{width:140px;mix-blend-mode:multiply;filter:none}.icon-label{font-size:14px;font-weight:500;letter-spacing:-.2px;padding:4px 8px;margin-top:12px;border-radius:4px}.icon-subtitle{font-size:11px;letter-spacing:.1px;color:#7b807c;margin-top:3px}.desktop-icon:hover .icon-label{background:#ffffff6b}.window{position:fixed;top:calc(50% + 15px);left:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 48px));height:min(690px,calc(100dvh - 90px));border:1px solid #a1a8a280;border-radius:12px;background:#fafbf9;box-shadow:0 25px 80px #25372b30,0 4px 12px #25372b12;overflow:hidden;z-index:2;resize:both;min-width:330px;min-height:240px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 62px)}[hidden]{display:none!important}.titlebar{height:43px;display:flex;align-items:center;justify-content:center;position:relative;background:#eceeeaeF;border-bottom:1px solid #d6d9d2;cursor:grab;touch-action:none;user-select:none}.titlebar:active{cursor:grabbing}.titlebar h2{font-size:13px;font-weight:600;margin:0}.window-controls{position:absolute;left:15px;display:flex;gap:9px}.window-controls button{width:13px;height:13px;border-radius:50%;padding:0;border:1px solid #0000001a;position:relative}.close{background:#ee8177}.maximize{background:#91b595}.close:hover:after{content:'×';position:absolute;inset:-3px 0 0;font-size:14px;color:#643e35}.maximize:hover:after{content:'+';position:absolute;inset:-2px 0 0;font-size:12px;color:#3c5d3b}.window-kind{position:absolute;right:18px;font-size:9px;letter-spacing:1px;color:#929891}.window-body{height:calc(100% - 43px);overflow:auto;overscroll-behavior:contain}.project-cover{height:250px;background:#e4e7e4;overflow:hidden}.project-cover img{width:100%;height:100%;object-fit:cover}.project-content{padding:35px 44px 42px}.kicker{font-size:10px;font-weight:600;letter-spacing:1.2px;color:#798179}.project-content h3{font-size:38px;line-height:1.13;font-weight:500;letter-spacing:-1.6px;margin:20px 0}.project-content p{font-size:16px;line-height:1.65;color:#646c64}.project-content .lead{font-size:18px;line-height:1.5}.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:23px 0;margin:25px 0;border-block:1px solid #d9ddd5}.project-facts dt{font-size:11px;color:#80877d;margin-bottom:7px}.project-facts dd{font-size:14px;margin:0;line-height:1.5}.project-content h4{font-size:17px;font-weight:600;margin:30px 0 5px}.project-link{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid #c6cec2;text-decoration:none;font-size:14px;margin-top:30px}.project-link:hover{color:#397551}.about-window{width:min(560px,calc(100vw - 40px));height:min(540px,calc(100dvh - 90px))}.window.expanded{top:51px!important;left:8px!important;transform:none!important;width:calc(100vw - 16px)!important;height:calc(100dvh - 59px)!important;max-width:none;max-height:none;resize:none}.window.inactive{box-shadow:0 12px 50px #25372b18}.window.inactive .titlebar{color:#9b9f99}@media(max-width:650px){.menubar{padding:0 13px;gap:10px}.menu-left{gap:12px}.menu-about,.menu-left .menu-divider,.menu-left strong,.status .menu-divider{display:none}.status{gap:14px;font-size:11px}.location svg{display:none}time{min-width:0}.desktop-icon{left:calc(28% - 80px);width:160px;top:31%}.davinci-icon{left:calc(73% - 80px);top:calc(31% - 8px)}.object-wrap{width:145px;height:140px}.davinci-icon .object-wrap img{width:120px}.byton-icon img{height:105px}.icon-label{font-size:13px}.icon-subtitle{font-size:10px}.window{width:calc(100vw - 20px);max-width:calc(100vw - 20px);height:calc(100dvh - 73px);min-width:0;resize:none;border-radius:9px}.project-cover{height:180px}.project-content{padding:27px 25px}.project-content h3{font-size:31px}.project-facts{grid-template-columns:1fr}.window-kind{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.davinci-icon .object-wrap img{mix-blend-mode:normal;filter:drop-shadow(0 10px 6px #363c381a)}
.desktop-icon{left:calc(50% - 230px)}.davinci-icon{left:calc(50% + 40px);top:32%}@media(max-width:650px){.desktop-icon{left:calc(25% - 80px);top:31%}.davinci-icon{left:calc(75% - 80px);top:31%}}
/* Desktop experiments and direct manipulation */
.desktop-icon{left:calc(50% - 300px);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.davinci-icon{left:calc(50% - 95px)}.lab-icon{left:calc(50% + 110px);top:32%}.desktop-icon.dragging{cursor:grabbing;background:#ffffff45;z-index:1;transition:none}.desktop-icon.dragging .object-wrap{transform:scale(1.035)}.lab-object{font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif;font-size:105px;filter:drop-shadow(0 10px 6px #363c3820)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lab-window{width:min(940px,calc(100vw - 40px))}.lab-heading{padding:32px 30px 20px;display:flex;align-items:end;gap:30px;justify-content:space-between}.lab-heading h3{font-size:27px;font-weight:500;letter-spacing:-1px;margin:9px 0 0}.lab-heading p{max-width:220px;font-size:13px;color:#7b827a;line-height:1.5;margin:0}.lab-gallery{padding:8px 30px 30px;columns:2;column-gap:18px}.lab-gallery figure{margin:0 0 22px;break-inside:avoid;background:#fff;border:1px solid #dfe2dc;border-radius:6px;overflow:hidden}.lab-gallery img,.lab-gallery video{width:100%;height:auto;display:block}.lab-image{display:block;padding:0;background:#eaede7;width:100%;cursor:zoom-in}.lab-gallery figcaption{display:flex;justify-content:space-between;padding:11px 12px;font-size:11px;color:#626b62}.lab-gallery figcaption span{color:#8b9187}#image-viewer{padding:38px 12px 12px;border:1px solid #b9c2b4;border-radius:10px;background:#f8faf5;width:max-content;max-width:94vw;max-height:92dvh;box-shadow:0 20px 60px #0004}#image-viewer::backdrop{background:#182119aa;backdrop-filter:blur(5px)}#image-viewer img{display:block;max-width:88vw;max-height:80dvh;object-fit:contain}.viewer-close{position:absolute;right:8px;top:3px;background:none;font-size:26px;width:32px;height:32px}@media(max-width:650px){.desktop-icon{left:calc(25% - 80px);top:16%}.davinci-icon{left:calc(75% - 80px);top:16%}.lab-icon{left:calc(50% - 80px);top:55%}.lab-object{font-size:92px}.lab-heading{padding:24px 20px 18px;display:block}.lab-heading p{max-width:none;margin-top:12px}.lab-gallery{columns:1;padding:0 20px 20px}}

/* Four-tone handheld-console sprites. */
.pixel-sprite{display:block;flex:none;width:144px;height:144px;background-image:url('assets/gameboy-sprites.png');background-repeat:no-repeat;background-size:300% 100%;image-rendering:pixelated;image-rendering:crisp-edges}.sprite-car{background-position:0 0}.sprite-cart{background-position:50% 0}.sprite-lab{background-position:100% 0}.desktop-icon .icon-label{font-family:'Courier New',monospace;font-weight:700;font-size:13px;color:#244526;border-radius:0}.desktop-icon:hover .icon-label{background:#c9d7a6}.desktop-icon .object-wrap{filter:none}.desktop-icon:hover .object-wrap,.desktop-icon:active .object-wrap,.desktop-icon.dragging .object-wrap{transform:none}@media(max-width:650px){.pixel-sprite{width:120px;height:120px}.desktop-icon .icon-label{font-size:12px}}
/* Original product colors with the same pixel-art silhouettes. */
.pixel-sprite{background-image:url('assets/gameboy-color-sprites.png')}.desktop-icon .icon-label{color:#303333}.desktop-icon:hover .icon-label{background:#ffffff6b}
/* Use the actual artwork bounds rather than equal sprite-sheet thirds. */
.pixel-sprite{background-size:432px 144px;height:144px}
.sprite-car{width:156px;background-position:0 0}
.sprite-cart{width:112px;background-position:-164px 0}
.sprite-lab{width:144px;background-position:-288px 0}
@media(max-width:650px){.pixel-sprite{background-size:360px 120px;height:120px}.sprite-car{width:130px;background-position:0 0}.sprite-cart{width:94px;background-position:-137px 0}.sprite-lab{width:120px;background-position:-240px 0}}
/* A quiet work-mat surface: fine divisions, major grid, edge rulers. */
.desktop{
 background-color:#e4e5e3;
 background-image:
  linear-gradient(to right,rgba(64,79,69,.085) 1px,transparent 1px),
  linear-gradient(to bottom,rgba(64,79,69,.085) 1px,transparent 1px),
  linear-gradient(to right,rgba(64,79,69,.035) 1px,transparent 1px),
  linear-gradient(to bottom,rgba(64,79,69,.035) 1px,transparent 1px);
 background-size:100px 100px,100px 100px,20px 20px,20px 20px;
 background-position:20px 20px;
}
.desktop::before,.desktop::after{content:'';position:absolute;pointer-events:none;z-index:-1;opacity:.5}
.desktop::before{left:20px;right:20px;top:0;height:10px;border-bottom:1px solid #77857530;background-image:repeating-linear-gradient(to right,#65776060 0 1px,transparent 1px 20px);background-position:0 0}
.desktop::after{top:20px;bottom:20px;left:0;width:10px;border-right:1px solid #77857530;background-image:repeating-linear-gradient(to bottom,#65776060 0 1px,transparent 1px 20px);background-position:0 0}

/* Original interactive Spline scene, loaded only while About is open. */
.about-window{width:min(850px,calc(100vw - 40px));height:min(780px,calc(100dvh - 90px))}.about-scene{height:420px;min-height:280px;background:#000}.about-scene iframe{display:block;width:100%;height:100%;border:0}.about-window.expanded .about-scene{height:60dvh}@media(max-width:650px){.about-scene{height:340px}.about-window{width:calc(100vw - 20px);height:calc(100dvh - 73px)}}

/* Scroll from the interactive environment into the original résumé. */
.about-window .window-body{overflow:auto}.about-window .about-scene{height:420px;min-height:280px}.about-window.expanded .about-scene{height:60dvh}@media(max-width:650px){.about-window .about-scene{height:340px}}
.about-resume{padding:44px 48px 48px;border-top:1px solid #d6d9d2;color:#414940}.profile-intro h3{font-size:40px;letter-spacing:-1.5px;font-weight:500;margin:12px 0 8px}.about-resume p,.about-resume li{font-size:14px;line-height:1.75;color:#626b61}.profile-intro .profile-role{font-size:18px;color:#343d33;margin:0 0 20px}.profile-contact{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px;font-size:12px}.profile-contact a{text-underline-offset:4px}.profile-section{border-top:1px solid #d9ddd5;margin-top:34px;padding-top:24px}.profile-section h4{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600;color:#7a8377;margin:0 0 26px}.career-entry+.career-entry{margin-top:30px}.career-header{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.career-header h5{font-size:17px;font-weight:550;margin:0}.career-header span{font-size:11px;color:#7a8377;white-space:nowrap}.about-resume .career-role{font-size:12px;margin:6px 0 14px;color:#7a8377}.career-entry ul{padding-left:17px;margin:12px 0 0}.career-entry li{padding-left:3px;margin-bottom:8px}.profile-capabilities{display:grid;grid-template-columns:1fr 1fr;gap:28px}.profile-capabilities h4{margin-bottom:16px}.profile-capabilities p{margin:0}@media(max-width:650px){.about-resume{padding:30px 24px}.profile-intro h3{font-size:34px}.career-header{flex-direction:column;gap:5px}.profile-capabilities{grid-template-columns:1fr;gap:0}}

/* All four destinations live on the draggable desktop. */
.byton-icon{left:calc(50% - 402px)}.davinci-icon{left:calc(50% - 197px)}.lab-icon{left:calc(50% + 8px)}.about-icon{left:calc(50% + 213px);top:32%}.object-wrap .designer-avatar{width:144px;height:144px;object-fit:contain;image-rendering:pixelated;filter:none}
@media(max-width:850px){.byton-icon,.lab-icon{left:calc(28% - 95px)}.davinci-icon,.about-icon{left:calc(72% - 95px)}.byton-icon,.davinci-icon{top:12%}.lab-icon,.about-icon{top:55%}}
@media(max-width:650px){.byton-icon,.lab-icon{left:calc(25% - 80px)}.davinci-icon,.about-icon{left:calc(75% - 80px)}.object-wrap .designer-avatar{width:120px;height:120px}}
