:root{--ink: #1a1408;--paper: #f5ecd8;--paper-deep: #ecdfc2;--accent: #7a5c2e}*{box-sizing:border-box}body{margin:0;font-family:Georgia,Times New Roman,serif;background:radial-gradient(ellipse at top,var(--paper) 60%,var(--paper-deep));color:var(--ink);min-height:100vh}#app{max-width:64rem;margin:0 auto;padding:1.5rem}header h1{font-size:2.4rem;margin:0;letter-spacing:.06em}.tagline{margin-top:.2rem;font-style:italic;opacity:.75}main{display:flex;flex-wrap:wrap;gap:2rem;align-items:flex-start;margin-top:1rem}#seal{flex:1 1 24rem}#seal svg{max-width:100%;height:auto;display:block}#entry{flex:1 1 18rem;border-left:2px solid var(--accent);padding-left:1.25rem}#entry h2{margin-top:0;font-variant:small-caps;letter-spacing:.04em}#entry .seed{opacity:.6;font-size:.9rem}#actions{margin-top:1rem;display:flex;gap:.8rem}#controls form{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--accent)}#controls fieldset{border:1px solid var(--accent);display:flex;flex-wrap:wrap;gap:.3rem .8rem}#controls .sign{font-size:.85rem}#controls .sign-group{flex-basis:100%;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:.2rem}button{font:inherit;background:var(--ink);color:var(--paper);border:none;padding:.5rem 1.1rem;cursor:pointer;border-radius:2px}button:hover{background:var(--accent)}input[type=text],input:not([type]){font:inherit;background:transparent;border:none;border-bottom:1px solid var(--accent)}footer{margin-top:3rem;font-size:.8rem;opacity:.7}.sheet{display:flex;flex-wrap:wrap;gap:1rem}.sheet figure{margin:0;text-align:center}.brim-banner{border:1px solid #7a2e2e;color:#7a2e2e;padding:.5rem .9rem;font-style:italic;margin:0 0 .8rem}.brim{font-weight:700}#panel.preset-active :is(input[name=seed],select[name=sigil],select[name=arr],select[name=ring],select[name=comp],select[name=center],input[name=mag],input[name=pen],input[name=pinMag],input[name=pinPen],fieldset,#cast){opacity:.4;pointer-events:none}.practice-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.practice-head h2{font-variant:small-caps;letter-spacing:.04em;margin:0}.practice-actions{display:flex;gap:.8rem}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.practice-cell{margin:0}.practice-cell svg{width:100%;height:auto;display:block}.practice-caption{font-size:.85rem;opacity:.75;font-style:italic}@media print{body{background:none}header,footer,.practice-actions{display:none}#app{max-width:none;padding:0}.practice-grid{gap:.5rem}.guide{stroke:#999}}.drill-rows{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.drill-row{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem}.drill-cell{border:1px solid var(--paper-deep);aspect-ratio:1;display:flex;align-items:center;justify-content:center}.drill-cell svg{width:90%;height:auto}.practice-caption a{color:var(--accent)}.knights-banner{border:1px solid #2e3a4a;color:#2e3a4a;padding:.5rem .9rem;font-style:italic;margin:0 0 .8rem}.leaves{display:flex;justify-content:center;gap:48px}.leaves .leaf{transition:transform .6s ease}.leaves .leaf svg{display:block;max-width:100%;height:auto}.leaves.joining .leaf-l{transform:translate(24px)}.leaves.joining .leaf-r{transform:translate(-24px)}@media(prefers-reduced-motion:reduce){.leaves .leaf{transition:none}}.leaves-note{font-style:italic;font-size:.85rem;text-align:center}.book-page{max-width:760px;margin:0 auto}.book-head{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:1rem}#book-title{font:inherit;font-size:1.4rem;border:none;border-bottom:1px dashed var(--accent);background:none;padding:.2rem 0;min-width:12rem}.book-cover{display:none}.book-entry{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;border-top:1px solid var(--paper-deep);padding:1.4rem 0}.leaf{position:relative;flex:0 0 auto;width:210px;height:210px;margin:0;border:1px solid var(--paper-deep);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.leaf svg{width:76%;height:auto;display:block}.leaf figcaption{font-size:.68rem;text-align:center;max-width:72%;margin-top:.1rem}.punch{position:absolute;top:9px;width:9px;height:9px;border:1px solid var(--paper-deep);border-radius:50%}.leaf-reading{flex:1 1 16rem;min-width:14rem}.leaf-reading .seed{font-size:.8rem}.book-empty,.book-count{text-align:center;font-style:italic}@media print{.book-head,.tear,.book-count,.leaf-reading{display:none}.book-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;width:70mm;height:70mm;border:1px dashed #333;border-radius:50%;margin:0 auto 6mm;page-break-after:always}.book-cover h2{font-size:1.1rem;text-align:center;max-width:56mm}.book-cover p{font-size:.7rem}.book-page{max-width:none;display:flex;flex-wrap:wrap;gap:6mm;justify-content:flex-start}.book-entry{display:block;border-top:none;padding:0;break-inside:avoid;page-break-inside:avoid}.leaf{width:70mm;height:70mm;border:1px dashed #333}.leaf svg{width:52mm}.leaf figcaption{font-size:6pt}.punch{top:4mm;width:3mm;height:3mm;border-color:#333}}.book-carry{font-size:.82rem;font-style:italic;text-align:center;max-width:34rem;margin:.3rem auto}#book-import-result{font-style:normal}@media print{.book-carry{display:none}}.tale-page{max-width:720px;margin:0 auto}.tale-what{font-size:.8rem;font-style:italic;max-width:34rem;margin:0 auto 1rem;text-align:center}.tale-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.2rem}.tale-title{text-align:center;font-size:1.6rem;margin:0 0 .8rem}.tale-panel{position:relative;border:1px solid var(--paper-deep);aspect-ratio:4 / 3;display:flex;padding:4%}.tale-seal{width:34%}.tale-seal svg{width:100%;height:auto;display:block}.tale-panel.seat-top-left{align-items:flex-start;justify-content:flex-start}.tale-panel.seat-top-right{align-items:flex-start;justify-content:flex-end}.tale-panel.seat-bottom-left{align-items:flex-end;justify-content:flex-start}.tale-panel.seat-bottom-right{align-items:flex-end;justify-content:flex-end}.tale-text{margin-top:1rem;font-size:1.05rem;line-height:1.6}.tale-text p{margin:0 0 .5rem}.tale-foot{font-size:.75rem;font-style:italic;text-align:right}@media print{.tale-actions,.tale-what{display:none}.tale-page{max-width:none}.tale-panel{border:1px solid #333;aspect-ratio:auto;height:165mm}.tale-seal{width:60mm}.tale-title{font-size:18pt}.tale-text{font-size:12pt}}
