@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/be-vietnam-pro-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/be-vietnam-pro-vietnamese-400-normal.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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/be-vietnam-pro-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/be-vietnam-pro-vietnamese-600-normal.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}
:root{color-scheme:dark;--bg:#0a0b0d;--surface:#121416;--elevated:#191b1e;--text:#f4f4f5;--muted:#a2a3aa;--border:rgba(255,255,255,.15);--accent:#ffd400;--orange:#ff920c;--radius:16px;--pill:999px;--focus:0 0 0 3px rgba(255,212,0,.35);font-family:"Be Vietnam Pro",Arial,sans-serif;font-synthesis:none;font-weight:400}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 90% 0,rgba(255,155,0,.035),transparent 32%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,select{font:inherit}button,a,input,summary,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:focus:not(:focus-visible){outline:none}input:focus-visible{outline:0}input::-webkit-search-cancel-button{display:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{display:block;flex-shrink:0;width:22px;height:22px;fill:currentColor}.skip-link{position:fixed;top:12px;left:16px;z-index:20;padding:12px 20px;background:var(--accent);color:#17140a;border-radius:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
/* Layers: header 1; tooltip 2; toast 10; skip link 20. Dialog uses the native top layer. */
.site-header{height:80px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(10,11,13,.76)}.header-inner,.page-shell{width:calc(100% - 88px);max-width:1440px;margin-inline:auto}.header-inner{height:100%;display:flex;align-items:center}.brand{display:inline-flex;align-items:center;gap:12px;font-size:29px;font-weight:600;letter-spacing:-1.1px}.brand-mark{position:relative;width:40px;height:44px;overflow:hidden;flex-shrink:0}.brand-mark img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;mix-blend-mode:screen}.page-shell{padding-top:28px}.glass{background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008)),rgba(20,22,25,.84);border:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.025);backdrop-filter:blur(16px)}
.toolbar{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(310px,1fr) minmax(120px,.4fr);align-items:center;gap:24px}.search-field{display:flex;align-items:center;gap:14px;height:54px;border-radius:var(--pill);padding:0 18px}.search-field:focus-within{border-color:rgba(255,192,36,.7);box-shadow:var(--focus)}.search-icon{width:24px;height:24px;color:#c4c4ca}.search-field input{padding:0;border:0;outline:0;min-width:0;flex:1;width:100%;background:transparent;color:var(--text);font-size:14px}.search-field input::placeholder{color:#a1a1a9}.search-shortcut{font:12px Arial,sans-serif;border:1px solid rgba(255,255,255,.15);border-radius:5px;padding:3px 6px;color:#777b83}.clear-search{height:28px!important;width:28px!important;border:0!important;background:transparent!important}.clear-search .icon{height:16px;width:16px}.type-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px;border-radius:var(--pill);height:54px}.type-button{background:none;border-radius:var(--pill);white-space:nowrap;font-size:14px;padding:8px 15px;color:#d6d6dd}.type-button:hover{background:rgba(255,255,255,.06)}.type-button.is-active{color:#171205;background:linear-gradient(125deg,#ffdb16,#ffc300);box-shadow:0 2px 14px rgba(255,196,0,.16);font-weight:600}.sort-field{position:relative;height:54px;border-radius:var(--radius);justify-self:end;min-width:142px}.sort-field select{height:100%;width:100%;padding:0 42px 0 20px;appearance:none;border:0;border-radius:inherit;cursor:pointer;background:transparent;color:#dedee3;font-size:14px}.sort-field option{background:var(--surface)}.sort-field>.icon{position:absolute;right:15px;top:17px;width:18px;height:18px;pointer-events:none;color:var(--muted)}.material-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.material-button{padding:10px 20px;min-height:40px;white-space:nowrap;font-size:12px;border-radius:var(--pill);border:1px solid var(--border);background:linear-gradient(145deg,rgba(255,255,255,.04),transparent),#101214;color:#cccdd3}.material-button:hover{border-color:#7c6530;color:#f1ddb3}.material-button.is-active{background:linear-gradient(130deg,#ffd815,#ffc309);border-color:#ffe670;color:#211800;box-shadow:0 0 0 3px rgba(255,195,0,.08);font-weight:600}
.gallery-section{margin-top:30px}.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.gallery-heading h1{font-size:24px;letter-spacing:-.7px;margin:0;line-height:1.4;font-weight:600}.result-count{color:#92959d;font-size:12px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.effect-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(160deg,rgba(255,255,255,.025),transparent),#101214;min-width:0;transition:border-color .18s ease,box-shadow .18s ease}.effect-card:hover{border-color:rgba(255,185,39,.46);box-shadow:0 6px 30px rgba(0,0,0,.15)}.preview-button{display:block;position:relative;width:100%;padding:0;background:#050506;overflow:hidden}.preview-button:focus-visible{outline-offset:-4px}.effect-art{aspect-ratio:16/9;width:100%;background-color:#050506;background-repeat:no-repeat;background-size:300% 200%}.effect-art.is-single{background-size:cover;background-position:center!important}.preview-button .effect-art{transition:transform .25s ease}.preview-button:hover .effect-art{transform:scale(1.025)}.card-footer{display:flex;align-items:center;min-height:70px;padding:12px 14px 12px 18px;gap:10px}.card-name{background:none;padding:5px 0;min-width:0;margin-right:auto;font-size:16px;letter-spacing:-.4px;font-weight:600;text-align:left;color:#eeeef1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-name:hover{color:var(--accent)}.card-tags{display:flex;gap:6px;flex-shrink:0}.tag{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:var(--pill);padding:6px 10px;font-size:10px;line-height:1.2;color:#c6c7ce;white-space:nowrap;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025);color:#dedfe4}.icon-button:hover{background:rgba(255,255,255,.07)}.copy-icon{position:relative;color:#ffc448;background:linear-gradient(150deg,rgba(255,189,32,.06),rgba(255,146,12,.025));border-color:rgba(255,177,29,.38)}.copy-icon:hover{border-color:var(--accent);background:rgba(255,178,13,.1)}.copy-icon .icon{width:22px;height:22px}.copy-icon[data-copied="true"]{color:var(--accent);border-color:var(--accent)}.copy-icon:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);right:0;background:#292a2e;border:1px solid var(--border);border-radius:7px;color:#eeeef1;font-size:11px;padding:7px 9px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:2}.copy-icon:hover:before,.copy-icon:focus-visible:before{opacity:1;visibility:visible}.empty-state,.error-state{text-align:center;padding:75px 20px 95px;border:1px dashed var(--border);border-radius:var(--radius)}.empty-state>.icon{width:34px;height:34px;margin:auto;color:#b99946}.empty-state h2,.error-state h2{font-size:19px;font-weight:600}.empty-state p,.error-state p{font-size:14px;color:var(--muted)}.secondary-button{padding:12px 20px;margin-top:12px;background:var(--elevated);border:1px solid var(--border);border-radius:10px;font-size:13px}.secondary-button:hover{border-color:var(--accent)}.site-footer{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#71757d;margin:26px 0 24px}.skeleton{aspect-ratio:1.45;background:var(--surface);border-radius:var(--radius)}
dialog{padding:0;border:1px solid rgba(255,186,50,.5);border-radius:22px;background:#101214;color:var(--text);width:calc(100vw - 64px);max-width:1560px;height:min(840px,calc(100dvh - 64px));max-height:calc(100dvh - 64px);box-shadow:0 28px 120px rgba(0,0,0,.6);overflow:hidden}dialog::backdrop{background:rgba(4,5,6,.8);backdrop-filter:blur(8px)}.detail-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(340px,1fr);height:100%}.image-panel{background:#050506;display:flex;flex-direction:column;min-width:0;overflow:hidden}.viewer-stage{display:flex;align-items:center;position:relative;flex:1;min-height:0;overflow:hidden}.detail-art{flex-shrink:0}.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:rgba(20,21,24,.72);backdrop-filter:blur(8px);color:#e3e3e6}.viewer-arrow:hover{border-color:rgba(255,199,64,.5)}.viewer-arrow.previous{left:16px}.viewer-arrow.next{right:16px}.image-caption{height:68px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;font-size:13px;color:#cccdd2}.image-caption #image-counter{font-size:12px;color:#8d9097;font-variant-numeric:tabular-nums}.prompt-panel{position:relative;overflow:auto;padding:44px 30px 32px;border-left:1px solid rgba(255,255,255,.12);background:radial-gradient(ellipse at 100% 0,rgba(255,164,36,.07),transparent 44%),linear-gradient(135deg,rgba(255,255,255,.025),transparent),#131416;scrollbar-width:thin;scrollbar-color:#45464d transparent}.close-dialog{position:absolute;top:18px;right:18px;background:rgba(255,255,255,.04);width:38px;height:38px;color:#cacbd0}.breadcrumb{font-size:12px;color:#95969e;padding-right:36px;margin-bottom:22px}.prompt-panel h2{margin:0 0 18px;font-size:30px;line-height:1.25;font-weight:600;letter-spacing:-.7px;padding-right:10px}.detail-tags{display:flex;flex-wrap:wrap;gap:8px}.detail-tags .tag{font-size:11px;padding:7px 12px;border-color:rgba(255,193,45,.35);color:#ddd6c5}.effect-description{margin:26px 0 34px;color:#c2c3ca;font-size:13px;line-height:1.8}.prompt-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.prompt-heading h3{font-size:11px;letter-spacing:1.3px;margin:0;color:#afb1b9;font-weight:600}.prompt-heading>span{font-size:10px;color:#767a83}.prompt-box{display:block;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;height:240px;padding:19px 18px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(6,7,8,.42);color:#dcdde4;line-height:1.85;font-family:Consolas,"Courier New",monospace;font-size:12px;scrollbar-width:thin;scrollbar-color:#4a4c52 transparent}.copy-full{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;margin-top:20px;border-radius:12px;background:linear-gradient(115deg,#ffda18 5%,#ffbc0c 57%,#ff920d);color:#211600;font-size:15px;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 28px rgba(255,156,0,.08)}.copy-full:hover{filter:brightness(1.07)}.copy-full:active{transform:translateY(1px)}.copy-full .icon{width:24px;height:24px}.prompt-hint{font-size:10px;line-height:1.7;color:#9c9da5;margin:12px 0 30px}.prompt-hint code{color:#c3b68b}.how-to{border-top:1px solid rgba(255,255,255,.14);padding-top:22px}.how-to summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;font-size:13px;color:#d3d4db;padding-block:5px}.how-to summary::-webkit-details-marker{display:none}.how-to summary>.icon{width:16px;height:16px;color:#9699a3}.how-to[open] summary>.icon{transform:rotate(180deg)}.how-to ol{padding-left:19px;color:#b8bac3;font-size:12px;line-height:1.9}.how-to li{padding-left:3px;margin:8px 0}.how-to p{font-size:11px;color:#8e919b;line-height:1.7}.toast{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,189,41,.4);padding:14px 20px;border-radius:12px;box-shadow:0 8px 35px #0008;max-width:calc(100% - 32px);background:#252219;color:#f1ead4;font-size:13px;pointer-events:none}.toast .icon{color:var(--accent);width:20px;height:20px}.page-toast{position:fixed;z-index:10;bottom:24px;left:50%;transform:translateX(-50%)}.dialog-toast{position:absolute;bottom:20px;left:50%;transform:translateX(-50%)}.noscript{text-align:center;margin:30px;color:#ffc94c}
@media(min-width:1600px){.page-shell,.header-inner{width:calc(100% - 112px)}.gallery-grid{gap:24px}.card-footer{padding:14px 18px 14px 20px;min-height:76px}.card-name{font-size:17px}.tag{font-size:11px;padding:7px 11px}}
@media(max-width:1150px){.header-inner,.page-shell{width:calc(100% - 56px)}.toolbar{gap:16px;grid-template-columns:minmax(180px,1.25fr) minmax(270px,1fr) 130px}.sort-field{min-width:130px}.card-footer{padding:12px;gap:8px}.card-tags{gap:4px}.tag{padding:5px 8px;font-size:9px}.card-name{font-size:14px}.copy-icon{width:36px;height:36px;border-radius:10px}.copy-icon .icon{width:20px;height:20px}.detail-layout{grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr)}.prompt-panel{padding:44px 24px 28px}.prompt-panel h2{font-size:27px}}
@media(max-width:900px){.toolbar{grid-template-columns:1fr 142px;gap:14px}.search-field{grid-column:1/-1}.type-switch{max-width:390px;width:100%}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card-name{font-size:16px}.tag{font-size:10px;padding:6px 9px}.card-footer{min-height:68px;padding:12px 14px}.gallery-section{margin-top:26px}.material-filters{gap:8px;flex-wrap:nowrap;overflow:auto;padding:3px 2px 10px;scrollbar-width:none;margin-top:16px}.material-filters::-webkit-scrollbar{display:none}.material-button{font-size:11px;padding:9px 17px}.detail-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr)}.viewer-arrow.previous{left:8px}.viewer-arrow.next{right:8px}.viewer-arrow{width:34px;height:34px}.prompt-panel{padding:42px 22px 24px}.effect-description{margin:22px 0}.prompt-box{height:220px}}
@media(max-width:700px){.site-header{height:72px}.brand{font-size:26px}.header-inner,.page-shell{width:calc(100% - 32px)}.page-shell{padding-top:20px}.gallery-heading h1{font-size:22px}.gallery-heading{margin-bottom:16px}.gallery-grid{grid-template-columns:1fr;gap:18px}.card-footer{min-height:72px;padding:12px 16px}.card-name{font-size:17px}.card-tags{gap:6px}.tag{font-size:10px;padding:7px 10px}.copy-icon{width:42px;height:42px}.search-shortcut{display:none}.sort-field{height:50px}.type-switch{height:50px}.type-button{font-size:12px;padding:8px 10px}.search-field{height:52px}.gallery-section{margin-top:20px}.result-count{font-size:11px}.site-footer{font-size:10px}dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);border-radius:16px}.detail-layout{display:block;overflow:auto;overscroll-behavior:contain}.image-panel{position:relative;padding-top:48px;overflow:visible}.viewer-stage{flex:none;width:100%;aspect-ratio:16/9}.image-caption{height:46px;padding:0 18px;font-size:11px}.prompt-panel{position:static;overflow:visible;border-left:0;border-top:1px solid var(--border);padding:24px 20px 32px}.close-dialog{top:10px;right:10px;z-index:1;background:rgba(26,27,29,.94)}.breadcrumb{margin-bottom:16px}.prompt-panel h2{font-size:26px}.effect-description{font-size:12px;margin:20px 0 26px}.prompt-box{height:200px;font-size:12px}.copy-full{position:sticky;bottom:12px;z-index:1;box-shadow:0 4px 20px #0009}.prompt-hint{font-size:10px}.dialog-toast{position:fixed;bottom:24px;width:max-content;font-size:12px}.viewer-arrow{width:36px;height:36px}.how-to{padding-top:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.preview-button:hover .effect-art{transform:none}}
@media(prefers-reduced-transparency:reduce){.glass,.prompt-panel{backdrop-filter:none;background:#17191c}dialog::backdrop{backdrop-filter:none;background:rgba(4,5,6,.96)}}

@media(max-width:380px){
  .toolbar{grid-template-columns:minmax(0,1fr) 90px;gap:10px}
  .type-switch{min-width:0;gap:2px;padding:4px}
  .type-button{min-width:0;padding:8px 2px;font-size:11px;letter-spacing:-.2px}
  .sort-field{min-width:90px;width:90px}
  .sort-field select{font-size:11px;padding:0 25px 0 10px}
  .sort-field>.icon{right:9px;width:14px;height:14px}
  .card-footer{padding:10px 12px;gap:8px}
  .card-tags .tag{padding:6px 7px;font-size:9px}
}

