@font-face{font-family:Fraunces;src:url(/fonts/fraunces-normal-latin.woff2)format("woff2");font-weight:700;font-style:normal;font-display:optional}@font-face{font-family:Fraunces;src:url(/fonts/fraunces-italic-latin.woff2)format("woff2");font-weight:600;font-style:italic;font-display:optional}:root{--paper:#fbf5ea;--paper-2:#f3eadb;--card:#fffdf8;--ink:#17141f;--ink-soft:#5d5568;--line:#17141f;--hair:#e3d8c6;--accent:#ff5a36;--accent-ink:#fff;--accent-soft:#ffe2d9;--butter:#ffd84d;--ok:#138a52;--radius:14px;--shadow:4px 4px 0 var(--line);--shadow-sm:2px 2px 0 var(--line);--display:"Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;color-scheme:light;--bg:var(--paper);--surface:var(--card);--surface-2:var(--paper-2);--text:var(--ink);--muted:var(--ink-soft);--border:var(--hair);--brand:var(--accent);--brand-ink:var(--accent-ink);--brand-soft:var(--accent-soft)}body[data-accent=violet]{--accent:#6b4eff;--accent-soft:#e7e1ff}body[data-accent=butter]{--accent:#e0a800;--accent-ink:#17141f;--accent-soft:#fff1bf}body[data-accent=coral]{--accent:#ff5a36;--accent-soft:#ffe2d9}body[data-accent=pink]{--accent:#e1306c;--accent-soft:#ffdfe9}body[data-accent=blurple]{--accent:#5865f2;--accent-soft:#e2e5ff}@media (prefers-color-scheme:dark){:root{--paper:#15121b;--paper-2:#1f1b28;--card:#1c1824;--ink:#f6efe3;--ink-soft:#b6aec2;--line:#f6efe3;--hair:#3a3347;--accent-soft:#3a2630;color-scheme:dark}body[data-accent=violet]{--accent:#9c88ff;--accent-soft:#2c2547}body[data-accent=butter]{--accent:#ffd84d;--accent-soft:#3a3320}body[data-accent=pink]{--accent:#ff6a9a;--accent-soft:#3d2230}body[data-accent=blurple]{--accent:#8b95ff;--accent-soft:#262a4a}body[data-accent=coral],body:not([data-accent]){--accent:#ff7a5c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{overflow-x:clip}body{color:var(--ink);font:16px/1.6 var(--sans);background-color:var(--paper);background-image:radial-gradient(color-mix(in srgb, var(--ink) 9%, transparent) 1px, transparent 1.2px);background-size:22px 22px;margin:0}a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.wrap{max-width:880px;margin:0 auto;padding:0 16px}.skip{position:absolute;left:-9999px}.skip:focus{background:var(--card);z-index:30;border:2px solid var(--line);padding:8px 12px;top:8px;left:16px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{background:var(--paper);border-bottom:2px solid var(--line)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;min-height:64px;padding-top:10px;padding-bottom:10px;display:flex}.logo{color:var(--ink);font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.55rem;font-style:italic;font-weight:600;text-decoration:none;display:inline-flex}.logo-mark{border:2px solid var(--line);background:var(--accent);width:36px;height:36px;color:var(--accent-ink);box-shadow:var(--shadow-sm);font-family:var(--display);border-radius:10px;place-items:center;font-size:1.35rem;font-style:italic;font-weight:600;line-height:1;display:grid;transform:rotate(-6deg)}.logo:hover .logo-mark{transform:rotate(0)}.logo:hover{color:var(--ink)}.nav{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.nav a{color:var(--ink);border:2px solid #0000;border-radius:999px;padding:5px 12px;font-size:.92rem;font-weight:600;text-decoration:none;display:block}.nav a:hover{border-color:var(--line);color:var(--ink)}.nav a[aria-current=page]{background:var(--ink);color:var(--paper);border-color:var(--line)}.crumbs{color:var(--ink-soft);font-size:.85rem;font-family:var(--mono);margin-top:22px}.crumbs a{color:var(--ink-soft)}.page-head{margin:22px 0 14px}h1,.prose h2,.gen-group,.related h2,.next h2,.bubble-image h2,.reverse h2,.preview-title{font-family:var(--display);letter-spacing:-.02em;font-weight:700}h1{margin:0 0 12px;font-size:clamp(2.3rem,6vw,3.6rem);line-height:1.02}h1:after{content:".";color:var(--accent)}.lede{color:var(--ink-soft);max-width:62ch;margin:0;font-size:1.1rem}.updated{font-family:var(--mono);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 0;font-size:.78rem}.specimen{border-top:2px solid var(--line);border-bottom:2px solid var(--line);background:var(--ink);width:100vw;color:var(--paper);white-space:nowrap;margin:20px calc(50% - 50vw) 0;padding:12px 0;font-size:1.25rem;overflow:hidden}.specimen-track{gap:34px;padding-left:34px;animation:40s linear infinite specimen;display:inline-flex}.specimen-track span:after{content:"✦";color:var(--accent);vertical-align:middle;margin-left:34px;font-size:.9rem}@keyframes specimen{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.specimen-track{animation:none}}.generator{counter-reset:group;margin-bottom:44px}.gen-input{z-index:5;background:var(--paper);padding:14px 0 10px;position:sticky;top:0}.gen-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.8rem;font-weight:700;display:block}.gen-field{position:relative}.gen-field textarea{resize:vertical;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);width:100%;min-height:72px;color:var(--ink);font-family:var(--display);box-shadow:var(--shadow);padding:16px 48px 16px 18px;font-size:1.45rem;font-weight:700;line-height:1.3;display:block}.gen-field textarea::placeholder{color:color-mix(in srgb, var(--ink) 35%, transparent)}.gen-field textarea:focus{box-shadow:4px 4px 0 var(--accent);outline:none}.gen-clear{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;font-size:1.4rem;line-height:1;position:absolute;top:12px;right:12px}.gen-clear:hover{border-color:var(--line);color:var(--ink)}.gen-hint{color:var(--ink-soft);margin:8px 0 0;font-size:.85rem}.gen-jump{scrollbar-width:thin;gap:8px;padding:6px 2px 12px;display:flex;overflow-x:auto}.gen-jump a{border:2px solid var(--line);background:var(--card);color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;padding:5px 12px;font-size:.86rem;font-weight:600;text-decoration:none}.gen-jump a span{font-family:var(--mono);color:var(--ink-soft);margin-left:4px;font-size:.75rem}.gen-jump a:hover{background:var(--accent);color:var(--accent-ink)}.gen-jump a:hover span{color:inherit}.gen-section{scroll-margin-top:170px}.gen-group{align-items:baseline;gap:10px;margin:30px 0 4px;font-size:1.5rem;display:flex}.gen-section:not(.gen-favs) .gen-group:before{counter-increment:group;content:counter(group, decimal-leading-zero);font-family:var(--mono);color:var(--accent);letter-spacing:.05em;font-size:.8rem;font-weight:700}.gen-desc{color:var(--ink-soft);max-width:68ch;margin:0 0 12px;font-size:.93rem}.gen-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.gen-item{align-items:stretch;gap:8px;display:flex}.gen-row{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);min-width:0;min-height:68px;color:var(--ink);text-align:left;font:inherit;cursor:pointer;flex:1;grid-template-columns:1fr auto;grid-template-areas:"name copy""out copy";align-items:center;gap:2px 12px;padding:10px 16px;transition:transform 80ms,box-shadow 80ms;display:grid}.gen-row:hover{box-shadow:var(--shadow);transform:translate(-2px,-2px)}.gen-row:active{box-shadow:none;transform:none}.gen-name{font-family:var(--mono);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;grid-area:name;font-size:.72rem}.gen-out{overflow-wrap:anywhere;grid-area:out;min-width:0;font-size:1.35rem;line-height:1.5}.gen-copy{border:2px solid var(--line);background:var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;grid-area:copy;padding:5px 12px;font-size:.8rem;font-weight:700}.gen-row.is-copied{background:var(--accent-soft)}.gen-row.is-copied .gen-copy{background:var(--ok);color:#fff}.gen-row.is-copied .gen-copy:before{content:"✓ "}.gen-fav{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);width:46px;color:var(--ink-soft);cursor:pointer;flex:none;font-size:1.2rem}.gen-fav:hover{color:var(--ink);background:var(--butter)}.gen-fav[aria-pressed=true]{background:var(--butter);color:var(--ink)}.gen-favs .gen-group{color:var(--ink)}.gen-symbols{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.gen-symbol{border:2px solid var(--line);background:var(--card);min-width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:10px;padding:0 8px;font-size:1.15rem}.gen-symbol:hover{background:var(--accent-soft)}.gen-status{z-index:25;border:2px solid var(--line);background:var(--butter);color:#17141f;box-shadow:var(--shadow-sm);pointer-events:none;opacity:0;border-radius:999px;max-width:calc(100% - 32px);margin:0;padding:10px 18px;font-size:.9rem;font-weight:700;transition:opacity .2s;position:fixed;top:76px;left:50%;transform:translate(-50%)}.gen-status:not(:empty){opacity:1}.prose{max-width:70ch}.prose h2{margin:48px 0 12px;font-size:1.9rem;line-height:1.12}.prose h3{margin:26px 0 6px;font-size:1.12rem}.prose ol,.prose ul{padding-left:1.3em}.prose li::marker{color:var(--accent);font-weight:700}.prose code{background:var(--paper-2);border:1px solid var(--hair);font-family:var(--mono);border-radius:6px;padding:1px 6px;font-size:.88em}.prose table{border-collapse:separate;border-spacing:0;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);width:100%;margin:14px 0;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--hair);vertical-align:top;padding:10px 12px}.prose tr:last-child td{border-bottom:0}.prose th{background:var(--ink);color:var(--paper);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.note{background:var(--accent-soft);border:2px solid var(--line);border-radius:var(--radius);padding:12px 16px}.example-bio{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:14px 16px;font-size:1.05rem}.compare{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:14px 0;display:grid}.compare>div{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:16px}.compare .sample{margin:4px 0 8px;font-size:1.6rem;display:block}.quick{list-style:none;padding:0!important}.quick li{border-bottom:2px dashed var(--hair);padding:12px 0}.glossary dt{font-family:var(--display);margin-top:16px;font-size:1.1rem;font-weight:700}.glossary dd{margin:2px 0 0}.faq details{border-bottom:2px solid var(--line);padding:4px 0}.faq details:first-of-type{border-top:2px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--display);color:var(--accent);font-size:1.6rem}.faq details[open] summary:after{content:"−"}.faq summary h3{margin:12px 0;font-size:1.05rem}.faq details p{margin-top:0}.next{margin:52px 0}.next h2{font-size:1.6rem}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tool-card{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);height:100%;color:var(--ink);flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:flex}.tool-card:hover{color:var(--ink);box-shadow:4px 4px 0 var(--accent);transform:translate(-2px,-2px)}.tool-name{font-family:var(--display);font-size:1.15rem;font-weight:700}.tool-name:after{content:" →";color:var(--accent)}.tool-blurb{color:var(--ink-soft);font-size:.92rem}.bubble-image,.reverse{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);margin:0 0 44px;padding:22px}.bubble-image h2,.reverse h2{margin-top:0;font-size:1.55rem;line-height:1.15}.bubble-swatches{gap:8px;margin:12px 0;display:flex}.swatch{border:2px solid var(--line);background:var(--swatch);cursor:pointer;border-radius:50%;width:38px;height:38px}.swatch[aria-checked=true]{box-shadow:0 0 0 3px var(--card), 0 0 0 5px var(--line)}.bubble-canvas-wrap{border:2px dashed var(--hair);border-radius:var(--radius);background:repeating-conic-gradient(var(--paper-2) 0% 25%, var(--card) 0% 50%) 50% / 20px 20px;padding:12px;overflow-x:auto}.bubble-canvas-wrap canvas{max-width:100%;height:auto;display:block}.btn{border:2px solid var(--line);background:var(--accent);color:var(--accent-ink);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;margin:12px 0 8px;padding:10px 20px;font-weight:800}.btn:hover{box-shadow:3px 3px 0 var(--line);transform:translate(-1px,-1px)}.btn:active{box-shadow:none;transform:none}.reverse textarea{border:2px solid var(--line);border-radius:var(--radius);background:var(--paper);width:100%;min-height:64px;color:var(--ink);font:inherit;resize:vertical;padding:12px 14px;font-size:1.1rem;display:block}.reverse-out{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.reverse-out output{border:2px dashed var(--line);border-radius:var(--radius);background:var(--paper-2);overflow-wrap:anywhere;flex:1;min-width:200px;padding:12px 14px;font-size:1.05rem}.chips{flex-wrap:wrap;gap:6px;margin:8px 0 16px;display:flex}.chip{border:2px solid var(--line);background:var(--card);min-width:42px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;padding:6px 10px;font-size:1.1rem}.chip:hover{background:var(--accent-soft)}.chip.is-copied{background:var(--ok);color:#fff}.chip.is-copied:after{content:" ✓";font-size:.85rem}.preview{z-index:20;border:2px solid var(--line);background:var(--card);width:min(410px,100% - 32px);max-height:62vh;box-shadow:6px 6px 0 var(--line);border-radius:18px;padding:14px;position:fixed;bottom:16px;right:16px;overflow-y:auto}.preview[hidden]{display:none}.preview-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.preview-title{flex:1;margin:0;font-size:1.05rem;line-height:1.15}.preview-select{border:2px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:10px;max-width:52%;padding:6px 8px;font-size:.85rem;font-weight:600}.preview-close{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;font-size:1.3rem}.preview-close:hover{border-color:var(--line)}.mock{color:#111;background:#fff;border:1px solid #e3e3e3;border-radius:12px;align-items:flex-start;gap:12px;padding:14px;display:flex}.mock-avatar{background:linear-gradient(135deg,#ffb199,#a78bfa);border-radius:50%;flex:none;width:52px;height:52px}.mock-body{min-width:0}.mock-name{overflow-wrap:anywhere;font-size:.98rem;font-weight:700}.mock-handle{color:#737373;font-size:.82rem}.mock-bio{overflow-wrap:anywhere;color:#262626;margin-top:6px;font-size:.9rem}.mock .is-target{outline:2px dashed var(--accent);outline-offset:2px;border-radius:4px}.mock[data-layout=tt]{text-align:center;flex-direction:column;align-items:center}.mock[data-layout=dc]{color:#f2f3f5;background:#313338;border-color:#1e1f22}.mock[data-layout=dc] .mock-avatar{width:40px;height:40px}.mock[data-layout=dc] .mock-handle{color:#b5bac1}.mock[data-layout=dc] .mock-bio{color:#dbdee1}.meter{margin-top:10px}.meter-bar{border:2px solid var(--line);background:var(--paper-2);border-radius:99px;height:8px;overflow:hidden}.meter-bar span{background:var(--ok);width:0;height:100%;transition:width .2s;display:block}.preview[data-state=warn] .meter-bar span{background:#d97706}.preview[data-state=over] .meter-bar span{background:#dc2626}.meter-text{color:var(--ink-soft);margin:6px 0 0;font-size:.85rem}.site-footer{background:var(--ink);color:var(--paper);margin-top:32px;padding:34px 0 40px}.site-footer a{color:var(--paper);text-decoration-color:var(--accent)}.footer-brand{font-family:var(--display);margin:0 0 4px;font-size:2rem;font-style:italic;font-weight:600}.footer-brand span{color:var(--accent)}.footer-links{flex-wrap:wrap;gap:6px 18px;margin:14px 0;padding:0;list-style:none;display:flex}.fine{color:var(--ink-soft);max-width:70ch;margin:0;font-size:.85rem}.site-footer .fine{color:color-mix(in srgb, var(--paper) 70%, transparent)}@media (width<=600px){.gen-out{font-size:1.18rem}.gen-field textarea{font-size:1.25rem}.header-inner,.nav{justify-content:center}.preview{width:100%;max-height:52vh;box-shadow:0 -4px 0 var(--line);border-radius:18px 18px 0 0;bottom:0;right:0}.prose h2{font-size:1.6rem}}
