/* Font definitions live in monogram-fonts.css. */
:root{--ink:#243e34;--muted:#68736b;--paper:#f7f4ec;--line:#d8ddd3;--gold:#9b7d50;--blue:#e3f3fd;--blue-hover:#c5e6f9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 'Segoe UI',Arial,sans-serif}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #668b9f;outline-offset:3px}[hidden]{display:none!important}.wrap{width:min(1240px,92%);margin:auto}.site-header{min-height:94px;border-bottom:1px solid var(--line);padding:20px 4%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{width:47px;height:47px}.brand span{font:bold 25px Georgia;letter-spacing:2px}.brand small{font:9px 'Segoe UI',sans-serif;letter-spacing:1.8px;display:block;margin-top:8px}nav{display:flex;gap:28px;font-size:13px}nav a{text-decoration:none;padding:8px 0}.active{border-bottom:1px solid var(--gold)}.intro{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:48px 0 36px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;margin:0}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:57px;line-height:1.1;margin:13px 0 17px}h1 em{color:var(--gold)}p{color:var(--muted)}.intro p:not(.eyebrow){margin:0;line-height:1.8}.steps{display:flex;flex-direction:column;gap:10px;font-size:12px;border-left:1px solid var(--line);padding-left:28px}.studio{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:36px;align-items:start}.controls{background:#fff;border:1px solid var(--line);border-radius:4px;padding:8px 25px}.section{border:0;border-bottom:1px solid var(--line);padding:24px 0;margin:0;min-width:0}.section:last-child{border:0}.section legend{float:left;width:100%;font-weight:600;font-size:15px;padding:0;margin-bottom:18px}.section legend span{font-size:11px;color:var(--gold);margin-right:10px}.section>*:not(legend){clear:both}label{display:block;font-size:12px;font-weight:600;margin:12px 0 7px}input:not([type=range]),select{background:#fff;width:100%;border:1px solid var(--line);border-radius:3px;padding:11px 12px;min-width:0}input{font-size:17px}input:focus,select:focus{border-color:#8aabbd}.hint{font-size:11px;line-height:1.7;margin:8px 0 0}.segmented{display:flex;background:#f3f5f0;padding:4px;border-radius:4px;gap:4px;margin-bottom:15px}.segmented button{flex:1;padding:8px 5px;border:1px solid transparent;background:none;font-size:12px;border-radius:3px}.segmented button[aria-pressed=true]{background:#fff;border-color:var(--line);box-shadow:0 1px 2px #243e3410}.initial-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.initial-fields input{text-align:center;font-size:23px}.font-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.font-choice{background:#fff;border:1px solid var(--line);border-radius:3px;padding:12px 5px 8px;overflow:hidden;position:relative;min-height:86px}.font-choice[aria-pressed=true]{border:2px solid var(--ink);padding:11px 4px 7px;background:#f4f7f1}.font-choice[aria-pressed=true]::after{content:'✓';position:absolute;top:3px;right:7px;font:12px 'Segoe UI'}.font-sample{display:block;font-size:34px;line-height:1.4;white-space:nowrap}.font-name{font:10px 'Segoe UI',sans-serif;color:var(--muted)}.font-note{margin-top:0}.label-row{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.label-row label{margin:0}.label-row output{font-size:11px;color:var(--muted)}.swatches,.fabric-swatches{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.swatch{width:30px;height:30px;border:1px solid #0002;border-radius:50%;padding:0;background:var(--swatch);position:relative}.swatch[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:3px}.swatch[aria-pressed=true]::after{content:'✓';color:var(--check,#fff);font-size:16px}.fabric-swatches .swatch{border-radius:4px;width:44px;height:28px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.two-columns label{margin:0}.two-columns select{margin-top:8px;font-size:12px}.preview-column{position:sticky;top:20px}.preview-card{border:1px solid var(--line);background:#fff;border-radius:4px;overflow:hidden}.preview-heading{padding:19px 24px;display:flex;align-items:center;justify-content:space-between}.live-badge{font-size:8px;letter-spacing:1.2px;color:#698475;border:1px solid var(--line);padding:4px 7px;border-radius:20px}canvas{display:block;width:100%;height:auto;aspect-ratio:10/7}.preview-caption{text-align:center;font-size:11px;margin:15px 12px 4px}.fit-note{text-align:center;font-size:11px;margin:0 18px 12px;min-height:17px;color:#896a3a}.preview-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:15px 24px;font-size:11px}.save-card{padding:20px 0 0}.save-card h2{font-size:26px;margin:0 0 8px}.save-card>p{font-size:12px;line-height:1.8;margin:8px 0 15px}.save-actions{display:flex;gap:10px}button.primary,button.secondary{border:1px solid #b8d9ec;background:var(--blue);padding:12px 18px;border-radius:3px;font-size:12px}button.primary:hover,button.secondary:hover{background:var(--blue-hover)}button.secondary{background:transparent;border-color:var(--line)}button:disabled{opacity:.55;cursor:wait}.save-card .fine-print{font-size:10px;line-height:1.8;color:#7b8177;max-width:580px}#feedback{color:var(--ink);margin-bottom:0}.reset{background:none;border:0;border-bottom:1px solid var(--line);font-size:11px;padding:3px 0;margin-top:5px}.visit{margin-top:64px;padding:35px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:center}.visit h2{font-size:29px;margin:10px 0}.visit p{font-size:12px}.visit>div+div{font-size:12px;display:flex;flex-direction:column;gap:8px}footer{padding:20px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px}@media(min-width:1500px){.wrap{width:min(1330px,92%)}.studio{grid-template-columns:460px 1fr;gap:50px}}@media(max-width:900px){.studio{gap:22px;grid-template-columns:minmax(0,360px) minmax(0,1fr)}.controls{padding:4px 18px}.save-actions{flex-direction:column}.preview-heading{padding:15px}.live-badge{display:none}h1{font-size:48px}.preview-footer{padding:14px;flex-direction:column;gap:3px}}@media(max-width:700px){.site-header{flex-wrap:wrap;padding:15px 5%;gap:12px}.brand span{font-size:21px}.brand img{width:38px;height:38px}nav{width:100%;justify-content:space-between;gap:10px;font-size:11px}.intro{padding:28px 0 25px}.intro p:not(.eyebrow){font-size:13px}.steps{display:none}h1{font-size:44px}.studio{display:flex;flex-direction:column}.preview-column{position:static;width:100%;order:-1}.preview-card canvas{max-height:300px;object-fit:contain}.save-card{padding-top:15px}.save-card h2{font-size:23px}.save-actions{flex-direction:row}.save-actions button{flex:1;padding:11px 8px}.controls{width:100%}.preview-footer{flex-direction:row}.preview-caption{margin:8px}.fit-note{margin-bottom:8px;min-height:0}.save-card .fine-print{font-size:10px}.visit{margin-top:35px;display:block}.visit>div+div{margin-top:20px}.font-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.font-sample{font-size:28px}.font-choice{min-height:78px}.visit h2{font-size:26px}footer{gap:20px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}
@media(max-width:700px){.preview-column{display:contents}.preview-card{order:0;position:sticky;top:0;z-index:5;box-shadow:0 5px 15px #243e3410;align-self:stretch}.preview-heading{padding:9px 14px}.preview-card canvas{max-height:180px}.preview-footer{padding:8px 14px}.preview-caption{margin:5px}.controls{order:1}.save-card{order:2}.reset{order:3;align-self:flex-start}.fit-note{font-size:10px;margin:0 10px 5px}}

.font-grid{max-height:440px;overflow-y:auto;padding:3px 5px 5px 2px;scrollbar-gutter:stable}.font-sample.round-sample{display:flex;justify-content:center;gap:0}.round-sample span{display:inline-block}.font-name{display:block;overflow-wrap:anywhere}.font-choice{flex-shrink:0}#font-count{min-height:19px}
