.calligraphy-layout-root{z-index:60;position:fixed;inset:0;overflow:hidden auto}.calligraphy-studio{--cs-bg:#fff;--cs-bg-subtle:#fafaf8;--cs-ink:#1a1a1a;--cs-ink-soft:#6b6b6b;--cs-ink-light:#a0a0a0;--cs-accent:#c03020;--cs-accent-soft:#c0302012;--cs-line:#0000000f;--cs-panel:#fff;--cs-shadow:0 1px 3px #0000000a;--cs-body-font:"Cormorant Garamond","Georgia",serif;--cs-success:#2d6a30;--cs-sp-xs:10px;--cs-sp-sm:16px;--cs-sp-md:26px;--cs-sp-lg:42px;--cs-sp-xl:68px;font-family:var(--cs-body-font);color:var(--cs-ink);background:var(--cs-bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:16px}:root.dark .calligraphy-studio{--cs-bg:#0a0a0a;--cs-bg-subtle:#141414;--cs-ink:#f0f0f0;--cs-ink-soft:#a0a0a0;--cs-ink-light:#6b6b6b;--cs-accent:#e04030;--cs-accent-soft:#e040301a;--cs-line:#ffffff14;--cs-panel:#111;--cs-shadow:0 1px 3px #0000004d;--cs-success:#4ade80}.cs-page-shell{width:min(1200px,calc(100% - var(--cs-sp-lg)));padding:var(--cs-sp-xl)0;margin:0 auto}.cs-breadcrumb{margin-bottom:var(--cs-sp-md)}.cs-breadcrumb-link{color:var(--cs-ink-light);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;font-weight:500;text-decoration:none;transition:color .16s}.cs-breadcrumb-link:hover{color:var(--cs-ink)}.cs-hero{max-width:720px;margin-bottom:var(--cs-sp-xl)}.cs-hero-top{justify-content:space-between;align-items:center;gap:var(--cs-sp-sm);display:flex}.calligraphy-studio .cs-theme-toggle{border-color:var(--cs-line);background:var(--cs-bg);color:var(--cs-ink);box-shadow:none;flex-shrink:0}.calligraphy-studio .cs-theme-toggle:hover{background:var(--cs-bg-subtle);color:var(--cs-ink)}.calligraphy-studio .cs-theme-toggle svg{color:var(--cs-ink)}.cs-eyebrow,.cs-section-label{margin:0 0 var(--cs-sp-xs);color:var(--cs-ink-light);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;font-weight:500}.cs-hero-title-row{align-items:flex-start;gap:var(--cs-sp-md);display:flex}.cs-hero-title-row h1{letter-spacing:-.02em;color:var(--cs-ink);font-size:clamp(2.2rem,4.5vw,3.6rem);font-weight:400;line-height:1.08;font-family:var(--cs-body-font);margin:0}.cs-seal{background:var(--cs-accent);color:#fff;-webkit-user-select:none;user-select:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-top:6px;font-size:18px;font-weight:600;line-height:1;display:inline-flex;transform:rotate(-3deg);box-shadow:0 1px 4px #c0302040}.cs-hero-copy{max-width:540px;margin:var(--cs-sp-sm)0 0;color:var(--cs-ink-soft);font-size:1.05rem;line-height:1.65}.cs-layout{gap:var(--cs-sp-lg);grid-template-columns:382fr 618fr;align-items:start;display:grid}.cs-panel{background:var(--cs-panel);border:1px solid var(--cs-line);box-shadow:var(--cs-shadow);border-radius:12px}.cs-controls-panel{padding:var(--cs-sp-md);top:var(--cs-sp-md);position:sticky}.cs-preview-panel{padding:var(--cs-sp-md);box-shadow:none;background:0 0;border:none}.cs-stack{gap:var(--cs-sp-sm);display:grid}.cs-controls-grid{gap:12px;display:grid}.cs-field{gap:6px;display:grid}.cs-field span{color:var(--cs-ink-soft);font-size:.88rem;font-weight:500}.calligraphy-studio textarea,.calligraphy-studio select{font-family:var(--cs-body-font);border:1px solid var(--cs-line);background:var(--cs-bg);width:100%;color:var(--cs-ink);border-radius:8px;outline:none;padding:12px 14px;transition:border-color .16s,box-shadow .16s}.calligraphy-studio textarea:focus,.calligraphy-studio select:focus{box-shadow:0 0 0 3px var(--cs-accent-soft);border-color:#c030204d}.calligraphy-studio textarea{resize:vertical;min-height:160px;font-size:.95rem;line-height:1.6}.calligraphy-studio select{cursor:pointer;font-size:.92rem}.cs-actions{flex-wrap:wrap;gap:10px;display:flex}.cs-btn-primary,.cs-btn-secondary{font-family:var(--cs-body-font);cursor:pointer;border:0;border-radius:8px;padding:10px 20px;font-size:.92rem;font-weight:500;transition:transform .12s,opacity .12s,background .12s}.cs-btn-primary:hover,.cs-btn-secondary:hover{transform:translateY(-1px)}.cs-btn-primary:active,.cs-btn-secondary:active{transform:translateY(0)}.cs-btn-primary:disabled,.cs-btn-secondary:disabled{cursor:progress;opacity:.6}.cs-btn-primary{background:var(--cs-accent);color:#fff;min-width:150px}.cs-btn-primary:hover{background:#a82818}:root.dark .cs-btn-primary:hover{background:#c83828}.cs-btn-secondary{color:var(--cs-ink);border:1px solid var(--cs-line);background:0 0}.cs-btn-secondary:hover{background:var(--cs-bg-subtle);border-color:#00000026}:root.dark .cs-btn-secondary:hover{border-color:#ffffff26}.cs-status{min-height:1.3em;color:var(--cs-ink-light);margin:0;font-size:.85rem}.cs-status.error{color:var(--cs-accent)}.cs-status.success{color:var(--cs-success)}.cs-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cs-section-note{color:var(--cs-ink-light);margin:0;font-size:.85rem}.cs-model-badge{background:var(--cs-accent-soft);color:var(--cs-accent);letter-spacing:.02em;border-radius:4px;margin:0;padding:4px 10px;font-size:.78rem;font-weight:500}.cs-featured-sticky{top:var(--cs-sp-md);z-index:5;background:var(--cs-bg);position:sticky}.cs-featured-card{margin:var(--cs-sp-sm)0 var(--cs-sp-lg);padding:var(--cs-sp-md)0;border-bottom:1px solid var(--cs-line)}.cs-preview-label{margin:0 0 var(--cs-sp-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--cs-ink-light);font-size:.68rem;font-weight:500}.cs-featured-preview{word-break:break-word;min-height:140px;font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.4}.cs-font-wall{gap:var(--cs-sp-lg);display:grid}.cs-font-group-header{align-items:baseline;gap:var(--cs-sp-sm);border-bottom:1px solid var(--cs-line);padding-bottom:var(--cs-sp-xs);display:flex}.cs-font-group-label{color:var(--cs-ink);letter-spacing:.02em;margin:0;font-size:.88rem;font-weight:600}.cs-font-group-note{color:var(--cs-ink-light);margin:0;font-size:.78rem}.cs-font-group-count{color:var(--cs-ink-light);margin-left:auto;font-size:.72rem}.cs-font-grid{border:2px dashed #0000;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;min-height:60px;margin-top:14px;transition:border-color .16s,background .16s;display:grid}.cs-font-grid.drag-over{border-color:var(--cs-accent);background:var(--cs-accent-soft)}.cs-font-grid-empty{text-align:center;padding:var(--cs-sp-md);color:var(--cs-ink-light);grid-column:1/-1;font-size:.88rem;font-style:italic}.cs-font-card[draggable=true]{cursor:grab}.cs-font-card[draggable=true]:active{cursor:grabbing}.cs-font-card.is-dragging{opacity:.4}.cs-font-card{width:100%;min-width:0;padding:var(--cs-sp-sm);background:var(--cs-bg);border:1px solid var(--cs-line);color:var(--cs-ink);text-align:left;appearance:none;cursor:pointer;font-family:var(--cs-body-font);border-radius:8px;transition:border-color .16s,box-shadow .16s}.cs-font-card:hover{border-color:#c0302033;box-shadow:0 2px 8px #0000000a}:root.dark .cs-font-card:hover{box-shadow:0 2px 8px #0000004d}.cs-font-card:focus-visible{box-shadow:0 0 0 3px var(--cs-accent-soft);border-color:#c0302066;outline:none}.cs-font-card.is-selected{border-color:var(--cs-accent);background:var(--cs-bg-subtle)}.cs-font-card.is-font-loading .cs-font-sample{opacity:.6}.cs-font-card h3{color:var(--cs-ink-soft);letter-spacing:.01em;margin:0 0 8px;font-size:.82rem;font-weight:500}.cs-font-card-note{color:var(--cs-ink-light);margin:2px 0 0;font-size:.68rem;font-style:italic;font-weight:400}.cs-font-card-actions{justify-content:flex-end;margin-top:8px;display:flex}.cs-font-card-download{letter-spacing:.04em;color:var(--cs-ink-light);border:1px solid var(--cs-line);opacity:0;cursor:pointer;min-width:auto;font-size:.68rem;font-weight:500;font-family:var(--cs-body-font);background:0 0;border-radius:4px;padding:3px 10px;transition:opacity .16s,color .16s,border-color .16s}.cs-font-card:hover .cs-font-card-download{opacity:1}.cs-font-card-download:hover{color:var(--cs-accent);border-color:#c030204d;transform:none}.cs-font-sample{word-break:break-word;min-height:100px;color:var(--cs-ink);font-size:1.7rem;line-height:1.5}@media (max-width:960px){.cs-layout{grid-template-columns:1fr}.cs-controls-panel{position:static}.cs-featured-sticky{z-index:10;padding-top:var(--cs-sp-sm);top:0}}@media (max-width:640px){.cs-page-shell{width:min(100% - 20px,1200px);padding-top:var(--cs-sp-lg)}.cs-hero-title-row{gap:var(--cs-sp-sm)}.cs-seal{width:32px;height:32px;font-size:15px}.cs-panel,.cs-controls-panel,.cs-featured-card,.cs-font-card{border-radius:10px}.cs-featured-preview{min-height:100px;font-size:1.8rem}}
