*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--fg:#0a0a0a;--fg-2:#444;--fg-3:#6e6e6e;--border:#e5e5e5;--card-bg:#f5f5f5;--gray-100:#fafafa;--gray-200:#f2f2f2;--gray-300:#e2e2e2;--gray-400:#d8d8d8;--gray-muted:#0000007a;--white-high:#ffffffeb;--white-mid:#ffffff8c;--white-low:#ffffff80;--white-ghost:#ffffff2e;--black-overlay:#000000a6;--accent-red:#ff5f57;--accent-yellow:#febc2e;--accent-green:#28c840;--accent-success:#2a9d5c;--nav-bg:#ffffffeb;--font-display:"Cormorant Garamond Variable", "Cormorant Garamond", serif;--font-body:"Inter Variable", "Inter", sans-serif;--font-mono:"Space Mono", monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:14px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:18px;--radius-full:100px;--z-mock:10;--z-nav:100;--z-modal-bg:200;--z-modal:210;--ease:cubic-bezier(.25, .46, .45, .94);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.15s;--dur-base:.2s;--dur-slow:.35s;--dur-enter:.95s;--nav-h:64px}html{font-size:16px;overflow-x:hidden}html.js{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.container{max-width:1200px;margin:0 auto;padding:0 40px}.btn{font-family:var(--font-body);letter-spacing:.01em;cursor:pointer;transition:background .2s, color .2s, border-color .2s, transform .2s var(--ease);white-space:nowrap;border:2px solid #0000;border-radius:7px;align-items:center;padding:13px 28px;font-size:14px;font-weight:600;display:inline-flex}.btn--dark{background:var(--fg);color:#fff}.btn--dark:hover{background:#2a2a2a;transform:translateY(-1px)}.btn--outline{color:var(--fg);border-color:var(--fg);background:0 0}.btn--outline:hover{background:var(--fg);color:#fff;transform:translateY(-1px)}.nav{height:var(--nav-h);z-index:100;-webkit-backdrop-filter:blur(16px);background:#ffffffeb;border-bottom:1px solid #0000;transition:border-color .3s;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-bottom-color:var(--border)}.nav-inner{grid-template-columns:1fr auto 1fr;align-items:center;max-width:1200px;height:100%;margin:0 auto;padding:0 40px;display:grid}.nav-logo{grid-column:2;align-items:center;display:flex}.nav-logo-img{width:auto;height:22px;display:block}.nav-logo span{letter-spacing:.45em;opacity:.5;margin-top:1px;font-size:9px;display:block}.nav-left{color:var(--fg-2);gap:28px;font-size:13px;font-weight:500;display:flex}.nav-left a{transition:color .2s}.nav-left a:hover,.nav-left a[aria-current=page]{color:var(--fg)}.nav-right{justify-content:flex-end;align-items:center;gap:16px;display:flex}.nav-lang{letter-spacing:.08em;min-width:24px;min-height:24px;color:var(--fg-2);justify-content:center;align-items:center;padding:6px 2px;font-size:12px;font-weight:600;transition:color .2s;display:inline-flex}.nav-lang:hover{color:var(--fg)}.nav-cta{color:var(--fg);white-space:nowrap;background:#ededf3;border:1px solid #dddde8;border-radius:100px;padding:9px 22px;font-size:14px;font-weight:500;transition:background .2s,color .2s}.nav-cta:hover{background:var(--fg);color:#fff}.hero{min-height:100vh;position:relative}.hero-sticky{max-width:1200px;min-height:100vh;padding:0 40px;padding-top:var(--nav-h);grid-template-columns:1fr 1fr;align-items:center;gap:48px;margin:0 auto;display:grid;overflow:hidden}.hero-eyebrow{letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase;margin-bottom:20px;font-size:11px;font-weight:600}.hero-heading{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px;font-size:clamp(52px,6.5vw,88px);font-weight:300;line-height:1}.hero-name{display:block}.hero-role,.hero-sub{font-family:var(--font-body);letter-spacing:normal;text-transform:none;color:var(--fg-2);max-width:400px;margin-top:28px;margin-bottom:44px;font-size:17px;font-weight:400;line-height:1.65;display:block}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-visual{height:540px;position:relative}.float-mock{opacity:0;pointer-events:none;filter:drop-shadow(0 22px 55px #0000001c);transform:translate(var(--ex,0px), var(--ey,28px)) scale(.86);will-change:opacity, transform, filter;transition:opacity .95s cubic-bezier(.16,1,.3,1),transform .95s cubic-bezier(.16,1,.3,1),filter .4s;position:absolute}.float-mock.is-visible{opacity:1;pointer-events:all;transform:translate(0)scale(1)}.float-mock.is-hovering{filter:drop-shadow(0 44px 88px #0000003d);z-index:10!important}.float-mock--a{z-index:4;--ex:42px;--ey:-14px;width:55%;transition-delay:0s,0s,0s;top:10px;right:0}.float-mock--b{z-index:5;--ex:-38px;--ey:20px;width:63%;transition-delay:.14s,.14s,.14s;top:155px;left:-15px}.float-mock--c{z-index:3;--ex:28px;--ey:32px;width:49%;transition-delay:.26s,.26s,.26s;bottom:10px;right:20px}.mock-3d{filter:blur(10px);transition:transform .55s cubic-bezier(.16,1,.3,1),filter .95s cubic-bezier(.16,1,.3,1)}.float-mock.is-visible .mock-3d{filter:blur()}.float-mock--a .mock-3d{transform:perspective(1000px)rotateY(-14deg)rotate(-2deg)}.float-mock--b .mock-3d{transform:perspective(1000px)rotateY(-10deg)rotate(1deg)}.float-mock--c .mock-3d{transform:perspective(1000px)rotateY(-12deg)rotate(3deg)}.float-mock--d .mock-3d{transform:perspective(1000px)rotateY(-7deg)rotate(2deg)}.float-mock--e .mock-3d{transform:perspective(1000px)rotateY(-9deg)rotate(-1.5deg)}.float-mock.is-hovering .mock-3d{transform:perspective(1000px)rotateY(-2deg)rotate(0)scale(1.03)}.mock-move{will-change:transform}.browser-frame{border:1px solid var(--border);background:#fff;border-radius:10px;overflow:hidden}.bf-bar{border-bottom:1px solid var(--border);background:#f2f2f2;flex-shrink:0;align-items:center;gap:6px;height:36px;padding:0 12px;display:flex}.bf-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px}.bf-dot.r{background:var(--accent-red)}.bf-dot.y{background:var(--accent-yellow)}.bf-dot.g{background:var(--accent-green)}.bf-url{background:#e2e2e2;border-radius:5px;flex:1;height:20px;margin-left:6px}.bf-url--text{cursor:pointer;align-items:center;padding:0 10px;transition:background .15s;display:flex;position:relative;overflow:hidden}.bf-url--text:hover{background:#d8d8d8}.bf-url-text{font-family:var(--font-mono);color:#555;white-space:nowrap;text-overflow:ellipsis;font-size:10px;transition:opacity .2s;overflow:hidden}.bf-url-copied{font-family:var(--font-body);color:#2a9d5c;opacity:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;transition:opacity .2s;display:flex;position:absolute;inset:0}.bf-url--text.copied .bf-url-text{opacity:0}.bf-url--text.copied .bf-url-copied{opacity:1}.hero-mock-img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;display:block}.screen-placeholder{aspect-ratio:16/10;background:linear-gradient(135deg,#f2f2f2 0%,#eaeaea 40%,#f2f2f2 80%) 0 0/300% 300%;width:100%;animation:2.5s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}picture{display:contents}.screen-img{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%;height:auto;display:block}.screen-img--banner{aspect-ratio:16/7;width:100%;display:block}.scroll-hint{cursor:pointer;color:#00000047;opacity:1;z-index:5;background:0 0;border:none;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .6s,color .2s;animation:3s ease-in-out infinite scroll-hint-float;display:flex;position:absolute;bottom:40px;left:50%}.scroll-hint:hover{color:#0000008c}.scroll-hint.is-hidden{opacity:0;pointer-events:none}@keyframes scroll-hint-float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(10px)}}.section{padding:128px 0}.section-intro{grid-template-columns:1fr 1fr;align-items:end;gap:48px;margin-bottom:72px;display:grid}.section-heading{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:clamp(38px,4.5vw,62px);font-weight:300;line-height:1.05}.section-desc{color:var(--fg-2);font-size:16px;line-height:1.75}.section-label{letter-spacing:.16em;color:var(--fg-3);text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:700;display:inline-block}.projects-grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.project-card{cursor:pointer;background:var(--bg);border:1px solid var(--border);transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out), opacity 1.2s cubic-bezier(.4, 0, .2, 1), translate 1.2s cubic-bezier(.4, 0, .2, 1);border-radius:14px;outline:none;overflow:hidden;box-shadow:10px 12px 48px #00000012}.js .project-card{opacity:0;translate:0 6px}.project-detail{display:none}.project-card{scroll-margin-top:calc(var(--nav-h) + 24px)}.project-card:nth-child(3n+1){transform:perspective(1100px)rotateY(-5deg)rotateX(1.5deg)}.project-card:nth-child(3n+2){transform:perspective(1100px)rotateY(0)rotateX(2deg);box-shadow:0 12px 48px #00000014}.project-card:nth-child(3n+3){transform:perspective(1100px)rotateY(5deg)rotateX(1.5deg);box-shadow:-10px 12px 48px #00000012}.project-card{position:relative}.card-hit{z-index:1;position:absolute;inset:0}.card-hit:focus-visible{outline:none}.project-card:focus-within{outline:2px solid var(--fg);outline-offset:4px}.project-card .card-badge{pointer-events:none}.js .project-card .bf-url--text{z-index:2;position:relative}.project-card:hover,.project-card:focus-within{transform:perspective(1100px)rotateY(0)rotateX(0)translateY(-8px)!important;box-shadow:0 28px 72px #00000021!important}.card-mockup{position:relative}.card-badge{color:#fff;letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);z-index:2;background:#0a0a0ab8;border-radius:4px;padding:4px 10px;font-size:9px;font-weight:700;position:absolute;top:46px;left:12px}.card-info{border-top:1px solid var(--border);padding:20px 22px 24px}.card-tags{flex-wrap:wrap;gap:5px;margin-bottom:10px;display:flex}.tag{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);background:var(--card-bg);border-radius:4px;padding:3px 8px;font-size:9px;font-weight:700}.card-name{letter-spacing:-.01em;margin-bottom:2px;font-size:17px;font-weight:700}.card-link{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);align-items:center;gap:5px;margin-top:10px;font-size:10px;font-weight:700;transition:color .2s;display:inline-flex}.card-link:after{content:"→";font-size:12px}.project-card:hover .card-link{color:var(--fg)}.about{background:#fafafa}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:96px;display:grid}.about-heading{letter-spacing:-.02em;margin-bottom:24px;font-size:26px;font-weight:700;line-height:1.35}.about-text{color:var(--fg-2);margin-bottom:16px;font-size:15px;line-height:1.85}.skills-cols{grid-template-columns:repeat(3,1fr);gap:28px;padding-top:56px;display:grid}.skill-col h3{letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin-bottom:16px;font-size:10px;font-weight:700}.skill-col ul li{color:var(--fg-2);border-bottom:1px solid var(--border);padding:8px 0;font-size:14px;line-height:1.3}.skill-col ul li:last-child{border-bottom:none}.contact-grid{grid-template-columns:5fr 7fr;align-items:start;gap:80px;display:grid}.contact-heading{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;top:calc(var(--nav-h) + 16px);font-size:clamp(34px,4vw,54px);font-weight:300;line-height:1.1;position:sticky}.contact-desc{color:var(--fg-2);margin-bottom:36px;font-size:15px;line-height:1.75}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-field{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.form-field label{letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-size:10px;font-weight:700}.form-field input,.form-field select,.form-field textarea{font-family:var(--font-body);color:var(--fg);background:var(--bg);border:1.5px solid var(--border);resize:vertical;border-radius:7px;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--fg)}.form-field select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.contact-form .btn{margin-top:4px}.contact-links{border-top:1px solid var(--border);flex-direction:column;gap:14px;margin-top:36px;padding-top:36px;display:flex}.clink{color:var(--fg-2);align-items:center;gap:10px;font-size:14px;transition:color .2s;display:inline-flex}.clink:hover{color:var(--fg)}.footer{background:var(--fg);color:#fff;text-align:center;padding:72px 0 56px}.footer-inner{flex-direction:column;align-items:center;gap:22px;display:flex}.footer-logo{align-items:center;display:flex}.footer-logo-img{opacity:.85;width:auto;height:20px;display:block}.footer-logo-top{letter-spacing:.35em;font-size:15px;font-weight:700}.footer-logo-sub{letter-spacing:.5em;opacity:.45;font-size:10px}.footer-bio{max-width:460px;font-size:var(--fs-base);color:var(--white-mid);line-height:1.75}.footer-social{gap:12px;display:flex}.social-icon{color:#ffffffa6;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;transition:background .2s,color .2s;display:flex}.social-icon:hover{color:#fff;background:#ffffff1a}.footer-copy{font-size:var(--fs-sm);color:var(--white-low);margin-top:var(--sp-1)}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);background:#000000a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:var(--bg);width:100%;max-width:920px;transition:transform .35s var(--ease-out);border-radius:18px;position:relative;overflow:hidden;transform:translateY(24px)scale(.97)}.modal-scroll{scrollbar-width:thin;max-height:90vh;overflow-y:auto}.modal-overlay.open .modal{transform:translateY(0)scale(1)}.modal-close{-webkit-backdrop-filter:blur(10px);cursor:pointer;color:#fff;z-index:220;width:40px;height:40px;transition:background .2s, transform .15s var(--ease);background:#0f0f0f8c;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:24px;right:24px}.modal-close:hover{background:#0f0f0fd9;transform:scale(1.08)}.modal-body{padding:48px}.modal-hero-frame{border:1px solid var(--border);border-radius:10px;margin-bottom:44px;overflow:hidden}.modal-hero-frame .screen-placeholder{aspect-ratio:16/7}.modal-meta,.project-facts{grid-template-columns:200px 1fr;gap:56px;display:grid}.modal-meta-left,.project-facts-left,.modal-meta-left dl,.project-facts-left dl{flex-direction:column;gap:28px;display:flex}.meta-item dt,.fact-item dt,.meta-item label{letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.meta-item dd,.fact-item dd,.meta-item span{font-size:15px;font-weight:500}.meta-item a,.fact-item a{text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--fg-3)}.meta-item a:hover,.fact-item a:hover{text-decoration-color:currentColor}.banner-wrap{display:block;position:relative;overflow:hidden}.banner-overlay{pointer-events:none;background:#0000007a;position:absolute;inset:0}.banner-title{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#fff;pointer-events:none;font-size:clamp(26px,3vw,42px);font-weight:300;line-height:1;position:absolute;bottom:28px;left:32px}.banner-visit{color:var(--fg);letter-spacing:.01em;transition:background .2s, transform .2s var(--ease);white-space:nowrap;background:#fff;border-radius:100px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;display:inline-flex;position:absolute;bottom:28px;right:28px}.banner-visit span{font-size:15px}.banner-visit:hover{background:#f0f0f0;transform:translateY(-2px)}.modal-slogan,.project-slogan{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--fg);font-size:clamp(20px,2.2vw,28px);font-weight:300;line-height:1.1;margin-bottom:20px!important}.modal-meta-right p,.project-facts-right p{color:var(--fg-2);margin-bottom:14px;font-size:15px;line-height:1.85}.highlights-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,1fr);gap:12px;margin-top:40px;padding-top:40px;display:grid}.highlight-item{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;overflow:hidden}.highlight-item img{width:100%;height:auto;transition:transform .4s var(--ease);display:block}.highlight-item:hover img{transform:scale(1.02)}@media (width<=1024px){.hero-sticky{padding-top:calc(var(--nav-h) + 60px);grid-template-columns:1fr;padding-bottom:80px}.hero-visual{display:none}.projects-grid{grid-template-columns:repeat(2,1fr)}.about-grid{gap:56px}}@media (width<=768px){.container{padding:0 20px}.section{padding:60px 0}.nav-inner{padding:0 20px}.hero-sticky{padding-left:20px;padding-right:20px}.section-intro{grid-template-columns:1fr;gap:16px;margin-bottom:48px}.projects-grid{grid-template-columns:1fr}.project-card:nth-child(n){transform:perspective(1100px)rotateY(0)rotateX(0)!important;box-shadow:0 8px 32px #00000014!important}.about-grid{grid-template-columns:1fr;gap:32px}.skills-cols{grid-template-columns:1fr 1fr;padding-top:0}.contact-grid{grid-template-columns:1fr;gap:28px}.contact-heading{position:static}.form-row{grid-template-columns:1fr}.modal-overlay{padding:64px 12px 12px}.modal-scroll{max-height:calc(100dvh - 76px)}.modal-close{top:12px;right:12px}.modal-body{padding:20px}.modal-meta,.project-facts{grid-template-columns:1fr;gap:24px}.nav-left{display:none}.screen-img--banner{aspect-ratio:16/9}.banner-title{font-size:clamp(20px,6vw,28px);line-height:1.15;bottom:68px;left:20px;right:20px}.banner-visit{padding:8px 14px;font-size:12px;bottom:18px;left:20px;right:auto}.highlights-grid{grid-template-columns:1fr}.footer-inner{text-align:center;gap:20px}.footer-social{justify-content:center}}@media (width<=480px){.container{padding:0 16px}.section{padding:44px 0}.nav-inner{padding:0 16px}.hero-sticky{padding-top:calc(var(--nav-h) + 16px);padding-bottom:36px;padding-left:16px;padding-right:16px}.hero-heading{letter-spacing:.06em}.hero-role,.hero-sub{margin-bottom:32px;font-size:15px}.hero-actions{gap:10px}.hero-actions .btn{padding:12px 20px;font-size:13px}.section-intro{margin-bottom:36px}.section-heading{font-size:clamp(28px,9vw,40px)}.section-desc{font-size:14px}.skills-cols{grid-template-columns:1fr;gap:0}.skill-col ul li{padding:10px 0}.about-heading{font-size:clamp(20px,6vw,28px)}.about-text{font-size:14px}.contact-heading{font-size:clamp(32px,10vw,48px)}.contact-desc{font-size:14px}.clink{min-height:44px;padding:8px 0;font-size:13px}.nav-logo-img{height:22px}.nav-cta{padding:9px 20px;font-size:14px}html[lang=es] .nav-cta{padding:8px 14px;font-size:13px}.card-info{padding:14px 14px 16px}.card-name{font-size:15px}.modal-body{padding:16px}.modal-slogan,.project-slogan{font-size:clamp(16px,5vw,22px)}.modal-hero-frame{margin-bottom:28px}.footer-inner{gap:18px}.footer-bio{font-size:13px}.footer-copy{font-size:11px}}@media (width<=400px){.nav-logo-img{height:19px}.nav-cta{padding:8px 14px;font-size:13px}html[lang=es] .nav-cta{padding:7px 10px;font-size:12px}}@media (width<=340px){.nav-logo-img{height:17px}html[lang=es] .nav-cta{padding:7px 8px;font-size:11.5px}}.project-card.is-revealed{opacity:1;translate:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js .project-card{opacity:1;translate:0}}.no-scroll{overflow:hidden}.skip-to-content{background:var(--fg);color:#fff;border-radius:var(--radius-md);font-size:var(--fs-base);z-index:calc(var(--z-nav) + 10);transition:top var(--dur-slow);padding:10px 18px;font-weight:600;position:absolute;top:-48px;left:16px}.skip-to-content:focus{top:16px}.text-link{letter-spacing:.12em;text-transform:uppercase;color:var(--fg);border-bottom:1px solid var(--border);align-items:center;gap:6px;margin-top:20px;padding-bottom:4px;font-size:11px;font-weight:700;transition:border-color .2s;display:inline-flex}.text-link:after{content:"→";font-size:13px}.text-link:hover{border-color:var(--fg)}.page-head{padding:calc(var(--nav-h) + 72px) 0 0}.page-head .section-intro{margin-bottom:72px}.page-head--tight{padding-top:calc(var(--nav-h) + 40px)}.page-head--tight+.contact{padding-top:48px}.breadcrumbs ol{color:var(--fg-3);flex-wrap:wrap;gap:8px;margin-bottom:32px;font-size:12px;display:flex}.breadcrumbs li+li:before{content:"/";color:var(--gray-400);margin-right:8px}.breadcrumbs a{color:var(--fg-2);transition:color .2s}.breadcrumbs a:hover{color:var(--fg)}.project-list{padding-bottom:128px}.project-entry{border-top:1px solid var(--border);scroll-margin-top:calc(var(--nav-h) + 16px);grid-template-columns:minmax(0,1fr) auto;column-gap:16px;padding:72px 0;display:grid}.project-entry>*{grid-column:1/-1}.project-entry>.entry-head{grid-column:1}.project-entry>.entry-visit{grid-area:1/2;align-self:start;margin-bottom:28px}.entry-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:28px;display:flex}.entry-title{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;font-size:clamp(28px,3vw,42px);font-weight:300;line-height:1.05}.entry-badge{position:static}.entry-visit{border:1px solid var(--border);transition:border-color .2s, transform .2s var(--ease);white-space:nowrap;border-radius:100px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;display:inline-flex}.entry-visit:hover{border-color:var(--fg);transform:translateY(-1px)}.entry-frame{border:1px solid var(--border);border-radius:10px;margin-bottom:44px;overflow:hidden}.about-lead{max-width:860px;color:var(--fg-2);margin-top:28px;font-size:18px;line-height:1.8}.page-updated{color:var(--fg-3);margin-top:16px;font-size:12px}.about-page{background:#fafafa;margin-top:96px}.about-page-grid{grid-template-columns:1fr 1.3fr;align-items:start;gap:96px;display:grid}.about-facts{flex-direction:column;display:flex}.about-fact{border-bottom:1px solid var(--border);padding:16px 0}.about-fact dt{letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3);margin-bottom:6px;font-size:10px;font-weight:700}.about-fact dd{color:var(--fg-2);font-size:15px;line-height:1.7}.timeline{flex-direction:column;gap:36px;display:flex}.timeline-item{border-left:1px solid var(--border);padding-left:24px}.timeline-when{letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:700}.timeline-role{margin-top:6px;font-size:17px;font-weight:700}.timeline-where{color:var(--fg-2);margin-top:2px;font-size:14px}.timeline-what{color:var(--fg-2);margin-top:10px;font-size:15px;line-height:1.8}.page-cta-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px;display:flex}.page-cta .contact-heading{position:static}.footer-nav{color:var(--white-mid);flex-wrap:wrap;justify-content:center;gap:8px 24px;font-size:13px;display:flex}.footer-nav a{transition:color .2s}.footer-nav a:hover{color:#fff}.not-found{align-items:center;min-height:100vh;padding:96px 0;display:flex}.not-found .section-desc{max-width:560px;margin-top:20px}.not-found-links{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}@media (width<=1024px){.about-page-grid{grid-template-columns:1fr;gap:64px}}@media (width<=768px){.page-head{padding-top:calc(var(--nav-h) + 40px)}.page-head .section-intro{margin-bottom:40px}.project-entry{padding:48px 0}.project-entry>.entry-visit{grid-area:auto/1/auto/-1;justify-self:start;margin:-12px 0 28px}.about-lead{font-size:16px}.about-page{margin-top:56px}.nav-right{display:contents}.nav-lang{grid-area:1/1;justify-self:start;margin-left:-8px;padding:6px 8px}.nav-cta{grid-area:1/3;justify-self:end}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/cormorant-garamond-cyrillic-ext-wght-normal.Bg62sWL9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/cormorant-garamond-cyrillic-wght-normal.BWCqVJN0.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/cormorant-garamond-vietnamese-wght-normal.CDLFB6hb.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/cormorant-garamond-latin-ext-wght-normal.ltf1AbuM.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/cormorant-garamond-latin-wght-normal.CUoBjw-S.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
