:root{--scale: 1;--gutter: 1.5rem;--spacing: .75rem;--color-light: #ffffff;--color-dark: #111111;--color-darker: #050505;--color-accent: #ff6a3d;--color-accent-soft: #ffe3d7;--border-radius: .75rem;--font-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Georgia", "Times New Roman", serif}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;font-family:var(--font-sans-serif);background:radial-gradient(circle at top,#1b1b1b 0,#050505 55%);color:var(--color-light)}.app{padding:calc(var(--gutter) * 1.25)}.app__title{font-family:var(--font-serif);font-size:2.2rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 var(--spacing)}.app__subtitle{margin:0 0 calc(var(--spacing) * 2);color:#c9c9c9;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem}.app__skip-link{position:absolute;top:-999px;left:-999px;padding:.5rem 1rem;background:var(--color-accent);color:#000;text-decoration:none;z-index:1000}.app__skip-link:focus{top:.5rem;left:.5rem}.grid{display:grid;gap:var(--gutter)}.grid--cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid__col--12{grid-column:span 12}.grid__col--8{grid-column:span 8}.grid__col--4{grid-column:span 4}.grid__col--6{grid-column:span 6}@media(max-width:900px){.grid--cols-12{grid-template-columns:repeat(6,minmax(0,1fr))}.grid__col--8,.grid__col--6,.grid__col--4{grid-column:span 6}}@media(max-width:640px){.grid--cols-12{grid-template-columns:repeat(4,minmax(0,1fr))}.grid__col--8,.grid__col--6,.grid__col--4{grid-column:span 4}}.card{background:#141414eb;border-radius:var(--border-radius);padding:var(--gutter);border:1px solid rgba(255,255,255,.06);box-shadow:0 18px 40px #0009}.card__title{font-family:var(--font-serif);text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;margin:0 0 var(--spacing)}.card__title span{font-size:.8rem;opacity:.7}.form{display:flex;flex-direction:column;gap:var(--spacing)}.form__row{display:flex;gap:var(--spacing);flex-wrap:wrap}.form__field{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.form__label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem;color:#b3b3b3}.form__hint{font-size:.7rem;color:#888;margin-top:.25rem;font-style:italic}.form__input,.form__textarea,.form__select{width:100%;padding:.55rem .7rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.13);background:#00000059;color:var(--color-light);font:inherit}.form__input--range{padding:0;height:2rem;cursor:pointer}.form__value{position:absolute;top:0;right:0;font-size:.7rem;color:var(--color-accent);font-weight:700}.form__input:focus,.form__textarea:focus,.form__select:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:999px;border:1px solid transparent;background:linear-gradient(135deg,var(--color-accent),#ff9c66);color:#111;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;transition:transform .15s ease}.button:hover{transform:translateY(-1px)}.button--ghost{background:transparent;color:var(--color-light);border-color:#ffffff42}.button--small{padding:.4rem .8rem;font-size:.7rem}.button:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.upload{display:flex;flex-direction:column;gap:var(--spacing)}.upload__dropzone{border-radius:var(--border-radius);border:1px dashed rgba(255,255,255,.25);padding:var(--gutter);text-align:center;font-size:.85rem;color:#d0d0d0;transition:all .2s ease}.upload__dropzone--active{border-color:var(--color-accent);background:#ff6a3d0d;color:var(--color-accent)}.upload__input{margin-top:var(--spacing)}.mapping{display:flex;flex-direction:column;gap:var(--spacing);max-height:22rem;overflow:auto}.mapping__table{width:100%;border-collapse:collapse;font-size:.8rem}.mapping__head{text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;color:#b3b3b3}.mapping__head th{text-align:left;padding:.35rem;border-bottom:1px solid rgba(255,255,255,.12)}.mapping__row{transition:background .2s ease}.mapping__row:nth-child(2n){background:#ffffff05}.mapping__row:hover{background:#ff6a3d1a}.mapping__row--selected{background:#ff6a3d33!important;border-left:3px solid var(--color-accent)}.mapping__cell{padding:.5rem .35rem;vertical-align:middle}.mapping__char-input{width:3rem}.mapping__preview{display:block;border:1px solid rgba(255,255,255,.1);border-radius:.25rem;background:#0000004d}.glyph-editor{display:flex;flex-direction:column;gap:calc(var(--spacing) * 1.5)}.glyph-editor__controls{padding:var(--spacing);background:#0003;border-radius:var(--border-radius);border:1px solid rgba(255,255,255,.08)}.glyph-editor__preview{display:flex;flex-direction:column;gap:var(--spacing)}.glyph-editor__canvas{border-radius:var(--border-radius);background:radial-gradient(circle at center,#1a1a1a 0,#0a0a0a 70%);border:1px solid rgba(255,255,255,.12);padding:var(--gutter);display:flex;align-items:center;justify-content:center}.glyph-editor__svg{width:100%;max-width:600px;height:auto;display:block}.glyph-editor__info{font-size:.85rem;color:#d3d3d3;text-align:center;margin:0}.preview{display:flex;flex-direction:column;gap:var(--spacing)}.preview__sample{border-radius:var(--border-radius);padding:var(--gutter);background:radial-gradient(circle at top left,#252525 0,#101010 55%);border:1px solid rgba(255,255,255,.12);font-size:1.15rem}.preview__sample--font{font-family:var(--preview-font-family, var(--font-sans-serif))}.preview__input{font-size:.85rem}.log{font-size:.75rem;color:#d3d3d3}.log--error{color:#ffb3b3}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}.button--help{position:absolute;top:1.5rem;right:1.5rem;z-index:100;background:var(--color-accent);color:var(--color-dark);border:none;padding:.75rem 1.5rem;border-radius:var(--border-radius);font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:0 4px 12px #0000004d;transition:all .2s ease}.button--help:hover{background:#ff7f57;transform:translateY(-2px);box-shadow:0 6px 16px #0006}.button--help:active{transform:translateY(0)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:2rem;overflow-y:auto}.modal__container{background:linear-gradient(135deg,#1a1a1a,#0d0d0d);border:1px solid rgba(255,255,255,.15);border-radius:calc(var(--border-radius) * 1.5);max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;animation:modalSlideUp .3s ease}@keyframes modalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal__header{padding:1.5rem 2rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.modal__title{margin:0;font-size:1.5rem;font-weight:600}.modal__close{background:none;border:none;color:var(--color-light);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:.25rem;transition:background .2s ease;line-height:1}.modal__close:hover{background:#ffffff1a}.modal__content{padding:2rem;overflow-y:auto;flex:1}.modal__footer{padding:1.5rem 2rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end}.help-section{margin-bottom:2rem}.help-section:last-child{margin-bottom:0}.help-section__title{font-size:1.1rem;margin:0 0 .75rem;color:var(--color-accent);font-weight:600}.help-section__text{margin:0 0 1rem;line-height:1.6;color:#d3d3d3}.help-section__list{margin:.75rem 0;padding-left:1.5rem;line-height:1.8;color:#d3d3d3}.help-section__list li{margin-bottom:.5rem}.help-section__list strong{color:var(--color-light)}.help-section__note{margin:1rem 0 0;padding:1rem;background:#ff6a3d1a;border-left:3px solid var(--color-accent);border-radius:.5rem;font-size:.9rem;line-height:1.6}.help-section--tips{background:#ffffff08;padding:1.5rem;border-radius:var(--border-radius);border:1px solid rgba(255,255,255,.08)}.app__footer{font-size:.8rem;color:#777;padding:1rem}
