:root{--bg:#f5f2ed;--surface:#fff;--text-primary:#1a1a1a;--text-muted:#5a5a5a;--accent:#4a7c6f;--accent-light:#e8f0ee;--border:#e2ddd7;--font-sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--max:1100px;--pad-x:clamp(20px, 5vw, 60px);--radius-sm:8px;--radius:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--shadow-lg:0 12px 40px #0000001f, 0 4px 12px #0000000f;--shadow-xl:0 24px 64px #00000029;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem}[data-theme=dark]{--bg:#0f0f0f;--surface:#1a1a1a;--text-primary:#f0ece6;--text-muted:#888880;--accent-light:#1a2e2a;--border:#2a2a2a}*,:before,:after{box-sizing:border-box;transition:background-color .3s,color .2s,border-color .2s}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scroll-behavior:smooth}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background-color:var(--bg);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(circle,#a0968a40 1px,#0000 1px);background-size:28px 28px;margin:0;font-weight:400;line-height:1.7;position:relative;overflow-x:hidden}h1,h2,h3,p,ul,figure,pre{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}.wrap{max-width:var(--max);padding:0 var(--pad-x);margin:0 auto}.section-label{font-size:var(--text-xs);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--space-4);display:block}.section-heading{margin-bottom:var(--space-4);color:var(--text-primary);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;line-height:1.1}.section-desc{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-8);line-height:1.6}.skip-link{z-index:200;background:var(--accent);color:#fff;border-radius:10px;padding:10px 16px;transition:top .2s;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}#nav{z-index:100;transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;top:0;left:0;right:0}.nav-inner{align-items:center;gap:var(--space-6);height:60px;display:flex}.nav-logo{align-items:center;gap:var(--space-2);color:var(--text-primary);flex-shrink:0;text-decoration:none;display:flex}.logo-mark{background:var(--accent);color:#fff;border-radius:var(--radius-sm);letter-spacing:-.02em;width:32px;height:32px;font-size:11px;font-weight:700;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex}.logo-text{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.nav-links{align-items:center;gap:var(--space-5);margin-left:auto;display:flex}.nav-link{font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;transition:color .15s}.nav-link:hover{color:var(--text-primary)}.nav-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.nav-badge{align-items:center;gap:var(--space-2);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;padding:5px 12px;text-decoration:none;transition:all .2s;display:inline-flex}.nav-badge:hover{border-color:var(--accent);color:var(--accent)}.nav-badge-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:3s ease-in-out infinite badge-pulse}@keyframes badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.9)}}.nav-theme-toggle{align-items:center;gap:2px;padding:2px;display:flex}.nav-theme-btn{border-radius:var(--radius-full);cursor:pointer;width:26px;height:26px;color:var(--text-muted);opacity:.5;background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,opacity .15s;display:flex}.nav-theme-btn:hover{color:var(--text-primary);opacity:.85}[data-theme=light] .nav-theme-btn[data-theme-val=light],[data-theme=dark] .nav-theme-btn[data-theme-val=dark]{color:var(--text-primary);opacity:1}.nav-separator{background:#8b735540;height:1px;transition:opacity .3s}#nav.is-scrolled .nav-separator{opacity:0}#nav.is-scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f2ede0}[data-theme=dark] #nav.is-scrolled{background:#0f0f0fe0}#hero{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-bg{--hero-img:url(/assets/hero-bg-light.webp);z-index:0;background:var(--hero-img) center / cover no-repeat;position:absolute;inset:0}[data-theme=dark] .hero-bg{--hero-img:url(/assets/hero-bg-dark.webp)}.lamp-hotspot{z-index:4;pointer-events:none;cursor:default;appearance:none;background:0 0;border:0;width:80px;height:80px;padding:0;position:absolute;top:0;left:0}.lamp-hit-circle{pointer-events:auto;cursor:pointer;background:0 0;border-radius:50%;display:block;position:absolute}html.lamp-debug .lamp-hit-circle{outline-offset:-2px;background:#ff000026;outline:2px dashed red}.lamp-hotspot:focus-visible{outline:none}.lamp-hotspot:focus-visible .lamp-hit-circle{outline:2px solid var(--accent);outline-offset:3px}html.lamp-debug .lamp-hotspot{background:0 0;outline:none}.hero-bg:after{content:"";background:radial-gradient(60% 80% at 20%,#f5f2ed8c 0%,#f5f2ed00 100%);position:absolute;inset:0}[data-theme=dark] .hero-bg:after{background:radial-gradient(60% 80% at 20%,#00000080 0%,#0000 100%)}.hero-glow{aspect-ratio:1;z-index:1;opacity:0;pointer-events:none;will-change:transform, opacity;background:radial-gradient(circle closest-side,#ffd6968c 0%,#ffd69638 38%,#ffd69600 72%);width:clamp(220px,30cqw,460px);transition:opacity .2s,transform .2s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.7)}.lamp-hint{z-index:3;aspect-ratio:1;pointer-events:none;width:clamp(40px,3.6vw,60px);color:var(--text-primary);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.lamp-click-mark{opacity:0;width:100%;height:100%;animation:3.4s ease-in-out infinite lamp-click-sequence;display:block;overflow:visible}.lamp-click-cursor{fill:#232323d1;stroke:#ffffffbf;stroke-width:1.5px;stroke-linejoin:round;transform-box:fill-box;transform-origin:50%;animation:3.4s ease-in-out infinite lamp-cursor-press}.lamp-click-contact{fill:none;stroke:#232323d1;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;opacity:0;animation:3.4s ease-out infinite lamp-contact-press}@keyframes lamp-click-sequence{0%,8%{opacity:0}14%{opacity:1}42%{opacity:1}52%,to{opacity:0}}@keyframes lamp-cursor-press{0%,10%{transform:translate(-7px,-7px)scale(1)}20%{transform:translate(-2px,-2px)scale(1)}26%{transform:translate(0)scale(.9)}34%{transform:translate(-2px,-2px)scale(1)}to{transform:translate(-2px,-2px)scale(1)}}@keyframes lamp-contact-press{0%,21%{opacity:0;transform:scale(.45)}26%{opacity:.9;transform:scale(.7)}32%{opacity:.55;transform:scale(1)}40%,to{opacity:0;transform:scale(1)}}.hero-wrap{z-index:2;gap:var(--space-8);width:100%;max-width:var(--max);min-height:calc(100vh - 80px);padding:100px var(--pad-x) 60px;pointer-events:none;flex:1;grid-template-columns:1fr 1fr;align-items:center;margin-inline:auto;display:grid;position:relative}.hero-left,.hero-right{pointer-events:auto}.hero-left{flex-direction:column;justify-content:center;display:flex}.hero-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:clamp(10px,1.4cqw,22px);font-size:clamp(.68rem,1.05cqw,1.05rem);display:block}.hero-headline{color:var(--text-primary);margin-bottom:clamp(16px,2cqw,34px);font-size:clamp(1.7rem,4.3cqw,4rem);font-weight:700;line-height:1.08}.hero-accent{color:var(--accent)}.hero-sub{max-width:42cqw;color:var(--text-muted);margin-bottom:clamp(20px,2.4cqw,40px);font-size:clamp(.9rem,1.45cqw,1.45rem);line-height:1.6}.hero-ctas{flex-wrap:wrap;align-items:center;gap:clamp(12px,1.6cqw,26px);display:flex}.btn-primary{background:var(--accent);color:#fff;border-radius:clamp(10px,1.2cqw,20px);align-items:center;gap:.6cqw;padding:clamp(10px,1.1cqw,20px) clamp(18px,2.1cqw,38px);font-size:clamp(.85rem,1.25cqw,1.25rem);font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary:hover{filter:brightness(.9)}.btn-ghost{color:var(--accent);border-radius:clamp(10px,1.2cqw,20px);align-items:center;gap:.6cqw;padding:clamp(10px,1.1cqw,20px) clamp(18px,2.1cqw,38px);font-size:clamp(.85rem,1.25cqw,1.25rem);text-decoration:none;transition:color .15s;display:inline-flex}.btn-ghost:hover{color:var(--text-primary)}.hero-right{padding-left:var(--space-6);justify-content:center;align-items:center;display:flex}.hero-photo-wrap{border-radius:var(--radius-xl);width:280px;box-shadow:var(--shadow-xl);cursor:default;transform-style:preserve-3d;transition:box-shadow .3s;position:relative;overflow:hidden}.hero-photo-wrap:hover{box-shadow:0 24px 64px #0000002e}.hero-photo{object-fit:cover;object-position:top center;will-change:transform;width:100%;height:360px;transition:transform .4s cubic-bezier(.23,1,.32,1);display:block}.hero-dock{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;padding:var(--space-3) 0;background:#faf8f4eb;border-top:1px solid #e2ddd7cc;position:relative}[data-theme=dark] .hero-dock{background:#121212eb;border-top-color:#ffffff14}.dock-inner{max-width:var(--max);padding-inline:var(--pad-x);align-items:center;gap:var(--space-5);scrollbar-width:none;margin-inline:auto;display:flex;overflow-x:auto}.dock-inner::-webkit-scrollbar{display:none}.dock-label{font-size:var(--text-xs);letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;padding-right:var(--space-3);border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.dock-pills{gap:var(--space-2);flex-wrap:nowrap;display:flex}.dock-pill{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--border);font-size:var(--text-sm);background:var(--surface);white-space:nowrap;color:var(--text-primary);cursor:default;font-weight:500;transition:transform .2s cubic-bezier(.23,1,.32,1),box-shadow .2s,border-color .2s,background .2s;display:inline-flex;position:relative;overflow:hidden}[data-theme=dark] .dock-pill{background:#ffffff0f;border-color:#ffffff1f}.dock-pill-icon{vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;top:-1px}.dock-pill:before{content:"";background:linear-gradient(105deg,#0000 40%,#fff6 50%,#0000 60%);transition:transform .4s;position:absolute;inset:0;transform:translate(-100%)}.dock-pill:hover:before{transform:translate(100%)}.dock-pill:hover{background:var(--surface);border-color:#4a7c6f4d;transform:translateY(-3px);box-shadow:0 6px 20px #0000001a}[data-theme=dark] .dock-pill:before{background:linear-gradient(105deg,#0000 40%,#ffffff14 50%,#0000 60%)}[data-theme=dark] .dock-pill:hover{border-color:#4a7c6f66;box-shadow:0 6px 20px #0000004d}.dock-pill:hover .dock-pill-icon{transition:transform .2s cubic-bezier(.23,1,.32,1);transform:scale(1.15)}#apps{background:var(--bg);border-top:1px solid var(--border);padding-block:clamp(64px,8vw,110px)}.apps-wrap{width:100%}.apps-heading{max-width:720px;margin-bottom:var(--space-8)}.apps-heading .section-label{margin-bottom:var(--space-3)}.apps-heading .section-heading{margin-bottom:var(--space-3);letter-spacing:-.04em;font-size:clamp(2rem,4vw,3.25rem)}.apps-heading .section-desc{max-width:620px;margin-bottom:0}.apps-workspace{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 22px 60px #231e1917,0 4px 12px #231e190a}[data-theme=dark] .apps-workspace{box-shadow:0 24px 60px #00000057,0 5px 14px #00000038}.apps-workspace-bar{gap:var(--space-4);min-height:72px;padding:10px var(--space-4) 0;background:#e9e4dc;border-bottom:1px solid #d4ccc2;grid-template-columns:148px minmax(0,1fr);align-items:stretch;display:grid;box-shadow:inset 0 -1px #ffffff73}[data-theme=dark] .apps-workspace-bar{background:#181a19;border-bottom-color:#ffffff1a;box-shadow:inset 0 -1px #ffffff08}.apps-switcher-lead{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:9px;min-width:0;padding:4px 0 9px 5px;display:flex}.apps-window-controls{align-items:center;gap:8px;padding:0;display:flex}.apps-switcher-title{color:var(--text-primary);white-space:nowrap;font-size:15px;font-weight:650;line-height:1.2}.window-control{cursor:default;border-radius:50%;flex-shrink:0;width:13px;height:13px;transition:transform .16s,filter .16s,box-shadow .16s;box-shadow:inset 0 0 0 .5px #0000001f}.window-control--close{background:#ff5f57}.window-control--minimize{background:#febc2e}.window-control--maximize{background:#28c840}.window-control:hover{filter:brightness(1.08);transform:translateY(-1px)scale(1.08)}.window-control--close:hover{box-shadow:inset 0 0 0 .5px #0000001f,0 0 0 3px #ff5f5729,0 0 13px #ff5f57b8}.window-control--minimize:hover{box-shadow:inset 0 0 0 .5px #0000001f,0 0 0 3px #febc2e29,0 0 13px #febc2eb8}.window-control--maximize:hover{box-shadow:inset 0 0 0 .5px #0000001f,0 0 0 3px #28c84029,0 0 13px #28c840ad}.apps-tabs{scrollbar-width:none;align-items:flex-end;gap:5px;min-width:0;display:flex;overflow:auto hidden}.apps-tabs::-webkit-scrollbar{display:none}.app-tab{align-items:center;gap:var(--space-2);min-width:185px;height:61px;padding-inline:var(--space-3);color:var(--text-muted);text-align:left;cursor:pointer;appearance:none;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:15px 15px 0 0;grid-template-columns:auto auto minmax(0,1fr) auto;margin:0;transition:color .18s,background-color .18s,border-color .18s,transform .18s;display:grid;position:relative}.app-tab:hover{color:var(--text-primary);background:#ffffff9e}[data-theme=dark] .app-tab:hover{background:#ffffff0d}.app-tab.is-active{z-index:2;background:var(--surface);color:var(--text-primary);border-color:#d1c8bd;box-shadow:0 -5px 18px #2d261f0f}[data-theme=dark] .app-tab.is-active{border-color:#ffffff24;box-shadow:0 -5px 18px #00000038}.app-tab.is-active:after{content:"";background:var(--surface);height:3px;position:absolute;bottom:-2px;left:0;right:0}.app-tab.is-active:before{content:"";border-radius:var(--radius-full);background:var(--accent);height:2px;position:absolute;top:0;left:14px;right:14px}.app-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.tab-index{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}.tab-icon{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-primary);font-family:var(--font-mono);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;transition:background-color .18s,color .18s,border-color .18s;display:flex}.app-tab.is-active .tab-icon{background:var(--accent);border-color:var(--accent);color:#fff}.tab-name{min-width:0;color:inherit;font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.tab-arrow{color:var(--text-muted);font-size:13px;transition:color .18s,transform .18s}.app-tab:hover .tab-arrow{color:var(--accent);transform:translate(2px,-2px)}.app-tab.is-active .tab-arrow{color:var(--accent)}.tab-divider{pointer-events:none;background:#73695e38;width:1px;transition:opacity .18s;position:absolute;top:16px;bottom:16px;right:-3px}.app-tab:last-child .tab-divider{display:none}.app-tab.is-active .tab-divider{opacity:0}[data-theme=dark] .tab-divider{background:#ffffff1f}.apps-card{background:var(--surface);grid-template-columns:minmax(0,1fr) minmax(330px,380px);min-width:0;min-height:620px;display:grid}.apps-card-mockup{background:radial-gradient(circle at 48% 48%, #4a7c6f0b, transparent 52%), var(--surface);border-right:1px solid var(--border);justify-content:center;align-items:center;min-width:0;min-height:620px;padding:clamp(38px,5vw,68px) clamp(28px,4vw,58px);display:flex;overflow:hidden}[data-theme=dark] .apps-card-mockup{background:var(--surface)}.project-visual{width:100%;max-width:950px;position:relative}.project-visual--web-mobile{position:relative}.project-web-shot{aspect-ratio:16/10;border:1px solid var(--border);background:#fff;border-radius:18px;width:87%;transition:transform .26s cubic-bezier(.23,1,.32,1),box-shadow .26s;display:block;position:relative;overflow:hidden;box-shadow:0 20px 48px #231e191f}.project-web-shot:hover{transform:translateY(-3px);box-shadow:0 26px 58px #231e1926}.project-web-shot img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project-phone-shot{z-index:2;transform-origin:50% 92%;isolation:isolate;width:clamp(125px,22%,220px);box-shadow:none;filter:none;background:0 0;border:0;transition:transform .28s cubic-bezier(.23,1,.32,1);position:absolute;bottom:0;right:.5%;overflow:visible;transform:translateY(6%)rotate(3.5deg)}.project-phone-shot:after{content:"";z-index:0;filter:blur(14px);opacity:.52;pointer-events:none;background:#231e193d;border-radius:50%;height:13%;position:absolute;bottom:1%;left:14%;right:3%;transform:translateY(62%)rotate(-3deg)}.project-phone-shot:hover{transform:translateY(2%)rotate(2deg)scale(1.025)}.project-phone-shot img{z-index:1;width:100%;height:auto;box-shadow:none;filter:none;background:0 0;border:0;border-radius:0;display:block;position:relative}[data-theme=dark] .project-phone-shot:after{opacity:.48;background:#0000009e}.project-visual--mobile-only{isolation:isolate;width:100%;max-width:980px;height:clamp(520px,48vw,700px);margin-inline:auto;position:relative}.project-visual--mobile-only:after{content:"";z-index:0;filter:blur(26px);opacity:.42;pointer-events:none;background:#231e1933;border-radius:50%;height:10%;position:absolute;bottom:0;left:13%;right:13%;transform:translateY(42%)}.project-mobile-shot{box-shadow:none;filter:none;transform-origin:bottom;background:0 0;border:0;margin:0;padding:0;transition:transform .26s cubic-bezier(.23,1,.32,1),filter .26s;position:absolute}.project-mobile-shot img{width:100%;height:auto;box-shadow:none;filter:none;background:0 0;border:0;border-radius:0;display:block}.project-mobile-shot--left{z-index:1;width:clamp(195px,29%,305px);bottom:4%;left:29%;transform:translate(-50%)scale(.99)}.project-mobile-shot--center{z-index:3;width:clamp(230px,34%,360px);bottom:0;left:50%;transform:translate(-50%)}.project-mobile-shot--right{z-index:1;width:clamp(195px,29%,305px);bottom:4%;left:71%;transform:translate(-50%)scale(.99)}.project-mobile-shot--left:hover,.project-mobile-shot--right:hover{transform:translate(-50%)translateY(-7px)scale(1.015)}.project-mobile-shot--center:hover{z-index:4;transform:translate(-50%)translateY(-9px)scale(1.02)}[data-theme=dark] .project-visual--mobile-only:after{opacity:.5;background:#000000b8}.project-preview-error{padding:var(--space-6);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-sm);text-align:center;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.project-visual--web-only{justify-content:center;display:flex}.project-visual--web-only .project-web-shot{width:100%}.mockup-image-button{cursor:zoom-in;appearance:none;margin:0;padding:0}.mockup-image-button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.apps-card-detail{gap:var(--space-6);background:var(--surface);flex-direction:column;min-width:0;padding:clamp(32px,3vw,46px) clamp(26px,2.5vw,36px);display:flex}.detail-project-header{align-items:center;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--border);display:flex}.detail-icon{color:#fff;width:58px;height:58px;font-family:var(--font-mono);cursor:default;background:linear-gradient(145deg,#4a7c6f,#245d4f);border-radius:17px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;transition:transform .18s cubic-bezier(.23,1,.32,1),box-shadow .18s,filter .18s;display:flex;box-shadow:0 8px 20px #4a7c6f2e}.detail-icon:hover{filter:brightness(1.06);transform:translateY(-3px)scale(1.07);box-shadow:0 13px 28px #4a7c6f4d,0 0 0 4px #4a7c6f1a}.detail-heading-copy{min-width:0}.detail-title{color:var(--text-primary);font-size:clamp(1.3rem,2vw,1.65rem);font-weight:700;line-height:1.2;display:block}.detail-subtitle{color:var(--accent);font-size:var(--text-sm);margin-top:3px;display:block}.detail-desc{max-width:34ch;color:var(--text-muted);font-size:var(--text-sm);line-height:1.7}.detail-highlights{gap:var(--space-4);padding-block:var(--space-5);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.detail-highlights li{gap:var(--space-3);cursor:default;transform-origin:0;border-radius:12px;grid-template-columns:34px minmax(0,1fr);align-items:center;margin-inline:-12px;padding:9px 12px;transition:transform .18s cubic-bezier(.23,1,.32,1),background-color .18s,box-shadow .18s;display:grid}.detail-highlights li:hover{background:var(--accent-light);transform:translate(4px)scale(1.015);box-shadow:0 8px 22px #4a7c6f1a}.feature-icon-wrap{background:var(--accent-light);width:34px;height:34px;color:var(--accent);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;transition:transform .18s cubic-bezier(.23,1,.32,1),background-color .18s,border-color .18s,box-shadow .18s;display:flex}.detail-highlights li:hover .feature-icon-wrap{background:#fff;border-color:#4a7c6f2e;transform:scale(1.08);box-shadow:0 5px 14px #4a7c6f24}[data-theme=dark] .detail-highlights li:hover .feature-icon-wrap{background:var(--surface);border-color:#ffffff1a;box-shadow:0 5px 14px #00000047}.feature-title{color:var(--text-primary);font-size:var(--text-sm);font-weight:600;line-height:1.4}.detail-contact{padding-top:var(--space-5);gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.detail-contact-label{color:var(--text-primary);font-size:var(--text-sm);font-weight:650;line-height:1.35}.detail-contact-cta{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--accent);background:var(--accent);color:#fff;width:100%;font-size:var(--text-sm);border-radius:12px;margin-top:0;padding:13px 15px;font-weight:600;line-height:1.4;text-decoration:none;transition:transform .18s cubic-bezier(.23,1,.32,1),background-color .18s,border-color .18s,box-shadow .18s;display:flex;box-shadow:0 7px 18px #4a7c6f29}.detail-contact-cta:hover{color:#fff;background:#3d6b60;border-color:#3d6b60;transform:translateY(-3px)scale(1.015);box-shadow:0 14px 30px #4a7c6f52,0 0 0 3px #4a7c6f1a}.detail-contact-cta:active{transform:translateY(-1px)scale(1.005)}.detail-contact-cta:focus-visible{outline:3px solid var(--accent-light);outline-offset:3px}.detail-contact-cta .iconify{flex-shrink:0;transition:transform .18s cubic-bezier(.23,1,.32,1)}.detail-contact-cta:hover .iconify{transform:translate(3px,3px)scale(1.08)}[data-theme=dark] .detail-icon{box-shadow:0 8px 18px #00000047}[data-theme=dark] .detail-icon:hover{filter:none;transform:translateY(-2px)scale(1.04);box-shadow:0 11px 24px #0006,0 0 0 1px #ffffff0f}[data-theme=dark] .detail-contact-cta{box-shadow:0 6px 16px #00000047}[data-theme=dark] .detail-contact-cta:hover{color:#fff;background:#527f73;border-color:#527f73;transform:translateY(-2px);box-shadow:0 11px 24px #0006,0 0 0 1px #ffffff0d}[data-theme=dark] .detail-contact-cta:hover .iconify{transform:translate(2px,2px)scale(1.03)}.lightbox{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080808f0;justify-content:center;align-items:center;gap:clamp(10px,2vw,24px);padding:clamp(16px,3vw,40px);display:flex;position:fixed;inset:0}.lightbox[hidden]{display:none}.lightbox-img{object-fit:contain;border-radius:var(--radius);width:auto;max-height:calc(100vh - 80px);box-shadow:0 25px 80px #00000080}.lightbox-img[data-kind=web]{max-width:min(88vw,1800px)}.lightbox-img[data-kind=mobile]{max-width:min(72vw,480px)}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex;position:absolute;top:clamp(14px,2vw,28px);right:clamp(14px,2vw,28px)}.lightbox-prev,.lightbox-next{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:2rem;display:flex}@media (width>=1200px){#apps{align-items:center;min-height:100svh;padding-block:clamp(84px,8vh,128px);display:flex}.apps-wrap{width:100%}.apps-heading{margin-bottom:clamp(36px,4vh,56px)}.apps-card{min-height:clamp(700px,64vh,980px)}.apps-card-mockup{min-height:clamp(700px,64vh,980px);padding:clamp(48px,5vh,76px) clamp(24px,3vw,46px)}.project-visual:not(.project-visual--mobile-only){max-width:1250px}.project-web-shot{width:92%}.project-phone-shot{width:clamp(135px,21%,240px)}.apps-card-detail{padding-block:clamp(42px,4vh,64px)}}@media (width<=980px){.apps-card{grid-template-columns:1fr}.apps-card-mockup{border-right:0;border-bottom:1px solid var(--border);min-height:540px}.apps-card-detail{min-height:0}.detail-highlights{grid-template-columns:repeat(3,1fr);display:grid}.detail-highlights li{grid-template-columns:34px minmax(0,1fr)}}@media (width<=760px){.apps-workspace-bar{gap:var(--space-2);grid-template-columns:132px minmax(0,1fr);padding-top:10px}.apps-switcher-lead{gap:7px;padding:3px 0 8px 1px}.apps-window-controls{gap:6px}.apps-switcher-title{font-size:11px}.window-control{width:11px;height:11px}.app-tab{min-width:165px}.apps-card-mockup{min-height:460px;padding:36px 22px}.project-phone-shot{width:clamp(110px,24%,155px);bottom:1%;right:0;transform:translateY(5%)rotate(3deg)}.project-phone-shot:hover{transform:translateY(1%)rotate(2deg)scale(1.02)}.project-visual--mobile-only{max-width:620px;height:430px}.project-mobile-shot--left{width:clamp(130px,29%,188px);bottom:4%;left:29%}.project-mobile-shot--center{width:clamp(155px,35%,220px);bottom:0;left:50%}.project-mobile-shot--right{width:clamp(130px,29%,188px);bottom:4%;left:71%}.detail-highlights{grid-template-columns:1fr}}@media (width<=480px){#apps{padding-block:52px}.apps-heading .section-heading{font-size:2.15rem}.apps-workspace{border-radius:22px}.apps-workspace-bar{grid-template-columns:122px minmax(0,1fr);padding-inline:10px}.apps-switcher-title{font-size:10.5px}.app-tab{min-width:148px;height:55px;padding-inline:10px}.tab-index{display:none}.tab-icon{width:30px;height:30px}.apps-card-mockup{min-height:390px;padding:28px 14px 42px}.project-web-shot{border-radius:13px;width:91%}.project-phone-shot{width:clamp(98px,28%,122px);bottom:0;right:0;transform:translateY(5%)rotate(2.5deg)}.project-phone-shot:hover{transform:translateY(2%)rotate(1.5deg)scale(1.015)}.project-visual--mobile-only{max-width:360px;height:310px}.project-visual--mobile-only:after{filter:blur(18px);height:9%;left:8%;right:8%}.project-mobile-shot--left{width:min(31%,116px);bottom:5%;left:27%}.project-mobile-shot--center{width:min(39%,145px);bottom:0;left:50%}.project-mobile-shot--right{width:min(31%,116px);bottom:5%;left:73%}.project-mobile-shot--left:hover,.project-mobile-shot--right:hover{transform:translate(-50%)translateY(-4px)scale(1.01)}.project-mobile-shot--center:hover{transform:translate(-50%)translateY(-5px)scale(1.015)}.apps-card-detail{padding:var(--space-6) var(--space-4)}.lightbox-prev,.lightbox-next{width:44px;height:44px;position:absolute;bottom:18px}.lightbox-prev{left:calc(50% - 54px)}.lightbox-next{right:calc(50% - 54px)}.lightbox-img{max-width:94vw;max-height:calc(100vh - 110px)}}#path{isolation:isolate;background:var(--bg);border-top:1px solid var(--border);padding-block:clamp(56px,7vw,100px);position:relative;overflow:hidden}#path:before{content:"";z-index:0;opacity:.95;pointer-events:none;background-image:radial-gradient(circle,#4a7c6f24 1px,#0000 1.2px);background-size:30px 30px;position:absolute;inset:0}[data-theme=dark] #path:before{opacity:.35;background-image:radial-gradient(circle,#ffffff17 1px,#0000 1.2px)}.path-wrap{z-index:1;gap:var(--space-12);grid-template-columns:220px 1fr;align-items:start;display:grid;position:relative}.path-sidebar{position:sticky;top:100px}.path-timeline-wrap{gap:var(--space-5);flex-direction:column;display:flex}.path-epochs{gap:var(--space-3);grid-template-columns:repeat(6,1fr);align-items:end;display:grid}.epoch{gap:var(--space-2);padding:var(--space-4) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:default;flex-direction:column;min-width:0;transition:border-color .2s,box-shadow .2s,transform .2s cubic-bezier(.23,1,.32,1),background .2s;display:flex}.epoch:hover{border-color:var(--accent);background:var(--accent-light);transform:translateY(-4px);box-shadow:0 8px 24px #4a7c6f26}[data-theme=dark] .epoch:hover{background:var(--accent-light);box-shadow:0 8px 24px #4a7c6f33}.epoch-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.05em;transition:color .2s}.epoch:hover .epoch-num,.epoch.is-active .epoch-num{color:var(--accent)}.epoch-title{font-size:var(--text-sm);color:var(--text-primary);margin:0;font-weight:600;transition:color .2s}.epoch:hover .epoch-title{color:var(--accent)}.epoch-desc{font-size:var(--text-xs);color:var(--text-muted);margin:0;line-height:1.5}.epoch--next{cursor:default;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important;transform:none!important}.epoch--next:hover{box-shadow:none!important;background:0 0!important;border:none!important;transform:none!important}.epoch-callout{padding:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--accent);background:var(--accent-light);box-shadow:var(--shadow-lg);z-index:1;transition:box-shadow .2s;position:relative}.epoch--next:hover .epoch-callout{box-shadow:0 8px 32px #4a7c6f40}[data-theme=dark] .epoch-callout{background:var(--accent-light);border-color:var(--accent)}.epoch--next .epoch-num{color:var(--accent);font-weight:700}.epoch--next .epoch-title{color:var(--accent);font-size:var(--text-base);font-weight:700}.epoch--next .epoch-desc{color:var(--text-primary)}.epoch-callout-tail{background:var(--accent);opacity:.7;width:2px;height:18px;margin-inline:auto}.path-track{align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-inline:var(--space-1);display:flex}.track-arrow{color:var(--text-muted);opacity:.5;flex-shrink:0;align-items:center;display:flex}.track-body{flex:1;position:relative}.track-dots{grid-template-columns:repeat(6,1fr);display:grid;position:relative}.track-dots:before{content:"";background:var(--border);z-index:0;height:1px;position:absolute;top:8px;left:8.33333%;right:25%}.track-dots:after{content:"";border-top:1px dashed var(--accent);opacity:.6;z-index:0;background:0 0;width:16.6667%;height:1px;position:absolute;top:8px;right:8.33333%}.track-dot{align-items:center;gap:var(--space-2);z-index:1;cursor:default;flex-direction:column;display:flex;position:relative}.track-dot-inner{background:var(--border);border:2px solid var(--surface);border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:background .25s,transform .25s,box-shadow .25s}.track-year{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;font-family:var(--font-mono);text-align:center;transition:color .2s}.track-dot.is-active .track-dot-inner{background:var(--accent);box-shadow:0 0 0 3px var(--accent-light);transform:scale(1.2)}.track-dot.is-active .track-year{color:var(--accent)}.track-dot--next .track-dot-inner{background:var(--accent);border-color:var(--surface);width:12px;height:12px;box-shadow:0 0 0 3px var(--accent-light)}.track-dot--next .track-year{color:var(--accent);font-weight:600}.track-dot:hover .track-dot-inner{background:var(--accent);box-shadow:0 0 0 4px var(--accent-light);transform:scale(1.3)}.track-dot:hover .track-year{color:var(--accent)}@media (width<=1024px){.path-wrap{grid-template-columns:1fr}.path-sidebar{margin-bottom:var(--space-8);position:static}.path-epochs{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.track-arrow,.track-dots:before,.track-dots:after{display:none}.track-body{overflow-x:auto}.track-dots{grid-template-columns:repeat(6,80px)}}@media (width<=600px){.path-epochs{grid-template-columns:repeat(2,1fr)}.epoch--next{flex-direction:row;grid-column:1/-1;align-items:center}.epoch-callout-tail{width:20px;height:2px}}#stack{background:var(--surface);padding-block:clamp(48px,6vw,96px)}.stack-wrap{gap:var(--space-10);grid-template-columns:260px 1fr;align-items:start;display:grid}.stack-left{position:sticky;top:120px}.stack-cta{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--accent);margin-top:var(--space-6);text-decoration:none;transition:color .15s;display:inline-flex}.stack-cta:hover{color:var(--text-primary)}.stack-right{gap:var(--space-6);flex-direction:column;display:flex}.steps-track{padding:var(--space-6) var(--space-5);background:var(--bg);border-radius:var(--radius-lg);border:1px solid var(--border);grid-template-columns:repeat(6,1fr);gap:0;display:grid;position:relative}.steps-track:before{content:"";top:calc(var(--space-6) + var(--space-2) + 20px);background:var(--border);opacity:.8;z-index:0;height:1px;position:absolute;left:8.33333%;right:8.33333%}.step{align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-2) var(--space-1);border-radius:var(--radius);z-index:1;flex-direction:column;transition:all .15s;display:flex;position:relative}.step-circle{border:1.5px solid var(--border);background:var(--surface);z-index:1;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .15s cubic-bezier(.23,1,.32,1);display:flex;position:relative}.step.is-active .step-circle{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-light), 0 4px 12px #4a7c6f4d}.step:not(.is-active):hover .step-circle{border-color:var(--accent);background:var(--accent-light)}.step:not(.is-active):hover .step-title{color:var(--accent)}.step-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.step.is-active .step-num{color:#fff}.step-body{align-items:center;gap:var(--space-1);text-align:center;flex-direction:column;display:flex}.step-icon{font-size:var(--text-base);opacity:.35;line-height:1;transition:opacity .15s}.step.is-active .step-icon{opacity:1}.step-title{font-size:var(--text-xs);color:var(--text-muted);font-weight:600;transition:color .12s}.step.is-active .step-title{color:var(--text-primary)}.step-desc{font-size:var(--text-xs);color:var(--accent);max-width:80px;line-height:1.4;transition:opacity .15s;display:none}.step.is-active .step-desc{display:block}.stack-grid{gap:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.stack-col{gap:var(--space-3);flex-direction:column;display:flex}.stack-col-label{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.stack-col-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.stack-pills{gap:var(--space-2);flex-wrap:wrap;display:flex}.stack-pill{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border);font-size:var(--text-xs);color:var(--text-primary);background:var(--bg);font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.stack-pill .iconify{vertical-align:middle;flex-shrink:0;position:relative;top:-1px}.stack-pill:hover{border-color:var(--accent);color:var(--accent)}@media (width<=1024px){.stack-wrap{grid-template-columns:1fr}.stack-left{position:static}}@media (width<=768px){.steps-track{grid-template-columns:repeat(3,1fr)}.steps-track:before{display:none}.stack-grid{grid-template-columns:1fr}}#contact{background:var(--bg);padding-block:clamp(64px,8vw,120px)}.contact-upper{gap:var(--space-10);grid-template-columns:1.2fr 1fr;align-items:center;margin-bottom:clamp(48px,6vw,80px);display:grid}.contact-video-panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:1px solid var(--border);isolation:isolate;background:#000;overflow:hidden}.video-titlebar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);border-radius:0;display:flex}.video-traffic-lights{align-items:center;gap:6px;display:flex}.tl{cursor:default;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;transition:filter .15s;display:flex;position:relative}.tl--red{background:#ff5f57}.tl--yellow{background:#febc2e}.tl--green{background:#28c840}.tl-icon{opacity:0;color:#00000080;-webkit-user-select:none;user-select:none;font-size:8px;font-weight:700;line-height:1;transition:opacity .15s;position:absolute}.video-titlebar:hover .tl-icon{opacity:1}.video-titlebar:hover .tl{filter:brightness(.9)}.video-title{font-size:var(--text-sm);color:var(--text-muted);text-align:center;flex:1}.video-frame{height:0;padding-bottom:58%;position:relative;overflow:hidden}.video-frame iframe{width:100%;height:100%;position:absolute;inset:0}.contact-copy{padding-left:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.contact-checks{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.contact-checks li{align-items:center;gap:var(--space-3);font-size:var(--text-base);color:var(--text-primary);display:flex}.check-icon{color:var(--accent);font-weight:700;font-size:var(--text-base);flex-shrink:0}.contact-cta-row{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.contact-reply-note{font-size:var(--text-xs);color:var(--text-muted);padding-left:2px}.contact-lower{border-top:1px solid var(--border);gap:var(--space-8);grid-template-columns:minmax(150px,200px) 1fr;align-items:center;padding-top:clamp(32px,4vw,56px);display:grid}.contact-lower-header{gap:var(--space-2);flex-direction:column;margin-bottom:0;display:flex}.contact-lower-header .section-heading{margin-bottom:0;font-size:clamp(1.5rem,2.5vw,2rem)}.contact-lower-header .section-label{margin-bottom:0}.contact-lower-header .section-desc{font-size:var(--text-sm);max-width:240px;margin-bottom:0}.ch-email{--brand:#4a7c6f;--brand-light:#e8f0ee;--brand-rgb:74, 124, 111}.ch-linkedin{--brand:#0a66c2;--brand-light:#e8f0f9;--brand-rgb:10, 102, 194}.ch-youtube{--brand:red;--brand-light:#fff0f0;--brand-rgb:255, 0, 0}.ch-twitch{--brand:#9146ff;--brand-light:#f3eeff;--brand-rgb:145, 70, 255}.contact-channels{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.ch-card{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);text-decoration:none;transition:transform .25s cubic-bezier(.23,1,.32,1),box-shadow .25s,border-color .2s,background .2s;display:flex;position:relative;overflow:hidden;container-type:inline-size}.ch-card:after{content:"";background:var(--brand);opacity:.7;height:2.5px;transition:opacity .2s,height .2s;position:absolute;bottom:0;left:0;right:0}.ch-card:hover{box-shadow:0 10px 30px rgba(var(--brand-rgb), .35);border-color:var(--brand);background:var(--brand);transform:translateY(-3px)}.ch-card:hover .ch-name{color:#fff}.ch-card:hover .ch-sub{color:#ffffffd9}.ch-card:hover:after{opacity:0}[data-theme=dark] .ch-card:hover{box-shadow:0 10px 30px rgba(var(--brand-rgb), .45)}.ch-icon-wrap{border-radius:var(--radius);background:var(--brand);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .25s cubic-bezier(.23,1,.32,1),background .25s;display:flex}.ch-card:hover .ch-icon-wrap{background:#ffffff38;transform:scale(1.08)}.ch-icon-svg{color:#fff}.ch-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ch-name{font-size:var(--text-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:600;transition:color .2s;overflow:hidden}.ch-sub{font-size:var(--text-xs);color:var(--text-muted);line-height:1.35;transition:color .2s}.ch-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .25s cubic-bezier(.23,1,.32,1),color .2s;display:none}@container (width>=250px){.ch-arrow{display:block}}.ch-card:hover .ch-arrow{color:#fff;transform:translate(4px)}[data-theme=dark] .ch-email{--brand-light:#1a2e2a}[data-theme=dark] .ch-linkedin{--brand-light:#0a1a2e}[data-theme=dark] .ch-youtube{--brand-light:#2e0a0a}[data-theme=dark] .ch-twitch{--brand-light:#1a0a2e}#footer{padding-block:var(--space-8);border-top:1px solid var(--border)}.footer-wrap{justify-content:space-between;align-items:center;display:flex}.footer-text{font-size:var(--text-sm);color:var(--text-muted)}.scroll-top{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;font-size:var(--text-base);border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.scroll-top:hover{background:var(--accent);color:#fff;border-color:var(--accent)}@media (width<=1024px){.contact-lower{gap:var(--space-6);grid-template-columns:1fr;align-items:stretch}.contact-channels{grid-template-columns:repeat(2,1fr)}.contact-lower-header .section-desc{max-width:none}}@media (width<=768px){.contact-upper{grid-template-columns:1fr}.contact-copy{padding-left:0}.contact-cta-row{flex-direction:row;align-items:center}}@media (width<=600px){.contact-channels{grid-template-columns:1fr}.ch-card{padding:var(--space-3) var(--space-4)}}@media (width>=1600px){:root{--max:1400px}}@media (width>=2200px){:root{--max:1700px}}@media (width>=3000px){:root{--max:2200px}}@media (width<=768px){.section,.path{padding-top:64px;padding-bottom:64px}.nav-links{display:none}}@media (width<=560px){.nav-inner{gap:var(--space-3)}.logo-text,.nav-badge-text{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.lamp-click-mark{opacity:.65;animation:none;transform:scale(1)}}
