:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b0d12;--surface: #12151c;--text: #f0ebe3;--text-2: #a3a9b5;--muted: #8b919d;--faint: #787e8a;--accent: #88a7e3;--accent-display: #88a7e3;--accent-soft: #88a7e3;--on-accent-soft: #0b0d12;--error: #e38888;--line: #232733;--line-soft: #161a22;--line-strong: #3a4050;--nav-bg: rgba(11, 13, 18, .92);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}:root[data-theme=light]{color-scheme:light;--bg: #faf6ea;--surface: #f1ecdc;--text: #1c2b21;--text-2: #4f5a4d;--muted: #5a6657;--faint: #646f5f;--accent: #4a7c45;--accent-display: #5e9a55;--accent-soft: #a8d5a2;--on-accent-soft: #1c2b21;--error: #a83232;--line: #d6cfba;--line-soft: #e6e0cf;--line-strong: #a8a18b;--nav-bg: rgba(250, 246, 234, .92)}::selection{background:var(--accent-soft);color:var(--on-accent-soft)}html{background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::view-transition-old(root),::view-transition-new(root){animation-duration:.8s;animation-timing-function:var(--ease-in-out)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}*{box-sizing:border-box;margin:0;padding:0}button{font:inherit;border-radius:0}body{background:var(--bg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:2px}html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}.nav-link{position:relative;font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);transition:color .4s var(--ease-in-out);cursor:pointer}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease-out)}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1);transform-origin:left}.nav-link:hover{color:var(--text)}.accent{color:var(--accent)}.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}.project-row{border-top:1px solid var(--line);padding:2rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;transition:padding .5s var(--ease-out)}.project-row h3{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .6s var(--ease-out)}.project-row:hover h3{background-size:100% 1px}.project-row:hover{padding-left:1rem}.project-row:hover .proj-arrow{opacity:1;transform:translate(4px)}.proj-arrow{opacity:0;transition:opacity .3s var(--ease-out),transform .5s var(--ease-out);font-size:1.2rem;color:var(--accent)}.btn{display:inline-block;font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:.85rem 2rem;cursor:pointer;transition:background-color .5s var(--ease-in-out),border-color .5s var(--ease-in-out),color .5s var(--ease-in-out);background:transparent}.btn:hover{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--on-accent-soft)}.input-field{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-strong);color:var(--text);padding:.75rem 0;font-family:DM Sans,system-ui,sans-serif;font-size:1rem;outline:none;transition:border-color .5s var(--ease-in-out)}.input-field::placeholder{color:var(--faint)}.input-field:focus{border-bottom-color:var(--accent)}.hero-name{font-size:clamp(3.5rem,min(10vw,17vh),12rem);line-height:.95;letter-spacing:-.02em}.section-label{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem}.section-heading{display:flex;align-items:center;gap:.9rem;font-family:DM Mono,monospace;font-size:.8rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text);margin-bottom:2.5rem}.section-number{color:var(--accent)}.section-rule{width:1.25rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease-out) .3s}.is-visible .section-rule{transform:scaleX(1)}.exp-company{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .8s var(--ease-out)}.exp-row:hover .exp-company{background-size:100% 1px}.animated-height{overflow:hidden;margin:0 -8px;padding:0 8px;transition:height .6s var(--ease-in-out)}.project-panel{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .55s var(--ease-in-out),opacity .35s var(--ease-in-out),visibility 0s linear .55s}.project-panel.open{grid-template-rows:1fr;opacity:1;visibility:visible;transition:grid-template-rows .55s var(--ease-in-out),opacity .5s var(--ease-in-out) .12s,visibility 0s}.project-panel-inner{overflow:hidden;min-height:0}.section-title{font-size:clamp(2rem,3.6vw,3.5rem);font-weight:400;line-height:1.1;letter-spacing:-.02em;margin-bottom:3rem}.btn-ghost{border-color:var(--line-strong);color:var(--text-2)}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.feature-card{display:flex;flex-direction:column;gap:.9rem;padding:2rem;border:1px solid var(--line);background:var(--surface);transition:border-color .6s var(--ease-in-out),transform .8s var(--ease-out)}.feature-card:hover{border-color:var(--accent);transform:translateY(-4px)}.mono-meta{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.tech-list{display:flex;gap:.5rem;flex-wrap:wrap}.tech-chip{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.08em;border:1px solid var(--line);color:var(--muted);padding:.2rem .6rem}.body-copy{font-family:DM Sans,system-ui,sans-serif;color:var(--text-2);line-height:1.65}.exp-row{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:2rem;padding:2rem 0;border-top:1px solid var(--line)}.work-tab{font-family:DM Mono,monospace;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;padding:.6rem 1.4rem;cursor:pointer;border:1px solid transparent;transition:color .4s var(--ease-in-out),border-color .5s var(--ease-in-out);color:var(--muted);background:transparent}.work-tab:hover{color:var(--text)}.skill-tag{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);padding:.4rem .9rem;font-size:.7rem;letter-spacing:.1em;color:var(--muted);transition:transform .4s var(--ease-out),border-color .3s,color .3s}.skill-tag svg{font-size:.9rem;color:var(--icon);transition:transform .4s var(--ease-out)}:root[data-theme=light] .skill-tag svg{color:var(--icon-light)}.skill-tag:hover{transform:scale(1.08);border-color:var(--line-strong);color:var(--text)}.skill-tag:hover svg{transform:scale(1.2)}.work-tab.active{border-color:var(--accent);color:var(--accent)}@keyframes fadeDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes tabFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.mobile-menu{opacity:0;transform:translateY(-10px);visibility:hidden;pointer-events:none;transition:opacity .35s var(--ease-in-out),transform .5s var(--ease-out),visibility 0s linear .5s}.mobile-menu.open{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity .4s var(--ease-in-out),transform .5s var(--ease-out),visibility 0s}@keyframes charRise{0%{transform:translateY(105%);opacity:0}to{transform:translateY(0);opacity:1}}.hero-line{display:block;overflow:hidden;padding:0 .12em .14em 0;margin-bottom:-.14em}.hero-char{display:inline-block;transform:translateY(105%);opacity:0;animation:charRise 1.3s var(--ease-out) forwards}.hero-accent{font-style:italic;color:var(--accent-display)}.nav-actions{display:flex;align-items:center;gap:.75rem}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--nav-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);color:var(--text);font-size:1.05rem;cursor:pointer;transition:color .3s,transform .6s var(--ease-out)}.theme-toggle:hover{color:var(--accent);transform:rotate(25deg)}a:focus-visible,.project-row:focus-visible,.theme-toggle:focus-visible,.hamburger:focus-visible,.work-tab:focus-visible{outline:1px solid var(--accent);outline-offset:4px}.layout{display:grid;grid-template-columns:60fr 40fr}.right-col{position:sticky;top:0;height:100vh;overflow:hidden;align-self:start}.right-col img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transform:scale(1.06);transition:opacity 1.1s var(--ease-in-out),transform 2.2s var(--ease-out)}.right-col img.active{opacity:1;transform:scale(1)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.desktop-nav{display:flex;gap:2.5rem;align-items:center}.desktop-nav:focus-within{opacity:1!important}.hamburger{display:none;background:none;border:none;color:var(--text);cursor:pointer;font-size:1.4rem}.mobile-section-img{display:none}@media(max-width:768px),(orientation:portrait)and (max-width:1100px){.layout{grid-template-columns:1fr}.right-col{display:none}.desktop-nav{display:none!important}.hamburger{display:block}.about-grid{grid-template-columns:1fr;gap:2rem}.section-title{font-size:clamp(2rem,5vw,3.5rem)}.feature-grid{grid-template-columns:1fr}.exp-row{grid-template-columns:1fr;gap:.5rem}.hero-name{font-size:clamp(3rem,14vw,6rem)}.project-row{flex-direction:column;align-items:flex-start;gap:.5rem}.project-row:hover{padding-left:0}.hero-mobile{justify-content:flex-start!important;padding-top:4.5rem!important;min-height:auto!important}.mobile-section-img{display:block;width:calc(100% + 5rem);margin-left:-2.5rem;height:58vh;height:58svh;object-fit:cover;object-position:50% 33%;margin-bottom:2rem}.scroll-indicator{display:none!important}}
