*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f3ed;--bg-alt:#e7e4db;--text:#171916;--text-muted:#666960;--accent:#a84c34;--accent-2:#356759;--border:#d5d6cc;--border-dark:#171916;--surface:#f8f7f2}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100vh;font-family:Arial,Apple SD Gothic Neo,sans-serif;font-size:16px}body.modal-open{overflow:hidden}button,[contenteditable]{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}button,input,select{font-family:inherit}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1200;background:var(--text);color:var(--bg);padding:.75rem;position:fixed;top:.5rem;left:1rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.container{max-width:1180px;margin:0 auto;padding:0 2rem}main{padding:0 0 4rem}.workbench-note{border-bottom:1px solid var(--border);min-height:58px;color:var(--text-muted);justify-content:space-between;align-items:center;gap:1.5rem;font-family:Arial,sans-serif;font-size:.875rem;display:flex}.workbench-note span{color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.workbench-note p{text-align:right;margin:0}header{z-index:20;border-bottom:1px solid var(--border);background:var(--bg);padding:1rem 0;position:sticky;top:0}.header-logo{text-align:left;padding:.2rem 0}.logo-kicker{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.05rem;font-family:Arial,sans-serif;font-size:.875rem;font-weight:700;display:block}.logo{letter-spacing:-.02em;color:var(--text);font-family:Times New Roman,Georgia,serif;font-size:2rem;font-weight:700}.header-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;padding:0;display:flex}.header-actions{align-items:center;gap:.75rem;display:flex}header>.container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.type-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:3rem;min-height:150px;padding:2.5rem 0;display:grid}.type-row:first-child{padding-top:0}.type-text{overflow-wrap:anywhere;min-width:0}.type-text:before{content:attr(data-specimen);color:var(--text-muted);-webkit-text-stroke:0;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.7rem;font-family:Arial,sans-serif;font-size:.875rem;font-style:normal;font-weight:700;line-height:1.5;display:block}.type-text h1{letter-spacing:-.02em;color:var(--text);font-family:inherit;font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.1}.type-text h2{color:var(--text-muted);letter-spacing:inherit;font-family:inherit;font-size:clamp(1.25rem,2.5vw,1.75rem);font-style:italic;font-weight:400;line-height:1.3}.type-text p{font-family:inherit;font-size:inherit;color:var(--text);max-width:65ch;line-height:inherit;letter-spacing:inherit}[contenteditable]{outline-offset:5px;caret-color:var(--accent)}[contenteditable]:focus{background:var(--surface)}.type-row-content .type-text{flex-direction:column;gap:.75rem;display:flex}.type-text h3{color:var(--text);margin:0;font-family:inherit;font-size:1.25rem;font-weight:600}.type-text h4{color:var(--text);margin:.5rem 0 0;font-family:inherit;font-size:1rem;font-weight:600}.type-text ul,.type-text ol{font-family:inherit;font-size:inherit;color:var(--text);line-height:inherit;margin:0;padding-left:1.5rem}.type-text li{margin:.25rem 0}.type-text strong{font-weight:600}.type-text blockquote{font-family:inherit;font-size:inherit;color:var(--text-muted);border-left:3px solid var(--border);font-style:italic;line-height:inherit;margin:.5rem 0;padding-left:1rem}.typo-controls{gap:1rem;display:flex}.typo-control{align-items:center;gap:.25rem;display:flex}.typo-reading{flex-direction:column;align-items:center;gap:.15rem;min-width:48px;display:flex}.typo-label{color:var(--text-muted);font-size:.875rem}.typo-value{white-space:nowrap;font-family:SF Mono,Monaco,monospace;font-size:.875rem}.typo-btn,.size-btn{border:1px solid var(--border);width:44px;min-width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;place-items:center;font-size:1rem;display:grid}.typo-btn{border-color:#0000}.typo-btn:hover,.size-btn:hover{background:var(--bg-alt)}.typo-btn.active{color:var(--accent)}.icon-btn,.random-btn{cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:.35rem;min-height:44px;padding:.5rem .65rem;font-size:.875rem;display:inline-flex}.icon-btn{border:1px solid var(--border);color:var(--text);background:0 0}.random-btn{background:var(--text);border:1px solid var(--text);color:var(--bg)}.icon-btn svg,.random-btn svg{flex:none;width:16px;height:16px}.random-btn:hover{background:var(--accent);border-color:var(--accent)}.icon-btn:hover{background:var(--bg-alt)}.type-control{flex-direction:column;gap:.75rem;min-width:0;display:flex}.font-selector{border:0;border-bottom:1px solid var(--border);width:100%;min-width:0;min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.875rem;display:flex}.font-selector:hover{border-color:var(--accent);color:var(--accent)}.font-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.size-controls{justify-content:space-between;align-items:center;gap:.25rem;display:flex}.size-value{text-align:center;font-variant-numeric:tabular-nums;min-width:56px;font-family:SF Mono,Monaco,monospace;font-size:.875rem}.font-loading{opacity:.6}button:disabled{opacity:.4;cursor:not-allowed}.text-btn{min-height:44px;color:var(--accent-2);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:.4rem .5rem;font-size:.875rem;text-decoration:underline}.primary-btn,.secondary-btn{cursor:pointer;min-height:44px;padding:.65rem 1.25rem;font-size:.875rem}.primary-btn{background:var(--text);border:1px solid var(--text);color:var(--bg)}.primary-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.secondary-btn{border:1px solid var(--border);color:var(--text);background:0 0}.share-panel{background:var(--bg-alt);grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:1rem;padding:1rem;font-size:.875rem;display:grid}.share-panel label{grid-column:1/-1;line-height:1.5}.share-panel input{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;min-height:44px;padding:.5rem;font-size:1rem}.toast{background:var(--text);width:max-content;max-width:calc(100% - 2rem);color:var(--bg);opacity:0;visibility:hidden;z-index:1100;pointer-events:none;padding:.8rem 1rem;font-size:.875rem;line-height:1.5;transition:opacity .2s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast.show{opacity:1;visibility:visible}.modal{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:1rem;position:fixed;inset:0}.modal[open]{justify-content:center;align-items:center;display:flex}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1719168c}.modal-content{background:var(--surface);border-radius:8px;flex-direction:column;width:640px;max-width:100%;height:min(820px,100%);max-height:100%;display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header{flex:none;justify-content:space-between;align-items:center;padding:.75rem 1.25rem .5rem;display:flex}.modal-title{font-size:1.125rem}.modal-close{background:var(--bg-alt);width:44px;height:44px;color:var(--text);cursor:pointer;border:0;border-radius:50%;font-size:1.5rem}.modal-search{flex:none;padding:0 1.25rem .5rem}.modal-search input{width:100%;min-height:44px;color:var(--text);border:1px solid var(--border);background:var(--bg);border-radius:4px;padding:.65rem .75rem;font-size:1rem}.filter-details{border-bottom:1px solid var(--border);flex:none;margin:0 1.25rem}.filter-details summary{min-height:44px;color:var(--text-muted);cursor:pointer;padding:.75rem 0;font-size:.875rem}.modal-filters{flex-direction:column;gap:.4rem;max-height:22vh;padding-bottom:.5rem;display:flex;overflow-y:auto}.filter-group{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.filter-label{min-width:42px;color:var(--text-muted);font-size:.875rem}.filter-btn{min-width:44px;min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:.4rem .6rem;font-size:.875rem}.filter-btn:hover{background:var(--bg-alt)}.filter-btn.active{background:var(--text);color:var(--surface)}.results-bar{color:var(--text-muted);flex:none;justify-content:space-between;align-items:center;gap:.5rem;padding:0 1.25rem;font-size:.875rem;display:flex}.modal-font-list{overscroll-behavior:contain;flex:150px;min-height:80px;padding:.25rem .75rem .5rem;overflow-y:auto}.font-item{border:0;border-bottom:1px solid var(--border);width:100%;min-height:58px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border-radius:3px;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex;position:relative}.font-item:hover{background:var(--bg-alt)}.font-item.selected{box-shadow:inset 3px 0 var(--accent-2);background:#e6ece5}.font-name-ko{overflow-wrap:anywhere;font-size:.875rem;font-weight:600}.font-meta{color:var(--text-muted);text-align:right;font-size:.875rem}.load-more{margin:.5rem auto;display:block}.no-fonts{color:var(--text-muted);padding:1rem;font-size:.875rem;line-height:1.6}.modal-settings{border-top:1px solid var(--border);background:var(--bg);flex:none;padding:.75rem 1.25rem .5rem}.preview-heading{min-height:28px;color:var(--accent-2);justify-content:space-between;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;display:flex}.preview-heading .text-btn{padding:0}.selected-preview{overflow-wrap:anywhere;white-space:pre-wrap;min-height:36px;max-height:76px;margin:.35rem 0;font-size:1.5rem;line-height:1.5;overflow:auto}.font-status{color:var(--text-muted);margin:.35rem 0;font-size:.875rem;line-height:1.45}.font-status.error{color:var(--accent)}.settings-row{flex-wrap:wrap;align-items:center;gap:.2rem .85rem;display:flex}.setting-item{align-items:center;gap:.4rem;font-size:.875rem;display:flex}.setting-item label{cursor:pointer;align-items:center;min-height:44px;display:flex}.setting-item select{background:var(--surface);border:1px solid var(--border);max-width:160px;min-height:44px;color:var(--text);padding:.4rem;font-size:1rem}.setting-item input{width:18px;height:18px;accent-color:var(--accent-2)}.modal-footer{background:var(--bg);flex:none;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;display:flex}@media (width<=768px){.container{padding:0 1rem}header{padding:.75rem 0;position:static}header>.container{grid-template-columns:minmax(0,1fr) auto;gap:.65rem .5rem;display:grid}.logo{font-size:1.75rem}.logo-kicker{letter-spacing:.02em}.header-controls{display:contents}.header-actions{grid-area:1/2;gap:.35rem}.random-btn,.icon-btn{padding:.4rem}.typo-controls{border-top:1px solid var(--border);grid-area:2/1/auto/-1;justify-content:space-between;gap:.25rem;padding-top:.5rem}.typo-control{gap:0}.typo-reading{min-width:48px}.type-row{flex-direction:column;align-items:stretch;gap:1.25rem;min-height:0;padding:1.25rem 0 1.75rem;display:flex}.type-control{order:-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.size-controls{gap:0}.size-value{min-width:56px}.workbench-note{flex-direction:column;justify-content:center;align-items:flex-start;gap:.35rem;padding:1rem 0}.workbench-note p{text-align:left;font-size:.875rem;line-height:1.5}.modal{padding:.5rem}.modal-content{border-radius:6px}.modal-header{padding:.5rem .75rem}.modal-search{padding:0 .75rem .35rem}.filter-details{margin:0 .75rem}.results-bar{padding:0 .75rem}.modal-font-list{padding:0 .5rem .5rem}.font-item{flex-direction:column;align-items:flex-start;gap:.3rem}.font-meta{text-align:left}.modal-settings{padding:.5rem .75rem}.settings-row{column-gap:.75rem}.setting-item select{max-width:146px}.modal-footer{padding:.5rem .75rem}.modal-footer button{flex:1}}@media (height<=600px){.modal-content{overflow-y:auto}.modal-font-list{flex:1 0 80px}.modal-header,.modal-settings{padding:.25rem .75rem}.preview-heading{min-height:20px}.selected-preview{min-height:32px;max-height:36px;margin:.2rem 0}.font-status{margin:.2rem 0}}
