:root{--pt-text-primary:#111827;--pt-text-secondary:#3f3f46;--pt-text-muted:#71717a;--pt-icon-color:#52525b;--pt-icon-border:#e4e4e7}html.dark{--pt-text-primary:#f1f5f9;--pt-text-secondary:#cbd5e1;--pt-text-muted:#94a3b8;--pt-icon-color:#94a3b8;--pt-icon-border:#3f3f46}*,:after,:before{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:#fff;letter-spacing:-.02em}body,figure{margin:0;padding:0}a{text-decoration:none}ul{list-style:none;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}p{color:#52525b;font-size:.95rem;line-height:1.65;margin:0;text-wrap:pretty}.rich-content{font-family:inherit;font-size:1rem;line-height:1.8;color:#111827;letter-spacing:-.01em;width:100%;min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal}.rich-content *{font-family:inherit;box-sizing:border-box;max-width:100%}.rich-content>*+*{margin-top:1rem}.rich-content p{margin:0;white-space:normal;overflow-wrap:break-word;word-break:normal}.rich-content p+p{margin-top:.75rem}.rich-content h1,.rich-content h2,.rich-content h3,.rich-content h4{color:#0a0a0a;font-weight:700;line-height:1.2;margin:2rem 0 .6rem;letter-spacing:-.03em}.rich-content h1{font-size:1.6rem}.rich-content h2{font-size:1.35rem}.rich-content h3{font-size:1.15rem}.rich-content h4{font-size:1rem}.rich-content ol,.rich-content ul{margin:0;padding-left:1.5rem}.rich-content ul{list-style:disc}.rich-content ol{list-style:decimal}.rich-content li+li{margin-top:.25rem}.rich-content li{overflow-wrap:break-word;word-break:normal}.rich-content a{color:#0f766e;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.rich-content img{max-width:100%;height:auto;border-radius:12px;display:block}.rich-content code,.rich-content pre{font-family:Menlo,Monaco,Courier New,monospace;font-size:.875rem;background:#f4f4f4;border-radius:4px}.rich-content pre{padding:1rem;overflow-x:auto;max-width:100%}.rich-content code{padding:.1em .35em}.rich-content table{width:100%;border-collapse:collapse;overflow-x:auto;display:block}.rich-content td,.rich-content th{padding:.5rem .75rem;border:1px solid #ddd;text-align:left}.rich-content iframe,.rich-content video{max-width:100%;height:auto;display:block}.rich-content strong{font-weight:700}.rich-content em{font-style:italic}.ps-sections{display:flex;flex-direction:column;gap:clamp(48px,7vw,80px)}.ps-block{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0}.ps-block--img{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,5vw,64px)}.ps-block--img-left .ps-image{order:-1}.ps-block--img-right .ps-image{order:1}.ps-block-title{font-size:clamp(1.25rem,2.5vw,1.55rem);font-weight:700;letter-spacing:-.03em;color:#0a0a0a;margin:0 0 .85rem;line-height:1.2}.ps-text{padding:0;display:flex;flex-direction:column;justify-content:center}.ps-block:not(.ps-block--img) .ps-text{max-width:74ch}.ps-image{width:100%;display:flex;align-items:center;justify-content:center;padding:clamp(8px,1.2vw,12px);border-radius:14px;overflow:visible}.ps-img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;display:block;border-radius:10px}@media (max-width:720px){.ps-block--img{grid-template-columns:1fr;gap:20px}.ps-block--img-left .ps-image,.ps-block--img-right .ps-image{order:0}}.gs-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9999;justify-content:center}.gs-backdrop,.gs-modal{display:flex;align-items:center}.gs-modal{position:relative;gap:12px;width:90vw;max-width:1100px}.gs-img-wrap{position:relative;flex:1 1;height:70vh;border-radius:10px;overflow:hidden;background:#111}.gs-img{object-fit:contain}.gs-close{position:absolute;top:-44px;right:0;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:6px 10px;line-height:1;opacity:.8}.gs-close:hover{opacity:1}.gs-next,.gs-prev{background:hsla(0,0%,100%,.1);border:none;color:#fff;font-size:2.2rem;cursor:pointer;padding:10px 14px;border-radius:8px;flex-shrink:0;line-height:1;transition:background .15s}.gs-next:hover,.gs-prev:hover{background:hsla(0,0%,100%,.22)}.gs-counter{position:absolute;bottom:-32px;left:50%;transform:translateX(-50%);color:hsla(0,0%,100%,.6);font-size:.8rem;white-space:nowrap}@media (max-width:600px){.gs-modal{width:98vw;gap:6px}.gs-img-wrap{height:55vw}.gs-next,.gs-prev{font-size:1.6rem;padding:8px 10px}}.tag{border-radius:6px;background:#e4e4e7;color:#3f3f46;font-size:.8rem;font-weight:500;padding:.2rem .6rem;cursor:default}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.skill-card{border:1px solid #e4e4e7;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px}.skill-card-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin:0;color:#71717a}.skills-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-chip{gap:6px;border-radius:6px;background:#f4f4f5;color:#3f3f46;font-size:.78rem;font-weight:500;padding:.22rem .55rem;cursor:default;border:1px solid #e4e4e7}.skill-chip,.skill-chip-icon{display:inline-flex;align-items:center}.skill-chip-icon{flex-shrink:0}.tag:hover{background:#d4d4d8}.active-dot{color:#00b894}:focus-visible{outline:2px solid #0f766e;outline-offset:3px;border-radius:4px}.intro-section{max-width:960px;margin:0 auto 64px;display:grid;grid-template-columns:260px 1fr;grid-gap:64px;gap:64px;align-items:start}.intro-profile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem}.intro-about{padding-top:6px}@media (max-width:680px){.intro-section{grid-template-columns:1fr;gap:36px}.intro-about{padding-top:0}}.localized-fade{animation:localizedFade .18s ease}@keyframes localizedFade{0%{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){.localized-fade{animation:none}}.social-link:hover{color:#0f766e!important;border-color:#0f766e!important;background:#f0fdfa!important}.social-link svg{pointer-events:none}.hero-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}@media (max-width:520px){.hero-row{flex-direction:column-reverse;align-items:flex-start}}.exp-timeline{position:relative;list-style:none;margin:0;padding:0}.exp-timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-1px);background:#a1a1aa;border-radius:1px}.exp-item{display:grid;grid-template-columns:1fr 48px 1fr;align-items:start}.exp-item:not(:last-child){margin-bottom:32px}.exp-col-center{display:flex;justify-content:center;padding-top:20px}.exp-dot{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--exp-color,#0f766e);box-sizing:border-box;position:relative;z-index:1;flex-shrink:0}.exp-dot:before,.exp-item--has-highlights .exp-dot:after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:17px;height:1px}.exp-dot:before,.exp-item--has-highlights .exp-dot:after{background:var(--exp-color,#27272a)}.exp-item--left .exp-dot:before{right:100%}.exp-item--left.exp-item--has-highlights .exp-dot:after,.exp-item--right .exp-dot:before{left:100%}.exp-item--right.exp-item--has-highlights .exp-dot:after{right:100%}.exp-card{border:1px solid #e4e4e7;border-radius:12px;padding:20px 24px;background:#fff;min-height:172px;display:flex;flex-direction:column;justify-content:center}.exp-item--left .exp-card{border-right:8px solid var(--exp-color,#e4e4e7)}.exp-item--right .exp-card{border-left:8px solid var(--exp-color,#e4e4e7)}.exp-date{font-size:.78rem;font-weight:500;color:var(--exp-color,#0f766e);border:1px solid var(--exp-soft-border,#99f6e4);padding:2px 9px;border-radius:20px;flex-shrink:0;font-family:system-ui,-apple-system,sans-serif;white-space:nowrap}.exp-date,.exp-highlights{background:var(--exp-soft,#f0fdfa)}.exp-highlights{padding:20px 16px;border:1px solid var(--exp-soft-border,#99f6e4);border-radius:10px;min-height:172px;display:flex;flex-direction:column;justify-content:center}.exp-highlights ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.exp-highlights li{font-size:.85rem;color:#52525b;line-height:1.5;padding-left:14px;position:relative}.exp-highlights li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--exp-color,#0f766e)}@media (max-width:680px){.exp-timeline{padding-left:32px}.exp-timeline:before{left:6px;transform:none}.exp-item{display:flex;flex-direction:column;gap:10px;position:relative}.exp-col-center{position:absolute;left:-32px;top:20px;width:14px;height:14px;padding:0}.exp-dot:before,.exp-item--has-highlights .exp-dot:after{display:none}.exp-item--right .exp-col-right{order:-1}.exp-card{padding:16px 18px;border-right:1px solid #e4e4e7;border-left:8px solid var(--exp-color,#e4e4e7)}.exp-card,.exp-highlights{min-height:unset;justify-content:flex-start}.exp-highlights{padding:14px;border-radius:8px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.print-only{display:none}@media print{.print-only{display:block}.no-print{display:none!important}}.projects-section{max-width:1100px;margin:0 auto 64px}.section-title{margin-bottom:28px;line-height:1.3;font-weight:700;font-size:1.65rem}.proj-section-heading{margin:0 0 18px;font-size:1.05rem;font-weight:600;color:#111827;letter-spacing:-.02em;line-height:1.3}.masonry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px}@media (max-width:560px){.masonry-grid{grid-template-columns:1fr}}.proj-card{position:relative;display:flex;flex-direction:column;height:100%;border-radius:14px;overflow:hidden;background:#fff;border:1px solid #e4e4e7;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:transform .28s ease,box-shadow .28s ease;cursor:default}.proj-card:before{content:"";position:absolute;inset:0;display:none;pointer-events:none;z-index:1}.proj-card>*{position:relative;z-index:1}.proj-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.13)}.proj-card-img{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden}.proj-card-img-inner{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.proj-card:hover .proj-card-img-inner{transform:scale(1.06)}.proj-card-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;opacity:0;transition:opacity .28s ease}.proj-card:hover .proj-card-overlay{opacity:1}.proj-card-logo{width:200px;height:200px;object-fit:contain;opacity:0;transform:translateY(6px) scale(.92);transition:opacity .3s ease .05s,transform .3s ease .05s;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));flex-shrink:0}.proj-card:hover .proj-card-logo{opacity:1;transform:translateY(0) scale(1)}.proj-card-overlay-label{font-family:system-ui,-apple-system,sans-serif;font-size:1.1rem;font-weight:600;color:#fff;letter-spacing:-.02em;text-align:center}.proj-card-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px}.proj-card-meta{display:flex;align-items:center;gap:8px}.proj-card-title{font-size:1.05rem;font-weight:600;color:#111827;letter-spacing:-.02em}.proj-card-active{width:7px;height:7px;border-radius:50%;background:#00b894;flex-shrink:0}.proj-card-desc{font-size:.85rem;color:#52525b;line-height:1.6;margin:0}.proj-card-tags{display:flex;flex-wrap:wrap;gap:6px}.proj-card-actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}.btn-detail{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:8px;background:#111827;color:#fff;font-size:.78rem;font-weight:500;font-family:system-ui,-apple-system,sans-serif;transition:background .2s ease,gap .2s ease;letter-spacing:-.01em;border:none;cursor:pointer}.btn-detail:hover{background:#1f2937;gap:8px}.btn-visit{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:8px;background:#2563eb;border:none;color:#fff;font-size:.78rem;font-weight:500;font-family:system-ui,-apple-system,sans-serif;transition:background .2s ease,gap .2s ease;letter-spacing:-.01em;cursor:pointer}.btn-visit:hover{background:#1d4ed8;gap:8px}.pd-root{min-height:100vh}.pd-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:12px 24px;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #eee}.pd-back{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-family:system-ui,-apple-system,sans-serif;color:#555;font-weight:500;transition:color .15s}.pd-back:hover{color:#0f766e}.pd-hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden}.pd-hero-img{object-fit:cover}.pd-hero-blur-bg{position:absolute;inset:0;transform:scale(1.1);background-size:cover;background-position:50%;filter:blur(36px);opacity:.38}.pd-hero-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72) 0,rgba(0,0,0,.22) 55%,transparent);display:flex;align-items:flex-end}.pd-hero-content{padding:clamp(28px,5vw,64px);max-width:760px;display:flex;flex-direction:column;gap:14px;position:relative}.pd-hero-content:before{content:"";position:absolute;inset:-60% -50% -60% -60%;background:radial-gradient(circle at 38% 58%,rgba(0,0,0,.36) 0,rgba(0,0,0,.18) 42%,transparent 72%);filter:blur(18px);pointer-events:none;z-index:0}.pd-hero-content>*{position:relative;z-index:1}.pd-hero-logo{width:auto;height:auto;max-width:180px;object-fit:contain;filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));margin-bottom:2px}.pd-status{display:inline-flex;width:-moz-fit-content;width:fit-content;font-size:.72rem;font-weight:600;font-family:system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:20px}.pd-status--active{background:rgba(0,184,148,.2);color:#00b894;border:1px solid rgba(0,184,148,.4)}.pd-status--completed{background:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.8);border:1px solid hsla(0,0%,100%,.25)}.pd-hero-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;color:#fff;letter-spacing:-.04em;line-height:1.05}.pd-hero-summary{font-size:1rem;color:hsla(0,0%,100%,.82);line-height:1.65;max-width:540px;margin:0}.pd-hero-summary.localized-fade{color:#fff}.pd-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}@media (max-width:640px){.pd-hero{min-height:0;align-items:stretch}.pd-hero-img{object-position:center top}.pd-hero-overlay{position:relative;inset:auto;padding:clamp(64px,14vw,96px) 0 clamp(48px,10vw,72px)}.pd-hero-content,.pd-hero-overlay{align-items:center;justify-content:center}.pd-hero-content{width:100%;max-width:640px;padding:0 clamp(20px,6vw,32px);text-align:center;gap:12px}.pd-hero-logo{margin:0 auto 2px}.pd-hero-summary,.pd-hero-title{text-align:center;overflow-wrap:break-word}.pd-hero-summary{max-width:40ch;margin:0 auto}.pd-hero-actions{width:100%;justify-content:center;margin-top:2px}.pd-hero-actions .pd-cta-primary{width:min(100%,320px);justify-content:center}}.pd-hero--has-gallery{min-height:max(680px,85vh)}.pd-hero--has-gallery .pd-hero-overlay,.pd-hero-inner{align-items:center}.pd-hero-inner{width:100%;max-width:1920px;margin:0 auto;align-self:stretch;display:grid;grid-template-columns:clamp(280px,26vw,520px) 1fr;grid-gap:clamp(48px,5vw,100px);gap:clamp(48px,5vw,100px);padding:clamp(28px,5vw,64px)}.pd-hero-inner .pd-hero-content{padding:0;max-width:none;min-width:0;align-self:center}.pd-hero-right{display:flex;align-items:center;justify-content:flex-end;min-width:0}.pd-hero-carousel{position:relative;width:100%;max-width:clamp(760px,62vw,1400px);height:clamp(420px,34vw,560px);border-radius:18px;overflow:hidden;background:transparent}.pd-hc-slide{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center}@keyframes pd-slide-in{0%{opacity:0;transform:scale(.985) translateX(12px);filter:blur(3px)}to{opacity:1;transform:scale(1) translateX(0);filter:blur(0)}}.pd-hc-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block;border-radius:12px;animation:pd-slide-in .6s cubic-bezier(.22,1,.36,1) both}.pd-hc-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.38);border:none;color:#fff;font-size:1.8rem;cursor:pointer;width:40px;height:40px;padding:0;border-radius:8px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .18s,transform .18s}.pd-hc-btn:hover{background:rgba(0,0,0,.62);transform:translateY(-50%) scale(1.06)}.pd-hc-btn--prev{left:8px}.pd-hc-btn--next{right:8px}.pd-hc-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2}.pd-hc-dot{width:7px;height:7px;border-radius:50%;border:none;background:hsla(0,0%,100%,.55);box-shadow:0 0 3px rgba(0,0,0,.4);cursor:pointer;padding:0;transition:background .2s,opacity .2s,width .2s}.pd-hc-dot--active{background:#fff;box-shadow:0 0 4px rgba(0,0,0,.5)}@media (prefers-reduced-motion:reduce){.pd-hc-img{animation:none}.pd-hc-btn{transition:background .15s}.pd-hc-dot{transition:none}}@media (max-width:1100px){.pd-hero-inner{grid-template-columns:1fr;padding:clamp(40px,8vw,64px) clamp(20px,5vw,40px) clamp(28px,5vw,48px)}.pd-hero-right{justify-content:center}.pd-hero-carousel{max-width:100%;height:clamp(320px,50vw,420px)}}@media (max-width:640px){.pd-hero-inner{padding:0}.pd-hero-inner .pd-hero-content{width:100%;max-width:640px;padding:0 clamp(20px,6vw,32px);align-items:center;text-align:center;gap:12px}.pd-hero-inner .pd-hero-actions{justify-content:center;width:100%}.pd-hero-right{width:100%;padding:0 clamp(20px,6vw,32px)}}.pd-cta-primary{display:inline-flex;align-items:center;gap:6px;padding:12px 22px;background:#fff;color:#111;border-radius:10px;font-size:.88rem;font-weight:600;font-family:system-ui,sans-serif;letter-spacing:-.01em;transition:background .18s,transform .18s}.pd-cta-primary:hover{background:#f0f0f0;transform:translateY(-1px)}.pd-main{max-width:960px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(20px,5vw,48px);display:flex;flex-direction:column;gap:52px}.pd-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:16px;gap:16px}.pd-metric-card{background:#f8f8f8;border:1px solid #eee;border-radius:14px;padding:22px 20px;display:flex;flex-direction:column;gap:5px}.pd-metric-value{font-size:1.9rem;font-weight:800;color:#111;font-family:system-ui,sans-serif;letter-spacing:-.05em;line-height:1}.pd-metric-label{font-size:.78rem;color:#888;font-family:system-ui,sans-serif;font-weight:500}.pd-section{display:grid;grid-template-columns:1fr;grid-gap:28px;gap:28px;align-items:center}.pd-section--img-left,.pd-section--img-right{grid-template-columns:1fr 1fr}.pd-section--img-left .pd-section-text{order:2}.pd-section--img-left .pd-section-img-wrap{order:1}.pd-section-heading{font-size:1.35rem;font-weight:700;color:#111;letter-spacing:-.03em;margin-bottom:10px}.pd-section-body{font-size:.95rem;color:#555;line-height:1.72}.pd-section-img-wrap{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#eee}.pd-section-img{object-fit:cover}@media (max-width:640px){.pd-section--img-left,.pd-section--img-right{grid-template-columns:1fr}.pd-section--img-left .pd-section-text{order:1}.pd-section--img-left .pd-section-img-wrap{order:2}}.pd-tech-title{font-size:1.1rem;font-weight:700;color:#111;letter-spacing:-.02em;margin-bottom:14px}.pd-tech-pills{display:flex;flex-wrap:wrap;gap:8px}.pd-tech-pill{font-size:.82rem;padding:6px 14px}.pd-gallery{display:flex;flex-direction:column;gap:14px}.pd-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.pd-gallery-item{position:relative;margin:0;aspect-ratio:4/3;border-radius:14px;overflow:hidden}.pd-footer-cta{display:flex;gap:12px;flex-wrap:wrap;padding-top:20px;border-top:1px solid #eee}.pd-cta-secondary{display:inline-flex;align-items:center;padding:12px 22px;border-radius:10px;border:1px solid #ddd;color:#555;font-size:.88rem;font-weight:500;font-family:system-ui,sans-serif;transition:border-color .18s,color .18s,background .18s}.pd-cta-secondary:hover{border-color:#aaa;color:#111;background:#f7f7f7}@media (max-width:480px){.pd-gallery-grid{grid-template-columns:1fr}.pd-cta-primary,.pd-cta-secondary{width:100%;justify-content:center}}.pd-demo-video-section{margin:32px 0}.pd-demo-video-wrap{display:flex;justify-content:center;line-height:0}.pd-demo-video{display:block;width:auto;max-width:100%;max-height:70vh;height:auto;border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.12)}.pt-root{margin:36px 0}.pt-tablist-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-bottom:28px}.pt-tablist-wrap::-webkit-scrollbar{display:none}.pt-tablist{display:inline-flex;background:#e8e8e8;border-radius:12px;padding:4px;gap:2px;min-width:max-content}.pt-tab{position:relative;padding:9px 22px;background:transparent;border:none;border-radius:9px;cursor:pointer;font-size:.875rem;font-weight:500;color:#555;letter-spacing:.01em;transition:background .18s ease,color .18s ease,box-shadow .18s ease;white-space:nowrap;flex-shrink:0;outline:none}.pt-tab:hover:not(.pt-tab--active){background:rgba(0,0,0,.06);color:#111}.pt-tab:focus-visible{box-shadow:0 0 0 2px #111}.pt-tab--active{background:#111;color:#fff;font-weight:600;box-shadow:0 2px 6px rgba(0,0,0,.22)}.pt-panel{min-height:80px}.pt-content{animation:pt-fade-in .18s ease}.pt-content--tech{padding:4px 0}.pt-empty{color:#9ca3af;font-size:.9rem;margin:0}@keyframes pt-fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.pt-tablist{background:hsla(0,0%,100%,.1)}.pt-tab--active{background:#f9fafb;color:#111;box-shadow:0 2px 6px rgba(0,0,0,.4)}.pt-tab:hover:not(.pt-tab--active){background:hsla(0,0%,100%,.06);color:#d1d5db}}@media (max-width:480px){.pt-tab{padding:8px 16px;font-size:.84rem}}a,article,body,button,div,figure,footer,h1,h2,h3,h4,h5,h6,header,html,img,li,p,section,span,time{transition:background-color .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease,opacity .28s ease}html.dark{background:#09090b;color:#f1f5f9}html.dark p{color:#a1a1aa}html.dark a{color:inherit}html.dark .pd-cta-primary,html.dark .pd-hero-actions a.pd-cta-primary,html.dark a.pd-cta-primary,html.dark body .pd-cta-primary,html.dark body .pd-hero-actions a.pd-cta-primary,html.dark body a.pd-cta-primary{color:#111!important}html.dark .pd-cta-primary svg,html.dark a.pd-cta-primary svg,html.dark body .pd-cta-primary svg,html.dark body .pd-hero-actions a.pd-cta-primary svg,html.dark body a.pd-cta-primary svg{color:#111!important;stroke:currentColor!important}html.dark .rich-content{color:#e2e8f0}html.dark .rich-content h1,html.dark .rich-content h2,html.dark .rich-content h3,html.dark .rich-content h4{color:#f1f5f9}html.dark .rich-content a{color:#2dd4bf}html.dark .rich-content a:hover{color:#5eead4}html.dark .tag{background:#27272a;color:#d4d4d8}html.dark .tag:hover{background:#3f3f46}html.dark .skill-card{border-color:#3f3f46;background:transparent}html.dark .skill-card-title{color:#a1a1aa}html.dark .skill-chip{background:#27272a;color:#d4d4d8;border-color:#3f3f46}html.dark .skill-chip-icon svg[fill="#181717"]{filter:invert(1)}html.dark .social-link:hover{color:#2dd4bf!important;border-color:#0f766e!important;background:rgba(15,118,110,.15)!important}html.dark .intro-about h2{color:#f1f5f9}html.dark :focus-visible{outline-color:#2dd4bf}html.dark .exp-timeline:before{background:#3f3f46}html.dark .exp-dot{background:#09090b}html.dark .exp-card{background:#18181b;border-color:#3f3f46}html.dark .exp-item--left .exp-card{border-right-color:var(--exp-color,#3f3f46)}html.dark .exp-item--right .exp-card{border-left-color:var(--exp-color,#3f3f46)}html.dark .exp-highlights{background:#18181b;border-color:var(--exp-soft-border,hsla(0,0%,100%,.1))}html.dark .exp-card p{color:#e2e8f0}html.dark .exp-highlights li{color:#d4d4d8}html.dark .exp-date{background:var(--exp-color,#2dd4bf);border-color:transparent;color:#fff}html.dark .proj-section-heading{color:#f1f5f9}html.dark .proj-card{background:linear-gradient(135deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,.05) 40%,rgba(9,9,11,.82));border-color:hsla(0,0%,100%,.14);box-shadow:0 4px 24px rgba(0,0,0,.55),inset 0 1px 0 hsla(0,0%,100%,.16),inset 1px 0 0 hsla(0,0%,100%,.08);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}html.dark .proj-card:before{display:block;background:linear-gradient(125deg,hsla(0,0%,100%,.13),hsla(0,0%,100%,.05) 28%,transparent 55%)}html.dark .proj-card:hover{box-shadow:0 20px 52px rgba(0,0,0,.65),inset 0 1px 0 hsla(0,0%,100%,.24),inset 1px 0 0 hsla(0,0%,100%,.12);border-color:hsla(0,0%,100%,.22)}html.dark .proj-card-title{color:#f1f5f9}html.dark .proj-card-desc{color:#a1a1aa}html.dark .btn-detail{background:#f1f5f9;color:#09090b}html.dark .btn-detail:hover{background:#e2e8f0}html.dark .btn-visit{background:#2563eb;color:#fff;border-color:transparent}html.dark .btn-visit:hover{background:#1d4ed8}@media (max-width:680px){html.dark .exp-card{border-left-color:var(--exp-color,#3f3f46);border-right-color:#3f3f46}}html.dark .pd-root{background:#09090b}html.dark .pd-topbar{background:rgba(9,9,11,.92);border-bottom-color:#27272a}html.dark .pd-back{color:#d4d4d8}html.dark .pd-back:hover{color:#2dd4bf}html.dark .pd-main{color:#f1f5f9}html.dark .pd-metric-card{background:#18181b;border-color:#27272a}html.dark .pd-metric-value{color:#f1f5f9}html.dark .pd-metric-label{color:#71717a}html.dark .pd-section-heading{color:#f1f5f9}html.dark .pd-section-body{color:#a1a1aa}html.dark .pd-section-img-wrap{background:#27272a}html.dark .pd-tech-title,html.dark .ps-block-title{color:#f1f5f9}html.dark .pd-tech-pill{background:#27272a;color:#d4d4d8}html.dark .pd-footer-cta{border-top-color:#27272a}html.dark .pd-cta-secondary{border-color:#3f3f46;color:#d4d4d8}html.dark .pd-cta-secondary:hover{border-color:#0f766e;color:#2dd4bf;background:rgba(15,118,110,.08)}.global-loader{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease!important}.global-loader--active{opacity:1;pointer-events:auto}.global-loader__backdrop{position:absolute;inset:0;background:hsla(0,0%,100%,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.global-loader__spinner{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;border:3px solid rgba(0,0,0,.08);border-top-color:#0f766e;animation:gl-spin .7s linear infinite}html.dark .global-loader__backdrop{background:rgba(9,9,11,.78)}html.dark .global-loader__spinner{border-color:#2dd4bf hsla(0,0%,100%,.08) hsla(0,0%,100%,.08)}@keyframes gl-spin{to{transform:rotate(1turn)}}html.dark .admin-page{background:#0a0a0a!important;color:#e4e4e7}html.dark .admin-card{background:#141416!important;border-color:hsla(0,0%,100%,.1)!important;color:#e4e4e7!important}html.dark .admin-page h1,html.dark .admin-page h2,html.dark .admin-page h3,html.dark .admin-page h4{color:#f4f4f5!important}html.dark .admin-page label{color:#d4d4d8!important}html.dark .admin-card thead tr{background:#1c1c1e!important;border-color:hsla(0,0%,100%,.08)!important}html.dark .admin-card th{color:#a1a1aa!important}html.dark .admin-card tbody tr{border-color:hsla(0,0%,100%,.05)!important}html.dark .admin-page input:not([type=color]):not([type=checkbox]):not([type=file]),html.dark .admin-page select,html.dark .admin-page textarea{background:#0f1012!important;color:#e4e4e7!important;border-color:hsla(0,0%,100%,.15)!important}html.dark .admin-page input::placeholder,html.dark .admin-page textarea::placeholder{color:hsla(0,0%,100%,.35)!important}html.dark .admin-page input[type=file]{color:#a1a1aa!important}html.dark .admin-btn-outline,html.dark .admin-page code{background:#1c1c1e!important;color:#e4e4e7!important}html.dark .admin-btn-outline{border-color:hsla(0,0%,100%,.15)!important}html.dark .admin-btn-outline:hover{background:#252528!important}html.dark .proj-action-edit{color:#e4e4e7!important;border-color:hsla(0,0%,100%,.3)!important;transition:color .15s,background .15s,border-color .15s}html.dark .proj-action-edit:hover{color:#111827!important;background:#f9fafb!important;border-color:#f9fafb!important}html.dark .proj-action-delete{color:#ff4d4d!important;border-color:#ff4d4d!important;background:transparent!important;transition:color .15s,background .15s,border-color .15s}html.dark .proj-action-delete:hover{color:#fff!important;background:#dc2626!important;border-color:#dc2626!important}html.dark .admin-card>span{color:#a1a1aa!important}html.dark .admin-page td{color:#d4d4d8!important}