.recipe-book{margin-top:50px;padding:clamp(18px,3vw,32px);border:1px solid #ffafcc45;border-radius:22px;background:linear-gradient(150deg,#251c28ed,#13171fed);color:var(--text);font:16px/1.55 system-ui,sans-serif;min-width:0}.recipe-book *{box-sizing:border-box}.recipe-book h2,.recipe-book h3,.recipe-book h4{line-height:1.25;overflow-wrap:anywhere}.rb-heading h2{margin:0 0 12px;color:var(--accent-soft);font:clamp(28px,4vw,40px)/1.2 Georgia,serif}.rb-eyebrow{font-size:12px;letter-spacing:.16em;color:var(--accent-soft);margin:0 0 8px}.rb-intro{white-space:pre-line;max-width:800px}.rb-instructions{font-size:14px;color:#d3c6d6;margin:20px 0}.rb-workshop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.rb-spell-slot{min-width:0;padding:16px;border:1px solid #ffffff26;border-radius:16px;background:#0b0e15b8}.rb-spell-slot>h3{margin:0 0 14px;font:24px Georgia,serif;color:#ffe4ed}.rb-muted{font-size:14px;color:#c9becd}.rb-spell-slot>.rb-muted{margin:-8px 0 12px}.rb-wells{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rb-well{min-width:0;margin-bottom:12px;padding:8px;border:1px dashed #8d788966;border-radius:12px;background:#ffffff04}.rb-drop{display:flex;min-height:112px;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px;border:0;background:transparent;color:#e9dde9;font:14px/1.3 system-ui;overflow-wrap:anywhere}.rb-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:60px;height:60px;border:1px solid #ffffff30;border-radius:12px;background:#0d1016;color:var(--accent-soft);font:22px Georgia,serif;overflow:hidden}.rb-icon img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none;user-select:none;pointer-events:none}.rb-plus{font-size:28px;line-height:1;color:var(--accent-soft)}.rb-slot-select{display:block;font-size:12px;line-height:1.4;color:#cfbfce;overflow-wrap:anywhere}.rb-slot-select select{width:100%;min-width:0;min-height:44px;margin-top:6px;border:1px solid #655363;border-radius:7px;background:#17151e;color:#f5e7f0;padding:8px 3px;font:14px system-ui}.rb-secret-well{border-color:#f3a3ce70}.rb-secret-well .rb-drop{flex-direction:row;min-height:64px;text-align:left}.rb-secret-well .rb-icon{width:44px;height:44px}.rb-secret-well .rb-slot-select{color:#ffb2dc}.rb-well.is-dragover{border-style:solid;border-color:#ffb6d7;box-shadow:0 0 0 2px #ffb6d755;background:#523346}.rb-result{position:relative;border-top:1px solid #ffffff20;padding-top:14px;min-height:110px}.rb-recipe-button{display:flex;align-items:center;gap:12px;width:100%;padding:4px;border:0;background:none;color:#ffdfed;text-align:left;font:16px system-ui}.rb-result-copy{min-width:0;display:grid;gap:6px;overflow-wrap:anywhere}.rb-result-meta{font-size:14px;color:#ddd0dc}.rb-view{font-size:12px;color:var(--accent-soft);text-decoration:underline}.rb-recipe-icon{width:64px;height:64px}.rb-tooltip{position:absolute;z-index:20;top:100%;left:0;width:max(100%,340px);max-width:calc(100vw - 40px);max-height:480px;overflow:auto;padding:18px;border:1px solid #e6a4c2;border-radius:14px;background:#10121bf7;box-shadow:0 16px 40px #0009;color:#f2e9f1;font-size:14px}.rb-spell-slot:nth-child(even) .rb-tooltip{left:auto;right:0}.rb-tooltip h4{font:22px Georgia,serif;color:#ffd9e9;margin:0 0 14px}.rb-tooltip-stats{display:grid;gap:6px;margin:0 0 14px;padding:10px 12px;border:1px solid #ffffff1f;border-radius:9px;background:#ffffff05}.rb-tooltip-stat{display:flex;justify-content:space-between;gap:18px}.rb-tooltip-stat span{color:#bfaebd}.rb-tooltip-stat strong{text-align:right;color:#ffe3ef}.rb-spell-description{font-size:15px;line-height:1.6;margin:14px 0;color:#f5edf3}.rb-ingredients{font-size:12px;color:#a99daa;margin:14px 0 0}.rb-secret-effect{margin-top:16px;padding-top:12px;border-top:1px solid #ff9ed15c;color:#ffabd6}.rb-secret-effect p{margin:6px 0;white-space:pre-line}.rb-secret-summary{font-size:13px;color:#ffabd6;margin-bottom:0;overflow-wrap:anywhere}.rb-close{margin-top:16px;min-height:44px;border:1px solid #b47d9b;border-radius:8px;background:#2c2130;color:#ffdbed;padding:8px 12px;font:14px system-ui}.rb-empty{font-size:14px;color:#bcb0c1;margin:8px 0}.rb-shelf{margin-top:36px}.rb-shelf>h3{font:28px Georgia,serif;margin:0 0 14px;color:#ffe1ee}.rb-ingredient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rb-ingredient{min-width:0;padding:16px;border:1px solid #ffffff24;border-radius:16px;background:#11131dd9}.rb-choose{display:flex;align-items:center;gap:14px;width:100%;min-width:0;padding:7px;border:1px solid transparent;border-radius:12px;background:transparent;color:#ffe8f2;text-align:left;font:600 17px/1.4 system-ui;overflow-wrap:anywhere;cursor:grab;user-select:none;-webkit-user-drag:none}.rb-choose:active{cursor:grabbing}.rb-choose[aria-pressed=true]{border-color:#f9bcdb;background:#432f40}.rb-properties{border-collapse:collapse;width:100%;table-layout:fixed;margin:14px 0 0;font:14px/1.5 system-ui}.rb-properties th,.rb-properties td{vertical-align:top;text-align:left;padding:9px 8px;border-top:1px solid #ffffff16;overflow-wrap:anywhere;white-space:pre-line}.rb-properties th{width:37%;font-weight:600;color:#cfc0d1}.rb-properties td{color:#f0e5ee}.rb-secret-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rb-secret-card{border-color:#ffa4d04a}.rb-secret-description{font-size:15px;white-space:pre-line;color:#f3d9e8;padding:0 7px}.rb-glossary{margin-top:30px;padding:16px 20px;border:1px solid #ffffff26;border-radius:12px}.rb-glossary summary{cursor:pointer;font-size:17px;font-weight:600}.rb-glossary dt{font-weight:700;color:#ffcfE7;margin-top:12px}.rb-glossary dd{margin:3px 0 0;font-size:15px;white-space:pre-line}.rb-statuses{font-size:14px;color:#e2c6dc}.rb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.recipe-book :is(button,select,summary):focus-visible{outline:2px solid #ffd0e7;outline-offset:3px}.recipe-book button{touch-action:manipulation}.recipe-book [hidden]{display:none!important}
@media(max-width:1100px){.rb-workshop{grid-template-columns:1fr}.rb-spell-slot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 18px}.rb-spell-slot>h3,.rb-spell-slot>.rb-muted{grid-column:1/-1}.rb-wells{grid-column:1}.rb-secret-well{grid-column:1}.rb-result{grid-column:2;grid-row:2/5;border-top:0;border-left:1px solid #ffffff20;padding:0 0 0 18px}.rb-tooltip{position:static;width:100%;max-width:100%;margin-top:14px;max-height:none}.rb-spell-slot:has(>.rb-muted) .rb-result{grid-row:3/5}}
@media(max-width:650px){.rb-spell-slot{display:block}.rb-result{border-left:0;border-top:1px solid #ffffff20;padding:14px 0 0}.rb-ingredient-grid,.rb-secret-grid{grid-template-columns:1fr}.recipe-book{padding:16px;margin-top:30px}.rb-ingredient{padding:12px}.rb-properties th{width:38%}.rb-tooltip{padding:14px}.rb-tooltip .rb-properties{font-size:14px}}

.rb-pantry{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.rb-pantry-group{min-width:0}.rb-pantry-group h3{font-size:15px;margin:0 0 10px;color:#eecfdf}.rb-pantry-buttons{display:flex;flex-wrap:wrap;gap:6px}.rb-pantry-buttons .rb-choose{flex-direction:column;justify-content:flex-start;text-align:center;width:82px;padding:6px 3px;font-size:12px;gap:5px}.rb-pantry-buttons .rb-icon{width:44px;height:44px;font-size:18px}@media(max-width:650px){.rb-pantry{grid-template-columns:1fr}.rb-pantry-buttons .rb-choose{width:75px}}

.rb-tooltip-bubbles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px}.rb-info-bubble{display:grid;gap:2px;min-width:0;padding:9px 11px;border:1px solid #ffffff24;border-radius:10px;background:linear-gradient(145deg,#ffffff0b,#ffffff04)}.rb-info-bubble span{font-size:12px;color:#bfaebd}.rb-info-bubble strong{font-size:14px;color:#ffe3ef;overflow-wrap:anywhere}

.rb-result{margin:0 0 14px;padding:12px;border:1px solid #ffafd04d;border-radius:12px;background:linear-gradient(145deg,#4a2e422b,#ffffff05);min-height:96px;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.rb-result.is-complete{border-color:#ff9dccb8;background:radial-gradient(circle at 18% 53%,#ff6fb02d,transparent 43%),linear-gradient(145deg,#4f2a433d,#17131d);box-shadow:inset 0 0 0 1px #ffd1e51c,0 0 12px #ff73b243,0 0 28px #ff5fab24;animation:rb-dish-complete .55s ease-out}.rb-result-label{margin:0 0 7px;color:#d9a9c2;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.rb-result.is-complete .rb-result-label{color:#ffc2df;text-shadow:0 0 9px #ff6caf70}.rb-recipe-button{border-radius:9px;cursor:help;transition:background .18s ease,box-shadow .18s ease}.rb-recipe-button:hover,.rb-recipe-button:focus-visible{background:#ffb4d012;box-shadow:0 0 0 1px #ffb4d038}.rb-result-copy>strong{font-size:17px}.rb-view{font-size:11px;color:#dca9c1;opacity:.48;text-decoration:none;transition:opacity .18s ease}.rb-recipe-button:hover .rb-view,.rb-recipe-button:focus-visible .rb-view{opacity:.9;text-decoration:underline}.rb-recipe-icon{width:124px;height:124px;border-radius:18px;border-color:#ffb6d0a3;box-shadow:0 0 12px #ff78b650,0 0 28px #ff78b62b}@keyframes rb-dish-complete{0%{transform:scale(.985);box-shadow:inset 0 0 0 1px #ffd1e500,0 0 0 #ff73b200,0 0 0 #ff5fab00}65%{transform:scale(1.006);box-shadow:inset 0 0 0 1px #ffd1e52e,0 0 18px #ff73b25c,0 0 38px #ff5fab32}100%{transform:scale(1)}}.rb-tooltip{margin-top:0}.rb-tooltip.rb-tooltip-up{top:auto;bottom:100%;margin:0}
@media(max-width:1100px){.rb-result{padding:12px;border:1px solid #ffafd04d}.rb-tooltip,.rb-tooltip.rb-tooltip-up{margin:0}}

.rb-well{padding:9px;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.rb-well:hover{border-color:#dba5c185;background:#ffffff07}.rb-well-label{display:block;margin:0 0 2px;text-align:center;color:#d8a9c1;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.rb-drop{min-height:88px}.rb-slot-select{display:flex;justify-content:center;margin-top:3px;color:#cfbfce}.rb-slot-select select{width:auto;min-width:92px;min-height:34px;margin:0;padding:5px 28px 5px 10px;border-color:#65536399;border-radius:999px;background-color:#17151e;color:#e9dbe6;font-size:12px;cursor:pointer}.rb-slot-select select:hover{border-color:#d39ab7}.rb-slot-select option{background:#17151e;color:#f5e7f0}.rb-secret-well .rb-drop{min-height:50px}.rb-drag-cue{display:block;padding:1px 7px;border:1px solid #ffb7d34d;border-radius:999px;color:#dfabc5;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.rb-pantry-choice:hover .rb-drag-cue,.rb-pantry-choice[aria-pressed=true] .rb-drag-cue{border-color:#ffbfda99;color:#ffd4e7}

.rb-tooltip{background:#10121b;opacity:1;backdrop-filter:none;box-shadow:0 18px 48px #000c}

.rb-drop.has-ingredient{cursor:grab}.rb-drop.has-ingredient:active{cursor:grabbing}.rb-well.is-dragging{opacity:.62;border-color:#ffb6d799}

/* Desktop workshop: a sticky ingredient tray and compact icon-shaped recipe slots. */
.rb-layout{min-width:0}.rb-main{min-width:0}.rb-pantry-title{margin:0 0 14px;color:#ffe1ee;font:26px/1.15 Georgia,serif}.rb-slot-name{display:block;min-height:34px;margin-top:6px;color:#d5c7d3;font-size:12px;line-height:1.35;text-align:center;overflow-wrap:anywhere}
@media(min-width:1101px){
 .recipe-book{padding:0;border:0;background:none}
 .rb-layout{display:grid;grid-template-columns:276px minmax(0,1fr);gap:18px;align-items:start;overflow:visible}
 .rb-main{padding:clamp(22px,3vw,32px);border:1px solid #ffafcc45;border-radius:22px;background:linear-gradient(150deg,#251c28ed,#13171fed)}
 .rb-pantry{position:sticky;z-index:25;top:18px;align-self:start;display:block;height:max-content;max-height:calc(100vh - 36px);margin:0;padding:16px 12px;overflow:auto;border:1px solid #ffafcc45;border-radius:18px;background:linear-gradient(155deg,#251c28f5,#11141cf5);box-shadow:0 18px 45px #0007;scrollbar-width:thin;scrollbar-color:#c4789d55 transparent}
 .rb-pantry-group+.rb-pantry-group{margin-top:18px;padding-top:16px;border-top:1px solid #ffffff18}
 .rb-pantry-group h3{margin:0 4px 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#d8abc1}
 .rb-pantry-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .rb-pantry-buttons .rb-choose{width:100%;min-height:84px;flex-direction:column;justify-content:flex-start;gap:5px;padding:6px 4px;border-radius:10px;text-align:center;font-size:12px;line-height:1.25;cursor:grab}
 .rb-pantry-buttons .rb-choose:hover{border-color:#ffbddb55;background:#ffffff08}
 .rb-pantry-buttons .rb-icon{width:42px;height:42px;font-size:16px;border-radius:9px}
 .rb-wells{display:flex;justify-content:center;gap:34px}
 .rb-well,.rb-secret-well{display:flex;width:150px;min-width:0;flex-direction:column;align-items:center;margin:0 0 18px;padding:0;border:0;background:none}
 .rb-well:hover{background:none}
 .rb-well-label{min-height:30px;display:flex;align-items:end;justify-content:center;margin:0 0 6px}
 .rb-drop,.rb-secret-well .rb-drop{width:112px;min-height:112px;height:112px;flex-direction:column;padding:9px;border:1px dashed #a486976e;border-radius:16px;background:#090c12;color:#e9dde9;transition:border-color .16s,box-shadow .16s,background .16s}
 .rb-drop:hover{border-color:#dba5c1a8;background:#11131b}
 .rb-drop .rb-icon,.rb-secret-well .rb-icon{width:92px;height:92px;border-radius:14px}
 .rb-plus{font-size:30px}
 .rb-slot-select{display:none}
 .rb-well.is-dragover{background:none;box-shadow:none}
 .rb-well.is-dragover .rb-drop{border-style:solid;border-color:#f4d35e;box-shadow:0 0 0 2px #f4d35e55,0 0 22px #f4d35e42;background:#3b3418}
 .rb-spell-slot>.rb-secret-well{margin-left:auto;margin-right:auto}
}
@media(max-width:1100px){
 .rb-layout{display:block}.rb-main{min-width:0}.rb-pantry-title{font-size:24px}
 .rb-slot-name{margin-top:2px}.rb-slot-select{display:flex}
}
.embedded .rb-pantry{will-change:transform}

/* Controlled drag feedback avoids the browser's forbidden-drop symbol. */
.rb-draggable-choice,.rb-drop.has-ingredient{cursor:url("./cursor-hand-open.svg") 24 22,grab}.rb-reference-choice,.rb-reference-choice:active{cursor:default}.rb-page-dragging,.rb-page-dragging *{cursor:none!important}.rb-drag-ingredient{position:fixed;z-index:2147483646;width:34px;height:34px;pointer-events:none;transform:translate(-50%,-50%)}.rb-drag-ingredient .rb-icon{width:34px;height:34px;border-radius:8px;background:#0d1016;box-shadow:0 3px 10px #000b,0 0 9px #ffb3d055}
.recipe-book.is-drag-active[data-drag-kind="normal"] .rb-well[data-kind="normal"] .rb-drop,.recipe-book.is-drag-active[data-drag-kind="secret"] .rb-well[data-kind="secret"] .rb-drop{border-style:solid;border-color:#f4d35e70;background:#292616;box-shadow:0 0 0 1px #f4d35e20,0 0 14px #f4d35e30;animation:rb-valid-slot-pulse 1.15s ease-in-out infinite alternate}.recipe-book.is-drag-active[data-drag-kind] .rb-well.is-dragover .rb-drop{border-style:solid;border-color:#f4d35e;box-shadow:0 0 0 2px #f4d35e55,0 0 22px #f4d35e42;background:#3b3418;animation:none}.recipe-book.is-drag-active .rb-well.is-invalid-dragover .rb-drop{border-style:solid;border-color:#ff4d5a;background:#3c171c;box-shadow:0 0 0 2px #ff4d5a38,0 0 20px #ff4d5a42;animation:none}
@keyframes rb-valid-slot-pulse{from{box-shadow:0 0 0 1px #f4d35e18,0 0 8px #f4d35e20}to{box-shadow:0 0 0 2px #f4d35e2b,0 0 17px #f4d35e3d}}@media(prefers-reduced-motion:reduce){.recipe-book.is-drag-active .rb-drop{animation:none!important}}

/* Reserve the completed-spell preview so recipe creation never shifts the workshop. */
.rb-result{height:196px;min-height:196px}.rb-recipe-button{min-height:132px}
@media(max-width:650px){.rb-result{height:188px;min-height:188px}.rb-recipe-icon{width:108px;height:108px;border-radius:16px}.rb-result-copy>.rb-result-meta{display:none}.rb-result-copy>.rb-view{font-size:14px;opacity:1;text-transform:capitalize}}
.rb-dish-motes{position:absolute;z-index:0;inset:-12px;overflow:visible;pointer-events:none}.rb-dish-motes i{position:absolute;left:var(--x);bottom:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#ffd4eb;box-shadow:0 0 4px #fff,0 0 8px #ff9fd0,0 0 15px #ff5faf;opacity:0;animation:rb-dish-mote var(--duration) ease-out var(--delay) infinite}.rb-result.is-complete>:not(.rb-dish-motes):not(.rb-tooltip){position:relative;z-index:1}@keyframes rb-dish-mote{0%{opacity:0;transform:translate3d(0,4px,0) scale(.4)}18%{opacity:.95}70%{opacity:.6}100%{opacity:0;transform:translate3d(var(--drift),-36px,0) scale(1.15)}}
@media(prefers-reduced-motion:reduce){.rb-result.is-complete{animation:none}.rb-dish-motes i{animation:none;opacity:.45}}

/* Mobile spell names may wrap only between complete words. */
@media(max-width:650px){
 .rb-result-copy,.rb-result-copy>strong{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;white-space:normal}
 .rb-result-copy>strong{font-size:16px;line-height:1.3}
}
