/* Designer v23 screen.css, scoped to the opt-in Home. Original art is fingerprinted WebP. */
@font-face{font-family:"V23 Roboto Condensed";src:url("assets/menu/designer-v23/fonts/roboto-condensed-934acd8f4125.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"V23 Russo One";src:url("assets/menu/designer-v23/fonts/russo-one-13e9a68d703b.woff2") format("woff2");font-weight:400;font-display:swap}
.v23-home{color-scheme:dark;--gold:#d7b76c;--pale-gold:#eacb81;--ink:#000;--panel:#010101;--menu:#000;--text:#d6d6d3;--secondary:#838580;--muted:#71736c;--border:#53544c;--hp-start:#c80e00;--hp-mid:#ce334f;--hp-end:#f17f94}
.v23-home *{box-sizing:border-box}
.v23-home button{font:inherit;color:inherit;border:0;padding:0;background:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer}
.v23-home button:focus-visible{outline:2px solid var(--pale-gold);outline-offset:4px}
.v23-home p,.v23-home h1{margin:0}
.v23-home .symbols{position:absolute;width:0;height:0;overflow:hidden}
.v23-home{position:relative;width:100%;max-width:480px;height:100svh;min-height:164vw;overflow:hidden;isolation:isolate;container-type:inline-size;background:var(--ink);box-shadow:0 0 100px #000;--px:0;--py:0;--footer-height:calc(54cqw + env(safe-area-inset-bottom,0px))}
@media(min-width:480px){
.v23-home{min-height:864px}
}
@media(min-width:700px){
.v23-home{border-right:1px solid #171813;border-left:1px solid #171813}
}
.v23-home .environment{position:absolute;inset:0;background:var(--home-background,url("assets/menu/designer-v23/images/background-crowns-f06496186f2d.webp")) center 25%/cover;z-index:-6;filter:brightness(.68)}
.v23-home .ambient-light{position:absolute;inset:4% -40% 16%;z-index:-5;pointer-events:none;background:conic-gradient(from 147deg at 46% 0%,transparent 0deg,#c8964222 8deg,transparent 19deg,transparent 345deg,#e3b7641a 352deg,transparent);filter:blur(7px);animation:v23-light-breathe 9s ease-in-out infinite}
.v23-home .scene-vignette{position:absolute;inset:0;z-index:-4;background:linear-gradient(#05050422,#08080500 26%,#05050400 57%,#030403ee 85%),radial-gradient(ellipse at 49% 35%,transparent 22%,#0008 75%)}
.v23-home .player{position:absolute;z-index:12;top:2.8%;left:6.7%;right:6.7%;display:flex;gap:3.6cqw;align-items:center}
.v23-home .avatar{width:16cqw;height:16cqw;flex:none;border:1px solid var(--gold);border-radius:6px;overflow:hidden;background:#070907;box-shadow:inset 0 0 0 2px #181912,0 3px 15px #0008}
.v23-home .avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.v23-home .player-details{flex:1;min-width:0}
.v23-home .player-line{display:flex;align-items:center;justify-content:space-between}
.v23-home h1{font-size:4.3cqw;letter-spacing:.05em;font-weight:600}
.v23-home .level{font-size:3.2cqw;color:var(--text);display:flex;align-items:center;gap:10px;margin-top:2px}
.v23-home .level-rule{flex:1;height:1px;background:linear-gradient(90deg,#34372e,transparent)}
.v23-home .health-track{height:1.7cqw;margin-top:2cqw;overflow:hidden;background:#141613;border:1px solid #34372e;border-radius:8px;box-shadow:0 1px 4px #000}
.v23-home .health-track>span{display:block;width:0;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--hp-start),var(--hp-mid) 50%,var(--hp-end));position:relative;overflow:hidden;animation:v23-hp-pulse 3.6s ease-in-out infinite}
.v23-home .health-track>span:after{content:"";position:absolute;inset:-30% -15%;background:linear-gradient(105deg,transparent 35%,#ffced940 48%,#fff0f64d 50%,transparent 64%);transform:translateX(-100%);animation:v23-hp-sheen 6s ease-in-out infinite}
.v23-home .health-label{font-size:2.65cqw;letter-spacing:.04em;color:#aaafa5;margin-top:1.3cqw}
.v23-home .health-label span{color:var(--secondary)}
.v23-home .manifesto{position:absolute;z-index:-1;top:10.5%;left:1%;width:28%;height:39.5%;transform:rotate(-3deg);transform-origin:50% 0;animation:v23-left-banner-wave 9s ease-in-out infinite;will-change:transform}
.v23-home .manifesto img{width:100%;height:100%;object-fit:fill;filter:brightness(.85)}
.v23-home .banner{position:absolute;z-index:-1;right:-1.5%;top:13.2%;width:23%;height:38%;transform-origin:50% 0;animation:v23-flag-wave 7.7s ease-in-out infinite;filter:brightness(.72);will-change:transform}
.v23-home .banner>img{width:100%;height:100%;object-fit:fill}
.v23-home .cloth-light{position:absolute;inset:0;mask-image:var(--home-flag-mask,url("assets/menu/designer-v23/images/flag-d28a25260f12.webp"));mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:var(--home-flag-mask,url("assets/menu/designer-v23/images/flag-d28a25260f12.webp"));-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat;background:linear-gradient(85deg,transparent 15%,#b39f7510 35%,#0008 55%,#e8d4a81a 78%,transparent);mix-blend-mode:screen;animation:v23-cloth-shine 7.7s ease-in-out infinite}
.v23-home .emblem-halo{position:absolute;z-index:-3;left:23%;top:13.3%;width:55%;aspect-ratio:1;background:radial-gradient(#c6a25612,transparent 68%);filter:blur(15px);animation:v23-halo-breathe 6s ease-in-out infinite}
.v23-home .emblem{position:absolute;z-index:0;left:27%;top:14.4%;width:46%;aspect-ratio:1;--diameter:46cqw;--depth:3.4cqw;--face-light:.53;--edge-light:.55;--depth-blur:.04cqw;transform-style:preserve-3d;animation:v23-emblem-float 12s ease-in-out infinite;will-change:transform}
.v23-home .medallion{position:absolute;inset:0;transform-style:flat}
.v23-home .medallion-face{position:absolute;inset:0;border-radius:50%;overflow:hidden;transform:translateZ(calc(var(--depth) / 2));backface-visibility:hidden;background:#8d6c36;filter:brightness(var(--face-light)) blur(var(--depth-blur,0px))}
.v23-home .medallion-face img{position:absolute;left:-.6%;top:-.2%;width:101.8%;height:101.8%;object-fit:contain}
.v23-home .medallion-bevel{position:absolute;inset:0;border-radius:50%;box-shadow:inset .35cqw .45cqw .4cqw #fff0b675,inset -.4cqw -.5cqw .55cqw #241908cc,inset 0 0 0 .35cqw #be96534d;pointer-events:none}
.v23-home .emblem-sheen{position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,transparent 30%,#fff1cd12 47%,transparent 64%);mix-blend-mode:screen;opacity:0;animation:v23-emblem-shine 12s ease-in-out infinite;pointer-events:none}
.v23-home .coin{position:absolute;z-index:-1;aspect-ratio:1;--face-light:.34;--edge-light:.36;--depth-blur:.08cqw;transform-style:preserve-3d;animation:v23-coin-drift 14s ease-in-out infinite;will-change:transform}
.v23-home .coin-left{left:-10%;top:38%;width:25%;--diameter:25cqw;--depth:2.4cqw;--tilt:-30deg;--yaw:58deg;animation-delay:-3s}
.v23-home .coin-back{left:83%;top:32%;z-index:-2;width:12%;--diameter:12cqw;--depth:1.1cqw;--tilt:18deg;--yaw:36deg;--face-light:.2;--edge-light:.22;--depth-blur:.12cqw;animation-delay:-8s;animation-duration:17s}
.v23-home .coin-right{right:-5%;top:55%;width:20%;--diameter:20cqw;--depth:1.9cqw;--tilt:25deg;--yaw:63deg;--face-light:.29;--edge-light:.31;--depth-blur:.11cqw;animation-delay:-5s}
.v23-home .coin .emblem-sheen{animation-delay:-5s}
.v23-home .coin-right .emblem-sheen{animation-delay:-8s}
.v23-home .hero{position:absolute;z-index:3;top:27%;left:11%;width:70%;height:39%;transform-origin:51% 100%;animation:v23-hero-breathe 6.6s ease-in-out infinite;will-change:transform;pointer-events:none;mask-image:linear-gradient(#000 77%,transparent 100%)}
.v23-home .hero img{width:100%;height:100%;object-fit:contain;object-position:50% 100%;filter:brightness(.83) drop-shadow(4px 0 12px #c99b2520)}
.v23-home .atmosphere{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.v23-home .smoke{position:absolute;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse at 28% 48%,#b8a17d20,transparent 34%),radial-gradient(ellipse at 70% 60%,#b8a17d29,transparent 36%),radial-gradient(ellipse at 48% 75%,#c1b2901a,transparent 38%);filter:blur(14px);will-change:transform;animation:v23-smoke-drift 17s ease-in-out infinite}
.v23-home .smoke-back{z-index:1;left:5%;top:30%;width:90%;height:37%;animation-delay:-4s}
.v23-home .smoke-right{z-index:4;right:-15%;top:34%;width:48%;height:28%;opacity:.8;animation-duration:20s;animation-delay:-11s}
.v23-home .smoke-front{z-index:5;left:-20%;top:53%;width:100%;height:17%;opacity:.75;animation-delay:-7s;filter:blur(11px)}
.v23-home .battle{position:absolute;z-index:8;bottom:calc(var(--footer-height) + 3cqw);left:3%;width:94%;aspect-ratio:2112/745;filter:drop-shadow(0 8px 14px #000);isolation:isolate;transition:filter .2s}
.v23-home .battle-raster{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.v23-home .battle-sheen{position:absolute;inset:0;overflow:hidden;mask-image:var(--home-battle-mask,url("assets/menu/designer-v23/images/battle-raster-396a5da67be2.webp"));mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-image:var(--home-battle-mask,url("assets/menu/designer-v23/images/battle-raster-396a5da67be2.webp"));-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat;pointer-events:none;mix-blend-mode:screen}
.v23-home .battle-sheen:after{content:"";position:absolute;inset:-20% -50%;background:linear-gradient(112deg,transparent 40%,#ffecbd12 47%,#fff6dc28 50%,transparent 58%);transform:translateX(-90%);animation:v23-battle-sheen 7.5s ease-in-out infinite}
.v23-home .battle-led{position:absolute;top:12%;height:78%;width:17%;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,#ff4e052b,transparent 68%);filter:blur(5px);mix-blend-mode:screen;animation:v23-led-pulse 4.4s ease-in-out infinite}
.v23-home .battle-led-left{left:2%}
.v23-home .battle-led-right{right:2%}
.v23-home .battle:active,.v23-home .battle.is-pressed{filter:drop-shadow(0 0 12px #e4a34288) brightness(1.16)}
.v23-home .home-footer{position:absolute;z-index:9;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:linear-gradient(transparent,#010101 48%,#000)}
.v23-home .quick-actions{width:90%;height:28cqw;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3.5cqw;flex:none}
.v23-home .quick-card{position:relative;text-align:left;overflow:hidden;border:1px solid var(--border);border-radius:5px;box-shadow:inset 0 0 0 1px #b1a88808,0 5px 18px #0007;background:var(--panel);transition:border-color .2s,filter .2s}
.v23-home .card-picture{position:absolute;inset:0 0 38%;overflow:hidden;background:#0b0c08}
.v23-home .card-picture img{width:100%;height:100%;object-fit:cover;object-position:center;filter:none;transition:filter .2s}
.v23-home .card-picture:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0004,transparent 60%),linear-gradient(transparent 72%,#080a0833)}
.v23-home .card-badge{position:absolute;top:2.4cqw;left:2.7cqw;width:5.5cqw;height:5.5cqw;display:grid;place-items:center;color:var(--gold);filter:drop-shadow(0 2px 5px #000)}
.v23-home .card-badge svg{width:4.4cqw;height:4.4cqw}
.v23-home .card-footer{position:absolute;bottom:0;left:0;right:0;height:39%;display:flex;align-items:center;justify-content:space-between;gap:1cqw;padding:0 3cqw;background:var(--panel)}
.v23-home .card-footer:before{content:"";position:absolute;top:0;left:3cqw;right:3cqw;height:1px;background:linear-gradient(90deg,#aa8b4b66,transparent)}
.v23-home .card-copy{display:flex;flex-direction:column;gap:.8cqw;min-width:0}
.v23-home .card-copy strong{font-size:4.25cqw;line-height:1.05;font-weight:600;letter-spacing:.05em;color:var(--text);white-space:nowrap}
.v23-home .card-copy small{font-size:2.3cqw;font-weight:400;line-height:1.3;letter-spacing:.16em;color:var(--secondary);white-space:nowrap}
.v23-home .chevron{font-size:5.6cqw;line-height:1;color:var(--gold);font-family:Georgia,serif;font-weight:normal;transform:translateY(-.3cqw)}
.v23-home .quick-card.is-pressed,.v23-home .quick-card:active{border-color:#dfbd79;filter:brightness(1.15)}
.v23-home .motto{height:3cqw;line-height:3cqw;margin:3.5cqw 5% 4.5cqw;display:flex;align-items:center;justify-content:center;gap:2.5cqw;white-space:nowrap;font-size:2.03cqw;letter-spacing:.19em;color:var(--muted);flex:none}
.v23-home .motto i{height:1px;flex:1;background:#4a4c41}
.v23-home .screen-grain{position:absolute;z-index:20;inset:0 0 var(--footer-height);pointer-events:none;opacity:.02;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
@keyframes v23-hero-breathe{0%,100%{transform:translate3d(0,0,0) rotate(-.35deg) scale(1)}50%{transform:translate3d(.4cqw,-.65cqw,0) rotate(.35deg) scale(1.018)}}
@keyframes v23-emblem-float{0%,100%{transform:perspective(650px) translateY(0) rotate(-3deg) rotateY(-18deg) rotateX(8deg)}50%{transform:perspective(650px) translateY(-1.4cqw) rotate(2deg) rotateY(22deg) rotateX(-6deg)}}
@keyframes v23-emblem-shine{0%,60%,100%{opacity:0;transform:translateX(-8%) rotate(0deg)}75%{opacity:.35;transform:translateX(4%) rotate(9deg)}}
@keyframes v23-halo-breathe{0%,100%{opacity:.45;transform:scale(.95)}50%{opacity:.9;transform:scale(1.07)}}
@keyframes v23-light-breathe{0%,100%{opacity:.4;transform:rotate(-4deg)}45%{opacity:.95;transform:rotate(3deg)}70%{opacity:.6}}
@keyframes v23-flag-wave{0%,100%{transform:perspective(500px) rotate(-2deg) rotateY(-9deg) skewY(1deg) scaleX(.98)}50%{transform:perspective(500px) rotate(.6deg) rotateY(7deg) skewY(-1.4deg) scaleX(1.02)}}
@keyframes v23-cloth-shine{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes v23-coin-drift{0%,100%{transform:perspective(450px) translateY(0) rotate(var(--tilt)) rotateY(var(--yaw)) rotateX(12deg)}50%{transform:perspective(450px) translateY(-3cqw) rotate(calc(var(--tilt) + 9deg)) rotateY(calc(var(--yaw) - 32deg)) rotateX(-9deg)}}
@keyframes v23-smoke-drift{0%,100%{transform:translate3d(-3%,5%,0) scale(.9);opacity:.5}50%{transform:translate3d(6%,-9%,0) scale(1.15);opacity:1}}
@keyframes v23-battle-sheen{0%,30%{transform:translateX(-90%)}65%,100%{transform:translateX(90%)}}
@keyframes v23-led-pulse{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes v23-hp-sheen{0%,45%{transform:translateX(-100%)}75%,100%{transform:translateX(100%)}}
@keyframes v23-hp-pulse{0%,100%{filter:brightness(.94);box-shadow:0 0 4px #ce334f33}50%{filter:brightness(1.12);box-shadow:0 0 9px #ce334f80}}
.v23-home .environment{filter:brightness(.8)}
.v23-home .hero{left:8%;top:24%;width:77%;height:42%}
.v23-home .hero img{filter:brightness(.94) drop-shadow(4px 0 12px #c99b2520)}
@media(prefers-reduced-motion:reduce){
.v23-home *,.v23-home *:before,.v23-home *:after{animation:none!important;transition:none!important}
.v23-home .emblem{transform:perspective(650px) rotate(-2deg) rotateY(-14deg) rotateX(6deg)}
.v23-home .coin{transform:perspective(450px) rotate(var(--tilt)) rotateY(var(--yaw)) rotateX(8deg)}
.v23-home .atmosphere{display:none}
}
@keyframes v23-left-banner-wave{0%,100%{transform:perspective(500px) rotate(-3deg) rotateY(6deg) skewY(.5deg)}50%{transform:perspective(500px) rotate(-1.4deg) rotateY(-5deg) skewY(-.5deg)}}
.v23-home .player-number{font-family:"V23 Russo One",sans-serif;font-size:3.8cqw;font-weight:400;letter-spacing:.02em;color:var(--pale-gold)}
.v23-home .top-softness{position:absolute;z-index:6;inset:0 0 auto;height:29%;pointer-events:none;background:transparent;backdrop-filter:blur(.75cqw);-webkit-backdrop-filter:blur(.75cqw);mask-image:linear-gradient(#000 0%,#000 17%,#000d 35%,#0007 65%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0%,#000 17%,#000d 35%,#0007 65%,transparent 100%)}
.v23-home a.quick-card{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.v23-home a:focus-visible{outline:2px solid var(--pale-gold);outline-offset:4px}

/* Runtime values and hit targets; no demo level or health is inferred here. */
.v23-home{margin:0 auto;font-family:"V23 Roboto Condensed","Arial Narrow",Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;height:var(--v23-page-height,var(--tg-viewport-stable-height,100svh));--v23-nav-height:max(15cqw,62px);--footer-height:calc(39cqw + var(--v23-nav-height) + env(safe-area-inset-bottom,0px))}
.v23-home,.v23-home *,.v23-home *:before,.v23-home *:after{box-sizing:border-box}
.v23-home button{appearance:none;min-width:0;max-width:none;min-height:0;line-height:normal;box-shadow:none}
.v23-home button:focus-visible{outline:2px solid var(--pale-gold);outline-offset:4px}
.v23-home .avatar{position:relative;min-width:44px;min-height:44px;box-shadow:inset 0 0 0 2px #181912,0 3px 15px #0008}
.v23-home .player-line{gap:2cqw}
.v23-home h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.v23-home .player-number{flex:none}
.v23-home .health-track>span{width:0;transition:width .22s ease-out}
.v23-home .health-label{font-size:clamp(11px,2.65cqw,13px);line-height:1.15;letter-spacing:.02em}
.v23-home .player-context{margin-top:.8cqw;line-height:1.15;font-size:clamp(10px,2.45cqw,12px);color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v23-home .battle{bottom:calc(var(--footer-height) + 7.5cqw);box-shadow:none}
.v23-home .battle-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(22px,7cqw,34px);font-weight:700;color:var(--pale-gold);pointer-events:none}
.v23-home .battle:disabled{cursor:wait}
.v23-home .battle:disabled .battle-raster{opacity:.65}
.v23-home .battle:disabled .battle-fallback{color:#bbb5a4}
.v23-home .battle.asset-failed{border:1px solid var(--gold);border-radius:5px;background:linear-gradient(#252218,#0d0c08);min-height:72px}
.v23-home .battle.asset-failed .battle-raster,.v23-home .battle.asset-failed .battle-sheen,.v23-home .battle.asset-failed .battle-led{display:none}
.v23-home .quick-card{min-height:44px;box-shadow:inset 0 0 0 1px #b1a88808,0 5px 18px #0007}
.v23-home .card-copy small{font-size:clamp(9px,2.3cqw,11px);letter-spacing:.12em}
/* Issue #58: small CSS approximations of profile-motion.js / inventory-motion.js.
   Coordinates follow the supplied 1983x793 rasters; art and lettering stay below.
   Static clips localize the light. Only transform/opacity animate, in both tiers. */
.v23-home .card-motion{position:absolute;inset:0;pointer-events:none;opacity:.72;transition:opacity .2s}
.v23-home .card-scan,.v23-home .card-signal,.v23-home .card-metal-light{position:absolute;inset:0;pointer-events:none}
.v23-home .card-scan{overflow:hidden;clip-path:polygon(34.44% 14.25%,82.15% 22.95%,77.86% 76.67%,26.78% 57.38%)}
.v23-home .card-scan:before{content:"";position:absolute;inset:-20% 0 auto;height:20%;opacity:0;background:linear-gradient(transparent,#eacb810b 45%,#ffe2a912 50%,#eacb810b 55%,transparent);animation:v23-card-scan 5.9s linear infinite}
.v23-home .card-signal{opacity:0;background:linear-gradient(90deg,#c7954066,#f1d394);animation:v23-card-signal 3.2s ease-in-out infinite}
.v23-home .card-signal-top{clip-path:polygon(53.50% 22.19%,63.59% 25.09%,63.44% 26.61%,53.35% 23.83%)}
.v23-home .card-signal-middle{clip-path:polygon(51.59% 41.49%,61.67% 44.64%,61.52% 46.53%,51.44% 43.38%);animation-duration:4.12s;animation-delay:-1.88s}
.v23-home .card-signal-bottom{clip-path:polygon(49.62% 59.77%,59.81% 62.93%,59.66% 64.94%,49.42% 61.54%);animation-duration:4.81s;animation-delay:-3.29s}
.v23-home .card-metal-light{overflow:hidden;clip-path:polygon(20.78% 0,72.37% 0,88.96% 14.50%,93.29% 26.61%,91.28% 46.91%,90.17% 54.98%,86.94% 95.96%,18.31% 79.95%,8.77% 58.26%,17.90% 22.57%)}
.v23-home .card-metal-light:before{content:"";position:absolute;inset:0;opacity:0;background:linear-gradient(112deg,transparent 25%,#eacb810a 44%,#f1d3941c 50%,#eacb810a 56%,transparent 75%);animation:v23-card-metal-light 13.1s ease-in-out infinite}
.v23-home .card-glint{position:absolute;width:1.7%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;opacity:0;background:radial-gradient(closest-side,#ffefd8,#eacb8166 32%,#eacb8100);animation:v23-card-glint 9.2s ease-in-out infinite}
.v23-home .card-glint-top{left:87.04%;top:17.28%}
.v23-home .card-glint-center{left:59.71%;top:38.21%;animation-duration:9.9s;animation-delay:-2.1s}
.v23-home .card-glint-low{left:35.10%;top:71.25%;animation-duration:10.6s;animation-delay:-4.2s}
.v23-home .card-glint-side{left:84.11%;top:59.14%;animation-duration:11.3s;animation-delay:-6.3s}
@keyframes v23-card-scan{0%{transform:translateY(0);opacity:0}8%,88%{opacity:1}100%{transform:translateY(600%);opacity:0}}
@keyframes v23-card-signal{0%,100%{opacity:.04}45%{opacity:.5}70%{opacity:.12}}
@keyframes v23-card-metal-light{0%,100%{transform:translateX(-40%);opacity:.18}50%{transform:translateX(40%);opacity:.65}}
@keyframes v23-card-glint{0%,12.5%,100%{opacity:0}6.25%{opacity:.58}}
@media(hover:hover) and (pointer:fine){[data-motion="on"] .v23-home .quick-card:hover .card-motion{opacity:1}}
[data-motion="paused"] .v23-home .card-motion{transition:none}
[data-motion="off"] .v23-home .card-motion{opacity:0!important}
@media(prefers-reduced-motion:reduce){.v23-home .card-motion{opacity:0!important}}
@keyframes v23-hp-pulse{0%,100%{opacity:.9}50%{opacity:1}}
/* The existing menu motion owner handles visibility and Telegram activity. */
[data-motion="paused"] .v23-home *,[data-motion="paused"] .v23-home *:before,[data-motion="paused"] .v23-home *:after{animation-play-state:paused!important}
[data-motion="off"] .v23-home *,[data-motion="off"] .v23-home *:before,[data-motion="off"] .v23-home *:after{animation:none!important;transition:none!important}
[data-motion="off"] .v23-home .emblem{transform:perspective(650px) rotate(-2deg) rotateY(-14deg) rotateX(6deg)}
[data-motion="off"] .v23-home .coin{transform:perspective(450px) rotate(var(--tilt)) rotateY(var(--yaw)) rotateX(8deg)}
/* Preserve the original plates against shared menu button defaults. */
.v23-home .battle{border:0;border-radius:0;background:none;opacity:1}
.v23-home .battle.asset-failed{border:1px solid var(--gold);border-radius:5px;background:linear-gradient(#252218,#0d0c08)}

/* Status shares the original health-label row, keeping the HUD's height. */
.v23-home .health-summary{display:flex;align-items:baseline;gap:1.5cqw;margin-top:1.3cqw;min-width:0}
.v23-home .health-summary .health-label{margin-top:0;flex:none}
.v23-home .health-summary .player-context{margin-top:0;flex:1;min-width:0}

/* Issue #55: a real settings control without changing the scene or HUD height. */
.v23-home .player-line{position:relative;padding-inline-end:48px}
.v23-home .home-settings{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;border:0;background:none;color:var(--pale-gold);touch-action:manipulation}
.v23-home .home-settings svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linejoin:round;stroke-linecap:round}
.v23-home .home-settings:active{color:#fff0c2;background:#d7b76c12}

/* HUD above the identity row, clear of native Close/Menu controls. */
.v23-home .home-safe-ui{display:contents}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .menu-preview[data-menu-mode=default] .v23-home .home-safe-ui{display:block;position:absolute;inset:var(--mori-safe-top) var(--mori-safe-right) var(--mori-safe-bottom) var(--mori-safe-left);container-type:inline-size;z-index:9}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .menu-preview[data-menu-mode=default] .v23-home .player-details{background:#070706d9;box-shadow:0 0 12px 7px #070706b3;border-radius:3px}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .menu-preview[data-menu-mode=default] .v23-home .player-context{color:#b2b5ad}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .v23-home .player{top:26px;right:10%}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .v23-home .player-line{min-height:44px;padding-inline-end:56px}
[data-telegram-fullscreen=true]:not([data-telegram-layout=desktop]) .v23-home .home-settings{right:8px}

/* The canvas replaces all central decoration only after one complete GPU frame.
   display:none also stops the DOM scene's animation/filter work. */
.v23-home .home-decor-fallback{display:contents}
.v23-home .home-decor-fallback[hidden]{display:none}
.v23-home .v23-home-scene{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
.v23-home[data-home-gpu-ready="false"] .v23-home-scene{visibility:hidden}

/* #180: presentation-only entry; Shell supplies safe bounds once. */
.battle-entry-dialog{box-sizing:border-box;position:fixed;inset:var(--mori-safe-top,0px) var(--mori-safe-right,0px) var(--mori-safe-bottom,0px) var(--mori-safe-left,0px);width:min(420px,calc(100vw - var(--mori-safe-left,0px) - var(--mori-safe-right,0px) - 24px));max-width:100%;max-height:calc(min(var(--tg-viewport-height,100dvh),100dvh) - var(--mori-safe-top,0px) - var(--mori-safe-bottom,0px) - 24px);margin:auto;padding:16px;border:1px solid #9e8146;border-radius:10px;background:#0d0e0a;color:#eee7d6;overflow:auto;overscroll-behavior:contain;font:14px/1.45 Inter,Arial,sans-serif;box-shadow:0 12px 36px #0009}
.battle-entry-dialog::backdrop{background:#000b}
.battle-entry-dialog .battle-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.battle-entry-dialog h2{margin:0;color:#eacb81;font-size:23px}
.battle-entry-dialog h3{margin:0 0 8px;font-size:16px}
.battle-entry-dialog section{padding:16px 0 0;margin-top:16px;border-top:1px solid #66533666}
.battle-entry-dialog p{margin:0 0 12px;overflow-wrap:anywhere}
.battle-entry-dialog button{width:100%;min-height:44px;padding:10px 12px;border:1px solid #8c723e;border-radius:4px;background:#1b1911;color:#eee7d6;line-height:1.4;overflow-wrap:anywhere}
.battle-entry-dialog .battle-entry-heading button{flex:none;width:44px;font-size:24px;line-height:1;padding:0}
.battle-entry-dialog button:disabled{opacity:.55;cursor:not-allowed}
.battle-entry-dialog button:active:not(:disabled){background:#292315}
.battle-entry-dialog .battle-entry-actions{display:grid;gap:8px;margin-top:12px}
.battle-entry-dialog .battle-entry-link{display:grid;gap:6px;margin-top:12px;min-width:0}
.battle-entry-dialog input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid #665336;border-radius:4px;padding:8px;background:#080907;color:#eacb81;font:inherit}
.battle-entry-dialog .battle-entry-hint{font-size:12px;color:#bdb29b}
