:root{--rin-color-bg900:#07040e;--rin-color-bg800:#0b0614;--rin-color-bg700:#141027;--rin-color-surface700:#1b1433;--rin-color-surface600:#241648;--rin-color-brandPurple:#8a2be2;--rin-color-brandViolet:#b84dff;--rin-color-brandMagenta:#ff2f92;--rin-color-brandPink:#ff5eb8;--rin-color-brandCyan:#00d8ff;--rin-color-brandBlue:#2f6bff;--rin-color-brandGold:#ffc857;--rin-color-brandOrange:#ff8a00;--rin-color-danger500:#ff3b4a;--rin-color-success500:#42ff89;--rin-color-textPrimary:#f8f3ff;--rin-color-textSecondary:#ded0f3;--rin-color-textMuted:#bca9d8;--rin-color-ink:#05030a;--rin-space-0:0px;--rin-space-1:4px;--rin-space-2:8px;--rin-space-3:12px;--rin-space-4:16px;--rin-space-5:20px;--rin-space-6:24px;--rin-space-8:32px;--rin-space-10:40px;--rin-space-12:48px;--rin-space-16:64px;--rin-radius-sm:8px;--rin-radius-md:8px;--rin-radius-lg:8px;--rin-radius-xl:8px;--rin-radius-card:8px;--rin-radius-modal:8px;--rin-radius-pill:999px;--rin-font-xs:12px;--rin-font-sm:14px;--rin-font-md:16px;--rin-font-lg:20px;--rin-font-xl:28px;--rin-font-hero:40px;--rin-font-ui:Manrope, Inter, system-ui, sans-serif;--rin-font-mono:JetBrains Mono, ui-monospace, SFMono-Regular, monospace;--rin-motion-fast:.12s;--rin-motion-base:.22s;--rin-ease-out:cubic-bezier(.16, 1, .3, 1)}.rin-panel{box-shadow:var(--rin-shadow-panel,0 18px 60px #05030a8c);border-radius:var(--rin-radius-xl);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#1b1433eb,#050e14eb);border:1px solid #00d8ff38}.rin-primary-button{background:linear-gradient(135deg, var(--rin-color-brandCyan), var(--rin-color-brandMagenta));color:var(--rin-color-textPrimary);border-radius:var(--rin-radius-md);border:1px solid #ffffff2e}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}html{text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--rin-color-bg900);color:var(--rin-color-textPrimary);font-family:var(--rin-font-ui);cursor:url(/assets/ui/cursor-default.svg) 6 6,auto;overflow:hidden}button{font:inherit}button,a,[role=button]{cursor:url(/assets/ui/cursor-pointer.svg) 8 4,pointer}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--rin-color-brandGold);outline-offset:3px}*{scrollbar-color:#00d8ffb8 #07040e9e;scrollbar-width:thin}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:#07040e9e;border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(#00d8ffcc,#ff2f92bd);border:2px solid #07040ed1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#ffc857e6,#00d8ffd6)}.app-root{width:100%;height:100%;position:relative}.game-root{position:absolute;inset:0}.ui-layer{pointer-events:none;position:absolute;inset:0}.ui-layer>*{pointer-events:auto}.top-bar{top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute}.brand-chip,.wallet-strip,.stat-chip,.nav-button,.target-hint{color:var(--rin-color-textPrimary);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05030aad;border:1px solid #ffffff29;box-shadow:0 12px 36px #00000047}.brand-chip{cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 14px;display:inline-flex}.brand-chip img,.nav-button img,.action-button img{width:20px;height:20px}.wallet-strip{min-height:42px;color:var(--rin-color-brandGold);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.locale-switch{border:1px solid #ffffff29;border-radius:7px;align-items:center;display:inline-flex;overflow:hidden}.locale-switch button{min-width:32px;height:24px;color:var(--rin-color-textSecondary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:11px}.locale-switch button.active{color:#05030a;background:var(--rin-color-brandGold)}.utility-chip{min-height:28px;color:var(--rin-color-textPrimary);font-family:var(--rin-font-mono);background:linear-gradient(#ff2f9233,#00d8ff1a),#07040eb8;border:1px solid #ff2f9261;border-radius:999px;padding:0 10px;font-size:11px;font-weight:900}.platform-pill,.save-pill{max-width:150px;color:var(--rin-color-textPrimary);text-overflow:ellipsis;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;padding:4px 8px;font-size:11px;overflow:hidden}.platform-vk{color:var(--rin-color-brandCyan);border-color:#00d8ff57}.platform-ok{color:var(--rin-color-brandGold);border-color:#ffc85761}.save-pill{color:var(--rin-color-success500);border-color:#42ff8947}.save-loading,.save-saving{color:var(--rin-color-brandGold);border-color:#ffc85752}.save-error{color:var(--rin-color-danger500);border-color:#ff3b4a61}.room-panel,.hub-panel,.side-panel,.result-panel,.chest-panel,.missions-panel,.collection-panel,.shop-panel,.pvp-panel{left:max(18px, env(safe-area-inset-left));width:min(460px,100vw - 36px);padding:22px;position:absolute;top:50%;transform:translateY(-50%)}.hub-panel{top:calc(max(14px, env(safe-area-inset-top)) + 64px);bottom:calc(max(14px, env(safe-area-inset-bottom)) + 84px);align-content:start;gap:12px;width:min(430px,100vw - 36px);padding:14px;display:grid;overflow:auto;transform:none}.missions-panel,.collection-panel,.shop-panel,.pvp-panel{top:88px;right:max(18px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 82px);width:auto;overflow:auto;transform:none}.result-panel{left:50%;transform:translate(-50%,-50%)}.chest-panel{grid-template-columns:1fr 190px;gap:18px;width:min(720px,100vw - 36px);display:grid}.room-copy h1,.side-panel h2,.result-panel h2{letter-spacing:0;margin:8px 0 12px;font-size:clamp(28px,3.8vw,44px);line-height:1.02}.side-panel h2,.result-panel h2{font-size:clamp(24px,3vw,34px)}.room-copy p,.muted{color:var(--rin-color-textMuted);margin:0;line-height:1.45}.hub-operator{background:linear-gradient(90deg,#00d8ff1f,#0000 60%),#05030a8a;border:1px solid #00d8ff3d;border-radius:8px;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:12px;min-height:92px;padding:8px;display:grid}.hub-operator img{object-fit:cover;object-position:50% 14%;background:#0b0614c7;border:2px solid #ff2f9261;border-radius:8px;width:72px;height:72px}.hub-operator strong,.hub-operator small{display:block}.hub-operator strong{font-family:var(--rin-font-mono);margin-top:4px;font-size:18px;line-height:1.1}.hub-operator small{color:var(--rin-color-brandGold);font-family:var(--rin-font-mono);margin-top:5px;font-size:11px;font-weight:900}.hub-briefing{background:linear-gradient(180deg, #05030a14, #05030aeb 72%), var(--hub-mission-bg);background-position:50%;background-size:cover;border:1px solid #ffc85747;border-radius:8px;align-content:end;min-height:188px;padding:14px;display:grid;position:relative;overflow:hidden}.hub-briefing:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffffff14;position:absolute;inset:0}.hub-briefing-copy,.hub-mission-meta{z-index:1;position:relative}.hub-briefing h1{letter-spacing:0;margin:5px 0 4px;font-size:25px;line-height:1.04}.hub-briefing p{color:var(--rin-color-textSecondary);margin:0;font-weight:800}.hub-mission-meta{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.hub-mission-meta span,.status-cell{background:#05030aa8;border:1px solid #ffffff24;border-radius:8px}.hub-mission-meta span{color:var(--rin-color-brandGold);font-family:var(--rin-font-mono);padding:6px 8px;font-size:11px;font-weight:900}.hub-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.status-cell{text-align:center;place-items:center;min-height:58px;padding:7px 5px;display:grid}.status-cell span{color:var(--rin-color-textMuted);text-transform:uppercase;font-size:10px;font-weight:900}.status-cell strong{max-width:100%;color:var(--rin-color-brandCyan);font-family:var(--rin-font-mono);overflow-wrap:anywhere;font-size:15px;line-height:1.1}.hub-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.hub-actions .action-button{min-width:0;min-height:44px;padding:0 10px}.hub-actions .action-button span{text-align:center;text-overflow:clip;white-space:normal;line-height:1.08;overflow:visible}.eyebrow{color:var(--rin-color-brandCyan);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:900}.room-actions,.mission-meta,.reward-row{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.vk-action-strip{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.purchase-status{max-width:520px;color:var(--rin-color-textSecondary);margin:10px 0 0;font-size:13px;line-height:1.35}.collection-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.collection-header h2{margin:4px 0 0;font-size:26px;line-height:1.08}.mission-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.mission-card{text-align:left;min-height:168px;color:var(--rin-color-textPrimary);cursor:pointer;background:#07040ef0;border:1px solid #00d8ff38;border-radius:8px;gap:7px;padding:58px 14px 14px;display:grid;position:relative;overflow:hidden}.mission-card:before{content:"";background:linear-gradient(180deg, #05030a14, #05030ae6 72%), var(--mission-bg);opacity:.76;background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.02)}.mission-card:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffffff14;position:absolute;inset:0}.mission-card>*{z-index:1;position:relative}.mission-card:hover{border-color:#ffc857a3;transform:translateY(-2px)}.mission-card.completed{border-color:#42ff8975}.mission-card.completed:before{opacity:.88}.mission-card strong{padding-right:42px;font-size:18px}.mission-card span:not(.mission-index){color:var(--rin-color-textMuted);line-height:1.25}.mission-location{width:-moz-fit-content;width:fit-content;font-family:var(--rin-font-mono);background:#05030a94;border:1px solid #00d8ff57;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900;color:var(--rin-color-textPrimary)!important}.mission-card small{color:var(--rin-color-brandGold);font-family:var(--rin-font-mono);font-size:11px;line-height:1.3}.mission-progress{color:var(--rin-color-success500)}.mission-index{color:#00d8ff8f;font-family:var(--rin-font-mono);font-size:20px;font-weight:900;position:absolute;top:10px;right:12px}.roster-grid,.card-catalog{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.card-catalog{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.character-tile,.catalog-card{background:#05030ae6;border:1px solid #ffffff24;border-radius:8px;align-content:start;gap:7px;min-height:118px;padding:12px;display:grid;position:relative;overflow:hidden}.character-tile{grid-template-columns:76px minmax(0,1fr);align-items:center;min-height:136px;padding:10px 12px 10px 8px}.character-portrait{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 18px #00000085);align-self:end;width:72px;height:112px}.character-tile.status-npc{grid-template-columns:96px minmax(0,1fr)}.character-tile.status-npc .character-portrait{align-self:center;width:92px;height:112px}.character-copy{gap:7px;min-width:0;display:grid}.character-swatches{gap:4px;display:flex}.character-swatches span{border:1px solid #ffffff38;border-radius:50%;width:16px;height:16px}.character-tile strong,.catalog-card strong{font-size:15px;line-height:1.12}.character-tile span,.catalog-card span:not(.card-cost){color:var(--rin-color-textMuted);font-size:12px;line-height:1.25}.character-tile small,.catalog-card small{color:var(--rin-color-brandCyan);font-family:var(--rin-font-mono);text-transform:uppercase;font-size:11px}.catalog-card{opacity:.58;isolation:isolate;min-height:212px}.catalog-card.unlocked{opacity:1}.upgrade-row{grid-template-columns:1fr 42px;align-items:center;gap:8px;margin-top:2px;display:grid}.upgrade-row span{min-width:0;font-family:var(--rin-font-mono);font-weight:900;color:var(--rin-color-brandGold)!important;font-size:10px!important;line-height:1.2!important}.upgrade-button{color:#041018;min-height:30px;font-family:var(--rin-font-mono);background:var(--rin-color-brandCyan);cursor:pointer;border:0;border-radius:8px;place-items:center;font-size:11px;font-weight:900;display:grid}.upgrade-button:disabled{color:var(--rin-color-textMuted);cursor:not-allowed;background:#ffffff1a}.catalog-card-art,.battle-card-art{z-index:0;background:linear-gradient(180deg, transparent, #05030a85), var(--card-art,linear-gradient(135deg, #00d8ff2e, #ff2f9229));background-position:50%;background-size:cover;border:1px solid #ffffff1f;border-radius:7px;display:block;position:relative;overflow:hidden}.catalog-card-art{min-height:112px;margin:-2px -2px 4px}.battle-card-art{filter:saturate(1.2)brightness(1.2);min-height:86px;margin:-6px -4px 0}.battle-card-frame{z-index:1;background-image:var(--card-frame);opacity:.72;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;position:absolute;inset:-1px}.battle-card>:not(.battle-card-frame):not(.battle-card-art),.catalog-card>:not(.battle-card-frame):not(.catalog-card-art){z-index:2;position:relative}.mission-meta span,.reward-row span,.collection-list span{background:#00d8ff1a;border:1px solid #ffffff24;border-radius:8px;padding:8px 10px}.reward-error{max-width:520px;color:var(--rin-color-danger500);font-family:var(--rin-font-mono);background:#ff3b4a1a;border:1px solid #ff3b4a5c;border-radius:8px;grid-column:1/-1;margin:0;padding:10px 12px;font-size:12px;font-weight:800;line-height:1.35}.action-button{letter-spacing:0;cursor:pointer;min-height:46px;transition:transform var(--rin-motion-fast) var(--rin-ease-out), filter var(--rin-motion-fast) var(--rin-ease-out), border-color var(--rin-motion-fast) var(--rin-ease-out);justify-content:center;align-items:center;gap:10px;padding:0 16px;font-weight:900;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff38,inset 0 -3px #00000047,0 12px 28px #00000047}.action-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.action-button:after,.nav-button:after,.utility-chip:after,.end-turn-button:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff2e,#0000);position:absolute;inset:0;transform:translate(-120%)}.action-button:hover:not(:disabled),.nav-button:hover:not(:disabled),.utility-chip:hover:not(:disabled),.end-turn-button:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-2px)}.action-button:hover:not(:disabled):after,.nav-button:hover:not(:disabled):after,.utility-chip:hover:not(:disabled):after,.end-turn-button:hover:not(:disabled):after{animation:rin-control-scan .72s var(--rin-ease-out);opacity:1}.vk-action-button{min-height:38px;padding:0 12px;font-size:13px}.rin-secondary-button{color:var(--rin-color-textPrimary);background:linear-gradient(#00d8ff2e,#b84dff1a),#07040ec7;border:1px solid #00d8ff52;border-radius:8px}.rin-primary-button{color:#120615;background:linear-gradient(180deg, #ffe27c, var(--rin-color-brandGold) 52%, #ff9a2f);text-shadow:0 1px #ffffff57;border:1px solid #fff3b0b8;border-radius:8px}.rin-primary-button img,.end-turn-button img{filter:drop-shadow(0 1px #ffffff3d)}.rin-primary-button:disabled,.rin-secondary-button:disabled,.battle-card:disabled,.enemy-button:disabled{cursor:not-allowed;opacity:.48}.rin-primary-button:disabled,.rin-secondary-button:disabled{color:#f8f3ff8f;text-shadow:none;box-shadow:none;filter:saturate(.52);background:linear-gradient(#ffffff14,#ffffff08),#07040ec2;border-color:#ffffff24}.battle-hud{top:calc(max(14px, env(safe-area-inset-top)) + 56px);z-index:4;grid-template-columns:repeat(4,minmax(104px,1fr));gap:8px;width:min(620px,100vw - 28px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.stat-chip{border-radius:8px;min-height:52px;padding:8px 10px}.stat-chip span{color:var(--rin-color-textMuted);font-size:12px;display:block}.stat-chip strong{margin-top:2px;font-size:20px;display:block}.stat-health strong{color:var(--rin-color-success500)}.stat-energy strong{color:var(--rin-color-brandCyan)}.stat-chaos strong{color:var(--rin-color-danger500)}.stat-combo strong{color:var(--rin-color-brandGold)}.rin-reaction{right:max(16px, env(safe-area-inset-right));z-index:4;grid-template-columns:72px 1fr;align-items:center;gap:12px;width:min(380px,100vw - 32px);min-height:96px;padding:10px 14px 10px 8px;display:grid;position:absolute;top:126px}.rin-reaction img{object-fit:cover;object-position:50% 16%;background:#141027b8;border:2px solid #00d8ff73;border-radius:8px;width:72px;height:72px}.rin-reaction p{margin:0;line-height:1.32}.enemy-targets{z-index:5;justify-content:center;gap:12px;width:min(760px,100vw - 28px);display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.enemy-button{color:#0000;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;width:min(188px,30vw);min-height:144px;padding:0;position:relative}.enemy-button:not(:disabled):hover{border-color:var(--rin-color-brandGold);transform:translateY(-2px)}.enemy-button:not(:disabled):after{color:#160713;font-family:var(--rin-font-mono);content:"ЦЕЛЬ";background:var(--rin-color-brandGold);border-radius:999px;padding:5px 7px;font-size:10px;font-weight:900;position:absolute;bottom:8px;right:8px}.enemy-button strong,.enemy-button span,.enemy-button small{display:none}.enemy-button span{color:var(--rin-color-brandGold);font-weight:800}.enemy-button small{color:var(--rin-color-textMuted)}.card-hand{right:max(16px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 82px);left:max(16px, env(safe-area-inset-left));z-index:6;grid-template-columns:repeat(5,minmax(118px,1fr));gap:10px;display:grid;position:absolute}.battle-card{text-align:left;min-height:208px;color:var(--rin-color-textPrimary);cursor:pointer;isolation:isolate;transition:transform var(--rin-motion-fast) var(--rin-ease-out), border-color var(--rin-motion-fast) var(--rin-ease-out), box-shadow var(--rin-motion-fast) var(--rin-ease-out);background:linear-gradient(#ffffff14,#ffffff05),#07050cf7;border:1px solid #ffffff29;border-radius:8px;grid-template-rows:auto auto 1fr auto;gap:8px;padding:14px 12px 12px;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 48px #00000080,inset 0 1px #ffffff14}.battle-card:after{z-index:1;content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff1c,#0000);position:absolute;inset:0;transform:translate(-120%)}.battle-card:hover:after,.battle-card.selected:after{animation:rin-card-scan 1.1s var(--rin-ease-out)}.battle-card:disabled{opacity:.72}.battle-card strong{padding-right:32px;font-size:16px;line-height:1.1}.battle-card small{color:var(--rin-color-textMuted);line-height:1.24}.battle-card.selected{border-color:var(--rin-color-brandGold);transform:translateY(-5px);box-shadow:0 0 0 2px #ffc85742,0 18px 48px #00000057}.rarity-common{border-color:#ffffff38}.rarity-rare{border-color:#00d8ff8a}.rarity-epic{border-color:#ff2f9299}.rarity-glitch{border-color:#b84dffbf}.card-cost{color:#041018;background:var(--rin-color-brandCyan);border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid;position:absolute;top:8px;right:8px}.card-tags{color:var(--rin-color-brandGold);text-transform:uppercase;font-size:11px;font-weight:900}.battle-log{left:max(16px, env(safe-area-inset-left));z-index:4;width:min(340px,100vw - 32px);padding:12px;position:absolute;top:126px}.battle-log p{color:var(--rin-color-textMuted);margin:0;font-size:13px;line-height:1.3}.battle-log p+p{margin-top:8px}.battle-log span{color:var(--rin-color-brandCyan);font-weight:900}.end-turn-button,.target-hint{z-index:7;border-radius:8px;position:absolute}.end-turn-button{right:max(16px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 18px);color:#160713;background:var(--rin-color-brandGold);cursor:pointer;border:0;min-width:150px;min-height:48px;font-weight:900}.target-hint{left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 252px);color:var(--rin-color-brandGold);padding:9px 12px;font-weight:800;transform:translate(-50%)}.collection-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.chest-copy{min-width:0}.chest-shell{background:radial-gradient(circle at 50% 35%,#ffc85747,#0000 52%),#05030a94;border:1px solid #ffffff29;border-radius:8px;align-content:center;place-items:center;min-height:174px;display:grid}.chest-shell img{object-fit:contain;filter:drop-shadow(0 0 24px #ffc85761);width:136px;height:136px}.chest-shell span{color:var(--rin-color-textMuted);font-family:var(--rin-font-mono);margin-top:8px;font-size:12px;font-weight:900}.chest-shell.ready{border-color:#ffc85794}.chest-open-button{grid-column:1/-1;width:-moz-fit-content;width:fit-content}.reward-reveal{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.reward-tile{background:#00d8ff14;border:1px solid #00d8ff47;border-radius:8px;min-height:96px;padding:12px;display:grid}.reward-tile img{width:24px;height:24px}.reward-tile span{color:var(--rin-color-textMuted);margin-top:8px;font-size:12px;font-weight:800}.reward-tile strong{color:var(--rin-color-textPrimary);margin-top:4px;line-height:1.1}.shop-panel,.pvp-panel{align-content:start;gap:16px;display:grid}.shop-note{max-width:760px;color:var(--rin-color-textMuted);margin:-6px 0 0;line-height:1.38}.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.shop-product,.pvp-card,.pvp-rules{background:linear-gradient(145deg,#ff2f921f,#0000 38%),linear-gradient(#0c091cf5,#040a10f0);border:1px solid #00d8ff38;border-radius:8px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 16px 40px #0000004d}.shop-product{gap:10px;min-height:210px;padding:14px;display:grid}.shop-product:after,.pvp-card:after,.pvp-rules:after{content:"";opacity:.2;pointer-events:none;background-image:linear-gradient(#00d8ff14 1px,#0000 1px),linear-gradient(90deg,#ff2f9214 1px,#0000 1px);background-size:24px 24px;position:absolute;inset:0}.shop-product>*,.pvp-card>*,.pvp-rules>*{z-index:1;position:relative}.shop-product-top{justify-content:space-between;align-items:center;gap:10px;min-height:32px;display:flex}.shop-product-top span:not(.lottie-glyph){min-width:0;color:var(--rin-color-brandGold);font-family:var(--rin-font-mono);text-overflow:ellipsis;white-space:nowrap;background:#ffc85714;border:1px solid #ffc8574d;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900;overflow:hidden}.shop-product strong,.pvp-card strong,.pvp-rules strong{font-size:18px;line-height:1.12}.shop-product p,.pvp-card p{color:var(--rin-color-textMuted);margin:0;line-height:1.35}.shop-buy-button{align-self:end;width:100%;margin-top:auto}.pvp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.pvp-card{gap:12px;min-height:230px;padding:16px;display:grid}.pvp-card.locked{opacity:.76}.pvp-card.active{border-color:#ffc8578a}.pvp-card .action-button{align-self:end;width:100%;margin-top:auto}.pvp-rules{gap:8px;padding:14px;display:grid}.pvp-rules span{color:var(--rin-color-textMuted);line-height:1.34}.guide-overlay{padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:radial-gradient(circle at 50% 36%,#00d8ff29,#0000 34%),#05030ab8;place-items:center;display:grid;position:absolute;inset:0}.guide-panel{width:min(760px,100%);max-height:min(680px,100vh - 40px);padding:20px;position:relative;overflow:auto}.guide-close{width:34px;height:34px;color:var(--rin-color-textPrimary);font-family:var(--rin-font-mono);background:#ff2f922e;border:1px solid #ff2f926b;border-radius:8px;place-items:center;font-weight:900;display:grid;position:absolute;top:12px;right:12px}.guide-panel h2{margin:5px 42px 16px 0;font-size:28px;line-height:1.08}.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.guide-steps article{background:#07040e9e;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:34px 40px minmax(0,1fr);align-items:start;gap:10px;min-height:100px;padding:12px;display:grid}.guide-steps strong{color:var(--rin-color-brandGold);font-family:var(--rin-font-mono);font-size:16px}.guide-steps p{color:var(--rin-color-textSecondary);margin:0;line-height:1.34}.lottie-glyph{width:24px;height:24px;color:var(--rin-color-brandCyan);background:#00d8ff14;border:1px solid #00d8ff57;border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative;box-shadow:0 0 18px #00d8ff2e}.lottie-glyph:before,.lottie-glyph:after,.lottie-glyph span{content:"";border-radius:inherit;pointer-events:none;position:absolute}.lottie-glyph:before{opacity:.24;border:1px solid;inset:-5px}.lottie-glyph:after{background:currentColor;inset:6px;box-shadow:0 0 14px}.lottie-glyph span{border:1px solid;border-top-color:#0000;inset:2px}.lottie-pulse:before{animation:rin-lottie-pulse 1.24s var(--rin-ease-out) infinite}.lottie-pulse:after{animation:.82s steps(2,end) infinite rin-lottie-blink}.lottie-scan span{animation:1.1s linear infinite rin-lottie-spin}.lottie-scan:before{animation:rin-lottie-scan 1.4s var(--rin-ease-out) infinite}.bottom-nav{bottom:max(14px, env(safe-area-inset-bottom));grid-template-columns:repeat(6,minmax(68px,1fr));gap:8px;width:min(690px,100vw - 28px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.nav-button{cursor:pointer;border-radius:8px;place-items:center;gap:4px;min-height:56px;display:grid;position:relative;overflow:hidden}.nav-button span{font-size:12px;font-weight:800}.nav-button.active{border-color:var(--rin-color-brandCyan);color:var(--rin-color-brandCyan)}@keyframes rin-control-scan{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes rin-card-scan{0%{opacity:0;transform:translate(-120%)}28%{opacity:1}to{opacity:0;transform:translate(120%)}}@keyframes rin-lottie-pulse{0%{opacity:.42;transform:scale(.72)}70%{opacity:0;transform:scale(1.42)}to{opacity:0;transform:scale(1.42)}}@keyframes rin-lottie-blink{0%,to{opacity:1}50%{opacity:.46}}@keyframes rin-lottie-spin{to{transform:rotate(360deg)}}@keyframes rin-lottie-scan{0%{opacity:.1;transform:scale(.74)}45%{opacity:.46;transform:scale(1.08)}to{opacity:0;transform:scale(1.36)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (max-width:860px){.top-bar{align-items:flex-start}.brand-chip span{display:none}.room-panel,.hub-panel,.side-panel,.result-panel,.chest-panel,.missions-panel,.collection-panel,.shop-panel,.pvp-panel{width:auto;top:118px;left:14px;right:14px;transform:none}.hub-panel{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 76px);padding:12px;overflow:auto}.hub-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-actions{grid-template-columns:1fr}.hub-briefing{min-height:156px}.hub-briefing h1{font-size:21px}.chest-panel{grid-template-columns:1fr}.missions-panel,.collection-panel,.shop-panel,.pvp-panel{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 76px);overflow:auto}.collection-header{display:grid}.mission-grid,.roster-grid,.card-catalog,.shop-grid,.pvp-grid,.guide-steps{grid-template-columns:1fr}.shop-product,.pvp-card{min-height:auto}.chest-shell{min-height:132px}.reward-reveal{grid-template-columns:1fr}.battle-hud{grid-template-columns:repeat(2,minmax(120px,1fr));top:64px}.rin-reaction,.battle-log{display:none}.enemy-targets{gap:8px;top:36%}.enemy-button{width:31vw;min-height:116px}.enemy-button:not(:disabled):after{bottom:4px;right:4px}.card-hand{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 82px);grid-template-columns:repeat(5,minmax(112px,1fr));gap:7px;padding-bottom:6px;overflow-x:auto}.battle-card{min-width:112px;min-height:158px;padding:12px 9px 10px}.battle-card-art{min-height:58px}.battle-card strong{font-size:13px}.battle-card small{font-size:11px}.card-tags{display:none}.target-hint{bottom:calc(max(14px, env(safe-area-inset-bottom)) + 226px)}.end-turn-button{right:14px;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 234px);min-width:122px;min-height:40px;padding:0 14px;font-size:14px}.bottom-nav{grid-template-columns:repeat(6,minmax(48px,1fr));gap:5px;width:min(560px,100vw - 20px)}.nav-button{min-height:48px}.nav-button img{width:18px;height:18px}.nav-button span{font-size:10px}.guide-panel{padding:16px}.guide-steps article{grid-template-columns:34px minmax(0,1fr)}.guide-steps strong{display:none}}
