:root{--ink: #23201a;--ink-soft: #5c554a;--parch: #f7f3ea;--parch-2: #efe8d8;--card: #fffdf8;--line: #ddd3bf;--accent: #2f6b5e;--accent-2: #b8892b;--danger: #9a3b2f;--attested: #2f6b5e;--reconstructed: #b8892b;--neologism: #6a5aa6;--radius: 10px;--maxw: 1080px;font-family:Iowan Old Style,Palatino Linotype,Palatino,Book Antiqua,Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--parch);color:var(--ink);line-height:1.5}a{color:var(--accent)}.app{max-width:var(--maxw);margin:0 auto;padding:1.5rem 1.25rem 3rem}.site-header{border-bottom:1px solid var(--line);margin-bottom:1.5rem}.wordmark{display:flex;gap:.9rem;align-items:flex-start}.glyph{font-size:2.4rem;color:var(--accent-2);line-height:1;margin-top:.2rem}.site-header h1{margin:0;font-size:1.7rem;letter-spacing:.01em}.tagline{margin:.25rem 0 1rem;color:var(--ink-soft);max-width:60ch}.tabs{display:flex;gap:.25rem}.tab{border:1px solid transparent;border-bottom:none;background:none;font:inherit;font-size:1rem;padding:.55rem 1rem;cursor:pointer;color:var(--ink-soft);border-radius:var(--radius) var(--radius) 0 0;position:relative;top:1px}.tab.active{background:var(--card);border-color:var(--line);color:var(--ink);font-weight:600}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}.field-label{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.35rem}textarea,select,input[type=search]{font:inherit;width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--parch);color:var(--ink)}textarea{resize:vertical}select{cursor:pointer}button.primary{font:inherit;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1.2rem;cursor:pointer;margin-top:.9rem}button.primary:disabled{opacity:.6;cursor:default}.samples{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.6rem}.chip{font:inherit;font-size:.85rem;background:var(--parch-2);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;cursor:pointer;color:var(--ink)}.chip:hover{border-color:var(--accent)}.result{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1.25rem}.rendered{font-size:2rem;color:var(--accent);font-style:italic;letter-spacing:.01em}.small-rendered{font-size:1.5rem}.result-flow{display:flex;flex-direction:column;gap:.9rem}.flow-row{display:grid;grid-template-columns:7.5rem 1fr;gap:.5rem 1rem;align-items:baseline}.flow-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding-top:.15rem}.flow-text{font-size:1.05rem}.flow-row.primary .rendered{font-size:2rem}.flow-row.backtrans{border-top:1px dashed var(--line);padding-top:.9rem}.bt-text{font-size:1.35rem;color:var(--ink)}.bt-note{margin:1rem 0 0;max-width:62ch}.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem 1.5rem;margin:1rem 0 0}.meta dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.meta dd{margin:.1rem 0 0}.how{margin-top:1.5rem;border-top:1px dashed var(--line);padding-top:1rem}.notice{margin-top:1rem;padding:.75rem 1rem;border-radius:8px}.notice.error{background:#fbeae7;border:1px solid #e6bcb4;color:var(--danger)}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.subnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:1.5rem}.subtab{text-align:left;font:inherit;background:var(--parch);border:1px solid var(--line);border-radius:8px;padding:.7rem .9rem;cursor:pointer;display:flex;flex-direction:column;gap:.15rem}.subtab.active{border-color:var(--accent);background:var(--card);box-shadow:inset 0 -3px 0 var(--accent)}.subtab-label{font-weight:600}.subtab-hint{font-size:.8rem;color:var(--ink-soft)}.lead{color:var(--ink-soft);max-width:70ch;margin-top:0}code{background:var(--parch-2);padding:.05rem .35rem;border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.pg-grid{display:grid;grid-template-columns:minmax(220px,1fr) 1.4fr;gap:1.5rem}.pg-form{display:flex;flex-direction:column;gap:.75rem}.field{display:flex;flex-direction:column}.toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer}.toggle input{width:auto}.pg-output{display:flex;flex-direction:column;gap:1rem}.pg-block{display:flex;flex-direction:column;gap:.35rem}.pg-caption{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.json{background:#2c2822;color:#f0e9d8;padding:.8rem 1rem;border-radius:8px;overflow-x:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;margin:0}.json.tiny{font-size:.75rem;padding:.5rem .7rem}.examples{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1rem}.examples summary{cursor:pointer;font-weight:600}.example-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.9rem}.example-list li{display:grid;gap:.25rem;padding:.75rem;background:var(--parch);border-radius:8px}.ex-en{color:var(--ink-soft)}.ex-sjn{font-style:italic;color:var(--accent);font-size:1.15rem}.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}.filters input[type=search]{flex:1 1 240px}.filters select{width:auto}.count{margin-left:auto}.table-wrap{overflow-x:auto}.lex-table{width:100%;border-collapse:collapse;font-size:.95rem}.lex-table th,.lex-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}.lex-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.sjn-cell{font-style:italic;color:var(--accent)}.source-cell{color:var(--ink-soft);max-width:26ch}.prov{display:inline-block;font-size:.72rem;font-style:normal;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .5rem;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.prov-attested{color:var(--attested)}.prov-reconstructed{color:var(--reconstructed)}.prov-neologism{color:var(--neologism)}.mut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.mut-card{border:1px solid var(--line);border-radius:8px;padding:1rem;background:var(--parch)}.mut-card h3{margin:0 0 .2rem}.mut-table{width:100%;border-collapse:collapse;margin-top:.6rem}.mut-table th{font-size:.7rem;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding-bottom:.3rem}.mut-table td{padding:.15rem .3rem}.arrow{color:var(--ink-soft);font-size:.75rem;font-style:normal}.site-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.9rem}.site-footer .prov{margin:0 .15rem}.header-top{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.settings-btn{flex-shrink:0;font:inherit;font-size:.9rem;display:inline-flex;align-items:center;gap:.45rem;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;cursor:pointer;color:var(--ink)}.settings-btn:hover{border-color:var(--accent)}.key-dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block}.key-dot.ok{background:var(--accent)}.key-dot.warn{background:var(--accent-2)}.tiny{font-size:.75rem}button.ghost{font:inherit;background:var(--parch-2);border:1px solid var(--line);border-radius:8px;padding:.55rem .8rem;cursor:pointer;color:var(--ink)}button.ghost:hover:not(:disabled){border-color:var(--accent)}button.ghost:disabled{opacity:.5;cursor:default}.link-btn{font:inherit;background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline}.notice.info{background:var(--parch-2);border:1px solid var(--line);color:var(--ink)}.key-prompt{margin-top:0;margin-bottom:1.25rem}.engine{margin:.6rem 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#23201a73;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto;z-index:50}.modal{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px #23201a40;width:100%;max-width:30rem;padding:1.5rem}.settings-modal .field+.field{margin-top:1rem}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.modal-head h2{margin:0;font-size:1.3rem}.icon-btn{font:inherit;font-size:1.1rem;background:none;border:none;cursor:pointer;color:var(--ink-soft);line-height:1;padding:.2rem}.icon-btn:hover{color:var(--ink)}.settings-intro{margin:0 0 1.25rem;max-width:none}.settings-modal input[type=text],.settings-modal input[type=password]{font:inherit;width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--parch);color:var(--ink)}.key-row{display:flex;gap:.4rem;align-items:stretch}.key-row input{flex:1;min-width:0}.key-note{margin:.35rem 0 0}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}.modal-foot .primary{margin-top:0}.status-ok{color:var(--accent);font-size:.85rem;font-weight:600}.status-warn{color:var(--accent-2);font-size:.85rem;font-weight:600}.header-controls{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.lang-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--parch)}.lang-pill{font:inherit;font-size:.9rem;background:none;border:none;padding:.4rem .95rem;cursor:pointer;color:var(--ink-soft)}.lang-pill.active{background:var(--accent);color:#fff;font-weight:600}.lang-pill:not(.active):hover{color:var(--ink)}.pg-doc{margin:.5rem 0 1.1rem;font-style:italic}.pg-examples{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}.pg-json-label{margin-top:.3rem}.json-edit{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;width:100%;padding:.7rem .8rem;border:1px solid var(--line);border-radius:8px;background:var(--parch);color:var(--ink);line-height:1.45;resize:vertical}.json-edit:focus{outline:2px solid var(--accent);outline-offset:-1px}@media (max-width: 720px){.header-top{flex-direction:column-reverse;align-items:stretch}.header-controls{flex-direction:row;align-items:center;justify-content:space-between}.pg-grid{grid-template-columns:1fr}.rendered,.flow-row.primary .rendered{font-size:1.6rem}.flow-row{grid-template-columns:1fr;gap:.15rem}.bt-text{font-size:1.2rem}}
