:root{
  --bg:#090807;--bg2:#0e0c0b;--paper:#e6ddd1;--muted:#aaa098;--stone:#b89e80;
  --wood:#6b3d24;--copper:#b15424;--purple:#8361a9;--purple2:#c3a6e4;--green:#59644c;
  --line:rgba(230,221,209,.12);--panel:rgba(17,14,12,.78);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--paper);font-family:Inter,system-ui,sans-serif;overflow-x:hidden;position:relative}body:before{content:'';position:fixed;inset:0;z-index:-3;background:radial-gradient(circle at 50% 11%,rgba(190,124,68,.17),transparent 19%),radial-gradient(circle at 50% 42%,rgba(116,74,38,.11),transparent 28%),linear-gradient(180deg,#0f0c0a 0%,#0b0908 48%,#090807 100%)}body:after{content:'';position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 50% 24%,rgba(255,221,186,.04),transparent 14%),radial-gradient(circle,rgba(255,255,255,.035) 0 1px,transparent 1.4px) 0 0/240px 240px;opacity:.42;pointer-events:none}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}.noise{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.section{position:relative;padding:150px 0}.kicker{font:600 12px/1 'Pixelify Sans',monospace;letter-spacing:.16em;color:#c6a17b;margin:0 0 28px}.kicker:before{content:'◆';font-size:9px;margin-right:10px}.site-header{position:fixed;z-index:90;top:0;left:0;width:100%;height:78px;display:grid;grid-template-columns:120px 1fr 190px 46px;align-items:center;padding:0 32px;border-bottom:1px solid transparent;transition:.35s;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent);gap:18px}.site-header.scrolled{height:68px;background:rgba(9,8,7,.78);border-color:var(--line)}.header-spacer{min-width:40px}.desktop-nav{display:flex;justify-content:center;gap:32px;font-size:13px;color:#cbc1b7;grid-column:2}.desktop-nav a{position:relative;padding:10px 0}.desktop-nav a:after{content:'';position:absolute;bottom:2px;left:50%;width:0;height:1px;background:#c8a37f;transition:.25s}.desktop-nav a:hover:after{left:0;width:100%}.nav-cta{grid-column:3;justify-self:end;font:600 12px 'Pixelify Sans';padding:12px 16px;border:1px solid rgba(200,163,127,.35);background:rgba(145,105,73,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}.menu-btn,.mobile-nav{display:none}.menu-btn{grid-column:4;justify-self:end}
#embers{position:fixed;z-index:30;inset:0;pointer-events:none}.global-ash{display:block;position:fixed;inset:0;z-index:18;pointer-events:none;background:radial-gradient(circle at 18% 20%,rgba(255,120,55,.05) 0 1px,transparent 1px) 0 0/180px 180px,radial-gradient(circle at 62% 44%,rgba(255,175,90,.04) 0 1px,transparent 1px) 0 0/220px 220px;opacity:.28;animation:ashDrift 26s linear infinite}.hero{height:100svh;min-height:760px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 36%,rgba(191,122,65,.24),transparent 24%),radial-gradient(circle at 50% 36%,rgba(255,218,176,.05),transparent 36%);opacity:1;z-index:1}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 22%,rgba(9,8,7,.18) 68%,var(--bg) 100%),radial-gradient(circle at 50% 40%,transparent 18%,rgba(0,0,0,.62) 88%);z-index:5}.hero-sky{position:absolute;inset:0;background:radial-gradient(circle at 50% 32%,rgba(255,223,194,.045),transparent 18%),radial-gradient(circle at 20% 18%,rgba(156,101,58,.035),transparent 16%),radial-gradient(circle at 80% 22%,rgba(156,101,58,.03),transparent 16%);opacity:1}.hero-glow{position:absolute;left:50%;top:42%;width:min(880px,72vw);height:min(880px,72vw);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(191,116,62,.22) 0,rgba(133,84,47,.10) 34%,transparent 68%);filter:blur(18px);z-index:2}.hero-ash{position:absolute;inset:-8%;background:radial-gradient(circle,rgba(255,141,66,.07) 0 1px,transparent 1.6px) 0 0/150px 150px,radial-gradient(circle,rgba(255,214,180,.035) 0 1px,transparent 1.6px) 45px 70px/210px 210px;opacity:.28;pointer-events:none;z-index:2}.ash-b{opacity:.18}.mountain,.forest,.voxel-rock,.hero-bottom-blocks{display:none}.hero-fog{position:absolute;z-index:3;width:120%;height:22%;left:-10%;background:radial-gradient(ellipse,rgba(164,148,132,.06),transparent 66%);filter:blur(18px)}.fog-1{bottom:7%}.fog-2{bottom:26%;animation-delay:-5s;opacity:.28}@keyframes fog{to{transform:translate3d(7%,1%,0) scale(1.04)}}.hero-content{position:relative;z-index:10;text-align:center;width:min(980px,92vw);padding-top:42px}.eyebrow{display:flex;justify-content:center;align-items:center;gap:14px;font:600 11px 'Pixelify Sans';letter-spacing:.16em;color:#bdb2aa}.eyebrow span{width:46px;height:1px;background:linear-gradient(90deg,transparent,#7d6c60)}.eyebrow span:last-child{transform:scaleX(-1)}.logo-stage{position:relative;width:min(590px,68vw);margin:8px auto -8px;cursor:pointer;transform-style:preserve-3d}.hero-logo{display:block;width:100%;position:relative;z-index:2;filter:drop-shadow(0 14px 22px rgba(0,0,0,.58));image-rendering:auto}.crystal-glow{position:absolute;left:50%;top:52%;width:46%;height:36%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(186,123,74,.10),transparent 66%);filter:blur(16px);animation:pulse 4s ease-in-out infinite}@keyframes pulse{50%{opacity:.45;transform:translate(-50%,-50%) scale(1.08)}}.logo-shards i{position:absolute;width:7px;height:10px;background:linear-gradient(135deg,#deb58f,#805736);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);filter:drop-shadow(0 0 6px rgba(182,128,84,.20));opacity:.72;animation:floatShard 5s ease-in-out infinite}.logo-shards i:nth-child(1){left:8%;top:34%}.logo-shards i:nth-child(2){right:6%;top:29%;animation-delay:-2s}.logo-shards i:nth-child(3){left:22%;bottom:20%;animation-delay:-1s}.logo-shards i:nth-child(4){right:19%;bottom:14%;animation-delay:-3s}@keyframes floatShard{50%{transform:translateY(-12px) rotate(18deg)}}.hero-title{font-size:clamp(34px,4.7vw,68px);line-height:.92;letter-spacing:-.058em;margin:0;font-weight:900;text-shadow:0 8px 30px #000}.hero-title span{color:#d8bea2}.hero-copy{width:min(710px,90%);margin:22px auto 0;color:#c6bbb0;font-size:15px;line-height:1.72}.hero-actions{display:flex;justify-content:center;gap:12px;margin-top:26px}.btn{height:50px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:34px;font:600 12px 'Pixelify Sans';letter-spacing:.04em;border:1px solid var(--line);transition:.25s}.btn-primary{background:linear-gradient(180deg,#8e6849,#60422f);border-color:#a17d5d;box-shadow:inset 0 1px rgba(255,255,255,.16),0 16px 44px rgba(0,0,0,.25);position:relative}.btn-primary:before{content:'';position:absolute;inset:3px;border:1px solid rgba(0,0,0,.38);pointer-events:none}.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.08)}.btn-ghost{background:rgba(15,12,10,.55);color:#b9afa7}.build-state{margin:20px auto 0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:#807870}.build-state i{width:6px;height:6px;background:#8aa06c;box-shadow:0 0 9px #8aa06c;border-radius:50%}.build-state strong{font:600 10px 'Pixelify Sans';color:#cbb498}.scroll-hint{position:absolute;z-index:12;left:26px;bottom:25px;display:flex;align-items:center;gap:12px;transform:rotate(-90deg);transform-origin:left bottom;font:600 9px 'Pixelify Sans';letter-spacing:.18em;color:#736c66}.scroll-hint i{width:48px;height:1px;background:#514b47}.hero-bottom-blocks{position:absolute;z-index:7;bottom:-10px;left:0;width:100%;height:48px;background:linear-gradient(90deg,#100e0c 0 7%,#15110f 7% 12%,#0d0c0b 12% 20%,#17130f 20% 26%,#0c0b0a 26% 40%,#15120f 40% 47%,#0c0b0a 47% 64%,#17130f 64% 70%,#0d0c0b 70% 82%,#15110f 82% 89%,#100e0c 89%);clip-path:polygon(0 35%,5% 35%,5% 16%,12% 16%,12% 45%,20% 45%,20% 0,29% 0,29% 36%,41% 36%,41% 17%,51% 17%,51% 52%,62% 52%,62% 8%,71% 8%,71% 39%,82% 39%,82% 21%,92% 21%,92% 50%,100% 50%,100% 100%,0 100%)}
.project{background:transparent}.section-gridline{display:none}.project-grid{position:relative;z-index:2;display:grid;grid-template-columns:.88fr 1.12fr;align-items:center;gap:90px}.project h2,.status h2,.discord h2{font-size:clamp(44px,5.2vw,76px);line-height:.94;letter-spacing:-.055em;margin:0;font-weight:900}.project h2 span,.status h2 span,.discord h2 span{color:#b69b80}.project-copy>p:not(.kicker){max-width:560px;color:#b7aca4;line-height:1.78}.micro-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.micro-stats div{padding:18px 14px 18px 0}.micro-stats div+div{border-left:1px solid var(--line);padding-left:18px}.micro-stats strong{display:block;font:600 13px 'Pixelify Sans';color:#d1c4b8}.micro-stats span{display:block;margin-top:5px;font-size:10px;color:#736c66}.world-window{height:580px;position:relative;border:1px solid rgba(190,163,135,.2);background:#12100e;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.36),inset 0 0 0 5px #0b0a09,inset 0 0 0 6px rgba(180,145,108,.16)}.window-scene{position:absolute;inset:0;background:linear-gradient(#30241c 0,#4b392a 44%,#1c1b15 45%,#11110e 100%)}.window-scene:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 68% 28%,rgba(224,157,87,.18),transparent 19%),linear-gradient(180deg,transparent 40%,rgba(0,0,0,.45));}.pixel-sun{position:absolute;right:20%;top:16%;width:55px;height:55px;background:#c77b42;box-shadow:0 0 50px rgba(205,125,64,.22);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.scene-mountain{position:absolute;bottom:32%;background:#2d2a22;clip-path:polygon(0 100%,0 63%,14% 63%,14% 51%,23% 51%,23% 39%,33% 39%,33% 30%,43% 30%,43% 18%,55% 18%,55% 27%,66% 27%,66% 43%,76% 43%,76% 55%,88% 55%,88% 69%,100% 69%,100% 100%)}.sm1{width:85%;height:54%;left:-10%}.sm2{width:70%;height:43%;right:-13%;background:#24231d;transform:scaleX(-1)}.scene-ground{position:absolute;left:0;bottom:0;width:100%;height:37%;background:linear-gradient(#2f3225 0 6%,#25271d 6% 20%,#1b1b16 20%);clip-path:polygon(0 8%,11% 8%,11% 3%,26% 3%,26% 11%,39% 11%,39% 5%,53% 5%,53% 0,67% 0,67% 9%,83% 9%,83% 4%,100% 4%,100% 100%,0 100%)}.scene-trees{position:absolute;bottom:28%;left:0;width:100%;height:32%;background:repeating-linear-gradient(90deg,transparent 0 7%,#151913 7% 9%,transparent 9% 16%);clip-path:polygon(0 100%,0 55%,6% 55%,8% 25%,10% 55%,16% 55%,19% 5%,22% 55%,30% 55%,33% 29%,36% 55%,47% 55%,50% 12%,53% 55%,64% 55%,67% 24%,70% 55%,78% 55%,81% 0,85% 55%,92% 55%,95% 22%,98% 55%,100% 55%,100% 100%)}.scene-path{position:absolute;bottom:-8%;left:37%;width:34%;height:42%;background:#75604c;clip-path:polygon(45% 0,57% 0,100% 100%,0 100%);opacity:.58}.scene-torch{position:absolute;bottom:23%;width:6px;height:48px;background:#3b2418;z-index:4}.scene-torch:before{content:'';position:absolute;left:-4px;top:-8px;width:14px;height:14px;background:#d27a38;box-shadow:0 0 22px #d27a38;clip-path:polygon(25% 0,75% 0,100% 75%,50% 100%,0 75%)}.t1{left:30%}.t2{right:29%}.window-ui{position:absolute;z-index:6;font:600 9px 'Pixelify Sans';letter-spacing:.12em;color:#c1b4a8;background:rgba(8,7,6,.58);padding:9px 11px;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(8px)}.top-left{left:17px;top:17px}.bottom-right{right:17px;bottom:17px}.bottom-right i{display:inline-block;width:5px;height:5px;background:#84a264;border-radius:50%;margin-right:6px;box-shadow:0 0 8px #84a264}.crosshair{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);font:400 25px monospace;color:rgba(255,255,255,.45)}
.experience{height:240vh;position:relative;background:transparent}.experience-sticky{height:100vh;position:sticky;top:0;overflow:hidden;display:flex;align-items:center;justify-content:center;z-index:2}.split-bg{position:absolute;inset:0;width:100%;background-color:transparent}.split-towny{left:0;right:0;background:radial-gradient(circle at 24% 50%,rgba(187,124,72,.12),transparent 24%),linear-gradient(90deg,rgba(87,62,42,.16) 0%,rgba(18,14,12,.22) 34%,rgba(12,10,9,.08) 50%,rgba(18,14,12,.22) 66%,rgba(87,62,42,.12) 100%),linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.55));clip-path:none}.split-towny:before{display:none}.split-dungeon{left:0;right:0;background:radial-gradient(circle at 74% 50%,rgba(177,111,63,.10),transparent 20%),radial-gradient(circle at 50% 50%,rgba(255,224,190,.03),transparent 26%),linear-gradient(90deg,rgba(0,0,0,.02),rgba(0,0,0,.10));clip-path:none}.split-dungeon:before{display:none}.split-vignette{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 12%,rgba(0,0,0,.26) 68%,rgba(0,0,0,.58));z-index:2}.experience-copy{position:absolute;z-index:6;width:330px;top:50%;transform:translateY(-50%)}.towny-copy{left:8%}.dungeon-copy{right:8%;text-align:right}.experience-copy h3{font-size:64px;line-height:.8;margin:0 0 18px;letter-spacing:-.06em}.experience-copy p:not(.kicker){font-size:14px;color:#aaa098;line-height:1.65}.tag-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:20px}.dungeon-copy .tag-row{justify-content:flex-end}.tag-row span{font:600 9px 'Pixelify Sans';border:1px solid var(--line);padding:8px 9px;background:rgba(7,6,5,.3)}.experience-core{position:relative;z-index:8;text-align:center;width:380px}.experience-core>p{font:600 10px 'Pixelify Sans';letter-spacing:.12em;color:#c3a07b}.experience-core h2{font-size:clamp(50px,6vw,84px);line-height:.82;letter-spacing:-.07em;margin:9px 0 16px}.experience-core small{color:#8f8580}.core-crystal{width:58px;height:66px;margin:0 auto 24px;position:relative;filter:drop-shadow(0 0 28px rgba(184,121,72,.32))}.core-crystal:before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#efd4b4,#9a6a42 54%,#3d2b1f);clip-path:polygon(50% 0,100% 29%,85% 78%,50% 100%,15% 78%,0 29%)}.core-crystal:after{content:'';position:absolute;inset:7px;background:linear-gradient(315deg,rgba(255,255,255,.32),transparent 45%);clip-path:inherit}
.status{background:transparent}.status-head{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:80px;margin-bottom:65px}.status-head>p{color:#8d847e;line-height:1.65;margin:0 0 9px;max-width:410px}.build-board{position:relative;z-index:2;border-top:1px solid var(--line)}.build-row{min-height:82px;display:grid;grid-template-columns:72px 1fr 180px 18px;align-items:center;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.build-row:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(145,105,73,.06),transparent);transform:translateX(-100%);transition:.45s}.build-row:hover:before{transform:translateX(0)}.build-row .index{font:600 10px 'Pixelify Sans';color:#5d5752}.build-row strong{font-size:18px;letter-spacing:-.02em}.chip{font:600 9px 'Pixelify Sans';font-style:normal;padding:8px 9px;width:max-content;border:1px solid var(--line)}.chip.dev{color:#c4ab93;background:rgba(128,91,58,.12)}.chip.test{color:#a9bd91;background:rgba(87,114,65,.11)}.chip.plan{color:#bda387;background:rgba(122,88,60,.10)}.chip.soon{color:#d2b393;background:rgba(145,105,73,.13)}.build-row>i{width:8px;height:8px;background:#27221f;box-shadow:inset 0 0 0 1px #403832;transform:rotate(45deg)}
.discord{overflow:hidden;min-height:720px;display:flex;align-items:center;text-align:center;background:transparent}.discord-bg-grid{position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(182,115,64,.08),transparent 26%);opacity:1;mask-image:none}.discord-inner{position:relative;z-index:4}.discord h2{font-size:clamp(48px,6vw,86px)}.discord-inner>p:not(.kicker){max-width:700px;margin:24px auto;color:#b8aea6;line-height:1.72}.discord-mega{width:min(760px,100%);height:92px;margin:38px auto 0;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:0 30px;background:linear-gradient(180deg,#7c5b42,#513a2b);border:1px solid #9f7958;box-shadow:inset 0 0 0 4px rgba(0,0,0,.25),0 20px 70px rgba(0,0,0,.35);position:relative}.discord-mega small{display:block;font:600 9px 'Pixelify Sans';color:#c9b6a5;margin-bottom:7px}.discord-mega strong{font-size:23px}.discord-mega>span{font-size:32px}.beta-note{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:25px;font-size:11px;color:#807873}.beta-note i{width:7px;height:7px;background:#9e6f4b;transform:rotate(45deg);box-shadow:0 0 12px rgba(158,111,75,.6)}.beta-note b{font:600 10px 'Pixelify Sans';color:#c8a37f}.discord-crystals i{position:absolute;width:20px;height:26px;background:linear-gradient(135deg,#e4c6a6,#7f5937);clip-path:polygon(50% 0,100% 35%,80% 100%,20% 100%,0 35%);filter:blur(.1px) drop-shadow(0 0 18px rgba(177,120,72,.24));animation:floatShard 6s ease-in-out infinite}.discord-crystals i:nth-child(1){left:9%;top:26%;transform:rotate(-18deg)}.discord-crystals i:nth-child(2){right:11%;top:31%;animation-delay:-2s}.discord-crystals i:nth-child(3){left:17%;bottom:20%;animation-delay:-4s}
footer{position:relative;padding:70px 0 28px;background:transparent;border-top:0}
.section,.discord,footer{position:relative;overflow:hidden}.section:before,.discord:before,footer:before{display:none}.section:after,.discord:after,.experience:after,footer:after{content:"";position:absolute;left:50%;top:50%;width:min(920px,76vw);height:min(420px,42vw);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(179,109,57,.14) 0,rgba(138,92,56,.06) 28%,transparent 68%);filter:blur(22px);pointer-events:none;z-index:0}.footer-grid{display:grid;grid-template-columns:160px 1fr 200px;align-items:center;gap:30px}.footer-grid img{display:block;width:140px}.footer-grid p{font-size:12px;color:#6e6761}.footer-links{display:flex;justify-content:flex-end;gap:24px;font-size:12px;color:#9f958e}.legal{margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.06);font-size:9px;color:#4f4b47}.secret-block{position:absolute;width:16px;height:16px;right:24px;bottom:18px;border:0;background:#0c0a08;box-shadow:inset 0 0 0 1px #17130f;cursor:pointer}.achievement{position:fixed;z-index:120;right:22px;bottom:22px;width:340px;padding:15px 18px 15px 56px;background:#15120f;border:1px solid #5e4f44;box-shadow:0 18px 60px #000;transform:translateY(140%);transition:.45s}.achievement:before{content:'◆';position:absolute;left:18px;top:18px;font-size:22px;color:#c8a37f}.achievement span{display:block;font:600 9px 'Pixelify Sans';color:#c8a37f;margin-bottom:5px}.achievement strong{font-size:11px;color:#b9afa7}
@keyframes ashDrift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(-2%,1.5%,0)}100%{transform:translate3d(2%,-2%,0)}}
@media (max-width:900px){.site-header{grid-template-columns:1fr auto;height:68px;padding:0 20px;gap:8px}.desktop-nav,.nav-cta{display:none}.header-spacer{display:block}.menu-btn{display:flex;width:38px;height:38px;border:1px solid var(--line);background:rgba(0,0,0,.2);align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-btn span{width:16px;height:1px;background:#c5bab0}.mobile-nav{display:flex;position:fixed;z-index:85;top:68px;left:0;width:100%;padding:22px;background:#0b0908;border-bottom:1px solid var(--line);flex-direction:column;gap:18px;transform:translateY(-130%);transition:.35s}.mobile-nav.open{transform:none}.mobile-nav a{font:600 12px 'Pixelify Sans'}.hero{min-height:700px}.logo-stage{width:min(600px,94vw);margin:12px auto -20px}.hero-title{font-size:clamp(34px,9vw,58px)}.hero-copy{font-size:13px}.project-grid{grid-template-columns:1fr;gap:50px}.world-window{height:460px}.experience{height:auto}.experience-sticky{position:relative;height:auto;min-height:980px;display:grid;grid-template-columns:1fr;padding:110px 24px}.split-bg{width:100%;height:50%}.split-towny{right:0;top:0;clip-path:none}.split-dungeon{left:0;top:50%;clip-path:none}.experience-core{order:2;margin:auto}.experience-copy{position:relative;top:auto;left:auto!important;right:auto!important;transform:none;width:min(450px,90%);margin:0 auto;z-index:8}.towny-copy{align-self:start}.dungeon-copy{text-align:left;align-self:end}.dungeon-copy .tag-row{justify-content:flex-start}.status-head{grid-template-columns:1fr;gap:28px}.build-row{grid-template-columns:45px 1fr auto}.build-row>i{display:none}.chip{font-size:8px}.footer-grid{grid-template-columns:1fr;text-align:center}.footer-grid img{margin:auto}.footer-links{justify-content:center}.footer-grid p{margin:0}.discord-mega{height:82px}.discord-mega strong{font-size:18px}.beta-note{flex-wrap:wrap}.section{padding:105px 0}}
@media (max-width:560px){.wrap{width:min(100% - 30px,1180px)}.hero{min-height:720px}.eyebrow{font-size:8px}.eyebrow span{width:22px}.logo-stage{width:104vw;margin-left:-6vw;margin-top:22px}.hero-title{font-size:38px}.hero-actions{flex-direction:column;width:min(330px,92%);margin-inline:auto}.btn{width:100%}.project h2,.status h2,.discord h2{font-size:44px}.micro-stats{grid-template-columns:1fr}.micro-stats div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.world-window{height:390px}.build-row{grid-template-columns:36px 1fr;gap:8px;padding:17px 0}.build-row .chip{grid-column:2}.experience-core{width:100%}.experience-core h2{font-size:54px}.experience-copy h3{font-size:54px}.discord-mega{padding:0 18px}.discord-mega small{font-size:8px}.discord-mega strong{font-size:16px}.discord-mega>span{font-size:24px}.achievement{width:calc(100% - 30px);right:15px}.scroll-hint{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-fog,.hero-ash,.global-ash{display:block;position:fixed;inset:0;z-index:18;pointer-events:none;background:radial-gradient(circle at 18% 20%,rgba(255,120,55,.05) 0 1px,transparent 1px) 0 0/180px 180px,radial-gradient(circle at 62% 44%,rgba(255,175,90,.04) 0 1px,transparent 1px) 0 0/220px 220px;opacity:.28;animation:ashDrift 26s linear infinite}}


@media (max-width:900px){
  .split-bg{width:100%;height:100%;inset:0}
  .split-towny,.split-dungeon{left:0;right:0;top:0;bottom:0;clip-path:none}
}
@media (max-width:560px){
  .logo-stage{width:min(480px,92vw);margin:16px auto -4px}
  .hero-title{font-size:34px;line-height:.94}
  .hero-copy{font-size:12px;max-width:88vw}
}

.micro-stats{display:none!important}

.discord-crystals{display:none!important}

.hero-logo,.world-window,.experience-core,.discord-mega{will-change:auto}

@media (max-width:900px){.noise{display:none}.hero-fog{display:none}}

/* V9 performance pass */
.experience{display:none!important}
.reveal-up,.reveal-logo,.reveal-mask,.project-copy,.world-window,.status-head,.build-row,.discord-inner{opacity:1;transform:none}
.js-reveal{opacity:0;transform:translateY(18px);transition:opacity .42s ease,transform .42s ease}
.js-reveal.is-visible{opacity:1;transform:none}
.site-header,.btn,.nav-cta{will-change:auto}
@media (max-width:900px){#embers{opacity:.7}}


/* V10 - animations restored, lightweight */
html{scroll-behavior:smooth}

/* Hero entrance */
.reveal-up,.reveal-logo{opacity:0;transform:translate3d(0,22px,0);transition:opacity .72s cubic-bezier(.2,.8,.2,1),transform .72s cubic-bezier(.2,.8,.2,1)}
.reveal-logo{transform:translate3d(0,28px,0) scale(.965);transition-duration:.9s}
.reveal-up.is-visible,.reveal-logo.is-visible{opacity:1;transform:translate3d(0,0,0) scale(1)}
.hero-content .eyebrow{transition-delay:.05s}
.hero-content .logo-stage{transition-delay:.10s}
.hero-content .hero-title{transition-delay:.18s}
.hero-content .hero-copy{transition-delay:.25s}
.hero-content .hero-actions{transition-delay:.32s}
.hero-content .build-state{transition-delay:.39s}

/* Ambient movement */
.hero-glow{animation:heroGlowBreath 6.5s ease-in-out infinite}
@keyframes heroGlowBreath{0%,100%{opacity:.72;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
.hero-ash.ash-a{animation:ashLayerA 18s linear infinite}
.hero-ash.ash-b{animation:ashLayerB 28s linear infinite}
@keyframes ashLayerA{from{transform:translate3d(0,0,0)}to{transform:translate3d(2.5%,-3%,0)}}
@keyframes ashLayerB{from{transform:translate3d(0,0,0)}to{transform:translate3d(-2%,2.5%,0)}}
.logo-shards i{animation:floatShard 5.5s ease-in-out infinite}

/* Scroll reveals */
.js-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .68s cubic-bezier(.2,.8,.2,1),transform .68s cubic-bezier(.2,.8,.2,1)}
.js-reveal.from-left{transform:translate3d(-36px,0,0)}
.js-reveal.from-right{transform:translate3d(36px,0,0)}
.js-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.build-row.js-reveal:nth-child(1){transition-delay:.02s}.build-row.js-reveal:nth-child(2){transition-delay:.07s}.build-row.js-reveal:nth-child(3){transition-delay:.12s}.build-row.js-reveal:nth-child(4){transition-delay:.17s}.build-row.js-reveal:nth-child(5){transition-delay:.22s}

/* Preview movement */
.world-window{transition:transform .45s ease,box-shadow .45s ease}
.world-window:hover{transform:translateY(-4px) scale(1.008);box-shadow:0 36px 90px rgba(0,0,0,.42),inset 0 0 0 5px #0b0a09,inset 0 0 0 6px rgba(180,145,108,.18)}
.pixel-sun{animation:sunPulse 5s ease-in-out infinite}
@keyframes sunPulse{50%{box-shadow:0 0 72px rgba(205,125,64,.30);filter:brightness(1.08)}}
.scene-torch:before{animation:torchFlicker 1.8s ease-in-out infinite alternate}
.t2:before{animation-delay:-.8s}
@keyframes torchFlicker{0%{transform:scale(.92) translateY(1px);opacity:.8}100%{transform:scale(1.08) translateY(-1px);opacity:1}}

/* Build rows */
.build-row{transition:background .28s ease,transform .28s ease}
.build-row:hover{background:rgba(154,105,67,.045);transform:translateX(4px)}

/* CTA motion */
.btn,.nav-cta,.discord-mega{transition:transform .25s ease,filter .25s ease,background .25s ease,border-color .25s ease}
.btn:hover,.nav-cta:hover{transform:translateY(-2px)}
.discord-mega:hover{transform:translateY(-3px);filter:brightness(1.05)}

/* Scroll hint */
.scroll-hint i{transform-origin:left center;animation:scrollLine 1.8s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleX(.45);opacity:.45}50%{transform:scaleX(1);opacity:1}}

/* Header */
.site-header{transition:height .3s ease,background .3s ease,border-color .3s ease,transform .3s ease}
.site-header.scrolled{box-shadow:0 12px 35px rgba(0,0,0,.12)}

/* GPU only on actually animated pieces */
.hero-glow,.hero-ash,.logo-stage,.js-reveal{will-change:transform,opacity}

@media (max-width:900px){
  .hero-glow{animation-duration:8s}
  .hero-ash{animation:none!important}
  .logo-shards i:nth-child(n+3){display:none}
  .world-window:hover,.build-row:hover,.btn:hover,.nav-cta:hover,.discord-mega:hover{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-glow,.hero-ash,.logo-shards i,.pixel-sun,.scene-torch:before,.scroll-hint i{animation:none!important}
  .reveal-up,.reveal-logo,.js-reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* V11: GSAP owns the main choreography again. */
.js-reveal,.js-reveal.from-left,.js-reveal.from-right,.js-reveal.is-visible,
.reveal-up,.reveal-logo,.reveal-up.is-visible,.reveal-logo.is-visible{
  opacity:1!important;
  transform:none;
  transition:none!important;
}
@media (prefers-reduced-motion:reduce){
  .reveal-up,.reveal-logo,.project-copy,.world-window,.status-head,.build-row,.discord-inner{opacity:1!important;transform:none!important}
}


/* V13 premium polish */
.scroll-progress{position:fixed;z-index:130;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,#7a4d2f,#d2ab82,#f0d1ab);box-shadow:0 0 18px rgba(207,157,105,.35);pointer-events:none}

/* Continuous background: footer never becomes a separate strip */
main,footer,.project,.status,.discord{background:transparent!important}
footer{isolation:isolate;overflow:hidden!important;padding-top:54px!important}
footer:before,footer:after{display:none!important}
footer>.wrap{position:relative;z-index:2}

/* make moving Nether atmosphere visible everywhere */
#embers{z-index:26;opacity:1}
.global-ash{z-index:17;opacity:.24;background-size:180px 180px,220px 220px;animation:netherAshBg 22s linear infinite!important;will-change:background-position,transform}
.hero-ash.ash-a{animation:netherLayerA 14s linear infinite!important}
.hero-ash.ash-b{animation:netherLayerB 24s linear infinite!important}
@keyframes netherAshBg{0%{background-position:0 0,40px 70px;transform:translate3d(0,0,0)}100%{background-position:90px -260px,-60px -330px;transform:translate3d(1.2%,-1.5%,0)}}
@keyframes netherLayerA{from{transform:translate3d(0,5%,0)}to{transform:translate3d(2%,-8%,0)}}
@keyframes netherLayerB{from{transform:translate3d(0,3%,0)}to{transform:translate3d(-2%,-6%,0)}}

/* Hero: more premium hierarchy */
.hero-content{width:min(1020px,92vw)}
.eyebrow{color:#ccb79f}
.logo-stage{width:min(610px,66vw);margin:2px auto -8px}
.hero-title{max-width:1040px;margin-inline:auto;text-wrap:balance}
.hero-title span{background:linear-gradient(90deg,#f0dfcc,#c39d79 48%,#ead0b4);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-copy{font-size:clamp(14px,1.15vw,16px);max-width:720px;color:#c0b6ad}
.btn-primary{overflow:hidden}
.btn-primary:after{content:'';position:absolute;top:-80%;left:-40%;width:26%;height:260%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:rotate(18deg);transition:left .55s ease;pointer-events:none}
.btn-primary:hover:after{left:120%}

/* Active nav */
.desktop-nav a.active{color:#f0dfcc}
.desktop-nav a.active:after{left:0;width:100%}

/* Premium server connect strip */
.server-connect{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 24px;margin-bottom:54px;border:1px solid rgba(204,165,126,.22);background:linear-gradient(180deg,rgba(44,31,23,.52),rgba(18,14,11,.34));box-shadow:inset 0 1px rgba(255,255,255,.04),0 22px 70px rgba(0,0,0,.22);position:relative;overflow:hidden}
.server-connect:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 24% 50%,rgba(193,124,68,.16),transparent 30%);pointer-events:none}
.server-connect-copy{position:relative;z-index:2;display:flex;align-items:center;gap:18px;min-width:0}
.server-label{font:600 9px 'Pixelify Sans';letter-spacing:.14em;color:#9a8e84;white-space:nowrap}
.server-connect strong{font-size:clamp(23px,2.6vw,38px);letter-spacing:-.045em;color:#eee1d4;white-space:nowrap}
.server-version{font:600 10px 'Pixelify Sans';letter-spacing:.08em;color:#d2b08d;border:1px solid rgba(205,165,126,.22);padding:8px 10px;background:rgba(126,84,52,.10);white-space:nowrap}
.copy-ip{position:relative;z-index:2;display:flex;align-items:center;gap:14px;min-height:48px;padding:0 17px;color:#ead9c7;border:1px solid rgba(207,166,124,.28);background:rgba(116,78,49,.13);cursor:pointer;transition:transform .22s ease,background .22s ease,border-color .22s ease}
.copy-ip:hover{transform:translateY(-2px);background:rgba(138,91,56,.20);border-color:rgba(222,183,145,.42)}
.copy-label{font:600 10px 'Pixelify Sans';letter-spacing:.08em}.copy-ip b{font-size:18px;font-weight:400}
.copy-ip.copied{border-color:rgba(145,174,106,.48);background:rgba(92,122,61,.15)}

.copy-toast{position:fixed;z-index:150;left:50%;bottom:24px;transform:translate(-50%,130%);opacity:0;padding:12px 16px;background:rgba(18,14,11,.94);border:1px solid rgba(203,164,125,.28);box-shadow:0 20px 60px rgba(0,0,0,.38);font-size:11px;color:#bfb3a8;transition:transform .34s cubic-bezier(.2,.8,.2,1),opacity .34s ease;pointer-events:none}.copy-toast strong{color:#ead5bf}.copy-toast.show{transform:translate(-50%,0);opacity:1}

.footer-grid{padding-top:0!important}
.footer-grid img{width:118px!important;opacity:.84}
.footer-grid p{color:#81776f!important}
.legal{color:#59524d!important}

@media (max-width:900px){
  .server-connect{align-items:flex-start;flex-direction:column;padding:20px}
  .server-connect-copy{flex-wrap:wrap;gap:10px 14px}
  .server-label{flex-basis:100%}
  .copy-ip{width:100%;justify-content:center}
  .logo-stage{width:min(600px,94vw)}
}
@media (max-width:560px){
  .server-connect strong{font-size:25px}
  .server-version{padding:7px 9px}
  .hero-title{font-size:36px!important}
  .hero-copy{font-size:13px!important}
}
@media (prefers-reduced-motion:reduce){
  .global-ash,.hero-ash{animation:none!important}
  .scroll-progress{display:none}
}

/* V14: server address sits directly above the main logo */
.server-eyebrow{
  appearance:none;
  border:0;
  background:transparent;
  cursor:pointer;
  color:#d5c0a8;
  margin:0 auto 2px;
  padding:8px 12px;
}
.server-eyebrow strong{
  font:600 12px/1 'Pixelify Sans',monospace;
  letter-spacing:.15em;
  color:#ead7c1;
}
.server-eyebrow b{
  font:600 10px/1 'Pixelify Sans',monospace;
  letter-spacing:.10em;
  color:#a88c70;
  padding:5px 7px;
  border:1px solid rgba(200,163,127,.18);
  background:rgba(141,96,59,.08);
}
.server-eyebrow:hover strong{color:#fff1df}
.server-eyebrow:hover b{
  border-color:rgba(214,174,132,.34);
  background:rgba(141,96,59,.15);
}
.server-eyebrow.copied strong{color:#c9d9a7}
.server-eyebrow.copied b{
  color:#c9d9a7;
  border-color:rgba(151,177,106,.35);
  background:rgba(84,110,56,.12);
}
.server-eyebrow:focus-visible{
  outline:1px solid rgba(222,183,145,.55);
  outline-offset:5px;
}
.server-connect{display:none!important}

@media (max-width:560px){
  .server-eyebrow{gap:8px;padding-inline:4px}
  .server-eyebrow strong{font-size:9px;letter-spacing:.11em}
  .server-eyebrow b{font-size:8px;padding:4px 5px}
}


/* V15 typography + premium interaction */
.server-eyebrow{font-family:Inter,system-ui,sans-serif!important;gap:10px}
.server-eyebrow strong{font:800 13px/1 Inter,system-ui,sans-serif!important;letter-spacing:.08em!important;color:#f0dfcb}
.server-eyebrow b{font:700 10px/1 Inter,system-ui,sans-serif!important;letter-spacing:.05em!important;color:#bfa182;padding:6px 8px;border-radius:3px}

.cursor-aura{position:fixed;left:0;top:0;width:260px;height:260px;border-radius:50%;pointer-events:none;z-index:4;opacity:0;background:radial-gradient(circle,rgba(191,116,62,.07),rgba(191,116,62,.02) 35%,transparent 68%);transform:translate(-50%,-50%);transition:opacity .25s ease;mix-blend-mode:screen}
body:hover .cursor-aura{opacity:1}

.logo-stage{isolation:isolate}
.logo-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(210,169,125,.10);border-radius:50%;transform:translate(-50%,-50%) scale(.7);opacity:0;pointer-events:none;z-index:0}
.ring-a{width:72%;aspect-ratio:1}.ring-b{width:88%;aspect-ratio:1}
.logo-stage.awakening .ring-a{animation:ringWake 1.4s ease-out infinite}.logo-stage.awakening .ring-b{animation:ringWake 1.4s .35s ease-out infinite}
.logo-stage.awakening .hero-logo{filter:drop-shadow(0 16px 28px rgba(0,0,0,.60)) drop-shadow(0 0 28px rgba(200,126,65,.22))}
.logo-stage.awakening .logo-shards i{animation-duration:1.6s!important;filter:drop-shadow(0 0 13px rgba(255,152,78,.5))}
.logo-stage.portal-open .hero-logo{animation:logoPortal .75s cubic-bezier(.2,.8,.2,1) both}
.logo-secret-hint{position:absolute;left:50%;bottom:7%;transform:translateX(-50%) translateY(12px);opacity:0;font:700 9px/1 Inter,sans-serif;letter-spacing:.18em;color:#d8b38e;z-index:5;white-space:nowrap;transition:.25s}
.logo-stage.awakening .logo-secret-hint{opacity:.7;transform:translateX(-50%) translateY(0)}
@keyframes ringWake{0%{opacity:0;transform:translate(-50%,-50%) scale(.62)}25%{opacity:.45}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes logoPortal{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.055) rotate(-1deg);filter:brightness(1.28) saturate(1.2)}100%{transform:scale(.84);filter:brightness(2) blur(1px);opacity:.1}}

/* hidden battle */
.battle-overlay{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:24px;background:rgba(5,4,3,.88);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}
.battle-overlay.open{opacity:1;visibility:visible}
.battle-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(137,82,45,.18),transparent 28%),radial-gradient(circle at 50% 50%,transparent 20%,rgba(0,0,0,.72) 92%);pointer-events:none}
.battle-arena{position:relative;width:min(980px,96vw);min-height:650px;padding:26px 30px 28px;background:linear-gradient(180deg,rgba(18,13,10,.95),rgba(8,7,6,.97));border:1px solid rgba(200,163,127,.23);box-shadow:0 40px 120px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.02);overflow:hidden}
.battle-arena:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,rgba(191,116,62,.10),transparent 33%),linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.008) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px;pointer-events:none}
.battle-close{position:absolute;right:18px;top:16px;z-index:5;width:38px;height:38px;border:1px solid rgba(255,255,255,.08);background:#0d0b09;color:#9e938a;font-size:24px;cursor:pointer}
.battle-topline{position:relative;z-index:2;display:flex;justify-content:space-between;gap:20px;font:700 10px/1 Inter,sans-serif;letter-spacing:.18em;color:#8f8177}
.battle-topline b{color:#c7a37f}.battle-arena>h2{position:relative;z-index:2;margin:22px 0 4px;text-align:center;font-size:clamp(36px,5vw,68px);letter-spacing:-.06em}.battle-sub{position:relative;z-index:2;text-align:center;color:#8f8580;font-size:13px;margin:0 0 12px}
.battle-stage{position:relative;z-index:2;height:355px;display:grid;grid-template-columns:1fr 80px 1.35fr;align-items:center;gap:12px}
.battle-runes{position:absolute;inset:10% 15%;border:1px solid rgba(184,121,72,.10);border-radius:50%;box-shadow:0 0 80px rgba(184,121,72,.07);animation:battleRune 12s linear infinite}.battle-runes:before,.battle-runes:after{content:"";position:absolute;inset:12%;border:1px dashed rgba(184,121,72,.09);border-radius:50%}.battle-runes:after{inset:26%}
@keyframes battleRune{to{transform:rotate(360deg)}}
.player-side,.boss-side{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}
.player-avatar{width:124px;height:124px;display:grid;place-items:center;background:linear-gradient(135deg,#2b241e,#0f0d0b);border:1px solid rgba(200,163,127,.22);transform:rotate(45deg);box-shadow:0 0 40px rgba(184,121,72,.08)}.player-avatar span{transform:rotate(-45deg);font-size:54px;font-weight:900;color:#d8b38e;text-shadow:0 8px 30px #000}
.player-side>strong,.boss-side>strong{margin-top:24px;font:800 11px/1 Inter,sans-serif;letter-spacing:.16em;color:#cbb8a5}.boss-side img{width:min(320px,90%);max-height:245px;object-fit:contain;filter:drop-shadow(0 24px 35px rgba(0,0,0,.55));transform-origin:50% 80%}
.versus{font:900 28px/1 Inter,sans-serif;color:#5f554e;text-align:center}
.hpbar{width:min(230px,88%);height:9px;margin-top:12px;background:#18130f;border:1px solid rgba(255,255,255,.07);overflow:hidden}.hpbar i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#7c9e5b,#a9c875);transition:width .35s ease}.hpbar.boss i{background:linear-gradient(90deg,#8e3f28,#ca7047)}.player-side small,.boss-side small{margin-top:7px;color:#746b64;font-size:10px}
.battle-log{position:relative;z-index:3;min-height:44px;display:grid;place-items:center;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);color:#b8aba1;font-size:12px;text-align:center}
.battle-actions{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.battle-actions button{padding:15px 14px;border:1px solid rgba(200,163,127,.16);background:rgba(31,23,18,.74);color:#d6c7b9;text-align:left;cursor:pointer;transition:.2s}.battle-actions button:hover{transform:translateY(-2px);border-color:rgba(200,163,127,.38);background:rgba(65,45,31,.65)}.battle-actions button:disabled{opacity:.35;cursor:not-allowed;transform:none}.battle-actions b{display:block;font-size:13px;letter-spacing:.04em}.battle-actions span{display:block;margin-top:4px;color:#756c64;font-size:10px}.battle-keyhint{text-align:center;margin-top:12px;color:#574f49;font-size:9px;letter-spacing:.05em}
.slash{position:absolute;z-index:6;left:52%;top:32%;width:260px;height:5px;background:linear-gradient(90deg,transparent,#fff4dc 30%,#da8d4e 70%,transparent);box-shadow:0 0 20px rgba(240,147,75,.75);opacity:0;transform:rotate(-22deg) scaleX(.2);transform-origin:center}.slash-b{transform:rotate(28deg) scaleX(.2)}
.battle-stage.player-attack .slash-a{animation:slashAttack .45s ease-out}.battle-stage.player-crystal .slash-b{animation:slashCrystal .55s ease-out}.battle-stage.boss-attack .boss-side img{animation:bossLunge .5s ease}.battle-stage.player-hit .player-avatar{animation:playerHit .45s ease}.battle-stage.boss-hit .boss-side img{animation:bossHit .45s ease}.boss-flash{position:absolute;inset:20% 18%;background:radial-gradient(circle,rgba(255,131,67,.22),transparent 65%);opacity:0;pointer-events:none}.battle-stage.boss-hit .boss-flash{animation:flashHit .42s ease}
@keyframes slashAttack{0%{opacity:0;transform:translateX(-70px) rotate(-22deg) scaleX(.2)}35%{opacity:1}100%{opacity:0;transform:translateX(120px) rotate(-22deg) scaleX(1)}}
@keyframes slashCrystal{0%{opacity:0;transform:translateX(-90px) rotate(28deg) scaleX(.2)}40%{opacity:1;filter:hue-rotate(15deg)}100%{opacity:0;transform:translateX(110px) rotate(28deg) scaleX(1)}}
@keyframes bossLunge{0%,100%{transform:translateX(0)}40%{transform:translateX(-45px) scale(1.04)}65%{transform:translateX(-18px)}}
@keyframes playerHit{0%,100%{transform:rotate(45deg) translateX(0)}35%{transform:rotate(45deg) translateX(-12px);filter:brightness(1.7)}65%{transform:rotate(45deg) translateX(7px)}}
@keyframes bossHit{0%,100%{transform:translateX(0)}25%{transform:translateX(12px) rotate(1deg);filter:brightness(1.7)}55%{transform:translateX(-8px) rotate(-1deg)}}
@keyframes flashHit{30%{opacity:1}100%{opacity:0}}

/* secret area */
.secret-zone{display:none;position:relative;padding:145px 0 130px;overflow:hidden;background:transparent}.secret-zone.unlocked{display:block}.secret-zone:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 34%,rgba(117,75,41,.17),transparent 28%),radial-gradient(circle at 20% 70%,rgba(75,49,31,.08),transparent 24%);pointer-events:none}.secret-gate-lines{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 49.94%,rgba(211,165,116,.08) 50%,transparent 50.06%);opacity:.5}.secret-zone-inner{position:relative;z-index:2}.secret-zone h2{font-size:clamp(46px,6vw,86px);line-height:.9;letter-spacing:-.06em;margin:0}.secret-zone h2 span{color:#b3977d}.secret-lead{max-width:700px;margin:26px 0 48px;color:#9b9189;line-height:1.75}.secret-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.secret-card{min-height:290px;padding:24px;border:1px solid rgba(200,163,127,.12);background:linear-gradient(180deg,rgba(28,21,17,.72),rgba(12,10,9,.38));position:relative;overflow:hidden}.secret-card:after{content:"";position:absolute;inset:-50%;background:linear-gradient(105deg,transparent 42%,rgba(255,219,178,.04) 50%,transparent 58%);transform:translateX(-35%);transition:.7s}.secret-card:hover:after{transform:translateX(35%)}.secret-card span{font:700 10px/1 Inter,sans-serif;letter-spacing:.16em;color:#745f4e}.secret-card strong{display:block;margin-top:70px;font-size:18px}.secret-card p{color:#8e847d;font-size:12px;line-height:1.75}.secret-cta{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;gap:20px;align-items:center}.secret-cta span{font:700 10px/1 Inter,sans-serif;letter-spacing:.16em;color:#806b59}.secret-cta a{font-weight:800;font-size:13px;color:#d1b18f}

/* footer must visually merge into the page */
footer{background:transparent!important;border:0!important;box-shadow:none!important}
footer:before,footer:after{display:none!important}.legal{border-top-color:rgba(255,255,255,.035)!important}

.btn-primary:after,.discord-mega:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.10) 48%,transparent 61%);transform:translateX(-140%);transition:transform .65s ease;pointer-events:none}.btn-primary:hover:after,.discord-mega:hover:after{transform:translateX(140%)}

@media(max-width:760px){.battle-arena{padding:22px 16px;min-height:auto}.battle-stage{height:330px;grid-template-columns:.8fr 40px 1.2fr}.player-avatar{width:86px;height:86px}.player-avatar span{font-size:38px}.boss-side img{max-height:200px}.battle-actions{grid-template-columns:1fr}.secret-grid{grid-template-columns:1fr}.secret-card{min-height:210px}.secret-card strong{margin-top:35px}.secret-cta{align-items:flex-start;flex-direction:column}}
@media(pointer:coarse){.cursor-aura{display:none}}
@media(prefers-reduced-motion:reduce){.battle-runes{animation:none}.logo-ring{display:none}.cursor-aura{display:none}}


/* ===== V16 OVERRIDES ===== */
.hero-content{padding-top:58px}
.logo-stage{width:min(520px,62vw);margin:16px auto 26px;cursor:pointer;transform-style:preserve-3d;perspective:1200px;isolation:isolate}
.hero-logo{display:block;width:100%;height:auto;object-fit:contain;image-rendering:auto;transform:translateZ(0);filter:drop-shadow(0 24px 34px rgba(0,0,0,.55))}
.hero-title{margin-top:4px}
.logo-stage.awakening .hero-logo{animation:logoAwake 1.2s ease-in-out infinite alternate}
.logo-stage.portal-open .hero-logo{animation:logoPortal .7s ease-in-out infinite alternate}
@keyframes logoAwake{0%{transform:translateY(0) scale(1)}100%{transform:translateY(-4px) scale(1.018)}}
@keyframes logoPortal{0%{transform:scale(1)}100%{transform:scale(1.028) rotate(-.4deg)}}
.logo-secret-hint{position:absolute;left:50%;bottom:-20px;transform:translateX(-50%);padding:7px 12px;border:1px solid rgba(208,169,126,.16);background:rgba(11,9,8,.72);font:700 10px/1 Inter,sans-serif;letter-spacing:.14em;color:#c9ab8e;opacity:0;transition:.25s;pointer-events:none;white-space:nowrap}
.logo-secret-hint.show{opacity:1;bottom:-10px}
.logo-press-meter{position:absolute;left:50%;bottom:-28px;transform:translateX(-50%);width:150px;height:4px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;opacity:0;transition:.2s}
.logo-press-meter.show{opacity:1}
.logo-press-meter:before{content:'';display:block;height:100%;width:calc(var(--meter,0) * 12.5%);background:linear-gradient(90deg,#8f6546,#e2c09d);transition:width .14s ease}
.server-eyebrow{font-family:Inter,system-ui,sans-serif!important;gap:12px;display:flex;align-items:center;justify-content:center}
.server-eyebrow strong{font:800 13px/1 Inter,system-ui,sans-serif!important;letter-spacing:.08em!important;color:#f4dfc7}
.server-eyebrow b{font:700 10px/1 Inter,system-ui,sans-serif!important;letter-spacing:.05em!important;color:#c9a789;padding:6px 8px;border-radius:4px;background:rgba(141,96,59,.10);border:1px solid rgba(205,168,126,.18)}

/* hide deprecated visible secret section */
.secret-zone{display:none!important}

/* premium command palette */
.command-palette{position:fixed;inset:0;z-index:230;display:grid;place-items:center;background:rgba(5,4,3,.72);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}
.command-palette.open{opacity:1;visibility:visible}
.command-panel{width:min(560px,92vw);padding:18px;border:1px solid rgba(201,163,126,.2);background:rgba(16,12,10,.96);box-shadow:0 28px 80px rgba(0,0,0,.48)}
.command-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:4px 2px 14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}
.command-head span{font:700 11px/1 Inter,sans-serif;letter-spacing:.18em;color:#d8b491}.command-head b{font:600 10px/1 Inter,sans-serif;color:#8b7c70}
.command-panel button{width:100%;display:block;text-align:left;padding:14px 16px;margin-top:8px;border:1px solid rgba(255,255,255,.06);background:rgba(31,24,20,.65);color:#ece3d9;cursor:pointer;transition:.18s}
.command-panel button:hover{background:rgba(67,48,34,.68);border-color:rgba(208,169,126,.28);transform:translateY(-1px)}
.command-panel strong{display:block;font-size:14px}.command-panel small{display:block;margin-top:4px;color:#9a8f87;font-size:11px}

/* battle v16 */
.battle-overlay{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:24px;background:rgba(4,3,2,.82);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.3s}
.battle-overlay.open{opacity:1;visibility:visible}
.battle-panel{position:relative;width:min(1120px,96vw);padding:18px 18px 16px;border:1px solid rgba(209,170,129,.22);background:linear-gradient(180deg,rgba(18,14,11,.97),rgba(10,8,6,.96));box-shadow:0 30px 90px rgba(0,0,0,.62)}
.battle-close,.vault-close{position:absolute;right:14px;top:14px;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(19,15,12,.88);color:#c9b7a3;cursor:pointer;z-index:4}
.battle-panel-head{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:end;margin-bottom:14px;padding-right:44px}.battle-panel-head span{grid-column:1/-1;font:700 10px/1 Inter,sans-serif;letter-spacing:.17em;color:#c6a786}.battle-panel-head strong{font-size:22px;letter-spacing:-.03em}.battle-panel-head b{font:700 12px/1 Inter,sans-serif;color:#8f7b69}
.battle-stage{position:relative;height:min(54vh,460px);overflow:hidden;border:1px solid rgba(255,255,255,.06);background:#0d0b09}
.battle-stage-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.96) brightness(.86)}
.battle-stage-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.06) 42%,rgba(0,0,0,.38));box-shadow:inset 0 -130px 120px rgba(0,0,0,.42)}
.fighter{position:absolute;bottom:28px;width:320px;height:360px;z-index:2;pointer-events:none}
.fighter-player{left:4%}.fighter-boss{right:4%}
.fighter-shadow{position:absolute;left:50%;bottom:10px;width:160px;height:32px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,.50),transparent 72%)}
.sprite{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:310px;height:auto;image-rendering:pixelated;filter:drop-shadow(0 14px 24px rgba(0,0,0,.42));user-select:none}
.sprite-attack{opacity:0}
.fighter.idle{animation:idleBob 2.4s ease-in-out infinite}
@keyframes idleBob{50%{transform:translateY(-7px)}}
.fighter.attacking .sprite-idle{opacity:0}.fighter.attacking .sprite-attack{opacity:1}
.fighter.attacking{animation:attackStep .55s ease}.fighter.hit{animation:hitShake .45s ease}.fighter.guard .sprite-idle{filter:brightness(1.05) drop-shadow(0 0 16px rgba(223,188,138,.12))}
@keyframes attackStep{0%{transform:translateX(0)}40%{transform:translateX(var(--step,32px)) scale(1.02)}100%{transform:translateX(0)}}
@keyframes hitShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px)}50%{transform:translateX(8px);filter:brightness(1.3)}80%{transform:translateX(-4px)}}
.fighter-player{--step:48px}.fighter-boss{--step:-48px}
.pixel-slash{position:absolute;top:50%;width:240px;height:14px;opacity:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,246,219,.95) 35%,rgba(236,148,69,.95) 62%,transparent);filter:drop-shadow(0 0 18px rgba(238,141,57,.45))}
.player-slash{left:32%;transform:rotate(-18deg) scaleX(.15)}.boss-slash{right:30%;transform:rotate(18deg) scaleX(.15)}
.battle-stage.show-player-slash .player-slash{animation:slashFx .45s ease-out}.battle-stage.show-boss-slash .boss-slash{animation:slashFxBoss .45s ease-out}
@keyframes slashFx{0%{opacity:0;transform:translateX(-90px) rotate(-18deg) scaleX(.15)}30%{opacity:1}100%{opacity:0;transform:translateX(110px) rotate(-18deg) scaleX(1)}}
@keyframes slashFxBoss{0%{opacity:0;transform:translateX(90px) rotate(18deg) scaleX(.15)}30%{opacity:1}100%{opacity:0;transform:translateX(-110px) rotate(18deg) scaleX(1)}}
.floating-dmg{position:absolute;left:50%;top:72px;transform:translateX(-50%);font:800 24px/1 'Pixelify Sans',monospace;color:#fff1dc;text-shadow:0 2px 0 rgba(0,0,0,.65);opacity:0;pointer-events:none;z-index:4}
.floating-dmg.show{animation:floatDmg .9s ease forwards}
.floating-dmg.block{color:#d4d9b4}.floating-dmg.heavy{color:#ffb473}.floating-dmg.crit{color:#ffd998}
@keyframes floatDmg{0%{opacity:0;transform:translate(-50%,18px) scale(.7)}20%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-42px) scale(1.04)}}
.battle-hud{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:14px;margin-top:14px;align-items:start}.hud-card{padding:14px;border:1px solid rgba(255,255,255,.06);background:rgba(24,18,14,.62)}.hud-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.hud-top span{font:700 10px/1 Inter,sans-serif;letter-spacing:.16em;color:#9b866f}.hud-top b{font:700 10px/1 Inter,sans-serif;color:#d2bc9f}.hud-card strong{display:block;font-size:18px;margin-bottom:10px}.hpbar{height:10px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(255,255,255,.05)}.hpbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#b27647,#e0c3a0)}.hpbar.boss i{background:linear-gradient(90deg,#8d5135,#d99867)}.hud-card small{display:block;margin-top:8px;color:#8b8078;font-size:11px}.hud-center{display:grid;gap:10px;align-content:start}.hud-vs{display:grid;place-items:center;height:48px;border:1px solid rgba(255,255,255,.06);background:rgba(25,19,15,.65);font:800 20px/1 'Pixelify Sans',monospace;color:#dcc0a1}.charge-box{padding:12px;border:1px solid rgba(255,255,255,.06);background:rgba(25,19,15,.65);font:700 11px/1 Inter,sans-serif;color:#9f8e81;letter-spacing:.11em}.charge-box b{float:right;color:#e8d5c1}
.battle-log{min-height:66px;padding:14px;border:1px solid rgba(255,255,255,.06);background:rgba(25,19,15,.65);font-size:13px;line-height:1.55;color:#cbbfb4}
.battle-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.battle-actions button{padding:15px 16px;border:1px solid rgba(255,255,255,.07);background:rgba(32,24,19,.74);color:#ece2d7;text-align:left;cursor:pointer;transition:.18s}.battle-actions button:hover{transform:translateY(-1px);background:rgba(74,52,37,.74);border-color:rgba(209,170,129,.26)}.battle-actions button:disabled{opacity:.4;cursor:not-allowed;transform:none}.battle-actions b{display:block;font-size:14px}.battle-actions span{display:block;margin-top:5px;font-size:11px;color:#978a80}.battle-keyhint{text-align:center;margin-top:11px;color:#766c63;font-size:10px}.battle-result{display:none;margin-top:14px;padding:14px;border:1px solid rgba(206,167,128,.18);background:rgba(24,19,14,.8);text-align:center}.battle-result.show{display:block}.battle-result strong{display:block;font-size:18px;margin-bottom:6px}.battle-result span{display:block;color:#a89b91;font-size:12px;margin-bottom:12px}.battle-result .result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.battle-result .result-actions button,.battle-result .result-actions a{height:42px;padding:0 16px;border:1px solid rgba(205,168,126,.24);background:rgba(81,57,38,.72);display:inline-flex;align-items:center;color:#f0e3d6;cursor:pointer}

/* secret vault overlay */
.secret-vault-overlay{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:24px;background:rgba(4,3,2,.86);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.28s}.secret-vault-overlay.open{opacity:1;visibility:visible}.vault-panel{position:relative;width:min(1080px,95vw);max-height:90vh;overflow:auto;padding:28px;border:1px solid rgba(207,168,129,.22);background:linear-gradient(180deg,rgba(18,14,11,.98),rgba(9,7,6,.97));box-shadow:0 32px 100px rgba(0,0,0,.62)}.vault-panel h2{font-size:clamp(44px,5vw,72px);line-height:.94;letter-spacing:-.06em;margin:8px 0 0}.vault-panel h2 span{color:#b8997d}.vault-lead{max-width:760px;margin:22px 0 30px;color:#b0a499;line-height:1.7}.vault-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.vault-card{position:relative;overflow:hidden;min-height:250px;padding:22px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(30,22,17,.80),rgba(12,10,8,.56))}.vault-card:after{content:'';position:absolute;inset:-35%;background:linear-gradient(110deg,transparent 40%,rgba(255,236,214,.05) 50%,transparent 60%);transform:translateX(-45%);transition:.7s}.vault-card:hover:after{transform:translateX(45%)}.vault-card span{font:700 10px/1 Inter,sans-serif;letter-spacing:.16em;color:#826d5c}.vault-card strong{display:block;margin-top:58px;font-size:18px}.vault-card p{margin-top:10px;color:#9f948b;font-size:12px;line-height:1.75}.vault-actions{margin-top:22px}.discord-mega.mini{height:84px}

/* mobile */
@media (max-width:900px){
  .logo-stage{width:min(520px,92vw);margin:12px auto 24px}
  .battle-panel{padding:16px}
  .battle-stage{height:380px}
  .fighter{width:230px;height:280px}.sprite{width:220px}
  .battle-hud{grid-template-columns:1fr;gap:10px}
  .vault-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .battle-stage{height:300px}
  .fighter{width:170px;height:220px;bottom:18px}.fighter-player{left:0}.fighter-boss{right:0}.sprite{width:170px}
  .battle-actions{grid-template-columns:1fr}
  .vault-panel h2{font-size:36px}
  .command-head{display:block}.command-head b{display:block;margin-top:8px}
  .server-eyebrow strong{font-size:12px!important}
}


/* ===== V17 refinement ===== */
.site-header{grid-template-columns:120px 1fr 190px 38px 46px}
.quick-btn{grid-column:4;justify-self:end;width:32px;height:32px;border:1px solid rgba(203,164,125,.18);background:rgba(20,15,12,.55);color:#9f8d7b;font:800 11px/1 Inter,sans-serif;cursor:pointer;transition:.2s}
.quick-btn:hover{color:#ead6c0;border-color:rgba(203,164,125,.35);background:rgba(58,41,30,.55)}
.menu-btn{grid-column:5}
.logo-stage{width:min(500px,60vw);margin:14px auto 20px}
.hero-logo{filter:drop-shadow(0 22px 32px rgba(0,0,0,.46));object-fit:contain}
.crystal-glow{width:54%;height:44%;opacity:.72}
.logo-stage.awakening .hero-logo{filter:drop-shadow(0 22px 32px rgba(0,0,0,.48)) drop-shadow(0 0 20px rgba(210,139,72,.14))}
.hero-content{width:min(1040px,94vw);padding-top:72px}
.hero-title{font-size:clamp(36px,4.5vw,66px)}
.intent-box{padding:12px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(31,23,18,.78),rgba(22,17,14,.72));display:flex;justify-content:space-between;gap:16px;align-items:center}.intent-box span{font:700 9px/1 Inter,sans-serif;letter-spacing:.14em;color:#8d7d70}.intent-box b{font:800 11px/1 'Pixelify Sans',monospace;color:#e1c09e;text-align:right}.intent-box.heavy b{color:#f0a06c}.intent-box.hex b{color:#bda0d4}.intent-box.slash b{color:#dfc3a5}
.combo-meter{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.05);font:700 9px/1 Inter,sans-serif;letter-spacing:.12em;color:#76695e}.combo-meter b{color:#d5b28d;font-size:11px}
.battle-panel{image-rendering:auto}.battle-stage-bg,.sprite{image-rendering:pixelated}
.battle-stage:after{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px);mix-blend-mode:overlay;opacity:.24}
.battle-actions button{position:relative;overflow:hidden}.battle-actions button:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#8f6648;opacity:.55}.battle-actions button:nth-child(2):before{background:#879276}.battle-actions button:nth-child(3):before{background:#87699a}
.battle-actions button:active{transform:translateY(1px) scale(.995)}
.battle-stage.boss-heavy{animation:arenaWarning .42s ease-in-out 2}.battle-stage.boss-hex:before{content:'';position:absolute;inset:0;z-index:4;background:radial-gradient(circle at 75% 55%,rgba(118,73,155,.18),transparent 28%);animation:hexPulse .75s ease-in-out 2;pointer-events:none}
@keyframes arenaWarning{50%{box-shadow:inset 0 0 80px rgba(220,92,40,.18)}}@keyframes hexPulse{50%{opacity:.25}}
.fighter-boss.enraged .sprite{filter:drop-shadow(0 14px 24px rgba(0,0,0,.42)) drop-shadow(0 0 12px rgba(218,72,45,.3));animation:bossRage .28s ease-in-out infinite alternate}@keyframes bossRage{to{transform:translateX(-50%) translateY(-3px)}}
.vault-panel:before{content:'ACCESS GRANTED';position:absolute;right:68px;top:22px;font:800 9px/1 Inter,sans-serif;letter-spacing:.18em;color:#806c5b;border:1px solid rgba(207,168,129,.12);padding:7px 9px}
@media (max-width:900px){.site-header{grid-template-columns:1fr 36px auto}.header-spacer{display:block}.quick-btn{grid-column:2}.menu-btn{grid-column:3}.logo-stage{width:min(500px,90vw)}}
@media (max-width:560px){.quick-btn{display:none}.site-header{grid-template-columns:1fr auto}.menu-btn{grid-column:2}.logo-stage{width:92vw}.hero-content{padding-top:64px}}


/* ===== V18 Battle redesign: simpler, epic, VFX-heavy ===== */
.battle-overlay{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 50%,rgba(120,66,32,.12),rgba(0,0,0,.88) 65%);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.3s}
.battle-overlay.open{opacity:1;visibility:visible}
.battle-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(214,116,44,.12),transparent 26%),radial-gradient(circle at 50% 50%,transparent 24%,rgba(0,0,0,.72) 88%)}
.battle-cinematic{position:relative;width:min(1180px,96vw);padding:16px 18px 14px;border:1px solid rgba(208,168,126,.20);background:linear-gradient(180deg,rgba(13,10,8,.96),rgba(7,6,5,.98));box-shadow:0 30px 120px rgba(0,0,0,.62), inset 0 0 0 1px rgba(255,255,255,.02)}
.battle-cinematic:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.02),transparent);opacity:.45;pointer-events:none}
.battle-close{position:absolute;top:14px;right:14px;z-index:6;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(17,14,11,.92);color:#cdb9a4;font-size:26px;cursor:pointer;transition:.2s}
.battle-close:hover{background:rgba(60,39,26,.95);color:#fff2df}
.battle-headline{position:relative;z-index:4;display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:end;padding:0 52px 10px 0}
.battle-headline span{grid-column:1/-1;font:700 10px/1 Inter,sans-serif;letter-spacing:.19em;color:#b99876}
.battle-headline strong{font-size:22px;letter-spacing:-.03em;color:#f2e7db}
.battle-headline b{font:700 12px/1 Inter,sans-serif;color:#9f856d}
.battle-stage{position:relative;height:min(64vh,660px);min-height:530px;overflow:hidden;border:1px solid rgba(255,255,255,.06);background:#0e0b09;isolation:isolate}
.battle-stage:after{content:"";position:absolute;inset:auto 0 0 0;height:34%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.52));pointer-events:none;z-index:2}
.battle-stage-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(1.02)}
.battle-stage-overlay{position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(255,173,87,.08),transparent 24%),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.02) 35%,rgba(0,0,0,.30) 100%);z-index:1}
.battle-stage-vfx{position:absolute;inset:0;pointer-events:none;z-index:1}
.vfx-glow{background:radial-gradient(circle at 50% 56%,rgba(199,112,52,.10),transparent 28%),radial-gradient(circle at 22% 58%,rgba(255,131,52,.10),transparent 18%),radial-gradient(circle at 80% 54%,rgba(197,96,44,.10),transparent 18%);filter:blur(8px)}
.vfx-runes{background:radial-gradient(circle at 50% 56%,transparent 0 17%,rgba(192,111,55,.10) 17.2% 17.6%,transparent 17.8%),radial-gradient(circle at 50% 56%,transparent 0 27%,rgba(192,111,55,.08) 27.2% 27.5%,transparent 27.7%);animation:spinRunes 18s linear infinite;opacity:.55}
@keyframes spinRunes{to{transform:rotate(360deg)}}
.vfx-embers{background:radial-gradient(circle,rgba(255,127,50,.22) 0 1px,transparent 1.5px) 0 0/160px 160px,radial-gradient(circle,rgba(255,192,122,.10) 0 1px,transparent 1.5px) 60px 40px/210px 210px;animation:ashDrift 24s linear infinite;opacity:.26}
.arena-hud{position:absolute;top:18px;z-index:3;width:min(320px,30%);padding:14px 16px 12px;background:linear-gradient(180deg,rgba(14,11,9,.74),rgba(14,11,9,.32));border:1px solid rgba(220,175,131,.10);backdrop-filter:blur(5px)}
.arena-hud-player{left:18px}.arena-hud-boss{right:18px}
.arena-kicker{font:700 10px/1 Inter,sans-serif;letter-spacing:.18em;color:#a28469;margin-bottom:7px}
.arena-name{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:28px;font-weight:900;line-height:.95;letter-spacing:-.03em;color:#f1e5d8;text-shadow:0 4px 16px rgba(0,0,0,.35)}
.arena-name em{font:700 11px/1 Inter,sans-serif;letter-spacing:.14em;color:#d7bf9e;font-style:normal;white-space:nowrap}
.hpbar{height:12px;margin-top:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.06);overflow:hidden}.hpbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#a16238,#f1d0aa)}.hpbar-boss i{background:linear-gradient(90deg,#81462f,#e7a97d)}
.arena-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font:600 11px/1 Inter,sans-serif;color:#9e8f84}.arena-meta b{color:#efcc9c}.arena-meta small{font-size:11px}
.stage-center-ui{position:absolute;left:50%;top:28px;transform:translateX(-50%);display:grid;gap:10px;z-index:3;width:min(330px,46vw)}
.center-chip{padding:11px 14px;background:linear-gradient(180deg,rgba(17,13,10,.84),rgba(17,13,10,.48));border:1px solid rgba(220,175,131,.10);text-align:center;font:700 11px/1 Inter,sans-serif;letter-spacing:.16em;color:#b4a294;backdrop-filter:blur(5px)}
.center-chip b{display:block;margin-top:6px;font-size:16px;letter-spacing:.03em;color:#f0e2d0}
.intent-pill{transition:.2s}.intent-pill span{display:block;font-size:10px;color:#998576;margin-bottom:6px}.intent-pill.slash{box-shadow:0 0 0 1px rgba(151,107,74,.12) inset}.intent-pill.heavy{box-shadow:0 0 18px rgba(221,128,66,.18),0 0 0 1px rgba(221,128,66,.12) inset}.intent-pill.hex{box-shadow:0 0 18px rgba(170,107,196,.18),0 0 0 1px rgba(170,107,196,.12) inset}.intent-pill.hex b{color:#ceb4df}.intent-pill.heavy b{color:#ffd2a7}
.fighter{position:absolute;bottom:46px;width:34%;max-width:390px;min-width:220px;height:68%;z-index:3;pointer-events:none;transform-origin:bottom center}
.fighter-player{left:1.5%}.fighter-boss{right:1.5%}
.fighter-aura{position:absolute;left:50%;bottom:56px;width:65%;height:65%;transform:translateX(-50%);background:radial-gradient(circle,rgba(233,132,58,.18),transparent 60%);filter:blur(26px);opacity:.72;animation:auraPulse 2.6s ease-in-out infinite}
.fighter-boss .fighter-aura{background:radial-gradient(circle,rgba(180,88,48,.20),transparent 60%)}
@keyframes auraPulse{50%{transform:translateX(-50%) scale(1.08);opacity:.95}}
.fighter-shadow{position:absolute;left:50%;bottom:18px;width:170px;height:34px;transform:translateX(-50%);background:radial-gradient(circle,rgba(0,0,0,.56),transparent 72%);border-radius:50%}
.sprite{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:100%;max-width:370px;height:auto;image-rendering:pixelated;filter:drop-shadow(0 18px 36px rgba(0,0,0,.46));user-select:none}
.sprite-attack{opacity:0}.fighter.idle{animation:idleBob 2.6s ease-in-out infinite}@keyframes idleBob{50%{transform:translateY(-6px)}}
.fighter.attacking .sprite-idle{opacity:0}.fighter.attacking .sprite-attack{opacity:1}.fighter.hit{animation:hitShake .42s ease}.fighter.enraged .fighter-aura{background:radial-gradient(circle,rgba(255,94,50,.32),transparent 58%)}.fighter.guard .fighter-aura{background:radial-gradient(circle,rgba(255,224,180,.20),transparent 58%)}
@keyframes hitShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-12px)}52%{transform:translateX(9px) scale(1.02)}80%{transform:translateX(-5px)}}
.fighter-player.attacking{animation:dashPlayer .48s ease}.fighter-boss.attacking{animation:dashBoss .48s ease}@keyframes dashPlayer{0%{transform:translateX(0)}42%{transform:translateX(40px) scale(1.02)}100%{transform:translateX(0)}}@keyframes dashBoss{0%{transform:translateX(0)}42%{transform:translateX(-40px) scale(1.02)}100%{transform:translateX(0)}}
.floating-dmg{position:absolute;left:50%;top:16%;transform:translateX(-50%);font:800 28px/1 'Pixelify Sans',monospace;color:#fff1dc;text-shadow:0 3px 0 rgba(0,0,0,.75),0 0 18px rgba(255,165,88,.24);opacity:0;pointer-events:none;z-index:5}.floating-dmg.show{animation:floatDmg .9s ease forwards}.floating-dmg.block{color:#d7e0c1}.floating-dmg.heavy{color:#ffb97f}.floating-dmg.crit{color:#ffe6ab}
@keyframes floatDmg{0%{opacity:0;transform:translate(-50%,18px) scale(.7)}16%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-48px) scale(1.03)}}
.pixel-slash{position:absolute;top:48%;width:32%;height:16px;opacity:0;z-index:4;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,246,214,.98) 28%,rgba(255,161,84,.98) 60%,transparent);filter:drop-shadow(0 0 18px rgba(255,136,47,.48)) drop-shadow(0 0 36px rgba(255,188,126,.12))}
.player-slash{left:28%;transform:rotate(-18deg) scaleX(.1)}.boss-slash{right:28%;transform:rotate(18deg) scaleX(.1)}
.battle-stage.show-player-slash .player-slash{animation:slashFx .40s ease-out}.battle-stage.show-boss-slash .boss-slash{animation:slashFxBoss .40s ease-out}
@keyframes slashFx{0%{opacity:0;transform:translateX(-70px) rotate(-18deg) scaleX(.1)}18%{opacity:1}100%{opacity:0;transform:translateX(94px) rotate(-18deg) scaleX(1)}}
@keyframes slashFxBoss{0%{opacity:0;transform:translateX(70px) rotate(18deg) scaleX(.1)}18%{opacity:1}100%{opacity:0;transform:translateX(-94px) rotate(18deg) scaleX(1)}}
.battle-stage.show-player-slash,.battle-stage.show-boss-slash{animation:stageFlash .36s ease}.battle-stage.boss-heavy{animation:heavyImpact .55s ease}.battle-stage.boss-hex .vfx-runes{filter:hue-rotate(44deg) saturate(1.25);opacity:.78}
@keyframes stageFlash{0%{filter:brightness(1)}18%{filter:brightness(1.28)}100%{filter:brightness(1)}}@keyframes heavyImpact{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}45%{transform:translateX(8px)}70%{transform:translateX(-4px)}}
.battle-log-wrap{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:4;width:min(680px,86%)}
.battle-log{padding:15px 18px;background:linear-gradient(180deg,rgba(12,10,8,.86),rgba(12,10,8,.52));border:1px solid rgba(220,175,131,.10);text-align:center;color:#ece1d6;font-size:16px;line-height:1.45;backdrop-filter:blur(6px);box-shadow:0 10px 30px rgba(0,0,0,.22)}
.battle-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.battle-controls button{position:relative;overflow:hidden;min-height:74px;padding:16px 18px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(29,22,18,.82),rgba(18,14,11,.72));color:#efe4da;text-align:left;cursor:pointer;transition:.18s}.battle-controls button:before{content:"";position:absolute;inset:auto -30% 0 -30%;height:60%;background:radial-gradient(circle at center,rgba(255,162,89,.16),transparent 60%);opacity:0;transition:.2s}.battle-controls button:hover{transform:translateY(-2px);border-color:rgba(209,170,129,.26);background:linear-gradient(180deg,rgba(56,38,26,.92),rgba(27,20,16,.84))}.battle-controls button:hover:before{opacity:1}.battle-controls button:disabled{opacity:.36;cursor:not-allowed;transform:none}.battle-controls b{display:block;font-size:18px;letter-spacing:-.02em}.battle-controls span{display:block;margin-top:6px;font-size:12px;color:#a49488;line-height:1.45}
.battle-keyhint{text-align:center;margin-top:11px;color:#776b61;font-size:11px;letter-spacing:.03em}.battle-result{display:none;margin-top:14px;padding:18px;border:1px solid rgba(206,167,128,.18);background:linear-gradient(180deg,rgba(23,18,14,.92),rgba(16,13,10,.84));text-align:center}.battle-result.show{display:block}.battle-result strong{display:block;font-size:34px;line-height:.95;letter-spacing:-.04em;color:#f0e5da}.battle-result span{display:block;color:#a89b91;font-size:14px;margin:10px auto 16px;max-width:620px;line-height:1.6}.battle-result .result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.battle-result .result-actions button,.battle-result .result-actions a{height:48px;padding:0 18px;border:1px solid rgba(205,168,126,.24);background:linear-gradient(180deg,rgba(127,92,62,.88),rgba(87,61,40,.82));display:inline-flex;align-items:center;color:#f0e3d6;cursor:pointer;font-weight:700}

@media (max-width:980px){
  .battle-stage{min-height:650px;height:auto;padding-top:110px}
  .arena-hud{width:calc(50% - 26px)}
  .stage-center-ui{top:120px;width:min(360px,60vw)}
  .fighter{bottom:118px;height:52%;width:38%}
  .battle-log-wrap{bottom:110px}
}
@media (max-width:760px){
  .battle-cinematic{padding:14px}
  .battle-headline strong{font-size:19px}
  .battle-stage{min-height:690px}
  .arena-hud{width:calc(100% - 28px);left:14px!important;right:14px!important}
  .arena-hud-boss{top:114px}
  .stage-center-ui{top:208px;width:min(92%,360px)}
  .fighter{bottom:142px;height:40%;width:46%;min-width:140px}
  .fighter-player{left:-2%}.fighter-boss{right:-2%}
  .sprite{max-width:260px}
  .battle-log-wrap{bottom:126px;width:min(92%,640px)}
  .battle-controls{grid-template-columns:1fr}
}
@media (max-width:520px){
  .battle-overlay{padding:10px}
  .battle-stage{min-height:630px}
  .arena-name{font-size:22px}
  .stage-center-ui{top:190px}
  .fighter{bottom:150px;width:50%}
  .sprite{max-width:200px}
  .battle-log{font-size:14px;padding:12px 14px}
}


/* ===== V19 fixes + sigil gate + combat polish ===== */
.discord-mega{overflow:hidden}
.discord-mega:after{will-change:transform}

.battle-stage.phase-two .vfx-glow{background:radial-gradient(circle at 50% 56%,rgba(224,88,44,.22),transparent 30%),radial-gradient(circle at 18% 54%,rgba(255,152,72,.14),transparent 18%),radial-gradient(circle at 82% 52%,rgba(181,76,135,.16),transparent 18%);filter:blur(10px)}
.battle-stage.phase-two .vfx-runes{filter:hue-rotate(42deg) saturate(1.3);opacity:.82}
.battle-stage.phase-two .fighter-boss .fighter-aura{background:radial-gradient(circle,rgba(236,91,52,.36),transparent 58%)}
.battle-stage.phase-two:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,117,57,.08),transparent 30%);animation:phasePulse 1.8s ease-in-out infinite;pointer-events:none;z-index:2}
@keyframes phasePulse{50%{opacity:.35;transform:scale(1.02)}}
.battle-stage.storm-cast .vfx-runes{opacity:1;filter:hue-rotate(58deg) saturate(1.5)}
.battle-stage.storm-cast .vfx-embers{opacity:.45}
.battle-stage.hit-stop{animation:hitStop .12s linear}@keyframes hitStop{50%{transform:scale(1.008)}}
.battle-result strong{font-size:38px}
.battle-result .auto-note{display:block;margin-top:10px;font-size:11px;color:#9e8e80;letter-spacing:.04em}

.sigil-gate-overlay{position:fixed;inset:0;z-index:270;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.76);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:.3s}
.sigil-gate-overlay.open{opacity:1;visibility:visible}
.sigil-gate{position:relative;width:min(1120px,96vw);height:min(720px,88vh);overflow:hidden;border:1px solid rgba(214,170,123,.18);background:radial-gradient(circle at 50% 50%,rgba(129,67,34,.08),rgba(0,0,0,.72) 68%),linear-gradient(180deg,rgba(10,8,6,.98),rgba(6,5,4,.98));box-shadow:0 30px 100px rgba(0,0,0,.65)}
.gate-door{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(180deg,#2c2018,#120f0d);border-top:1px solid rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 0 80px rgba(0,0,0,.36);transition:transform .95s cubic-bezier(.2,.9,.2,1)}
.gate-door:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 58px),repeating-linear-gradient(180deg,rgba(255,255,255,.015) 0 1px,transparent 1px 86px),radial-gradient(circle at 50% 50%,rgba(185,111,62,.08),transparent 45%)}
.gate-left{left:0;transform:translateX(-102%)}
.gate-right{right:0;transform:translateX(102%)}
.sigil-gate-overlay.open .gate-left,.sigil-gate-overlay.open .gate-right{transform:none}
.sigil-gate-overlay.unlocked .gate-left{transform:translateX(-104%)}
.sigil-gate-overlay.unlocked .gate-right{transform:translateX(104%)}
.gate-seam{position:absolute;left:50%;top:0;bottom:0;width:1px;transform:translateX(-50%);background:linear-gradient(180deg,transparent,rgba(238,188,139,.5),transparent);box-shadow:0 0 18px rgba(240,181,126,.22);opacity:0;transition:opacity .3s ease .65s}.sigil-gate-overlay.open .gate-seam{opacity:1}.sigil-gate-overlay.unlocked .gate-seam{opacity:0}
.gate-smoke{position:absolute;inset:0;background:radial-gradient(circle at 50% 58%,rgba(255,156,82,.08),transparent 26%),radial-gradient(circle at 50% 55%,rgba(255,255,255,.06),transparent 10%),radial-gradient(circle at 50% 55%,transparent 0 18%,rgba(211,126,69,.08) 18.3% 18.6%,transparent 18.9%);filter:blur(8px);opacity:.66;animation:gateSmoke 8s linear infinite;pointer-events:none}
@keyframes gateSmoke{50%{transform:scale(1.04) translateY(-1%)}}
.gate-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:grid;justify-items:center;text-align:center;gap:10px;width:min(520px,84vw);padding:24px}
.gate-kicker{margin:0;font:700 11px/1 Inter,sans-serif;letter-spacing:.2em;color:#b99978}.gate-title{display:block;font-size:clamp(32px,4vw,58px);line-height:.92;letter-spacing:-.05em;color:#f2e7dc;text-shadow:0 0 22px rgba(220,150,101,.12)}.gate-copy{display:block;color:#b9aba0;line-height:1.55;max-width:420px;font-size:14px}
.gate-lock{margin-top:10px;width:124px;height:124px;border-radius:50%;border:1px solid rgba(214,170,123,.32);display:grid;place-items:center;gap:4px;background:radial-gradient(circle at 50% 40%,rgba(164,114,72,.95),rgba(95,66,44,.96) 58%,rgba(35,24,17,.98));box-shadow:0 0 0 8px rgba(255,255,255,.03),0 0 34px rgba(188,121,72,.26), inset 0 1px 0 rgba(255,255,255,.2);color:#fff0dc;cursor:pointer;transition:transform .18s,box-shadow .18s}
.gate-lock:hover{transform:scale(1.04);box-shadow:0 0 0 8px rgba(255,255,255,.03),0 0 48px rgba(228,147,87,.36), inset 0 1px 0 rgba(255,255,255,.2)}
.gate-lock .lock-icon{font-size:42px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}.gate-lock small{font:800 11px/1 Inter,sans-serif;letter-spacing:.18em}.gate-lock:disabled{opacity:.45;cursor:not-allowed;transform:none}
@media (max-width:700px){.gate-title{font-size:34px}.gate-lock{width:104px;height:104px}.gate-lock .lock-icon{font-size:34px}}


/* ===== V20 complete logo + medieval audio + outcome sequence ===== */
.discord-mega{overflow:hidden!important;isolation:isolate!important}
.discord-mega:after{clip-path:inset(0)!important}

.hero-logo{width:100%;height:auto;opacity:1!important;filter:drop-shadow(0 20px 30px rgba(0,0,0,.58))!important;mix-blend-mode:normal!important;mask-image:none!important;-webkit-mask-image:none!important}
.logo-stage{width:min(560px,66vw);margin:10px auto 22px}

.sound-toggle{grid-column:4;justify-self:end;height:38px;min-width:74px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(205,168,126,.16);background:rgba(18,14,11,.48);color:#9c8c7f;cursor:pointer;transition:.2s}
.sound-toggle span{font-size:16px;color:#c8a37f}.sound-toggle small{font:700 9px/1 Inter,sans-serif;letter-spacing:.12em}.sound-toggle:hover,.sound-toggle.on{border-color:rgba(218,174,130,.32);background:rgba(69,46,31,.48);color:#e5d3c0}.sound-toggle.on span{color:#e8c49c;text-shadow:0 0 12px rgba(221,152,91,.34)}

.battle-outcome{position:fixed;inset:0;z-index:268;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,rgba(120,66,34,.14),rgba(0,0,0,.90) 65%);opacity:0;visibility:hidden;transition:.25s;pointer-events:none}
.battle-outcome.show{opacity:1;visibility:visible}
.battle-outcome-inner{text-align:center;transform:scale(.92);opacity:0}
.battle-outcome.show .battle-outcome-inner{animation:outcomeIn .75s cubic-bezier(.18,.86,.3,1) forwards}
.battle-outcome span{display:block;font:700 11px/1 Inter,sans-serif;letter-spacing:.22em;color:#b99b7d;margin-bottom:18px}.battle-outcome strong{display:block;font-size:clamp(72px,11vw,170px);line-height:.78;letter-spacing:-.07em;color:#f4e6d7;text-shadow:0 12px 60px rgba(0,0,0,.55),0 0 40px rgba(222,153,92,.10)}.battle-outcome p{margin:26px 0 0;color:#b9ada3;font-size:15px}.battle-outcome.defeat strong{color:#cdb6a4}.battle-outcome.victory strong{background:linear-gradient(180deg,#fff4e7,#c9a37f);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes outcomeIn{0%{opacity:0;transform:scale(.72)}65%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}

.battle-stage.victory-burst:before{content:"";position:absolute;inset:0;z-index:6;background:radial-gradient(circle at 70% 55%,rgba(255,223,177,.48),rgba(222,120,58,.16) 18%,transparent 42%);animation:victoryBurst 1s ease-out forwards;pointer-events:none}.battle-stage.victory-burst .vfx-embers{opacity:.72}.battle-stage.victory-burst .fighter-boss{animation:bossCollapse 1s ease forwards}
@keyframes victoryBurst{0%{opacity:0;transform:scale(.55)}30%{opacity:1}100%{opacity:0;transform:scale(1.3)}}@keyframes bossCollapse{0%{filter:none;transform:translateY(0)}100%{filter:brightness(.35) saturate(.45);transform:translateY(18px) rotate(3deg);opacity:.42}}
.battle-stage.defeat-flash{animation:defeatFlash .85s ease forwards}@keyframes defeatFlash{0%{filter:none}25%{filter:saturate(.55) brightness(.65)}100%{filter:saturate(.3) brightness(.45)}}

.sigil-gate-overlay.open .gate-door{transition-duration:1.15s}.sigil-gate-overlay.open .gate-center{animation:gateCenterIn .8s .8s both}@keyframes gateCenterIn{from{opacity:0;transform:translate(-50%,-45%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* subtle dynamic site interactions */
.desktop-nav a,.mobile-nav a,.nav-cta,.btn,.discord-mega,.server-eyebrow,.sound-toggle{will-change:transform}
.desktop-nav a:hover,.mobile-nav a:hover{transform:translateY(-1px)}
.discord-mega:hover{box-shadow:inset 0 0 0 4px rgba(0,0,0,.25),0 24px 80px rgba(0,0,0,.42),0 0 36px rgba(176,113,68,.08)}
.server-eyebrow:hover{transform:translateY(-1px)}

@media(max-width:900px){.sound-toggle{grid-column:1;justify-self:start;min-width:38px;width:38px;padding:0}.sound-toggle small{display:none}.logo-stage{width:min(560px,92vw)}}

/* V20 header layout correction */
.site-header{grid-template-columns:120px 1fr 190px 38px 78px 46px!important}
.quick-btn{grid-column:4!important}.sound-toggle{grid-column:5!important}.menu-btn{grid-column:6!important}
.hero-logo{filter:brightness(1.04) contrast(1.06) saturate(1.05) drop-shadow(0 20px 30px rgba(0,0,0,.58))!important}
.logo-stage:before{content:"";position:absolute;inset:5% 2%;z-index:-1;background:radial-gradient(ellipse at center,rgba(19,15,12,.72),rgba(10,8,7,.24) 60%,transparent 82%);filter:blur(22px);pointer-events:none}
@media(max-width:900px){.site-header{grid-template-columns:1fr 36px 38px 46px!important}.quick-btn{grid-column:2!important}.sound-toggle{grid-column:3!important;justify-self:end}.menu-btn{grid-column:4!important}}
@media(max-width:560px){.quick-btn{display:none!important}.site-header{grid-template-columns:1fr 38px 46px!important}.sound-toggle{grid-column:2!important}.menu-btn{grid-column:3!important}}


/* ===== V21: combat UI medievale / semplice ===== */
.sound-toggle{display:none!important}
.battle-cinematic{border:2px solid #4b3424;background:linear-gradient(180deg,rgba(18,13,9,.98),rgba(8,6,5,.99));box-shadow:0 32px 110px rgba(0,0,0,.72),inset 0 0 0 3px rgba(0,0,0,.35),inset 0 0 0 4px rgba(177,126,79,.08)}
.battle-cinematic:after{content:"";position:absolute;inset:7px;pointer-events:none;border:1px solid rgba(206,160,111,.09);clip-path:polygon(0 0,38% 0,40% 3px,60% 3px,62% 0,100% 0,100% 100%,62% 100%,60% calc(100% - 3px),40% calc(100% - 3px),38% 100%,0 100%)}
.battle-headline span{color:#a98460}.battle-headline strong{font-family:'Pixelify Sans',Inter,sans-serif;font-weight:600;letter-spacing:.01em;color:#ead9c5}.battle-headline b{font-family:'Pixelify Sans',monospace;color:#b18a67}
.battle-stage{border:2px solid #33251b;box-shadow:inset 0 0 0 2px rgba(0,0,0,.35),inset 0 0 54px rgba(0,0,0,.25)}
.arena-hud{background:linear-gradient(180deg,rgba(30,21,15,.86),rgba(12,9,7,.74));border:1px solid rgba(184,134,87,.22);box-shadow:inset 0 0 0 2px rgba(0,0,0,.24);backdrop-filter:none}
.arena-kicker{font-family:'Pixelify Sans',monospace;color:#9b7655}.arena-name{font-family:'Pixelify Sans',Inter,sans-serif;font-size:24px;font-weight:600;letter-spacing:.01em}.arena-name em{font-family:'Pixelify Sans',monospace;font-size:10px}
.center-chip{background:linear-gradient(180deg,rgba(32,22,15,.90),rgba(14,10,8,.82));border:1px solid rgba(184,134,87,.20);box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);backdrop-filter:none;font-family:'Pixelify Sans',monospace;letter-spacing:.07em}
.center-chip b{font-family:'Pixelify Sans',monospace}.charge-pill{color:#c2a47f}
.intent-pill.heavy{animation:intentWarn .85s ease-in-out infinite alternate}.intent-pill.storm{animation:intentWarn .55s ease-in-out infinite alternate;background:linear-gradient(180deg,rgba(62,27,19,.94),rgba(20,10,8,.90))}
@keyframes intentWarn{to{box-shadow:0 0 24px rgba(234,121,54,.26),inset 0 0 0 1px rgba(230,139,76,.25)}}
.battle-log-wrap{bottom:18px;width:min(620px,82%)}.battle-log{font-family:'Pixelify Sans',Inter,sans-serif;font-size:14px;background:rgba(12,9,7,.83);border:1px solid rgba(177,128,82,.20);box-shadow:inset 0 0 0 2px rgba(0,0,0,.23)}
.battle-controls.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;margin:15px auto 0;gap:14px}.battle-controls.compact button{min-height:70px;padding:15px 20px;border:2px solid #3e2d21;background:linear-gradient(180deg,#342419,#19120d);box-shadow:inset 0 0 0 2px rgba(0,0,0,.28),0 8px 22px rgba(0,0,0,.16);font-family:'Pixelify Sans',Inter,sans-serif}.battle-controls.compact button:hover{background:linear-gradient(180deg,#543723,#24180f);border-color:#725035}.battle-controls.compact b{font-size:20px;font-weight:600;letter-spacing:.02em}.battle-controls.compact span{font-family:Inter,sans-serif;font-size:11px}.battle-keyhint{font-family:Inter,sans-serif;font-size:10px;color:#74675c}
.battle-result{display:none!important}
.battle-outcome{background:rgba(0,0,0,.91)}.battle-outcome-inner{padding:20px}.battle-outcome span,.battle-outcome p{display:none!important}.battle-outcome strong{font-family:'Pixelify Sans',Inter,sans-serif!important;font-size:clamp(88px,14vw,210px)!important;line-height:.75!important;letter-spacing:-.02em!important;text-shadow:0 8px 0 rgba(0,0,0,.35),0 0 70px rgba(209,127,65,.18)!important}.battle-outcome.defeat strong{color:#c9b6a1!important}.battle-outcome.victory strong{background:linear-gradient(180deg,#fff2dc,#c99461)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}

/* combat feels less UI-heavy */
.arena-meta small:last-child{opacity:.78}.hpbar{height:11px}.fighter-aura{opacity:.55}.vfx-runes{opacity:.35}.battle-stage.phase-two .vfx-runes{opacity:.65}
.battle-stage.parry-flash:before{content:"";position:absolute;inset:0;z-index:7;background:radial-gradient(circle at 28% 60%,rgba(255,235,193,.38),transparent 14%);animation:parryFlash .28s ease-out;pointer-events:none}@keyframes parryFlash{from{opacity:1}to{opacity:0}}
.battle-stage.auto-crystal:after{content:"";position:absolute;inset:0;z-index:7;background:radial-gradient(circle at 50% 52%,rgba(205,142,219,.30),transparent 26%);animation:crystalBurst .52s ease-out;pointer-events:none}@keyframes crystalBurst{0%{opacity:0;transform:scale(.85)}28%{opacity:1}100%{opacity:0;transform:scale(1.18)}}

/* gate transition keeps secret vault behind it, preventing home flash */
.secret-vault-overlay.preopen{opacity:1;visibility:visible;transition:none}
.sigil-gate-overlay.unlocked{background:rgba(0,0,0,.96)}
.sigil-gate-overlay.unlocked .gate-center{opacity:0;transform:translate(-50%,-50%) scale(.96);transition:.28s}

@media(max-width:720px){.battle-controls.compact{grid-template-columns:1fr}.battle-stage{min-height:650px}.arena-name{font-size:20px}.battle-log-wrap{width:90%}}


/* ===== V22 pixel VFX + battle polish ===== */
.charge-pill b.legend-ready{color:#ffd28b;text-shadow:0 0 16px rgba(255,176,81,.28)}
.battle-controls.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;margin:14px auto 0}.battle-controls.compact button{min-height:82px;border:2px solid #4a3526;background:linear-gradient(180deg,rgba(52,36,25,.96),rgba(24,17,13,.96));box-shadow:inset 0 0 0 1px rgba(255,214,169,.05),inset 0 -10px 0 rgba(0,0,0,.18)}.battle-controls.compact button:hover{border-color:#7b573c;background:linear-gradient(180deg,rgba(72,48,31,.98),rgba(29,20,15,.98))}.battle-controls.compact b{font-family:'Pixelify Sans',Inter,sans-serif;font-size:21px}.battle-controls.compact span{color:#c1a996;font-size:12px}
.battle-log{border:2px solid #3d2c21;background:linear-gradient(180deg,rgba(15,11,8,.90),rgba(12,9,7,.82));font-family:'Pixelify Sans',Inter,sans-serif;font-size:15px;letter-spacing:.01em}
.center-chip,.arena-hud{border:2px solid rgba(87,63,45,.85);box-shadow:inset 0 0 0 1px rgba(255,214,169,.04)}
.center-chip b,.arena-name{font-family:'Pixelify Sans',Inter,sans-serif}

.pixel-fire,.magic-shield,.legendary-burst{position:absolute;pointer-events:none;z-index:6;opacity:0}
.pixel-fire{top:49%;width:25%;height:120px;transform-origin:center center;image-rendering:pixelated;filter:drop-shadow(0 0 12px rgba(255,121,48,.20))}
.player-fire{left:23%;transform:translateY(-50%)}.boss-fire{right:23%;transform:translateY(-50%) scaleX(-1)}
.pixel-fire:before,.pixel-fire:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ffd48f 0 7px,#ff9d4d 7px 14px,#d45620 14px 21px,transparent 21px 28px),repeating-linear-gradient(90deg,transparent 0 16px,rgba(255,226,164,.88) 16px 26px,transparent 26px 40px);clip-path:polygon(0 56%,14% 38%,24% 42%,34% 22%,46% 30%,58% 8%,70% 26%,82% 14%,100% 42%,100% 68%,80% 62%,66% 84%,54% 66%,40% 86%,28% 70%,16% 92%,0 72%)}
.pixel-fire:after{filter:blur(5px);opacity:.6;transform:scale(1.08)}
.battle-stage.player-fire-cast .player-fire{animation:pixelFlameDash .56s steps(6) forwards}
.battle-stage.boss-fire-cast .boss-fire{animation:pixelFlameDashBoss .56s steps(6) forwards}
@keyframes pixelFlameDash{0%{opacity:0;transform:translate(-18px,-50%) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(72px,-50%) scale(1.18)}}
@keyframes pixelFlameDashBoss{0%{opacity:0;transform:translate(18px,-50%) scaleX(-1) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(-72px,-50%) scaleX(-1) scale(1.18)}}
.magic-shield{left:8%;bottom:94px;width:250px;height:250px;background:radial-gradient(circle,transparent 42%,rgba(111,208,255,.38) 42% 48%,rgba(214,245,255,.78) 48% 52%,transparent 52%),repeating-linear-gradient(0deg,transparent 0 12px,rgba(134,222,255,.18) 12px 14px),repeating-linear-gradient(90deg,transparent 0 12px,rgba(134,222,255,.18) 12px 14px);filter:drop-shadow(0 0 12px rgba(120,220,255,.35));transform:scale(.66);transform-origin:center;image-rendering:pixelated}
.battle-stage.guard-fx .player-shield{animation:shieldPop .56s steps(5) forwards}
@keyframes shieldPop{0%{opacity:0;transform:scale(.44)}24%{opacity:1}100%{opacity:0;transform:scale(1.08)}}
.legendary-burst{left:50%;top:51%;width:64%;height:62%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,225,172,.72) 0 8%,rgba(255,154,80,.54) 8% 16%,rgba(189,78,36,.32) 16% 28%,transparent 28%),repeating-linear-gradient(0deg,transparent 0 14px,rgba(255,220,162,.16) 14px 17px),repeating-linear-gradient(90deg,transparent 0 14px,rgba(255,220,162,.16) 14px 17px);clip-path:polygon(50% 0,59% 17%,79% 7%,70% 28%,100% 36%,76% 49%,100% 64%,70% 70%,79% 94%,56% 81%,50% 100%,44% 81%,21% 94%,30% 70%,0 64%,24% 49%,0 36%,30% 28%,21% 7%,41% 17%);filter:drop-shadow(0 0 26px rgba(255,156,76,.48))}
.battle-stage.legendary-cast .legendary-burst{animation:legendaryBurst 1s steps(8) forwards}.battle-stage.legendary-cast{animation:legendaryShake .62s ease}
@keyframes legendaryBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.36)}24%{opacity:1}58%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.28)}}
@keyframes legendaryShake{0%,100%{transform:none}16%{transform:translateX(-8px)}32%{transform:translateX(8px)}48%{transform:translateX(-4px)}64%{transform:translateX(4px)}}
.battle-stage.legendary-cast .vfx-runes{opacity:1;filter:hue-rotate(-14deg) saturate(1.5)}
.battle-stage.legendary-cast .fighter-player .fighter-aura{background:radial-gradient(circle,rgba(255,143,56,.34),transparent 58%)}
.battle-stage.phase-two .battle-log{border-color:#613626}
.player-slash,.boss-slash{height:18px}
.battle-stage.show-player-slash .player-slash,.battle-stage.show-boss-slash .boss-slash{filter:drop-shadow(0 0 20px rgba(255,136,47,.62)) drop-shadow(0 0 36px rgba(255,188,126,.22))}
.floating-dmg.crit{color:#ffe5ac;text-shadow:0 3px 0 rgba(0,0,0,.8),0 0 18px rgba(255,178,88,.34)}
.battle-stage.perfect-parry .vfx-runes{filter:hue-rotate(150deg) saturate(1.3);opacity:.85}
.battle-stage.perfect-parry:before{content:"";position:absolute;inset:0;z-index:6;background:radial-gradient(circle at 28% 60%,rgba(165,242,255,.32),transparent 16%);animation:parryFlash .36s ease-out;pointer-events:none}
.battle-stage.boss-stagger .fighter-boss{animation:bossHit .46s ease}.battle-stage.boss-stagger .fighter-boss .fighter-aura{background:radial-gradient(circle,rgba(255,120,52,.28),transparent 58%)}
@media (max-width:760px){.battle-controls.compact{grid-template-columns:1fr}.magic-shield{left:50%;bottom:150px;transform:translateX(-50%) scale(.54);width:190px;height:190px}.player-fire{left:14%}.boss-fire{right:14%}}


/* ===== V23 pixel-art gate redesign ===== */
.sigil-gate{background:
  linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.46)),
  radial-gradient(circle at 50% 45%,rgba(139,78,40,.10),transparent 28%),
  #070605;
  image-rendering:pixelated;
}
.gate-door{
  width:50%;
  background:
    linear-gradient(180deg,#261a12 0%,#1a120d 52%,#100c09 100%);
  border-top:none;
  box-shadow:
    inset 0 0 0 4px #0a0806,
    inset 0 0 0 8px #3c2a1e,
    inset 0 0 0 12px #120d0a,
    inset 0 0 0 16px #5d3f2a,
    inset 0 0 0 20px #1a120d,
    inset 0 0 42px rgba(0,0,0,.45);
}
.gate-door:before,
.gate-door:after{content:"";position:absolute;inset:24px}
.gate-door:before{
  background:
    repeating-linear-gradient(90deg,
      #4d3422 0 30px,
      #3b291c 30px 34px,
      #2a1d15 34px 64px,
      #211711 64px 68px),
    repeating-linear-gradient(180deg,
      transparent 0 104px,
      rgba(0,0,0,.28) 104px 112px),
    linear-gradient(180deg,rgba(255,218,164,.06),transparent 18%,transparent 82%,rgba(0,0,0,.18));
  box-shadow:
    inset 0 0 0 4px #20150f,
    inset 0 0 0 8px #6c4a31,
    inset 0 0 0 12px #2a1c13,
    0 0 0 4px #120d0a;
}
.gate-door:after{
  inset:52px 52px 52px auto;
  width:18px;
  background:repeating-linear-gradient(180deg,#a6784f 0 16px,#5c3f28 16px 22px,#2f2117 22px 34px);
  box-shadow:
    0 0 0 4px #241811,
    0 0 0 8px #6f4b30,
    0 0 18px rgba(0,0,0,.2);
}
.gate-left:after{right:34px}
.gate-right:after{left:34px;right:auto}
.gate-seam{
  width:10px;
  background:repeating-linear-gradient(180deg,#7d5636 0 18px,#1a120c 18px 28px);
  box-shadow:0 0 0 4px #130d09,0 0 0 8px #3c2a1e,0 0 22px rgba(240,181,126,.12);
}
.gate-smoke{
  background:
    radial-gradient(circle at 50% 56%,rgba(255,155,82,.10),transparent 24%),
    radial-gradient(circle at 50% 55%,rgba(255,222,182,.08),transparent 9%),
    repeating-linear-gradient(0deg,transparent 0 12px,rgba(255,145,71,.025) 12px 14px,transparent 14px 26px),
    repeating-linear-gradient(90deg,transparent 0 12px,rgba(255,145,71,.025) 12px 14px,transparent 14px 26px);
  filter:none;
  opacity:.6;
}
.gate-center{
  gap:12px;
  width:min(540px,86vw);
  padding:28px 22px;
  background:linear-gradient(180deg,rgba(11,8,6,.54),rgba(11,8,6,.20));
}
.gate-kicker,.gate-title,.gate-copy,.gate-lock small{font-family:'Pixelify Sans',Inter,sans-serif}
.gate-kicker{font-size:13px;letter-spacing:.18em;color:#cfaa80;text-shadow:0 3px 0 rgba(0,0,0,.45)}
.gate-title{font-size:clamp(30px,4.2vw,56px);line-height:.9;letter-spacing:-.01em;text-shadow:0 6px 0 rgba(0,0,0,.32),0 0 18px rgba(220,150,101,.12)}
.gate-copy{font-size:15px;color:#d0b8a3;max-width:360px}
.gate-lock{
  margin-top:8px;
  width:156px;height:156px;
  border:none;border-radius:0;
  background:
    linear-gradient(180deg,#2b1d14 0%,#17100b 100%);
  box-shadow:
    0 0 0 4px #0c0806,
    0 0 0 8px #5f402a,
    0 0 0 12px #20150f,
    0 0 0 16px rgba(255,255,255,.02),
    0 16px 40px rgba(0,0,0,.34);
  padding:16px 12px 14px;
  align-content:center;
  justify-items:center;
  gap:8px;
}
.gate-lock:hover{
  transform:translateY(-2px);
  box-shadow:
    0 0 0 4px #0c0806,
    0 0 0 8px #7b5233,
    0 0 0 12px #20150f,
    0 0 0 16px rgba(255,255,255,.02),
    0 20px 44px rgba(0,0,0,.42);
}
.gate-lock:active{transform:translateY(1px)}
.gate-lock small{font-size:13px;letter-spacing:.16em;color:#f4ddbf;text-shadow:0 3px 0 rgba(0,0,0,.38)}
.pixel-padlock{position:relative;width:76px;height:84px;display:block;image-rendering:pixelated}
.pixel-padlock .shackle,
.pixel-padlock .body,
.pixel-padlock .keyhole{position:absolute;display:block}
.pixel-padlock .shackle{
  left:18px;top:0;width:40px;height:34px;
  border:8px solid #d9b17e;border-bottom:none;box-sizing:border-box;
  box-shadow:0 0 0 4px #6d492f,0 0 0 8px #20150f;
  background:transparent;
}
.pixel-padlock .body{
  left:8px;bottom:0;width:60px;height:48px;
  background:linear-gradient(180deg,#f1cd96 0 24%,#bf8e58 24% 60%,#8e603b 60% 100%);
  box-shadow:0 0 0 4px #20150f,0 0 0 8px #6d492f,inset 0 0 0 4px #f7ddb0,inset 0 -12px 0 rgba(0,0,0,.20);
}
.pixel-padlock .body:before,
.pixel-padlock .body:after{content:"";position:absolute;background:#f7ddb0;opacity:.5}
.pixel-padlock .body:before{left:10px;top:10px;width:8px;height:8px;box-shadow:30px 0 0 #f7ddb0}
.pixel-padlock .body:after{left:10px;top:22px;width:40px;height:6px;opacity:.18}
.pixel-padlock .keyhole{
  left:31px;top:36px;width:10px;height:18px;
  background:#2a1c13;
  box-shadow:0 -8px 0 0 #2a1c13;
}
@media (max-width:700px){
  .gate-title{font-size:34px}
  .gate-lock{width:132px;height:132px;padding:12px 10px}
  .pixel-padlock{transform:scale(.88);transform-origin:center top}
  .gate-door:before{inset:18px}
}


/* ===== V24 gate FX upgrade ===== */
.sigil-gate{isolation:isolate}
.gate-runes,.gate-cracks,.gate-particles{position:absolute;inset:0;pointer-events:none;z-index:1}
.gate-runes{
  opacity:.34;
  background:
    radial-gradient(circle at 50% 50%,transparent 0 17%,rgba(181,111,255,.14) 17.5% 18.1%,transparent 18.4%),
    radial-gradient(circle at 50% 50%,transparent 0 27%,rgba(255,173,88,.10) 27.3% 27.7%,transparent 28%),
    repeating-linear-gradient(90deg,transparent 0 80px,rgba(190,120,255,.05) 80px 84px,transparent 84px 160px),
    repeating-linear-gradient(0deg,transparent 0 80px,rgba(255,166,96,.04) 80px 84px,transparent 84px 160px);
  animation:gateRuneSpin 18s linear infinite;
}
@keyframes gateRuneSpin{to{transform:rotate(360deg)}}
.gate-cracks{
  opacity:0;
  background:
    linear-gradient(115deg,transparent 0 46%,#ffd2a0 46% 46.6%,#4f2515 46.6% 47.6%,transparent 47.6% 100%),
    linear-gradient(78deg,transparent 0 48%,#ffc27c 48% 48.5%,#5b2d1a 48.5% 49.4%,transparent 49.4% 100%),
    linear-gradient(102deg,transparent 0 52%,#ffcf97 52% 52.5%,#562718 52.5% 53.3%,transparent 53.3% 100%),
    linear-gradient(90deg,transparent 0 49.4%,#ffdbb0 49.4% 49.8%,#3d1c11 49.8% 50.3%,#ffdbb0 50.3% 50.6%,transparent 50.6% 100%);
  mix-blend-mode:screen;
}
.sigil-gate-overlay.cracking .gate-cracks{opacity:.95;animation:pixelCrackFlash .55s steps(4) infinite}
@keyframes pixelCrackFlash{0%,100%{filter:drop-shadow(0 0 0 rgba(255,176,84,.2))}50%{filter:drop-shadow(0 0 12px rgba(255,176,84,.55))}}
.gate-particles{
  opacity:0;
  background:
    radial-gradient(circle,#c58cff 0 2px,transparent 2.5px) 50% 50%/140px 140px,
    radial-gradient(circle,#ffb061 0 2px,transparent 2.5px) 0 0/110px 110px,
    radial-gradient(circle,#ffe0a8 0 1.5px,transparent 2px) 30px 20px/90px 90px;
}
.sigil-gate-overlay.cracking .gate-particles,
.sigil-gate-overlay.unlocked .gate-particles{opacity:1;animation:gateParticlesBurst .95s steps(8) forwards}
@keyframes gateParticlesBurst{0%{transform:scale(.45);opacity:0}20%{opacity:.9}100%{transform:scale(1.25);opacity:0}}

.gate-door{overflow:hidden}
.gate-door .none{display:none}
.gate-door:before{image-rendering:pixelated}
.gate-door:after{image-rendering:pixelated}
.gate-door:after{opacity:.92}
.gate-door::marker{display:none}
.gate-door{
  transition:transform .95s cubic-bezier(.2,.9,.2,1),filter .28s ease,box-shadow .28s ease;
}
.sigil-gate-overlay.cracking .gate-door{
  filter:brightness(1.08) saturate(1.06);
  box-shadow:
    inset 0 0 0 4px #0a0806,
    inset 0 0 0 8px #3c2a1e,
    inset 0 0 0 12px #120d0a,
    inset 0 0 0 16px #6f4a2f,
    inset 0 0 0 20px #1a120d,
    inset 0 0 32px rgba(255,172,94,.08),
    inset 0 0 42px rgba(0,0,0,.45);
}
.sigil-gate-overlay.cracking .gate-left{animation:doorShakeL .34s steps(3) infinite}
.sigil-gate-overlay.cracking .gate-right{animation:doorShakeR .34s steps(3) infinite}
@keyframes doorShakeL{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
@keyframes doorShakeR{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.sigil-gate-overlay.unlocked .gate-left,.sigil-gate-overlay.unlocked .gate-right{animation:none}

.gate-lock{position:relative;overflow:visible}
.gate-lock:before,.gate-lock:after{content:"";position:absolute;opacity:0;pointer-events:none}
.gate-lock:before{
  inset:18px;
  background:
    linear-gradient(135deg,transparent 0 46%,#ffd4a5 46% 48%,#4d2415 48% 51%,transparent 51% 100%),
    linear-gradient(45deg,transparent 0 50%,#ffcb8d 50% 51.5%,#4d2415 51.5% 54%,transparent 54% 100%);
  mix-blend-mode:screen;
}
.gate-lock:after{
  left:50%;top:50%;width:180px;height:180px;transform:translate(-50%,-50%) scale(.45);
  background:
    radial-gradient(circle,#c88dff 0 3px,transparent 4px) 50% 50%/56px 56px,
    radial-gradient(circle,#ffb56a 0 3px,transparent 4px) 0 0/44px 44px,
    radial-gradient(circle,#ffe1aa 0 2px,transparent 3px) 20px 12px/38px 38px;
}
.sigil-gate-overlay.cracking .gate-lock{animation:lockPulse .5s steps(5) infinite}
.sigil-gate-overlay.cracking .gate-lock:before{opacity:1;animation:lockCrack .5s steps(4) infinite}
.sigil-gate-overlay.cracking .gate-lock:after{opacity:1;animation:lockSparks .75s steps(6) infinite}
@keyframes lockPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px) scale(1.03)}}
@keyframes lockCrack{50%{filter:drop-shadow(0 0 12px rgba(255,181,98,.46))}}
@keyframes lockSparks{0%{transform:translate(-50%,-50%) scale(.35);opacity:0}25%{opacity:.9}100%{transform:translate(-50%,-50%) scale(1.05);opacity:0}}
.sigil-gate-overlay.unlocked .pixel-padlock{animation:padlockBreak .62s steps(6) forwards}
@keyframes padlockBreak{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-6px) scale(1.05)}100%{transform:translateY(14px) scale(.8);opacity:0}}
.sigil-gate-overlay.unlocked .gate-lock small{opacity:0;transition:.18s}
.sigil-gate-overlay.unlocked .gate-lock:after{opacity:1;animation:lockExplode .72s steps(8) forwards}
@keyframes lockExplode{0%{transform:translate(-50%,-50%) scale(.55);opacity:.2}30%{opacity:1}100%{transform:translate(-50%,-50%) scale(1.45);opacity:0}}

.secret-vault-overlay{overflow:hidden}
.secret-vault-overlay:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;z-index:0;
  background:
    radial-gradient(circle,#c58cff 0 3px,transparent 4px) 50% 60%/100px 100px,
    radial-gradient(circle,#ffb061 0 3px,transparent 4px) 0 0/86px 86px,
    radial-gradient(circle,#ffe0a8 0 2px,transparent 3px) 20px 10px/64px 64px,
    radial-gradient(circle at 50% 50%,rgba(174,104,255,.18),transparent 26%);
}
.secret-vault-overlay.open:before{opacity:1;animation:vaultPixelBurst 1.2s steps(10) both}
@keyframes vaultPixelBurst{0%{transform:scale(.35);opacity:0}18%{opacity:1}100%{transform:scale(1.28);opacity:0}}
.secret-vault-overlay.preopen .vault-panel{opacity:0;transform:scale(.96)}
.secret-vault-overlay.open .vault-panel{position:relative;z-index:1}


/* ===== V25 Linux-style development terminal ===== */
.terminal-head{margin-bottom:46px}
.dev-terminal{position:relative;z-index:3;border:1px solid #2d2a25;background:#080907;box-shadow:0 30px 90px rgba(0,0,0,.36),inset 0 0 0 1px rgba(255,255,255,.015);overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.dev-terminal:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);opacity:.22;z-index:8}
.terminal-titlebar{height:48px;display:grid;grid-template-columns:120px 1fr 160px;align-items:center;padding:0 15px;border-bottom:1px solid #282a25;background:linear-gradient(180deg,#12130f,#0c0d0b)}
.terminal-controls{display:flex;gap:7px}.terminal-controls i{display:block;width:10px;height:10px;border-radius:50%;background:#654a32}.terminal-controls i:nth-child(2){background:#78663a}.terminal-controls i:nth-child(3){background:#4f6541}
.terminal-title{text-align:center;color:#777f71;font-size:11px}.terminal-state{justify-self:end;font-size:10px;letter-spacing:.1em;color:#7d8d72}.terminal-state span{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#84a56e;box-shadow:0 0 10px rgba(132,165,110,.45)}
.terminal-body{display:grid;grid-template-columns:290px 1fr;min-height:480px}
.terminal-sidebar{padding:20px 12px;border-right:1px solid #242720;background:#0b0c09}.terminal-sidebar-title{padding:0 10px 14px;color:#596054;font-size:11px}
.terminal-module{width:100%;height:54px;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:0 12px;border:0;border-left:2px solid transparent;background:transparent;color:#8b9185;text-align:left;cursor:pointer;font:inherit;transition:.16s}.terminal-module:hover{background:#11130e;color:#b7c0ae}.terminal-module.active{background:#12150f;border-left-color:#9ab27c;color:#c8d1c0}.terminal-module span{color:#4e554a;font-size:10px}.terminal-module b{font-size:12px;font-weight:600}.terminal-module em{font-style:normal;font-size:9px;color:#6f785f}.terminal-module.active em{color:#9eb47e}
.terminal-screen{position:relative;padding:28px 30px 34px;background:radial-gradient(circle at 72% 18%,rgba(89,112,71,.045),transparent 28%),#080a07;color:#aeb8a7;overflow:hidden}.terminal-screen:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.010) 1px,transparent 1px);background-size:22px 22px;opacity:.12}
.terminal-line,.terminal-output,.terminal-detail,.terminal-separator{position:relative;z-index:2}.terminal-line{font-size:13px;line-height:1.8}.terminal-line.dim{color:#4f584c;margin-bottom:10px}.prompt-user{color:#9eb47e}.prompt-at{color:#68705f}.prompt-host{color:#d1c09e}.prompt-path{color:#7d8f76}.cmd{color:#d4d8cf}.terminal-separator{color:#2a3027;font-size:12px;overflow:hidden;white-space:nowrap;margin:12px 0}
.terminal-output{display:grid;gap:10px;font-size:13px}.terminal-output>div{display:flex;gap:12px;align-items:baseline}.terminal-output span:first-child{width:52px;flex:0 0 52px}.terminal-output .ok{color:#91b178}.terminal-output .test{color:#c2a66e}.terminal-output .dev{color:#a88b62}.terminal-output .plan{color:#8e8579}.terminal-output .soon{color:#686f64}.terminal-output .muted{color:#596056;font-size:12px}
.terminal-command-line{margin-top:2px}.terminal-caret{display:inline-block;color:#9eb47e;margin-left:2px;animation:terminalBlink 1s steps(1) infinite}@keyframes terminalBlink{50%{opacity:0}}
.terminal-detail{margin-top:18px;padding:18px 20px;border-left:2px solid #6f845c;background:#0d100b}.terminal-detail .detail-label{display:block;color:#7f9670;font-size:10px;margin-bottom:8px}.terminal-detail strong{display:block;color:#d7ddd2;font-size:15px;margin-bottom:8px}.terminal-detail p{margin:0;max-width:760px;color:#777f73;font-size:12px;line-height:1.7}
.terminal-footer{height:38px;display:flex;align-items:center;gap:26px;padding:0 16px;border-top:1px solid #22241f;background:#0b0c0a;color:#51584d;font-size:10px}.terminal-footer span:nth-child(2){margin-left:auto;color:#76836d}.terminal-footer span:nth-child(3){color:#80745f}
.dev-terminal.flash .terminal-screen{animation:terminalFlash .22s ease}@keyframes terminalFlash{50%{filter:brightness(1.12)}}
@media(max-width:820px){.terminal-body{grid-template-columns:1fr}.terminal-sidebar{border-right:0;border-bottom:1px solid #242720;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px}.terminal-sidebar-title{display:none}.terminal-module{height:48px;grid-template-columns:1fr;text-align:center;padding:0 4px;border-left:0;border-bottom:2px solid transparent}.terminal-module.active{border-bottom-color:#9ab27c}.terminal-module span,.terminal-module em{display:none}.terminal-module b{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal-titlebar{grid-template-columns:80px 1fr 100px}.terminal-state{font-size:8px}.terminal-screen{padding:22px 18px}.terminal-footer{gap:12px;flex-wrap:wrap;height:auto;min-height:38px;padding:10px 14px}.terminal-footer span:nth-child(2){margin-left:0}}


/* ===== V26 true pixel FX + generated gate scene ===== */
/* Combat VFX now use actual transparent pixel-art sprites. */
.pixel-fire:before,.pixel-fire:after,.magic-shield{background:none!important;clip-path:none!important;filter:none!important}
.pixel-fire{width:256px!important;height:256px!important;background:url('assets/fx-fire-slash.png') center/contain no-repeat!important;image-rendering:pixelated!important;filter:drop-shadow(0 0 14px rgba(255,117,42,.38))!important}
.player-fire{left:24%!important;top:48%!important;transform:translateY(-50%) scale(.72)!important}
.boss-fire{right:24%!important;left:auto!important;top:48%!important;transform:translateY(-50%) scaleX(-1) scale(.72)!important}
.battle-stage.player-fire-cast .player-fire{animation:pixelSpriteSlash .52s steps(6) forwards!important}
.battle-stage.boss-fire-cast .boss-fire{animation:pixelSpriteSlashBoss .52s steps(6) forwards!important}
@keyframes pixelSpriteSlash{0%{opacity:0;transform:translate(-26px,-50%) scale(.48)}18%{opacity:1}58%{opacity:1;transform:translate(34px,-50%) scale(.86)}100%{opacity:0;transform:translate(76px,-50%) scale(.96)}}
@keyframes pixelSpriteSlashBoss{0%{opacity:0;transform:translate(26px,-50%) scaleX(-1) scale(.48)}18%{opacity:1}58%{opacity:1;transform:translate(-34px,-50%) scaleX(-1) scale(.86)}100%{opacity:0;transform:translate(-76px,-50%) scaleX(-1) scale(.96)}}
.magic-shield{left:8%!important;bottom:68px!important;width:256px!important;height:256px!important;background:url('assets/fx-magic-shield.png') center/contain no-repeat!important;image-rendering:pixelated!important;transform:scale(.72)!important;filter:drop-shadow(0 0 16px rgba(95,205,255,.42))!important}
.battle-stage.guard-fx .player-shield{animation:pixelShield .58s steps(6) forwards!important}
@keyframes pixelShield{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(.72)}70%{opacity:1;transform:scale(.78)}100%{opacity:0;transform:scale(.92)}}
.legendary-burst{background:url('assets/fx-legendary-sigil.png') center/contain no-repeat!important;clip-path:none!important;image-rendering:pixelated!important;filter:drop-shadow(0 0 28px rgba(255,132,49,.48)) drop-shadow(0 0 34px rgba(162,90,219,.25))!important}
.battle-stage.legendary-cast .legendary-burst{animation:legendarySprite 1s steps(8) forwards!important}
@keyframes legendarySprite{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-12deg)}18%{opacity:1}56%{opacity:1;transform:translate(-50%,-50%) scale(1.02) rotate(5deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.26) rotate(10deg)}}

/* Gate is now a real generated pixel-art/voxel asset split into two moving halves. */
.sigil-gate-overlay{background:rgba(0,0,0,.9)!important;backdrop-filter:blur(6px)!important}
.pixel-gate-scene{position:relative;width:min(1180px,96vw)!important;height:min(720px,88vh)!important;background:#070605!important;overflow:hidden!important;border:2px solid #2b2119!important;box-shadow:0 34px 110px rgba(0,0,0,.68)!important;image-rendering:pixelated!important}
.pixel-gate-scene:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 50% 52%,rgba(169,91,219,.08),transparent 32%),linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.38));pointer-events:none}
.gate-open-scene{position:absolute;inset:0;background:url('assets/gate-pixel-open.png') center/cover no-repeat;image-rendering:pixelated;filter:brightness(.72) saturate(.95);transform:scale(1.02);z-index:0}
.pixel-gate-scene .gate-door{position:absolute!important;top:0!important;bottom:0!important;width:50.15%!important;height:100%!important;border:0!important;box-shadow:none!important;filter:brightness(.86) saturate(.95)!important;transition:transform 1.05s cubic-bezier(.17,.9,.24,1),filter .25s!important;overflow:hidden!important;z-index:2!important;background-image:url('assets/gate-pixel-closed.png')!important;background-repeat:no-repeat!important;background-size:200% 100%!important;background-color:#0d0907!important}
.pixel-gate-scene .gate-door:before,.pixel-gate-scene .gate-door:after{display:none!important}
.pixel-gate-scene .gate-left{left:0!important;background-position:left center!important;transform:translateX(-101%)!important}
.pixel-gate-scene .gate-right{right:0!important;background-position:right center!important;transform:translateX(101%)!important}
.sigil-gate-overlay.open .pixel-gate-scene .gate-left,.sigil-gate-overlay.open .pixel-gate-scene .gate-right{transform:translateX(0)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-left{transform:translateX(-103%)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-right{transform:translateX(103%)!important}
.sigil-gate-overlay.cracking .pixel-gate-scene .gate-left{animation:gatePixelShakeL .24s steps(3) infinite!important}
.sigil-gate-overlay.cracking .pixel-gate-scene .gate-right{animation:gatePixelShakeR .24s steps(3) infinite!important}
@keyframes gatePixelShakeL{0%,100%{transform:translateX(0)}50%{transform:translateX(-5px)}}
@keyframes gatePixelShakeR{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-left,.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-right{animation:none!important}
.gate-caption{position:absolute;left:50%;bottom:54px;transform:translateX(-50%);z-index:5;display:grid;justify-items:center;gap:5px;padding:12px 20px;background:rgba(7,5,4,.72);border:1px solid rgba(224,169,117,.16);text-align:center;pointer-events:none;min-width:320px}
.gate-caption span,.gate-caption strong,.gate-caption small{font-family:'Pixelify Sans',Inter,sans-serif;text-shadow:0 3px 0 rgba(0,0,0,.5)}
.gate-caption span{font-size:10px;letter-spacing:.18em;color:#a78a72}.gate-caption strong{font-size:30px;line-height:.95;color:#f0dcc5}.gate-caption small{font-size:12px;color:#c3aa93}
.gate-lock-hotspot{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);z-index:6;width:112px;height:126px;border:0;background:transparent;cursor:pointer;color:transparent;font-size:0;filter:none!important;box-shadow:none!important}
.gate-lock-hotspot:focus-visible{outline:2px solid rgba(202,132,255,.55);outline-offset:8px}
.gate-lock-hotspot:after{content:"";position:absolute;inset:-8px;border:2px solid rgba(199,116,255,0);box-shadow:0 0 0 rgba(193,103,255,0);transition:.2s}
.gate-lock-hotspot:hover:after{border-color:rgba(199,116,255,.34);box-shadow:0 0 24px rgba(193,103,255,.22)}
.gate-vfx-runes,.gate-vfx-particles{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0}
.gate-vfx-runes{background:radial-gradient(circle at 50% 50%,transparent 0 17%,rgba(192,102,255,.22) 17.3% 17.9%,transparent 18.2%),radial-gradient(circle at 50% 50%,transparent 0 25%,rgba(255,151,74,.12) 25.3% 25.7%,transparent 26%)}
.sigil-gate-overlay.cracking .gate-vfx-runes{opacity:1;animation:gateRuneShock .5s steps(5) infinite}
@keyframes gateRuneShock{50%{filter:brightness(1.8);transform:scale(1.015)}}
.gate-vfx-particles{background:radial-gradient(circle,#cf8cff 0 3px,transparent 4px) 50% 50%/110px 110px,radial-gradient(circle,#ffad60 0 3px,transparent 4px) 0 0/86px 86px,radial-gradient(circle,#ffe0a8 0 2px,transparent 3px) 20px 12px/64px 64px}
.sigil-gate-overlay.cracking .gate-vfx-particles,.sigil-gate-overlay.unlocked .gate-vfx-particles{opacity:1;animation:gatePxBurst .9s steps(8) forwards}
@keyframes gatePxBurst{0%{transform:scale(.4);opacity:0}20%{opacity:1}100%{transform:scale(1.26);opacity:0}}
.sigil-gate-overlay.unlocked .gate-caption{opacity:0;transition:.2s}
@media(max-width:720px){.pixel-gate-scene{height:78vh!important}.gate-caption{bottom:28px;min-width:260px}.gate-caption strong{font-size:24px}.gate-lock-hotspot{top:51%;width:92px;height:110px}.magic-shield{left:50%!important;bottom:145px!important;transform:translateX(-50%) scale(.58)!important}}


/* ===== V27 gate aspect-ratio / crop fix ===== */
.sigil-gate-overlay{padding:18px!important;overflow:hidden!important}
.pixel-gate-scene{
  width:min(1180px,96vw,calc(88vh * 2.35246))!important;
  height:auto!important;
  aspect-ratio:1722/732!important;
  max-height:88vh!important;
  background:#070605!important;
  overflow:hidden!important;
  border:2px solid #2b2119!important;
  box-shadow:0 34px 110px rgba(0,0,0,.68)!important;
}
.gate-open-scene{
  background-image:url('assets/gate-pixel-open.png')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:100% 100%!important;
  transform:none!important;
}
.pixel-gate-scene .gate-door{
  top:0!important;
  bottom:auto!important;
  height:100%!important;
  width:50%!important;
  background-image:url('assets/gate-pixel-closed.png')!important;
  background-repeat:no-repeat!important;
  background-size:200% 100%!important;
  background-color:#0d0907!important;
}
.pixel-gate-scene .gate-left{left:0!important;background-position:left top!important}
.pixel-gate-scene .gate-right{right:0!important;background-position:right top!important}
.gate-caption{
  bottom:6.2%!important;
  min-width:0!important;
  width:auto!important;
  padding:10px 18px!important;
  background:rgba(7,5,4,.70)!important;
  border:1px solid rgba(224,169,117,.14)!important;
}
.gate-caption span{font-size:9px!important}.gate-caption strong{font-size:clamp(20px,2.2vw,30px)!important}.gate-caption small{font-size:11px!important}
.gate-lock-hotspot{
  top:48.5%!important;
  width:9.5%!important;
  min-width:72px!important;
  height:23%!important;
  min-height:90px!important;
}
@media(max-width:720px){
  .pixel-gate-scene{
    width:96vw!important;
    height:auto!important;
    aspect-ratio:1722/732!important;
    max-height:none!important;
  }
  .gate-caption{bottom:4.5%!important;padding:7px 12px!important}
  .gate-caption span{font-size:7px!important}.gate-caption strong{font-size:18px!important}.gate-caption small{font-size:9px!important}
  .gate-lock-hotspot{top:48%!important;min-width:56px!important;min-height:62px!important}
}


/* ===== V28 new door asset ===== */
.sigil-gate-overlay{padding:16px!important;background:rgba(0,0,0,.94)!important;backdrop-filter:blur(7px)!important}
.pixel-gate-scene{
  width:min(760px,86vw,calc(90vh * .7265))!important;
  height:auto!important;
  aspect-ratio:1028/1415!important;
  max-height:90vh!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.pixel-gate-scene:before{display:none!important}
.gate-open-scene{background:none!important;filter:none!important;transform:none!important}
.pixel-gate-scene .gate-door{
  top:0!important;
  bottom:auto!important;
  width:50%!important;
  height:100%!important;
  background-image:url('assets/gate-door-v28.png')!important;
  background-repeat:no-repeat!important;
  background-size:200% 100%!important;
  background-color:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 24px 44px rgba(0,0,0,.58)) brightness(.98) saturate(1.04)!important;
  overflow:visible!important;
}
.pixel-gate-scene .gate-left{left:0!important;background-position:left top!important}
.pixel-gate-scene .gate-right{right:0!important;background-position:right top!important}
.sigil-gate-overlay.open .pixel-gate-scene .gate-left,.sigil-gate-overlay.open .pixel-gate-scene .gate-right{transform:translateX(0)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-left{transform:translateX(-112%)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-right{transform:translateX(112%)!important}
.gate-caption{
  bottom:7.5%!important;
  width:auto!important;
  min-width:250px!important;
  padding:9px 14px!important;
  background:rgba(8,6,5,.68)!important;
  border:1px solid rgba(205,163,123,.14)!important;
  backdrop-filter:blur(3px)!important;
}
.gate-caption span{font-size:8px!important}.gate-caption strong{font-size:clamp(18px,2.6vw,26px)!important}.gate-caption small{font-size:10px!important}
.gate-lock-hotspot{
  top:58.8%!important;
  width:22%!important;
  min-width:90px!important;
  height:15%!important;
  min-height:76px!important;
}
.gate-lock-hotspot:after{inset:-10px!important;border-width:2px!important;border-radius:10px!important}
.gate-vfx-runes{background:radial-gradient(circle at 50% 59%,transparent 0 10%,rgba(190,110,255,.24) 10.5% 11.2%,transparent 11.8%),radial-gradient(circle at 50% 59%,transparent 0 16%,rgba(255,156,75,.10) 16.4% 16.8%,transparent 17.2%)!important}
.gate-vfx-particles{background:radial-gradient(circle,#ce8cff 0 3px,transparent 4px) 50% 58%/100px 100px,radial-gradient(circle,#ffad60 0 3px,transparent 4px) 0 0/84px 84px,radial-gradient(circle,#ffe0a8 0 2px,transparent 3px) 20px 12px/62px 62px!important}
@media(max-width:720px){
  .pixel-gate-scene{width:min(88vw,560px)!important;aspect-ratio:1028/1415!important}
  .gate-caption{bottom:6%!important;min-width:210px!important;padding:7px 10px!important}
  .gate-caption strong{font-size:18px!important}.gate-caption span{font-size:7px!important}.gate-caption small{font-size:9px!important}
  .gate-lock-hotspot{top:58.5%!important;width:24%!important;height:14%!important;min-width:66px!important;min-height:60px!important}
}


/* ===== V29 gate flow + minigame-style vault ===== */
/* The gate appears already closed after victory: no closing animation. */
.sigil-gate-overlay{background:rgba(0,0,0,.95)!important;backdrop-filter:blur(8px)!important}
.pixel-gate-scene{
  width:min(520px,70vw,calc(80vh * .7265))!important;
  max-height:80vh!important;
  aspect-ratio:1028/1415!important;
  transform:scale(.96);
  transition:transform .32s ease,opacity .32s ease;
}
.sigil-gate-overlay.open .pixel-gate-scene{transform:scale(1);opacity:1}
.pixel-gate-scene .gate-door{transition:none!important}
.sigil-gate-overlay.open:not(.unlocked) .pixel-gate-scene .gate-left,
.sigil-gate-overlay.open:not(.unlocked) .pixel-gate-scene .gate-right{transform:translateX(0)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-door{transition:transform .86s cubic-bezier(.18,.88,.22,1),filter .25s ease!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-left{transform:translateX(-112%)!important}
.sigil-gate-overlay.unlocked .pixel-gate-scene .gate-right{transform:translateX(112%)!important}

.gate-caption{bottom:-54px!important;background:transparent!important;border:0!important;backdrop-filter:none!important;min-width:0!important;padding:0!important;gap:2px!important}
.gate-caption strong{font-family:'Pixelify Sans',Inter,sans-serif!important;font-size:15px!important;color:#ceb39a!important;letter-spacing:.06em!important}
.gate-caption small{font-family:'Pixelify Sans',Inter,sans-serif!important;font-size:10px!important;color:#6f6258!important}

/* Accurate lock hotspot: centered on the keyhole visible in the generated asset. */
.gate-lock-hotspot{
  top:58.7%!important;
  left:50%!important;
  width:20.5%!important;
  height:12.5%!important;
  min-width:70px!important;
  min-height:58px!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  transform:translate(-50%,-50%)!important;
  box-shadow:none!important;
}
.gate-lock-hotspot:after{display:none!important}
.gate-lock-label{
  position:absolute;left:50%;top:112%;transform:translateX(-50%);
  font:700 10px/1 'Pixelify Sans',Inter,sans-serif;color:#bda188;letter-spacing:.12em;
  opacity:0;transition:.18s;white-space:nowrap;text-shadow:0 2px 0 rgba(0,0,0,.55)
}
.gate-lock-hotspot:hover .gate-lock-label,.gate-lock-hotspot:focus-visible .gate-lock-label{opacity:1}
.gate-lock-pulse{
  position:absolute;left:50%;top:58.7%;width:20%;aspect-ratio:1;transform:translate(-50%,-50%);
  border:3px solid rgba(188,98,255,.0);border-radius:50%;pointer-events:none;z-index:5;
}
.sigil-gate-overlay.open:not(.unlocking) .gate-lock-pulse{animation:lockIdlePulse 2.1s steps(8) infinite}
@keyframes lockIdlePulse{0%,100%{border-color:rgba(188,98,255,0);box-shadow:0 0 0 rgba(188,98,255,0);transform:translate(-50%,-50%) scale(.82)}45%{border-color:rgba(188,98,255,.28);box-shadow:0 0 22px rgba(188,98,255,.18);transform:translate(-50%,-50%) scale(1)}}

/* Real DOM pixel particles, emitted from the keyhole. */
.gate-particle-layer{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:visible}
.gate-particle-layer i{position:absolute;left:50%;top:58.7%;width:var(--s);height:var(--s);background:var(--c);box-shadow:0 0 0 1px rgba(0,0,0,.18),0 0 8px color-mix(in srgb,var(--c) 55%,transparent);image-rendering:pixelated;opacity:0;transform:translate(-50%,-50%)}
.sigil-gate-overlay.unlocking .gate-particle-layer i{animation:gateParticlePop var(--d) steps(8) var(--delay) forwards}
@keyframes gateParticlePop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(.8)}}
.sigil-gate-overlay.unlocking .gate-vfx-runes{opacity:1!important;animation:gateRuneShock .42s steps(4) 2!important}
.sigil-gate-overlay.unlocking .pixel-gate-scene{animation:gateUnlockHit .48s steps(5)}
@keyframes gateUnlockHit{0%,100%{filter:none}22%{filter:brightness(1.22)}40%{transform:scale(1.015)}70%{transform:scale(.995)}}
.sigil-gate-overlay.unlocking .gate-lock-pulse{border-color:rgba(221,174,255,.72);box-shadow:0 0 36px rgba(180,94,255,.42);animation:lockUnlockBurst .62s steps(7) forwards}
@keyframes lockUnlockBurst{0%{transform:translate(-50%,-50%) scale(.55);opacity:.2}45%{opacity:1}100%{transform:translate(-50%,-50%) scale(1.55);opacity:0}}

/* Replace the old generic vault modal with a screen that feels like the minigame. */
.secret-vault-overlay{
  background:#050403!important;
  backdrop-filter:none!important;
  padding:18px!important;
  overflow:auto!important;
}
.secret-vault-overlay:before{display:none!important}
.vault-game-shell{
  position:relative;width:min(1180px,96vw);min-height:min(760px,92vh);overflow:hidden;
  border:2px solid #3a2b21;background:#090706;box-shadow:0 34px 120px rgba(0,0,0,.72),inset 0 0 0 2px rgba(0,0,0,.5);
  font-family:'Pixelify Sans',Inter,sans-serif;image-rendering:auto;
}
.vault-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;filter:brightness(.28) saturate(.72) blur(1px);transform:scale(1.03)}
.vault-bg-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 36%,rgba(151,72,191,.16),transparent 30%),linear-gradient(180deg,rgba(4,3,2,.34),rgba(4,3,2,.84) 70%,#050403 100%)}
.vault-close{position:absolute;right:16px;top:16px;z-index:6;width:40px;height:40px;border:2px solid #4b382a;background:#17110d;color:#bfa78f;font:700 17px/1 'Pixelify Sans',sans-serif;cursor:pointer}.vault-close:hover{background:#2c1d15;color:#f1dcc6}
.vault-game-header{position:relative;z-index:3;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 72px 16px 22px;border-bottom:2px solid #34271f;background:linear-gradient(180deg,rgba(16,12,9,.94),rgba(10,8,6,.86))}
.vault-game-header span{display:block;font-size:10px;letter-spacing:.18em;color:#967b67;margin-bottom:5px}.vault-game-header strong{display:block;font-size:24px;color:#edddcc;letter-spacing:.02em}.vault-game-header>b{font-size:10px;letter-spacing:.13em;color:#a5c28a;border:1px solid #435239;background:#0d120b;padding:8px 10px}
.vault-game-content{position:relative;z-index:3;padding:46px 32px 34px}
.vault-intro{max-width:780px;margin:0 auto 36px;text-align:center}.vault-chip{display:inline-block;padding:7px 10px;border:1px solid rgba(189,116,243,.26);background:rgba(69,37,87,.25);color:#c69cde;font-size:10px;letter-spacing:.15em}.vault-intro h2{margin:16px 0 0;font-size:clamp(38px,5.2vw,72px);line-height:.88;letter-spacing:-.02em;color:#f0e1d2}.vault-intro h2 em{font-style:normal;color:#b9997b}.vault-intro p{max-width:680px;margin:20px auto 0;color:#9f9185;font:400 13px/1.75 Inter,sans-serif}
.vault-game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1040px;margin:0 auto}.vault-game-card{position:relative;min-height:285px;padding:22px 20px 20px;border:2px solid #33261e;background:linear-gradient(180deg,rgba(24,18,14,.92),rgba(10,8,6,.94));box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);overflow:hidden}.vault-game-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,#7c4c9e,#c18f57,#7c4c9e);opacity:.55}.vault-game-card:hover{border-color:#5f4533;transform:translateY(-2px)}.vault-card-index{font-size:10px;color:#6e5e52;letter-spacing:.18em}.vault-card-icon{width:52px;height:52px;display:grid;place-items:center;margin:48px 0 16px;border:2px solid #4b3628;background:#130e0b;color:#b87bd3;font-size:24px;box-shadow:0 0 16px rgba(168,98,200,.08)}.vault-game-card strong{display:block;color:#e5d4c3;font-size:20px;line-height:1}.vault-game-card p{margin:12px 0 0;color:#8f8278;font:400 12px/1.7 Inter,sans-serif}.vault-game-card small{position:absolute;left:20px;bottom:18px;color:#665b53;font-size:9px;letter-spacing:.12em}
.vault-game-footer{position:relative;z-index:3;min-height:54px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:0 20px;border-top:2px solid #2d231c;background:#0a0806;color:#75675b;font-size:10px;letter-spacing:.08em}.vault-game-footer a{justify-self:center;padding:9px 14px;border:1px solid #61442f;background:#21150f;color:#dfc2a4;font-size:11px}.vault-game-footer span:last-child{justify-self:end}
.secret-vault-overlay.preopen .vault-game-shell{opacity:0;transform:scale(.985)}
.secret-vault-overlay.open .vault-game-shell{animation:vaultGameIn .48s steps(6) both}
@keyframes vaultGameIn{0%{opacity:0;transform:scale(.975)}100%{opacity:1;transform:scale(1)}}
@media(max-width:820px){.pixel-gate-scene{width:min(420px,76vw)!important}.gate-caption{bottom:-46px!important}.vault-game-grid{grid-template-columns:1fr}.vault-game-shell{min-height:0}.vault-game-content{padding:42px 18px 28px}.vault-game-header{padding-left:16px}.vault-game-header>b{display:none}.vault-game-footer{grid-template-columns:1fr;justify-items:center;padding:14px}.vault-game-footer span:last-child{justify-self:center}.vault-game-footer a{justify-self:center}.vault-game-card{min-height:240px}.vault-card-icon{margin-top:26px}}


/* ===== V30 live world, archive, Discord proof, founder mark, ARG ===== */
:root{--time-gold:rgba(183,112,61,.16);--time-violet:rgba(121,83,155,.04);--time-fog:.22;--time-ember:.18}
body.theme-day{--time-gold:rgba(202,139,79,.19);--time-violet:rgba(94,72,110,.025);--time-fog:.12;--time-ember:.12}
body.theme-dusk{--time-gold:rgba(206,109,53,.21);--time-violet:rgba(132,79,122,.045);--time-fog:.19;--time-ember:.26}
body.theme-night{--time-gold:rgba(127,79,48,.10);--time-violet:rgba(111,74,151,.13);--time-fog:.34;--time-ember:.17}
body.theme-midnight{--time-gold:rgba(96,57,35,.075);--time-violet:rgba(126,74,175,.18);--time-fog:.46;--time-ember:.14}
body:before{background:radial-gradient(circle at 50% 11%,var(--time-gold),transparent 19%),radial-gradient(circle at 50% 42%,var(--time-violet),transparent 29%),linear-gradient(180deg,#0f0c0a 0%,#0b0908 48%,#090807 100%)!important;transition:background 1.2s ease}
.hero-fog{opacity:var(--time-fog)!important;transition:opacity 1.2s ease}.global-ash{opacity:var(--time-ember)!important;transition:opacity 1.2s ease}
body.theme-midnight .hero-glow{background:radial-gradient(circle,rgba(116,76,156,.16) 0,rgba(94,63,120,.08) 34%,transparent 68%)!important}
body.theme-night .hero-sky,body.theme-midnight .hero-sky{filter:hue-rotate(16deg) saturate(1.08)}

.archive{position:relative;overflow:hidden}.archive-head{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end;margin-bottom:48px}.archive-head h2{font-size:clamp(42px,5vw,72px);line-height:.94;letter-spacing:-.06em;margin:0}.archive-head h2 span{color:#b69b80}.archive-head>p{color:#a79b92;line-height:1.75;margin:0}.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.archive-card{position:relative;min-height:430px;padding:18px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(31,23,18,.76),rgba(12,10,8,.62));overflow:hidden;transition:.28s}.archive-card:hover{transform:translateY(-3px);border-color:rgba(200,160,120,.18)}.archive-media{height:250px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle,rgba(151,91,56,.10),transparent 60%)}.archive-media img{height:100%;max-width:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 14px 24px rgba(0,0,0,.45))}.archive-meta{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font:700 9px/1 Inter,sans-serif;letter-spacing:.12em;color:#8b7867}.archive-meta b{color:#c6a785}.archive-card h3{font:800 20px/1 Inter,sans-serif;margin:14px 0 8px}.archive-card p{font-size:12px;line-height:1.7;color:#958a82;margin:0}.archive-card.locked{background:linear-gradient(180deg,rgba(20,17,15,.76),rgba(9,8,7,.78))}.archive-card.locked:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.015) 0 1px,transparent 1px 12px);opacity:.4}.archive-lock{height:250px;display:grid;place-items:center;font:800 96px/1 'Pixelify Sans';color:#2c2723;text-shadow:0 0 30px rgba(121,86,65,.08)}

.discord-proof{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:30px auto 16px;width:min(920px,100%)}.proof-card{min-height:118px;padding:16px;border:1px solid rgba(255,255,255,.06);background:rgba(24,18,14,.62);text-align:left}.proof-card span{display:block;font:700 9px/1 Inter,sans-serif;letter-spacing:.16em;color:#8e7865}.proof-card strong{display:block;margin-top:13px;font-size:28px;line-height:1;color:#eadbcb}.proof-card small{display:block;margin-top:8px;color:#8f847c;font-size:10px}.founder-proof button{margin-top:10px;padding:8px 10px;border:1px solid rgba(204,165,126,.18);background:rgba(93,64,43,.35);color:#d8bea2;font:700 9px/1 Inter,sans-serif;letter-spacing:.08em;cursor:pointer}.founder-proof.claimed{border-color:rgba(210,172,130,.26);box-shadow:0 0 22px rgba(164,104,61,.08) inset}.founder-proof.claimed strong{color:#e7cba8;font-family:'Pixelify Sans',Inter,sans-serif}.discord-proof-note{font-size:10px;color:#766b63;margin:0 auto 18px;width:min(920px,100%);text-align:left}.discord-proof-note.offline{color:#9c745b}

.arg-glyph{position:absolute;z-index:12;width:28px;height:28px;border:0;background:transparent;color:rgba(190,156,126,.14);font:700 17px/1 'Pixelify Sans';cursor:pointer;transition:.2s;filter:drop-shadow(0 0 8px rgba(154,104,72,.04))}.arg-glyph:hover{color:rgba(222,184,143,.46);transform:scale(1.12)}.arg-glyph.found{color:rgba(183,130,81,.68);text-shadow:0 0 14px rgba(183,130,81,.20)}.arg-hero{left:8%;top:38%}.arg-project{right:8%;top:32%}.arg-archive{left:4%;bottom:24%}.arg-status{right:5%;top:46%}.arg-beta{left:7%;top:22%}.arg-footer{right:4%;top:22%}
.arg-tracker{position:fixed;z-index:180;left:18px;bottom:18px;width:220px;padding:12px 14px;border:1px solid rgba(197,157,117,.16);background:rgba(11,9,8,.88);backdrop-filter:blur(8px);opacity:0;transform:translateY(16px);pointer-events:none;transition:.3s}.arg-tracker.show{opacity:1;transform:none}.arg-tracker span{font:700 9px/1 Inter,sans-serif;letter-spacing:.16em;color:#937a66}.arg-tracker strong{float:right;font:700 10px/1 Inter,sans-serif;color:#d5b493}.arg-tracker div{clear:both;padding-top:8px;font:600 10px/1.55 'Pixelify Sans';color:#9e8b7b}
.arg-complete{position:fixed;inset:0;z-index:290;display:grid;place-items:center;background:rgba(4,3,2,.83);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}.arg-complete.open{opacity:1;visibility:visible}.arg-complete-panel{position:relative;width:min(680px,92vw);padding:26px;border:1px solid rgba(202,159,116,.22);background:linear-gradient(180deg,#17110d,#0b0908);box-shadow:0 26px 80px rgba(0,0,0,.5)}.arg-complete-panel button{position:absolute;right:12px;top:12px;width:32px;height:32px;border:1px solid rgba(255,255,255,.06);background:#100d0b;color:#ad9c8d;cursor:pointer}.arg-complete-panel small{font:700 9px/1 Inter,sans-serif;letter-spacing:.17em;color:#9b8068}.arg-complete-panel h2{font-size:42px;line-height:.95;letter-spacing:-.05em;margin:12px 0 18px}.arg-complete-panel code{display:block;padding:16px;border:1px solid rgba(255,255,255,.06);background:#080706;color:#d2b58f;font:600 14px/1.5 'Pixelify Sans'}.arg-complete-panel p{color:#968b82;font-size:12px}

.rare-event-layer{position:fixed;inset:0;z-index:170;pointer-events:none;overflow:hidden}.rare-crystal{position:absolute;top:18%;left:-80px;width:24px;height:32px;background:linear-gradient(135deg,#d0afe9,#694783);clip-path:polygon(50% 0,100% 32%,82% 100%,18% 100%,0 32%);filter:drop-shadow(0 0 14px rgba(154,101,190,.38));animation:rareCrystal 3.2s cubic-bezier(.15,.6,.2,1) forwards}@keyframes rareCrystal{0%{transform:translateX(0) rotate(0) scale(.7);opacity:0}12%{opacity:.8}100%{transform:translateX(calc(100vw + 160px)) translateY(190px) rotate(780deg) scale(1.05);opacity:0}}
.rare-rune{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%) scale(.6);font:700 88px/1 'Pixelify Sans';color:rgba(159,106,196,.62);text-shadow:0 0 28px rgba(155,99,194,.34);animation:rareRune 1.8s ease forwards}@keyframes rareRune{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}30%{opacity:.65}100%{opacity:0;transform:translate(-50%,-50%) scale(1.12)}}
.rare-silhouette{position:absolute;bottom:5%;left:-140px;width:92px;height:210px;background:#020202;clip-path:polygon(35% 0,62% 0,68% 17%,82% 26%,72% 100%,20% 100%,16% 28%,31% 18%);filter:blur(.5px);opacity:.72;animation:rareWalk 4s ease-in forwards}@keyframes rareWalk{0%{transform:translateX(0);opacity:0}14%{opacity:.55}86%{opacity:.55}100%{transform:translateX(calc(100vw + 280px));opacity:0}}
.rare-glitch{animation:rareGlitch .7s steps(2) 1}@keyframes rareGlitch{0%,100%{transform:none;text-shadow:none}20%{transform:translateX(2px);text-shadow:-3px 0 rgba(129,87,162,.55),3px 0 rgba(202,114,62,.4)}40%{transform:translateX(-3px);clip-path:inset(24% 0 41% 0)}60%{transform:translateX(1px);clip-path:inset(61% 0 12% 0)}}.rare-logo-twitch{animation:rareLogoTwitch .8s steps(3) 1}@keyframes rareLogoTwitch{0%,100%{transform:none}25%{transform:translateX(-3px) rotate(-.3deg)}50%{transform:translateX(3px) rotate(.3deg)}75%{transform:translateY(-2px)}}

@media(max-width:900px){.archive-head{grid-template-columns:1fr;gap:24px}.archive-grid{grid-template-columns:repeat(2,1fr)}.discord-proof{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.archive-grid{grid-template-columns:1fr}.discord-proof{grid-template-columns:1fr}.arg-glyph{opacity:.75}.arg-tracker{left:10px;right:10px;bottom:10px;width:auto}.archive-media,.archive-lock{height:210px}}


/* ===== V31 cleanup + hidden Towny build mini-game ===== */
.discord-proof{grid-template-columns:repeat(3,1fr)}


/* ===== V33 cinematic expansion ===== */
body{--time-warm:rgba(190,124,68,.17);--time-accent:#c69a72;--time-fog:.08}
body.theme-day{--time-warm:rgba(205,146,89,.18);--time-accent:#d7b38c;--time-fog:.035}
body.theme-dusk{--time-warm:rgba(222,112,54,.22);--time-accent:#e3a06a;--time-fog:.08}
body.theme-night{--time-warm:rgba(102,72,134,.15);--time-accent:#b895cc;--time-fog:.13}
body.theme-midnight{--time-warm:rgba(86,52,121,.20);--time-accent:#c098df;--time-fog:.19}
body:before{background:radial-gradient(circle at 50% 11%,var(--time-warm),transparent 19%),radial-gradient(circle at 50% 42%,rgba(116,74,38,.08),transparent 28%),linear-gradient(180deg,#0f0c0a 0%,#0b0908 48%,#090807 100%)}
body.theme-night .global-ash,body.theme-midnight .global-ash{opacity:.34}.hero-fog{opacity:calc(.25 + var(--time-fog))}

.world-loader{position:fixed;inset:0;z-index:9999;display:grid;place-content:center;justify-items:center;gap:18px;background:#080705;transition:opacity .55s,visibility .55s}.world-loader.done{opacity:0;visibility:hidden}.world-loader img{width:min(390px,72vw);filter:drop-shadow(0 20px 30px rgba(0,0,0,.5))}.world-loader strong{font:700 13px/1 'Pixelify Sans';letter-spacing:.18em;color:#d8c0a4}.world-loader small{font:600 10px/1 ui-monospace,monospace;color:#756b61}.loader-bar{width:min(380px,70vw);height:6px;background:#16110d;border:1px solid #2d2118}.loader-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7a5034,#ddb079);box-shadow:0 0 15px rgba(211,151,92,.2);transition:width .18s}.loader-rune{width:58px;height:58px;position:relative}.loader-rune i{position:absolute;inset:0;border:1px solid rgba(209,163,118,.22);transform:rotate(45deg);animation:loaderRune 2s linear infinite}.loader-rune i:nth-child(2){inset:10px;animation-direction:reverse}.loader-rune i:nth-child(3){inset:20px}@keyframes loaderRune{to{transform:rotate(405deg)}}

.section-transition{height:120px;position:relative;overflow:hidden;pointer-events:none}.section-transition:before{content:"";position:absolute;left:50%;top:50%;width:min(900px,85vw);height:120px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(177,108,59,.09),transparent 68%);filter:blur(18px)}.transition-fog:after{content:"";position:absolute;inset:20% -10%;background:radial-gradient(ellipse,rgba(190,180,170,.08),transparent 65%);filter:blur(22px)}.transition-runes i{position:absolute;left:calc(50% - 90px);top:50%;width:70px;height:70px;border:1px solid rgba(190,145,104,.11);transform:rotate(45deg)}.transition-runes i+ i{left:calc(50% + 20px);animation:floatShard 5s ease-in-out infinite}

.towny-growth{background:transparent}.towny-growth-head,.archives-head{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;margin-bottom:54px}.towny-growth-head h2,.archives-head h2,.world-status-copy h2{font-size:clamp(46px,5.5vw,82px);line-height:.91;letter-spacing:-.06em;margin:0}.towny-growth-head h2 span,.archives-head h2 span,.world-status-copy h2 span{color:#b89b7d}.towny-growth-head>p,.archives-head>p,.world-status-copy>p:not(.kicker){color:#9f948b;line-height:1.75;margin:0 0 8px}.towny-stage-shell{position:relative}.towny-stage{position:relative;height:600px;overflow:hidden;border:1px solid rgba(198,160,121,.16);background:#17120e;box-shadow:0 35px 100px rgba(0,0,0,.34),inset 0 0 0 5px rgba(0,0,0,.28)}.towny-sky{position:absolute;inset:0;background:linear-gradient(#37291f 0 44%,#5c4431 44% 45%,#1a1913 45%)}.towny-mountains{position:absolute;left:-5%;right:-5%;bottom:37%;height:42%;background:#29251e;clip-path:polygon(0 100%,0 68%,12% 68%,12% 54%,22% 54%,22% 34%,31% 34%,31% 49%,43% 49%,43% 23%,54% 23%,54% 39%,67% 39%,67% 16%,77% 16%,77% 42%,88% 42%,88% 60%,100% 60%,100% 100%)}.towny-ground{position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(#38402d 0 8%,#27291f 8% 18%,#1b1a15 18%)}.town-road{position:absolute;bottom:-6%;left:37%;width:27%;height:43%;background:#6b5847;clip-path:polygon(43% 0,58% 0,100% 100%,0 100%);opacity:.42}.town-plot,.town-house,.town-wall,.town-gate,.town-tower,.town-market,.town-forge{position:absolute;transition:opacity .55s,transform .65s cubic-bezier(.2,.8,.2,1)}.town-plot{bottom:20%;width:72px;height:40px;background:#4b4934;border:3px solid #25231b;opacity:.5}.plot-a{left:20%}.plot-b{left:34%}.plot-c{right:31%}.plot-d{right:18%}.town-house{bottom:20%;width:80px;height:72px;background:#6c4c33;border:4px solid #261b14;transform:translateY(28px) scale(.86);opacity:0}.town-house:before{content:"";position:absolute;left:-8px;right:-8px;top:-34px;height:36px;background:#3d2920;clip-path:polygon(50% 0,100% 100%,0 100%)}.town-house:after{content:"";position:absolute;left:12px;bottom:0;width:18px;height:30px;background:#241812}.house-a{left:22%}.house-b{left:42%;width:94px;height:84px}.house-c{right:21%}.town-wall{bottom:18%;height:86px;width:31%;background:repeating-linear-gradient(90deg,#675d4d 0 42px,#4f483c 42px 46px);border:4px solid #302a23;opacity:0}.wall-left{left:2%}.wall-right{right:2%}.town-gate{left:50%;bottom:18%;width:120px;height:120px;transform:translateX(-50%) translateY(40px);background:#5d5142;border:5px solid #2e271f;opacity:0}.town-gate:after{content:"";position:absolute;left:32px;right:32px;bottom:0;height:76px;background:#1a1410}.town-tower{bottom:18%;width:78px;height:150px;background:#655b4c;border:5px solid #302920;opacity:0}.tower-l{left:8%}.tower-r{right:8%}.town-market{left:48%;bottom:22%;width:150px;height:65px;opacity:0}.town-market i{position:absolute;bottom:0;width:38px;height:58px;background:#80593a;border:3px solid #2a1d15}.town-market i:nth-child(2){left:48px}.town-market i:nth-child(3){left:96px}.town-forge{right:31%;bottom:21%;width:92px;height:92px;background:#4e3929;border:4px solid #241a14;opacity:0}.town-forge:after{content:"";position:absolute;right:12px;bottom:10px;width:26px;height:24px;background:#b25b2e;box-shadow:0 0 18px rgba(204,97,46,.36)}.towny-stage[data-phase="2"] .house-a,.towny-stage[data-phase="2"] .house-b,.towny-stage[data-phase="3"] .town-house,.towny-stage[data-phase="4"] .town-house{opacity:1;transform:none}.towny-stage[data-phase="3"] .town-wall,.towny-stage[data-phase="3"] .town-gate,.towny-stage[data-phase="4"] .town-wall,.towny-stage[data-phase="4"] .town-gate,.towny-stage[data-phase="4"] .town-tower{opacity:1;transform:none}.towny-stage[data-phase="4"] .town-market,.towny-stage[data-phase="4"] .town-forge{opacity:1;transform:none}.towny-stage[data-phase="4"] .house-c{opacity:1;transform:none}.towny-stage-ui{position:absolute;left:22px;bottom:22px;z-index:5;max-width:450px;padding:16px 18px;background:rgba(9,8,7,.78);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(7px)}.towny-stage-ui span{display:block;font:700 10px/1 'Pixelify Sans';letter-spacing:.16em;color:#aa8a6d}.towny-stage-ui strong{display:block;margin-top:5px;font-size:25px}.towny-stage-ui small{display:block;margin-top:7px;color:#9a8f86;line-height:1.6}.towny-phase-controls{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.06);border-top:0}.towny-phase-controls button{height:68px;background:rgba(12,10,8,.62);color:#8e8278;border:0;border-right:1px solid rgba(255,255,255,.05);text-align:left;padding:0 18px;cursor:pointer}.towny-phase-controls button:last-child{border-right:0}.towny-phase-controls button.active{background:rgba(80,55,37,.45);color:#eadacb}.towny-phase-controls span{display:block;font:700 9px/1 'Pixelify Sans';color:#6e6258}.towny-phase-controls b{display:block;margin-top:6px;font-size:12px}

.archive-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.archive-card{position:relative;min-height:230px;padding:22px;border:1px solid rgba(199,160,121,.12);background:linear-gradient(180deg,rgba(30,22,17,.72),rgba(12,10,8,.45));color:#e8ded4;text-align:left;cursor:pointer;overflow:hidden}.archive-card:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,222,187,.05) 50%,transparent 70%);transform:translateX(-120%);transition:.7s}.archive-card:hover:before{transform:translateX(120%)}.archive-card span{font:700 10px/1 'Pixelify Sans';letter-spacing:.14em;color:#846d59}.archive-card strong{display:block;margin-top:105px;font-size:17px;line-height:1.05}.archive-card small{display:block;margin-top:10px;font-size:9px;color:#7d7168}.archive-card.classified{background:linear-gradient(180deg,rgba(25,17,28,.74),rgba(10,8,12,.55));border-color:rgba(143,101,164,.18)}.archive-card.classified:after{content:"LOCKED";position:absolute;right:15px;top:15px;font:700 9px 'Pixelify Sans';color:#8c7198}.archive-card.classified.unlocked:after{content:"UNLOCKED";color:#c3a2d2}.memory-grid{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.memory-crystal{height:130px;display:grid;grid-template-columns:76px 1fr;align-items:center;gap:16px;padding:0 20px;text-align:left;border:1px solid rgba(255,255,255,.06);background:rgba(15,12,10,.55);color:#dfd3c8;cursor:pointer}.memory-crystal i{width:52px;height:66px;background:linear-gradient(135deg,#d7b2eb,#6c4b83 55%,#2a2030);clip-path:polygon(50% 0,100% 34%,80% 100%,20% 100%,0 34%);filter:drop-shadow(0 0 18px rgba(141,96,171,.2));animation:floatShard 5s ease-in-out infinite}.memory-crystal span{display:block;font:700 9px 'Pixelify Sans';color:#876f93}.memory-crystal strong{display:block;margin-top:6px;font-size:14px}.archive-overlay,.memory-overlay,.arg-terminal-overlay{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:24px;background:rgba(4,3,2,.82);backdrop-filter:blur(9px);opacity:0;visibility:hidden;transition:.25s}.archive-overlay.open,.memory-overlay.open,.arg-terminal-overlay.open{opacity:1;visibility:visible}.archive-panel,.memory-player,.arg-terminal-panel{position:relative;width:min(850px,94vw);padding:28px;border:1px solid rgba(200,162,124,.18);background:linear-gradient(180deg,#15100c,#0a0807);box-shadow:0 32px 100px rgba(0,0,0,.56)}.archive-panel>button,.memory-player>button,.arg-terminal-panel>button{position:absolute;right:14px;top:14px;width:34px;height:34px;border:1px solid rgba(255,255,255,.07);background:#15100c;color:#baa998;cursor:pointer}.archive-panel>small{font:700 10px 'Pixelify Sans';letter-spacing:.16em;color:#9e8268}.archive-panel h2{font-size:clamp(42px,6vw,72px);line-height:.92;letter-spacing:-.05em;margin:16px 0 24px}.archive-panel #archiveBody{color:#a99d93;line-height:1.75}.memory-player{padding:16px}.memory-screen{position:relative;height:min(64vh,520px);overflow:hidden;background:#080706;border:1px solid rgba(255,255,255,.06)}.memory-scene{position:absolute;inset:0;background:linear-gradient(180deg,#2e221a,#4a3829 45%,#12130f 46%);transform:scale(1.08);transition:6s linear}.memory-overlay.open .memory-scene{transform:scale(1)}.memory-scene:before{content:"";position:absolute;left:-5%;right:-5%;bottom:25%;height:42%;background:#1e2119;clip-path:polygon(0 100%,0 60%,12% 60%,12% 44%,23% 44%,23% 30%,34% 30%,34% 53%,48% 53%,48% 23%,59% 23%,59% 41%,73% 41%,73% 14%,84% 14%,84% 52%,100% 52%,100% 100%)}.memory-scan{position:absolute;inset:0;z-index:3;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px);pointer-events:none}.memory-caption{position:absolute;z-index:4;left:24px;right:24px;bottom:22px;padding:18px;background:rgba(8,7,6,.72);border:1px solid rgba(255,255,255,.07)}.memory-caption span{font:700 10px 'Pixelify Sans';color:#a789b6}.memory-caption strong{display:block;margin-top:5px;font-size:26px}.memory-caption p{margin:8px 0 0;color:#aaa098;line-height:1.55}.arg-terminal-panel{font-family:ui-monospace,monospace}.arg-terminal-panel>span{color:#91aa79}.arg-terminal-panel p{color:#8c867f}.arg-terminal-panel>div{display:grid;grid-template-columns:24px 1fr 70px;gap:8px;align-items:center}.arg-terminal-panel input{height:44px;background:#080a07;border:1px solid #293125;color:#c9d1c1;padding:0 12px;font:inherit}.arg-terminal-panel div button{height:44px;background:#182016;border:1px solid #3d4c35;color:#a9bd96;cursor:pointer}.arg-terminal-panel pre{min-height:70px;margin:18px 0 0;padding:14px;background:#080a07;color:#8d9d82;border:1px solid #22291f;white-space:pre-wrap}

.world-status-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px 60px;align-items:center}.world-node{padding:22px;border:1px solid rgba(255,255,255,.07);background:rgba(11,9,7,.68);box-shadow:0 25px 70px rgba(0,0,0,.28)}.node-head{display:flex;justify-content:space-between;gap:20px;font:700 11px 'Pixelify Sans';letter-spacing:.12em}.node-head span{color:#d4bea7}.node-head b{color:#8e9f7a}.node-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:20px;background:rgba(255,255,255,.05)}.node-metrics div{padding:18px 12px;background:#0d0b09}.node-metrics small{display:block;font-size:8px;color:#645e58}.node-metrics strong{display:block;margin-top:7px;font-size:14px}.node-line{height:4px;margin-top:18px;background:#17130f;overflow:hidden}.node-line i{display:block;width:18%;height:100%;background:#819b6c;animation:nodeScan 2s ease-in-out infinite}@keyframes nodeScan{50%{transform:translateX(460%)}}.world-node p{margin:14px 0 0;color:#756d67;font-size:11px}.beta-seal{grid-column:1/-1;display:grid;grid-template-columns:130px 1fr;gap:26px;align-items:center;padding:22px;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.seal-core{width:110px;height:110px;position:relative;display:grid;place-items:center}.seal-core i{position:absolute;inset:0;border:1px solid rgba(202,158,116,.24);transform:rotate(45deg)}.seal-core i:nth-child(2){inset:14px;transform:rotate(10deg)}.seal-core i:nth-child(3){inset:28px;transform:rotate(45deg)}.seal-core strong{font:700 38px 'Pixelify Sans';color:#c7a17b}.seal-copy small{display:block;font:700 9px 'Pixelify Sans';letter-spacing:.15em;color:#78695d}.seal-copy strong{display:block;margin-top:6px;font-size:26px}.seal-copy span{display:block;margin-top:6px;color:#8d8177;font-size:12px}

body.theme-midnight .arg-glyph{filter:drop-shadow(0 0 8px rgba(177,121,210,.18))}.rare-event-layer{mix-blend-mode:screen}.cursor-aura{background:radial-gradient(circle,rgba(215,161,104,.035),transparent 62%);width:340px;height:340px}
@media(max-width:900px){.towny-growth-head,.archives-head,.world-status-grid{grid-template-columns:1fr;gap:30px}.towny-stage{height:520px}.towny-phase-controls{grid-template-columns:repeat(2,1fr)}.archive-grid{grid-template-columns:repeat(2,1fr)}.memory-grid{grid-template-columns:1fr}.node-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.towny-stage{height:460px}.archive-grid{grid-template-columns:1fr}.towny-phase-controls{grid-template-columns:1fr}.beta-seal{grid-template-columns:1fr}.seal-core{margin:auto}.node-metrics{grid-template-columns:1fr 1fr}.world-loader img{width:78vw}}


/* ===== V34 battle patterns + cleanup ===== */
.intent-pill.feint{border-color:rgba(211,174,102,.48)!important}.intent-pill.feint b{color:#e2c17c!important}
.intent-pill.counter{border-color:rgba(110,207,255,.54)!important;box-shadow:inset 0 0 0 1px rgba(118,219,255,.08),0 0 20px rgba(86,183,226,.08)!important}.intent-pill.counter b{color:#aeeaff!important}
.boss-shield{left:auto!important;right:8%!important;bottom:68px!important;width:256px!important;height:256px!important;background:url('assets/fx-magic-shield.png') center/contain no-repeat!important;image-rendering:pixelated!important;transform:scale(.72) scaleX(-1)!important;filter:drop-shadow(0 0 16px rgba(95,205,255,.42))!important}
.battle-stage.boss-guard-fx .boss-shield{animation:bossShieldPop .58s steps(5) forwards}
@keyframes bossShieldPop{0%{opacity:0;transform:scale(.42) scaleX(-1)}24%{opacity:1}62%{opacity:1;transform:scale(.88) scaleX(-1)}100%{opacity:0;transform:scale(1.04) scaleX(-1)}}
.battle-stage.boss-counter-flash:after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;background:radial-gradient(circle at 74% 56%,rgba(160,231,255,.26),transparent 13%);animation:bossCounterFlash .42s steps(4) forwards}
@keyframes bossCounterFlash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
.rare-crystal,.rare-glitch{display:none!important}
@media(max-width:760px){.boss-shield{right:4%!important;bottom:145px!important;width:190px!important;height:190px!important}}
