.books-app{width:100%;height:100%;min-height:0;color:#252424;background:#fdfcfb;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;container:bookshelf / inline-size}.books-shell{display:grid;grid-template-columns:174px minmax(0,1fr);height:100%}.books-sidebar{display:flex;flex-direction:column;padding:0 14px;border-right:1px solid #dedbd6;background:#f0efeb}.books-app-brand{display:flex;align-items:center;gap:11px;margin:28px 8px 32px}.books-app-brand>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#fff;background:linear-gradient(#ffb035,#f57918);box-shadow:0 2px 3px #ae5b161f,inset 0 0 0 1px #b4591910}.books-app-brand svg{width:23px;height:23px}.books-app-brand strong{font-size:22px;letter-spacing:-.8px;font-weight:650}.books-sidebar-section{margin:0 10px 9px;color:#77746e;font-size:12px;font-weight:600}.books-current-collection{display:flex;align-items:center;gap:9px;padding:10px;border-radius:7px;background:#dedbd5;color:#2e2a26;font-size:14px;font-weight:600}.books-current-collection>svg{width:17px;height:17px;color:#a96428}.books-current-collection small{margin-left:auto;color:#777169;font-size:12px;font-weight:400}.books-owner{display:flex;align-items:center;gap:9px;margin:auto 3px 23px;padding-top:18px;border-top:1px solid #d9d6d0}.books-owner>span{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;background:#dedbd4;border-radius:50%;color:#645447;font-size:14px}.books-owner div{display:grid;gap:4px}.books-owner strong{font-size:13px;font-weight:600}.books-owner small{color:#857d74;font-size:12px}.books-main{display:flex;flex-direction:column;min-width:0;min-height:0}.books-library-scroll{overflow:auto;flex:1;padding:30px 34px 38px;overscroll-behavior:contain}.books-library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:32px;padding-bottom:21px;border-bottom:1px solid #e9e5df}.books-library-heading p{margin:0 0 10px;color:#8c7966;font-size:12px;font-weight:600;letter-spacing:1.5px}.books-library-heading h1{margin:0;font-size:31px;letter-spacing:-1.2px;line-height:1.1;font-weight:650}.books-library-heading>span{color:#938b82;font-size:13px;white-space:nowrap}.books-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 28px;margin:0;padding:0;list-style:none}.book-tile{display:flex;flex-direction:column;min-width:0;padding:0;color:inherit;--tilt-y: -7deg;--tilt-x: 0deg;animation:book-arrive .65s cubic-bezier(.2,.8,.2,1) calc(var(--book-index) * 45ms) both}.book-cover-stage{--book-stage-height: 195px;display:flex;align-items:flex-end;justify-content:center;width:100%;height:var(--book-stage-height);padding:0 7px 15px;perspective:900px}.book-volume{position:relative;width:100%;height:auto;max-width:calc((var(--book-stage-height) - 15px) * .65);transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;transition:transform .36s cubic-bezier(.2,.7,.3,1)}.book-front{position:relative;transform:translateZ(6px);border-radius:1px 3px 3px 1px;box-shadow:5px 7px 10px #3c2e211e,1px 2px 3px #3c2e2126;transition:box-shadow .35s;background:var(--book-color);overflow:hidden}.book-front img{display:block;width:100%;height:auto}.book-binding{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0003,transparent 1.6%,#fff5 2.5%,#0002 3.5%,transparent 6.5%,transparent 96%,#0001);box-shadow:inset 0 0 0 1px #0000000e;pointer-events:none}.book-paper-edge{position:absolute;top:2px;right:-6px;bottom:2px;left:3px;border-radius:2px;background:repeating-linear-gradient(0deg,#e3ddd1 0,#e3ddd1 1px,#fffdf7 1px,#fffdf7 3px);box-shadow:1px 0 #c7baaa}.book-tile:hover .book-volume{transform:translateY(-8px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) scale(1.025)}.book-tile:hover .book-front{box-shadow:8px 18px 17px #3c2e212b,2px 4px 6px #3c2e2126}.book-tile-title{margin:7px 0 0;font-size:14px;line-height:1.35;font-weight:600;letter-spacing:-.12px;overflow-wrap:anywhere}.book-tile-author{margin:5px 0 0;font-size:12px;line-height:1.4;color:#827b74}.book-tile-status{display:flex;align-items:center;gap:4px;margin-top:9px;color:#86796b;font-size:12px}.book-tile-status>svg{width:8px;height:8px}.mac-dock button[aria-label=Books] .dock-glyph{background:linear-gradient(#ffb03b,#f47712);color:#fff;box-shadow:inset 0 0 0 1px #ffffff28,0 3px 5px #0003}.mobile-content.mobile-books-content{padding:0;overflow:hidden}.mobile-content.mobile-books-content>.books-app{max-width:none}.os-mobile.has-prototype-switcher .mobile-content.mobile-books-content{padding-top:48px}@keyframes book-arrive{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@container bookshelf (min-width: 1150px){.books-grid{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:34px}.book-cover-stage{--book-stage-height: 220px}}@container bookshelf (max-width: 880px){.books-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container bookshelf (max-width: 640px){.books-sidebar{display:none}.books-shell{grid-template-columns:minmax(0,1fr)}.books-library-scroll{padding:26px 24px 32px}}@container bookshelf (max-width: 470px){.books-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.books-library-heading h1{font-size:29px}}@container bookshelf (max-width: 330px){.books-grid{gap:24px 18px}.books-library-scroll{padding:22px 18px}.book-cover-stage{--book-stage-height: 165px}}@media(prefers-reduced-motion:reduce){.book-tile{animation:none}.book-volume,.book-front{transition:none}.book-tile:hover .book-volume{transform:rotateY(-7deg)}}.games-app{--games-muted: #6e6e73;display:flex;flex-direction:column;height:100%;min-height:0;color:#252424;background:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;container:games / inline-size;color-scheme:light}.platform-windows .games-app{font-family:Segoe UI,Arial,sans-serif}.apple-games-icon{display:block;width:26px;height:26px;object-fit:contain}.games-app a:focus-visible{outline:2px solid #1769d2;outline-offset:4px}.games-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#b7b7bc transparent}.games-library{padding:28px 28px 32px}.games-library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid #e9e9eb}.games-library-heading .games-brand{display:flex;align-items:center;gap:10px}.games-library-heading h1{margin:0;font-size:27px;line-height:1.15;font-weight:600;letter-spacing:-.8px}.games-library-heading>span{color:var(--games-muted);font-size:12px;white-space:nowrap}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:26px}.game-entry{display:flex;align-items:flex-start;gap:20px;min-width:0}.game-art-link{display:block;flex-shrink:0;border-radius:23px}.game-art-link img{display:block;width:112px;height:112px;border-radius:23px;object-fit:cover;box-shadow:0 2px 6px #00000012}.game-entry-copy{min-width:0;padding-top:2px}.game-entry h2{margin:0;font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.3px}.game-entry h2 a{color:inherit;text-decoration:none}.game-entry h2 a:hover{text-decoration:underline}.game-entry-copy>p{margin:4px 0 0;color:var(--games-muted);font-size:12px;line-height:1.5}.game-status{display:inline-block;margin-top:6px;padding:3px 7px;border-radius:5px;background:#fff2dc;color:#865711;font-size:10px;font-weight:500}.game-entry-copy>.game-tagline{margin-top:12px;color:#424245}.game-entry-copy>.game-details{font-size:11px}.game-view-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:76px;min-height:30px;margin-top:12px;padding:5px 16px;border-radius:18px;background:#f0f0f3;color:#1769d2;font-size:12px;font-weight:600;text-decoration:none}.game-view-button svg{width:9px;height:9px}.game-view-button:hover{background:#e6e6eb}.games-prototype-window .adaptive-window-body{background:#fff}.games-prototype-window .window-app-icon .apple-games-icon{width:20px;height:20px}.mobile-tabbar .apple-games-icon{width:24px;height:24px;margin:-2px 0}.mobile-content.mobile-games-content{padding:0;overflow:hidden;background:#fff}.mobile-content.mobile-games-content>.games-app{max-width:none}.os-mobile.has-prototype-switcher .mobile-content.mobile-games-content{padding-top:48px}@container games (max-width: 420px){.games-library{padding:24px 20px 28px}.game-entry{gap:16px}.game-art-link img{width:88px;height:88px;border-radius:19px}.game-art-link{border-radius:19px}}@container games (max-width: 330px){.games-library{padding-inline:16px}.game-entry{gap:12px}.game-art-link img{width:72px;height:72px;border-radius:16px}.game-art-link{border-radius:16px}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-latin.woff2) format("woff2")}:root{color:#11110f;background:#f7f7f3;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #11110f;--paper: #fbfbf8;--blue: #2e68f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.prototype-no-scroll,.prototype-no-scroll body,.prototype-no-scroll #root{width:100%;height:100%;overflow:hidden}.adaptive-prototype{width:100vw;height:100dvh;overflow:hidden;color:#171719}.adaptive-prototype button,.adaptive-prototype select{font:inherit}.os-mac{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif}.os-windows{font-family:Segoe UI Variable,Segoe UI,Arial,sans-serif}.prototype-boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-content:center;justify-items:center;gap:46px;background:#000;color:#f5f5f5;animation:boot-away .26s ease 1.42s forwards}.boot-windows{gap:62px;background:#050505}.boot-mobile{gap:28px}.boot-mark svg{width:72px;height:72px}.boot-windows .boot-mark svg{width:62px;height:62px}.mac-progress{width:220px;height:5px;overflow:hidden;border-radius:99px;background:#ffffff47}.mac-progress span{display:block;width:0;height:100%;border-radius:inherit;background:#f7f7f7;animation:mac-boot-progress 1.42s cubic-bezier(.25,.7,.36,1) forwards}.windows-progress{position:relative;width:36px;height:36px;animation:windows-spin 1.2s linear infinite}.windows-progress span{position:absolute;top:0;left:15px;width:5px;height:5px;border-radius:50%;background:#fff;transform-origin:3px 18px}.windows-progress span:nth-child(2){transform:rotate(72deg);opacity:.85}.windows-progress span:nth-child(3){transform:rotate(144deg);opacity:.7}.windows-progress span:nth-child(4){transform:rotate(216deg);opacity:.55}.windows-progress span:nth-child(5){transform:rotate(288deg);opacity:.4}@keyframes mac-boot-progress{15%{width:13%}62%{width:68%}to{width:100%}}@keyframes windows-spin{to{transform:rotate(360deg)}}@keyframes boot-away{to{opacity:0;visibility:hidden}}.adaptive-desktop{position:relative;width:100%;height:100%;overflow:hidden;background-position:center;background-size:cover}.adaptive-desktop.phase-dawn{background-image:url(/assets/os/time-wallpapers/yosemite-dawn.jpg)}.adaptive-desktop.phase-day{background-image:url(/assets/os/time-wallpapers/yosemite-day.jpg)}.adaptive-desktop.phase-dusk{background-image:url(/assets/os/time-wallpapers/yosemite-dusk.jpg)}.adaptive-desktop.phase-night{background-image:url(/assets/os/time-wallpapers/yosemite-night.jpg)}.adaptive-desktop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(0,0,0,.03),transparent 42%,rgba(0,0,0,.05));pointer-events:none}.mac-menu{position:fixed;inset:0 0 auto;z-index:500;height:30px;display:flex;align-items:center;gap:19px;padding:0 14px;background:#f7f7f7b8;color:#151515;box-shadow:0 1px #00000026;-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);font-size:13px}.mac-menu>svg{width:15px;height:15px}.mac-menu>div{margin-left:auto;display:flex;align-items:center;gap:12px}.mac-menu>div svg{width:14px;height:14px}.mac-menu time{min-width:98px;text-align:right}.adaptive-battery{display:inline-flex;align-items:center;gap:3px;font-size:10px}.adaptive-battery-icon{position:relative;display:inline-flex}.adaptive-battery-icon>svg:last-child:not(:first-child){position:absolute;top:2px;right:4px;bottom:2px;left:4px;width:6px;height:8px}.adaptive-battery.is-unavailable span{opacity:.58}.desktop-photo-icons{position:absolute;z-index:2;top:50px;right:14px;display:grid;gap:12px}.desktop-photo-icons button{display:grid;width:98px;place-items:center;gap:4px;padding:4px;border:0;border-radius:6px;background:transparent;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.72);cursor:pointer}.desktop-photo-icons button:hover,.desktop-photo-icons button:focus-visible{background:#2368d36b}.desktop-photo-icons img{width:58px;height:45px;display:block;border:2px solid rgba(255,255,255,.92);border-radius:3px;background:#fff;box-shadow:0 2px 5px #00000057;object-fit:cover}.desktop-photo-icons span{max-width:94px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.portfolio-app{display:grid;grid-template-columns:minmax(190px,23%) 1fr;height:100%}.portfolio-sidebar{overflow:auto;padding:15px 10px;border-right:1px solid rgba(100,100,100,.2);background:#e8e8e4e0}.platform-windows .portfolio-sidebar{background:#eff2f7f5}.portfolio-sidebar-title{display:flex;align-items:center;gap:10px;margin:0 2px 14px;padding:2px 6px 14px;border-bottom:1px solid rgba(100,100,100,.16)}.portfolio-sidebar-title>img{width:34px;height:34px;border-radius:9px;box-shadow:0 1px 3px #00000029}.portfolio-sidebar-title>span{display:grid;gap:1px}.portfolio-sidebar-title strong{font-size:14px}.portfolio-sidebar-title small{color:#777;font-size:9px}.portfolio-sidebar>p{margin:4px 8px 7px;color:#777;font-size:9px;font-weight:650;letter-spacing:.02em}.portfolio-sidebar>button{width:100%;display:flex;align-items:center;gap:10px;margin-bottom:3px;padding:9px 8px;border:0;border-radius:9px;background:transparent;color:#3f3f40;cursor:pointer;font-size:12px;text-align:left}.portfolio-sidebar>button:hover{background:#0000000b}.portfolio-sidebar>button.selected{background:#f5c7449e;color:#332b18}.platform-windows .portfolio-sidebar>button.selected{background:#dcecff}.portfolio-sidebar>button>svg{width:19px;height:19px;flex:0 0 19px;color:#d59f13}.portfolio-sidebar>button>img{width:21px;height:21px;flex:0 0 21px;border-radius:5px;background:#fff;object-fit:contain}.sidebar-note-copy{min-width:0;display:grid;gap:3px}.sidebar-note-copy strong{overflow:hidden;font-size:12px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.sidebar-note-copy small{overflow:hidden;color:#777574;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.portfolio-sidebar>button.selected .sidebar-note-copy small{color:#6c5a2f}.platform-windows .portfolio-sidebar>button.selected .sidebar-note-copy small{color:#4f6d93}.portfolio-content{min-width:0;height:100%;overflow:hidden auto;background:#fffffff0}.resume-scroll{scroll-behavior:smooth}.resume-scroll>section,.experience-stream>section{scroll-margin-top:0}.portfolio-about-panel{max-width:780px;margin:0 auto;padding:clamp(34px,5vh,58px) clamp(34px,5vw,76px);-webkit-user-select:text;user-select:text}.profile-eyebrow{margin:0 0 9px;color:#1769df;font-size:10px;font-weight:720;letter-spacing:.13em}.portfolio-about-panel h1{margin:0 0 16px;font-size:clamp(34px,4vw,58px);font-weight:700;letter-spacing:-.05em;line-height:.98}.platform-windows .portfolio-about-panel h1{font-weight:620;letter-spacing:-.035em}.profile-lede{max-width:650px;margin:0 0 23px;color:#343437;font-size:clamp(15px,1.35vw,20px);line-height:1.48}.portfolio-about-panel ul{display:grid;gap:14px;margin:0;padding:0;list-style:none}.portfolio-about-panel li{display:grid;grid-template-columns:24px 1fr;gap:10px}.portfolio-about-panel li p{margin:0;color:#49494b;font-size:clamp(13px,1.05vw,16px);line-height:1.48}.profile-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.profile-links a{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:7px;background:#0000000d;color:#1769d2;font-size:11px;font-weight:620;text-decoration:none}.profile-links svg{width:12px;height:12px}.portfolio-experience-panel{display:grid;grid-template-columns:minmax(100px,20%) 1fr;gap:clamp(22px,3vw,40px);align-content:center;min-height:100%;padding:clamp(34px,4vw,62px);-webkit-user-select:text;user-select:text}.experience-stream{border-top:1px solid rgba(100,100,100,.18)}.experience-stream>header{max-width:780px;margin:0 auto;padding:52px clamp(34px,5vw,76px) 20px}.experience-stream>header p{margin:0 0 9px;color:#1769df;font-size:10px;font-weight:720;letter-spacing:.13em}.experience-stream>header h2{max-width:620px;margin:0;font-size:clamp(27px,3.2vw,44px);font-weight:650;letter-spacing:-.045em;line-height:1.05}.experience-stream>section{border-top:1px solid rgba(100,100,100,.14)}.experience-stream .portfolio-experience-panel{min-height:auto;align-content:start;max-width:920px;margin:0 auto;padding-top:clamp(42px,6vh,72px);padding-bottom:clamp(48px,7vh,82px)}.desktop-window{position:absolute;min-width:300px;min-height:180px;overflow:hidden;border:1px solid rgba(100,100,100,.45);border-radius:12px;background:#fcfcfcf0;box-shadow:0 18px 50px #0d14283d,0 2px 9px #0d14282e;-webkit-backdrop-filter:blur(28px) saturate(1.12);backdrop-filter:blur(28px) saturate(1.12);resize:both}.desktop-window:not(.is-maximized):after{content:"";position:absolute;right:4px;bottom:4px;width:10px;height:10px;opacity:.42;pointer-events:none;background:linear-gradient(135deg,transparent 0 48%,currentColor 49% 55%,transparent 56% 66%,currentColor 67% 73%,transparent 74%)}.platform-windows .desktop-window{border-color:#464b5573;border-radius:8px;background:#f9f9f9f2;box-shadow:0 18px 48px #141c3647}.desktop-window.is-maximized{top:40px!important;right:12px!important;bottom:94px!important;left:12px!important;width:auto!important;height:auto!important;resize:none}.platform-windows .desktop-window.is-maximized{top:10px!important;right:10px!important;bottom:58px!important;left:10px!important}.adaptive-desktop .desktop-window.writing-prototype-window.is-maximized{top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1000!important;width:auto!important;height:auto!important;min-width:0;min-height:0;border:0;border-radius:0;box-shadow:none}.adaptive-desktop.writing-is-fullscreen>:not(.writing-prototype-window){visibility:hidden}.adaptive-prototype:has(.writing-is-fullscreen) .prototype-switcher{display:none}.adaptive-titlebar{position:relative;height:38px;display:flex;align-items:center;justify-content:center;padding:0 100px;border-bottom:1px solid rgba(110,110,110,.22);background:#eeeeece6;color:#4b4b4c;-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab;font-size:12px}.adaptive-titlebar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-windows .adaptive-titlebar{height:32px;justify-content:flex-start;gap:9px;padding:0 140px 0 14px;background:#f2f2f2e0;color:#202020;font-size:12px}.window-app-icon{display:none}.platform-windows .window-app-icon{display:inline-flex;color:#2868c7}.windows-app-icon{display:block;width:26px;height:26px;object-fit:contain}.platform-windows .window-app-icon .windows-app-icon{width:18px;height:18px}.adaptive-window-body{height:calc(100% - 38px);overflow:hidden}.platform-windows .adaptive-window-body{height:calc(100% - 32px)}.mac-window-buttons{position:absolute;left:11px;display:flex;gap:8px}.mac-window-buttons button{width:12px;height:12px;padding:0;border:.5px solid rgba(0,0,0,.18);border-radius:50%;cursor:pointer}.mac-close{background:#ff5f57}.mac-minimize{background:#febc2e}.mac-zoom{background:#28c840}.win-caption-buttons{position:absolute;inset:0 0 0 auto;display:flex}.win-caption-buttons button{width:46px;height:32px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#222;cursor:pointer}.win-caption-buttons button:hover{background:#00000012}.win-caption-buttons .win-close:hover{background:#c42b1c;color:#fff}.win-caption-buttons svg{width:10px;height:10px}.company-icon{width:21px;height:21px;display:grid;flex:0 0 21px;place-items:center;border-radius:5px;background:#fff;object-fit:contain}.company-icon svg{width:72%;height:72%}.company-icon.meta{color:#1769df}.experience-brand{display:grid;aspect-ratio:1;place-items:center;align-self:start;border:1px solid rgba(100,100,100,.22);border-radius:18px;background:#ffffffd1}.experience-brand img.large{width:84%;max-height:80%;object-fit:contain}.experience-brand .company-icon.large{width:78%;height:78%;border-radius:16px}.experience-brand .company-icon.large svg{width:82%;height:82%}.experience-brand .company-icon.meta.large{color:#1769df}.experience-date{margin:0 0 7px;color:#1769df;font-size:11px;font-weight:550}.experience-copy h2{margin:0 0 14px;font-size:clamp(23px,2.6vw,41px);font-weight:650;letter-spacing:-.035em;line-height:1.02}.platform-windows .experience-copy h2{font-weight:600;letter-spacing:-.02em}.experience-copy ul{display:grid;gap:8px;margin:0;padding-left:18px}.experience-copy li{color:#4a4a47;font-size:clamp(11px,1vw,14px);line-height:1.45}.experience-copy li::marker{color:#2f75e8}.experience-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.experience-pills span{padding:4px 7px;border:1px solid rgba(100,100,100,.2);border-radius:5px;color:#6d6b66;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.photo-peek-window{min-width:170px;min-height:140px}.photo-peek-window .adaptive-window-body{background:#111}.photo-peek-window .adaptive-window-body>img{width:100%;height:100%;display:block;object-fit:contain}.photo-peek-window[data-window=photo-sf] img{object-fit:cover;object-position:center 38%}.photos-app{display:grid;grid-template-columns:minmax(128px,23%) 1fr;height:100%}.photos-app>aside{padding:20px 10px;border-right:1px solid rgba(100,100,100,.18);background:#eaeae8e0}.photos-app aside>strong{display:block;margin:0 9px 17px;font-size:16px}.photos-app aside button{width:100%;display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:#454545;font-size:12px;text-align:left}.photos-app aside button.selected{background:#508cdc2e}.photos-app>article{min-width:0;overflow:auto;padding:18px 22px 22px;background:#fffffff0}.photos-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:12px}.photos-heading small{color:#777;font-size:10px}.photos-heading h2{margin:2px 0 0;font-size:25px;letter-spacing:-.035em}.photos-heading>span{color:#777;font-size:10px}.featured-photo{width:100%;height:55%;min-height:150px;display:block;overflow:hidden;padding:0;border:0;border-radius:8px;background:#ddd}.featured-photo img{width:100%;height:100%;object-fit:cover}.photo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}.photo-grid button{aspect-ratio:1.35;overflow:hidden;padding:0;border:2px solid transparent;border-radius:4px;background:#ddd}.photo-grid button.selected{border-color:#2479e6}.photo-grid img{width:100%;height:100%;display:block;object-fit:cover}.mac-dock{position:fixed;z-index:600;bottom:8px;left:50%;display:flex;align-items:end;gap:5px;height:auto;padding:7px 8px 6px;border:1px solid rgba(255,255,255,.45);border-radius:20px;background:#ebebeb73;box-shadow:0 8px 30px #0000003d,inset 0 0 0 .5px #ffffff8c;-webkit-backdrop-filter:blur(28px) saturate(1.8);backdrop-filter:blur(28px) saturate(1.8);transform:translate(-50%)}.mac-dock>div{position:relative}.mac-dock button{position:relative;width:54px;height:54px;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer;transition:transform .15s ease}.mac-dock button:hover{transform:translateY(-8px) scale(1.14)}.mac-dock button:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 12px);left:50%;padding:5px 8px;border-radius:6px;background:#232323e6;color:#fff;opacity:0;pointer-events:none;transform:translate(-50%) translateY(3px);transition:.13s ease;white-space:nowrap;font-size:11px}.mac-dock button:hover:before{opacity:1;transform:translate(-50%)}.mac-dock img{width:52px;height:52px;display:block;object-fit:contain;filter:drop-shadow(0 3px 3px rgba(0,0,0,.22))}.dock-glyph{width:50px;height:50px;display:grid;place-items:center;border-radius:12px;background:#f4dec0;color:#7b382d;box-shadow:inset 0 0 0 1px #462c201f,0 3px 5px #0003}.dock-glyph svg{width:25px;height:25px}.running-dot{position:absolute;bottom:-3px;left:50%;width:4px;height:4px;border-radius:50%;background:#222;transform:translate(-50%)}.windows-taskbar{position:fixed;z-index:600;inset:auto 0 0;height:48px;display:flex;align-items:center;justify-content:center;background:#f5f9ffd6;box-shadow:0 -1px #505a6e29;-webkit-backdrop-filter:blur(28px) saturate(1.5);backdrop-filter:blur(28px) saturate(1.5)}.taskbar-center{display:flex;align-items:center;gap:2px}.windows-taskbar button{position:relative;width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:#276dcc;cursor:pointer}.windows-taskbar button:hover{background:#ffffffb3}.windows-taskbar button.running:after{content:"";position:absolute;bottom:2px;left:50%;width:15px;height:3px;border-radius:3px;background:#2874d6;transform:translate(-50%)}.windows-taskbar button svg{width:21px;height:21px}.windows-taskbar .taskbar-blog{grid-template-rows:23px 12px;align-content:center}.taskbar-blog span{font-size:10px;line-height:12px}.windows-taskbar button img{width:27px;height:27px;display:block;object-fit:contain}.taskbar-tray{position:absolute;right:13px;display:flex;align-items:center;gap:10px;font-size:11px}.taskbar-tray svg{width:13px;height:13px}.taskbar-tray .adaptive-battery{font-size:10px}.phase-night .mac-menu,.phase-night .windows-taskbar{background:#0e141fb3;color:#fff}.phase-night .windows-taskbar button{color:#d9eaff}.prototype-switcher{position:fixed;z-index:9000;bottom:102px;left:50%;display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 8px;border:1px solid rgba(255,255,255,.45);border-radius:99px;background:#141416db;box-shadow:0 8px 30px #00000040;color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%);font:12px/1.2 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;white-space:nowrap}.os-windows .prototype-switcher{bottom:61px}.prototype-switcher>button{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#ffffff1a;color:#fff}.prototype-switcher>button:hover{background:#fff3}.prototype-switcher>span{width:1px;height:22px;background:#fff3}.prototype-switcher label{display:flex;align-items:center;gap:6px;color:#ffffffb8}.prototype-switcher select{padding:4px 21px 4px 7px;border:0;border-radius:7px;background:#ffffff24;color:#fff}.prototype-switcher select option{color:#111}.mobile-surface{position:relative;display:grid;grid-template-rows:62px 1fr 70px;width:100%;height:100dvh;overflow:hidden;background:#f3f3f5;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.mobile-surface>header{z-index:5;display:flex;align-items:center;gap:10px;padding:max(9px,env(safe-area-inset-top)) 15px 8px;border-bottom:1px solid rgba(0,0,0,.09);background:#fcfcfce6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mobile-avatar{display:grid;width:35px;height:35px;place-items:center;border:1px solid #aaa;border-radius:10px;background:#fff;font-weight:750}.mobile-surface>header>div{display:grid;gap:1px}.mobile-surface header small{color:#7a7a80;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.mobile-surface header strong{font-size:14px}.mobile-surface header>a{margin-left:auto;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#e8e8ec;color:#1769d2}.mobile-content{overflow:hidden auto;padding:14px 14px 24px;overscroll-behavior:contain}.mobile-content>article,.mobile-content>section{max-width:620px;margin:0 auto}.mobile-resume-photo{width:100%;height:min(30vh,250px);display:block;object-fit:cover;object-position:50% 38%;border-radius:19px;box-shadow:0 10px 30px #0000001f}.mobile-resume .portfolio-about-panel{padding:26px 5px 36px}.mobile-resume .portfolio-about-panel h1{font-size:clamp(36px,10vw,48px)}.mobile-resume .profile-lede{font-size:16px}.mobile-resume .portfolio-about-panel li p{font-size:14px}.mobile-resume .profile-links a{padding:8px 10px;border-radius:10px;background:#fff;box-shadow:0 1px 1px #0000000a;font-size:12px}.mobile-resume .experience-stream{margin:0 -14px;background:#ffffffb8}.mobile-resume .experience-stream>header{padding:38px 20px 22px}.mobile-resume .experience-stream>header h2{font-size:clamp(30px,8vw,40px)}.mobile-resume .experience-stream .portfolio-experience-panel{grid-template-columns:48px minmax(0,1fr);gap:15px;padding:30px 20px 38px}.mobile-resume .experience-brand{width:48px;border-radius:13px}.mobile-resume .experience-brand .company-icon.large{border-radius:10px}.mobile-resume .experience-copy h2{margin-bottom:12px;font-size:clamp(22px,6vw,28px)}.mobile-resume .experience-copy ul{gap:10px;padding-left:16px}.mobile-resume .experience-copy li{font-size:13px;line-height:1.5}.mobile-resume .experience-pills{gap:5px;margin-top:16px}.mobile-resume .experience-pills span{font-size:8px}.mobile-about>img{width:100%;height:min(30vh,250px);display:block;object-fit:cover;object-position:50% 38%;border-radius:19px;box-shadow:0 10px 30px #0000001f}.mobile-about>div{padding:20px 5px 15px}.mobile-about h1,.mobile-experience h1,.mobile-photos h1{margin:3px 0 8px;font-size:clamp(28px,8vw,42px);letter-spacing:-.045em;line-height:.98}.mobile-about p{margin:0;color:#55545a;font-size:14px;line-height:1.5}.mobile-about ul{display:grid;gap:8px;margin:2px 0 0;padding:0;list-style:none}.mobile-about li{display:grid;grid-template-columns:76px 1fr;gap:11px;padding:13px 14px;border-radius:14px;background:#fff;box-shadow:0 1px 1px #0000000a;font-size:13px}.mobile-about li strong{color:#1769d2}.mobile-profile-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.mobile-profile-links a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:#fff;color:#1769d2;font-size:12px;font-weight:650;text-decoration:none;box-shadow:0 1px 1px #0000000a}.mobile-experience>small,.mobile-photos>small,.mobile-about>div>small{color:#1769d2;font-size:10px;font-weight:700;letter-spacing:.11em}.mobile-experience>section{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid rgba(0,0,0,.1)}.mobile-experience .company-icon,.mobile-experience img{width:40px;height:40px;border-radius:10px}.mobile-experience section span{color:#1769d2;font-size:10px}.mobile-experience h2{margin:2px 0 5px;font-size:18px}.mobile-experience p{margin:0;color:#56565b;font-size:13px;line-height:1.45}.mobile-photos>div{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:14px}.mobile-photos img{width:100%;aspect-ratio:1;display:block;object-fit:cover;border-radius:8px}.mobile-photos img:first-child{grid-column:span 2;aspect-ratio:1.6}.mobile-tabbar{z-index:5;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:7px 7px max(7px,env(safe-area-inset-bottom));border-top:1px solid rgba(0,0,0,.09);background:#fcfcfceb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mobile-tabbar button{display:grid;place-items:center;gap:3px;padding:4px;border:0;background:transparent;color:#77777b;font-size:10px}.mobile-tabbar button.selected{color:#1769d2}.mobile-tabbar svg{width:20px;height:20px}.os-mobile .prototype-switcher{top:69px;bottom:auto;max-width:calc(100vw - 20px)}.os-mobile.has-prototype-switcher .mobile-content{padding-top:62px}@media(max-width:1050px)and (min-width:721px){.portfolio-app{grid-template-columns:170px 1fr}.portfolio-about-panel{padding:34px}.portfolio-experience-panel{grid-template-columns:1fr;padding:30px}.portfolio-experience-panel .experience-brand,.experience-brand{display:none}.experience-copy h2{font-size:28px}}@media(prefers-reduced-motion:reduce){.prototype-boot{animation-duration:1ms;animation-delay:.12s}.mac-progress span{animation-duration:.12s}.windows-progress{animation:none}.mac-dock button{transition:none}}.desktop-photo-icons .desktop-blog-glyph{display:grid;place-items:center;width:50px;height:50px;border-radius:11px;background:#f4dec0;color:#7b382d;box-shadow:inset 0 0 0 1px #462c3220,0 3px 5px #0003;text-shadow:none}.desktop-blog-glyph svg{width:25px;height:25px}
