:root{color-scheme:dark;--ink:#f5f4f0;--muted:#b7bac3;--night:#090e18;--panel:rgba(18,25,39,.9);--line:rgba(255,255,255,.13);--amber:#e7ad61;--blue:#9bc1ef;--mint:#bee1d3;--charcoal:#3d4545;--mono:"DM Mono",ui-monospace,SFMono-Regular,Consolas,monospace;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--night);color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--night)}body{overflow-x:hidden}body.desktop-mode,html.desktop-mode{overflow:hidden}body.transition-locked,html.transition-locked{overflow:hidden!important;overscroll-behavior:none}.transition-flash{position:fixed;z-index:31;inset:0;background:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .68s ease,visibility 0s linear .68s}.phase-desktop-ready .transition-flash,.phase-flash .transition-flash{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .38s ease,visibility 0s}button,input,textarea{font:inherit}a,button{color:inherit}[tabindex="0"]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #f4c17a;outline-offset:3px}::selection{background:rgba(230,169,87,.32)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.portfolio-experience{min-height:100vh}.hero-stage,.portfolio-experience{position:relative;isolation:isolate}.hero-stage{height:100vh;height:100svh;width:100%;overflow:hidden;background:#070d1b}.scene-visual{z-index:0;will-change:opacity}.scene-composition,.scene-visual{position:absolute;inset:0;overflow:hidden}.scene-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;display:block;background:#070d1b;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.typing-video{z-index:1}.transition-video{z-index:2;visibility:hidden;opacity:0}.scene-vignette{z-index:1;background:linear-gradient(180deg,rgba(4,8,17,.34),transparent 24%,transparent 56%,rgba(5,8,15,.58)),linear-gradient(90deg,rgba(4,8,17,.16),transparent 45%)}.scene-grain,.scene-vignette{position:absolute;inset:0;pointer-events:none}.scene-grain{opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.19'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.scene-light-pulse{position:absolute;z-index:1;top:13%;right:15%;width:34vw;height:34vw;max-height:62vh;pointer-events:none;background:radial-gradient(ellipse,rgba(241,164,79,.13),rgba(233,133,49,.035) 42%,transparent 71%);mix-blend-mode:screen;animation:lamp-pulse 4.8s ease-in-out infinite alternate}.hero-header{position:absolute;z-index:4;top:clamp(24px,4vh,46px);left:clamp(24px,5.3vw,82px);right:clamp(24px,5.3vw,82px);display:flex;align-items:center;justify-content:space-between}.hero-brand{color:#f6f2eb;text-decoration:none;font:500 14px var(--mono);letter-spacing:-.045em;text-shadow:0 2px 16px #000}.brand-cursor{color:var(--amber);animation:caret-blink 1.1s step-end infinite}.hero-nav{display:flex;align-items:center;gap:clamp(18px,3vw,44px)}.hero-nav button,.hero-project-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:8px 0;background:transparent;color:rgba(244,244,241,.8);font-size:12px;cursor:pointer;text-shadow:0 2px 14px #000;transition:color .2s ease}.hero-nav button:hover,.hero-project-link:hover{color:#fff}.hero-copy{position:absolute;z-index:4;left:clamp(30px,5.3vw,82px);top:clamp(190px,27vh,254px);bottom:auto;width:min(390px,24vw);padding:15px 13px 17px 0;text-shadow:0 3px 26px rgba(0,0,0,.45)}.eyebrow,.hero-kicker{color:#e2b678;font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase}.hero-kicker{display:flex;align-items:center;gap:9px;margin-bottom:17px}.hero-kicker i{width:7px;height:7px;display:inline-block;border-radius:50%;background:#dfa85d;box-shadow:0 0 12px #dfa85d}.hero-copy h1{margin:0;max-width:400px;color:#f8f7f3;font-size:clamp(40px,2.9vw,56px);line-height:.98;letter-spacing:-.075em;font-weight:600;overflow-wrap:anywhere}.hero-copy h1 span{white-space:normal}.hero-copy h1 .headline-light{color:rgba(248,247,243,.77);font-weight:400}.hero-copy>p{max-width:345px;margin:15px 0 19px;color:rgba(239,238,236,.82);font-size:12px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:21px}.hero-enter-button{min-height:44px;border:1px solid rgba(239,193,128,.4);border-radius:30px;padding:0 17px 0 8px;display:inline-flex;align-items:center;gap:11px;color:#fff9ee;background:rgba(230,172,95,.15);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:11px;cursor:pointer;transition:.24s ease}.hero-enter-button:hover{background:rgba(230,172,95,.28);border-color:rgba(239,193,128,.75);transform:translateY(-2px)}.enter-orbit{width:28px;height:28px;border:1px solid rgba(255,255,255,.22);border-radius:50%;display:grid;place-items:center;color:#efc07c;font-size:15px}.button-arrow{margin-left:2px;color:#f0c078;font-size:15px}.hero-project-link{font:11px var(--mono);color:rgba(255,255,255,.76)}.hero-project-link span{color:#f0c078;margin-left:4px}.hero-side-note{position:absolute;z-index:4;right:5.4vw;top:63%;display:flex;align-items:center;gap:10px;color:rgba(245,237,220,.68);font:8px/1.8 var(--mono);letter-spacing:.13em;white-space:pre-line}.side-line{height:1px;width:29px;background:rgba(239,190,117,.85)}.hero-bottom{position:absolute;z-index:4;left:clamp(24px,5.3vw,82px);right:clamp(24px,5.3vw,82px);bottom:27px;justify-content:space-between;align-items:flex-end;color:rgba(230,234,239,.62);font:8px var(--mono)}.hero-bottom,.scroll-cue{display:flex;letter-spacing:.1em}.scroll-cue{align-items:center;flex-direction:column;gap:8px;color:rgba(250,246,239,.81);font:9px var(--mono)}.scroll-mouse{width:17px;height:25px;border:1px solid rgba(242,230,208,.62);border-radius:12px;position:relative;display:block}.scroll-mouse i{position:absolute;top:5px;left:7px;height:5px;width:2px;border-radius:3px;background:#f2c27e;animation:scroll-dot 1.5s ease-in-out infinite}.mobile-shortcut{display:none}.desktop-shell{position:fixed;z-index:30;inset:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .72s ease,filter .72s ease,transform .72s cubic-bezier(.2,.8,.2,1);background:#172239}.desktop-shell.desktop-visible{visibility:visible;opacity:1;pointer-events:auto}.desktop-shell.desktop-shutting-down{opacity:0;transform:scale(1.055);filter:blur(8px);pointer-events:none}.phase-desktop-ready .desktop-shell{transition:none}.desktop-wallpaper{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 82% 19%,rgba(190,183,157,.9) 0,rgba(112,116,112,.66) 15%,transparent 37%),radial-gradient(ellipse at 68% 83%,rgba(168,130,90,.76) 0,rgba(92,82,74,.6) 17%,transparent 44%),radial-gradient(ellipse at 18% 13%,rgba(88,117,148,.63),transparent 38%),linear-gradient(155deg,#23354b,#475465 42%,#39404a 68%,#1e2836)}.desktop-wallpaper:before{content:"";position:absolute;inset:-8%;background:radial-gradient(ellipse at 50% 46%,transparent 28%,rgba(16,22,31,.29) 100%);filter:blur(25px)}.desktop-wallpaper:after{content:"";position:absolute;width:120vw;height:80vh;left:-10vw;bottom:-55vh;border-radius:50%;background:linear-gradient(170deg,rgba(245,210,150,.36),rgba(34,47,66,.8));filter:blur(75px);transform:rotate(-12deg)}.menu-bar{height:36px;position:absolute;z-index:32;top:0;left:0;right:0;padding:0 17px;gap:29px;color:#f7f7f6;background:rgba(25,30,39,.57);border-bottom:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(24px) saturate(1.35);backdrop-filter:blur(24px) saturate(1.35);font-size:10px}.menu-bar,.menu-brand{display:flex;align-items:center}.menu-brand{gap:9px;white-space:nowrap}.menu-brand strong{font-size:12px;font-weight:800}.menu-brand>span:last-child{color:rgba(255,255,255,.75)}.menu-mark{font-size:17px;color:#f8f7f2}.menu-links{gap:20px;color:rgba(255,255,255,.79)}.menu-links,.menu-tools{display:flex;align-items:center}.menu-tools{margin-left:auto;gap:15px;position:relative}.menu-tool{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;color:#f7f7f4;background:transparent;cursor:pointer}.language-trigger{font-size:12px}.language-short,.menu-clock{font:9px var(--mono)}.menu-clock{color:rgba(255,255,255,.88);white-space:nowrap}.power-tool{width:25px;height:25px;border-radius:50%;transition:background .2s ease,color .2s ease}.power-tool:hover{background:rgba(255,255,255,.15);color:#f2c487}.language-popover{position:absolute;z-index:55;top:32px;right:35px;width:210px;padding:10px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:rgba(29,35,45,.94);box-shadow:0 14px 48px rgba(0,0,0,.3);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.language-popover p{margin:5px 8px 9px;color:#9da8b6;font:9px var(--mono);text-transform:uppercase;letter-spacing:.1em}.language-popover button{width:100%;border:0;border-radius:7px;padding:9px 10px;display:flex;justify-content:space-between;color:#eef0f3;background:transparent;text-align:left;font-size:11px;cursor:pointer}.language-popover button.selected,.language-popover button:hover{background:rgba(255,255,255,.1)}.language-popover small{color:#909ba9}.desktop-watermark{position:absolute;top:48%;left:clamp(28px,6vw,96px);color:rgba(255,255,255,.18);pointer-events:none}.desktop-watermark>span{font:200 64px/.9 Manrope,sans-serif;letter-spacing:-.1em}.desktop-watermark p{margin:12px 0;color:rgba(255,255,255,.72);font:9px var(--mono);letter-spacing:.11em;text-transform:uppercase}.desktop-icons{position:absolute;top:76px;right:clamp(20px,4vw,58px);display:grid;grid-template-columns:repeat(2,82px);grid-gap:13px 7px;gap:13px 7px}.desktop-app-icon{width:82px;min-height:98px;border:1px solid transparent;border-radius:9px;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;background:transparent;cursor:pointer;text-shadow:0 2px 5px rgba(0,0,0,.65);transition:background .16s ease}.desktop-app-icon:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.13)}.app-icon{display:grid;place-items:center;width:51px;height:51px;border-radius:13px;color:#fff;font-size:29px;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.34)}.icon-projects{color:#4b6e91;background:linear-gradient(145deg,#f4e3bb,#d6ab6e);text-shadow:0 1px 0 rgba(255,255,255,.7)}.icon-resume{background:linear-gradient(145deg,#f9f4eb,#cfd4d8);color:#6a83a1;font-size:36px}.icon-about{background:linear-gradient(145deg,#d5b7a2,#755f67);color:#fff1dc}.icon-contact{background:linear-gradient(145deg,#b9d5cb,#648f89);color:#f8ffff}.icon-snake{background:linear-gradient(145deg,#c5e6d9,#9bc5b2);color:#414b48;font-size:27px}.desktop-icon-label{max-width:84px;padding:2px 5px;border-radius:4px;color:#fbfbfa;text-align:center;font-size:9px;line-height:1.35;overflow-wrap:anywhere}.desktop-dock{position:absolute;z-index:31;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:flex-end;gap:8px;max-width:calc(100vw - 30px);overflow-x:auto;scrollbar-width:none;padding:8px 10px 10px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(231,237,242,.16);box-shadow:0 10px 38px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(25px) saturate(1.3);backdrop-filter:blur(25px) saturate(1.3)}.desktop-dock::-webkit-scrollbar{display:none}.dock-app{position:relative;width:50px;height:53px;flex:0 0 auto;border:0;padding:0;background:transparent;display:grid;place-items:center;cursor:pointer;transition:transform .2s cubic-bezier(.22,.75,.3,1.5)}.dock-app:hover{transform:translateY(-8px) scale(1.13)}.dock-app .app-icon{width:42px;height:42px;border-radius:11px;font-size:24px}.dock-label{position:absolute;opacity:0;pointer-events:none;bottom:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(4px);padding:5px 8px;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#f6f5f2;background:rgba(18,22,30,.8);white-space:nowrap;font-size:9px;transition:.16s ease}.dock-app:hover .dock-label{opacity:1;transform:translateX(-50%) translateY(0)}.dock-dot{position:absolute;bottom:-3px;left:50%;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.83)}.desktop-bottom-glow{position:absolute;z-index:-1;left:30%;right:30%;bottom:0;height:15vh;background:rgba(202,183,151,.15);filter:blur(65px)}.app-window{position:absolute;overflow:hidden;min-width:310px;min-height:245px;border:1px solid rgba(255,255,255,.35);border-radius:13px;background:rgba(247,246,243,.96);color:#24272b;box-shadow:0 24px 75px rgba(6,10,18,.37),0 2px 9px rgba(10,15,24,.2);animation:window-open .37s cubic-bezier(.16,.75,.25,1) both;transition:opacity .28s ease,transform .38s cubic-bezier(.22,.8,.2,1);transform-origin:center center}.window-titlebar{height:43px;position:relative;display:grid;grid-template-columns:88px 1fr 88px;align-items:center;border-bottom:1px solid rgba(51,55,61,.09);background:linear-gradient(180deg,#fbfaf8,#eeedea);cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.window-titlebar:active{cursor:-webkit-grabbing;cursor:grabbing}.window-controls{display:flex;align-items:center;gap:7px;padding-left:14px}.traffic-light{width:12px;height:12px;border:0;border-radius:50%;padding:0;display:grid;place-items:center;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(70,36,33,.12)}.traffic-light.close{background:#ff5e57}.traffic-light.close span{color:rgba(92,20,16,.86);font:700 9px/1 ui-sans-serif,system-ui,sans-serif}.traffic-light.maximize{background:#28c840}.traffic-light.maximize span{width:5px;height:5px;display:block;border:1px solid rgba(0,75,10,.84)}.window-title{text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#5d6064;font-size:10px;font-weight:700}.window-title-right{text-align:right;padding-right:15px;color:#a3a5a8;font:11px var(--mono)}.window-content{width:100%;height:calc(100% - 43px);overflow:auto;overscroll-behavior:contain}.window-maximized{top:44px!important;left:9px!important;width:calc(100vw - 18px)!important;height:calc(100vh - 136px)!important;border-radius:11px}.about-app,.contact-app,.project-detail,.projects-app,.resume-app{min-height:100%;padding:clamp(22px,4vw,42px);background:radial-gradient(ellipse at 100% 0,rgba(221,227,232,.36),transparent 36%),#f6f5f2;color:#252a31}.about-app h2,.app-heading h2,.contact-app h2,.resume-app h2{margin:6px 0 8px;font-size:clamp(25px,3vw,37px);line-height:1.07;letter-spacing:-.06em;font-weight:600}.app-heading p{color:#747b82;font-size:12px}.app-heading{margin-bottom:24px}.about-app .eyebrow,.app-heading .eyebrow,.contact-app .eyebrow,.project-detail .eyebrow,.resume-app .eyebrow{color:#b07e42}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.project-card{min-height:145px;position:relative;overflow:hidden;border:1px solid #e4e3df;border-radius:10px;padding:0;display:grid;grid-template-columns:minmax(110px,.42fr) minmax(0,1fr);color:#2b3035;text-align:left;background:#fffefa;cursor:pointer;transition:.2s ease}.project-card:hover{transform:translateY(-2px);border-color:#d0b78d;box-shadow:0 7px 18px rgba(76,67,53,.09)}.project-art{position:relative;overflow:hidden;min-height:145px;display:grid;place-items:center;background:linear-gradient(135deg,#d9e3eb,#aebdcb)}.project-art-2{background:linear-gradient(145deg,#d7e3d2,#a6c2ad)}.project-art-3{background:linear-gradient(140deg,#d9d2d1,#b69e9c)}.project-art-4{background:linear-gradient(140deg,#d5d9e6,#a2abc3)}.project-art-5{background:linear-gradient(145deg,#d9d2ba,#ae9b6c)}.project-art img{position:absolute;width:100%;height:100%;object-fit:cover}.project-art img[src$=".svg"]{object-fit:contain;padding:12px}.project-folder-glyph{position:absolute;right:10px;bottom:7px;color:rgba(255,255,255,.84);font-size:20px;text-shadow:0 1px 5px rgba(0,0,0,.4)}.project-card-copy{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:17px 18px}.project-card-copy small{color:#a67b4c;font:8px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em}.project-card-copy strong{font-size:13px;line-height:1.35}.project-card-copy>span{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#71767b;font-size:10px;line-height:1.5}.project-card-arrow{position:absolute;right:12px;top:10px;color:#a7a39a;font-size:13px}.project-detail{padding-top:22px}.back-button{border:0;padding:0;margin-bottom:21px;color:#9c7140;background:transparent;font-size:10px;cursor:pointer}.project-detail-hero{display:grid;grid-template-columns:minmax(160px,.8fr) 1.2fr;grid-gap:24px;gap:24px;align-items:center}.project-detail-hero>img{width:100%;max-height:190px;object-fit:contain;border-radius:9px;background:#e7e6e1}.project-detail-hero h2{margin:6px 0 9px;font-size:26px;letter-spacing:-.05em}.project-detail p{color:#6c7278;font-size:11px;line-height:1.75}.about-app h3,.project-detail h3,.resume-app h3{margin:23px 0 11px;color:#383d41;font-size:12px}.detail-list{padding-left:17px;margin:0;color:#686f74;font-size:11px;line-height:1.7}.detail-list li+li{margin-top:6px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:5px 8px;border:1px solid #e4e1dc;border-radius:20px;color:#555c62;background:rgba(255,255,255,.74);font:9px var(--mono)}.project-note{margin:18px 0 10px;padding-left:12px;border-left:2px solid #d8b27a}.project-links{display:flex;gap:8px;margin-top:15px}.action-button{min-height:36px;border:1px solid #dbd8d1;border-radius:7px;padding:0 12px;display:inline-flex;align-items:center;gap:9px;color:#34393d;background:#fff;text-decoration:none;font-size:10px;transition:.18s}.action-button:hover{border-color:#cba776;background:#fffcf7}.action-button span{color:#ac7941}.resume-top{display:flex;align-items:center;gap:19px}.resume-monogram{width:57px;height:57px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#263448,#536074);color:#f3e4c9;font:17px var(--mono);letter-spacing:-.1em}.resume-app h2{margin:4px 0}.about-app p,.contact-app>p,.resume-app .resume-top p{max-width:620px;color:#6d747a;font-size:11px;line-height:1.75}.download-button{margin-top:20px;border-color:#d8b27b;background:#fffdf8}.resume-columns{display:grid;grid-template-columns:1fr .95fr;grid-gap:35px;gap:35px;margin-top:14px}.resume-columns h3:first-child{margin-top:11px}.timeline-entry{position:relative;display:flex;gap:9px;margin:13px 0;color:#565d64;font-size:10px;line-height:1.6}.timeline-entry>i{flex:0 0 auto;width:7px;height:7px;margin:4px 0 0;border-radius:50%;background:#c1945d;box-shadow:0 0 0 3px #f0e6d8}.timeline-entry strong{color:#383e42}.timeline-entry p{margin:4px 0;color:#7a8084}.skill-group{margin:11px 0}.skill-group h4{margin:0 0 6px;color:#8a8f91;font-size:9px;font-weight:600}.about-app{display:grid;grid-template-columns:minmax(130px,.56fr) 1.44fr;grid-gap:clamp(25px,5vw,56px);gap:clamp(25px,5vw,56px);align-items:start}.about-portrait{position:-webkit-sticky;position:sticky;top:20px;aspect-ratio:.78;max-height:420px;border-radius:120px 120px 22px 22px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 38%,#a68e7f 0,#755f61 34%,#383d4b 69%,#272e39 100%);box-shadow:inset 0 0 50px rgba(13,20,29,.25)}.about-portrait>span{width:102px;height:102px;border:1px solid rgba(255,242,218,.54);border-radius:50%;display:grid;place-items:center;color:#f3e4ce;font:29px var(--mono);letter-spacing:-.1em;background:rgba(21,31,42,.3)}.about-portrait>i{position:absolute;top:28%;right:21%;color:#edc98f;font-size:13px;font-style:normal}.portrait-orbit{position:absolute;width:180%;height:45%;border:1px solid rgba(245,222,185,.2);border-radius:50%;transform:rotate(-35deg)}.orbit-two{width:150%;height:35%;transform:rotate(38deg)}.about-copy h2{margin-top:7px}.about-copy>p{margin:11px 0 19px}.about-section{margin-top:21px}.about-section h3{margin:0 0 9px}.about-facts p{margin:9px 0;display:flex;align-items:baseline;gap:10px;color:#5d6469;font-size:10px}.about-facts p span{color:#b18958;font:8px var(--mono)}.contact-app{text-align:center}.contact-orb{width:62px;height:62px;margin:1px auto 19px;border-radius:21px;display:grid;place-items:center;color:#fff1d9;font-size:30px;background:linear-gradient(145deg,#d0ab76,#8f7255);box-shadow:0 9px 22px rgba(149,117,74,.21)}.contact-app>p{margin:0 auto 21px}.contact-list{max-width:590px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;text-align:left}.contact-link{min-height:64px;border:1px solid #e6e3dd;border-radius:9px;padding:9px 12px;display:flex;align-items:center;gap:11px;color:#373d42;background:rgba(255,255,255,.83);text-decoration:none;transition:.16s}.contact-link:hover{transform:translateY(-1px);border-color:#d6bb94}.contact-mark{width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;color:#926d42;background:#f1e8d9;font:12px var(--mono)}.contact-link>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}.contact-link small{color:#888d90;font-size:8px}.contact-link strong{overflow:hidden;color:#3b4247;text-overflow:ellipsis;font-size:10px;font-weight:600}.contact-link i{margin-left:auto;color:#aa804e;font-style:normal;font-size:12px}.snake-app{min-height:100%;padding:20px clamp(18px,4vw,42px) 12px;display:flex;flex-direction:column;align-items:center;background:#f1f4ef;color:#384343}.snake-toolbar{width:min(500px,100%);display:flex;justify-content:space-between;align-items:flex-end}.snake-toolbar .eyebrow{color:#7c9690}.snake-toolbar h2{margin:4px 0 0;font:500 27px var(--mono);letter-spacing:-.08em}.snake-score{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.snake-score small{color:#7d8984;font:8px var(--mono);text-transform:uppercase;letter-spacing:.11em}.snake-score strong{color:#414c4b;font:500 21px var(--mono)}.snake-instructions{max-width:500px;width:100%;margin:8px 0 11px;color:#82908a;font-size:9px;line-height:1.6}.snake-board-frame{width:min(500px,100%);aspect-ratio:20/14;padding:10px;border:1px solid #cbd9d0;border-radius:12px;background:#d8e8df;box-shadow:inset 0 1px rgba(255,255,255,.8),0 8px 20px rgba(59,74,70,.08)}.snake-board{position:relative;width:100%;height:100%;display:grid;grid-template-columns:repeat(20,1fr);grid-template-rows:repeat(14,1fr);overflow:hidden;background:#bee1d3;outline:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.snake-cell{display:block}.snake-body{background:#414a49}.snake-head{position:relative;background:#303b3a}.snake-head:after{content:"";position:absolute;width:21%;height:21%;border-radius:1px;right:16%;top:17%;background:#bee1d3}.snake-head.head-left:after{left:16%;right:auto}.snake-head.head-up:after{top:15%;left:20%}.snake-head.head-down:after{top:auto;bottom:15%;left:20%}.snake-food{position:relative;display:grid;place-items:center}.snake-food:after{content:"";width:52%;height:52%;background:#43504e;-webkit-clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%);clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%)}.snake-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:rgba(190,225,211,.84);color:#3f4b49;font:10px var(--mono);letter-spacing:.08em}.snake-mark{width:45px;height:45px;border:3px solid #3f4b49;display:grid;place-items:center;font-size:22px;line-height:1}.snake-actions{width:min(500px,100%);display:flex;align-items:center;gap:8px;margin-top:9px}.snake-actions button{border:1px solid #cbd7d0;border-radius:6px;padding:7px 10px;color:#495552;background:#f9fbf9;font-size:9px;cursor:pointer}.snake-actions button:hover{background:#e2eee7}.snake-actions .snake-primary{border-color:#475150;color:#f4f5f2;background:#46504f}.snake-actions .snake-primary:hover{background:#333d3c}.snake-dpad{margin-left:auto;display:flex;flex-direction:column;align-items:center;gap:3px}.snake-dpad span{display:flex;gap:4px}.snake-actions .snake-dpad button{min-width:24px;padding:4px 7px;font-size:12px}.snake-footer{width:min(500px,100%);margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;color:#9daaa4;font:7px var(--mono);letter-spacing:.1em}@keyframes caret-blink{0%,48%{opacity:1}50%,to{opacity:0}}@keyframes scroll-dot{0%{transform:translateY(0);opacity:1}80%,to{transform:translateY(6px);opacity:0}}@keyframes lamp-pulse{0%{opacity:.48;transform:scale(.96)}to{opacity:.9;transform:scale(1.04)}}@keyframes window-open{0%{opacity:0;transform:translate(var(--origin-x,0),var(--origin-y,0)) scale(.18)}to{opacity:1;transform:translate(0) scale(1)}}@media (max-width:1200px) and (min-width:901px){.hero-copy{width:min(390px,35vw);left:4.2vw;top:clamp(175px,25vh,225px);bottom:auto}.hero-copy h1{font-size:clamp(42px,4.5vw,56px)}.hero-side-note{right:3vw;top:70%}.desktop-icons{right:18px;grid-template-columns:repeat(2,74px)}.desktop-app-icon{width:74px}.desktop-dock{gap:4px}.dock-app{width:46px}}@media (max-width:1500px) and (min-width:901px){.hero-copy{top:clamp(155px,22vh,215px);width:min(360px,24vw)}.hero-copy>p{max-width:min(230px,100%)}.hero-actions{flex-direction:column;align-items:flex-start;gap:8px}}@media (max-height:620px),(max-width:900px){.hero-direct-mode .scene-video{object-position:35% center}.hero-direct-mode .scene-vignette{background:linear-gradient(180deg,rgba(5,9,16,.36),transparent 38%,rgba(5,8,15,.52))}.hero-copy{left:6vw;bottom:12vh;width:min(480px,54vw)}.hero-copy h1{font-size:clamp(39px,6vw,64px)}.hero-side-note{display:none}.mobile-shortcut{position:absolute;z-index:5;left:50%;bottom:36px;transform:translateX(-50%);border:1px solid rgba(236,207,166,.34);border-radius:22px;padding:10px 14px;display:flex;gap:9px;align-items:center;color:#f7f2e9;background:rgba(10,17,28,.48);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:10px;white-space:nowrap;cursor:pointer}.hero-bottom{bottom:22px}.hero-bottom .scroll-cue{display:none}.hero-bottom{justify-content:flex-end}.hero-bottom .hero-coordinate{display:none}}@media (max-width:700px){.hero-stage{min-height:100svh}.scene-video{object-position:35% center}.hero-header{left:20px;right:20px;top:20px}.hero-brand{font-size:11px}.hero-nav{gap:12px}.hero-nav button{font-size:9px}.hero-copy{left:22px;bottom:104px;width:calc(100% - 44px);padding:16px;border:1px solid rgba(255,255,255,.11);border-radius:15px;background:linear-gradient(135deg,rgba(7,12,22,.62),rgba(7,12,22,.24));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-kicker{font-size:7px;margin-bottom:10px}.hero-copy h1{font-size:clamp(35px,10vw,53px)}.hero-copy>p{margin:11px 0 16px;font-size:10px;line-height:1.55;max-width:310px}.hero-enter-button{min-height:38px;font-size:9px}.enter-orbit{width:25px;height:25px}.hero-project-link{font-size:9px}.hero-bottom{bottom:16px;left:22px;right:22px;font-size:7px}.hero-bottom .hero-date{margin-left:auto}.mobile-shortcut{bottom:18px}.desktop-shell{overflow-y:auto}.menu-bar{padding:0 9px;gap:8px}.menu-brand{gap:5px}.menu-brand strong{font-size:10px}.menu-brand>span:last-child,.menu-links{display:none}.menu-tools{gap:9px}.menu-clock{font-size:8px}.language-popover{right:28px}.desktop-icons{top:62px;right:10px;grid-template-columns:repeat(2,65px);gap:2px}.desktop-app-icon{width:65px;min-height:82px}.app-icon{width:43px;height:43px;font-size:24px}.desktop-icon-label{font-size:8px}.desktop-watermark{left:19px;top:43%}.desktop-watermark>span{font-size:48px}.desktop-dock{bottom:max(10px,env(safe-area-inset-bottom));gap:0;padding:5px 6px 7px;border-radius:15px}.dock-app{order:1;width:44px;height:43px}.dock-app .app-icon{width:36px;height:36px;font-size:21px}.dock-label{display:none}.app-window{position:fixed!important;top:43px!important;left:8px!important;width:calc(100vw - 16px)!important;height:calc(100dvh - 102px)!important;min-width:0;min-height:280px;border-radius:12px}.window-titlebar{height:42px}.window-content{height:calc(100% - 42px)}.about-app,.contact-app,.project-detail,.projects-app,.resume-app{padding:21px 16px}.project-grid{grid-template-columns:1fr;gap:9px}.project-card{grid-template-columns:108px 1fr}.project-art,.project-card{min-height:112px}.project-card-copy{padding:12px 11px}.project-card-copy>span{-webkit-line-clamp:2;font-size:9px}.project-card-copy strong{font-size:11px}.project-detail-hero{grid-template-columns:1fr;gap:12px}.project-detail-hero>img{max-height:165px}.resume-columns{grid-template-columns:1fr;gap:8px}.about-app{grid-template-columns:1fr;gap:17px}.about-portrait{position:relative;top:auto;width:116px;height:132px;aspect-ratio:auto;border-radius:70px 70px 16px 16px}.about-portrait>span{width:62px;height:62px;font-size:19px}.about-portrait>i{top:23%;right:22%}.about-copy h2{font-size:26px}.contact-list{grid-template-columns:1fr}.snake-app{padding:18px 13px 12px}.snake-board-frame{padding:6px}.snake-actions{gap:5px}.snake-actions button{padding:7px 8px;font-size:8px}.snake-dpad{display:none}.snake-instructions{font-size:8px}.snake-footer{font-size:6px}}@media (max-width:390px){.hero-nav{gap:8px}.hero-nav button{font-size:8px}.hero-copy{left:14px;width:calc(100% - 28px);bottom:90px;padding:13px}.hero-copy h1{font-size:34px}.hero-actions{gap:11px}.hero-project-link{font-size:8px}.desktop-icons{grid-template-columns:repeat(2,58px)}.desktop-app-icon{width:58px}.dock-app{width:39px}.dock-app .app-icon{width:32px;height:32px;font-size:18px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}