@font-face{font-family:Unbounded;src:url("../fonts/Unbounded-Latin.woff2") format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:Unbounded;src:url("../fonts/Unbounded-Vietnamese.woff2") format("woff2");font-style:normal;font-weight:200 900;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Space Grotesk";src:url("../fonts/SpaceGrotesk-latin.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("../fonts/SpaceGrotesk-vietnamese.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}:root{color-scheme:dark;--bg:#030509;--surface:#050c1a;--text:#f5f6fa;--muted:#99a3b5;--border:#253044;--input:#262628;--display:Unbounded,Arial,sans-serif;--body:"Space Grotesk",Arial,sans-serif}:root[data-theme=light]{color-scheme:light;--bg:#f6f5f1;--surface:#f9fafc;--text:#151923;--muted:#626c7e;--border:#c9cdd6;--input:#e6e7eb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--text);background:var(--bg);font:500 16px/1.55 var(--body);-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(135deg,#000 0,#111522 51%,#000 100%);pointer-events:none}:root[data-theme=light] body::before{background:linear-gradient(135deg,#faf9f4,#e8ecf4,#faf9f4)}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.6}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #8dc7ff;outline-offset:4px}input:focus-visible,textarea:focus-visible{outline:2px solid #8dc7ff;outline-offset:2px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1}h1,h2,h3{font-family:var(--display);font-weight:700}svg{width:24px;height:24px;flex-shrink:0}[hidden]{display:none!important}.section-shell{width:min(1216px,calc(100% - 64px));margin-inline:auto}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:var(--text);color:var(--bg);padding:10px 18px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#starfield{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}#keyboardWebGL{position:fixed;inset:0;z-index:1;pointer-events:none}#keyboardWebGL canvas{display:block;width:100%;height:100%}.over-3d-key{cursor:pointer}.scroll-progress{position:fixed;inset:0 auto auto 0;width:100%;height:2px;transform:scaleX(0);transform-origin:left;background:#dce4ef;z-index:45;opacity:.45}.portfolio-header{position:fixed;inset:0 0 auto;height:76px;padding-inline:30px 16px;display:flex;align-items:center;justify-content:space-between;z-index:40}.portfolio-header.scrolled{background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(16px)}.wordmark{font-size:16px;font-weight:700;letter-spacing:-.45px}.brand-dot{display:none}.header-actions{display:flex;align-items:center;gap:12px}.header-location{display:none}.header-square,.icon-button{display:grid;place-items:center;width:46px;height:44px;border:2px solid #5a5e68;border-radius:7px;background:0 0}#themeToggle{width:32px;border:0;margin-right:3px}#themeToggle svg{width:20px;height:20px}.header-github{display:inline-flex;align-items:center;gap:8px;height:44px;padding-inline:12px;border:2px solid #5a5e68;border-radius:7px;font-size:14px;font-weight:700}.header-github svg{width:19px;height:19px}.menu-toggle{background:0 0;border:0;display:flex;align-items:center;gap:13px;font-size:14px;padding:10px 0 10px 3px}.menu-lines{width:22px;height:8px;border-block:1px solid currentColor}.hero{position:relative;min-height:840px;height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.hero-copy{position:relative;z-index:2;min-width:0;transform:translateY(-22px)}.eyebrow{font-size:20px;color:#a1a1ab;margin-bottom:11px}h1{font-size:clamp(64px, 8.9vw, 128px);letter-spacing:-5px;line-height:1;font-weight:700}h1>span{display:block;white-space:nowrap}.hero-role{color:#a1a1ab;font-size:20px;margin-top:26px}.hero-role strong{font-weight:500}.hero-links{margin-top:32px;width:286px;max-width:100%}.button{border:1px solid var(--border);border-radius:6px;background:0 0;display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:11px 20px;font-size:14px;line-height:1.4;font-weight:500;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--text);color:var(--surface)}.hero-links .button{width:100%;height:40px}.hero-links svg{width:22px;height:22px}.hero-socials{display:flex;align-items:stretch;gap:9px;margin-top:12px;width:286px;max-width:100%}.hire-button,.social-icon{display:grid;place-items:center;height:40px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}.hire-button{font-size:14px;font-weight:600;padding:0 16px;white-space:nowrap}.social-icon{width:58px;flex:1;padding:5px}.hire-button:hover,.social-icon:hover{border-color:#8694ab}.social-icon svg{width:24px;height:24px}.scroll-cue{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);width:24px;height:49px;border:2px solid #e4e6ec;border-radius:18px;z-index:3}.scroll-cue span{position:absolute;top:11px;left:5px;width:10px;height:13px;border-radius:8px;background:#b8b9bf;animation:scroll-mouse 1.8s infinite}.keyboard-scene{min-width:0;height:510px;perspective:1100px;position:relative;z-index:3;display:grid;place-items:center}.keyboard{position:absolute;left:50%;top:50%;width:570px;padding:24px;background:#252628;border:5px solid #303135;border-radius:28px;box-shadow:0 13px #161719,0 28px #020304;transform:translate(-50%,-50%) rotateX(33deg) rotateZ(-16deg);transform-style:preserve-3d}.key-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px 10px;padding:9px;background:#101114;border-radius:15px}.keycap{min-width:0;height:68px;padding:10px;border-radius:14px;border:1px solid #ffffff36;background:var(--key-color);box-shadow:0 12px 0 color-mix(in srgb,var(--key-color),#000 40%);transform-style:preserve-3d;position:relative;transition:transform .15s}.keycap img{width:37px;height:37px;margin:auto}.keycap small{position:absolute;right:7px;bottom:3px;font-size:8px;text-transform:uppercase}.keycap.pressed{transform:translateY(9px)}.skill-readout{position:absolute;top:calc(100% - 14px);left:10%;right:0;color:var(--muted);font-size:13px;text-align:center}.skill-readout small,.skill-readout strong{display:block;font-weight:400}.skill-index{display:none}.webgl-ready .keyboard-scene{pointer-events:none;perspective:none}.webgl-ready #keyboard{position:fixed;inset:0;width:100%;height:100%;padding:0;border:0;transform:none!important;box-shadow:none;background:0 0;pointer-events:none}.webgl-ready .key-grid{display:contents}.webgl-ready .keycap{position:fixed;opacity:0;padding:0;transform:none;pointer-events:auto;border:0;box-shadow:none}.webgl-ready .keycap>*{display:none}.webgl-ready .keycap:focus-visible{opacity:1;background:#ffffff26;outline:2px solid #dbeaff;border-radius:8px}.webgl-ready .skill-readout{opacity:0}.hero:has(.keycap:focus-visible) .skill-readout{opacity:1}section:not(.hero){position:relative;z-index:2}.section-heading{text-align:center;margin-bottom:48px}.section-heading h2{font-size:72px;letter-spacing:-3px;line-height:1}.section-heading p{color:var(--muted);font-size:16px;font-weight:400;margin-top:13px}.stack-section{min-height:1500px;padding-top:80px;padding-bottom:90px}.stack-stage{height:930px;position:relative;pointer-events:none}.stack-stage-label{position:absolute;top:180px;left:35px;transform:rotate(-37deg);transform-origin:left center;color:#c7c9d2}.stack-stage-label strong{display:block;font:700 38px/1.25 var(--display);text-shadow:0 2px #a6a8b1,0 4px #797c85,0 6px #555760,0 8px #40424b;letter-spacing:-1px}.stack-stage-label span{font-size:24px;display:block;margin-top:18px}.stack-selection{text-align:center;color:var(--muted);min-height:30px;font-size:14px}.stack-grid{width:min(900px,100%);margin:20px auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.stack-item{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid transparent;border-radius:22px;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--muted);font-size:12px}.stack-item img{width:18px;height:18px;object-fit:contain}.stack-item.active{color:var(--text);border-color:#8b9bae}.experience-section{padding:70px 0 100px}.experience-list{width:min(832px,100%);margin-inline:auto;position:relative}.experience-list::before{content:"";position:absolute;top:0;bottom:20px;left:50%;width:1px;background:var(--border)}.experience-row{position:relative;border:1px solid var(--border);border-radius:7px;background:var(--surface);padding:24px;margin-top:28px}.experience-period{position:absolute;top:23px;right:24px;font-size:12px;color:var(--text)}.status-dot{display:inline-block;background:#17bc8b;border-radius:50%;width:7px;height:7px;margin-right:6px}.experience-title{padding-right:185px}.experience-title h3{font-size:20px;line-height:1.15;letter-spacing:-.65px}.company{color:var(--muted);font-size:16px;margin-top:8px}.experience-content ul{padding-left:0;list-style-position:inside;color:var(--muted);font-size:16px;line-height:1.7;margin:17px 0 20px}.experience-content li{margin-block:6px}.tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:16px}.tags span{padding:4px 10px;border-radius:20px;background:color-mix(in srgb,var(--muted) 9%,transparent);font-size:12px;color:var(--muted)}.work-note{color:var(--muted);font-size:11px;margin-top:14px}.projects-section{padding-top:90px;padding-bottom:115px}.project-toolbar{display:flex;align-items:center;justify-content:center;gap:20px;position:relative;z-index:4}.project-filters{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.project-filters button{background:color-mix(in srgb,var(--bg) 80%,transparent);color:var(--muted);padding:5px 12px;border:1px solid var(--border);border-radius:20px;font-size:12px}.project-filters button[aria-pressed=true]{color:var(--text);border-color:var(--muted)}.project-count{font-size:11px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin-top:300px}.project-card{min-width:0;position:relative}.project-open{padding:0;border:1px solid var(--border);border-radius:9px;overflow:hidden;display:block;width:100%;aspect-ratio:1.48;background:var(--surface);color:#f8f9fb;text-align:left;position:relative;isolation:isolate}.project-visual{position:absolute;inset:0;display:grid;place-items:center;background:#17233b;overflow:hidden}.project-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#020816 0,#02081626 35%,transparent 70%);z-index:1;pointer-events:none}.project-visual img{width:83%;height:77%;object-fit:contain;border-radius:6px;transform:translateY(-8px);transition:transform .6s}.project-open:hover .project-visual img{transform:translateY(-13px) scale(1.05)}.project-hover,.project-index{display:none}.project-info{position:absolute;bottom:16px;left:16px;right:14px;z-index:2}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-meta h3{font:700 20px/1.15 var(--body);letter-spacing:-.5px}.project-meta>span{opacity:0;font-size:18px;transition:opacity .2s}.project-open:hover .project-meta>span{opacity:1}.project-category{font-size:12px;line-height:1.25;color:#101827;background:#f5f7fd;display:inline-block;padding:0 9px;border-radius:14px;margin-top:4px;max-width:100%}.project-info .tags{display:none}.project-visual.wedding{background:linear-gradient(135deg,#8fc7cd,#e4ded2,#9fb5b4)}.project-visual.library{background:linear-gradient(120deg,#452d8c,#a0c5f2,#473076)}.project-visual.upmesh{background:linear-gradient(130deg,#9e51e1,#3799e8,#673eb8)}.project-visual.upmesh img{width:59%;height:80%}.project-visual.nutizen{background:linear-gradient(130deg,#c3e7bb,#f1f0be,#60b77b)}.project-visual.nutizen img{mix-blend-mode:multiply;width:59%}.project-visual.skinfood{background:linear-gradient(135deg,#f8e7a0,#b7751f)}.project-visual.skinfood img{width:55%;mix-blend-mode:multiply}.project-visual.college{background:linear-gradient(135deg,#8ec5eb,#e6edfe,#2652a0)}.project-visual.college img{width:30%;height:65%}.project-visual.longthanhphat{background:linear-gradient(130deg,#c2adeb,#a6d3ee,#6b56ad)}.project-visual.longthanhphat img{width:89%;height:80%;box-shadow:0 15px 20px #15173544}.library-art{text-align:center;color:#f3ebff;transform:translateY(-18px)}.library-art>span{font:700 65px/1 var(--display)}.library-art>small{display:block;font:12px monospace;margin-top:12px}.library-blocks{display:flex;justify-content:center;gap:6px;margin-top:20px}.library-blocks i{width:35px;height:25px;border:1px solid #dac9ff;background:#584183;border-radius:4px;box-shadow:0 4px #231740;transform:rotate(-7deg)}.invitation-art{position:relative;width:74%;height:79%;display:grid;place-items:center;transform:translateY(-7px)}.invitation-envelope{position:absolute;width:72%;height:73%;background:#94ae9a;border:1px solid #718f79;transform:rotate(-15deg) translateX(-20%);box-shadow:0 15px 22px #233e4044}.invitation-card{background:#faf7eb;color:#3e5c45;position:relative;width:65%;height:100%;padding:15px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;transform:rotate(7deg) translateX(12%);box-shadow:0 20px 25px #36403344}.invitation-card>small{font-size:4px;letter-spacing:1px}.invitation-flower{font-size:25px;line-height:1;margin-top:9px}.invitation-card strong{font:400 25px/1.1 Georgia,serif;margin:8px 0}.invitation-card>span:last-of-type{font-size:4px;letter-spacing:.5px}.invitation-card>i{font-size:14px;font-style:normal;margin-top:8px}.contact-section{padding-top:85px;padding-bottom:150px}.contact-section .section-heading{margin-bottom:70px}.contact-section h2{line-height:.9}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px}.contact-card{background:var(--bg);border:1px solid var(--border);border-radius:13px;padding:24px;position:relative;z-index:3}.contact-card h3{font-size:36px;letter-spacing:-1.8px}.contact-card>p{font-size:14px;color:var(--muted);margin:10px 0 27px;line-height:1.5}.contact-card>p a{font-weight:700;overflow-wrap:anywhere}.contact-keyboard-space{min-width:0;height:620px}.contact-form{margin:0}.contact-fields{padding:0;margin:0;border:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 10px}.form-field{min-width:0}.form-field.full{grid-column:1/-1}.form-field label{display:block;font-size:14px;line-height:1.3;margin-bottom:6px}.form-field input,.form-field textarea{display:block;width:100%;border:1px solid #ffffff12;border-radius:6px;background:var(--input);color:var(--text);font-size:14px;line-height:1.45;padding:10px 11px}.form-field input{height:42px}.form-field input::placeholder,.form-field textarea::placeholder{color:#9b9ba0}.form-field textarea{resize:vertical;min-height:115px}.contact-submit{width:100%;margin-top:17px;padding:12px;border:1px solid var(--border);border-radius:6px;background:#191a1e;color:#f4f5f8;font-size:14px}.contact-message{color:var(--muted);font-size:13px;margin-top:10px;min-height:15px}.contact-links{display:flex;flex-wrap:wrap;gap:20px;color:var(--muted);font-size:12px;margin-top:17px}.text-button{border:0;background:0 0;color:inherit;padding:0;font-size:inherit}#turnstileWrapper{margin-top:12px;min-width:0}#turnstileWrapper:empty{display:none}#turnstileWrapper iframe{max-width:100%}.portfolio-footer{position:relative;z-index:2;padding-bottom:25px}.footer-main{border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0}.footer-main p,.footer-main>a:last-child{color:var(--muted);font-size:12px}.business-details{border-top:1px solid var(--border);color:var(--muted);font-size:12px}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:25px}.business-grid h3{font:600 17px var(--body);margin-bottom:13px}.business-grid a{display:block;overflow-wrap:anywhere;margin-bottom:8px}.business-grid iframe{width:100%;height:200px;border:1px solid var(--border);border-radius:7px}.business-socials{display:flex;flex-wrap:wrap;gap:15px;margin-top:18px}.quick-contact{position:fixed;bottom:20px;right:20px;z-index:35}.zalo-contact{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 18px;border:1px solid #0068ff;border-radius:999px;background:#0068ff;color:#fff;box-shadow:0 6px 20px #0068ff30;font-size:14px;font-weight:600}.zalo-contact img{width:28px;height:28px;flex-shrink:0;border-radius:7px}.zalo-contact:hover{background:#0055d4;border-color:#0055d4}dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);padding:28px;border-radius:12px;max-height:90svh;overscroll-behavior:contain}dialog::backdrop{background:#02050bd6;backdrop-filter:blur(12px)}dialog[open]{animation:dialog-in .25s ease}.dialog-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);gap:20px}.dialog-close{background:0 0;color:var(--text);font-size:13px;padding:7px 12px;border:1px solid var(--border);border-radius:5px}.navigation-dialog{width:min(830px,calc(100% - 30px))}.navigation-dialog nav{display:grid;margin-top:20px}.navigation-dialog nav a{display:flex;align-items:center;gap:20px;font:700 45px/1.3 var(--display);border-bottom:1px solid var(--border);padding:15px 0;letter-spacing:-2px}.navigation-dialog nav a small{color:var(--muted);font:12px var(--body)}.navigation-dialog nav a>span{margin-left:auto;font:36px var(--body)}.nav-footer{font-size:11px;color:var(--muted);margin-top:25px}.project-dialog{width:min(820px,calc(100% - 30px))}.project-dialog .project-visual{position:relative;height:300px;border-radius:8px;margin-top:22px}.project-dialog h2{font-size:34px;letter-spacing:-1.5px;margin-top:25px}.project-description{color:var(--muted);font-size:15px;line-height:1.8;margin-top:17px}.project-role{font-size:13px;margin-top:15px}.project-source{color:var(--muted);font-size:12px;margin-top:12px}.project-dialog .button{margin-top:24px}.contact-result{width:min(500px,calc(100% - 30px));text-align:center}.contact-result h2{font-size:25px;margin:20px 0}.contact-result p{margin-top:10px;font-size:14px}.toast{position:fixed;bottom:25px;left:50%;max-width:calc(100% - 90px);transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--surface);border:1px solid var(--border);color:var(--text);z-index:100;padding:12px 20px;border-radius:8px;font-size:13px;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.noscript-note{padding:25px;position:relative;z-index:2;background:var(--surface)}.hero-enter{animation:hero-in .85s both}.hero-enter:nth-child(2){animation-delay:.1s}.hero-enter:nth-child(3){animation-delay:.2s}.hero-enter:nth-child(4){animation-delay:.3s}.hero-enter:nth-child(5){animation-delay:.35s}.motion-enabled .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s,transform .6s}.motion-enabled .reveal.visible{opacity:1;transform:translateY(0)}@keyframes hero-in{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes scroll-mouse{50%{transform:translateY(8px);opacity:.5}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1150px){h1{font-size:8.6vw;letter-spacing:-4px}.keyboard{width:450px;transform:translate(-50%,-50%) scale(.88) rotateX(33deg) rotateZ(-16deg)}.keycap{height:55px;padding:9px}.keycap img{width:30px;height:30px}.section-heading h2{font-size:62px}.contact-layout{gap:20px}.contact-card{padding:22px}.contact-card h3{font-size:30px}.project-meta h3{font-size:18px}.stack-stage-label{left:0}.stack-stage-label strong{font-size:32px}.stack-stage-label span{font-size:20px}}@media (max-width:759px){.section-shell{width:calc(100% - 64px)}.portfolio-header{padding-inline:26px 20px;height:75px}.wordmark{font-size:12px}.header-actions{gap:9px}.header-square{width:38px;height:38px}.header-square svg{width:22px;height:22px}.header-square[href="#experience"]{display:none}.header-github{width:38px;height:38px;padding:0;justify-content:center}.header-github span{display:none}#themeToggle{width:22px;margin-right:0}.menu-toggle{padding:6px 0}.menu-toggle{font-size:0;gap:0}.menu-lines{width:20px}.hero{height:max(844px,100svh);min-height:0;display:block;padding-top:130px}.hero-copy{transform:none}.eyebrow{font-size:16px;margin-bottom:6px}h1{font-size:clamp(42px, 17.5vw, 88px);letter-spacing:-3px;line-height:1}.hero-role{font-size:16px;margin-top:9px}.hero-links{margin-top:32px;width:286px}.hero-socials{width:286px}.hero-links .button{height:40px}.keyboard-scene{height:285px;margin-top:35px}.keyboard{width:430px;transform:translate(-50%,-50%) scale(.65) rotateX(35deg) rotateZ(-28deg)}.skill-readout{top:auto;bottom:-5px;font-size:11px;left:0}.scroll-cue{bottom:24px}.section-heading h2{font-size:clamp(32px, 8.5vw, 56px);letter-spacing:-1.6px}.section-heading p{font-size:14px}.stack-section{min-height:1150px;padding-top:95px;padding-bottom:70px}.stack-stage{height:640px}.stack-stage-label{top:140px;left:10px;transform:rotate(-33deg)}.stack-stage-label strong{font-size:24px;text-shadow:0 2px #777a84,0 4px #424650}.stack-stage-label span{font-size:14px;margin-top:9px}.stack-selection{font-size:12px;min-height:45px}.stack-grid{gap:6px}.stack-item{font-size:10px;padding:5px 8px;gap:4px}.stack-item img{width:15px;height:15px}.experience-section{padding-top:70px;padding-bottom:55px}.experience-row{padding:22px 18px;margin-top:20px}.experience-period{position:static;margin-bottom:14px;font-size:11px}.experience-title{padding:0}.experience-title h3{font-size:16px;letter-spacing:-.5px}.company{font-size:14px}.experience-content ul{font-size:14px;line-height:1.65}.tags{gap:5px}.tags span{font-size:10px;padding:3px 8px}.work-note{font-size:10px}.projects-section{padding-top:75px;padding-bottom:65px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:200px}.project-info{left:10px;right:8px;bottom:11px}.project-meta h3{font-size:15px}.project-category{font-size:10px;padding-inline:6px}.project-open{aspect-ratio:1.2}.project-count{display:none}.project-filters{gap:6px}.project-filters button{font-size:11px;padding:4px 9px}.library-art>span{font-size:45px}.library-art>small{font-size:9px}.library-blocks{gap:4px;margin-top:13px}.library-blocks i{width:24px;height:17px}.invitation-card{padding:6px}.invitation-card>small{font-size:3px;letter-spacing:0}.invitation-card strong{font-size:18px}.invitation-flower{font-size:20px}.invitation-card>span:last-of-type{font-size:3px}.contact-section{padding-top:75px;padding-bottom:50px}.contact-section .section-heading{margin-bottom:40px}.contact-layout{grid-template-columns:minmax(0,1fr);gap:0}.contact-card{padding:20px}.contact-card h3{font-size:25px;letter-spacing:-1px}.contact-card>p{font-size:13px}.form-field label{font-size:12px}.form-field input,.form-field textarea{font-size:12px;padding-inline:8px}.contact-keyboard-space{height:340px}.footer-main{gap:15px;flex-wrap:wrap}.footer-main .wordmark{width:100%;font-size:15px}.footer-main p{flex:1;font-size:11px}.footer-main>a:last-child{font-size:11px}.business-details{font-size:10px}.business-grid{grid-template-columns:minmax(0,1fr);gap:20px}.navigation-dialog nav a{font-size:28px;gap:15px;letter-spacing:-1px}.navigation-dialog nav a>span{font-size:26px}.nav-footer{font-size:9px}.project-dialog h2{font-size:27px}.project-dialog .project-visual{height:220px}.project-description{font-size:14px}.project-role,.project-source{font-size:12px}.quick-contact{right:12px;bottom:12px}.toast{font-size:11px}}@media (max-width:480px){.section-shell{width:calc(100% - 64px)}.portfolio-header{padding-inline:22px 17px}.header-square{display:none}.header-actions{gap:12px}h1{font-size:clamp(40px, 17.5vw, 82px)}.keyboard{width:400px;transform:translate(-50%,-50%) scale(.6) rotateX(35deg) rotateZ(-28deg)}.project-grid{grid-template-columns:minmax(0,1fr);margin-top:210px;gap:17px}.project-open{aspect-ratio:1.45}.project-meta h3{font-size:20px}.project-category{font-size:12px}.project-info{bottom:13px;left:13px}.library-art>span{font-size:62px}.library-art>small{font-size:11px}.invitation-card strong{font-size:25px}.invitation-card>small{font-size:4px}.contact-card{padding:17px}.contact-fields{grid-template-columns:minmax(0,1fr)}.contact-card h3{font-size:23px}.contact-links{font-size:11px;gap:17px}dialog{padding:20px}.navigation-dialog nav a{font-size:23px}.dialog-close,.dialog-top{font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation:none!important;transition:none!important}.motion-enabled .reveal{opacity:1;transform:none}.hero-enter{opacity:1}}@media print{#keyboardWebGL,#starfield,.business-details,.contact-keyboard-space,.keyboard-scene,.portfolio-header,.project-toolbar,.quick-contact,.stack-stage{display:none!important}body{background:#fff;color:#111}body::before{display:none}.hero{height:auto;min-height:0;display:block;padding-block:30px}.hero-copy{transform:none}h1{font-size:55px}.motion-enabled .reveal{opacity:1;transform:none}.stack-section{min-height:0;padding:20px 0}.project-grid{margin-top:30px}.experience-row,.project-card{break-inside:avoid}.section-heading h2{font-size:35px}.contact-layout{display:block}}.contact-message[data-state=error]{color:#ffc0b8;background:#52241f55;border:1px solid #a35045;border-radius:6px;padding:10px 12px}.contact-message[data-state=success]{color:#b2f2d3;background:#174c3755;border:1px solid #357c5e;border-radius:6px;padding:10px 12px}.contact-result[data-status=error] h2{color:#ffc0b8}:root[data-theme=light] .contact-message[data-state=error]{color:#862d24;background:#fff0ed}:root[data-theme=light] .contact-message[data-state=success]{color:#175a3c;background:#e9faf1}:root[data-theme=light] .contact-result[data-status=error] h2{color:#862d24}