:root{--color-bg: #1a1a1a;--color-surface: #242321;--color-surface-raised: #2a2926;--color-text: #f5f2ed;--color-text-muted: #b6b1a8;--color-accent: #d97706;--color-accent-hover: #f59e0b;--color-border: #46433d;--font-display: Georgia, "Times New Roman", serif;--font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--shadow: 0 24px 70px rgb(0 0 0 / 24%);--radius: 1.25rem;--motion-duration-fast: .15s;--motion-duration-normal: .3s;--motion-duration-slow: .5s;--motion-easing-standard: cubic-bezier(.16, 1, .3, 1);--motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--motion-budget-total: 1.2s}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-bg)}body{margin:0;overflow-x:hidden;color:var(--color-text);background:var(--color-bg);font:400 clamp(1rem,1.5vw,1.125rem)/1.65 var(--font-body)}a{color:inherit}button{font:inherit}.container{width:min(100% - 3rem,75rem);margin-inline:auto}.section{padding:6rem 0}.skip-link{position:fixed;z-index:100;left:1rem;top:-4rem;padding:.75rem 1rem;border-radius:.5rem;color:#17130c;background:var(--color-accent);text-decoration:none}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid transparent;background:#1a1a1ac7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.site-header.is-scrolled{border-color:var(--color-border);background:#1a1a1af0}.nav{display:flex;min-height:4.75rem;align-items:center;justify-content:space-between;gap:1.25rem}.brand{font:800 1.45rem/1 var(--font-mono);text-decoration:none;letter-spacing:-.08em}.brand span,.eyebrow,.capability span{color:var(--color-accent)}.nav-links{display:flex;align-items:center;gap:clamp(.75rem,2vw,1.5rem);font-size:.9rem}.nav-links>a:not(.nav-contact){color:var(--color-text-muted);text-decoration:none}.nav-links>a:not(.nav-contact):hover{color:var(--color-text)}.nav-contact,.button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.45rem;padding:.7rem 1rem;border:1px solid var(--color-accent);border-radius:999px;color:#1c1409;background:var(--color-accent);font-weight:700;text-decoration:none;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.nav-contact{min-height:2.5rem;padding:.55rem .85rem;font-size:.85rem}.nav-contact:hover,.button-primary:hover{transform:translateY(-2px);background:var(--color-accent-hover)}.hero{display:grid;min-height:calc(100svh - 4.75rem);grid-template-columns:minmax(0,1.5fr) minmax(15rem,.5fr);align-items:center;gap:clamp(3rem,9vw,9rem);padding-block:6rem}.eyebrow{margin:0 0 1rem;font:700 .75rem/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}h1{max-width:16ch;margin-bottom:1.25rem;font:700 clamp(3rem,7vw,6.2rem)/.98 var(--font-display);letter-spacing:-.06em}h1 em{color:var(--color-accent);font-weight:inherit}h2{max-width:17ch;margin-bottom:1rem;font:700 clamp(2rem,4vw,3.65rem)/1.02 var(--font-display);letter-spacing:-.045em}h3{margin-bottom:.65rem;font-size:1.1rem;line-height:1.25}.hero-intro,.section-heading>p,.about-copy,.contact-card>p{max-width:39rem;color:var(--color-text-muted)}.hero-copy.is-visible .hero-sequence{opacity:0;transform:translateY(.65rem);animation:hero-sequence var(--motion-duration-slow) var(--motion-easing-standard) forwards}.hero-copy.is-visible .hero-sequence:nth-child(1){animation-delay:var(--motion-duration-fast)}.hero-copy.is-visible .hero-sequence:nth-child(2){animation-delay:var(--motion-duration-normal)}.hero-copy.is-visible .hero-intro{opacity:0;transform:translateY(.65rem);animation:hero-sequence var(--motion-duration-slow) var(--motion-easing-standard) .45s forwards}.hero-copy.is-visible .action-row .hero-sequence{animation-delay:.6s}@keyframes hero-sequence{to{opacity:1;transform:translateY(0)}}.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.text-link{color:var(--color-text);font-weight:700;text-decoration-color:var(--color-accent);text-underline-offset:.35em}.text-link:hover{color:var(--color-accent-hover)}.hero-aside{align-self:end;padding:1.5rem;border-left:1px solid var(--color-accent);background:linear-gradient(90deg,rgb(217 119 6 / 12%),transparent)}.aside-label{margin-bottom:1.25rem;color:var(--color-text-muted);font:.75rem var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.hero-aside ul{display:grid;gap:.75rem;margin:0;padding:0;list-style:none;font:600 1rem/1.35 var(--font-display)}.section-work,.section-about{border-block:1px solid var(--color-border);background:var(--color-surface)}.section-heading{margin-bottom:3rem}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.project-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow);transition:transform var(--motion-duration-normal) var(--motion-easing-standard),opacity var(--motion-duration-normal) var(--motion-easing-standard)}.project-card:before{position:absolute;z-index:-1;inset:.45rem -.25rem -.45rem .25rem;border:1px solid rgb(217 119 6 / 22%);border-radius:var(--radius);content:"";transform:translateY(.35rem)}.project-card--featured{border-color:#d977069e}.project-card--featured .project-visual{min-height:13.5rem}.project-card:hover{transform:translateY(-.35rem)}.project-visual{position:relative;display:grid;min-height:11.5rem;place-items:center;overflow:hidden;padding:1.25rem;border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,#312c20,#171717)}.project-visual--stockpro{background:linear-gradient(135deg,#513919,#1e1b18)}.project-visual--bizsuite{background:linear-gradient(135deg,#3d3024,#20231e)}.project-visual--pos{background:linear-gradient(135deg,#3b2920,#1c1d1a)}.project-visual--taskflow{background:linear-gradient(135deg,#47311d,#20211f)}.project-visual:before,.project-visual:after{position:absolute;content:"";border:1px solid rgb(245 242 237 / 28%);border-radius:.75rem}.project-visual:before{width:68%;height:62%;transform:translate(-7%,-6%) rotate(-5deg)}.project-visual:after{width:68%;height:62%;transform:translate(11%,13%) rotate(7deg);background:#1a1a1a5e}.project-visual span{z-index:1;color:#fff9f0;font:700 clamp(1.5rem,4vw,2.5rem)/1 var(--font-display)}.project-content{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:1.5rem}.project-meta{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem;margin-bottom:1.25rem}.status{display:inline-flex;padding:.3rem .55rem;border:1px solid currentColor;border-radius:999px;color:var(--color-accent);font:700 .67rem/1 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.project-category{color:var(--color-text-muted);font:.72rem/1 var(--font-mono);text-transform:uppercase}.project-content p{margin-bottom:1.25rem;color:var(--color-text-muted)}.tag-list,.tech-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:auto 0 1.5rem;padding:0;list-style:none}.tag-list li,.tech-list li{padding:.36rem .55rem;border:1px solid var(--color-border);border-radius:.35rem;color:var(--color-text-muted);font:.72rem/1 var(--font-mono)}.project-card .tag-list li{opacity:0;transform:translateY(.4rem);transition:opacity var(--motion-duration-fast) var(--motion-easing-standard) calc(var(--chip-index) * 70ms),transform var(--motion-duration-fast) var(--motion-easing-standard) calc(var(--chip-index) * 70ms)}.project-card.is-visible .tag-list li{opacity:1;transform:translateY(0)}.project-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.project-details,.project-live{border:0;padding:0;color:var(--color-text);background:transparent;font-weight:700;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.3em}.project-live{color:var(--color-accent-hover);text-decoration:none}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--color-border);border-right:0}.capability{min-height:14rem;padding:1.5rem;border-right:1px solid var(--color-border)}.capability span{display:block;margin-bottom:3rem;font:.75rem var(--font-mono)}.capability p{margin:0;color:var(--color-text-muted);font-size:.92rem}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.about-copy p{margin-bottom:1.25rem}.tech-list{margin:0;gap:.75rem}.tech-list li{padding:.65rem .85rem;color:var(--color-text);background:var(--color-surface)}.contact-section{padding-top:0}.contact-card{padding:clamp(2rem,7vw,5rem);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.contact-card h2{max-width:15ch}.site-footer{padding:2rem 0 5.5rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.85rem}.site-footer .container{display:flex;justify-content:space-between;align-items:center;gap:1rem}.site-footer p{margin:0}.site-footer>div>a:last-child{color:var(--color-text)}.mobile-contact{display:none}.scroll-top{position:fixed;z-index:10;right:1rem;bottom:1rem;width:2.75rem;height:2.75rem;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);background:var(--color-surface);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.scroll-top.is-visible{opacity:1;pointer-events:auto}.scroll-top:hover{transform:translateY(-2px)}.project-dialog{width:min(100% - 2rem,46rem);max-height:min(82svh,48rem);overflow:auto;padding:clamp(1.5rem,4vw,3rem);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow)}.project-dialog::backdrop{background:#000000b8}.dialog-close{position:absolute;top:1rem;right:1rem;display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text);background:var(--color-bg);font-size:1.5rem;cursor:pointer}.dialog-copy{max-width:42rem}.dialog-copy h2{font-size:clamp(2rem,5vw,3.4rem)}.dialog-copy h3{margin-top:2rem}.dialog-copy p,.dialog-copy li{color:var(--color-text-muted)}.dialog-copy ul{padding-left:1.2rem}.dialog-notice{padding:1rem;border-left:2px solid var(--color-accent);background:#d977061a}.dialog-opening{color:var(--color-text);font-size:1.1rem}.dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.button-secondary{color:var(--color-text);border-color:var(--color-border);background:transparent}.button-secondary:hover{transform:translateY(-2px);background:var(--color-surface-raised)}:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}.reveal{opacity:0;transform:translateY(1rem);transition:opacity var(--motion-duration-slow) var(--motion-easing-standard),transform var(--motion-duration-slow) var(--motion-easing-standard)}.reveal.is-visible{opacity:1;transform:translateY(0)}.project-grid>.project-card:nth-child(2){transition-delay:var(--motion-duration-fast)}.project-grid>.project-card:nth-child(3){transition-delay:var(--motion-duration-normal)}.project-grid>.project-card:nth-child(4){transition-delay:.45s}@media(max-width:1024px){.capability-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.container{width:min(100% - 2rem,75rem)}.section{padding:4rem 0}.nav-links>a:not(.nav-contact){display:none}.nav-contact{font-size:.72rem}.hero{grid-template-columns:1fr;min-height:auto;gap:3rem;padding-block:5rem}h1{font-size:clamp(3rem,14vw,4.5rem)}.hero-aside{align-self:auto}.project-grid,.about-grid{grid-template-columns:1fr;gap:1.25rem}.capability-grid{grid-template-columns:1fr}.capability{min-height:auto}.capability span{margin-bottom:1.25rem}.mobile-contact{position:fixed;z-index:15;right:.75rem;bottom:.75rem;left:.75rem;display:flex;min-height:3rem;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;color:#1c1409;background:var(--color-accent);box-shadow:var(--shadow);font-size:.9rem;font-weight:800;text-decoration:none}.scroll-top{right:1rem;bottom:4.75rem}.site-footer{padding-bottom:6rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.hero-copy.is-visible .hero-sequence,.hero-copy.is-visible .hero-intro,.project-card .tag-list li{opacity:1;transform:none;animation:none}}@media print{.reveal,.hero-copy.is-visible .hero-sequence,.hero-copy.is-visible .hero-intro,.project-card .tag-list li{opacity:1;transform:none;animation:none}}
