:root{--ink:#302c26;--muted:#716957;--gold:#9b8050;--dark-gold:#70582f;--paper:#f4ebd8;--surface:#fbf9f3;--accent:#ede1c8;--border:#c9bda4;--blood:#7a2424;--shadow:0 18px 55px #302c2617}[data-theme="warm"]{--ink:#302c26;--muted:#716957;--gold:#9b8050;--dark-gold:#70582f;--paper:#f4ebd8;--surface:#fbf9f3;--accent:#ede1c8;--border:#c9bda4;--blood:#7a2424;}
[data-theme="steel"]{--ink:#292b32;--muted:#626873;--gold:#7187a0;--dark-gold:#465a72;--paper:#eef1f3;--surface:#f7f9fa;--accent:#dce3e8;--border:#b8c2cc;--blood:#526d85;}
[data-theme="fangdrael"]{--ink:#29302a;--muted:#687064;--gold:#7f8f62;--dark-gold:#53603d;--paper:#f1f2e8;--surface:#fafbf5;--accent:#e3e5d4;--border:#bdc3ae;--blood:#536b45;}
[data-theme="bw"]{--ink:#202020;--muted:#666666;--gold:#777777;--dark-gold:#484848;--paper:#eeeeee;--surface:#fafafa;--accent:#e2e2e2;--border:#b5b5b5;--blood:#444444;}
[data-theme="high-contrast"]{--ink:#111111;--muted:#333333;--gold:#005a9c;--dark-gold:#003b66;--paper:#ffffff;--surface:#ffffff;--accent:#fff4cc;--border:#555555;--blood:#a40000;}
[data-theme="yon-sen"]{--ink:#292724;--muted:#625d54;--gold:#a88a54;--dark-gold:#78633d;--paper:#f3ebdd;--surface:#faf6ec;--accent:#eee4d1;--border:#c8bda8;--blood:#8c3029;}
[data-theme="steingrund"]{--ink:#25262b;--muted:#686a73;--gold:#8e96a8;--dark-gold:#5c6372;--paper:#eef0f2;--surface:#f8f9fa;--accent:#e1e5e9;--border:#b5bbc3;--blood:#6f2535;}
[data-theme="treorst"]{--ink:#272238;--muted:#6d647a;--gold:#c39a3d;--dark-gold:#87651f;--paper:#f4ebd7;--surface:#fff9e9;--accent:#eeddb8;--border:#c7a967;--blood:#7c2348;}
[data-theme="anankar"]{--ink:#3a3025;--muted:#796c59;--gold:#b28a45;--dark-gold:#80612f;--paper:#f2e5c7;--surface:#fbf4df;--accent:#ead6ad;--border:#cbb98f;--blood:#8b4930;}
[data-theme="drekinsteps"]{--ink:#33251f;--muted:#765b4e;--gold:#c08a3e;--dark-gold:#875722;--paper:#f1ddc5;--surface:#faebd9;--accent:#e7c9a8;--border:#c69d76;--blood:#a83224;}
[data-theme="draan"]{--ink:#25223d;--muted:#665e82;--gold:#5f9189;--dark-gold:#3f6965;--paper:#e2dfe8;--surface:#f2edf3;--accent:#d4c1d7;--border:#9991a8;--blood:#713f70;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.55 "Libre Baskerville",Georgia,serif;background-image:radial-gradient(circle at 10% 5%,color-mix(in srgb,var(--gold) 12%,transparent),transparent 28%),linear-gradient(90deg,color-mix(in srgb,var(--blood) 3%,transparent) 1px,transparent 1px);background-size:auto,32px 32px}button,input,select{font:inherit}button,select{cursor:pointer}.topbar{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:12px max(24px,calc((100vw - 1380px)/2));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:40px;height:40px;color:var(--surface);background:var(--blood);font:700 21px Cinzel,serif;transform:rotate(45deg)}.brand-mark::first-letter{transform:rotate(-45deg)}.brand b{display:block;font:700 15px Cinzel,serif}.brand small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.topbar nav{display:flex;gap:6px}.topbar nav a{padding:8px 14px;color:var(--muted);font:600 11px Cinzel,serif;text-decoration:none;text-transform:uppercase}.topbar nav a:hover{color:var(--blood);background:var(--accent)}.theme-picker{justify-self:end;color:var(--muted);font-size:10px;text-transform:uppercase}.theme-picker select{margin-left:8px;padding:6px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}main{max-width:1400px;margin:auto;padding:0 22px}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:end;padding:80px 30px 52px}.eyebrow{margin:0 0 8px;color:var(--dark-gold);font:700 10px Cinzel,serif;letter-spacing:.14em;text-transform:uppercase}.hero h1{max-width:780px;margin:0;color:var(--blood);font:700 clamp(34px,5vw,68px)/1.05 Cinzel,serif}.hero>div>p:last-child{max-width:680px;color:var(--muted);font-size:17px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:var(--shadow)}.hero-stats div{padding:20px;border-right:1px solid var(--border)}.hero-stats div:last-child{border:0}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{color:var(--blood);font:700 25px Cinzel,serif}.hero-stats span{color:var(--muted);font-size:9px;text-transform:uppercase}.workspace{display:grid;grid-template-columns:280px 1fr;min-height:760px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.filters{padding:26px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--accent) 45%,var(--surface))}.section-heading{display:flex;gap:13px;align-items:start;margin-bottom:22px}.section-heading>span{color:var(--gold);font:700 24px Cinzel,serif}.section-heading h2{margin:0;color:var(--blood);font:700 22px Cinzel,serif}.section-heading p{margin:2px 0;color:var(--muted);font-size:11px}.filters>label,.field-pair label{display:block;margin:13px 0;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.filters input,.filters select,.field-pair input,.field-pair select,.artisan-levels input{width:100%;height:38px;margin-top:4px;padding:7px 9px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}.range-row,.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.filter-actions{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.filter-actions span{color:var(--blood);font-size:11px}.quiet,.secondary,.more{padding:8px 12px;border:1px solid var(--gold);background:transparent;color:var(--dark-gold)}.source-note{margin-top:35px;padding:14px;border-left:3px solid var(--gold);background:var(--surface);color:var(--muted);font-size:10px}.source-note b{color:var(--dark-gold);font:700 10px Cinzel,serif}.source-note p{margin:4px 0}.catalog-panel{min-width:0;padding:22px}.catalog-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.discipline-tabs{display:flex;gap:4px;overflow:auto}.discipline-tabs button{padding:8px 11px;border:0;background:transparent;color:var(--muted);font:700 10px Cinzel,serif}.discipline-tabs button.active{color:var(--surface);background:var(--blood)}.catalog-toolbar label{color:var(--muted);font-size:9px;text-transform:uppercase}.catalog-toolbar select{margin-left:6px;padding:7px;border:1px solid var(--border);background:var(--surface)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{position:relative;display:flex;flex-direction:column;min-height:195px;padding:16px;border:1px solid var(--border);border-top:3px solid var(--gold);background:var(--paper);transition:.18s transform,.18s box-shadow}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.card-meta{display:flex;justify-content:space-between;color:var(--muted);font:700 8px Cinzel,serif;text-transform:uppercase}.card h3{margin:9px 0 4px;color:var(--blood);font:700 15px Cinzel,serif}.card .effect{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:11px;-webkit-line-clamp:3;-webkit-box-orient:vertical}.metrics{display:flex;gap:5px;margin:auto 0 10px;padding-top:10px}.metrics span{padding:3px 6px;background:var(--accent);color:var(--dark-gold);font-size:9px}.card button{align-self:end;padding:6px 10px;border:0;background:var(--blood);color:var(--surface);font:700 9px Cinzel,serif}.more{display:block;margin:18px auto 0}.composer{margin:70px 0;padding:34px;background:var(--ink);color:var(--surface);box-shadow:var(--shadow)}.section-heading.light h2{color:var(--paper)}.section-heading.light p{color:color-mix(in srgb,var(--paper) 66%,transparent)}.composer-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:22px}.recipe-form,.recipe-summary{padding:22px;background:var(--surface);color:var(--ink)}.artisan-levels{display:grid;grid-template-columns:repeat(3,80px 20px) 1fr;align-items:end;gap:6px;padding:13px;background:var(--accent)}.artisan-levels label{color:var(--muted);font-size:8px;text-transform:uppercase}.artisan-levels span{align-self:center;color:var(--gold);font-weight:bold}.artisan-levels output{justify-self:end;color:var(--blood);font:700 38px Cinzel,serif}.drop-zone{display:flex;gap:12px;align-items:center;margin:16px 0;padding:15px;border:1px dashed var(--gold);color:var(--muted)}.drop-zone span{color:var(--blood);font-size:24px}.drop-zone b{color:var(--dark-gold);font:700 10px Cinzel,serif}.drop-zone p{margin:2px 0;font-size:10px}.selection{display:grid;gap:6px}.selected-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px;border-left:3px solid var(--gold);background:var(--paper)}.selected-item b{color:var(--blood);font:700 11px Cinzel,serif}.selected-item small{display:block;color:var(--muted)}.selected-item button{border:0;background:transparent;color:var(--blood)}.empty{color:var(--muted);font-style:italic}.recipe-summary{background:var(--paper)}.recipe-summary h3{margin:0 0 15px;color:var(--blood);font:700 22px Cinzel,serif}.summary-metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border)}.summary-metrics div{padding:12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.summary-metrics span,.summary-metrics strong{display:block}.summary-metrics span{color:var(--muted);font-size:8px;text-transform:uppercase}.summary-metrics strong{font:700 20px Cinzel,serif}.validity{margin:14px 0;padding:12px;border-left:4px solid #58784c;background:#e7efdf}.validity.bad{border-color:var(--blood);background:#f1dddd}.validity b,.validity span{display:block}.validity span{font-size:10px;color:var(--muted)}.export-actions{display:grid;gap:7px}.export-actions button{padding:10px;border:0;background:var(--blood);color:var(--surface);font:700 10px Cinzel,serif}.export-actions .secondary{border:1px solid var(--blood);background:transparent;color:var(--blood)}.export-actions .quiet{border:1px solid var(--border);background:transparent;color:var(--muted)}.library{padding:30px 25px 70px}.saved-recipes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.saved-card{padding:15px;border:1px solid var(--border);background:var(--surface)}.saved-card h3{margin:0;color:var(--blood);font:700 14px Cinzel,serif}.saved-card p{color:var(--muted);font-size:10px}footer{display:flex;justify-content:space-between;padding:24px max(25px,calc((100vw - 1360px)/2));background:var(--ink);color:var(--paper);font-size:10px}noscript{display:block;padding:20px;background:#fff4cc;color:#111}@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.composer-grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.hero-stats{max-width:600px}}@media(max-width:720px){main{padding:0 10px}.topbar{padding:10px}.brand small{display:none}.theme-picker{font-size:0}.workspace{grid-template-columns:1fr}.filters{border:0;border-bottom:1px solid var(--border)}.cards{grid-template-columns:1fr}.catalog-toolbar{align-items:start;flex-direction:column}.composer{padding:20px 12px}.field-pair,.range-row{grid-template-columns:1fr}.artisan-levels{grid-template-columns:repeat(3,1fr)}.artisan-levels span{display:none}.artisan-levels output{grid-column:1/-1}.saved-recipes{grid-template-columns:1fr}footer{gap:15px;flex-direction:column}}
@media print{.topbar,.filters,.catalog-panel,.drop-zone,.export-actions,.library,footer{display:none!important}body{background:white}.composer{margin:0;padding:0;background:white;color:black}.composer-grid{grid-template-columns:1fr}.recipe-form,.recipe-summary{box-shadow:none;border:1px solid #999}}
.custom-editor{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.custom-editor summary{color:var(--blood);font:700 11px Cinzel,serif;cursor:pointer}.custom-editor form{display:grid;gap:9px;margin-top:12px}.custom-editor label{display:grid;gap:4px}.custom-editor input,.custom-editor select,.custom-editor textarea{width:100%;padding:7px;border:1px solid var(--border);background:var(--light);color:var(--ink);font:inherit}.custom-editor textarea{resize:vertical}.custom-numbers{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.custom-editor button{padding:8px;border:0;background:var(--blood);color:var(--light);font:700 9px Cinzel,serif}.custom-status{min-height:18px;color:var(--dark-gold);font-size:10px}.custom-card{box-shadow:inset 0 3px 0 var(--gold)}.card-actions{display:flex;gap:6px;margin-top:auto}.card-actions button{flex:1}.card-actions .delete-custom{background:transparent;color:var(--blood);border:1px solid var(--blood)}.card-actions .add-item:disabled{cursor:not-allowed;opacity:.45;filter:grayscale(1)}#recipe-discipline:disabled{cursor:lock;opacity:.72}@media(max-width:720px){.custom-numbers{grid-template-columns:repeat(2,1fr)}}
.limit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.limit-grid label,.recipe-notes{display:grid;gap:4px}.limit-grid input,.limit-grid select,.recipe-notes textarea,.library-toolbar input{width:100%;padding:8px;border:1px solid var(--border);background:var(--light);color:var(--ink);font:inherit}.recipe-notes textarea{resize:vertical}.validity.warn{background:#fff0c7;color:#5e4610;border-color:#c79524}.action-status{display:block;min-height:20px;margin-top:8px;color:var(--muted);font-size:11px}.action-status.bad{color:#a40000}.library-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:16px}.library-toolbar label{flex:1 1 220px}.library-toolbar button{padding:9px 12px}.saved-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.saved-actions button{padding:6px 9px;border:1px solid var(--border);background:var(--light);color:var(--ink)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media(max-width:720px){.limit-grid{grid-template-columns:1fr}.export-actions button{flex:1 1 140px}}@media print{.limit-grid,.recipe-notes{break-inside:avoid}.action-status{display:none}.selection{max-height:none!important;overflow:visible!important}}
.pin-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important}.pin-toggle input{width:auto!important}.composition-actions{display:flex;gap:6px;margin:8px 0}.composition-actions button{padding:6px 10px}.library-toolbar select{padding:8px;border:1px solid var(--border);background:var(--light);color:var(--ink)}.saved-card.pinned{border-color:var(--gold);box-shadow:inset 0 3px 0 var(--gold)}.saved-tags{color:var(--dark-gold);font-size:10px}
