/* V3.27: Forge reveal and a quieter player home. */
.forge-tier-reveal{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 45%,#234447,#08131efc 72%);overflow:auto;isolation:isolate;text-align:center}.forge-tier-content{position:relative;width:min(600px,100%);z-index:2}.forge-tier-echo{position:relative;display:grid;place-items:center;height:clamp(110px,27vh,240px);margin:12px auto}.forge-tier-echo img{height:100%;max-width:85%;object-fit:contain;filter:drop-shadow(0 0 22px #b5ffd0);animation:forge-charge .65s ease-in both}.forge-tier-echo i{position:absolute;width:220px;height:220px;border:3px solid #b1fff2;border-radius:50%;opacity:0;pointer-events:none}.forge-tier-impact .forge-tier-echo i{animation:forge-shock .8s ease-out}.forge-tier-rays{position:absolute;width:150vmax;height:150vmax;left:calc(50% - 75vmax);top:calc(50% - 75vmax);background:repeating-conic-gradient(#8affd812 0 9deg,transparent 9deg 25deg);animation:forge-rays 25s linear infinite;pointer-events:none}.forge-tier-reveal h2{font-size:clamp(22px,4vw,36px);color:#f2fff6}.forge-tier-number{display:flex;gap:15px;justify-content:center;align-items:center;margin:20px 0;font-size:18px}.forge-tier-number strong{font-size:clamp(30px,7vw,58px);color:#d6fa72}.forge-tier-gains{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.forge-tier-gains span{color:#b3d2cd;font-size:12px}.forge-tier-gains strong{display:block;color:#dcffae;font-size:clamp(20px,5vw,30px)}.forge-tier-reveal button{min-height:48px;min-width:220px}.forge-milestone{background:radial-gradient(ellipse,#51442b,#101a27 75%)}.forge-tier-number,.forge-tier-gains{opacity:0}.forge-tier-impact .forge-tier-number,.forge-tier-impact .forge-tier-gains{animation:forge-gain .45s ease-out forwards}.forge-tier-impact .forge-tier-gains{animation-delay:.2s}
@keyframes forge-charge{from{transform:scale(.65);filter:brightness(.5)}to{transform:scale(1);filter:brightness(1.4) drop-shadow(0 0 20px #b5ffd0)}}@keyframes forge-shock{from{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(4)}}@keyframes forge-rays{to{transform:rotate(360deg)}}@keyframes forge-gain{from{opacity:0;transform:translateY(15px) scale(.9)}to{opacity:1;transform:none}}
.home-bell{position:relative;min-width:44px;min-height:44px;font-size:21px}.home-bell b{position:absolute;right:0;top:0;font:700 10px system-ui;background:#d6fa72;color:#182116;border-radius:20px;min-width:17px;padding:2px}.home-notices{position:absolute;right:0;top:52px;z-index:90;width:min(340px,90vw);border:1px solid #526257;border-radius:15px;background:#15202a;box-shadow:0 15px 40px #0008;padding:14px}.home-notices h2{font-size:19px;margin-bottom:10px}.home-notices a{display:block;color:#eff5df;text-decoration:none;padding:13px 6px;border-bottom:1px solid #34433b}.home-notices a small{display:block;color:#acbdc5;margin-top:5px}.home-notices p{font-size:13px;color:#b7c9cb}.header-actions{position:relative}.home-page .player-heading{padding-bottom:18px}.home-page .player-heading h1{font-size:clamp(32px,6vw,48px);margin:12px 0}.home-page .hub-grid{margin-top:5px}.home-feature{display:grid;grid-template-columns:minmax(100px,180px) minmax(0,1fr);gap:24px;align-items:center;background:radial-gradient(ellipse at 15% 50%,#334c39,#17232a 65%);border:1px solid #43594a;border-radius:18px;padding:24px;margin:24px 0}.home-feature img{width:100%;height:155px;object-fit:contain;filter:drop-shadow(0 12px 15px #0006)}.home-feature h2{font-size:26px;margin:6px 0}.home-feature a{font-size:12px;color:#ddf6a7}.home-feature p{font-size:13px;color:#bcd0cb;line-height:1.6}.home-play-heading{margin-top:32px}.home-play-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 24px}.home-play-card{position:relative;padding:24px 20px;min-height:170px;text-decoration:none;color:#eff7e9;border:1px solid #465d54;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#254837,#172733)}.home-play-card:nth-child(2){background:linear-gradient(145deg,#493f60,#202b3c)}.home-play-card:nth-child(3){background:linear-gradient(145deg,#4f4230,#203c47)}.home-play-card>span{font-size:32px;display:block;margin-bottom:15px}.home-play-card strong{display:block;font-size:19px}.home-play-card small{display:block;color:#c5d6cd;font-size:12px;margin-top:8px;line-height:1.5}.home-guide{display:flex;gap:16px;align-items:center;margin:28px 0}.home-guide img{width:95px;height:110px;object-fit:contain;image-rendering:pixelated}.home-guide a{display:block;text-decoration:none;padding:18px;border:1px solid #637355;background:#243126;color:#edf4dc;border-radius:16px;line-height:1.5;font-size:14px}.home-guide a small{display:block;color:#d6fa72;margin-top:7px}
@media(max-width:600px){.home-play-grid{grid-template-columns:1fr}.home-play-card{min-height:100px;padding:18px 18px 18px 80px}.home-play-card>span{position:absolute;left:22px;top:26px}.home-feature{padding:16px;gap:12px;grid-template-columns:100px 1fr}.home-feature img{height:125px}.home-feature h2{font-size:21px}.home-guide img{width:65px;height:90px}.home-guide{gap:10px}.home-guide a{font-size:13px;padding:13px}}
@media(max-height:500px){.forge-tier-content{display:grid;grid-template-columns:160px 1fr;gap:8px}.forge-tier-content>.eyebrow{grid-column:1/-1;margin:0}.forge-tier-echo{grid-row:2/5;height:160px;margin:0}.forge-tier-content h2{font-size:23px}.forge-tier-number{margin:0}.forge-tier-number strong{font-size:35px}.forge-tier-gains{margin:5px 0}.forge-tier-content button{grid-column:1/-1;justify-self:center}}
@media(prefers-reduced-motion:reduce){.forge-tier-reveal *{animation:none!important}.forge-tier-impact .forge-tier-number,.forge-tier-impact .forge-tier-gains{opacity:1}.forge-tier-echo i{display:none}}
/* Slipper arms attach at the sides and swing from independent shoulders. */
.dg-slipper-rig{overflow:visible;image-rendering:pixelated}.dg-slipper-arm{transform-box:view-box;animation:slipper-arm 2s ease-in-out infinite}.dg-slipper-left{transform-origin:39px 78px}.dg-slipper-right{transform-origin:93px 75px;animation-delay:-1s}.dg-monster-attacking .dg-slipper-arm .dg-pixel-strike{animation:slipper-punch .45s ease-out;transform-origin:64px 88px}@keyframes slipper-arm{50%{transform:rotate(3deg)}}@keyframes slipper-punch{50%{transform:translateX(-5px) rotate(-4deg)}}#echo-dungeons.dg-animation-paused .dg-slipper-arm{animation-play-state:paused!important}#echo-dungeons.dg-effects-off .dg-slipper-arm{animation:none!important}@media(prefers-reduced-motion:reduce){.dg-slipper-arm{animation:none!important}}
/* A bounded notification panel: fixed controls, one independently scrolling list. */
.home-notices-portal{box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:10px;overscroll-behavior:contain}.home-notices-portal[hidden]{display:none!important}.hn-heading{display:flex;align-items:center;gap:8px;flex:none}.hn-heading h2{flex:1;margin:0;font-size:19px}.home-notices-portal button{min-width:44px;min-height:44px;flex:none;border:1px solid #58736c;border-radius:8px;background:#203a42;color:#edf8f0;cursor:pointer;font:inherit}.hn-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:1 1 auto}.hn-item{display:flex;gap:6px;align-items:center;border-bottom:1px solid #34433b}.hn-item a{min-width:0;flex:1;border:0;overflow-wrap:anywhere}.hn-item button{background:transparent;font-size:22px}.hn-footer{display:flex;align-items:center;gap:10px;flex:none;padding-top:8px}.hn-footer small{font-size:11px;color:#acbdc5}.hn-footer button{padding:5px 10px}.hn-footer button:disabled{opacity:.45;cursor:default}.hn-error{margin:6px 0 0;flex:none}.hn-error[hidden]{display:none}

/* Player challenges are dormant during the single-player release. */
[data-mode="friend"],#publicSyncStatus,#leaderboard,[data-hub-group="social"],[data-nav-route="leaderboard"],#shareQr,#exportEcho{display:none!important}
.trials-sweep{width:min(700px,92vw);max-height:90dvh;overflow:auto;text-align:center;background:#132b31;color:#edf5dc;border:2px solid #d5c27b;border-radius:20px}.trials-sweep::backdrop{background:#061013d9}.sweep-stage{height:210px;display:flex;align-items:center;justify-content:space-evenly;position:relative;overflow:hidden;background:radial-gradient(ellipse,#355d52,transparent 70%)}.sweep-hero{width:30%;height:160px;object-fit:contain;image-rendering:pixelated;z-index:1}.sweep-rival{width:38%;height:170px;display:flex;align-items:center}.sweep-rival>svg{width:70%;height:140px}.sweep-person{width:30%}.sweep-person svg{width:100%;height:100px}.sweep-impact{color:#edff98;font-size:54px;position:absolute;left:48%;text-shadow:0 0 18px #dcfb77}.trials-sweep progress{width:90%;accent-color:#d8ff73}.trials-sweep button{margin:12px}

.sweep-lineup{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;width:75%;height:170px;overflow:hidden}.sweep-lineup .echo-art{width:56px;height:56px;flex:0 1 56px}.sweep-lineup .npc-pixel-enemy{width:100%;height:100%;image-rendering:pixelated}
