:root{--gray-900:#171717;--gray-600:#4d4d4d;--gray-500:#666;--gray-400:gray;--gray-100:#ebebeb;--gray-50:#fafafa;--white:#fff;--accent:#0072f5;--accent-ink:#0068d6;--focus:#0072f5;--dur:.25s;--ease:cubic-bezier(.22, 1, .36, 1);--ring:#00000014 0px 0px 0px 1px;--ring-light:#ebebeb 0px 0px 0px 1px;--card-shadow:#00000014 0px 0px 0px 1px, #0000000a 0px 2px 2px, #0000000a 0px 8px 8px -8px, #fafafa 0px 0px 0px 1px;--font-sans:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--container:1080px;--section-pad:96px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto;scrollbar-gutter:stable}body{font-family:var(--font-sans);background:var(--white);color:var(--gray-900);font-feature-settings:"liga";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.56;overflow-x:hidden}.site-shell{opacity:0;min-height:100vh;transition:opacity .8s var(--ease), transform .8s var(--ease);will-change:opacity, transform;transform:translateY(20px)}.site-shell--exiting,.site-shell--loading{opacity:0;pointer-events:none;transform:translateY(20px)}.site-shell--completed{opacity:1;transform:translateY(0)}.intro-loader{z-index:999;-webkit-backdrop-filter:blur(16px)saturate(120%);transition:opacity .72s var(--ease), background-color .72s var(--ease), backdrop-filter .72s var(--ease);will-change:opacity, backdrop-filter;background:#fafafab8;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.intro-loader--exiting{opacity:0;-webkit-backdrop-filter:blur()saturate(110%);background:#fafafa33}.intro-loader__content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:18px;padding:24px;display:flex;position:relative}.intro-loader__logo-wrap{place-items:center;display:grid;position:relative}.case-study-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.case-study-modal{background:#fff;border-radius:12px;width:100%;max-width:640px;max-height:85vh;padding:2rem;position:relative;overflow-y:auto}.case-study-close{cursor:pointer;background:0 0;border:none;font-size:1.25rem;position:absolute;top:1rem;right:1rem}.case-study-body h4{margin-top:1.25rem;margin-bottom:.4rem}.intro-loader__logo{opacity:0;width:min(34vw,168px);height:auto;transition:opacity .42s var(--ease) .2s, transform .42s var(--ease) .2s;will-change:opacity, transform;transform:scale(.92)}.intro-loader--loading .intro-loader__logo{opacity:1;transform:scale(1)}.intro-loader--exiting .intro-loader__logo{opacity:0;transition:opacity .82s var(--ease), transform .82s var(--ease);transform:scale(.96)}.intro-loader__indicator{justify-content:center;align-items:center;min-height:14px;display:flex}.intro-loader__track{opacity:0;width:84px;height:2px;transition:opacity .28s var(--ease) .7s, transform .28s var(--ease) .7s;background:#1717171f;border-radius:999px;display:block;position:relative;overflow:hidden;transform:translateY(4px)}.intro-loader__track:after{content:"";border-radius:inherit;background:linear-gradient(90deg,#0072f500,#0072f5f2,#0072f500);width:34px;animation:1.15s cubic-bezier(.22,1,.36,1) infinite intro-track;position:absolute;inset:0 auto 0 0;transform:translate(-140%)}.intro-loader--loading .intro-loader__track{opacity:1;transform:translateY(0)}.intro-loader--exiting .intro-loader__track{opacity:0;transition:opacity .32s var(--ease), transform .32s var(--ease);transform:translateY(6px)}.intro-loader--reduced .intro-loader__logo,.intro-loader--reduced .intro-loader__track,.intro-loader--reduced .intro-loader__track:after{animation:none!important}@keyframes intro-track{0%{transform:translate(-140%)}to{transform:translate(320%)}}::selection{background:var(--gray-900);color:var(--white)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}img{max-width:100%;display:block}.skip-link{z-index:100;background:var(--gray-900);color:var(--white);border-radius:6px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:top .15s;position:absolute;top:-100px;left:16px}.skip-link:focus-visible{top:12px}.bg-decor{z-index:-1;pointer-events:none;background-image:radial-gradient(600px 420px at 12% 2%,#0072f512,#0000 60%),radial-gradient(700px 500px at 88% 100%,#0072f50f,#0000 60%),radial-gradient(circle,#17171714 1px,#0000 1px);background-repeat:no-repeat,no-repeat,repeat;background-size:auto,auto,24px 24px;position:fixed;inset:0}@media (width<=768px){.bg-decor{background-image:radial-gradient(480px 320px at 10% 0,#0072f50f,#0000 60%),radial-gradient(480px 360px at 90% 100%,#0072f50d,#0000 60%),radial-gradient(circle,#17171714 1px,#0000 1px);background-size:auto,auto,24px 24px}}.navbar{display:none}.app-layout{grid-template-columns:220px minmax(0,720px);justify-content:center;align-items:start;max-width:940px;margin:0 auto;display:grid}.app-sidebar{border-right:1px solid var(--gray-100);height:100vh;padding:24px 22px 20px 10px;position:sticky;top:0}.sidebar-brand{border:1px solid var(--gray-100);width:42px;height:42px;color:var(--gray-900);letter-spacing:-.08em;border-radius:12px;justify-content:center;align-items:center;margin:0 0 30px 8px;font-weight:800;text-decoration:none;display:inline-flex;position:relative}.sidebar-brand i{background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;bottom:4px;right:3px}.sidebar-nav,.sidebar-links{gap:5px;display:grid}.sidebar-links{border-top:1px solid var(--gray-100);margin-top:26px;padding-top:22px}.sidebar-nav a,.sidebar-links a{color:var(--gray-600);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:8px;align-items:center;gap:14px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex}.sidebar-nav a:hover,.sidebar-links a:hover{background:var(--gray-50);color:var(--gray-900)}.sidebar-nav button{width:100%;color:var(--gray-600);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:14px;padding:10px 12px;font-size:14px;display:flex}.sidebar-nav button:hover,.sidebar-nav button.is-active{background:var(--gray-50);color:var(--gray-900)}.sidebar-nav b,.sidebar-links b{width:20px;color:var(--accent-ink);place-items:center;font-size:18px;font-weight:500;display:grid}.sidebar-foot{color:var(--gray-400);font-family:var(--font-mono);font-size:11px;line-height:1.6;position:absolute;bottom:24px}.main-feed{border-right:1px solid var(--gray-100);border-left:1px solid var(--gray-100);background:#ffffff8a;min-width:0}.feed-header{z-index:30;border-bottom:1px solid var(--gray-100);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fcfcfde6;justify-content:space-between;align-items:center;height:58px;padding:0 22px;display:flex;position:sticky;top:0}.feed-header strong{font-size:16px}.feed-header span{color:var(--gray-500);font-size:12px}.language-switcher{border:1px solid var(--gray-100);background:var(--white);border-radius:7px;gap:2px;margin-left:auto;padding:3px;display:inline-flex}.language-switcher button{min-width:30px;color:var(--gray-500);font:600 10px var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 6px}.language-switcher button.is-active{background:var(--gray-900);color:var(--white)}.main-feed .hero{padding:34px 22px 26px}.main-feed .profile-layout{grid-template-columns:84px minmax(0,1fr);gap:18px}.main-feed .profile-avatar-wrap,.main-feed .profile-avatar{width:84px;height:84px}.main-feed .profile-avatar{border-width:4px}.main-feed .profile-status{border-width:3px;width:15px;height:15px;bottom:4px;right:0}.main-feed .profile-copy h1{font-size:32px}.main-feed .profile-copy .hero-sub{font-size:15px}.main-feed .profile-stats{margin-top:30px}.profile-tabs{z-index:25;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fcfcfdeb;display:flex;position:sticky;top:58px}.profile-tabs button{color:var(--gray-500);font:inherit;text-align:center;cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:15px 8px;font-size:13px}.profile-tabs button:hover,.profile-tabs button.is-active{color:var(--gray-900)}.profile-tabs button.is-active{border-bottom-color:var(--accent);font-weight:600}.main-feed section{border-top:0;padding:36px 22px}.main-feed .section-num{display:none}.main-feed .section-title{font-size:30px}.main-feed .section-sub{font-size:14px}.main-feed .about-grid{display:block}.main-feed .about-facts{margin-top:26px}.main-feed #proyek .container,.main-feed #skill .container,.main-feed #kontak .container{padding:0}.projects-grid{flex-direction:column;gap:0;display:flex}.project-card{box-shadow:none;background:0 0;border-width:1px 0;border-radius:0;grid-template-columns:minmax(0,1fr) 210px;display:grid}.context-card{border:1px solid var(--gray-100);background:#fff;border-radius:12px;margin-bottom:16px;padding:18px}.context-label{color:var(--gray-500);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:600}.context-summary,.context-card>p:not(.context-label),.context-card h2{color:var(--gray-600);font-size:13px;line-height:1.6}.context-card h2{color:var(--gray-900);margin-bottom:8px;font-size:15px;line-height:1.35}.context-more{color:var(--accent-ink);margin-top:14px;font-size:13px;text-decoration:none;display:inline-block}.context-chips{flex-wrap:wrap;gap:6px;display:flex}.context-chips span{border:1px solid var(--gray-100);color:var(--gray-600);border-radius:6px;padding:5px 8px;font-size:11px}.context-connect a,.context-connect span{color:var(--gray-600);margin-top:7px;font-size:13px;text-decoration:none;display:block}.mobile-bottom-nav{display:none}@media (width<=1050px){.app-layout{grid-template-columns:72px minmax(0,720px);max-width:792px}.app-sidebar{padding-right:12px}.sidebar-brand{margin-left:4px}.sidebar-nav a,.sidebar-links a{justify-content:center;padding:10px}.sidebar-nav a span,.sidebar-links a span,.sidebar-foot{display:none}}@media (width<=700px){.app-layout{display:block}.app-sidebar{display:none}.main-feed{border:0;padding-bottom:66px}.feed-header{top:0}.profile-tabs{justify-content:flex-start;top:58px;overflow-x:auto}.profile-tabs button{min-width:100px}.main-feed .hero{padding:28px 20px 22px}.main-feed .profile-layout{grid-template-columns:1fr;gap:16px}.main-feed .profile-avatar-wrap,.main-feed .profile-avatar{width:76px;height:76px}.main-feed .profile-copy h1{font-size:30px}.main-feed section{padding:32px 20px}.project-card{display:block}.project-thumb{margin:0 22px 22px}.mobile-bottom-nav{z-index:60;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--gray-100);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav button{color:var(--gray-500);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;gap:2px;font-size:20px;display:grid}.mobile-bottom-nav button.is-active{color:var(--accent)}.mobile-bottom-nav span{font-size:10px}}@media (width<=1050px){.app-layout{grid-template-columns:72px minmax(0,720px);max-width:792px}}@media (width<=700px){.app-layout,.project-card{display:block}.project-thumb{margin:0 22px 22px}}:root{--gray-900:#101828;--gray-600:#475467;--gray-500:#667085;--gray-400:#98a2b3;--gray-100:#eaecf0;--gray-50:#f8fafc;--accent:#155eef;--accent-ink:#155eef;--container:1120px}body{color:var(--gray-900);background:#fcfcfd}.bg-decor{background-image:radial-gradient(520px 360px at 90% 0,#155eef12,#0000 65%)}.navbar{background:#fcfcfdd1;border-bottom:1px solid #0000}.navbar-scrolled{border-bottom-color:var(--gray-100);box-shadow:none}.navbar-inner{height:72px}.logo{letter-spacing:-.04em;font-size:16px}.nav-links{gap:24px}.nav-links a{color:var(--gray-500)}.nav-cta{background:var(--gray-900);border-radius:8px;padding:10px 14px}.profile-avatar{transform-origin:50% 95%;object-fit:cover;object-position:center top;width:148px;height:148px;box-shadow:0 0 0 1px var(--gray-100), 0 14px 28px #1018281a;border:6px solid #fff;border-radius:50%;transform:scale(1.4);transform-origin:top!important;width:100%!important;height:100%!important;box-shadow:none!important;border:0!important;transform:translateY(-30%)scale(1.4)!important}.profile-name-row{align-items:center;gap:14px;display:flex}.mobile-profile-cv{display:none}.hero-actions{margin-top:24px}.btn{border-radius:8px;padding:11px 16px}.btn-primary{background:var(--accent)}.btn-primary:hover{background:#004eea}.profile-location{color:var(--gray-500);margin-top:14px;font-size:13px}section{padding:88px 0}.section-title{letter-spacing:-.055em;font-size:clamp(34px,4vw,48px)}.section-num{top:26px}.about-grid{gap:80px}.about-grid p{color:var(--gray-600);line-height:1.8}.about-facts{border-top:1px solid var(--gray-100)}.about-facts li{border-bottom-color:var(--gray-100);padding:16px 0}.about-facts .k{color:var(--gray-500)}.projects-grid{gap:20px}.project-thumb{border-radius:0}.card-body{padding:22px}.card-body h3{letter-spacing:-.025em;font-size:20px}.card-body p{color:var(--gray-600)}.pill,.filter-chip{border-radius:6px}.pill{color:var(--gray-600);background:var(--gray-50);border-color:var(--gray-100)}.filter-row{margin:28px 0}.filter-chip{border-color:var(--gray-100);color:var(--gray-500);background:#fff}.filter-chip--active{color:#fff;background:var(--gray-900);border-color:var(--gray-900)}.filter-chip__bg{background:var(--gray-900);border-radius:6px}.skills-grid{gap:20px}.skills-group h3{margin-bottom:18px;font-size:16px}.skills-list{gap:8px}.contact{padding-bottom:104px}.contact-email{letter-spacing:-.05em;font-size:clamp(28px,5vw,52px)}.app-layout{width:min(100%,1200px);grid-template-columns:minmax(200px,260px) minmax(0,900px)!important;max-width:1200px!important}.main-feed{width:100%}.project-feed{border-top:1px solid var(--gray-100);border-top:1px solid var(--gray-100);display:block}.project-post{border-bottom:1px solid var(--gray-100);grid-template-columns:minmax(0,1fr) 360px;gap:32px;padding:24px 22px;display:grid}.post-main{min-width:0}.post-author{align-items:center;gap:10px;margin-bottom:16px;display:flex}.post-author img{object-fit:cover;object-position:center top;border-radius:50%;width:38px;height:38px}.post-author div{gap:1px;display:grid}.post-author strong{font-size:14px}.post-author span{color:var(--gray-500);font-size:12px}.project-post h3{letter-spacing:-.025em;max-width:420px;margin-bottom:8px;font-size:21px;line-height:1.25}.post-excerpt{max-width:470px;color:var(--gray-600);margin-bottom:16px;font-size:14px;line-height:1.6}.post-preview{align-self:center;min-width:0}.post-preview .project-thumb{border:1px solid var(--gray-100);border-radius:10px;height:240px;margin:0;overflow:hidden}.project-image-gallery{background:#f8fafc;height:100%;position:relative}.post-preview .project-image-gallery{border:1px solid var(--gray-100);border-radius:10px;height:240px;overflow:hidden}.project-image-gallery img{object-fit:contain;background:#f8fafc;width:100%;min-width:0;height:100%;min-height:0}.gallery-image{animation:gallery-fade .24s var(--ease)}@keyframes gallery-fade{0%{opacity:.35}to{opacity:1}}.project-image-gallery.is-single{display:block}.gallery-control{width:28px;height:28px;color:var(--gray-900);cursor:pointer;background:#ffffffe6;border:1px solid #1018281a;border-radius:50%;place-items:center;font-size:24px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-control:hover{background:#fff;box-shadow:0 2px 8px #10182826}.gallery-control--prev{left:8px}.gallery-control--next{right:8px}.gallery-dots{justify-content:center;gap:5px;display:flex;position:absolute;bottom:8px;left:0;right:0}.gallery-dots button{cursor:pointer;background:#10182840;border:0;border-radius:50%;width:6px;height:6px;padding:0}.gallery-dots button.is-active{background:var(--accent);transform:scale(1.35)}.gallery-control:focus-visible,.gallery-dots button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.post-actions{flex-wrap:wrap;gap:16px;margin-top:18px;display:flex}.post-actions button,.post-actions a{color:var(--gray-500);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:none}.post-actions button:hover,.post-actions a:hover{color:var(--accent-ink)}.project-post--no-share .post-actions button:last-child{display:none}.post-actions span{vertical-align:-1px;margin-right:4px;font-size:16px}.main-feed #proyek .section-head-wrap{margin-bottom:0}.main-feed #proyek .section-title{letter-spacing:-.035em;margin-bottom:2px;font-size:25px}.main-feed #proyek .section-sub{font-size:13px}.main-feed #proyek .filter-row{gap:6px;margin:14px 0 0;padding-bottom:12px}.main-feed #proyek .filter-chip{min-height:34px;padding:0 12px;font-size:12px}.main-feed #tentang,.main-feed #skill,.main-feed #kontak{border-bottom:1px solid var(--gray-100)}.main-feed #kontak .contact-email{font-size:30px}.contact-email{color:var(--gray-600);margin-bottom:18px}.contact-social{border-bottom:1px solid var(--gray-100);color:var(--gray-900);grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:14px 0;text-decoration:none;display:grid}.contact-social svg{width:20px;height:20px;color:var(--accent-ink)}.contact-social span{font-size:14px;font-weight:600}.contact-social small{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.contact-social:hover span,.contact-social:hover small{color:var(--accent-ink)}.skills-grid{display:block}.skills-group{background:0 0;border-width:1px 0;border-radius:0;padding:18px 0}.skills-group+.skills-group{border-top:0}:root{--border-strong:#d0d5dd}.app-sidebar{border-right-color:var(--border-strong)}.main-feed{border-left-color:var(--border-strong);border-right-color:var(--border-strong)}.feed-header,.profile-tabs,.project-feed,.project-post{border-color:var(--border-strong)}.project-post+.project-post,.sidebar-links{border-top-color:var(--border-strong)}.main-feed #tentang,.main-feed #skill,.main-feed #kontak{border-bottom-color:var(--border-strong)}.filter-chip,.contact-social,.skills-group{border-color:var(--border-strong)}.skill-pill{align-items:center;gap:8px;padding:6px 10px 6px 6px;display:inline-flex}.skill-mark{color:#155eef;width:24px;height:24px;font-family:var(--font-mono);letter-spacing:-.06em;background:#eaf2ff;border-radius:6px;place-items:center;font-size:10px;font-weight:700;display:inline-grid}.skill-mark--python,.skill-mark--pandas{color:#1769aa;background:#e8f1ff}.skill-mark--javascript,.skill-mark--excel{color:#8a6500;background:#fff4c2}.skill-mark--html{color:#d84a16;background:#fff0e8}.skill-mark--sql,.skill-mark--obsidian{color:#6941c6;background:#f0eaff}.skill-mark--bash,.skill-mark--git{color:#087443;background:#e8f8ef}.skill-mark--react{color:#087ea4;background:#e7faff}.skill-mark--vite{color:#7f56d9;background:#f2eaff}.skill-mark--vscode{color:#007acc;background:#e8f3ff}.sidebar-nav button,.sidebar-links a,.profile-tabs button,.mobile-bottom-nav button,.contact-social,.post-actions button,.post-actions a,.filter-chip,.btn,.nav-toggle{transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease)}.sidebar-nav button:focus-visible,.sidebar-links a:focus-visible,.profile-tabs button:focus-visible,.mobile-bottom-nav button:focus-visible,.contact-social:focus-visible,.post-actions button:focus-visible,.post-actions a:focus-visible,.filter-chip:focus-visible,.btn:focus-visible,.nav-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.profile-tabs button.is-active{box-shadow:inset 0 -2px var(--accent)}.filter-chip--active{border-color:var(--gray-900);box-shadow:none;background:var(--gray-900)!important;color:#fff!important}.filter-chip--active:hover{background:var(--gray-900)!important;color:#fff!important}.contact-social{border-radius:8px}@media (hover:hover){.profile-tabs button:hover,.contact-social:hover{background:var(--gray-50)}.post-actions button:hover,.post-actions a:hover{transform:translateY(-1px)}.filter-chip:hover:not(.filter-chip--active){border-color:var(--accent);color:var(--accent-ink);background:#f5f8ff}.btn:hover,.nav-toggle:hover{transform:translateY(-1px)}}@media (width<=1050px){.app-layout{grid-template-columns:72px minmax(0,720px)!important;max-width:792px!important}.sidebar-nav button span{display:none}.sidebar-nav button{justify-content:center;padding:10px}}@media (width<=700px){.app-layout{display:block!important}.project-post{padding:22px 20px;display:block}.post-preview{margin-top:18px}.post-preview .project-thumb{height:240px}.project-image-gallery{grid-template-columns:1fr 1fr}.post-preview .project-image-gallery{height:240px}}.footer-inner{min-height:84px}.case-study-modal{border:1px solid var(--gray-100);box-shadow:0 20px 60px #10182829}@media (width<=700px){.container{padding-left:20px;padding-right:20px}.navbar-inner{height:64px}.hero{padding:64px 0 32px}.profile-layout{grid-template-columns:1fr;gap:22px}.profile-avatar-wrap,.profile-avatar{width:104px;height:104px}.profile-avatar{border-width:4px}.profile-status{border-width:3px;width:16px;height:16px;bottom:5px;right:2px}.profile-copy .hero-sub{font-size:16px}.profile-name-row{gap:10px}.mobile-profile-cv{border:1px solid var(--gray-100);color:var(--gray-600);white-space:nowrap;border-radius:7px;align-items:center;gap:4px;padding:7px 10px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.mobile-profile-cv:hover{border-color:var(--accent);color:var(--accent-ink);background:#f5f8ff}.profile-links{flex-wrap:wrap;gap:12px 16px}.profile-stats{grid-template-columns:repeat(2,1fr);margin-top:48px}.profile-stats div{padding:15px 0}.profile-stats div:nth-child(odd){border-left:0;padding-left:0}.profile-stats div:nth-child(2n){padding-left:16px}section{padding:64px 0}.section-title{font-size:36px}.about-grid{gap:42px}.projects-grid{grid-template-columns:1fr}.contact-email{word-break:break-word}}.container{max-width:var(--container);margin:0 auto;padding:0 24px}section{padding:var(--section-pad) 0;position:relative}#proyek,#skill,#kontak{border-top:1px solid var(--gray-100)}.mono-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);font-size:13px;font-weight:500}.section-title{letter-spacing:-1.6px;margin-bottom:12px;font-size:clamp(40px,5vw,56px);font-weight:700;line-height:1.1}.section-sub{color:var(--gray-600);max-width:560px;font-size:16px}.section-head{margin-top:8px}.section-num{font-family:var(--font-mono);letter-spacing:.06em;color:var(--gray-400);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:20px;font-weight:500;position:absolute;top:28px;right:24px}.reveal{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.navbar{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.navbar-scrolled{box-shadow:var(--ring)}.logo{font-family:var(--font-mono);color:var(--gray-900);font-size:15px;font-weight:500;text-decoration:none}.logo span{color:var(--accent)}.nav-links{align-items:center;gap:28px;list-style:none;display:flex}.nav-links a{color:var(--gray-600);transition:color var(--dur) var(--ease);font-size:14px;font-weight:500;text-decoration:none;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform var(--dur) var(--ease);border-radius:1px;position:absolute;bottom:-3px;left:0;transform:scaleX(0)}.nav-links a:hover,.nav-links a.active{color:var(--gray-900)}.nav-links a.active:after,.nav-links a:hover:after{transform:scaleX(1)}.nav-links a.active{color:var(--accent-ink)}.nav-cta{background:var(--gray-900);transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;color:var(--white)!important}.nav-cta:after{display:none}.nav-cta:hover{background:var(--accent-ink);transform:translateY(-1px)}.nav-toggle{border:1px solid var(--gray-100);cursor:pointer;width:44px;height:44px;color:var(--gray-900);background:0 0;border-radius:6px;font-size:18px;display:none}@media (width<=768px){.nav-toggle{display:block}.nav-links{background:var(--white);box-shadow:var(--card-shadow);flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 16px;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{border-bottom:1px solid var(--gray-100);padding:12px 0;display:block}.nav-links a:after{display:none}.nav-links a.nav-cta{text-align:center;border-bottom:none;margin-top:12px}}.hero{padding-top:128px;padding-bottom:96px}.hero h1{letter-spacing:-3px;margin:16px 0 20px;font-size:clamp(48px,8vw,96px);font-weight:700;line-height:1.02}.hero h1 .accent{color:var(--accent)}.hero h1 .hero-role{color:var(--gray-600);font-weight:500}.hero-sub{color:var(--gray-600);max-width:620px;margin-bottom:36px;font-size:20px;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.btn{transition:all var(--dur) var(--ease);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gray-900);color:var(--white)}.btn-primary:hover{background:#000;transform:translateY(-1px)}.btn-ghost{background:var(--white);color:var(--gray-900);box-shadow:var(--ring)}.btn-ghost:hover{box-shadow:var(--ring-light);transform:translateY(-1px)}.about-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:64px;display:grid}.about-grid p{color:var(--gray-600);margin-bottom:16px;font-size:17px}.about-facts{list-style:none}.about-facts li{border-bottom:1px solid var(--gray-100);justify-content:space-between;gap:16px;padding:14px 0;font-size:15px;display:flex}.about-facts .k{color:var(--gray-500);font-family:var(--font-mono);text-transform:uppercase;font-size:13px}.about-facts .v{color:var(--gray-900);text-align:right;font-weight:500}@media (width<=768px){.about-grid{grid-template-columns:1fr;gap:40px}}.projects-grid{grid-template-columns:1fr 1fr;gap:40px 24px;margin-top:40px;display:grid}.project-card{box-shadow:var(--card-shadow);color:inherit;transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:10px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.project-thumb{aspect-ratio:16/10;border-bottom:1px solid var(--gray-100);position:relative;overflow:hidden}.project-thumb svg{width:100%;height:100%;transition:transform .5s var(--ease);display:block}.project-card:hover .project-thumb svg{transform:scale(1.04)}.card-category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--accent-ink);font-size:12px;font-weight:500}.card-meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.card-year{font-family:var(--font-mono);color:var(--gray-500);font-size:12px}.card-body{flex-direction:column;flex:1;gap:10px;padding:20px 24px 24px;display:flex}.filter-row{flex-wrap:wrap;gap:8px;margin-top:32px;display:flex}.filter-chip{background:var(--gray-50);min-height:44px;box-shadow:var(--ring-light);color:var(--gray-600);font-family:var(--font-mono);cursor:pointer;transition:color var(--dur) var(--ease);border:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 18px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.filter-chip:hover{color:var(--gray-900)}.filter-chip--active{color:var(--white)}.filter-chip__bg{background:var(--gray-900);z-index:0;border-radius:9999px;position:absolute;inset:0}.filter-chip__text{z-index:1;position:relative}.project-card h3{letter-spacing:-.6px;font-size:22px;font-weight:700}.project-card p{color:var(--gray-600);flex:1;font-size:15px}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.pill{font-size:12px;font-weight:500;font-family:var(--font-mono);background:var(--gray-50);color:var(--gray-600);box-shadow:var(--ring-light);border-radius:9999px;padding:3px 10px}.project-link{appearance:none;cursor:pointer;color:var(--accent-ink);transition:color var(--dur) var(--ease), background-size var(--dur) var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0% 1.5px no-repeat;border:none;align-self:flex-start;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none}.project-link:hover{color:var(--gray-900);background-size:100% 1.5px}.project-link--case-study{text-align:left;padding:0}.project-actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.project-link--primary{background-image:none;background-color:var(--accent-ink);color:var(--white);transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:8px;padding:8px 16px}.project-link--primary:hover{background-color:var(--gray-900);color:var(--white);background-size:auto}.project-link--ghost{background-image:none;background-color:var(--white);color:var(--accent-ink);box-shadow:var(--ring);transition:color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-radius:8px;padding:8px 16px}.project-link--ghost:hover{color:var(--gray-900);box-shadow:0 0 0 1px #00000029}.project-link--primary:focus-visible,.project-link--ghost:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.thumb-overlay{opacity:0;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);background:linear-gradient(#0000,#0a0a0c59 40%,#0a0a0cc7);flex-direction:column;justify-content:flex-end;gap:4px;padding:16px 20px;display:flex;position:absolute;inset:0;transform:translateY(8px)}.project-card:hover .thumb-overlay,.project-card:focus-visible .thumb-overlay{opacity:1;transform:translateY(0)}.thumb-overlay .overlay-title{letter-spacing:-.4px;color:var(--white);font-size:18px;font-weight:700}.thumb-overlay .overlay-meta{font-family:var(--font-mono);color:#ffffffd9;font-size:12px}.thumb-overlay .overlay-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.thumb-overlay .overlay-tags span{font-family:var(--font-mono);color:var(--white);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff2e;border-radius:9999px;padding:2px 10px;font-size:11px;font-weight:500}.skills-grid{grid-template-columns:1fr 1fr;gap:64px;margin-top:40px;display:grid}.skills-group h3{font-size:15px;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;color:var(--gray-500);margin-bottom:16px}.skills-list{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.skills-list .pill{font-family:var(--font-sans);color:var(--gray-900);background:var(--white);padding:6px 14px;font-size:14px}@media (width<=768px){.skills-grid{grid-template-columns:1fr;gap:40px}}.contact{text-align:center}.contact .section-title{letter-spacing:-2px;font-size:clamp(40px,6vw,64px)}.contact .section-sub{margin:0 auto}.contact-email{letter-spacing:-.6px;color:var(--accent-ink);background-image:linear-gradient(var(--accent), var(--accent));transition:background-size var(--dur) var(--ease), color var(--dur) var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;margin:20px 0 28px;font-size:24px;font-weight:500;text-decoration:none;display:inline-block}.contact-email:hover{color:var(--gray-900);background-size:100% 2px}.social-links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.footer{border-top:1px solid var(--gray-100);padding:32px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-inner p{font-family:var(--font-mono);color:var(--gray-500);font-size:12px}.footer-inner a{color:var(--gray-500);transition:color var(--dur) var(--ease);font-size:13px;font-weight:500;text-decoration:none}.footer-inner a:hover{color:var(--accent-ink)}.footer-arrow{transition:transform var(--dur) var(--ease);display:inline-block}.footer-inner a:hover .footer-arrow{transform:translateY(-3px)}.marquee{border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);padding:18px 0;overflow:hidden}.scroll-progress{z-index:60;background:var(--accent);transform-origin:0;height:3px;position:fixed;top:0;left:0;right:0}.marquee-track{width:max-content;animation:24s linear infinite marquee;display:flex}.marquee-track span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);white-space:nowrap;align-items:center;margin-right:40px;font-size:14px;display:inline-flex}.marquee-track em{color:var(--accent);margin-left:40px;font-size:12px;font-style:normal}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}@media (width<=768px){section{padding:72px 0}.hero{padding-top:88px}.projects-grid{grid-template-columns:1fr}.section-num{font-size:16px;top:20px}.hero h1{letter-spacing:-1.6px}@media (width<=480px){.hero h1{letter-spacing:-1.44px;font-size:36px}}.contact .section-title{letter-spacing:-1.28px;font-size:32px}.contact-email{font-size:19px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;transform:none!important}.reveal{opacity:1!important;transform:none!important}.marquee-track,.gallery-image{animation:none}}@media (width<=1050px){.app-layout{grid-template-columns:72px minmax(0,720px);max-width:792px}}@media (width<=700px){.app-layout,.project-card{display:block}.project-thumb{margin:0 22px 22px}.bg-decor{animation:none}.feed-header,.profile-tabs,.mobile-bottom-nav{-webkit-backdrop-filter:none;background:#fffffff5}}.container{padding-left:28px;padding-right:28px}.hero{padding:96px 0 48px}.profile-layout{grid-template-columns:148px minmax(0,680px);align-items:center;gap:32px;display:grid}.profile-avatar-wrap{width:148px;height:148px;position:relative}.profile-avatar-clip{width:100%;height:100%;box-shadow:0 0 0 1px var(--gray-100), 0 14px 28px #1018281a;border:6px solid #fff;border-radius:50%;overflow:hidden}.profile-avatar{object-fit:cover;object-position:center top;width:148px;height:148px;box-shadow:0 0 0 1px var(--gray-100), 0 14px 28px #1018281a;border:6px solid #fff;border-radius:50%}.profile-status{background:#12b76a;border:4px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;bottom:12px;right:8px}.profile-copy{min-width:0}.eyebrow{color:var(--accent-ink);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.profile-copy h1{letter-spacing:-.06em;margin:8px 0;font-size:clamp(42px,6vw,68px);line-height:1}.profile-copy .hero-sub{max-width:620px;color:var(--gray-600);margin:0;font-size:18px;line-height:1.55}.profile-stats{border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);grid-template-columns:repeat(4,1fr);margin-top:72px;display:grid}.profile-stats div{flex-direction:column;gap:2px;padding:18px 0;display:flex}.profile-stats div+div{border-left:1px solid var(--gray-100);padding-left:24px}.profile-stats strong{letter-spacing:-.04em;font-size:24px}.profile-stats span{color:var(--gray-500);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.profile-links{color:var(--gray-500);align-items:center;gap:18px;margin-top:20px;font-size:14px;display:flex}.profile-links a{color:var(--gray-600);border-bottom:1px solid var(--gray-100);text-decoration:none}.profile-links a:hover{color:var(--accent-ink);border-color:var(--accent-ink)}.project-card{border:1px solid var(--gray-100);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 3px 10px #10182808}.project-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #10182814}.skills-group{border:1px solid var(--gray-100);background:#fff;border-radius:12px;padding:24px}.footer{border-top:1px solid var(--gray-100);background:#fff}.app-layout{grid-template-columns:220px minmax(0,720px);max-width:940px}.project-card{box-shadow:none;background:0 0;border-width:1px 0;border-radius:0;grid-template-columns:minmax(0,1fr) 210px;display:grid;overflow:visible}.project-card+.project-card{border-top:0}.project-thumb{border-radius:10px;grid-area:1/2;align-self:center;margin:22px 22px 22px 0}.project-card .card-body{grid-area:1/1;min-width:0}.project-card:hover{box-shadow:none;background:#f8fafca6;transform:none}@media (width<=768px){.container{padding-left:20px;padding-right:20px}.hero{padding:64px 0 32px}.profile-layout{grid-template-columns:1fr;gap:22px}.profile-avatar-wrap,.profile-avatar{width:104px;height:104px}.profile-avatar{border-width:4px}.profile-status{border-width:3px;width:16px;height:16px;bottom:5px;right:2px}.profile-copy .hero-sub{font-size:16px}.profile-links{flex-wrap:wrap;gap:12px 16px}.profile-stats{grid-template-columns:repeat(2,1fr);margin-top:48px}.profile-stats div{padding:15px 0}.profile-stats div:nth-child(odd){border-left:0;padding-left:0}.profile-stats div:nth-child(2n){padding-left:16px}.projects-grid{grid-template-columns:1fr}.app-layout,.project-card{display:block}.project-thumb{margin:0 22px 22px}}.app-layout{grid-template-columns:minmax(200px,260px) minmax(0,900px);width:min(100%,1200px);max-width:1200px}.project-post{grid-template-columns:minmax(0,1fr) minmax(280px,38%);gap:clamp(20px,3vw,32px)}.post-preview .project-thumb,.post-preview .project-image-gallery{aspect-ratio:3/2;height:auto}@media (width<=1050px) and (width>=701px){.app-layout{width:min(100%,1200px);grid-template-columns:minmax(180px,260px) minmax(0,1fr)!important;max-width:1200px!important}}@media (width<=700px){.project-post{display:block}.post-preview .project-thumb,.post-preview .project-image-gallery{aspect-ratio:3/2;height:auto}.feed-header{gap:10px;min-width:0;padding-inline:16px}.feed-header strong,.feed-header>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.feed-header>span{flex:1}.language-switcher{flex:none}.profile-copy h1,.project-post h3,.section-title{overflow-wrap:anywhere}.profile-name-row{flex-wrap:wrap;align-items:flex-start}.post-author{align-items:flex-start}.post-author>div{min-width:0}.post-author span{overflow-wrap:anywhere}.post-actions{row-gap:10px}.case-study-overlay{align-items:flex-start;padding:16px;overflow-y:auto}.case-study-modal{width:100%;max-height:calc(100dvh - 32px);padding:48px 18px 22px}.case-study-close{width:36px;height:36px;top:12px;right:12px}.footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}
