:root{--parchment: #ece0c4;--ink: #8b0000;--gold: #a98b46;--gold-soft: #c9ad6a;--text: #3a2d1c;--text-soft: #6b5a42;--rule: rgba(90, 70, 40, .28);--shadow: rgba(60, 44, 22, .18)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--parchment);background-image:radial-gradient(ellipse 60% 40% at 15% 12%,rgba(176,148,96,.22),transparent 70%),radial-gradient(ellipse 45% 35% at 85% 25%,rgba(150,118,70,.16),transparent 70%),radial-gradient(ellipse 70% 50% at 70% 85%,rgba(176,148,96,.2),transparent 70%),radial-gradient(ellipse 40% 30% at 25% 75%,rgba(140,110,64,.14),transparent 70%);background-attachment:fixed;color:var(--text);font-family:EB Garamond,Georgia,Times New Roman,serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2{font-family:Cinzel,Georgia,serif;font-weight:600;letter-spacing:.04em;margin:0}a{color:#6d4b1f}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78em;letter-spacing:.08em}.page{max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.masthead{text-align:center;padding-bottom:1.5rem;margin-bottom:2rem;border-bottom:1px solid var(--rule);position:relative}.masthead:after{content:"";position:absolute;left:50%;bottom:-4px;width:120px;height:7px;transform:translate(-50%);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.masthead h1{font-size:clamp(2rem,6vw,3.1rem);letter-spacing:.13em;text-transform:uppercase;color:#4a2a18}.standfirst{max-width:60ch;margin:.9rem auto 0;color:var(--text-soft);font-size:1.03rem}.layout{display:grid;grid-template-columns:minmax(0,1fr) 24rem;gap:2rem;align-items:start}.stage{position:sticky;top:1.5rem;display:grid;gap:1.25rem}@media (max-width: 960px){.layout{grid-template-columns:minmax(0,1fr)}.stage{position:static}}.plate{margin:0;padding:1.5rem;background:linear-gradient(170deg,#f3e9d2,#e4d4ae);border:1px solid var(--rule);box-shadow:0 1px #fffcf0b3 inset,0 10px 28px -16px var(--shadow);position:relative}.plate:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid var(--gold-soft);opacity:.5;pointer-events:none}.rune{display:block;width:100%;height:auto;max-height:58vh}.plate figcaption{margin-top:.75rem;text-align:center}.title-input{width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;text-align:center;font-family:Cinzel,Georgia,serif;font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase;color:#4a2a18;padding:.3rem 0}.title-input::placeholder{color:#6a563873}.title-input:focus{outline:none;border-bottom-color:var(--gold)}.readout{padding:1.1rem 1.25rem 1.25rem;background:#f7f0df99;border:1px solid var(--rule)}.readout h2,.panel h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold)}.readout h2{margin-bottom:.6rem}.readout table{width:100%;border-collapse:collapse}.readout tr{border-bottom:1px solid rgba(90,70,40,.14)}.readout tr:hover{background:#c9ad6a29}.readout th,.readout td{text-align:left;padding:.38rem .5rem .38rem 0;font-weight:400;vertical-align:baseline}.readout th{font-family:Cinzel,Georgia,serif;font-size:.8rem;letter-spacing:.05em;white-space:nowrap;width:8.5rem}.readout .feature{font-style:italic}.readout .count{text-align:right;color:var(--text-soft);font-size:.85rem;white-space:nowrap}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}button{font-family:Cinzel,Georgia,serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem .85rem;color:#4a2a18;background:linear-gradient(180deg,#f1e6cd,#e0cfa8);border:1px solid var(--rule);cursor:pointer;transition:background .12s ease,transform .12s ease}button:hover{background:linear-gradient(180deg,#f7eedb,#e7d8b6)}button:active{transform:translateY(1px)}.controls{display:grid;gap:1.25rem}.panel{padding:1.15rem 1.25rem 1.35rem;background:#f7f0df8c;border:1px solid var(--rule)}.panel h2{padding-bottom:.5rem;border-bottom:1px solid var(--rule);margin-bottom:.75rem}.hint{margin:0 0 1rem;font-size:.88rem;color:var(--text-soft)}.attributes{display:grid;gap:.9rem}.attribute{display:grid;gap:.3rem}.attribute-head{display:flex;align-items:center;gap:.5rem}.swatch{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.25);flex:none}.attribute-label{font-family:Cinzel,Georgia,serif;font-size:.82rem;letter-spacing:.04em}.k{margin-left:auto;font-size:.76rem;font-style:italic;color:var(--text-soft)}.bits{color:var(--text-soft);font-size:.72rem}select,input[type=search]{width:100%;font-family:EB Garamond,Georgia,serif;font-size:.95rem;padding:.38rem .5rem;color:var(--text);background:#fffcf3bf;border:1px solid var(--rule)}select:focus,input:focus{outline:2px solid var(--gold-soft);outline-offset:-1px}.field{display:grid;gap:.3rem;margin-bottom:.9rem}.field>span{font-family:Cinzel,Georgia,serif;font-size:.82rem}.field small{color:var(--text-soft);font-size:.82rem}.inline{color:var(--text-soft)}input[type=range]{width:100%;accent-color:#8b0000}.toggles{border:1px solid var(--rule);padding:.6rem .8rem .8rem;margin:0;display:grid;gap:.35rem}.toggles legend{font-family:Cinzel,Georgia,serif;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:0 .4rem}.toggles label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}input[type=checkbox]{accent-color:#8b0000}.search{margin-bottom:.75rem}.spell-list{list-style:none;margin:0;padding:0;max-height:22rem;overflow-y:auto;border-top:1px solid var(--rule)}.spell{display:block;width:100%;text-align:left;text-transform:none;letter-spacing:0;font-family:EB Garamond,Georgia,serif;font-size:.95rem;background:transparent;border:0;border-bottom:1px solid rgba(90,70,40,.12);padding:.4rem .3rem}.spell:hover{background:#c9ad6a33}.spell.current{background:#8b00001a;box-shadow:inset 3px 0 0 var(--ink)}.spell-name{display:block}.spell-meta{display:block;font-size:.78rem;color:var(--text-soft)}.empty{padding:.75rem .3rem;color:var(--text-soft);font-style:italic}.colophon{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--rule);font-size:.84rem;color:var(--text-soft);max-width:70ch}.colophon p{margin:0 0 .5rem}.view-switch{display:flex;gap:0;justify-content:center}.view-switch button{border-radius:0;background:#f0e7d080;color:var(--text-soft)}.view-switch button+button{border-left:0}.view-switch button.on{background:linear-gradient(180deg,#f3e9d2,#e4d4ae);color:#4a2a18;box-shadow:inset 0 -2px 0 var(--ink)}.plate-svg{display:block;width:100%;height:auto;max-height:72vh}.plate-title{font-family:Cinzel,Georgia,serif;font-size:30px;letter-spacing:3px}.plate-label{font-family:Cinzel,Georgia,serif;font-size:11px;letter-spacing:1.6px}.plate-value{font-family:EB Garamond,Georgia,serif;font-size:15px;font-style:italic}.plate-k{font-family:EB Garamond,Georgia,serif;font-size:11px}.tabs{display:flex;justify-content:center;gap:0;margin-top:1.5rem}.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-soft);font-size:.82rem;padding:.5rem 1.1rem}.tabs button:hover{background:#c9ad6a29}.tabs button.on{color:#4a2a18;border-bottom-color:var(--ink)}.ink-pick{display:grid;gap:.5rem;padding-top:.15rem}.swatches{display:flex;gap:.4rem;flex-wrap:wrap}.chip{width:26px;height:26px;padding:0;border:1px solid var(--rule);border-radius:50%;cursor:pointer}.chip.on{box-shadow:0 0 0 2px var(--parchment),0 0 0 3px var(--gold)}.custom-ink{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.custom-ink input[type=color]{width:44px;height:26px;padding:0;border:1px solid var(--rule);background:transparent;cursor:pointer}.readout th .swatch{display:inline-block;margin-right:.45rem;vertical-align:baseline}input[type=text],textarea{width:100%;font-family:EB Garamond,Georgia,serif;font-size:.95rem;padding:.38rem .5rem;color:var(--text);background:#fffcf3bf;border:1px solid var(--rule)}.draft-attribute{border:1px solid var(--rule);padding:.6rem .7rem .7rem;background:#fffcf359;display:grid;gap:.45rem}.draft-name{flex:1;min-width:0;font-family:Cinzel,Georgia,serif;font-size:.82rem;padding:.2rem .35rem}.draft-features{resize:vertical;line-height:1.4}.draft-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.78rem;color:var(--text-soft)}.draft-buttons{display:flex;gap:.25rem}.draft-buttons button{padding:.2rem .45rem;font-size:.66rem}.draft-buttons button:disabled{opacity:.4;cursor:default}.fault{margin:0;padding:.4rem .55rem;font-size:.82rem;color:#6d2020;background:#8b000012;border-left:2px solid var(--ink)}.rune.drawable .node-hit circle[role=button]{cursor:pointer;outline:none}.rune.drawable .node-hit circle[role=button]:focus-visible{outline:2px solid var(--gold);outline-offset:0;rx:3}.node-held{stroke:var(--ink);stroke-width:.9;opacity:.85}.node-open{fill:var(--gold);opacity:.45}.rune.drawable .node-hit:hover .node-open{opacity:.9}.readout .unnamed{color:var(--text-soft);font-style:italic}.draw-hint{margin:.6rem 0 0;font-size:.84rem;color:var(--text-soft);text-align:center;min-height:1.3em}.draw-hint strong{color:#4a2a18;font-weight:500}button.link{background:none;border:0;padding:0;font-family:EB Garamond,Georgia,serif;font-size:.82rem;letter-spacing:0;text-transform:none;color:#6d4b1f;text-decoration:underline;text-underline-offset:2px;cursor:pointer;justify-self:start}button.link:hover{background:none;color:var(--ink)}.naming{display:flex;gap:.35rem;align-items:center}.naming input[type=text]{flex:1;min-width:0;padding:.22rem .4rem;font-size:.9rem}.naming button{padding:.28rem .55rem;font-size:.66rem}.naming button:disabled{opacity:.45;cursor:default}.named-note{display:flex;gap:.45rem;align-items:baseline;font-size:.82rem;color:var(--text-soft)}.named-note strong{color:#4a2a18;font-weight:500;font-style:italic}.kept-list{list-style:none;margin:0;padding:.35rem 0 0;display:grid;gap:.2rem;border-top:1px dashed var(--rule)}.kept-list li{display:flex;align-items:baseline;gap:.45rem;font-size:.85rem}.kept-name{font-style:italic;color:#4a2a18}.kept-list code{color:var(--text-soft);font-size:.68rem;margin-left:auto}.readout-note{margin:.75rem 0 0;padding-top:.6rem;border-top:1px dashed var(--rule);font-size:.82rem}.keep-spell{display:flex;gap:.4rem;align-items:center;margin-bottom:.75rem}.keep-spell input[type=text]{flex:1;min-width:0}.keep-spell button{padding:.38rem .7rem;font-size:.68rem;white-space:nowrap}.keep-spell button:disabled{opacity:.45;cursor:default}.kept-here{margin:0 0 .75rem;padding:.45rem .6rem;font-size:.85rem;color:var(--text-soft);background:#c9ad6a2e;border-left:2px solid var(--gold)}.kept-here strong{color:#4a2a18;font-style:italic;font-weight:500}.kept-row{display:flex;align-items:center;gap:.3rem}.kept-row .spell{flex:1;min-width:0;border-bottom:0}.kept-actions{display:flex;gap:.5rem;flex:none;padding-right:.2rem}.kept-actions .link{font-size:.74rem}.spell-list>li{border-bottom:1px solid rgba(90,70,40,.12)}.star{flex:none;background:none;border:0;padding:.1rem .3rem;font-size:1rem;line-height:1;color:var(--text-soft);cursor:pointer}.star:hover{background:none;color:var(--gold)}.star.on{color:var(--gold)}.only-favourites{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--text-soft);margin-bottom:.5rem}@media (prefers-reduced-motion: reduce){.rune g{transition:none!important}}
