:root{--brand: 18 100% 41%;--brand-soft: 18 100% 62%;--brand-ink: 24 62% 6%;--bg: 30 25% 98%;--fg: 20 15% 10%;--card: 30 20% 99%;--muted: 30 20% 95%;--muted-fg: 25 8% 32%;--secondary: 30 20% 91%;--border: 30 15% 88%;--band: 30 22% 95.5%;--radius: .75rem;--shadow: 0 1px 2px hsl(20 15% 10% / .05), 0 12px 32px -18px hsl(20 15% 10% / .22);--font-display: "Alice", Georgia, "Times New Roman", serif;--font-body: "Outfit", ui-sans-serif, system-ui, sans-serif;--font-mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--brand: 18 100% 59%;--brand-soft: 18 100% 59%;--bg: 20 10% 6%;--fg: 34 44% 94%;--card: 20 16% 11%;--muted: 20 13% 9%;--muted-fg: 29 4% 62%;--secondary: 20 13% 13%;--border: 20 8% 17%;--band: 20 12% 8.5%;--shadow: 0 1px 2px hsl(0 0% 0% / .4), 0 12px 32px -18px hsl(0 0% 0% / .7);color-scheme:dark}}:root[data-theme=dark]{--brand: 18 100% 59%;--brand-soft: 18 100% 59%;--bg: 20 10% 6%;--fg: 34 44% 94%;--card: 20 16% 11%;--muted: 20 13% 9%;--muted-fg: 29 4% 62%;--secondary: 20 13% 13%;--border: 20 8% 17%;--band: 20 12% 8.5%;--shadow: 0 1px 2px hsl(0 0% 0% / .4), 0 12px 32px -18px hsl(0 0% 0% / .7);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:hsl(var(--bg));color:hsl(var(--fg));font-family:var(--font-body);font-size:17px;line-height:1.7;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:hsl(var(--brand));text-underline-offset:3px}a:hover{text-decoration-thickness:2px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.01em;margin:0 0 .5em}h1{font-size:clamp(2.2rem,5.5vw,3.6rem)}h2{font-size:clamp(1.55rem,3.2vw,2.2rem);margin-top:1.6em}h3{font-size:1.3rem;margin-top:1.3em}p{margin:0 0 1em}:focus-visible{outline:2px solid hsl(var(--brand));outline-offset:2px;border-radius:6px}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}.narrow{max-width:780px}.center{text-align:center}.muted{color:hsl(var(--muted-fg))}.mono{font-family:var(--font-mono)}.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;z-index:100;background:hsl(var(--card));padding:8px 12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:hsl(var(--bg) / .85);border-bottom:1px solid hsl(var(--border))}.site-header .bar{display:flex;align-items:center;gap:28px;height:60px;max-width:1400px;margin:0 auto;padding:0 20px}.logo{display:flex;align-items:center;gap:10px;color:hsl(var(--fg));text-decoration:none;font-weight:600;font-size:1.12rem;flex:none}.logo-mark{width:32px;height:32px;border-radius:8px;background:hsl(var(--fg));color:hsl(var(--bg));display:flex;align-items:center;justify-content:center;white-space:nowrap;font:400 .95rem/1 var(--font-display);letter-spacing:0;flex:none}.logo-word{font-family:var(--font-display);font-size:1.28rem;font-weight:400;letter-spacing:-.01em}.logo-word b{font-weight:400;color:hsl(var(--brand))}.logo-svg{flex:none;border-radius:8px}.logo-mark b{color:hsl(var(--brand-soft));font-weight:400}.nav{display:flex;gap:22px;align-items:center;font-size:.93rem;flex:1}.nav>a,.nav-drop>button{display:inline-flex;align-items:center;gap:7px;color:hsl(var(--fg));text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:6px 0;white-space:nowrap}.nav>a:hover,.nav-drop>button:hover{color:hsl(var(--brand))}.nav svg{width:16px;height:16px;flex:none}.nav-drop{position:relative}.nav-drop .menu{display:none;position:absolute;top:38px;left:-12px;min-width:260px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:var(--shadow);padding:8px}.nav-drop.open .menu{display:block}.nav-drop .menu a{display:block;padding:9px 12px;border-radius:9px;color:hsl(var(--fg));text-decoration:none}.nav-drop .menu a:hover{background:hsl(var(--muted))}.nav-drop .menu small{display:block;color:hsl(var(--muted-fg));font-size:.8rem}.head-right{display:flex;align-items:center;gap:10px;margin-left:auto}.search-pill{display:inline-flex;align-items:center;gap:10px;height:38px;min-width:220px;padding:0 12px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--muted-fg));font:inherit;font-size:.92rem;cursor:pointer}.search-pill kbd{margin-left:auto;font:.75rem var(--font-mono);border:1px solid hsl(var(--border));border-radius:6px;padding:1px 6px;background:hsl(var(--card))}.icon-btn{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--fg));border-radius:999px;height:38px;width:38px;display:inline-grid;place-items:center;cursor:pointer;font:inherit}.icon-btn svg{width:17px;height:17px}.menu-btn{display:none}@media(max-width:900px){.site-header .bar{gap:12px}.nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:hsl(var(--bg));border-bottom:1px solid hsl(var(--border));padding:8px 16px 16px}.nav.open{display:flex}.nav>a,.nav-drop>button{padding:12px 0;width:100%}.nav-drop .menu{position:static;display:block;box-shadow:none;border:0;padding:0 0 0 22px;min-width:0;background:none}.search-pill{min-width:0;width:38px;padding:0;justify-content:center}.search-pill span,.search-pill kbd{display:none}.menu-btn{display:inline-grid}}.search-dialog{position:fixed;inset:0;z-index:90;display:none;background:hsl(var(--fg) / .35);backdrop-filter:blur(4px);padding:10vh 16px 16px}.search-dialog.open{display:block}.search-box{max-width:600px;margin:0 auto;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.search-box input{width:100%;border:0;border-bottom:1px solid hsl(var(--border));border-radius:0;padding:16px 18px;font-size:1.05rem;min-height:56px;background:transparent}.search-box input:focus{outline:none}.search-results{list-style:none;margin:0;padding:8px;max-height:55vh;overflow:auto}.search-results:empty:after{content:"Type to search 400+ generators";display:block;padding:14px 10px;color:hsl(var(--muted-fg));font-size:.92rem}.search-results a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;color:hsl(var(--fg));text-decoration:none}.search-results a small{color:hsl(var(--muted-fg))}.search-results a:hover,.search-results a:focus{background:hsl(var(--muted));outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:600 1rem var(--font-body);border-radius:999px;padding:12px 22px;text-decoration:none;transition:transform .12s ease,background .15s ease}.btn-primary{background:hsl(var(--brand-soft));color:hsl(var(--brand-ink))}.btn-primary:hover{background:hsl(var(--brand));color:#fff}.btn-ghost{background:hsl(var(--card));color:hsl(var(--fg));border:1px solid hsl(var(--border))}.btn:active{transform:translateY(1px)}select,input[type=search],input[type=text]{font:inherit;color:hsl(var(--fg));background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;padding:10px 14px;min-height:44px}.hero{position:relative;padding:70px 0 30px;text-align:center}.hero:before{content:"";position:absolute;inset:-40px 0 auto;height:420px;z-index:-1;background:radial-gradient(40% 60% at 22% 40%,hsl(var(--brand-soft) / .13),transparent 70%),radial-gradient(35% 55% at 78% 35%,hsl(var(--brand-soft) / .11),transparent 70%)}.badge{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:hsl(var(--brand));border-bottom:1px solid hsl(var(--brand) / .4);padding:2px 4px 4px}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:hsl(var(--brand))}.hero h1{font-size:clamp(2.6rem,7vw,4.6rem);margin:22px auto 12px;max-width:900px}.hero h1 span{display:block;color:hsl(var(--brand))}.hero p.lead{font-size:1.15rem;color:hsl(var(--muted-fg));max-width:640px;margin:0 auto 18px}.counter{display:inline-flex;align-items:baseline;gap:10px;color:hsl(var(--muted-fg));font-size:.9rem}.counter b{font:500 1.35rem var(--font-mono);color:hsl(var(--fg))}.counter:before{content:"";width:7px;height:7px;border-radius:50%;background:hsl(var(--brand));align-self:center}.section{padding:46px 0}.section-head{text-align:center;margin-bottom:30px}.section-head h2{margin:0 0 8px}.section-head p{color:hsl(var(--muted-fg));margin:0}.cells{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid hsl(var(--border));border-radius:18px;overflow:hidden;background:hsl(var(--card))}.cells>*{padding:28px 26px;border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));text-decoration:none;color:hsl(var(--fg))}.cells>*:nth-child(3n){border-right:0}.cells.two{grid-template-columns:repeat(2,1fr)}.cells.two>*:nth-child(3n){border-right:1px solid hsl(var(--border))}.cells.two>*:nth-child(2n){border-right:0}.cells .num{font:400 2rem var(--font-display);color:hsl(var(--brand));display:block;margin-bottom:14px}.cells h3{margin:0 0 8px;font-size:1.3rem}.cells p{margin:0;color:hsl(var(--muted-fg));font-size:.95rem}.cells a:hover h3{color:hsl(var(--brand))}.label{font:500 .75rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--brand));display:block;margin-bottom:8px}@media(max-width:860px){.cells,.cells.two{grid-template-columns:1fr}.cells>*{border-right:0!important}}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tool-card{display:block;padding:15px 18px;text-decoration:none;color:hsl(var(--fg));border-radius:14px;border:1px solid hsl(var(--border));background:hsl(var(--card));transition:border-color .15s ease,transform .15s ease}.tool-card:hover{border-color:hsl(var(--brand) / .55);transform:translateY(-1px)}.tool-card strong{display:block;font-weight:600;font-size:1rem}.tool-card span{font-size:.86rem;color:hsl(var(--muted-fg))}.pill{display:inline-block;font:500 .74rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--brand));background:hsl(var(--brand) / .09);border-radius:999px;padding:4px 10px}.chip{display:inline-block;font-size:.82rem;border:1px solid hsl(var(--border));border-radius:999px;padding:4px 12px;color:hsl(var(--fg));text-decoration:none;background:hsl(var(--card))}.chip:hover{border-color:hsl(var(--brand));color:hsl(var(--brand))}.chip-purple{color:#6b33cc;background:#f3eefc;border-color:#dccef3}:root[data-theme=dark] .chip-purple{background:#2a203c;border-color:#463663;color:#c1a3f5}.tool-hero{text-align:center;padding:34px 0 10px}.crumbs{font:400 .76rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-fg))}.crumbs a{color:hsl(var(--muted-fg));text-decoration:none}.crumbs a:hover{color:hsl(var(--brand))}.crumbs .sep{margin:0 8px;opacity:.6}.tool-hero h1{font-size:clamp(2.1rem,5vw,3.2rem);margin:16px 0 12px}.tool-hero .sub{max-width:680px;margin:0 auto 14px;font-size:1.08rem;color:hsl(var(--muted-fg))}.part-of{font:.86rem var(--font-mono);color:hsl(var(--muted-fg))}.part-of:before{content:"◆";color:hsl(var(--brand));margin-right:8px;font-size:.7rem}.part-of a{color:hsl(var(--fg))}.gen{max-width:700px;margin:26px auto 34px;padding:16px;border-radius:22px;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow)}.gen-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;min-height:180px}@media(max-width:560px){.gen-list{grid-template-columns:1fr}}.gen-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px 11px 16px;border-radius:12px;background:hsl(var(--muted));border:1px solid hsl(var(--border));font-weight:500;font-size:1.04rem;word-break:break-word;animation:pop .25s ease both}@keyframes pop{0%{opacity:0;transform:translateY(4px)}}.gen-list button{border:0;background:transparent;color:hsl(var(--muted-fg));cursor:pointer;font:500 .8rem var(--font-body);padding:5px 7px;border-radius:7px;flex:none}.gen-list button:hover{color:hsl(var(--brand));background:hsl(var(--card))}.gen-bar{display:flex;gap:8px;margin-top:14px;align-items:stretch}.gen-bar .btn-primary{flex:1;border-radius:999px;font-size:1.05rem;padding:14px 20px}.gen-opts{position:relative}.gen-opts select{height:100%;border-radius:999px;padding:0 14px;min-width:120px}.blend-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}.blend-row input{flex:1;min-width:0;border-radius:999px;padding:10px 16px}.blend-row span{font:400 1.4rem var(--font-display);color:hsl(var(--brand))}.gen-note{font-size:.86rem;text-align:center;margin:12px 0 0;color:hsl(var(--muted-fg))}.band{background:hsl(var(--band));border-top:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border))}.band-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;padding:26px 16px}.band-inner .saved-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.band-inner .saved-empty{text-align:center;color:hsl(var(--muted-fg));font-size:.95rem}.band-line{font:500 clamp(1.15rem,2.6vw,1.75rem) var(--font-mono);padding:26px 16px;margin:0;letter-spacing:-.01em}@media(max-width:760px){.band-inner{grid-template-columns:1fr}}.article-wrap{display:grid;grid-template-columns:200px minmax(0,1fr) 300px;gap:40px;align-items:start;padding-top:40px}.toc-col{position:sticky;top:84px}.author-card{display:flex;gap:12px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid hsl(var(--border));margin-bottom:18px;font-size:.9rem}.avatar{width:42px;height:42px;border-radius:50%;background:hsl(var(--fg));color:hsl(var(--bg));display:grid;place-items:center;font:400 1rem var(--font-display);flex:none}.author-card a{color:hsl(var(--fg));font-weight:600;text-decoration:none}.author-card small{display:block;color:hsl(var(--muted-fg));font-size:.8rem;line-height:1.5}.author-card em{font-size:.8rem;color:hsl(var(--muted-fg))}.toc h2{font:500 .75rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-fg));margin:0 0 10px}.toc ol{list-style:none;padding:0 0 0 14px;margin:0;border-left:2px solid hsl(var(--border))}.toc li{margin:0 0 10px;line-height:1.35;font-size:.88rem}.toc a{color:hsl(var(--muted-fg));text-decoration:none}.toc a:hover{color:hsl(var(--brand))}.share-btn{margin-top:18px;width:100%;padding:9px 14px;font-size:.9rem}.side-card{position:sticky;top:84px;padding:20px 20px 16px;border-radius:16px;background:hsl(var(--band));border:1px solid hsl(var(--border))}.side-card h2{font:500 .76rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}.side-card ul{list-style:none;padding:0;margin:0 0 10px}.side-card li a{display:block;padding:6px 0;color:hsl(var(--fg));text-decoration:none;font-size:.93rem;line-height:1.4}.side-card li a:hover{color:hsl(var(--brand))}.side-card .more{color:hsl(var(--brand));text-decoration:none;font-size:.92rem}@media(max-width:1080px){.article-wrap{grid-template-columns:1fr}.toc-col,.side-card{position:static}.toc{display:none}}.did-you-know{border:1px solid hsl(var(--brand) / .25);background:hsl(var(--brand-soft) / .07);border-radius:12px;padding:0;margin-bottom:28px}.did-you-know summary{list-style:none;cursor:pointer;padding:12px 16px;display:flex;gap:10px;align-items:baseline}.did-you-know summary::-webkit-details-marker{display:none}.did-you-know summary b{font:500 .75rem var(--font-mono);letter-spacing:.08em;color:hsl(var(--brand));flex:none}.did-you-know summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem}.did-you-know[open] summary span{white-space:normal}.did-you-know p{margin:0;padding:0 16px 14px;font-size:.95rem}.content h2{border-left:4px solid hsl(var(--brand));padding-left:16px;font-size:clamp(1.45rem,2.8vw,1.9rem);margin-top:1.7em}.content>p.lede:first-letter{float:left;font:400 3.4rem/.9 var(--font-display);margin:6px 10px 0 0}.content ul,.content ol{padding-left:1.3em}.content li{margin-bottom:.45em}.examples{width:100%;border-collapse:collapse;margin:10px 0 18px;font-size:.97rem}.examples th,.examples td{text-align:left;padding:11px 12px;border-bottom:1px solid hsl(var(--border));vertical-align:top}.examples th{font:500 .76rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--muted-fg))}.table-scroll{overflow-x:auto}.faq details{border:1px solid hsl(var(--border));border-radius:12px;padding:12px 16px;margin-bottom:10px;background:hsl(var(--card))}.faq summary{font-weight:600;cursor:pointer}.type-hero{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center;padding:34px 0 20px}.art{aspect-ratio:1 / 1;border-radius:18px;border:1px solid hsl(var(--border));position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(120% 90% at 20% 10%,hsl(var(--brand-soft) / .35),transparent 60%),radial-gradient(90% 90% at 90% 100%,hsl(var(--fg) / .18),transparent 60%),hsl(var(--muted))}.art span{font:400 clamp(6rem,16vw,11rem)/1 var(--font-display);color:hsl(var(--fg) / .9);letter-spacing:-.04em}.art:after{content:"";position:absolute;inset:14px;border:1px dashed hsl(var(--fg) / .18);border-radius:12px}.type-hero h1{font-size:clamp(2.2rem,4.6vw,3.3rem);margin:16px 0 14px}.popular-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}.popular-row .mono{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--muted-fg));margin-right:4px}@media(max-width:860px){.type-hero{grid-template-columns:1fr;gap:22px}.art{aspect-ratio:16 / 9}}.breadcrumbs{font:.76rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:26px 0 8px;color:hsl(var(--muted-fg))}.breadcrumbs a{color:hsl(var(--muted-fg));text-decoration:none}.byline{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.92rem;color:hsl(var(--muted-fg));margin-bottom:8px}.card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:18px;box-shadow:var(--shadow)}.az{columns:3 240px;column-gap:28px}.az a{display:block;padding:3px 0;color:hsl(var(--fg));text-decoration:none;break-inside:avoid}.az a:hover{color:hsl(var(--brand))}.az h2{column-span:all;font-size:1.4rem;border-bottom:1px solid hsl(var(--border));padding-bottom:6px}.site-footer{margin-top:70px;border-top:1px solid hsl(var(--border));background:hsl(var(--band));padding:44px 0 28px;font-size:.94rem}.site-footer .cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:28px}@media(max-width:760px){.site-footer .cols{grid-template-columns:1fr 1fr}}.site-footer h2{font:500 .75rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;color:hsl(var(--muted-fg))}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin-bottom:7px}.site-footer a{color:hsl(var(--fg));text-decoration:none}.site-footer a:hover{color:hsl(var(--brand))}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:hsl(var(--fg));color:hsl(var(--bg));padding:10px 18px;border-radius:999px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:99}.toast.show{opacity:1}.art-pic span{display:none}.art-pic .art-svg{position:absolute;inset:0;width:100%;height:100%;display:block}.art.art-pic{aspect-ratio:4 / 3}.gen2{max-width:760px;margin:26px auto 34px;padding:18px;border-radius:24px;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow)}.gen-actions{display:flex;gap:8px;align-items:stretch}.round-btn{width:56px;height:56px;flex:none;border-radius:50%;border:1.5px solid hsl(var(--fg));background:transparent;color:hsl(var(--fg));display:grid;place-items:center;cursor:pointer}.round-btn svg{width:22px;height:22px}.round-btn.on{background:hsl(var(--fg));color:hsl(var(--bg))}.big-btn{position:relative;overflow:hidden;flex:1;height:56px;border:0;border-radius:999px 0 0 999px;background:hsl(var(--brand-soft));color:hsl(var(--brand-ink));font:600 1.08rem var(--font-body);cursor:pointer;transition:background .15s ease}.big-btn:hover{background:#ff621f}.big-btn .big-progress{position:absolute;left:0;bottom:0;height:4px;width:0;background:#6b422ebf}.big-btn.loading{background:hsl(var(--brand-soft) / .85);cursor:progress}.big-btn.loading .big-progress{animation:prog .65s ease-out forwards}.big-btn.loading .big-label:after{content:" ·:·";display:inline-block;animation:blink .6s steps(2) infinite}@keyframes prog{to{width:100%}}@keyframes blink{50%{opacity:.3}}.swipe-btn{display:inline-flex;align-items:center;gap:8px;height:56px;padding:0 22px;border-radius:0 999px 999px 0;border:1px solid hsl(var(--brand-soft) / .35);background:hsl(var(--brand-soft) / .08);color:hsl(var(--brand));font:500 1.02rem var(--font-body);cursor:pointer}.swipe-btn svg{width:20px;height:20px}.swipe-btn:hover{background:hsl(var(--brand-soft) / .16)}.gen-settings{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:14px;padding:14px 16px;border:1px dashed hsl(var(--border));border-radius:16px}.gen-settings[hidden]{display:none}.gen-settings label{display:flex;flex-direction:column;gap:4px;font:500 .74rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--muted-fg))}.gen-settings select{min-height:40px;padding:6px 12px;text-transform:none;letter-spacing:0;font-family:var(--font-body)}.gen-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:16px 0 14px;flex-wrap:wrap}.tool-group,.view-group{display:flex;align-items:center;border:1px solid hsl(var(--border));border-radius:14px;padding:4px;background:hsl(var(--bg))}.tool-group button{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:hsl(var(--muted-fg));font:400 .95rem var(--font-body);padding:8px 12px;border-radius:10px;cursor:pointer}.tool-group button:hover{background:hsl(var(--muted));color:hsl(var(--fg))}.tool-group svg{width:19px;height:19px}.view-group button{width:40px;height:36px;border:0;border-radius:10px;background:transparent;color:hsl(var(--fg));display:grid;place-items:center;cursor:pointer}.view-group button.on{background:hsl(var(--secondary))}.view-group svg{width:19px;height:19px}@media(max-width:560px){.tool-group button{padding:8px 7px;font-size:.84rem}.tool-group svg{display:none}.swipe-btn{padding:0 14px}.round-btn{width:50px;height:50px}.big-btn,.swipe-btn{height:50px}}.name-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}.name-cards.grid-view{grid-template-columns:repeat(2,minmax(0,1fr))}.name-cards.list-view{grid-template-columns:1fr}@media(max-width:600px){.name-cards.grid-view{grid-template-columns:1fr}}.name-card{border:1px solid hsl(var(--border));border-radius:18px;padding:16px 16px 12px;background:hsl(var(--bg));animation:pop .3s ease both}.nc-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}.nc-ava{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;background:hsl(var(--muted));color:#422e24;font:500 1rem var(--font-mono)}.nc-ava.big{width:74px;height:74px;font-size:1.5rem}.nc-name{display:block;font:400 1.32rem/1.2 var(--font-display);word-break:break-word}.nc-sub{display:block;font:.78rem var(--font-mono);color:hsl(var(--muted-fg));margin-top:2px}.nc-line{margin:0 0 4px;font-size:.92rem;color:hsl(var(--muted-fg))}.nc-line b{font:500 .72rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--fg));margin-right:6px}.nc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid hsl(var(--border))}.nc-copy{display:inline-flex;align-items:center;gap:6px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--fg));border-radius:10px;padding:6px 12px;font:500 .88rem var(--font-body);cursor:pointer}.nc-copy svg,.nc-ic svg{width:16px;height:16px}.nc-icons{display:flex;gap:6px}.nc-ic{width:34px;height:34px;border-radius:10px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--muted-fg));display:grid;place-items:center;cursor:pointer;font-size:.95rem}.nc-ic:hover,.nc-copy:hover{border-color:hsl(var(--brand) / .5);color:hsl(var(--brand))}.nc-ic.on{color:#e03131;border-color:#ffc9c9;background:#fff5f5}:root[data-theme=dark] .nc-ic.on{background:#361717;border-color:#6b2e2e}.list-view .name-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:center;padding:12px 14px}.list-view .name-card .nc-head{margin:0}.list-view .name-card .nc-line{display:none}.list-view .name-card .nc-foot{margin:0;padding:0;border:0;gap:8px}.name-card.sk{pointer-events:none}.sk-c,.sk-l{display:block;border-radius:999px;background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--secondary)),hsl(var(--muted)) 75%);background-size:200% 100%;animation:shimmer 1.1s linear infinite}.sk-c{width:46px;height:46px;border-radius:50%;flex:none}.sk-l{height:14px;margin:8px 0}.sk-l.thin{height:10px}.sk-l.tall{height:28px;border-radius:10px;margin:0}.w30{width:30%}.w60{width:60%}.w70{width:70%}@keyframes shimmer{to{background-position:-200% 0}}.swipe-modal{position:fixed;inset:0;z-index:95;background:hsl(var(--fg) / .45);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}.swipe-modal[hidden]{display:none}.swipe-box{position:relative;width:100%;max-width:400px;background:hsl(var(--card));border-radius:24px;padding:24px 22px 20px;box-shadow:var(--shadow)}.swipe-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid hsl(var(--border));background:hsl(var(--bg));color:hsl(var(--fg));cursor:pointer}.swipe-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:34px 18px;margin:10px 0 16px;border-radius:20px;border:1px solid hsl(var(--border));background:hsl(var(--bg));transition:transform .22s ease,opacity .22s ease}.swipe-card strong{font:400 2rem/1.15 var(--font-display)}.swipe-card.in{animation:pop .25s ease both}.swipe-card.out-l{transform:translate(-60px) rotate(-6deg);opacity:0}.swipe-card.out-r{transform:translate(60px) rotate(6deg);opacity:0}.swipe-ctrl{display:flex;justify-content:center;gap:22px}.swipe-ctrl button{width:64px;height:64px;border-radius:50%;border:1px solid hsl(var(--border));background:hsl(var(--bg));font-size:1.4rem;cursor:pointer;color:hsl(var(--muted-fg));transition:transform .12s ease}#swipe-yes{color:#e03131;border-color:#ffc9c9}.swipe-ctrl button:hover{transform:scale(1.06)}.gen-art{margin:0 0 14px;border-radius:18px;overflow:hidden;aspect-ratio:2 / 1;background:hsl(var(--muted))}.gen-art svg{display:block;width:100%;height:100%}.gen-settings{display:block;margin:0 0 14px;padding:4px 2px 0;border:0}.gs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}@media(max-width:560px){.gs-grid{grid-template-columns:1fr}}.gen-settings .gs-grid label{display:flex;flex-direction:column;gap:6px;font:500 .9rem var(--font-body);letter-spacing:0;text-transform:none;color:hsl(var(--fg))}.gen-settings select,.gen-settings input[type=text]{width:100%;min-height:44px;padding:8px 14px;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--bg));color:hsl(var(--fg));font:400 .95rem var(--font-body)}.gen-settings input[type=text]:focus,.gen-settings select:focus{outline:2px solid hsl(var(--brand-soft) / .6);outline-offset:1px}.gs-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.gs-chip{border:0;border-radius:999px;padding:6px 13px;background:hsl(var(--muted));color:hsl(var(--muted-fg));font:400 .84rem var(--font-body);cursor:pointer}.gs-chip:hover{color:hsl(var(--fg))}.gs-chip.on{background:hsl(var(--brand-soft) / .18);color:hsl(var(--brand))}.gs-chip.gs-reset{background:transparent;text-decoration:underline}.nc-score{position:relative;width:48px;height:48px;flex:none;color:hsl(var(--brand-soft));display:grid;place-items:center;cursor:help}.nc-score svg{position:absolute;inset:0;width:48px;height:48px}.nc-score b{font:600 .95rem var(--font-mono);color:hsl(var(--fg))}.nc-title{min-width:0}.nc-say{display:inline-flex;align-items:center;gap:6px;margin-top:3px;font:.82rem var(--font-mono);color:hsl(var(--muted-fg));word-break:break-word}.nc-speak{width:26px;height:26px;flex:none;border:0;border-radius:50%;background:transparent;color:hsl(var(--muted-fg));display:grid;place-items:center;cursor:pointer}.nc-speak:hover{background:hsl(var(--muted));color:hsl(var(--brand))}.nc-speak svg{width:15px;height:15px}.nc-about{color:hsl(var(--fg))}.nc-origin b{margin-right:6px}.nc-empty{text-align:center;color:hsl(var(--muted-fg));grid-column:1 / -1}.list-view .name-card .nc-say{margin-top:0}
