.craft-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.craft-category{display:flex;align-items:center;justify-content:center;gap:12px;min-height:76px;padding:10px 18px;border:1px solid var(--line);border-radius:6px;background:linear-gradient(135deg,#1a2330,#111820);color:var(--muted);font-size:13px}
.craft-category img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 3px 5px #0008)}
.craft-category.active{color:var(--gold);border-color:#d5b57b77;background:linear-gradient(135deg,#38302466,#151a22);box-shadow:inset 0 -2px #d5b57b88}
.craft-category:hover{border-color:#d5b57b55}.craft-subcategories{display:flex;gap:8px;overflow-x:auto;padding:0 0 16px;margin-bottom:5px;scrollbar-width:thin}
.craft-subcategories button{flex-shrink:0;background:#131c28;border:1px solid #ffffff16;color:#99a6b8;padding:9px 15px;border-radius:4px;font-size:11px}
.craft-subcategories button.active{color:#f1d7a1;background:#d5b57b14;border-color:#d5b57b66}
.craft-bench{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(300px,1.3fr);gap:18px;align-items:start}
.recipe-browser{border:1px solid var(--line);background:#101721;border-radius:6px;overflow:hidden}
.recipe-browser-heading{display:flex;justify-content:space-between;gap:12px;padding:17px;border-bottom:1px solid var(--line)}
.recipe-browser-heading strong{font-size:12px;font-weight:500}.recipe-browser-heading small{font-size:10px}
.recipe-choice{display:flex;align-items:center;gap:11px;width:100%;padding:16px 12px;border:0;border-left:2px solid transparent;border-bottom:1px solid var(--line);background:none;color:#b7c3d2;text-align:left}
.recipe-choice:last-child{border-bottom:0}.recipe-choice>img{width:55px;height:55px;object-fit:contain;flex-shrink:0}.recipe-choice>span{min-width:0;flex:1}.recipe-choice strong{display:block;font-size:12px;line-height:1.5;font-weight:500}.recipe-choice small{display:block;margin-top:5px;font-size:10px}.recipe-choice>svg{width:13px;height:13px;color:#788497}
.recipe-choice.selected{background:linear-gradient(90deg,#d5b57b11,#d5b57b03);border-left-color:var(--gold);color:#f1d7a1}.recipe-choice:hover{background:#ffffff05}
.recipe-unavailable{padding:38px 18px;text-align:center;color:var(--muted);font-size:12px}.recipe-unavailable>svg{height:28px;width:28px;fill:none;stroke:#7e8998;stroke-width:1.3;margin-bottom:12px}
.recipe-detail{padding:22px;overflow:visible;background:linear-gradient(145deg,#19222e,#101720)}
.crafted-object{position:relative;display:flex;align-items:center;justify-content:center;height:200px;margin:-22px -22px 22px;background:radial-gradient(ellipse at 50% 65%,#5e88932c,transparent 60%),linear-gradient(180deg,#162230,#131c28);border-bottom:1px solid #91b8c322}
.crafted-object:after{content:'';position:absolute;bottom:17px;width:140px;height:24px;border:1px solid #bca66a44;border-radius:50%;box-shadow:0 0 18px #d5b57b0d;transform:perspective(60px) rotateX(42deg)}
.crafted-object.epic{background:radial-gradient(ellipse at 50% 65%,#8967b52d,transparent 60%),#151d2a}
.crafted-object img{width:155px;height:155px;object-fit:contain;filter:drop-shadow(0 12px 10px #0008);z-index:1}.crafted-level{position:absolute;left:18px;top:16px;font-size:10px;border:1px solid #ffffff25;border-radius:3px;padding:5px 8px;color:#b8c8db;background:#0a10194d}
.recipe-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.recipe-title h2{font-size:25px;line-height:1.3;margin-bottom:7px}.recipe-title>.tag{flex-shrink:0;margin-top:3px;font-size:9px;letter-spacing:.4px}
.workshop-stats{display:flex;flex-wrap:wrap;gap:9px 22px;padding:17px 0;margin:12px 0 0;border-bottom:1px solid var(--line)}.workshop-stats>div{display:flex;gap:10px;align-items:center;font-size:11px}.workshop-stats span{color:var(--muted)}.workshop-stats strong{color:var(--green);font-weight:500}
.recipe-effect{color:#aeb8c9;font-size:12px;margin-top:16px}.components-heading{font-size:19px;margin:22px 0 14px}
.recipe-materials{display:flex;flex-wrap:wrap;gap:12px}
.recipe-material{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 80px;width:80px;height:86px;background:#090c11;border:1px solid #a7afbc55;outline-offset:3px}
.recipe-material>img{width:60px;height:60px;object-fit:contain;margin-bottom:8px}
.material-count{position:absolute;bottom:4px;right:5px;min-width:23px;padding:3px 5px;background:#090c11;border:1px solid currentColor;text-align:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.recipe-material.enough{border-color:#8bd5ae66}.recipe-material.enough .material-count,.recipe-material.enough .material-status{color:var(--green)}
.recipe-material.missing{border-color:#f51d3d88}.recipe-material.missing .material-count,.recipe-material.missing .material-status{color:var(--red)}
.material-tooltip{display:none;position:absolute;z-index:60;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:230px;max-width:calc(100vw - 40px);padding:20px 25px;background:url('/ui/tooltip-frame.svg') center/100% 100% no-repeat;color:#fff;filter:drop-shadow(0 5px 8px #0009);font-size:11px;line-height:1.6;pointer-events:none}
.material-tooltip strong{display:block;margin-bottom:8px;font:700 22px/1.1 var(--serif)}.material-tooltip>span{display:block}.material-status{margin-top:5px;font-weight:600}
.recipe-material:first-child .material-tooltip{left:0;transform:none}.recipe-material:last-child:not(:first-child) .material-tooltip{left:auto;right:0;transform:none}
.recipe-material:hover .material-tooltip,.recipe-material:focus .material-tooltip{display:block}
.craft-purchase{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid #d5b57b22}.craft-purchase>div{display:flex;flex-direction:column;gap:9px}.craft-purchase small{font-size:10px}.craft-purchase .currency{font-size:15px}.craft-purchase .currency svg{width:18px;height:18px}
.enchant-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}.enchant-station{text-align:center;background:radial-gradient(ellipse at 50% 35%,#34436344,transparent 65%),linear-gradient(140deg,#19212f,#101720);padding:30px 25px}
.enchant-orbit{position:relative;display:flex;align-items:center;justify-content:center;width:260px;height:260px;max-width:100%;margin:10px auto 16px}.enchant-orbit>i{position:absolute;inset:12px;border:1px solid #d5b57b44;border-radius:50%}.enchant-orbit>i:nth-child(2){inset:29px;border:1px dashed #d5b57b44;transform:rotate(20deg)}.enchant-orbit>i:nth-child(3){inset:44px;border-color:#ffffff0c}
.enchant-object{display:flex;align-items:center;justify-content:center;width:140px;height:140px;background:#0e1526;border:1px solid #d5b57b55;border-radius:12px;transform:rotate(45deg);box-shadow:0 0 35px #656c9b18;position:relative;z-index:1}.enchant-object>img{width:160px;height:160px;max-width:none;object-fit:contain;transform:rotate(-45deg);filter:drop-shadow(0 6px 8px #0008)}.enchant-object>svg{height:32px;width:32px;transform:rotate(-45deg);color:var(--gold)}.enchant-object:hover{border-color:var(--gold)}
.enchant-station h2{font-size:26px;line-height:1.3;margin:15px 0}.enchant-station>p{font-size:12px;margin:15px 0 22px}.enchant-ranks{display:flex;gap:18px;align-items:center;justify-content:center;margin:15px 0 20px;font:24px var(--serif);color:var(--muted)}.enchant-ranks svg{width:20px;fill:none;stroke:#8b98aa;stroke-width:1.5}.enchant-ranks strong{font-weight:400;color:var(--gold)}
.enchant-stat-preview{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.enchant-stat-preview>div{display:flex;align-items:center;gap:13px;margin-bottom:13px;font-size:11px}.enchant-stat-preview span{flex:1;text-align:left;color:var(--muted)}.enchant-stat-preview svg{width:13px;height:13px;fill:none;stroke:#778396;stroke-width:1.5}.enchant-stat-preview strong{color:var(--green)}
.enchant-recipe{display:flex;flex-direction:column;padding:25px}.enchant-recipe>.empty{margin:auto;border:0;padding:20px}.enchant-recipe>h3{font-size:20px;margin:20px 0 9px}.enchant-probability{text-align:center;padding:22px 0 30px;border-bottom:1px solid var(--line);color:var(--gold)}.enchant-probability>strong{display:block;font:65px 'New Rocker',Georgia,serif}.enchant-probability strong>span{font:22px 'Segoe UI',sans-serif;margin-left:3px}.enchant-probability>span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.enchant-rules{padding:20px 0;margin-top:auto}.enchant-rules p{color:#919fb3;font-size:11px;line-height:1.8}.enchant-rules p:last-child{margin-top:8px;color:#bcad96}.enchant-recipe .craft-purchase{margin-top:0}
.equipment-picker{width:min(700px,94vw)}.equipment-picker h2{margin:0;font-size:25px}.equipment-options{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:55vh;overflow:auto;padding:3px}
.equipment-option{display:flex;align-items:center;gap:12px;padding:15px 10px;background:#101722;border:1px solid #ffffff18;border-radius:5px;text-align:left;min-height:90px}.equipment-option>img{width:55px;height:55px;object-fit:contain}.equipment-option>span{flex:1;min-width:0}.equipment-option strong{font-size:11px;font-weight:500;display:block;line-height:1.5}.equipment-option small{font-size:10px;display:block;margin:5px 0}.equipment-option .tag{font-size:8px;letter-spacing:.2px;padding:3px 5px}.equipment-option>svg{width:13px;height:13px;color:#7c889a}.equipment-option:hover,.equipment-option.selected{border-color:#d5b57b88;background:#d5b57b0b}
.ritual-modal{width:min(600px,94vw);text-align:center;padding:30px;overflow-x:hidden;overflow-y:auto;background:radial-gradient(ellipse at 50% 35%,#30335455,transparent 70%),#121a26}.ritual-art{position:relative;width:280px;height:280px;margin:10px auto 20px;max-width:80vw;display:flex;align-items:center;justify-content:center}.ritual-item{height:170px;width:170px;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 0 17px #9e8bdb44);animation:ritual-breathe .8s ease-in-out infinite alternate}
.ritual-ring{position:absolute;inset:8px;border:2px dashed #c0a9e4aa;border-radius:50%;box-shadow:0 0 24px #aa8adb33,inset 0 0 22px #aa8adb22;animation:ritual-spin 4s linear infinite}.ritual-ring:before,.ritual-ring:after{content:'';position:absolute;width:18px;height:18px;border:1px solid #dfc8ff;transform:rotate(45deg);background:#4c3c68;top:calc(50% - 9px);left:-9px;box-shadow:0 0 14px #c3a9f188}.ritual-ring:after{left:auto;right:-9px}.ritual-ring.inner{inset:32px;border-style:solid;opacity:.6;animation-direction:reverse;animation-duration:3s}
.ritual-particle{position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);width:5px;height:5px;background:#e6cdff;transform:rotate(var(--angle)) translateX(120px);box-shadow:0 0 12px #c7a4ff;animation:ritual-spark 1s var(--delay) ease-in-out infinite}
.ritual-copy h2{font-size:34px;margin:12px 0}.ritual-copy p{color:#bbc4d2;font-size:13px;margin:12px 0}.ritual-copy>small{font-size:12px;color:var(--muted)}.ritual-copy>.tag{margin-top:10px}.ritual-copy>.button{margin:20px 0 5px;min-width:150px}.ritual-copy .ritual-spent{font-size:10px;color:#7f8da1;margin-top:18px}.ritual-spent .currency{font-size:11px}.ritual-outcome{position:absolute;inset:auto 10px 10px auto;z-index:4;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center}.ritual-outcome:empty{display:none}.ritual-outcome svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2}
.ritual-success{background:radial-gradient(ellipse at 50% 35%,#75603955,transparent 70%),#151b24}.ritual-success .ritual-ring{border-color:#ebcf8c;box-shadow:0 0 40px #efce8066;animation:ritual-success-ring 1s ease-out forwards}.ritual-success .ritual-item{animation:ritual-success-item .7s ease-out forwards;filter:drop-shadow(0 0 22px #eac57866)}.ritual-success .ritual-particle{background:#ffe3a0;animation:ritual-release .9s var(--delay) ease-out both}.ritual-success .ritual-outcome{background:#d5b57b;color:#161c24}.ritual-success .ritual-copy h2{color:#f0d492}
.ritual-failure .ritual-ring{border-color:#bf6671;animation:ritual-collapse .7s ease-in forwards;box-shadow:0 0 24px #a53f5b44}.ritual-failure .ritual-item{animation:ritual-shake .5s ease-out forwards;filter:drop-shadow(0 0 14px #963f5455)}.ritual-failure .ritual-particle{background:#c67a93;animation:ritual-fall .7s var(--delay) ease-in both}.ritual-failure .ritual-outcome{background:#b96676;color:#fff}.ritual-failure .ritual-copy h2{color:#df97a1}
.ritual-error{padding:35px 0}.ritual-error>.icon{color:var(--gold)}.ritual-error h2{margin:20px 0;font-size:27px}.ritual-error p{margin-bottom:25px}.ritual-error>.button{margin:5px}
@keyframes ritual-spin{to{transform:rotate(360deg)}}@keyframes ritual-breathe{to{transform:translateY(-6px) scale(1.04);filter:drop-shadow(0 0 25px #bb9aff88)}}@keyframes ritual-spark{50%{opacity:.2;transform:rotate(var(--angle)) translateX(105px)}}@keyframes ritual-success-ring{to{transform:scale(1.17);opacity:.5}}@keyframes ritual-success-item{40%{transform:scale(1.17)}to{transform:scale(1.03)}}@keyframes ritual-release{to{transform:rotate(var(--angle)) translateX(160px);opacity:0}}@keyframes ritual-collapse{to{transform:scale(.85) rotate(-30deg);opacity:.15}}@keyframes ritual-shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}to{transform:translateX(0)}}@keyframes ritual-fall{to{transform:rotate(var(--angle)) translateX(70px);opacity:0}}

@media(max-width:1050px){.enchant-orbit{width:210px;height:210px}.enchant-object{width:115px;height:115px}.enchant-object>img{width:135px;height:135px}.enchant-recipe{padding:20px}.craft-purchase{flex-wrap:wrap}.enchant-probability>strong{font-size:55px}}
@media(max-width:760px){.craft-bench{grid-template-columns:1fr}.recipe-browser{max-height:260px;overflow:auto}.recipe-browser-heading{position:sticky;top:0;z-index:2;background:#121b27}.recipe-choice{padding:10px 12px}.recipe-choice>img{width:45px;height:45px}.enchant-layout{grid-template-columns:1fr}.craft-category{padding:8px;gap:7px;min-height:65px;font-size:11px}.craft-category>img{width:35px;height:35px}.craft-subcategories button{padding:8px 12px}.enchant-orbit{width:240px;height:240px}.equipment-options{grid-template-columns:1fr}.recipe-detail{padding:18px}.crafted-object{margin:-18px -18px 18px;height:180px}.recipe-title{flex-wrap:wrap}.recipe-title h2{font-size:23px}.craft-categories{gap:8px}.ritual-modal{padding:20px}.ritual-copy h2{font-size:29px}.ritual-art{width:240px;height:240px}.ritual-item{width:145px;height:145px}}
@media(prefers-reduced-motion:reduce){.ritual-modal *{animation:none!important}}
