/* An illuminated library, parchment work surfaces, and a leather-bound root tome. */
:root{--gold:#f3d291;--ink:#342718;--muted:#eee0ca;--line:#997d514d;color-scheme:light}
body{background-color:#171b28;background-image:linear-gradient(180deg,rgba(8,14,27,.4),rgba(9,15,27,.64)),url('assets/wizard-school.webp');background-size:cover;background-position:center top;background-attachment:fixed;min-height:100vh}
header{background:#101a2ae0;border-bottom:1px solid #c2a36966;box-shadow:0 5px 30px #060b1660;border-radius:0 0 8px 8px}
.brand{font-size:27px}.brand-mark{color:#efc777}.nav{color:#f0e7d8}.nav.active{background:#60462880;color:#ffdf9f;border:1px solid #aa8350}#count{background:#4a3525;color:#ffe5b2}
.heading{background:#101b2a99;border:1px solid #a68b5638;padding:20px 24px;border-radius:8px;box-shadow:0 8px 30px #0003}.heading h1{color:#fff7e5}.heading p{color:#f1e7d4}.heading .subtle,.actions .subtle{background:#1d2a3ae6;color:#ffe2ac;border-color:#bba174}
main{max-width:1360px}.workspace{gap:30px}.panel,.parchment{color:var(--ink);background-color:#eee0bd;background-image:linear-gradient(#fff8e51a,#b998511a),url('assets/parchment.webp');background-size:cover;background-position:center;border-color:#9e7940;box-shadow:0 12px 32px #050a1780,inset 0 0 24px #9d762c33}.panel p{color:#675035}.panel h2,.panel h3{color:#3c2b1c}.panel .eyebrow,.parchment .eyebrow{color:#715125}
.library{border:8px solid #614329;border-left:15px solid #382c25;border-radius:7px 13px 13px 7px;padding:23px;box-shadow:-3px 0 0 #967041,0 3px 0 #d8bc83,0 7px 0 #a88a56,0 17px 35px #060a17a6,inset 0 0 35px #a4824038;position:relative}
.library .section-title{border-bottom:1px solid #a9864a88;padding-bottom:15px;margin-bottom:17px}.library h2{font-size:26px}.library #rootCount{color:#705637}.search{background:#fff9e3bb;border:1px solid #9d8051;color:#3c2b1c}.search input{color:#3c2b1c}.search input::placeholder{color:#736044}.search span{color:#795b33}.search:focus-within{outline-color:#634726}.filter{color:#634829;border-color:#9b7b47;background:#f8ecd299}.filter.active{background:#513b2b;color:#fff0cc;border-color:#513b2b}.hint{color:#675035}.root-grid{scrollbar-color:#916c39 #e9d5a7}.root-card{background:#fff4d5bd;color:#46321e;border:1px solid #b39057;border-radius:5px;box-shadow:0 2px 3px #714a241a}.root-card strong{color:#533519}.root-card small{color:#795b38}.root-card:hover{background:#fff6df;border-color:#73532b}.root-card.chosen{background:#e6cc94;border-color:#624221;box-shadow:inset 0 0 0 1px #624221}.root-card:focus-visible{outline-color:#4f3721}
.mix{border-radius:18px 18px 10px 10px;border-block:6px solid #b18b48;padding:24px;box-shadow:0 13px 32px #0008,inset 0 5px 9px #fff5dbaa,inset 0 -7px 10px #91632144}.mix .section-title{padding-bottom:12px;border-bottom:1px solid #a9864a77}.slot{background:#fff2d155;color:#7a613f;border-color:#927042;border-radius:5px}.slot.filled{background:#e7cf9c;color:#513619;border-color:#987441}.slot.filled small{color:#594226}.slot button{color:#594226}.mix .subtle{color:#624624;border-color:#9a794c;background:#f5e6c4b0}.mix .primary{background:#49344e;color:#fff1cd;border-color:#735175;box-shadow:0 3px 0 #2c1e2f}.mix .status{color:#593d1e;font-weight:600}
.parchment{border-radius:3px 12px 12px 3px;border-left:9px solid #85603a;box-shadow:-3px 0 0 #3b2b23,0 3px 0 #c4ad7d,0 7px 0 #7c633e,0 14px 35px #060a1777,inset 0 0 26px #a87f3933;padding:27px 30px}.paper-top>span:last-child{color:#795530}.parchment input{color:#422d1d;border-color:#a78950}.parchment textarea{background:#fff9e9bb;border-color:#aa8a51;color:#422d1d}.parchment label{color:#503a24}.parchment .prompt,.breakdown{color:#675035}.meaning{border-color:#ac8e58}.meaning p{color:#422d1d}.ink-button{background:#49344e;color:#fff1cd;box-shadow:0 3px 0 #2c1e2f}.ink-button:focus-visible{outline-color:#5b3c67}.empty{border-radius:7px;border-block:5px solid #b18b48}.empty .spark{color:#795431}.empty p{color:#675035}.empty .primary{background:#49344e;color:#fff1cd;border-color:#735175}
.book-note{background:#101b2ae0;border:1px solid #a68b5655;border-radius:6px;padding:12px 18px;color:#eee2ca}.page h2,.page p{color:#422d1d}.page .delete{background:#f8edd6c9;color:#664523;border-color:#a28450}.page-number{color:#715125}footer{background:#101a2ade;color:#f1e3c9;border-top-color:#a68b5666}
button:focus-visible{outline-color:#bb8f42}.nav:focus-visible,.heading button:focus-visible{outline-color:#ffe1a0}
@media(max-width:1000px){.library{padding:19px;border-left-width:12px}.workspace{gap:24px}}
@media(max-width:740px){body{background-attachment:scroll;background-size:auto 100vh;background-repeat:no-repeat;background-color:#172030}.heading{padding:17px 18px}.library{padding:17px}.mix{padding:20px}.parchment{padding:23px}.brand{font-size:25px}header{border-radius:0}.workspace{gap:25px}}
@media print{body{background:white!important}.heading{background:white;border:0;box-shadow:none;padding:0}.heading h1,.heading h1 em{color:black}.page{background:white!important;border:1px solid #999!important;box-shadow:none!important;color:black}.page p,.page h2{color:black}.page .eyebrow,.page-number{color:#555}header,footer{display:none!important}}
/* Keep the root slots and finished spell on one parchment, with the bank immediately below. */
.workspace{display:flex;flex-direction:column;gap:20px}.workspace>.creation,.workspace>.library{width:100%}.creation.mix{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:start}.incantation-controls,.spell-details{min-width:0}.spell-details{border-left:1px solid #a9864a88;padding-left:28px}.creation .parchment{background:none;border:0;border-radius:0;box-shadow:none;padding:0}.creation .paper-top{display:none}.creation .parchment label{margin:0 0 5px}.creation .parchment input{font-size:30px;padding-bottom:6px}.creation .breakdown{padding:8px 0}.creation .meaning{padding:8px 0}.creation .meaning p{font-size:20px}.creation .parchment textarea{min-height:64px;height:72px;padding:8px 10px}.creation .parchment label[for="description"]{margin-top:10px}.creation .parchment .prompt{margin:6px 0;font-size:14px}.creation .ink-button{margin-top:7px;padding:9px 16px}.creation .empty{padding:24px 0;border:0;background:none;box-shadow:none;text-align:left}.creation .empty h3{font-size:24px;margin:0 0 10px}.creation .empty p{margin:0;max-width:none}.creation .selected{min-height:90px}.creation .mix-footer{margin:10px 0 14px}.library .root-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-height:290px}.library .section-title{margin-bottom:12px;padding-bottom:10px}.library .hint{margin:10px 0}.library .filters{margin-top:10px}.heading{margin-bottom:20px;padding:15px 24px}.heading h1{font-size:34px;margin:6px 0}.heading p{margin:5px 0}main{padding-top:24px}
@media(max-width:1000px){.library .root-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.creation.mix{gap:20px}.spell-details{padding-left:20px}}
@media(max-width:740px){.creation.mix{grid-template-columns:1fr;gap:16px}.spell-details{border-left:0;padding-left:0;border-top:1px solid #a9864a88;padding-top:15px}.creation .empty{padding:0}.creation .empty h3{font-size:21px;margin-bottom:6px}.creation .empty p{font-size:14px}.library .root-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:265px}.heading{padding:14px 18px}.heading h1{font-size:30px}.heading .eyebrow{display:none}.heading{gap:10px}.creation .selected{min-height:78px}}
@media(max-width:360px){.library .root-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.heading{padding:0}}
.sound-options{border:1px solid #ac8a53;border-radius:6px;background:#fff4d455;padding:9px 12px;margin:0 0 12px}.sound-options summary,.word-magic-guide summary{cursor:pointer;font-weight:650;color:#50351e;font-size:14px}.sound-options[open] summary{margin-bottom:12px}.sound-options select{font:14px system-ui;color:#48321d;background:#fff7df;border:1px solid #ac8a53;border-radius:5px;padding:8px;width:100%;margin:0 0 9px}.creation .sound-options label{font-size:14px;margin-bottom:5px}.creation .sound-note{font-size:14px;color:#644c31;margin:6px 0;line-height:1.5}.sound-preview{background:#edddb5;border-left:3px solid #8b6837;padding:9px 12px;margin:9px 0;overflow-wrap:anywhere}.sound-preview strong,.sound-preview span{display:block}.sound-preview strong{font:26px Georgia;color:#422b1a}.sound-preview #soundParts{font-size:14px;color:#674c2b;margin-top:3px}.sound-options .subtle{color:#51351e;border-color:#9d7a45;background:#fff3d5;padding:7px 12px;font-size:14px}.word-magic-guide{padding:16px 22px;width:100%}.word-magic-guide summary{font-size:16px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.guide-grid h3{font-size:23px;margin:16px 0 8px}.word-magic-guide p{color:#57402a;font-size:16px}.word-magic-guide .guide-note{border-top:1px solid #a9864a88;padding-top:12px;margin-top:16px;font-size:14px}.word-magic-guide .guide-sources{font-size:14px}.guide-sources a{color:#50385f;text-decoration:underline}.sound-options summary:focus-visible,.word-magic-guide summary:focus-visible{outline:3px solid #7f5931;outline-offset:3px}@media(max-width:740px){.guide-grid{grid-template-columns:1fr;gap:0}.word-magic-guide{padding:14px 18px}}@media print{.word-magic-guide,.sound-options{display:none}}

.spell-suggestions{margin:12px 0 16px}.name-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.suggestion-button{display:flex;flex-direction:column;gap:3px;background:#f4e3bc;color:#3e2919;border:1px solid #916c38;border-radius:8px;padding:9px 12px;font:600 1rem Georgia,serif;overflow-wrap:anywhere;max-width:100%;cursor:pointer}.suggestion-button small{font:400 .875rem/1.3 system-ui}.suggestion-button:hover,.suggestion-button:focus-visible{background:#e8cb8d;outline:2px solid #6a4529;outline-offset:2px}.meaning-suggestions{display:flex;flex-wrap:wrap;gap:7px}.meaning-choice{font:400 .875rem/1.4 system-ui;background:#fff7e5;border:1px solid #916c38;border-radius:8px;padding:8px 10px;color:#3e2919;cursor:pointer;text-align:left;max-width:100%}.meaning-choice.active{background:#3e2919;color:#fff4dc}.meaning-choice:focus-visible{outline:2px solid #6a4529;outline-offset:2px}

.quick-link{margin:12px 0;padding:12px 14px;border:1px dashed #916c38;border-radius:8px;background:#f5e4bc}.quick-link[hidden]{display:none}.quick-link .breakdown{font-weight:600;overflow-wrap:anywhere}

/* Flowing calligraphy for the name, with an illuminated gold flourish. */
@font-face{font-family:SpellbookCalligraphy;src:url('assets/fonts/spellbook-calligraphy.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
header{gap:24px;flex-wrap:wrap}
.brand{font-family:SpellbookCalligraphy,'Segoe Script','Apple Chancery',cursive;font-weight:400;font-size:clamp(2.25rem,3.6vw,3rem);line-height:1.2;gap:10px;max-width:100%;padding:4px 4px 10px 0}
.brand-title{position:relative;display:block;padding-right:18px;color:#fff1cb;text-shadow:0 1px 1px #070c15,0 0 18px #d4a95940}
.brand-title em{font:inherit;color:#ffe4a0;text-shadow:0 0 15px #e2b85860}
.brand-title::after{content:'';position:absolute;left:9%;right:9%;bottom:-3px;height:12px;border-bottom:1px solid #edc97da6;border-radius:0 0 70% 40%;transform:rotate(-3deg);box-shadow:0 5px 9px -8px #ffe9a4;pointer-events:none}
.brand-mark{font-size:1.75rem;align-self:center;text-shadow:0 0 12px #ffdc8d;animation:spellbook-sparkle 4s ease-in-out infinite}
.brand-spark{position:absolute;right:-1px;top:2px;font:1rem Georgia,serif;color:#ffe9ae;text-shadow:0 0 10px #f9ce78;animation:spellbook-sparkle 4s ease-in-out 1.2s infinite}
@keyframes spellbook-sparkle{0%,100%{opacity:.65}50%{opacity:1;text-shadow:0 0 13px #ffe29d,0 0 24px #edc777}}
@media(max-width:740px){.brand{font-size:clamp(2rem,8.5vw,2.625rem)}header{gap:14px}.brand-title{padding-right:14px}.brand-mark{font-size:1.4rem}.brand-spark{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.brand-mark,.brand-spark{animation:none}}

#result{position:relative;isolation:isolate}
.spell-magic{position:absolute;inset:0 0 auto;height:210px;pointer-events:none;overflow:hidden;z-index:3;border-radius:inherit}
.magic-trail{position:absolute;left:6%;top:12%;width:88%;height:100px;border-top:3px solid #ffe9a0;border-radius:50%;filter:drop-shadow(0 0 6px #d0acff);transform:rotate(-12deg);animation:magic-sweep 700ms ease-out both}
.magic-particle{position:absolute;left:var(--x);top:var(--y);color:#fff3ba;font-size:22px;text-shadow:0 0 5px #9266e8,0 0 12px #c69fff;animation:magic-spark 850ms var(--delay) ease-out both}
@keyframes magic-sweep{0%{opacity:0;clip-path:inset(0 100% 0 0)}30%{opacity:1}80%{clip-path:inset(0 0 0 0);opacity:1}100%{opacity:0;clip-path:inset(0 0 0 0)}}
@keyframes magic-spark{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(var(--drift)) scale(.3)}}
@media(prefers-reduced-motion:reduce){.magic-trail{display:none}.magic-particle{animation:magic-still 600ms ease-out both}}
@keyframes magic-still{from{opacity:.8}to{opacity:0}}

.filters{flex-wrap:wrap}.root-card-wrap{position:relative;min-width:0}.root-card-wrap .root-card{width:100%;height:100%;padding-top:38px}.favorite-root{position:absolute;top:3px;right:3px;width:36px;height:36px;padding:0;border:0;border-radius:5px;background:transparent;color:#634221;font-size:25px;line-height:1}.favorite-root:hover,.favorite-root.active{background:#ead39d;color:#533519}.favorite-root:focus-visible{outline-color:#4f3721}

.selected{grid-template-columns:repeat(2,minmax(0,1fr))}

/* A framed spell demonstration beneath the two root slots. */
.spell-preview{margin-top:22px;border-top:1px solid #a9864a88;padding-top:18px}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.preview-header h3{font:23px Georgia,serif;margin:0}.preview-header .subtle{font-size:14px;padding:7px 10px;background:#f7ebcf;color:#50351e;border-color:#9d7a45}.preview-scene{position:relative;overflow:hidden;border:2px solid #86633c;border-radius:9px;background:#111a32;aspect-ratio:3/2;box-shadow:0 5px 16px #46301e30}.preview-scene img{display:block;width:100%;height:100%;object-fit:cover}.preview-scene canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.preview-name{position:absolute;bottom:12px;left:12px;right:12px;color:#fff2cf;background:#0d142be0;border:1px solid #d2b47770;border-radius:6px;padding:6px 12px;font:22px Georgia,serif;text-align:center;overflow-wrap:anywhere}.spell-preview #previewCaption{font-size:16px;line-height:1.5;margin:12px 0 6px;overflow-wrap:anywhere}.spell-preview .preview-note{font-size:14px;color:#72593d;margin:4px 0}@media print{.spell-preview{display:none!important}}
/* The arena extends the existing enchanted school and parchment surfaces. */
nav{flex-wrap:wrap}.arena-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.arena-layout p,.arena-layout label{color:#44331f}.arena-stage{text-align:center}.arena-beast{font-size:6rem;line-height:1.2;margin:12px 0 20px;filter:drop-shadow(0 8px 16px #284b3377)}.arena-stage h2{font-size:1.7rem}.arena-meter{text-align:left;margin:20px 0}.arena-meter label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:1rem}.arena-meter progress{width:100%;height:22px;accent-color:#47754b}.arena-meter #playerMeter{accent-color:#6c4b9a}.arena-round{font-weight:700}.arena-controls h2{margin-bottom:18px}.arena-controls label{display:block;font-weight:700;margin-bottom:8px}.arena-controls select{font:inherit;width:100%;padding:12px;background:#fff6df;color:#352619;border:1px solid #876c45;border-radius:7px}.arena-controls .subtle{color:#45301c;border-color:#886943;background:#fff2d1}.arena-controls .primary,.arena-controls .subtle{margin:10px 8px 0 0}.arena-question{font-size:1.2rem;font-weight:650;overflow-wrap:anywhere;margin:20px 0 10px}.arena-answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arena-answers .subtle{margin:0;min-height:54px;text-align:left;overflow-wrap:anywhere}.arena-answers .arena-correct{background:#d9e7bd;opacity:1;border:2px solid #416538}.arena-log{text-align:left;padding-left:24px;font-size:.875rem;color:#493620}.arena-log li{margin:12px 0}.arena-strike{animation:arena-lunge .5s ease-in-out}@keyframes arena-lunge{50%{transform:scale(1.15) translateY(8px)}}@media(max-width:740px){.arena-layout{grid-template-columns:1fr}.arena-beast{font-size:4.5rem}.arena-answers{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.arena-strike{animation:none}}@media print{#arena,#arenaTab{display:none!important}}
.gem-wallet{position:fixed;right:20px;bottom:20px;z-index:30;background:#172540;color:#ffdfa1;border:2px solid #e1b96f;border-radius:25px;padding:10px 18px;box-shadow:0 5px 18px #0007;font-size:1rem;white-space:nowrap}footer{padding-bottom:85px}.shop-note{max-width:850px}.shop-section{margin:24px 0}.shop-section>p,.shop-card p{color:#493620}.shop-section h2{margin-bottom:10px}.shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:20px}.shop-card{position:relative;overflow:hidden;min-width:0;border:1px solid #aa864c;border-radius:10px;padding:18px;background:#fff4d4;color:#332515}.shop-card h3{font:600 1.2rem/1.3 Georgia,serif;margin:16px 0 8px}.shop-card .primary,.shop-card .subtle{display:block;width:100%;font-size:1rem;margin:10px 0 0}.shop-card .subtle{color:#44311e;border-color:#967542;background:transparent}.shop-price{font-weight:700}.shop-needed{font-size:.875rem}.shop-swatch{display:flex;align-items:center;justify-content:center;height:110px;border-radius:8px;color:#ffe5a1;font-size:2.6rem;background:#413e6a}.cover-swatch{width:90px;margin:auto;border-radius:3px 10px 10px 3px;box-shadow:inset 7px 0 #0005,3px 4px 0 #d1c098;border:1px solid #cba866}.swatch-classic{background:#dcc390;color:#553b21}.swatch-emerald{background:#164d36}.swatch-obsidian{background:#172540;color:#d4e7ff}.swatch-celestial{background:#50326d}.swatch-frost{background:#153c59;color:#9aebff}.swatch-ember{background:#622c1e;color:#ffbc77}.swatch-starlight{background:#32204e;color:#dab5ff}.book-cover-display{max-width:420px;background:#d8bc86;border:2px solid #785d35;border-radius:4px 20px 20px 4px;box-shadow:inset 14px 0 #0003,5px 5px 0 #cdbb90;margin:0 auto 32px;padding:32px;text-align:center;color:#402a1a}.book-cover-display>span{font-size:2.7rem}.book-cover-display h2{font-size:2rem}.book-cover-display p{color:inherit}body[data-cover="emerald"] .book-cover-display{background:#164d36;color:#ffe5a1}body[data-cover="obsidian"] .book-cover-display{background:#172540;color:#d4e7ff}body[data-cover="celestial"] .book-cover-display{background:#50326d;color:#ffe5a1}body[data-cover="emerald"] #pages .page{border-top:7px solid #164d36}body[data-cover="obsidian"] #pages .page{border-top:7px solid #172540}body[data-cover="celestial"] #pages .page{border-top:7px solid #50326d}.opponent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.opponent-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 8px;border:1px solid #99794b;border-radius:8px;background:#fff1ca;color:#3b2a19;font:inherit;text-align:center;overflow-wrap:anywhere}.opponent-card>span:first-child{font-size:2.3rem}.opponent-card small{font-size:.875rem}.opponent-card.active{border:2px solid #40583d;background:#e6edcd}.opponent-card:disabled{opacity:.75}.arena-stage{position:relative;overflow:hidden}.casting-burst{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.casting-burst span{position:absolute;left:50%;top:45%;font-size:24px;line-height:1;color:#dcc2ff;text-shadow:0 0 10px currentColor;animation:cast-orbit 1s var(--delay) ease-out both}.burst-frost span{color:#9aebff;animation-name:cast-frost}.burst-ember span{color:#ffad59;font-size:36px;animation-name:cast-ember}.burst-starlight span:nth-child(2n){color:#ffe5a1}@keyframes cast-orbit{from{opacity:0;transform:rotate(var(--angle)) translateX(0) scale(.2)}30%{opacity:1}to{opacity:0;transform:rotate(calc(var(--angle) + 100deg)) translateX(var(--distance)) scale(.7)}}@keyframes cast-frost{from{opacity:0;transform:rotate(var(--angle)) translateX(0)}30%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) scale(.3)}}@keyframes cast-ember{from{opacity:0;transform:rotate(var(--angle)) translateX(10px)}30%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) translateY(-60px) scale(.2)}}body[data-effect="frost"] .magic-particle{color:#9aebff}body[data-effect="ember"] .magic-particle{color:#ffad59}body[data-effect="starlight"] .magic-particle{color:#dcc2ff}@media(max-width:1000px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:740px){.opponent-grid{grid-template-columns:1fr}.opponent-card{display:grid;grid-template-columns:50px 1fr;text-align:left}.opponent-card>span:first-child{grid-row:span 5}.gem-wallet{right:10px;bottom:10px;padding:8px 14px}}@media(max-width:420px){.shop-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.casting-burst span{animation:magic-still 600ms ease-out both}}@media print{.gem-wallet,#shop,.book-cover-display{display:none!important}}
/* Make the next arena action easy to spot after answering. */
#arenaNext{display:block;width:100%;min-height:64px;margin:24px 0 4px;padding:16px 24px;border:3px solid #352047;border-radius:12px;background:linear-gradient(135deg,#ffe7a3,#efbe5c);color:#261530;font-size:1.25rem;font-weight:800;line-height:1.35;box-shadow:0 5px 0 #352047,0 0 0 4px #ffe6a877;animation:arena-next-highlight .7s ease-out 2}
#arenaNext:hover:not(:disabled){background:#ffedb5;box-shadow:0 5px 0 #352047,0 0 0 5px #efc47799}
#arenaNext:focus-visible{outline:4px solid #654184;outline-offset:6px}
@keyframes arena-next-highlight{0%,100%{box-shadow:0 5px 0 #352047,0 0 0 4px #ffe6a877}50%{box-shadow:0 5px 0 #352047,0 0 0 8px #efc47799}}
@media(prefers-reduced-motion:reduce){#arenaNext{animation:none}}
.mastery-badge{display:inline-block!important;font-size:.875rem!important;border-radius:5px;padding:2px 6px;background:#eee0bd;color:#50371f!important;margin-top:6px}.mastery-badge.is-mastered{background:#d0e6b5;color:#274021!important;font-weight:700}.spell-level{border:1px solid #9d793d;border-radius:7px;padding:7px 12px;font-weight:700!important;font-size:1rem}.mastery-panel p,.mastery-panel label{color:#47321f}.report-scope{font-size:.875rem}.report-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0}.report-controls label{display:flex;flex-direction:column;gap:7px}.report-controls input,.report-controls select{font:inherit;border:1px solid #9d793d;border-radius:6px;padding:10px;background:#fff5df;color:#382a1b;max-width:100%}.report-controls .subtle{color:#47321f;border-color:#9d793d}.report-scroll{overflow-x:auto}.mastery-table{border-collapse:collapse;width:100%;font-size:.875rem;color:#35281a}.mastery-table th,.mastery-table td{border-bottom:1px solid #bc9d68;padding:10px 8px;text-align:left;vertical-align:top}.mastery-table thead{background:#e1cca0}.mastery-table tbody th{font-weight:700}.mastery-table th:first-child{min-width:75px}.mastery-table td:nth-child(2){min-width:125px}.elemental-themes{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.elemental-themes .subtle{color:#49311f;border-color:#967542}.elemental-themes .active{background:#354d54;color:#fff0c9}.elemental-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.elemental-card{display:flex;flex-direction:column;gap:5px;text-align:left;padding:18px;background:#173c4d;color:#f7e4b6;border:2px solid #aa854c;border-radius:10px;font:inherit}.elemental-card strong{font:700 1.6rem Georgia}.elemental-card small{font-size:.875rem}.forest-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 30px}.forest-step{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid #9d793d;border-radius:10px;color:#4b3723;background:#fff0c9}.forest-step>span:first-child{font-size:2rem}.forest-step.current{border:3px solid #38583c}.forest-step.complete{background:#dce8c4}.forest-step strong{font-size:1rem}#adventure .panel p{color:#47321f}#adventure .subtle{color:#47321f;border-color:#9d793d}@media(max-width:740px){.forest-path{grid-template-columns:repeat(2,minmax(0,1fr))}.elemental-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.report-controls{align-items:stretch;flex-direction:column}.report-controls input{width:100%}}@media print{body.printing-mastery{background:white!important;color:black!important}body.printing-mastery header,body.printing-mastery footer,body.printing-mastery .gem-wallet,body.printing-mastery #workshop,body.printing-mastery #book,body.printing-mastery #arena,body.printing-mastery #shop,body.printing-mastery #adventure{display:none!important}body.printing-mastery main{padding:0;max-width:none}body.printing-mastery #mastery{display:block!important}body.printing-mastery .mastery-panel{padding:0;border:0;background:white!important;box-shadow:none}body.printing-mastery .report-controls button,body.printing-mastery .report-controls label:nth-child(2){display:none!important}body.printing-mastery .heading{background:white!important;padding:0;border:0;box-shadow:none}body.printing-mastery .heading h1{font-size:24px;color:black!important}body.printing-mastery .heading em{color:black!important}body.printing-mastery .report-scroll{overflow:visible}body.printing-mastery .mastery-table{font-size:9px;width:100%;color:black}body.printing-mastery .mastery-table td,body.printing-mastery .mastery-table th{padding:5px 3px;min-width:0!important}body.printing-mastery .mastery-table tr{break-inside:avoid}body.printing-mastery .mastery-table thead{display:table-header-group}body.printing-mastery .report-controls input{border:0;padding:0}body:not(.printing-mastery) #mastery,body:not(.printing-mastery) #adventure{display:none!important}}
.burst-element-water span{color:#62ddff}.burst-element-fire span{color:#ff9751;animation-name:cast-ember}.burst-element-earth span{color:#efc082;animation-name:cast-frost}.burst-element-air span{color:#e0e9ff}.burst-element-light span{color:#fff1a0}
@media(prefers-reduced-motion:reduce){.casting-burst span{animation:magic-still 600ms ease-out both}}
.creation .spell-step{margin:0 0 20px;padding-bottom:18px;border-bottom:1px solid #a9864a88}.creation .spell-step:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.creation .spell-step h3{display:flex;align-items:center;gap:9px;font:600 1.125rem/1.4 Georgia,serif;color:#3f2b1c;margin:0 0 14px}.step-number{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:29px;height:29px;background:#47334f;color:#fff0c9;border-radius:50%;font:700 1rem system-ui}.sound-review-step{border:2px solid #ad8645!important;border-radius:10px;padding:16px!important;background:#fff3d055}.sound-review-step.needs-review{border:3px solid #664179!important;background:#fff4d9;box-shadow:0 0 0 3px #c5a8d044}.creation .sound-review-reason{font-size:1rem;color:#493420;line-height:1.5;margin-bottom:16px}.creation .name-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.creation .suggestion-button{font-size:1.125rem;padding:12px;text-align:left;border:2px solid #8b6635;background:#fff8e7}.creation .suggestion-button .name-why{font-size:.875rem;font-weight:400;color:#5a4329;line-height:1.4;border-top:1px solid #c3ab79;padding-top:6px;margin-top:3px}.creation .keep-spell-name{color:#46304c;border:2px solid #765580;background:#fff8e7;font-size:1rem;width:100%;margin-top:10px;text-align:center;white-space:normal}.creation #saveProcessNote{font-size:.875rem;color:#553627;margin-top:12px}.waiting-for-name .ink-button{opacity:.5}#save:disabled{cursor:not-allowed}@media(max-width:1000px){.creation .name-suggestions{grid-template-columns:1fr}}@media(max-width:740px){.creation .name-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.creation .name-suggestions{grid-template-columns:1fr}}

/* Root order controls remain usable with touch and keyboard. */
.selected{display:flex;align-items:stretch;gap:8px}
.selected .slot{overflow-wrap:anywhere;padding-top:24px}
.selected .slot[draggable="true"]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.selected .slot.dragging{opacity:.6;cursor:grabbing}
.selected .slot.drop-target{outline:3px solid #704378;outline-offset:2px;background:#f8e5ac}
.swap-roots{align-self:center;flex:0 0 48px;min-width:48px;min-height:52px;padding:4px;border:1px solid #9a794c;border-radius:8px;background:#f5e6c4;color:#513619;display:flex;flex-direction:column;align-items:center;justify-content:center}
.swap-roots span{font:26px/1 system-ui}.swap-roots small{font:14px/1.4 system-ui}
#hearSpell{min-height:44px;margin-bottom:10px}

/* Illustrated collection cards: meaning text increases from 14px to 17.5px. */
.root-card .root-meaning{font-size:17.5px;line-height:1.35;overflow-wrap:anywhere;margin-top:4px}
.root-card .root-illustration{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:8px;border-radius:12px;background:linear-gradient(135deg,#e4f7ff,#f4dfff);border:1px solid #ba9cc1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:28px;line-height:1}
.root-card strong{font-size:25px;line-height:1.2}

.random-roots{display:block;width:100%;margin:0 0 16px;padding:12px 16px;border:2px solid #735598;border-radius:10px;background:linear-gradient(135deg,#654484,#493268);color:#fff8ed;font-weight:750;font-size:18px;box-shadow:0 3px 8px #49326830;text-align:center}
.random-roots:hover:not(:disabled){background:#755194}
.random-roots>span{font-size:24px;vertical-align:middle;margin-right:7px}
.random-roots small{display:block;font-size:13px;font-weight:500;color:#f0e4ff;margin-top:2px}
.random-roots:focus-visible{outline:3px solid #493268;outline-offset:3px}

/* Clear, numbered spell-making guidance. */
.spell-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.spell-progress button{padding:12px 8px;border:1px solid #a88855;border-radius:8px;background:#f1e1bb;color:#513b2b;font-weight:700}
.spell-progress button.current{background:#513568;color:#fff8ed;border-color:#513568;box-shadow:0 0 0 2px #d8bc90}
.spell-progress button.complete{background:#dce8c8;color:#304221}
.spell-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff5d9;border:2px solid #947243;border-radius:10px;padding:14px 18px;margin-bottom:20px}
.spell-guide p{color:#493520;margin:0;font-weight:600}.spell-guide button{flex-shrink:0}
.spell-step{scroll-margin-top:24px;border-radius:8px;padding:12px!important;margin-bottom:16px}.spell-step.active-step{outline:3px solid #87639d;background:#fff4d48c}
.step-instruction{font-size:15px;color:#59442c!important;margin:4px 0 14px}
.step-next{margin:14px 0 4px}.coach-label{display:block;color:#513568;margin:14px 0 6px}
.sound-review-reason{background:#f1e6fa;border-left:4px solid #87639d;border-radius:6px;padding:12px;color:#43314e!important;font-size:15px;line-height:1.6}
#meaningStepTitle,#soundStepTitle,#saveStepTitle,#chooseRootsHeading{outline-offset:5px}
@media(max-width:740px){.spell-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.spell-guide{align-items:stretch;flex-direction:column}.spell-guide button{width:100%}}
