/* v5.37 — Spirit Summons. Real spell choreography, creature-led shop and seven worlds. */
.login-world-trail{grid-template-columns:repeat(7,minmax(0,1fr))!important}
#loginView .login-world-card[data-world=wordforge]{--world-accent:#8861b4}
#loginView .login-world-card[data-world=wordforge] .login-world-art img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.login-world-trail .wf-login-entry{display:flex;margin:0;padding:0;min-width:0;text-align:left;color:inherit}
.login-world-card .login-world-copy b{overflow-wrap:normal}
/* The main portal brings the illustration, floating letter tiles and party together. */
#openWordforge.wf-portal{padding:0;position:relative;isolation:isolate;display:grid;grid-template-columns:.9fr 1.1fr;overflow:hidden;border:2px solid #e6c58c;border-radius:28px;min-height:350px;background:#4e3470;box-shadow:0 7px 0 #78538e,0 15px 35px #2a24454d}
#openWordforge::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#382052ed 0%,#644a88ce 38%,#bd94d218 70%),url('/rpg/arena/assets/wordforge-cover.png') center/cover}
#openWordforge .wf-portal-copy{max-width:none;width:100%;position:relative;z-index:2;align-self:center;padding:30px 8%;gap:15px;color:#fff8eb;background:radial-gradient(ellipse at left,#a95e8140,transparent);text-align:left}
#openWordforge .wf-portal-copy>small{font-size:12px;letter-spacing:2px;color:#ffe4a1}
#openWordforge .wf-portal-copy>strong{font-size:clamp(35px,3.7vw,66px);line-height:1.03;color:#fff4ce;text-shadow:0 3px 0 #4c285d,0 7px 20px #2a193f70}
#openWordforge .wf-portal-copy>span:not(.wf-cover-steps){font-size:clamp(15px,1.25vw,19px);line-height:1.45;max-width:38ch;color:#f2eaff}
#openWordforge .wf-portal-copy>b{display:flex;justify-content:space-between;align-items:center;max-width:360px;padding:13px 22px;border:1px solid #fff0b8;border-radius:13px;background:linear-gradient(#ffeabe,#efba6e);box-shadow:0 5px 0 #a16451;font-size:22px;color:#553258}
#openWordforge .wf-cover-steps{display:flex;flex-wrap:wrap;gap:8px}
#openWordforge .wf-cover-steps i{font-style:normal;font-size:13px;padding:6px 10px;background:#fff3dc22;border:1px solid #ffe6ad77;border-radius:20px;color:#fff1c7}
#openWordforge .wf-cover-scene{position:relative;align-self:stretch;overflow:hidden;background:none;min-height:350px}
#openWordforge .wf-cover-scene>img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;mask-image:linear-gradient(90deg,transparent,#000 13%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 13%)}
#openWordforge .wf-portal-runes{position:absolute;pointer-events:none;z-index:1;inset:0 52% 0 0;color:#ffe2a8;font-size:26px}
#openWordforge .wf-portal-runes i{position:absolute;right:5%;top:10%;display:grid;place-items:center;width:42px;height:47px;border-radius:10px;background:linear-gradient(145deg,#fff1c3,#c796cc);border:2px solid #ffdfb5;color:#56306f;font:27px var(--quest-display);box-shadow:0 4px 0 #79517f;transform:rotate(14deg)}
#openWordforge .wf-portal-runes i:nth-of-type(2){top:28%;right:1%;transform:rotate(-12deg)}
#openWordforge .wf-portal-runes i:nth-of-type(3){top:53%;right:8%;transform:rotate(8deg)}
#openWordforge .wf-portal-runes i:nth-of-type(4){top:76%;right:2%;transform:rotate(-7deg)}
/* Five guardians: each has a visible, independently animated element. */
#wordforgeDialog .wf-boss-grid{gap:16px}
#wordforgeDialog .wf-boss-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--boss-colour) 65%,#fff);border-radius:22px;background:linear-gradient(160deg,#344169,#2d2347);padding:13px 16px 16px;box-shadow:0 6px 0 #161a36,0 13px 25px #10153244;transition:transform .2s,box-shadow .2s}
#wordforgeDialog .wf-boss-card:hover{transform:translateY(-5px);box-shadow:0 9px 0 #161a36,0 0 28px color-mix(in srgb,var(--boss-colour) 35%,transparent)}
#wordforgeDialog .wf-boss-card.selected{border:2px solid #ffe7a7;background:linear-gradient(155deg,#655281,#2d3157);box-shadow:0 6px 0 #6c4264,0 0 23px #f4d5953d}
#wordforgeDialog .wf-boss-card .wf-difficulty{font-size:13px;letter-spacing:.7px;font-weight:900;color:#fff0d0;background:#211b3fae;border:1px solid #e7ce9d66;padding:7px 10px;border-radius:20px}
#wordforgeDialog .wf-boss-card h3{font-size:clamp(25px,2.1vw,35px);line-height:1.05;margin:8px 0;color:#fff3ce}
#wordforgeDialog .wf-boss-card>small{font-size:13px;letter-spacing:.3px;color:#ead8fa}
#wordforgeDialog .wf-boss-card p{font-size:16px;line-height:1.45;min-height:4.3em;color:#e6ecff}
#wordforgeDialog .wf-boss-card .wf-ai-style{font-size:13px;line-height:1.5}
#wordforgeDialog .wf-boss-card .wf-pick{display:block;font-size:15px;padding:11px 5px;margin-top:12px;border-radius:11px;background:#e1c7ff17;border:1px solid #e1c7ff44;color:#ffe6b2}
#wordforgeDialog .wf-boss-card-art{position:relative;display:grid;place-items:center;isolation:isolate;height:clamp(180px,19vw,285px);margin:6px -10px 13px;overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 50% 47%,color-mix(in srgb,var(--boss-colour) 42%,transparent),transparent 66%)}
#wordforgeDialog .wf-boss-card-art>.wf-sprite{position:relative;z-index:2;width:100%;height:95%;object-fit:contain;filter:drop-shadow(0 8px 13px #111c3788);animation:wf-guardian-float 3.1s ease-in-out infinite;transform-origin:50% 80%}
#wordforgeDialog .wf-boss-aura{position:absolute;inset:15%;border:2px solid color-mix(in srgb,var(--boss-colour) 70%,#fff);border-radius:50%;box-shadow:0 0 25px var(--boss-colour),inset 0 0 24px var(--boss-colour);opacity:.5;animation:wf-aura-breathe 3s ease-in-out infinite}
#wordforgeDialog .wf-boss-motes{position:absolute;inset:0;z-index:3;pointer-events:none;color:var(--boss-colour);filter:drop-shadow(0 0 5px currentColor)}
#wordforgeDialog .wf-boss-motes i{position:absolute;left:calc(5% + var(--j)*14%);top:var(--mote-y,35%);font-size:clamp(19px,2vw,32px);font-style:normal;animation:wf-mote-rise 3.8s ease-in-out infinite;animation-delay:calc(var(--j)*-.57s)}
#wordforgeDialog .wf-boss-magic{position:absolute;z-index:4;bottom:3%;left:5%;right:5%;padding:7px;border:1px solid #e1c7ff55;border-radius:18px;background:#21183dcf;color:#fff3d4;font:14px var(--quest-display)}
#wordforgeDialog [data-boss=slime] .wf-boss-card-art{background:radial-gradient(ellipse,#8ee3e34a,transparent 70%),linear-gradient(#226b764d,#38638042)}
#wordforgeDialog [data-boss=slime] .wf-sprite{animation:wf-mochi-bounce 2.1s ease-in-out infinite}
#wordforgeDialog [data-boss=slime] .wf-boss-aura{border-width:5px;border-color:#a7fbf999}
#wordforgeDialog [data-boss=golem] .wf-boss-aura{border-radius:35% 65% 40% 60%;border:5px double #b2ea82;animation:wf-leaf-orbit 16s linear infinite}
#wordforgeDialog [data-boss=golem] .wf-boss-motes{color:#bcec84}
#wordforgeDialog [data-boss=frost] .wf-boss-aura{border-radius:12%;transform:rotate(45deg);border:4px double #c9f2ff;animation:wf-crystal-spin 18s linear infinite}
#wordforgeDialog [data-boss=frost] .wf-boss-motes i{animation:wf-snow-dance 5s linear infinite;animation-delay:calc(var(--j)*-.7s)}
#wordforgeDialog [data-boss=storm] .wf-boss-aura{border:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0deg 38deg,#ffeea6 40deg 45deg,transparent 47deg 70deg);mask-image:radial-gradient(transparent 40%,#000 50% 60%,transparent 70%);animation:wf-leaf-orbit 8s linear infinite}
#wordforgeDialog [data-boss=storm] .wf-boss-motes i{animation:wf-lightning-glow 2.4s ease-in-out infinite;animation-delay:calc(var(--j)*-.3s);color:#ffdf88}
#wordforgeDialog [data-boss=eclipse] .wf-boss-aura{background:radial-gradient(circle,#472b79 48%,#e0bcff 51%,#8965c799 60%,transparent 66%);box-shadow:0 0 28px #be8cef;border:0}
#wordforgeDialog [data-boss=eclipse] .wf-sprite{animation:wf-shadow-sway 4s ease-in-out infinite}
#wordforgeDialog [data-boss=eclipse] .wf-boss-motes{color:#ecb8ff}
/* Creature tile collections. All six skins also work on the actual game board. */
#wordforgeDialog [data-tiles=ember],#wordforgeDialog[data-tiles=ember]{--tile-fill:linear-gradient(135deg,#fff5bc,#ffd08b 32%,#f29272 68%,#ffe1a1);--tile-edge:#fff0b0;--tile-ink:#662a35;--tile-shine:#fff1ca;--tile-shadow:#a9534e}
#wordforgeDialog [data-tiles=tide],#wordforgeDialog[data-tiles=tide]{--tile-fill:linear-gradient(130deg,#eafffc,#a8f0f1 30%,#6ac4df 62%,#c2eeff);--tile-edge:#d5fffc;--tile-ink:#164562;--tile-shine:#fff;--tile-shadow:#467f9d}
#wordforgeDialog [data-tiles=dragon],#wordforgeDialog[data-tiles=dragon]{--tile-fill:linear-gradient(135deg,#fff4df,#debdff 28%,#af9bed 60%,#9fdfed);--tile-edge:#fff0bf;--tile-ink:#463063;--tile-shine:#fff8e1;--tile-shadow:#795a9f}
#wordforgeDialog :is([data-tiles=ember],[data-tiles=tide],[data-tiles=dragon]) .wf-mini-grid .letter,#wordforgeDialog:is([data-tiles=ember],[data-tiles=tide],[data-tiles=dragon]) :is(.wf-square.draft,.wf-square.fixed:not(.boss-owned),.wf-letter-rack button){background:var(--tile-fill);border-color:var(--tile-edge);color:var(--tile-ink);box-shadow:inset 0 1px 2px #fff9,inset 0 -3px #25304b22,0 2px 0 var(--tile-shadow)}
#wordforgeDialog .wf-treasure-art.kind-tiles{position:relative;overflow:hidden;isolation:isolate;aspect-ratio:1.1;padding-top:35%}
#wordforgeDialog .wf-tile-mascot{position:absolute;inset:2% 5% 18%;z-index:0;filter:drop-shadow(0 8px 12px #0b163a66);animation:wf-guardian-float 3.5s ease-in-out infinite}
#wordforgeDialog .wf-tile-mascot>img{width:100%;height:100%;object-fit:contain}
#wordforgeDialog .wf-tile-sample{position:relative;z-index:2;width:95%;padding-top:0;align-self:end;margin-bottom:5%;transform:rotate(-5deg)}
#wordforgeDialog .wf-tile-sample i:nth-child(2){translate:0 -10px;rotate:8deg}
#wordforgeDialog .wf-tile-sample i:nth-child(3){rotate:3deg}
#wordforgeDialog .wf-tile-sample b{font-size:clamp(30px,3vw,52px)}
#wordforgeDialog .wf-tile-sample em{opacity:.8}
#wordforgeDialog .wf-summon-card{position:relative;isolation:isolate;width:115%;height:115%;display:grid;place-items:center;--summon-colour:#ffbb72}
#wordforgeDialog .summon-blossom{--summon-colour:#ff9eca}
#wordforgeDialog .summon-aurora{--summon-colour:#abbbff}
#wordforgeDialog .wf-summon-card>img{position:relative;z-index:2;object-fit:contain;width:100%;height:100%;filter:drop-shadow(0 0 10px var(--summon-colour));animation:wf-guardian-float 3.5s ease-in-out infinite}
#wordforgeDialog .wf-summon-card>span{position:absolute;bottom:4%;z-index:3;padding:6px 16px;border-radius:20px;border:1px solid #fff2c8;background:#312246dd;letter-spacing:2px;font:11px var(--quest-display);color:#fff0c9}
#wordforgeDialog .wf-summon-ring{position:absolute;inset:12%;border:3px double var(--summon-colour);border-radius:50%;box-shadow:0 0 28px var(--summon-colour),inset 0 0 25px var(--summon-colour);opacity:.5;animation:wf-aura-breathe 3s ease-in-out infinite}
/* Large cut-in summon animation: entry, creature charge, flight and impact. */
#wordforgeDialog .wf-effect-theatre{aspect-ratio:2.6;max-height:400px;overflow:hidden;border:2px solid #d7c0ea;border-radius:20px;background:linear-gradient(180deg,#382b6055,#365c7822),url('/rpg/arena/assets/arena-world.png') center/cover;box-shadow:inset 0 0 60px #1a20454d,0 5px 0 #172144}
#wordforgeDialog .wf-demo-hero{left:9%;animation:wf-hero-ready 3s ease-in-out infinite}
#wordforgeDialog .wf-demo-boss{right:9%;animation:wf-mochi-bounce 2.1s ease-in-out infinite}
#wordforgeDialog .wf-spirit-summon{position:absolute;z-index:7;pointer-events:none;left:10%;top:12%;width:65%;height:77%;--summon-colour:#ffca7d;animation:wf-phoenix-flight 1.4s cubic-bezier(.24,.7,.33,1) both}
#wordforgeDialog .wf-spirit-summon>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 15px var(--summon-colour));z-index:2}
#wordforgeDialog .wf-spirit-summon.summon-blossom{animation:wf-fox-flight 1.4s ease-in-out both;--summon-colour:#ffb1d5}
#wordforgeDialog .wf-spirit-summon.summon-aurora{animation:wf-dragon-flight 1.4s cubic-bezier(.2,.7,.3,1) both;--summon-colour:#94e7ff}
#wordforgeDialog .wf-summon-aura{position:absolute;inset:12% 20%;border-radius:50%;border:3px solid var(--summon-colour);background:radial-gradient(ellipse,#fff9,transparent 60%);box-shadow:0 0 40px var(--summon-colour),inset 0 0 35px var(--summon-colour);animation:wf-summon-gate 1.3s ease-out both}
#wordforgeDialog .wf-summon-impact{position:absolute;right:-24%;top:15%;width:45%;height:70%;border:9px double var(--summon-colour);border-radius:50%;box-shadow:0 0 24px var(--summon-colour),inset 0 0 25px var(--summon-colour);animation:wf-summon-impact 1.4s ease-out both}
#wordforgeDialog .summon-blossom .wf-summon-impact{border-radius:30% 70% 35% 65%;rotate:35deg}
#wordforgeDialog .summon-aurora .wf-summon-impact{border-radius:18%;rotate:45deg}
#wordforgeDialog .wf-summon-name{position:absolute;left:0;right:0;top:8%;z-index:9;pointer-events:none;text-align:center;font:clamp(18px,3vw,42px) var(--quest-display);font-style:italic;letter-spacing:1px;color:#fff3bb;text-shadow:0 3px #4e2866,2px 0 #4e2866,-2px 0 #4e2866,0 0 18px #eeadef;padding:8px;background:linear-gradient(90deg,transparent,#39224da6,transparent);animation:wf-summon-title 1.4s ease both}
#wordforgeDialog .wf-power-seal{position:absolute;left:18%;top:33%;z-index:8;display:grid;place-items:center;pointer-events:none;--power-colour:#ffc778;animation:wf-seal-rise 1.15s ease-out both}
#wordforgeDialog .wf-power-seal b{display:grid;place-items:center;width:72px;height:72px;border:3px double var(--power-colour);border-radius:50%;background:radial-gradient(#fff6,#412358cc);box-shadow:0 0 27px var(--power-colour),inset 0 0 20px var(--power-colour);font-size:42px;color:#fff5d9}
#wordforgeDialog .wf-power-seal span{font:18px var(--quest-display);color:#fff4d6;text-shadow:0 2px 3px #392454;margin-top:8px;padding:4px 13px;border-radius:20px;background:#272449db}
#wordforgeDialog .seal-guard{--power-colour:#81deff}
#wordforgeDialog .seal-guard b{border-radius:35% 35% 48% 48%;animation:wf-guard-hold 1.1s ease both}
#wordforgeDialog .seal-heal{--power-colour:#94f0bb}
#wordforgeDialog .seal-heal b{animation:wf-heal-heart 1.1s ease both}
#wordforgeDialog .seal-charge{--power-colour:#e1b6ff}
#wordforgeDialog .seal-charge b{animation:wf-charge-seal 1.1s ease both}
#wordforgeDialog .wf-spell-powers button{border-radius:15px;position:relative;overflow:hidden;--power:#eeb86d;border:1px solid color-mix(in srgb,var(--power) 65%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--power) 22%,#293355),#292441);box-shadow:inset 0 1px #ffffff29,0 3px 0 #151d3c}
#wordforgeDialog .wf-spell-powers [data-power=guard]{--power:#7ddcf0}
#wordforgeDialog .wf-spell-powers [data-power=heal]{--power:#8febac}
#wordforgeDialog .wf-spell-powers [data-power=charge]{--power:#c3a2fb}
#wordforgeDialog .wf-spell-powers button.selected{box-shadow:inset 0 0 20px color-mix(in srgb,var(--power) 28%,transparent),0 0 12px color-mix(in srgb,var(--power) 35%,transparent);border:2px solid var(--power)}
#wordforgeDialog .wf-spell-powers button>span{color:var(--power);font-size:28px;filter:drop-shadow(0 0 5px var(--power))}
#wordforgeDialog .wf-spell-powers button b{font-size:17px}
#wordforgeDialog .wf-spell-powers button small{color:#e5eaff;font-size:12px}
/* A compact playing table with portraits, a tile tray and a readable board. */
#wordforgeDialog .wf-forge-panel{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 0%,#8071a83d,transparent 60%),linear-gradient(150deg,#34365beF,#252645f5);border:1px solid #d1bbdc88;border-radius:22px;box-shadow:inset 0 0 0 5px #ffffff05,0 7px 0 #141d3c}
#wordforgeDialog .wf-forge-heading{border-bottom:1px solid #dac2ea44;padding-bottom:12px;margin-bottom:10px}
#wordforgeDialog .wf-duel-score{position:relative;background:linear-gradient(105deg,#316071ab,#404066 48%,#64345d9c);border:1px solid #c9b8e57a;border-radius:17px;gap:12px;padding:10px 14px;min-height:74px}
#wordforgeDialog .wf-duel-score>div{position:relative;min-width:0;flex:1;padding-left:56px}
#wordforgeDialog .wf-duel-score>div.rival{padding-left:0;padding-right:56px;text-align:right}
#wordforgeDialog .wf-duel-score .wf-score-portrait{position:absolute;left:-5px;bottom:-10px;width:64px;height:77px;object-fit:contain;filter:drop-shadow(0 3px 4px #15183799)}
#wordforgeDialog .wf-duel-score .rival .wf-score-portrait{left:auto;right:-6px}
#wordforgeDialog .wf-duel-score>span{flex:0 0 40px;display:grid;place-items:center;aspect-ratio:1;border:2px solid #ebca8b;border-radius:50%;background:linear-gradient(#7c537f,#363052);font:21px var(--quest-display);color:#ffe0a2;box-shadow:0 3px 0 #171e3f}
#wordforgeDialog .wf-duel-score b{font-size:26px;line-height:1.1}
#wordforgeDialog .wf-duel-score small{font-size:12px;white-space:normal}
#wordforgeDialog .wf-duel-score em{font-size:11px}
#wordforgeDialog #wfDraftArea{margin:10px auto;padding:10px 12px 9px;border-radius:17px;background:linear-gradient(140deg,#63547e70,#30294690);border:1px solid #c3a6de55;max-width:620px}
#wordforgeDialog .wf-rack-heading{margin-bottom:9px;gap:8px}
#wordforgeDialog .wf-letter-rack{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:480px;margin:0 auto 10px;padding:5px 8px 10px;border-radius:10px;background:linear-gradient(transparent 65%,#a87aa359 68%,#ecd2b57d 88%,#382c59 89%);box-shadow:0 6px 9px #12173240}
#wordforgeDialog .wf-letter-rack button{height:49px;min-height:40px;max-height:52px;border-radius:10px;box-shadow:inset 0 2px #fff7,0 4px 0 #795580;font:26px var(--quest-display)}
#wordforgeDialog .wf-letter-rack button>b{font-size:26px}
#wordforgeDialog .wf-rack-tools{justify-content:center;gap:8px}
#wordforgeDialog .wf-board-shell.classic{border:2px solid #e3c499;border-radius:14px;background:linear-gradient(135deg,#7f638d,#dab896 20%,#513e69 50%,#96708b);padding:9px;box-shadow:inset 0 0 0 3px #55446e,0 5px 0 #181e3c,0 10px 20px #15183055}
#wordforgeDialog .wf-board-shell.classic .wf-crossword{border:1px solid #edd2b099;border-radius:6px;overflow:hidden;background:#504775}
#wordforgeDialog .wf-square.crown-cell:not(.fixed):not(.draft){background:radial-gradient(#ae8c65,#575378);color:#ffe394;box-shadow:inset 0 0 8px #f2d99066}
#wordforgeDialog .wf-square.crown-cell>span{font-size:15px}
#wordforgeDialog .wf-premium-key{justify-content:center;gap:7px;margin-top:13px;flex-wrap:wrap}
#wordforgeDialog .wf-premium-key>span{background:#1f2447ad;padding:5px 7px;border:1px solid #c0addc36;border-radius:9px;font-size:11px}
#wordforgeDialog .wf-turn-note{padding:9px 2px;color:#b6f4de}
#wordforgeDialog .wf-lobby-hero .wf-cover-scene{aspect-ratio:1.5;max-height:430px;border:1px solid #e7c895;border-radius:22px;overflow:hidden}
#wordforgeDialog .wf-lobby-hero .wf-cover-scene img{height:100%;width:100%;object-fit:cover}
/* Motion is controlled by the explicit arena switch, including OS-reduced-motion override. */
@keyframes wf-guardian-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(2deg)}}
@keyframes wf-mochi-bounce{0%,100%{transform:translateY(0) scale(1)}25%{transform:translateY(3px) scale(1.04,.96)}55%{transform:translateY(-14px) scale(.98,1.025)}}
@keyframes wf-aura-breathe{50%{scale:1.14;opacity:.8}}
@keyframes wf-mote-rise{0%,100%{translate:0 8px;rotate:-10deg;opacity:.35}50%{translate:0 -22px;rotate:20deg;opacity:1}}
@keyframes wf-leaf-orbit{to{rotate:360deg}}
@keyframes wf-crystal-spin{to{transform:rotate(405deg)}}
@keyframes wf-snow-dance{0%{translate:-10px -30px;rotate:0deg;opacity:0}15%,75%{opacity:1}100%{translate:12px 45px;rotate:120deg;opacity:0}}
@keyframes wf-lightning-glow{0%,100%{opacity:.25;scale:.9}35%,55%{opacity:1;scale:1.2}45%{opacity:.5;scale:1}}
@keyframes wf-shadow-sway{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(3deg)}}
@keyframes wf-phoenix-flight{0%{transform:translate(-38%,20%) scale(.35) rotate(-18deg);opacity:0}25%{transform:translate(-4%,-7%) scale(.9) rotate(-5deg);opacity:1}52%{transform:translate(8%,-12%) scale(1.05);opacity:1}80%{transform:translate(49%,3%) scale(.85) rotate(9deg);opacity:1}100%{transform:translate(72%,14%) scale(.5);opacity:0}}
@keyframes wf-fox-flight{0%{transform:translate(-25%,30%) scale(.25) rotate(16deg);opacity:0}27%{transform:translate(0,-12%) scale(.98) rotate(-8deg);opacity:1}52%{transform:translate(12%,-5%) scale(1.05) rotate(3deg);opacity:1}83%{transform:translate(48%,5%) scale(.8) rotate(-4deg);opacity:1}100%{transform:translate(62%,14%) scale(.5);opacity:0}}
@keyframes wf-dragon-flight{0%{transform:translate(-10%,-25%) scale(.2);opacity:0}26%{transform:translate(-8%,-10%) scale(.95);opacity:1}60%{transform:translate(12%,-8%) scale(1.12);opacity:1}83%{transform:translate(40%,2%) scale(.95);opacity:1}100%{transform:translate(55%,5%) scale(.65);opacity:0}}
@keyframes wf-summon-gate{0%{scale:.1;opacity:0}20%{scale:1;opacity:1}55%{scale:1.5;opacity:.5}100%{scale:2;opacity:0}}
@keyframes wf-summon-impact{0%,55%{scale:.1;opacity:0}70%{scale:1;opacity:1}100%{scale:1.8;opacity:0}}
@keyframes wf-summon-title{0%{opacity:0;translate:-40px 0}15%,68%{opacity:1;translate:0 0}100%{opacity:0;translate:35px 0}}
@keyframes wf-seal-rise{0%{opacity:0;transform:scale(.25) translateY(20px)}20%,68%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.2) translateY(-20px)}}
@keyframes wf-guard-hold{30%,65%{scale:1.15;box-shadow:0 0 35px #9cffff,inset 0 0 25px #9cffff}}
@keyframes wf-heal-heart{25%,65%{scale:1.13}45%{scale:.95}}
@keyframes wf-charge-seal{0%{rotate:-90deg;scale:.6}70%{rotate:25deg;scale:1.2}100%{rotate:65deg;scale:1.4}}
@media (max-width:1250px){.login-world-trail{grid-template-columns:repeat(4,minmax(0,1fr))!important}#loginView .login-world-card[data-world=wordforge]{grid-column:span 2}#wordforgeDialog .wf-boss-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#wordforgeDialog .wf-boss-card-art{height:220px}#wordforgeDialog .wf-boss-card h3{font-size:29px}#wordforgeDialog .wf-boss-card p{min-height:3em}#openWordforge.wf-portal{min-height:310px}#openWordforge .wf-portal-copy{padding:26px 7%}}
@media (max-width:760px){#openWordforge.wf-portal{grid-template-columns:1fr;gap:0;min-height:0}#openWordforge .wf-cover-scene{grid-row:1;min-height:0;aspect-ratio:1.65}#openWordforge .wf-cover-scene>img{mask-image:none;-webkit-mask-image:none}#openWordforge .wf-portal-copy{padding:22px;gap:12px}#openWordforge .wf-portal-runes{display:none}#openWordforge .wf-portal-copy>strong{font-size:38px}#openWordforge .wf-portal-copy>b{max-width:none}#wordforgeDialog .wf-boss-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#wordforgeDialog .wf-boss-card{padding:10px 11px 13px}#wordforgeDialog .wf-boss-card-art{height:210px}#wordforgeDialog .wf-boss-card h3{font-size:28px}#wordforgeDialog .wf-boss-card p{font-size:15px}#wordforgeDialog .wf-boss-card:last-child{grid-column:span 2}#wordforgeDialog .wf-boss-card:last-child .wf-boss-card-art{height:250px}#wordforgeDialog .wf-effect-theatre{aspect-ratio:1.8}#wordforgeDialog .wf-summon-name{font-size:20px}#wordforgeDialog .wf-spirit-summon{width:76%;left:3%;top:15%;height:72%}#wordforgeDialog .wf-power-seal b{width:54px;height:54px;font-size:32px}#wordforgeDialog .wf-power-seal span{font-size:14px}#wordforgeDialog .wf-duel-score{padding:10px 8px;gap:6px}#wordforgeDialog .wf-duel-score>div{padding-left:42px}#wordforgeDialog .wf-duel-score>div.rival{padding-right:42px}#wordforgeDialog .wf-duel-score .wf-score-portrait{width:50px;height:62px}#wordforgeDialog .wf-duel-score>span{flex-basis:34px;font-size:17px}#wordforgeDialog .wf-duel-score b{font-size:23px}#wordforgeDialog .wf-duel-score em{display:block;font-size:10px}#wordforgeDialog .wf-duel-score small{font-size:10px}#wordforgeDialog #wfDraftArea{padding:9px 8px}#wordforgeDialog .wf-letter-rack{gap:5px;padding:5px 3px 10px}#wordforgeDialog .wf-letter-rack button{height:44px;min-height:36px}#wordforgeDialog .wf-letter-rack button>b{font-size:23px}#wordforgeDialog .wf-spell-powers button b{font-size:16px}#wordforgeDialog .wf-spell-powers button small{font-size:11px}#wordforgeDialog .wf-tile-sample b{font-size:35px}#wordforgeDialog .wf-treasure-art.kind-tiles{padding-top:32%}#wordforgeDialog .wf-lobby-hero .wf-cover-scene{max-height:none}}
@media (max-width:540px){.login-world-trail{grid-template-columns:repeat(2,minmax(0,1fr))!important}#loginView .login-world-card[data-world=wordforge]{grid-column:span 2}#loginView .login-world-card[data-world=wordforge] .login-world-art{aspect-ratio:2.2}#wordforgeDialog .wf-boss-card-art{height:170px}#wordforgeDialog .wf-boss-card h3{font-size:25px}#wordforgeDialog .wf-boss-card p{font-size:14px}#wordforgeDialog .wf-boss-card .wf-difficulty{font-size:11px}#wordforgeDialog .wf-boss-magic{font-size:11px}#wordforgeDialog .wf-boss-card .wf-pick{font-size:13px}#wordforgeDialog .wf-boss-card .wf-ai-style{font-size:12px}}
#wordforgeDialog.wf-reduced *,#wordforgeDialog.wf-reduced *::before,#wordforgeDialog.wf-reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* User-selected Motion on overrides the global OS rule. Motion off never matches. */
#wordforgeDialog:not(.wf-reduced) .wf-student{animation:wf-hero-ready 3.4s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-pet{animation:wf-pet-ready 2.8s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-enemy{animation:wf-boss-ready 3s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-magic-sample{animation:wf-orbit-pulse 3s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-magic-sample>i{animation:wf-spark-drift 2.4s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-skill-callout{animation:wf-callout .95s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-boss-skill{animation:wf-callout .9s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-rival-callout{animation:wf-callout 1.15s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-assist-callout{animation:wf-callout .9s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-damage{animation:wf-damage-rise .85s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-taken{animation:wf-damage-rise .85s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-casting .wf-student{animation:wf-hero-cast .7s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-casting .wf-pet{animation:wf-pet-cast .8s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-impact .wf-enemy{animation:wf-recoil .52s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-counter .wf-enemy{animation:wf-boss-cast .75s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-counter-slime .wf-enemy{animation:wf-jelly-jump .8s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-counter-frost .wf-enemy{animation:wf-ice-spin .8s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-counter-storm .wf-enemy{animation:wf-thunder-dive .8s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-team-hit .wf-student{animation:wf-team-recoil .55s both!important}
#wordforgeDialog:not(.wf-reduced) .wf-skill-active .wf-student{animation:wf-skill-lift 1s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-pet-assisting .wf-pet{animation:wf-pet-assist .7s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-ultimate .wf-pet{animation:wf-pet-assist 1.2s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-boss-card-art>.wf-sprite{animation:wf-guardian-float 3.1s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-boss-aura{animation:wf-aura-breathe 3s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-boss-motes i{animation:wf-mote-rise 3.8s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=slime] .wf-sprite{animation:wf-mochi-bounce 2.1s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=golem] .wf-boss-aura{animation:wf-leaf-orbit 16s linear infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=frost] .wf-boss-aura{animation:wf-crystal-spin 18s linear infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=frost] .wf-boss-motes i{animation:wf-snow-dance 5s linear infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=storm] .wf-boss-aura{animation:wf-leaf-orbit 8s linear infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=storm] .wf-boss-motes i{animation:wf-lightning-glow 2.4s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) [data-boss=eclipse] .wf-sprite{animation:wf-shadow-sway 4s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-tile-mascot{animation:wf-guardian-float 3.5s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-summon-card>img{animation:wf-guardian-float 3.5s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-summon-ring{animation:wf-aura-breathe 3s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-demo-hero{animation:wf-hero-ready 3s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-demo-boss{animation:wf-mochi-bounce 2.1s ease-in-out infinite!important}
#wordforgeDialog:not(.wf-reduced) .wf-spirit-summon{animation:wf-phoenix-flight 1.4s cubic-bezier(.24,.7,.33,1) both!important}
#wordforgeDialog:not(.wf-reduced) .wf-spirit-summon.summon-blossom{animation:wf-fox-flight 1.4s ease-in-out both!important}
#wordforgeDialog:not(.wf-reduced) .wf-spirit-summon.summon-aurora{animation:wf-dragon-flight 1.4s cubic-bezier(.2,.7,.3,1) both!important}
#wordforgeDialog:not(.wf-reduced) .wf-summon-aura{animation:wf-summon-gate 1.3s ease-out both!important}
#wordforgeDialog:not(.wf-reduced) .wf-summon-impact{animation:wf-summon-impact 1.4s ease-out both!important}
#wordforgeDialog:not(.wf-reduced) .wf-summon-name{animation:wf-summon-title 1.4s ease both!important}
#wordforgeDialog:not(.wf-reduced) .wf-power-seal{animation:wf-seal-rise 1.15s ease-out both!important}
#wordforgeDialog:not(.wf-reduced) .seal-guard b{animation:wf-guard-hold 1.1s ease both!important}
#wordforgeDialog:not(.wf-reduced) .seal-heal b{animation:wf-heal-heart 1.1s ease both!important}
#wordforgeDialog:not(.wf-reduced) .seal-charge b{animation:wf-charge-seal 1.1s ease both!important}
