.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{color:inherit;letter-spacing:.025em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:750}.menubar-hint{opacity:.72}.menubar-clock{font-variant-numeric:tabular-nums;text-transform:capitalize;justify-self:end}.window{transform-origin:50%;will-change:transform;background:#f8f8fa;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 12px 21px #00000057,0 2px 3px #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}.window-actions{grid-column:3;justify-self:end}.window-actions button{color:#5f45bf;cursor:pointer;background:#ffffffb3;border:1px solid #d2d2d6;border-radius:8px;place-items:center;width:27px;height:27px;display:grid}.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}.skills-app{flex-direction:column;gap:20px;min-height:100%;display:flex}.skills-heading h2{letter-spacing:-.045em;margin-top:5px;font-size:34px;line-height:1}.skills-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.skill-card{background:#ffffffc7;border:1px solid #dddde2;border-radius:14px;gap:13px;min-height:116px;padding:17px;display:flex}.skill-card>span{color:#6448c7;width:38px;height:38px;font-family:var(--font-mono);background:#eae4ff;border-radius:10px;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.skill-card h3{margin-bottom:5px;font-size:15px}.skill-card p{color:#74747b;font-size:12px}.settings-app{flex-direction:column;display:flex}.setting-row,.setting-block{border-bottom:1px solid #dedee2;padding:16px 2px}.setting-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.setting-row strong,.setting-block>strong{font-size:14px;display:block}.setting-row small{color:#88888f;font-size:11px;display:block}.segmented{background:#e7e7ea;border-radius:9px;padding:2px;display:flex}.segmented button{color:#65656c;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:40px;height:29px;padding:0 8px}.theme-segment button{place-items:center;display:grid}.segmented button.active{color:#19191d;background:#fff;box-shadow:0 1px 4px #00000024}.wallpaper-options{grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px;display:grid}.wallpaper-options button{cursor:pointer;border:3px solid #0000;border-radius:11px;height:54px;padding:0}.wallpaper-options button.active{border-color:#7356d9;box-shadow:inset 0 0 0 2px #fff}.wallpaper-options .custom{background:linear-gradient(145deg,#10172e,#8b4a80,#efa85d)}.wallpaper-options .aurora{background:linear-gradient(145deg,#061829,#147d88,#8be0bd)}.wallpaper-options .sunset{background:linear-gradient(145deg,#3d194d,#df4662,#ffbd69)}.wallpaper-options .ocean{background:linear-gradient(145deg,#061c38,#0f62a5,#75d7df)}.switch-row{cursor:pointer;position:relative}.switch-row input{opacity:0;position:absolute}.switch{background:#c7c7cc;border-radius:999px;flex:none;width:42px;height:24px;padding:2px;transition:background .16s}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .16s;display:block;box-shadow:0 1px 4px #00000038}.switch-row input:checked+.switch{background:#7356d9}.switch-row input:checked+.switch:after{transform:translate(18px)}.trash-app{text-align:center;place-content:center;justify-items:center;min-height:100%;display:grid}.trash-face{color:#85858c;background:#e9e9ed;border-radius:22px;place-items:center;width:76px;height:76px;margin-bottom:13px;display:grid}.trash-app h2{letter-spacing:-.03em;font-size:24px}.trash-app p{color:#818187}.app-gallery{position:relative}.gallery-app{min-height:100%}.gallery-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.gallery-heading h2{letter-spacing:-.04em;margin-top:4px;font-size:32px;line-height:1}.gallery-heading>span{color:#898990;white-space:nowrap;font-size:11px}.gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:155px;gap:10px;display:grid}.gallery-photo{cursor:zoom-in;background:#ddd;border:0;border-radius:13px;min-width:0;padding:0;position:relative;overflow:hidden}.gallery-photo.wide{grid-column:span 2}.gallery-photo img{object-fit:cover;transition:transform .25s,filter .25s}.gallery-photo:hover img{filter:brightness(.82);transform:scale(1.035)}.gallery-photo span{z-index:1;color:#fff;text-align:left;text-shadow:0 1px 6px #000;opacity:0;font-size:11px;font-weight:700;transition:all .2s;position:absolute;inset:auto 10px 9px;transform:translateY(3px)}.gallery-photo:hover span,.gallery-photo:focus-visible span{opacity:1;transform:none}.gallery-viewer{z-index:5;color:#fff;background:#0c0c0ff5;flex-direction:column;align-items:center;gap:10px;padding:18px;display:flex;position:absolute;inset:0}.gallery-full{flex:1;width:100%;min-height:0;position:relative}.gallery-full img{object-fit:contain}.gallery-viewer p{font-size:12px}.gallery-close{z-index:2;color:#fff;cursor:pointer;background:#1e1e23bf;border:1px solid #fff3;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:14px;right:14px}.desktop[data-wallpaper=aurora]{background:linear-gradient(145deg,#061829,#147d88 48%,#8be0bd)}.desktop[data-wallpaper=sunset]{background:linear-gradient(145deg,#3d194d,#df4662 52%,#ffbd69)}.desktop[data-wallpaper=ocean]{background:linear-gradient(145deg,#061c38,#0f62a5 52%,#75d7df)}.desktop[data-theme=dark] .window{background:#1f1f24f7;border-color:#414148}.desktop[data-theme=dark] .titlebar{background:linear-gradient(#35353b,#29292e);border-color:#424248}.desktop[data-theme=dark] .title,.desktop[data-theme=dark] .window-body{color:#f1f1f4}.desktop[data-theme=dark] .window-actions button,.desktop[data-theme=dark] .segmented button.active{color:#fff;background:#45454c;border-color:#505057}.desktop[data-theme=dark] .welcome-copy,.desktop[data-theme=dark] .skill-card p,.desktop[data-theme=dark] .contact-card>p:not(.eyebrow),.desktop[data-theme=dark] .content-note{color:#aaaab2}.desktop[data-theme=dark] .skill-card,.desktop[data-theme=dark] .contact-row,.desktop[data-theme=dark] .cv-sheet{color:#f1f1f4;background:#29292f;border-color:#4a4a52}.desktop[data-theme=dark] .proj-stack li,.desktop[data-theme=dark] .secondary-button{color:#fff;background:#38383f;border-color:#55555d}.desktop[data-theme=dark] .segmented{background:#202025}.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%;will-change:transform;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}.app-icon-tile{color:#fff;border:1px solid #ffffff47;border-radius:24%;flex:none;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff40,0 4px 8px #0003}.app-icon-tile.violet{background:linear-gradient(145deg,#a78bfa,#5b21b6)}.app-icon-tile.blue{background:linear-gradient(145deg,#38bdf8,#1d4ed8)}.app-icon-tile.rose{background:linear-gradient(145deg,#fb7185,#be123c)}.app-icon-tile.graphite{background:linear-gradient(145deg,#4b4b55,#121216)}.app-icon-tile.cyan{background:linear-gradient(145deg,#67e8f9,#0284c7)}.app-icon-tile.emerald{background:linear-gradient(145deg,#6ee7b7,#047857)}.app-icon-tile.silver{background:linear-gradient(145deg,#d4d4d8,#52525b)}.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 (prefers-color-scheme:dark){.desktop[data-theme=system] .window{background:#1f1f24f7;border-color:#414148}.desktop[data-theme=system] .titlebar{background:linear-gradient(#35353b,#29292e);border-color:#424248}.desktop[data-theme=system] .title,.desktop[data-theme=system] .window-body{color:#f1f1f4}.desktop[data-theme=system] .skill-card,.desktop[data-theme=system] .contact-row,.desktop[data-theme=system] .cv-sheet{color:#f1f1f4;background:#29292f;border-color:#4a4a52}.desktop[data-theme=system] .welcome-copy,.desktop[data-theme=system] .skill-card p,.desktop[data-theme=system] .content-note{color:#aaaab2}}@media (max-width:700px){.desktop{background:url(/wallpaper-mobile.jpg) 50%/cover no-repeat,linear-gradient(155deg,#1b356b,#8557a5 55%,#ec927e)}.desktop[data-wallpaper=aurora]{background:linear-gradient(155deg,#061829,#147d88 55%,#8be0bd)}.desktop[data-wallpaper=sunset]{background:linear-gradient(155deg,#3d194d,#df4662 55%,#ffbd69)}.desktop[data-wallpaper=ocean]{background:linear-gradient(155deg,#061c38,#0f62a5 55%,#75d7df)}.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:#8064e4;background:0 0;border:0;justify-self:start;align-items:center;padding:8px 0;font-size:15px;display:flex}.title{grid-column:2}.window-actions button{background:0 0;border:0;font-size:18px}.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}.skills-grid{grid-template-columns:1fr}.skills-heading h2{font-size:30px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:135px}.gallery-photo.wide{grid-column:span 2}}@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}}
