@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ffffff;--bg-elevated: #f4f6f8;--border: #e2e8f0;--text: #0f172a;--text-dim: #5b6b80;--accent: #0f766e;--accent-dim: #0f766e22;--accent-ink: #ffffff;--accent-glow: #0f766e40;--accent-wash: #0f766e0f;--accent-wash-soft: #0f766e09;--shadow: #0f172a33;--mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root[data-theme=dark]{--bg: #0a0e14;--bg-elevated: #10151d;--border: #1e2833;--text: #d6dee8;--text-dim: #7b8899;--accent: #5eead4;--accent-dim: #2dd4bf33;--accent-ink: #06110f;--accent-glow: #2dd4bf55;--accent-wash: #5eead41c;--accent-wash-soft: #5eead411;--shadow: #00000066}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-color:var(--border) transparent}html,body{max-width:100vw;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;transition:background-color .25s ease,color .25s ease;background-image:radial-gradient(ellipse 900px 500px at 12% -5%,var(--accent-wash) 0%,transparent 55%),radial-gradient(ellipse 700px 500px at 88% 15%,var(--accent-wash-soft) 0%,transparent 55%),linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:auto,auto,48px 48px,48px 48px;background-position:0 0,0 0,-1px -1px,-1px -1px;background-attachment:fixed;min-height:100vh;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 50% 0%,transparent 0%,var(--bg) 85%);z-index:0}::selection{background:var(--accent-dim);color:var(--text)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.app-shell{max-width:860px;margin:0 auto;padding:1.5rem 1.5rem 5rem;position:relative;z-index:1}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}.js .reveal.is-visible,.js .reveal.is-visible .reveal{opacity:1;transform:translateY(0)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-caret{0%,to{opacity:1}50%{opacity:0}}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;margin:0 -1.5rem 3rem;padding:1rem 1.5rem;gap:1rem;flex-wrap:wrap;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);border-bottom:1px solid transparent;transition:border-color .2s ease}@supports not (backdrop-filter: blur(1px)){.nav{background:var(--bg)}}.nav-scrolled{border-bottom-color:var(--border)}.nav-brand{font-family:var(--mono);font-size:1rem;color:var(--text);text-decoration:none;transition:color .15s ease}@media (hover: hover){.nav-brand:hover{color:var(--accent);text-decoration:none}}.nav-brand .prompt{color:var(--accent)}.nav-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.nav-links{display:flex;gap:1.1rem;font-family:var(--mono);font-size:.85rem}.nav-links a{position:relative;color:var(--text-dim);padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.nav-links a:hover{color:var(--text);text-decoration:none}.nav-links a.active{color:var(--accent);border-bottom-color:var(--accent)}.nav-menu-toggle{display:none;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:0;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.nav-menu-toggle svg{width:1.15rem;height:1.15rem}.nav-menu-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}@media (max-width: 760px){.nav{padding:.85rem 1.25rem}.nav-brand{font-size:.9rem}.nav-right{gap:.5rem}.nav-menu-toggle{display:inline-flex}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:.25rem 1.25rem .75rem;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 16px 32px -20px #0005}.nav-menu-open .nav-links{display:flex}.nav-links a{padding:.85rem 0;border-bottom:1px solid var(--border)}.nav-links a:last-child{border-bottom:none}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:0;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;height:2.1rem;padding:0 .6rem;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.lang-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}@media (max-width: 760px),(pointer: coarse){.nav-menu-toggle,.theme-toggle{width:2.75rem;height:2.75rem}.lang-toggle{min-width:2.75rem;height:2.75rem;padding:0 .55rem}.btn-icon{min-width:2.75rem;min-height:2.75rem}.btn,.terminal-input{min-height:2.75rem}.project-link{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .25rem;margin:-.75rem -.25rem}.nav-brand{display:inline-flex;align-items:center;min-height:2.75rem}.hero-meta a{min-height:2.75rem}}.skip-link{position:absolute;top:.75rem;left:.75rem;z-index:100;padding:.6rem 1rem;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-family:var(--mono);font-size:.85rem;font-weight:600;transform:translateY(-200%)}.skip-link:focus-visible{transform:none;text-decoration:none}main:focus{outline:none}.hero-eyebrow{font-family:var(--mono);color:var(--accent);font-size:.85rem;margin:0 0 .75rem;animation:fade-in-up .5s cubic-bezier(.16,1,.3,1) both}.hero-eyebrow:before{content:"$ ";color:var(--text-dim)}.hero-eyebrow:after{content:"";display:inline-block;width:.5em;height:1em;margin-left:.4em;background:var(--accent);vertical-align:-.15em;animation:blink-caret 1s step-end infinite}.hero-name{font-size:2.6rem;font-weight:800;margin:0 0 .4rem;letter-spacing:-.03em;background:linear-gradient(135deg,var(--text) 40%,var(--accent) 130%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) .08s both}.hero-title{font-family:var(--mono);color:var(--text-dim);font-size:1.05rem;margin:0 0 1.5rem;animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) .16s both}.hero-about{color:var(--text);max-width:620px;margin-bottom:1.75rem;animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) .24s both}.hero-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;font-family:var(--mono);font-size:.85rem;color:var(--text-dim);margin-bottom:2rem;animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) .32s both}.hero-meta span,.hero-meta a{display:inline-flex;align-items:center;gap:.45rem}.hero-meta a{color:var(--text-dim);text-underline-offset:3px}.hero-meta a:hover{color:var(--accent)}.hero-meta svg{flex-shrink:0;width:.95rem;height:.95rem;color:var(--accent)}.hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) .4s both}.btn{font-family:var(--mono);font-size:.85rem;padding:.6rem 1.1rem;border-radius:6px;border:1px solid var(--border);color:var(--text);display:inline-flex;align-items:center;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.btn:hover{border-color:var(--accent);background:var(--accent-dim);text-decoration:none;transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600;box-shadow:0 0 0 0 var(--accent-dim)}.btn-primary:hover{background:var(--accent);opacity:.92;box-shadow:0 6px 24px -6px var(--accent-glow)}.btn-icon{padding:.6rem;justify-content:center}.btn-icon svg{width:1.1rem;height:1.1rem}.terminal-window{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:text;transition:border-color .15s ease,box-shadow .15s ease}.terminal-window:has(.terminal-input:focus-visible){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.terminal-titlebar{display:flex;align-items:center;gap:.4rem;padding:.6rem .9rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 40%,var(--bg-elevated))}.terminal-dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block}.terminal-dot-red{background:#ff5f56}.terminal-dot-yellow{background:#ffbd2e}.terminal-dot-green{background:#27c93f}.terminal-titlebar-label{margin-left:.5rem;font-family:var(--mono);font-size:.75rem;color:var(--text-dim)}.terminal-body{padding:1rem 1.25rem;max-height:320px;overflow-y:auto;font-family:var(--mono);font-size:.85rem}.terminal-line{margin:0 0 .5rem;white-space:pre-wrap;word-break:break-word;color:var(--text-dim);font-family:inherit}.terminal-line-input{color:var(--accent)}.terminal-input-row{display:flex;align-items:center;gap:.5rem}.terminal-prompt{color:var(--accent);flex-shrink:0;font-family:var(--mono);font-size:.85rem}.terminal-input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:.85rem}.terminal-input::placeholder{color:var(--text-dim);opacity:1}.neofetch-card{display:flex;gap:1.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:1.5rem;font-family:var(--mono)}.neofetch-avatar{flex-shrink:0;width:5rem;height:5rem;border-radius:10px;background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.neofetch-body{flex:1;min-width:0}.neofetch-header{margin:0 0 .5rem;font-size:.95rem;font-weight:700;color:var(--text)}.neofetch-user{color:var(--accent)}.neofetch-rule{height:1px;background:var(--border);margin-bottom:.75rem}.neofetch-fields{margin:0;display:flex;flex-direction:column;gap:.35rem}.neofetch-row{display:flex;gap:.5rem;font-size:.82rem}.neofetch-row dt{color:var(--accent);font-weight:600;min-width:4.5rem;flex-shrink:0}.neofetch-row dd{margin:0;color:var(--text-dim)}.section{margin-top:3rem}.section-heading{font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0 0 1.25rem;display:flex;align-items:center;gap:.6rem}.section-heading:after{content:"";flex:1;height:1px;background:var(--border)}.skills-grid{display:flex;flex-wrap:wrap;gap:.6rem}.skill-pill{font-family:var(--mono);font-size:.8rem;padding:.4rem .75rem;border-radius:5px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);transition:border-color .15s ease,background .15s ease,transform .15s ease,color .15s ease}.skill-pill:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);transform:translateY(-2px)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:1.5rem;margin-bottom:1.25rem;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 12px 32px -16px var(--shadow);transform:translateY(-2px)}.card-current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim),0 12px 32px -18px var(--accent-glow)}.company-title,.school-title{display:flex;align-items:center;gap:.6rem;font-size:1.3rem;font-weight:700;letter-spacing:-.01em;color:var(--text);margin:0}.company-logo{flex-shrink:0;width:1.6rem;height:1.6rem;border-radius:6px;object-fit:cover;border:1px solid var(--border);background:var(--bg-elevated)}.card-group-note{font-family:var(--mono);font-size:.78rem;color:var(--text-dim);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px dashed var(--border)}.role-block+.role-block{margin-top:1.5rem;padding-top:1.5rem;border-top:1px dashed var(--border)}.role-block-current{border-left:2px solid var(--accent);padding-left:.9rem}.role-block-current .role-title{color:var(--accent)}.role-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.2rem}.role-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0}.role-period{font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;gap:.45rem}.role-duration{font-weight:400;color:var(--text-dim)}.role-period:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);flex-shrink:0}.role-company{font-family:var(--mono);font-size:.85rem;color:var(--text-dim);margin:0 0 .15rem}.role-location{font-size:.82rem;color:var(--text-dim);margin:0 0 .75rem}.role-description{margin:0 0 .75rem;color:var(--text)}.role-bullets{margin:0 0 .75rem;padding-left:1.1rem;color:var(--text)}.role-bullets li{margin-bottom:.35rem}.role-skills{font-family:var(--mono);font-size:.75rem;color:var(--text-dim)}.role-skills .label{color:var(--accent)}.timeline{position:relative}.timeline:before{content:"";position:absolute;top:.25rem;bottom:.25rem;left:1.625rem;width:1px;background:linear-gradient(var(--border),var(--border) 85%,transparent)}.timeline-item{position:relative;display:flex;gap:1.25rem;padding-bottom:1.75rem}.timeline-item:last-child{padding-bottom:0}.timeline-badge{position:relative;z-index:1;flex-shrink:0;width:3.25rem;height:3.25rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:.72rem;letter-spacing:.02em;color:var(--text-dim)}.timeline-badge-current{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 4px var(--bg),0 0 0 5px var(--accent-dim)}.timeline-content{flex:1;min-width:0;padding-top:.3rem}.timeline-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.timeline-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--text);margin:0}.timeline-title .company-logo{width:1.35rem;height:1.35rem}.timeline-subtitle{font-family:var(--mono);font-size:.82rem;color:var(--text-dim);margin:.2rem 0 .5rem}.timeline-degree{font-size:1rem;font-weight:600;color:var(--text);margin:0}.timeline-role{color:var(--accent);font-weight:600}.timeline-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--text-dim);margin:0 .55em;vertical-align:middle}.timeline-period{font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--accent);white-space:nowrap}.timeline-duration{font-weight:400;color:var(--text-dim)}.timeline-note{font-size:.9rem;color:var(--text-dim);margin:0}.timeline-program+.timeline-program{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border)}.timeline-more-link{display:inline-flex;align-items:center;width:fit-content;height:3.25rem;padding:0 1.1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-family:var(--mono);font-size:.85rem;font-weight:600;transition:border-color .15s ease,background .15s ease,transform .15s ease}.timeline-more-link:hover{border-color:var(--accent);background:var(--accent-dim);text-decoration:none;transform:translateY(-2px)}.project-kicker{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .35rem}.project-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;flex-wrap:wrap;margin-bottom:.75rem}.project-link{font-family:var(--mono);font-size:.8rem;font-weight:600;white-space:nowrap}.project-tech{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:1rem 0 0;padding:0}.tech-tag{font-family:var(--mono);font-size:.72rem;padding:.2rem .55rem;border-radius:4px;border:1px solid var(--border);color:var(--text-dim)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.project-tile{display:flex;flex-direction:column;margin-bottom:0;padding:1.25rem}.project-tile .project-tile-name{font-size:1.05rem;font-weight:700;color:var(--text);margin:0 0 .4rem}.project-tile .timeline-note{flex:1}@media (max-width: 640px){.project-grid{grid-template-columns:1fr}}.trip-banner{margin-top:2rem;padding:1.5rem;border:1px solid var(--border);border-radius:12px;background:linear-gradient(135deg,var(--accent-dim) 0%,transparent 60%),var(--bg-elevated)}.trip-kicker{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .4rem}.trip-title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:var(--text);margin:0 0 .5rem}.trip-copy{color:var(--text-dim);max-width:560px;margin:0 0 1rem}.trip-stats{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}.trip-stat-dot{width:4px;height:4px;border-radius:50%;background:var(--border);flex-shrink:0}.photo-masonry{columns:3;column-gap:.9rem}@media (max-width: 720px){.photo-masonry{columns:2}}@media (max-width: 460px){.photo-masonry{columns:1}}.photo-tile{display:block;width:100%;break-inside:avoid;margin-bottom:.9rem;padding:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-elevated);cursor:zoom-in;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.photo-tile:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 32px -18px #0006}.photo-tile img{display:block;width:100%;height:auto}.photo-caption{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem .65rem;font-family:var(--mono);font-size:.68rem;color:var(--text-dim);border-top:1px solid var(--border)}.photo-caption-settings{color:var(--accent);white-space:nowrap}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#040609f7;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox-content{display:flex;flex-direction:column;align-items:center;gap:.9rem;max-width:900px;width:100%}.lightbox-image{max-width:100%;max-height:65vh;width:auto;border-radius:8px;border:1px solid rgba(255,255,255,.12)}.lightbox-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;font-family:var(--mono);font-size:.78rem}.lightbox-meta-item{display:flex;flex-direction:column;align-items:center;gap:.15rem}.lightbox-meta-label{font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:#5eead4}.lightbox-meta-value{color:#e8edf2}.lightbox-counter{font-family:var(--mono);font-size:.72rem;color:#8b98a7;margin:0}.lightbox-close{position:absolute;top:1.25rem;right:1.5rem;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s ease,border-color .15s ease}.lightbox-close svg,.lightbox-nav svg{width:1.2rem;height:1.2rem}.lightbox-close:hover{background:#ffffff24;border-color:#5eead4}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.8rem;height:2.8rem;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s ease,border-color .15s ease}.lightbox-nav:hover{background:#ffffff24;border-color:#5eead4}.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}@media (max-width: 640px){.lightbox-nav,.lightbox-close{width:2.75rem;height:2.75rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}.lightbox-close{top:.75rem;right:.75rem}}.spotify-embed{border-radius:12px;overflow:hidden;line-height:0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.contact-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:1.25rem;display:block;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}a.contact-card:hover{border-color:var(--accent);box-shadow:0 12px 32px -18px var(--accent-glow);transform:translateY(-3px);text-decoration:none}.contact-card .label{font-family:var(--mono);font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .4rem}.contact-card .value{font-size:1rem;color:var(--text);word-break:break-word}.footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--border);font-family:var(--mono);font-size:.78rem;color:var(--text-dim);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}@media (max-width: 600px){.hero-name{font-size:1.8rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.js .reveal,.js .reveal.is-visible{opacity:1;transform:none;transition:none}.hero-eyebrow,.hero-name,.hero-title,.hero-about,.hero-meta,.hero-actions,.hero-eyebrow:after{animation:none}*:not(.lightbox-nav):hover,*:not(.lightbox-nav):active{transform:none!important}}
