@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(./manrope-vietnamese-variable-C9-d800b.woff2) format("woff2");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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(./manrope-latin-variable-C46ZzDBF.woff2) format("woff2");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}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-display:swap;src:url(./bricolage-grotesque-vietnamese-variable-Bsw--Lnt.woff2) format("woff2");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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-display:swap;src:url(./bricolage-grotesque-latin-variable-C23fTOVi.woff2) format("woff2");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}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(./source-serif-4-vietnamese-variable-CP1XV24Z.woff2) format("woff2");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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(./source-serif-4-latin-variable-DuZxYNfE.woff2) format("woff2");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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) format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./ibm-plex-mono-latin-regular-BJoXLJYV.woff2) format("woff2");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(./ibm-plex-mono-vietnamese-semibold-Dky8cY56.woff2) format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(./ibm-plex-mono-latin-semibold-DpGnXj3s.woff2) format("woff2");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{color-scheme:light;--ink: #161816;--muted: #696d68;--paper: #f2f1ec;--card: #fbfaf6;--line: #cbc9c0;--accent: #1d5bff;--focus: #ff4d21}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,sans-serif}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.skip-link{position:fixed;z-index:20;top:10px;left:10px;padding:10px 14px;background:var(--ink);color:#fff;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px clamp(20px,4vw,64px);border-bottom:1px solid var(--line)}.wordmark{font-family:Manrope,sans-serif;font-weight:700;text-decoration:none;letter-spacing:-.04em}.head-links{display:flex;align-items:center;gap:20px;font-size:.88rem}.head-links a{text-underline-offset:4px}.gallery-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:48px;padding:clamp(64px,10vw,140px) clamp(20px,6vw,88px) 64px}.eyebrow{display:block;margin-bottom:18px;color:var(--accent);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}h1{max-width:850px;margin:0;font-family:Manrope,sans-serif;font-size:clamp(3rem,8vw,7.4rem);line-height:.92;letter-spacing:-.075em}.hero-note{align-self:end;max-width:420px;margin:0 0 8px;color:var(--muted);font-size:clamp(1rem,1.6vw,1.28rem);line-height:1.55}.gallery-main{padding:0 clamp(20px,6vw,88px) 100px}.filter-bar{position:sticky;z-index:5;top:12px;display:flex;gap:8px;overflow-x:auto;padding:12px;background:color-mix(in srgb,var(--paper) 88%,transparent);border:1px solid var(--line);border-radius:14px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-button{flex:0 0 auto;min-height:42px;padding:0 16px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font:600 .85rem Manrope,sans-serif;cursor:pointer}.filter-button:hover{color:var(--ink);background:#fff}.filter-button[aria-pressed=true]{background:var(--ink);color:#fff}.gallery-status{margin:28px 0 18px;color:var(--muted);font-size:.86rem}.template-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.template-card{grid-column:span 6;display:grid;grid-template-rows:auto 1fr;min-width:0;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:18px}.template-card[hidden]{display:none}.card-media{position:relative;aspect-ratio:1200 / 630;overflow:hidden;background:#ddd}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.template-card:hover .card-media img{transform:scale(1.025)}.package-pill{position:absolute;top:14px;left:14px;padding:7px 10px;background:#121212d1;color:#fff;border-radius:6px;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.card-copy{display:flex;flex-direction:column;gap:20px;padding:clamp(20px,3vw,32px)}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.card-index{flex:0 0 auto;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}.template-card h2{margin:0 0 8px;font-family:Manrope,sans-serif;font-size:clamp(1.45rem,3vw,2.2rem);letter-spacing:-.045em}.card-description{max-width:580px;margin:0;color:var(--muted);line-height:1.55}.badges{display:flex;flex-wrap:wrap;gap:7px}.badge{padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:#4d504c;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.badge--3d{background:#e0e8ff;border-color:#b7c8ff;color:#173d9f}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto}.card-action{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:10px 14px;border:1px solid var(--ink);border-radius:9px;font-size:.82rem;font-weight:600;text-decoration:none}.card-action--primary{background:var(--ink);color:#fff}.card-action:hover{background:var(--accent);border-color:var(--accent);color:#fff}.gallery-foot{display:flex;justify-content:space-between;gap:24px;padding:28px clamp(20px,6vw,88px);border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}@media(max-width:780px){.gallery-hero{grid-template-columns:1fr;gap:28px}.hero-note{align-self:auto}.template-card{grid-column:1 / -1}.site-head{align-items:flex-start}.head-links{gap:12px;flex-wrap:wrap;justify-content:flex-end}.head-links a,.gallery-foot a{display:inline-flex;min-height:44px;align-items:center}.filter-button{min-height:44px}}@media(max-width:480px){.card-actions{grid-template-columns:1fr}.gallery-foot{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
