.desktop{color:#161619;-webkit-user-select:none;user-select:none;background:url(/wallpaper.jpg) 50%/cover no-repeat,linear-gradient(145deg,#10172e 0%,#45316d 42%,#bb625c 76%,#f0a85d 100%);position:fixed;inset:0;overflow:hidden}button,a{font:inherit}.menubar{z-index:9000;color:#fff;-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);background:#0a0a124d;grid-template-columns:1fr auto 1fr;align-items:center;height:28px;padding:0 14px;font-size:12px;display:grid;position:absolute;inset:0 0 auto}.menubar-brand{letter-spacing:.025em;font-weight:750}.menubar-hint{opacity:.72}.menubar-clock{font-variant-numeric:tabular-nums;text-transform:capitalize;justify-self:end}.window{transform-origin:50%;background:#f8f8faf5;border:1px solid #ffffff61;border-radius:14px;flex-direction:column;max-width:calc(100vw - 24px);max-height:calc(100vh - 110px);display:flex;position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:0 24px 56px #00000057,0 2px 6px #00000024}.window.maximized{inset:36px 8px 88px;width:auto!important;height:auto!important;transform:none!important}.titlebar{touch-action:none;background:linear-gradient(#f8f8f9,#ebebed);border-bottom:1px solid #d3d3d7;flex:none;grid-template-columns:90px 1fr 90px;align-items:center;height:42px;padding:0 12px;display:grid}.traffic{gap:8px;display:flex}.tl{cursor:pointer;border:0;border-radius:50%;width:12px;height:12px;padding:0;box-shadow:inset 0 0 0 .5px #00000029}.tl.close{background:#ff5f57}.tl.min{background:#febc2e}.tl.full{background:#28c840}.title{color:#4b4b50;grid-column:2;justify-self:center;font-size:13px;font-weight:650}.mobile-back{display:none}.window-body{color:#1c1c1e;flex:1;padding:24px 26px;font-size:14px;line-height:1.55;overflow:auto}.eyebrow{color:#7254d6;letter-spacing:.13em;text-transform:uppercase;font-size:11px;font-weight:800}.welcome{flex-direction:column;justify-content:center;gap:18px;min-height:100%;padding:14px 12px;display:flex}.welcome h1{letter-spacing:-.055em;max-width:520px;font-size:clamp(34px,5vw,53px);line-height:.98}.welcome-copy{color:#5d5d64;max-width:510px;font-size:15px}.welcome-actions{flex-wrap:wrap;align-items:center;gap:9px;margin-top:4px;display:flex}.primary-button,.secondary-button,.text-button{cursor:pointer;border-radius:10px;min-height:39px;padding:0 16px;font-weight:700}.primary-button{color:#fff;background:#18181c;border:0;box-shadow:0 5px 16px #0000002e}.secondary-button{color:#1d1d20;background:#fff;border:1px solid #d1d1d6}.text-button{color:#6244c5;background:0 0;border:0}.primary-button:hover{background:#7254d6}.secondary-button:hover{background:#f1effa;border-color:#b7aadf}.availability{color:#6e6e73;align-items:center;gap:8px;font-size:12px;display:flex}.availability span{background:#31c957;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #31c95721}.proj{flex-direction:column;gap:14px;display:flex}.proj-meta{color:#88888e;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:750}.proj-stack{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.proj-stack li{background:#fff;border:1px solid #d7d7dc;border-radius:999px;padding:4px 10px;font-size:11px}.proj-imgs{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.proj-imgs img{aspect-ratio:16/9;object-fit:cover;background:#eee;border-radius:10px;width:100%;min-width:0}.proj-link{color:#6547cc;align-self:flex-start;font-weight:750;text-decoration:none}.content-note{color:#929298;font-size:11px}.content-note code{-webkit-user-select:text;user-select:text}.app-terminal{background:#17151d;padding:0}.terminal{color:#f4f0ff;cursor:text;-webkit-user-select:text;user-select:text;background:radial-gradient(circle at 80% 0,#704cbe38,#0000 44%),#17151d;min-height:100%;padding:18px;font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.terminal-output p{white-space:pre-wrap}.terminal-output .output{color:#bdb6cc}.terminal-output .command span,.terminal-form label{color:#6de194}.terminal-form{gap:8px;display:flex}.terminal-form label{white-space:nowrap}.terminal-form input{color:#fff;min-width:0;font:inherit;caret-color:#9d7cff;background:0 0;border:0;outline:0;flex:1}.contact-card{flex-direction:column;justify-content:center;gap:14px;min-height:100%;display:flex}.contact-card h2{letter-spacing:-.045em;font-size:34px;line-height:1.02}.contact-card>p:not(.eyebrow){color:#68686f}.contact-row{color:inherit;-webkit-user-select:text;user-select:text;background:#fff;border:1px solid #dddde1;border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:11px;text-decoration:none;display:grid}.contact-row:hover{background:#f7f5ff;border-color:#9d89df}.contact-row small{color:#8b8b92;text-transform:uppercase;font-size:10px;display:block}.contact-symbol{color:#6749cf;background:#ece7ff;border-radius:10px;place-items:center;width:38px;height:38px;font-weight:850;display:grid}.copy-button{align-self:flex-start}.cv-wrap{flex-direction:column;align-items:center;gap:14px;display:flex}.cv-sheet{-webkit-user-select:text;user-select:text;background:#fff;border:1px solid #dedee2;width:min(100%,540px);padding:30px;box-shadow:0 12px 40px #00000014}.cv-sheet header{border-bottom:2px solid #1b1b20;padding-bottom:20px}.cv-sheet h2{letter-spacing:-.045em;margin:7px 0 10px;font-size:30px;line-height:1.02}.cv-sheet section{grid-template-columns:105px 1fr;gap:16px;padding-top:18px;display:grid}.cv-sheet h3{letter-spacing:.1em;text-transform:uppercase;font-size:11px}.cv-sheet section p+p{margin-top:6px}.dock-shell{z-index:8000;padding-top:50px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.dock{-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:linear-gradient(#ffffff52,#cdd2dc40);border:1px solid #ffffff5c;border-radius:18px;justify-content:center;align-items:flex-end;height:65px;padding:5px 6px 7px;display:flex;position:relative;box-shadow:0 10px 24px #00000040,inset 0 1px #ffffff59}.dock-item{cursor:pointer;background:0 0;border:0;outline:0;flex:none;justify-content:center;align-items:flex-end;width:52px;height:58px;padding:0 4px 7px;display:flex;position:relative;overflow:visible}.dock-icon{transform-origin:50% 100%;flex:none;place-items:center;width:46px;height:46px;display:grid}.dock-icon img{object-fit:cover;pointer-events:none;border-radius:11px;width:46px;height:46px;display:block;box-shadow:0 4px 7px #0003}.dock-tooltip{opacity:0;color:#fff;white-space:nowrap;pointer-events:none;background:#232328d1;border:1px solid #ffffff47;border-radius:7px;padding:5px 9px;font-size:12px;transition:all .12s;position:absolute;bottom:calc(100% + 13px);left:50%;transform:translate(-50%,4px)}.dock-item:hover .dock-tooltip,.dock-item:focus-visible .dock-tooltip{opacity:1;transition-delay:.26s;transform:translate(-50%)}.dock-item:focus-visible .dock-icon{outline-offset:3px;outline:2px solid #fff}.dock-dot{background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;bottom:1px;left:50%;transform:translate(-50%)}.mobile-home{display:none}@media (max-width:700px){.desktop{background:url(/wallpaper-mobile.jpg) 50%/cover no-repeat,linear-gradient(155deg,#1b356b,#8557a5 55%,#ec927e)}.menubar,.dock-shell{display:none}.mobile-home{padding:max(12px,env(safe-area-inset-top))18px max(12px,env(safe-area-inset-bottom));color:#fff;flex-direction:column;display:flex;position:absolute;inset:0}.mobile-status{text-shadow:0 1px 4px #00000059;justify-content:space-between;height:30px;padding:0 5px;font-size:12px;display:flex}.mobile-widget{color:#fff;text-align:left;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:linear-gradient(135deg,#191236c2,#6f49be8a);border:1px solid #ffffff4d;border-radius:24px;flex-direction:column;align-items:flex-start;min-height:132px;margin:12px 2px 27px;padding:18px;display:flex;box-shadow:0 14px 35px #0003}.mobile-widget span{letter-spacing:.16em;opacity:.67;font-size:10px;font-weight:800}.mobile-widget strong{letter-spacing:-.04em;margin-top:auto;font-size:27px}.mobile-widget small{opacity:.8}.mobile-grid{grid-template-columns:repeat(4,1fr);gap:24px 10px;display:grid}.mobile-app{color:#fff;text-shadow:0 1px 5px #0000008c;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;min-width:0;font-size:11px;display:flex}.mobile-app img{object-fit:cover;border-radius:14px;width:58px;height:58px;box-shadow:0 5px 14px #0000003d}.mobile-app span{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.mobile-page-dot{text-align:center;opacity:.75;margin-top:auto;font-size:7px}.mobile-dock{-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);background:#ebebf533;border:1px solid #ffffff4d;border-radius:25px;justify-content:space-evenly;align-items:center;height:78px;margin-top:8px;display:flex}.mobile-dock button{background:0 0;border:0}.mobile-dock img{object-fit:cover;border-radius:14px;width:57px;height:57px;display:block;box-shadow:0 4px 13px #0003}.window,.window.maximized{border:0;border-radius:0;position:absolute;inset:0;width:100%!important;height:100%!important;transform:none!important}.titlebar{height:calc(48px + env(safe-area-inset-top));padding:env(safe-area-inset-top)13px 0;border-bottom-color:#d9d9dd;grid-template-columns:88px 1fr 88px}.traffic{display:none}.mobile-back{color:#6448c7;background:0 0;border:0;justify-self:start;padding:8px 0;font-size:15px;display:block}.title{grid-column:2}.window-body{padding:21px 18px calc(22px + env(safe-area-inset-bottom))}.welcome{justify-content:flex-start;padding:34px 3px}.welcome h1{font-size:43px}.welcome-actions{flex-direction:column;align-items:stretch}.welcome-actions button{width:100%}.proj-imgs{grid-template-columns:1fr}.cv-sheet{padding:21px}.cv-sheet section{grid-template-columns:1fr;gap:6px}.app-terminal{padding:0}}@media (max-width:370px),(max-height:670px) and (max-width:700px){.mobile-widget{min-height:108px;margin-bottom:16px}.mobile-grid{gap-block:14px}.mobile-app img{width:52px;height:52px}.mobile-dock{height:67px}.mobile-dock img{width:50px;height:50px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{body.printing-cv *{visibility:hidden!important}body.printing-cv .cv-sheet,body.printing-cv .cv-sheet *{visibility:visible!important}body.printing-cv .cv-sheet{width:100%;max-width:none;box-shadow:none;border:0;position:fixed;inset:0}}
