@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ffffff;--surface: #f4f4f4;--surface-2: #ebebeb;--ink: #0d0d0d;--muted: #6e6e6e;--faint: #9b9b9b;--line: #e6e6e6;--font: "Hanken Grotesk Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--maxw: 1120px;--gut: clamp(16px, 4vw, 40px);--radius-sm: 12px;--radius: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}main{flex:1 0 auto}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}.link{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color .15s}.link:hover{text-decoration-color:var(--ink)}.wrap,.container{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}.container--narrow{max-width:760px}header.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px)}.nav-in{max-width:var(--maxw);margin:0 auto;padding:14px var(--gut);display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px}.brand img{width:26px;height:auto}.brand span{font-weight:650;font-size:15px;letter-spacing:-.01em}.nav-links{display:flex;gap:22px}.nav-links a{font-size:14px;font-weight:500;color:var(--ink);opacity:.75}.nav-links a:hover{opacity:1}.nav-end{margin-left:auto;display:flex;align-items:center;gap:16px}.nav-end .icon{width:18px;height:18px;opacity:.8}.nav-end a:hover .icon{opacity:1}.btn{font:inherit;font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px;border:0;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#333}.btn-ghost{background:var(--surface);color:var(--ink)}.btn-ghost:hover{background:var(--surface-2)}.btn-lg{font-size:15px;padding:12px 20px}.hero{text-align:center;padding-block:clamp(64px,13vh,150px) clamp(48px,8vh,88px)}.hero h1{font-size:clamp(40px,7vw,80px);font-weight:650;line-height:1.04;letter-spacing:-.04em;max-width:16ch;margin-inline:auto}.hero p{margin:26px auto 0;max-width:58ch;color:var(--muted);font-size:17px}.hero-cta{margin-top:30px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.logos{padding-block:clamp(48px,8vh,80px);text-align:center}.logos p{font-size:13px;color:var(--muted)}.logos ul{list-style:none;margin-top:22px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:18px 44px}.logos img{height:60px;width:auto;border-radius:14px;filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply;opacity:.75;transition:opacity .2s,filter .2s}.logos img:hover{opacity:1;filter:none}.sec{padding-block:clamp(56px,10vh,110px)}.sec+.sec{border-top:1px solid var(--line)}.sec-title{font-size:clamp(30px,4vw,48px);font-weight:650;line-height:1.08;letter-spacing:-.035em;text-align:center}.sec-sub{text-align:center;color:var(--muted);margin-top:12px}.tiles{margin-top:clamp(36px,6vh,56px);display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tile{background:var(--surface);border-radius:var(--radius);padding:26px 24px;min-height:170px;display:flex;flex-direction:column;gap:10px;overflow:hidden;position:relative}.tile h3{font-size:17px;font-weight:650;letter-spacing:-.01em}.tile p{font-size:15px;color:var(--muted);max-width:34ch}.tile .pills{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px}.pill{background:#fff;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:500;box-shadow:0 1px 2px #0000000f}.tile.photo{padding:0}.tile.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tile.photo .tile-label{position:absolute;left:14px;bottom:14px;background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.jobs{margin-top:clamp(36px,6vh,56px);background:var(--surface);border-radius:var(--radius);padding:8px 24px;list-style:none}.jobs li{display:grid;grid-template-columns:52px 1fr auto;gap:16px;align-items:center;padding:16px 0}.jobs li+li{border-top:1px solid var(--line)}.jobs .logo{width:52px;height:52px;border-radius:14px;background:#fff;overflow:hidden;display:grid;place-items:center}.jobs .logo img{width:40px;height:40px;object-fit:contain}.jobs .who{font-weight:650}.jobs .what{color:var(--muted);font-size:15px}.jobs .when{color:var(--faint);font-size:14px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.sec-more{margin-top:24px;text-align:center}.ph-grid{margin-top:clamp(36px,6vh,56px);display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ph-card{background:var(--surface);border-radius:var(--radius);padding:10px 10px 16px;transition:background .2s}.ph-card:hover{background:var(--surface-2)}.ph-shot{aspect-ratio:4 / 3;overflow:hidden;border-radius:16px;background:var(--surface-2)}.ph-shot .serie-ph{color:var(--muted)}.ph-shot img{width:100%;height:100%;object-fit:cover}.ph-info{padding:12px 6px 0;display:flex;justify-content:space-between;gap:12px;align-items:baseline}.ph-info h3{font-size:15px;font-weight:650}.ph-date{font-size:13px;color:var(--muted);white-space:nowrap}.apps-list{margin-top:clamp(36px,6vh,56px);display:grid;gap:12px}.app-tile{background:var(--surface);border-radius:var(--radius);padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,40px);align-items:center}.app-icon{width:clamp(80px,12vw,120px);height:auto;border-radius:26%;box-shadow:0 10px 30px #ff6b0040}.app-icon--soon{display:grid;place-items:center;aspect-ratio:1;background:#fff;color:var(--faint);font-size:clamp(36px,5vw,52px);font-weight:650;box-shadow:none}.soon{display:inline-block;vertical-align:middle;font-size:12px;font-weight:600;letter-spacing:0;background:#fff;color:var(--muted);border-radius:999px;padding:4px 10px;margin-left:6px}.app-tile h3{font-size:clamp(24px,3vw,32px);font-weight:650;letter-spacing:-.03em}.app-tile p{color:var(--muted);margin-top:8px;max-width:52ch}.app-tile .hero-cta{justify-content:flex-start;margin-top:20px}.app-tile .btn-ghost{background:#fff}.app-tile .btn-ghost:hover{background:var(--surface-2)}.cta-end{text-align:center}.cta-end .hero-cta{margin-top:26px}.page-head{text-align:center;padding-block:clamp(56px,10vh,110px) clamp(32px,5vh,56px)}.page-title{font-size:clamp(38px,6vw,64px);font-weight:650;line-height:1.04;letter-spacing:-.04em}.page-sub{color:var(--muted);font-size:17px;max-width:50ch;margin:16px auto 0}.contact-page{padding-block:clamp(56px,10vh,110px)}.contact-page .contact-inner{max-width:560px;margin-inline:auto}.contact-page h1{font-size:clamp(38px,6vw,64px);font-weight:650;line-height:1.04;letter-spacing:-.04em;text-align:center}.contact-page .sub{color:var(--muted);font-size:17px;text-align:center;margin:14px auto 36px;max-width:44ch}.contact-form{display:grid;gap:16px;background:var(--surface);border-radius:var(--radius);padding:clamp(20px,4vw,32px)}.contact-form label{display:grid;gap:6px;font-size:14px;font-weight:600}.contact-form input,.contact-form textarea{width:100%;background:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:12px 14px;font:inherit;font-size:16px;color:var(--ink);box-shadow:0 1px 2px #0000000d}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--ink)}.contact-form textarea{resize:vertical;min-height:150px}.contact-form .form-note{font-size:13px;color:var(--muted)}.form-status{padding:12px 16px;border-radius:var(--radius-sm);font-size:15px;margin-bottom:16px}.form-status--success{background:#e5f4ea;color:#1d5b32}.form-status--error{background:#fbe6e1;color:#8e2512}.hp-field{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.page-404{text-align:center;padding-block:clamp(80px,16vh,180px)}.page-404 .code{font-size:14px;color:var(--muted)}.page-404 h1{font-size:clamp(38px,6vw,64px);font-weight:650;letter-spacing:-.04em;line-height:1.05;margin:8px 0 14px}.page-404 p{color:var(--muted);max-width:42ch;margin:0 auto 26px}.page-404 .cta-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}footer.site-footer{border-top:1px solid var(--line)}.foot-in{max-width:var(--maxw);margin:0 auto;padding:28px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.foot-in .l{display:flex;align-items:center;gap:10px}.foot-in .l img{width:20px;height:auto}.foot-links{display:flex;gap:20px;flex-wrap:wrap}.foot-links a:hover{color:var(--ink)}.legal{padding-block:clamp(56px,10vh,110px)}.legal__header{margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--line)}.legal__header h1{font-size:clamp(30px,4vw,44px);font-weight:650;letter-spacing:-.035em;line-height:1.1;margin-top:8px}.legal__updated{font-size:14px;color:var(--faint);margin-top:10px}.section__eyebrow{font-size:14px;color:var(--muted)}.legal-prose section{margin-bottom:2rem}.legal-prose h2{font-size:1.25rem;font-weight:650;letter-spacing:-.01em;margin-bottom:.5rem}.legal-prose h3{font-size:1.05rem;font-weight:600;margin-top:1.1rem;margin-bottom:.4rem}.legal-prose p,.legal-prose li{color:var(--muted);font-size:16px;line-height:1.65}.legal-prose p+p{margin-top:.7rem}.legal-prose ul,.legal-prose ol{margin-top:.6rem;padding-left:1.25rem}.legal-prose li+li{margin-top:.3rem}.legal-prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}.legal-prose a:hover{text-decoration-color:var(--ink)}.legal-prose table{width:100%;border-collapse:collapse;font-size:15px;margin-top:.8rem}.legal-prose th,.legal-prose td{border:1px solid var(--line);padding:10px 14px;text-align:left;color:var(--muted)}.legal-prose th{color:var(--ink);font-weight:600;background:var(--surface)}.legal-prose .placeholder,.legal-prose .todo{background:#fbefc4;border-radius:4px;padding:.05em .35em;font-weight:600;color:var(--ink)}.photo-list{padding-bottom:clamp(56px,10vh,120px)}.series{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.serie-link{display:block;background:var(--surface);border-radius:var(--radius);padding:10px 10px 20px;transition:background .2s}.serie-link:hover{background:var(--surface-2)}.serie-media{aspect-ratio:3 / 2;overflow:hidden;border-radius:16px;background:var(--surface-2)}.serie-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.serie-link:hover .serie-media img{transform:scale(1.03)}.serie-ph{display:grid;place-items:center;height:100%;color:var(--faint);font-size:14px}.serie-body{padding:16px 10px 0}.serie-meta{font-size:13px;color:var(--muted)}.serie-title{font-size:22px;font-weight:650;letter-spacing:-.02em;margin-top:4px}.serie-desc{color:var(--muted);font-size:15px;margin-top:6px}.serie-cta{display:none}.empty{color:var(--muted);padding-block:40px;text-align:center}.gal-head{padding-block:clamp(40px,8vh,80px) clamp(28px,4vh,44px);text-align:center}.gal-back{display:inline-block;font-size:14px;font-weight:600;background:var(--surface);padding:7px 14px;border-radius:999px}.gal-back:hover{background:var(--surface-2)}.gal-meta{font-size:14px;color:var(--muted);margin-top:12px}.gal-intro{color:var(--muted);margin:12px auto 0;max-width:58ch}.gallery-wrap{padding-bottom:clamp(56px,10vh,120px)}.gallery{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut);column-count:3;column-gap:12px}.shot{display:block;width:100%;padding:0;border:0;cursor:zoom-in;background:var(--surface);border-radius:16px;overflow:hidden;line-height:0;break-inside:avoid;margin-bottom:12px}.shot img{width:100%;height:auto;transition:transform .5s}.shot:hover img{transform:scale(1.02)}.lb{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0a0a0af0;backdrop-filter:blur(8px);padding:clamp(12px,4vw,40px)}.lb[hidden]{display:none}.lb-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}.lb-close,.lb-nav{position:absolute;z-index:1;background:#ffffff1f;border:0;border-radius:999px;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .15s}.lb-close:hover,.lb-nav:hover{background:#ffffff3d}.lb-close{top:16px;right:16px;width:44px;height:44px;font-size:18px}.lb-nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:28px;line-height:1}.lb-prev{left:12px}.lb-next{right:12px}.lb-count{position:absolute;bottom:18px;left:50%;transform:translate(-50%);background:#ffffff1f;color:#fff;border-radius:999px;padding:5px 12px;font-size:13px;font-variant-numeric:tabular-nums}@media(max-width:900px){.tiles{grid-template-columns:1fr 1fr}.gallery{column-count:2}}@media(max-width:760px){.nav-links{display:none}.ph-grid{grid-template-columns:1fr 1fr}.series{grid-template-columns:1fr}}@media(max-width:560px){.tiles,.ph-grid{grid-template-columns:1fr}.tile{min-height:0}.tile.photo{min-height:240px}.jobs{padding:4px 16px}.jobs li{grid-template-columns:44px 1fr;gap:4px 14px}.jobs .logo{width:44px;height:44px;grid-row:span 2}.jobs .logo img{width:34px;height:34px}.jobs .when{text-align:left;grid-column:2}.app-tile{grid-template-columns:1fr}.gallery{column-count:1}}.skip-link{position:absolute;left:.6rem;top:-100px;z-index:100;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:999px}.skip-link:focus{top:.6rem}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.001ms!important}}
