<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recency Bias on albarkeo</title><link>https://albarkeo.com/tags/recency-bias/</link><description>albarkeo</description><generator>Hugo</generator><language>en-au</language><atom:link href="https://albarkeo.com/tags/recency-bias/index.xml" rel="self" type="application/rss+xml"/><item><title>Recency Bias Digital</title><link>https://albarkeo.com/recency-bias-digital/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://albarkeo.com/recency-bias-digital/</guid><description>&lt;style&gt; .layout.page-header { visibility: collapse;} #toc{ display: none; } &lt;/style&gt;
&lt;div id="game-wrapper"&gt;
&lt;link rel="preconnect" href="https://fonts.googleapis.com"&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&gt;
&lt;link href="https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&amp;family=Segoe+UI:wght@400;700&amp;display=swap" rel="stylesheet"&gt;
&lt;script src="https://unpkg.com/peerjs@1.5.2/dist/peerjs.min.js"&gt;&lt;/script&gt;
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"&gt;&lt;/script&gt;
&lt;style&gt;
#game-wrapper {
user-select: none;
-webkit-user-select: none;
--base-unit: clamp(16px, min(1.2vw, 1.55vh), 32px);
font-size: var(--base-unit);
--bg-color: #0f1016;
--ui-bg-color: rgba(15, 16, 22, 0.95);
--mat-white: rgba(240, 240, 245, 0.05);
--mat-black: rgba(10, 10, 15, 0.4);
--accent: #fff;
--danger: #ff4444;
--highlight: #efe088;
--text-light: #eaeaea;
--text-dark: #111;
--button-bg: #541d96;
--shadow-base: rgba(0,0,0,0.5);
--shadow-dark: rgba(0,0,0,0.8);
--body-text-shadow: 0.02rem 0.02rem #000000a6, -0.02rem -0.02rem aliceblue;
--card-w: calc(7.5 * var(--base-unit));
--card-h: calc(var(--card-w) * 1.4);
--board-pad: calc(1.25 * var(--base-unit));
--board-gap: calc(0.9375 * var(--base-unit));
--scheme-drawer-w: 290px;
--mat-pad: calc(0.9375 * var(--base-unit));
--mat-title-fs: calc(0.75 * var(--base-unit));
--mat-title-mb: calc(0.625 * var(--base-unit));
--seq-group-w: calc(var(--card-w) + (1.875 * var(--base-unit)));
--seq-group-h: calc(var(--card-h) + (1.25 * var(--base-unit)));
--mat-black-flex: 1;
--mat-black-jc: flex-end;
--mat-black-pb: calc(1.25 * var(--base-unit));
--status-pad: calc(0.5 * var(--base-unit)) calc(1.25 * var(--base-unit));
--status-h: calc(3 * var(--base-unit));
--status-jc: space-between;
--status-gap: calc(0.625 * var(--base-unit));
--pill-h: calc(2 * var(--base-unit));
--pill-pad: 0 calc(0.75 * var(--base-unit));
--pill-fs: calc(0.75 * var(--base-unit));
--rested-top: 5dvh;
--rested-right: calc(2.125 * var(--base-unit));
--rested-transform: translateY(-50%);
--rested-z: 100;
--rested-pill-display: none;
--hud-top: 33dvh;
--hud-pos: absolute;
--hud-bg: transparent;
--hud-pad: 0px var(--card-h);
--hud-margin: 0;
--hud-jc: space-between;
--hud-flex: none;
--hud-gap: calc(0.9375 * var(--base-unit));
--deck-w: calc(4.375 * var(--base-unit));
--deck-h: calc(6.125 * var(--base-unit));
--deck-logo-sz: calc(2.1875 * var(--base-unit));
--deck-logo-fs: calc(0.875 * var(--base-unit));
--deck-empty-fs: calc(0.6875 * var(--base-unit));
--discard-scale: scale(1);
--discard-origin: center;
--chat-w: calc(20 * var(--base-unit));
--chat-h: calc(18.75 * var(--base-unit));
--chat-r: calc(1.25 * var(--base-unit));
--chat-b: calc(1.25 * var(--base-unit));
--chat-l: auto;
--chat-t: auto;
--chat-col-w: calc(12.5 * var(--base-unit));
--chat-col-h: calc(2.625 * var(--base-unit));
--chat-col-br: 0.5rem 0.5rem 0 0;
--chat-col-p: calc(0.5 * var(--base-unit)) calc(0.75 * var(--base-unit));
--chat-col-bg: rgba(0,0,0,0.8);
--chat-col-jc: space-between;
--chat-txt: calc(0.875 * var(--base-unit));
--chat-icon: '';
--chat-icon-sz: 0px;
--chat-ui-display: none;
--card-desc-display: block;
--modal-bg-start: #181926;
--modal-bg-end: #0e0f16;
--modal-border-gradient: linear-gradient(0deg, rgba(255, 255, 255, 0.65) 0%, rgba(7, 6, 7, 1) 40%);
--modal-border-gradient-180: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(7, 6, 7, 1) 80%);
--modal-dotted: rgba(247, 247, 247, 0.45);
--modal-radius: 12px;
--texture-linen: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cdefs%3E%3Cfilter id='fabric'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' seed='4' result='noise'/%3E%3CfeGaussianBlur in='noise' stdDeviation='0.15' result='softNoise'/%3E%3CfeDiffuseLighting in='softNoise' surfaceScale='0.7' lighting-color='white' result='light'%3E%3CfeDistantLight azimuth='135' elevation='50'/%3E%3C/feDiffuseLighting%3E%3C/filter%3E%3Cpattern id='warp' width='4' height='4' patternUnits='userSpaceOnUse' patternTransform='rotate(-7)'%3E%3Crect width='1' height='4' fill='%23ffffff' fill-opacity='0.12'/%3E%3Crect x='2' width='1' height='4' fill='%23000000' fill-opacity='0.08'/%3E%3C/pattern%3E%3Cpattern id='weft' width='4' height='4' patternUnits='userSpaceOnUse' patternTransform='rotate(83)'%3E%3Crect width='1' height='4' fill='%23ffffff' fill-opacity='0.09'/%3E%3Crect x='2' width='1' height='4' fill='%23000000' fill-opacity='0.06'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23warp)'/%3E%3Crect width='100%25' height='100%25' fill='url(%23weft)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23fabric)' opacity='0.35'/%3E%3C/svg%3E");
--linen-opacity: 0.2;
--linen-blend: hard-light;
}
#game-wrapper .settings-container {
display: flex;
flex-direction: column;
gap: 15px;
margin-top: 20px;
font-family: 'Segoe UI', sans-serif;
background: var(--bg-color);
padding: 1.5rem;
border: 1px dotted var(--text-light);
}
#game-wrapper .game-inner {
width: 100%;
max-width: 100%;
height: 100%;
padding-bottom: 10px;
display: flex;
flex-direction: column;
position: relative;
z-index: 1;
background-color: var(--bg-color);
}
#game-wrapper .game-inner::before {
content: '';
width: 100%;
max-width: 100%;
height: 100%;
padding-bottom: 10px;
display: flex;
flex-direction: column;
position: absolute;
z-index: 1;
background-image: url(wizard-koala.webp);
background-size: cover;
background-position: 10% 20%;
background-blend-mode: luminosity;
background-color: var(--bg-color);
opacity: 0.4;
}
#game-wrapper #status-bar { display: none; justify-content: var(--status-jc); padding: var(--status-pad); background: rgba(0,0,0,0.98); border-bottom: 1px solid #333; align-items: center; z-index: 100; font-family: 'Segoe UI', sans-serif; min-height: var(--status-h); box-sizing: border-box; transition: padding-left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); overflow: visible; }
#game-wrapper .status-group { display: flex; gap: var(--status-gap); align-items: center; flex-shrink: 0; }
#game-wrapper .hud-turn { display: none; }
#game-wrapper .info-pill, #status-bar button { display: inline-flex; align-items: center; justify-content: center; height: var(--pill-h); box-sizing: border-box; background: #1a1a24; padding: var(--pill-pad); border-radius: 16px; font-size: var(--pill-fs); font-weight: bold; border: 3px double #444; color: #ddd; margin: 0; line-height: 1; flex-shrink: 0; white-space: nowrap; font-family: 'Cardo', serif;}
#game-wrapper .info-pill:hover { background: var(--ui-bg-color); border-color: #fff; color: #fff; transform: scale(1.02); }
#game-wrapper .info-pill.clickable { cursor: pointer; position: relative; }
@media (max-width: 768px) {
#game-wrapper .desktop-only { display: none !important; }
#game-wrapper {
--card-w: clamp(5.5rem, 23.5vw, 6.25rem);
--card-h: calc(var(--card-w) * 1.4);
--board-pad: 0.375rem 0.5rem;
--board-gap: 0.5rem;
--mat-pad: 0.5rem 0.375rem;
--mat-title-fs: 0.6875rem;
--mat-title-mb: 0.375rem;
--seq-group-w: calc(var(--card-w) + 0.625rem);
--seq-group-h: calc(var(--card-h) + 0.5rem);
--mat-black-flex: 0 0 auto;
--mat-black-jc: center;
--mat-black-pb: 0.5rem;
--status-pad: 0.25rem 0.5rem;
--status-h: 2.625rem;
--status-jc: flex-start;
--status-gap: 0.3125rem;
--pill-h: 1.75rem;
--pill-pad: 0 0.5rem;
--pill-fs: 0.625rem;
--rested-top: 4rem;
--rested-right: 2vw;
--rested-transform: none;
--rested-z: 120;
--rested-pill-display: flex;
--rested-body-display: none;
--rested-body-pos: absolute;
--rested-body-top: 2.375rem;
--hud-top: 0;
--hud-pos: absolute;
--hud-pad: 0.125rem 0.9375rem;
--hud-margin: 0.25rem 0;
--hud-jc: space-between;
--hud-flex: 1 1 auto;
--hud-gap: 0.5rem;
--deck-w: 3.75rem;
--deck-h: 4.875rem;
--deck-logo-sz: 1.375rem;
--deck-logo-fs: 0.625rem;
--deck-empty-fs: 0.5625rem;
--discard-scale: scale(1);
--discard-origin: top left;
--chat-w: calc(100vw - 1.25rem);
--chat-h: 16.25rem;
--chat-r: 2vw;
--chat-b: 2vh;
--chat-l: 0.625rem;
--chat-t: 4.5rem;
--chat-col-w: 3rem;
--chat-col-h: 3rem;
--chat-col-br: 50%;
--chat-col-p: 0;
--chat-col-bg: #1a1a28;
--chat-col-jc: center;
--chat-txt: 0px;
--chat-icon: '💬';
--chat-icon-sz: 1.5rem;
--chat-ui-display: none;
--card-desc-display: none;
}
#game-wrapper #board-area {
overflow-y: hidden;
}
#game-wrapper #rested-track {
position: var(--rested-body-pos);
top: var(--rested-body-top);
right: var(--rested-right);
margin-bottom: 0.5rem;
margin-left: auto;
}
#game-wrapper .rested-track-body {
top: 2rem;
left: 0;
}
#game-wrapper #btn-schemes { display: none !important; }
#game-wrapper #btn-resume {display:none; border-color: #84a077;}
#game-wrapper .desktop-hide { display: block !important; margin-top: 6px; }
#game-wrapper .hud-left { align-items: center; }
#game-wrapper #status-bar { scrollbar-width: thin; scrollbar-color: #bb86fc rgba(0,0,0,0.3); overflow-x: scroll; }
#game-wrapper #status-bar::-webkit-scrollbar { height: 4px; }
#game-wrapper #status-bar .status-group:last-child { margin-left: auto; padding-left: 0.5rem; }
#game-wrapper #status-bar::-webkit-scrollbar-track { background: rgba(0,0,0,0.3); }
#game-wrapper #status-bar::-webkit-scrollbar-thumb { background: #bb86fc; border-radius: 4px; }
#game-wrapper #rested-track.open .rested-track-body { display: flex !important; animation: dropIn 0.15s ease-out; }
#game-wrapper .inline-prompt-actions.stack-mobile { flex-direction: column; }
#game-wrapper .modal-box { padding-inline: 0.5rem; padding-block: 1rem; max-width: 98vw; }
#game-wrapper #chat-container.chat-collapsed {
border: 2px solid rgba(255,255,255,0.2);
box-shadow: 0 4px 15px rgba(0,0,0,0.8);
#chat-toggle {
display: none !important;
}
}
#game-wrapper #btn-settings { top: 0.75rem; right: 0.75rem; font-size: 1.5rem; }
#game-wrapper .secret-scheme-choice { flex: 1 1 100%; max-width: 100%; }
#game-wrapper #welcome-screen h1 { font-size: clamp(2.2rem, 12vw, 3.4rem) !important; letter-spacing: 0.02em; padding: 0 0.5rem; }
}
#game-wrapper.no-motion * { transition: none !important; animation: none !important; }
#game-wrapper.no-vfx canvas, #game-wrapper.no-vfx #vfx-canvas { display: none !important; }
#game-wrapper:not(.no-vfx) .vfx-duplicate {
opacity: 1 !important;
visibility: visible !important;
pointer-events: auto !important;
position: relative !important;
z-index: 15 !important;
}
#game-wrapper {
display: flex; flex-direction: column; width: 100%; height: 95dvh; min-height: 720px;
position: relative; z-index: 8; overflow: hidden; touch-action: none;
}
#vfx-canvas {
pointer-events: none !important; position: fixed !important;
top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 2 !important;
}
#game-wrapper svg { max-width: none !important; height: auto; flex-shrink: 0; display: inline-block; }
#game-wrapper svg[fill="none"] { fill: none !important; }
#game-wrapper svg[fill="currentColor"] { fill: currentColor !important; }
#game-wrapper svg path[fill="none"] { fill: none !important; }
#game-wrapper .icon { min-height: min-content; }
#game-wrapper::after {
content: ''; position: fixed; inset: 0; background-image: var(--texture-linen);
background-size: 160px 160px; background-repeat: repeat; opacity: var(--linen-opacity);
mix-blend-mode: var(--linen-blend); pointer-events: none; z-index: 1200;
}
#game-wrapper #welcome-screen {
background: transparent !important; height: 100%; width: 100%;
display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
#game-wrapper #welcome-screen h1 {
font-family: 'Cardo', serif; color: var(--text-light); text-shadow: 0 2px 5px var(--shadow-base),var(--body-text-shadow), 0 0 1px var(--shadow-base);
margin: 0 0 1.25rem 0; line-height: 1; letter-spacing: 0.02em; padding: 0 0.5rem;
flex-basis: auto; display: block;
}
#game-wrapper #welcome-screen h1 .first-letter { font-size: 150%!important; line-height: 1; vertical-align: -0.24em; letter-spacing: -0.08em; }
#game-wrapper #welcome-screen .tagline { display: block; font-size: 1.5rem; margin-bottom: 2rem; font-family: 'Cardo', serif; color: color-mix(in srgb, var(--text-light) 95%, var(--text-dark)); text-shadow: var(--body-text-shadow); }
#game-wrapper #welcome-screen p {
margin: 0 auto 1.875rem auto; text-align: center; max-width: 37.5rem; font-family: 'Cardo', serif; opacity: 0.8;
flex-basis: auto;
}
#game-wrapper #btn-settings {
position: absolute; top: 1.25rem; right: 1.25rem; background: transparent;
border: none; font-size: 1.75rem; padding: 0; line-height: 1; cursor: pointer; z-index: 10;
}
#game-wrapper #qr-modal h2 { color: var(--accent); font-family: 'Cardo', serif; margin-top: 0; }
#game-wrapper #qr-modal #qrcode { background: #fff; padding: 0.625rem; border-radius: 0.5rem; display: inline-block; }
#game-wrapper #qr-modal p { margin-top: 1.25rem; font-family: 'Cardo', serif; }
#game-wrapper #inspector-overlay { z-index: 3500; background: rgba(0, 0, 0, 0.75); backdrop-filter: blur(4px); }
#game-wrapper #inspector-box { max-width: min(90vw, 24rem); display: flex; flex-direction: column;
padding-block: 3rem;
}
#game-wrapper #inspector-box h2 { margin-top: 0; font-family: 'Cardo', serif; font-weight: bold; text-shadow: var(--body-text-shadow); }
#game-wrapper #inspector-body { display: flex; justify-content: center; margin: 1rem 0; }
#game-wrapper #btn-fullscreen { display: flex; align-items: center; justify-content: center; }
#game-wrapper .secret-scheme-desc,#game-wrapper .discard-desc,#game-wrapper .modal-desc { color: #aaa; font-size: 1rem; margin-bottom: 0.9375rem; padding: 0 0.5rem; text-shadow: var(--body-text-shadow);
max-width: 60ch;
text-wrap: balance;
text-align: center;
justify-content: center;
display: flex;
font-family: 'Cardo', serif;
background-color: var(--ui-bg-color);
border: dotted var(--text-light) 1px;
}
#game-wrapper .secret-scheme-container { display: flex; justify-content: center; gap: 0.75rem; padding: 0.5rem; flex-wrap: wrap; width: 100%; box-sizing: border-box; }
#game-wrapper .secret-scheme-choice { cursor: pointer; flex: 1 1 9.5rem; max-width: 12.5rem; text-align: left; transition: transform 0.2s ease-out; box-sizing: border-box; }
#game-wrapper .secret-scheme-choice:hover { transform: scale(1.05); }
#game-wrapper .secret-scheme-choice .scheme-card { height: 100%; }
#game-wrapper .card-picker-grid { display: flex; justify-content: center; gap: 0.625rem; flex-wrap: wrap; margin-top: 1.25rem; align-content: flex-start; }
#game-wrapper .card-choice-btn { cursor: pointer; transform: scale(1); transition: transform 0.2s ease-out; margin: 0.3125rem; }
#game-wrapper .card-choice-btn:hover { transform: scale(1.05) !important; position: relative; z-index: 10; }
#game-wrapper .card-choice-btn.danger-hover:hover { filter: drop-shadow(0 0 10px var(--danger)); }
#game-wrapper .card-choice-btn.scaled-down { transform: scale(0.9); }
#game-wrapper .card-choice-btn.scaled-down:hover { transform: scale(1.05) !important; }
#game-wrapper .stats-container { text-align: left; background: rgba(0,0,0,0.3); padding: 0.9375rem; border-radius: 0.5rem; margin-top: 0.9375rem; display: inline-block; width: 100%; box-sizing: border-box; font-size: 1rem; }
#game-wrapper .stats-row { display: flex; justify-content: space-between; margin-bottom: 0.375rem; }
#game-wrapper .stats-row:last-of-type { margin-bottom: 0.625rem; }
#game-wrapper .stats-val { font-weight: bold; }
#game-wrapper .stats-val.accent { color: var(--accent); }
#game-wrapper .stats-val.dim { color: #aaa; }
#game-wrapper .stats-val.purple { color: #bb86fc; }
#game-wrapper .stats-val.danger { color: var(--danger); }
#game-wrapper .stats-val.yellow { color: #ffe600; }
#game-wrapper .stats-divider { border: 0; border-top: 1px solid #444; margin: 0.9375rem 0; }
#game-wrapper .stats-max-pts { margin: 0 0 0.625rem 0; color: #ffe600; text-align: center; font-size: 1.25rem; font-weight: bold; }
#game-wrapper .stats-footer { font-size: 0.75rem; color: #aaa; margin: 0; line-height: 1.3; text-align: center; }
#game-wrapper .shared-track-wrap { margin: 0.9375rem auto 0.3125rem auto; background: rgba(0,0,0,0.3); padding: 0.9375rem 0.625rem; border-radius: 0.5rem; border: 1px solid #333; width: 100%; box-sizing: border-box; }
#game-wrapper .shared-track-title { text-align: center; font-size: 0.6875rem; font-weight: bold; color: #888; text-transform: uppercase; margin-bottom: 0.75rem; letter-spacing: 0.5px; }
#game-wrapper .shared-track-desc { color: #aaa; font-weight: normal; max-width: 7.5rem; line-height: 1.2; display: inline-block; text-shadow: var(--body-text-shadow); }
#game-wrapper .tube-trail {
position: absolute; top: 50%; transform: translateY(-50%); display: flex; justify-content: space-evenly; align-items: center; z-index: 1; pointer-events: none;
}
#game-wrapper .trail-dot {
background: var(--highlight); border-radius: 50%; width: 6px; height: 6px; box-shadow: 0 0 5px var(--highlight); transition: all 0.3s ease;
}
#game-wrapper .toast-icon { font-size: 1.625rem; }
#game-wrapper .toast-content { text-align: left; }
#game-wrapper .toast-subtitle { font-size: 0.6875rem; color: #4caf50; text-transform: uppercase; font-weight: bold; letter-spacing: 0.5px; }
#game-wrapper .toast-title { font-size: 0.9375rem; font-weight: bold; color: #fff; }
#game-wrapper .toast-pts { font-size: 0.75rem; color: #ffe600; }
#game-wrapper .screen-overlay { position: absolute; inset: 0; background: #000000de; display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 1000; transition: left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), width 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); }
#game-wrapper .modal-box {
position: relative;
isolation: isolate;
background: linear-gradient(175deg, var(--modal-bg-start) 0%, var(--modal-bg-end) 100%);
border: 0.5px solid rgb(116 116 116 / 15%);
border-radius: var(--modal-radius);
padding-inline: 1.5rem;
padding-block: 2.25rem;
width: 100%;
max-width: min(95vw, 55rem);
max-height: 85vh;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: none;
text-align: center;
box-shadow: 0 0 0 1px rgba(10, 10, 15, 0.8), 0 20px 50px var(--shadow-dark);
box-sizing: border-box;
justify-items: center;
}
#game-wrapper .modal-box::before {
content: '';
position: absolute;
inset: -1px;
border-radius: inherit;
background: var(--modal-border-gradient);
z-index: -1;
pointer-events: none;
}
#game-wrapper .modal-box::after {
content: '';
position: absolute;
inset: 7px;
border: 1px dotted var(--modal-dotted);
border-radius: calc(var(--modal-radius) - 5px);
pointer-events: none;
background: linear-gradient(-10deg, #000000ea 49.5%, grey 50%, #ffffffa9 50.5%);
z-index: -1;
}
#game-wrapper .modal-box &gt; *:not(.modal-clouds) { position: relative; z-index: 1; }
#game-wrapper .modal-box &gt; * { position: relative; z-index: 1; }
#game-wrapper .modal-box &gt; .modal-clouds { position: absolute; z-index: -1; }
#game-wrapper .modal-box &gt; #modal-body { position: static; justify-content: center;
display: flex;
flex-direction: column;
align-items: center; margin-inline: auto;}
#game-wrapper .modal-box h2 { margin-top: 0; font-family: 'Cardo', serif;
font-weight: bold; justify-content: center;
margin-bottom: 1rem;}
#game-wrapper .modal-body { display: block; margin: 0.9375rem 0; font-size: 1rem; line-height: 1.4; max-width: 80vw; font-family: 'Cardo', serif; color: var(--text-light);}
#game-wrapper .modal-body b { font-weight: bold; font-size: 1.125rem; color: var(--text-light); }
#game-wrapper #modal-title {color: var(--text-dark); text-shadow: -0.5px -0.5px #ffffff38; margin-bottom: 0; justify-content: center; letter-spacing: 0.02em;;
padding-block-end: 0;
padding-top: 2rem;}
#game-wrapper .modal-actions { display: flex; justify-content: center; gap: 0.625rem; padding-top: 0.625rem; flex-wrap: wrap; position: relative; z-index: 5; width: 100%; }
#game-wrapper .modal-actions.modal-actions-spaced { justify-content: space-between; }
#game-wrapper .locked-msg {width:100%; color: var(--text-light); font-size: 0.875rem; margin-block: 0.5rem; display:flex; align-items:center; justify-content:center; gap:0.5rem; font-family: 'Cardo', serif; text-shadow: var(--body-text-shadow); background-color: var(--ui-bg-color);
padding-block: 0.5em;
border: dotted var(--text-light) 1px;
}
#game-wrapper .modal-clouds { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.7; border-radius: 8px; overflow: hidden; }
#game-wrapper .cloud { width: 600px; height: 100px; border-radius: 50%; position: absolute; left: -100px; }
#game-wrapper #cloud-base { top: -30px; height: 100px; filter: url(#filter-base); box-shadow: 200px 170px 19px 40px rgba(255, 255, 255, 0.6); }
#game-wrapper #cloud-back { top: -30px; height: 30px; width: 500px; filter: url(#filter-back); box-shadow: 200px 200px 10px 40px rgba(215, 215, 215, 0.4); }
#game-wrapper #cloud-mid { top: -40px; width: 580px; height: 35px; filter: url(#filter-mid); box-shadow: 210px 250px 28px 30px rgba(187, 134, 252, 0.3); }
#game-wrapper #cloud-front { top: -50px; width: 450px; height: 40px; left: -20px; filter: url(#filter-front); box-shadow: 210px 272px 30px 0px rgba(0, 0, 0, 0.9); }
#game-wrapper .modal-score-board { display: flex; justify-content: space-around; align-items: center; margin: 1.25rem 0; background: var(--chat-col-bg); padding: 1.25rem; border-radius: 8px; border: 1px solid #444; width: 100%; box-sizing: border-box; box-shadow: inset 0 0 20px var(--shadow-base); }
#game-wrapper .modal-score-col { text-align: center; }
#game-wrapper .modal-score-label { font-size: 0.75rem; color: #aaa; text-transform: uppercase; font-family: 'Cardo', serif; letter-spacing: 1px; }
#game-wrapper .modal-score-val { font-size: 2.25rem; font-weight: bold; line-height: 1; font-family: 'Cardo', serif; }
#game-wrapper .modal-score-val span { font-size: 1.25rem; color: #666; }
#game-wrapper .modal-score-vs { font-size: 1.25rem; color: #555; font-weight: 900; font-family: 'Cardo', serif; }
#game-wrapper .drag-over-active { transform: scale(0.9) !important; filter: drop-shadow(0 0 15px var(--highlight)); z-index: 10; border-radius: 5cqi; outline: 2px solid var(--highlight); }
#game-wrapper .modal-score-summary { font-family: 'Cardo', serif; font-size: 0.9375rem; margin-bottom: 1.25rem; text-align: left; background: var(--chat-col-bg); padding: 0.9375rem; border-radius: 8px; border: 1px solid #333; width: 100% }
#game-wrapper .modal-score-row { margin-bottom: 0.75rem; display: flex; justify-content: space-between; align-items: center; }
#game-wrapper .modal-score-row:last-child { margin-bottom: 0; }
#game-wrapper .modal-score-row span { color: #aaa; }
#game-wrapper .modal-score-row strong { text-align: right; color: var(--text-light); }
#game-wrapper .market-discard-power { display: flex; justify-content: space-between; align-items: center; font-size: 0.8125rem; font-family: 'Cardo', serif; background: var(--mat-white); padding: 0.375rem 0.75rem; border-radius: 8px; border: 1px solid #444; margin-bottom: 0.625rem; }
#game-wrapper .market-discard-power .sub-text { color: #aaa; font-size: 0.6875rem; }
#game-wrapper .draw-modal-desc { display: block; margin-bottom: 0.9375rem; color: #aaa; font-size: 0.875rem; line-height: 1.4; text-shadow: var(--body-text-shadow); font-family: 'Cardo', serif;
background-color: var(--ui-bg-color); border: dotted var(--text-light) 1px; padding: 0.5rem; width: 100%; box-sizing: border-box; }
#game-wrapper .btn-top-right { position: absolute; top: 0.9375rem; right: 0.9375rem; font-size: 0.6875rem; padding: 0.375rem 0.625rem; margin: 0; z-index: 30; border-radius: 6px; }
#game-wrapper .btn-top-left { position: absolute; top: 0.9375rem; left: 0.9375rem; font-size: 0.6875rem; padding: 0.375rem 0.625rem; margin: 0; border-color: #bb86fc; z-index: 30; border-radius: 6px; }
#game-wrapper .modal-badge-top-left { position: absolute; top: 0.9375rem; left: 0.9375rem; font-size: 0.6875rem; font-weight: bold; background: #1a1a24; border: 1px solid #444; padding: 0.35rem 0.6rem; border-radius: 6px; color: var(--text-light); z-index: 30; font-family: 'Cardo', serif; box-shadow: 0 4px 10px rgba(0,0,0,0.5); flex-direction: row;
display: flex;
justify-content: center;
align-items: center;
gap: 0.5rem; max-height: 2.25rem;}
#game-wrapper .modal-badge-bottom-left { position: absolute; font-size: 0.75rem; font-weight: bold; color: var(--text-dark); font-family: 'Cardo', serif; z-index: 5;
margin-inline: auto;
width: 100%; top: 0.75rem;}
#game-wrapper .modal-badge-bottom-right { position: absolute; display: flex; flex-direction: column; align-items: center; font-family: 'Cardo', serif; z-index: 5; pointer-events: none;
margin-inline: auto;
width: 100%; top: 2.5rem;}
#game-wrapper .modal-score-badge-row { display: flex; align-items: center; gap: 3px; font-weight: 900; font-size: 0.75rem; color: var(--text-dark); }
#game-wrapper .modal-cost-circle { width: 1.125rem; height: 1.125rem; border: 1.5px solid var(--highlight); border-radius: 50%; background: #111; color: var(--highlight); display: flex; align-items: center; justify-content: center; font-size: 0.6875rem; font-weight: 900; line-height: 1; box-shadow: 0 0 8px rgba(239, 224, 136, 0.4); }
#game-wrapper .modal-badge-subtext { font-size: 0.5rem; color: var(--text-dark); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 2px; font-weight: bold; }
#game-wrapper .modal-badge-desc {
color:var(--highlight); margin-top:0.2rem; text-shadow: var(--body-text-shadow); font-size: 0.75rem; font-family: 'Cardo', serif; text-align: center; }
#game-wrapper .badge-highlight { color: var(--highlight); }
#game-wrapper .discard-modal,
#game-wrapper .market-modal {
display: grid;
grid-template-columns: repeat(2, 1fr);
justify-items: center;
align-items: start;
box-sizing: border-box;
padding: 0.75rem 0.25rem;
margin-top: 1rem;
margin-bottom: 3rem;
gap: 1rem 0.5rem;
max-height: 60dvh;
height: 55vh;
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: none;
box-shadow: inset 0px 0px 10px 1px var(--mat-black);
border-radius: 12px;
outline: 1px var(--mat-black) solid;
background: #0f1016;
position: relative;
isolation: isolate;
--card-w: clamp(7.2rem, 37vw, 11.5rem);
width: stretch;
}
#game-wrapper .discard-modal { max-height: 400px; margin-top: 15px; }
#game-wrapper .market-modal .horizon-choice,
#game-wrapper .discard-modal .discard-choice,
#game-wrapper .discard-modal .hand-spend-choice {
margin: 0 !important;
width: 100%;
display: flex;
justify-content: center;
}
#game-wrapper .market-modal .card-wrapper,
#game-wrapper .discard-modal .card-wrapper {
margin: 0 !important;
}
#game-wrapper .modal-focus-card {
display: flex; justify-content: center; align-items: center; margin: 1.5rem auto; width: 100%;
--card-w: clamp(10rem, 45vw, 15rem);
}
#game-wrapper .market-modal::before, #game-wrapper .discard-modal::before {
content: ''; position: absolute; inset: 0; z-index: -2;
background: var(--modal-border-gradient);
opacity: 0.75; mix-blend-mode: screen; pointer-events: none;
height: 100vh;
border-style: solid;
border-color: transparent;
border-image-source: url('pillow-modal.webp');
border-image-slice: 100 10 100 10 fill;
border-image-width: 30px 0 30px 0;
border-image-repeat: stretch;
background-size: cover;
inset: -1rem;
filter: blur(0.25px);
opacity: 0.4;
}
#game-wrapper.market-modal::after, #game-wrapper .discard-modal::after {
content: ''; position: absolute; inset: 0; z-index: -1;
background: var(--modal-border-gradient-180); opacity: 0.85; pointer-events: none;
box-shadow: inset 0px 0px 14px 1px rgb(10 10 15 / 45%), inset 0px 0px 2px 0px rgb(210 210 215 / 45%), inset 0px 0px 3px 0px rgb(10 10 15 / 85%);
}
#game-wrapper .purchase-compare { display: flex; justify-content: center; gap: 30px; align-items: center; margin: 20px 0; }
#game-wrapper input { user-select: text; -webkit-user-select: text; }
#game-wrapper button {
appearance: none;
cursor: pointer;
position: relative;
z-index: 1;
background: transparent !important;
color: var(--text-dark);
border: 0.25rem double #666;
padding: 0.625rem 1.25rem;
margin: 0.3125rem;
border-radius: 6px;
font-size: 1rem;
font-weight: bolder;
transition: transform 0.15s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.15s cubic-bezier(0.2, 0.8, 0.2, 1), background 0.1s, border-color 0.1s, scale 0.1s cubic-bezier(0.2, 0.8, 0.2, 1);
font-family: cardo,sans-serif;
box-shadow: 2.5px 2.5px 8px 0 #4e4e7670,.5px .5px .5px #f1f1f130,.5px .5px .5px 0.5px var(--text-dark);
font-variant-caps: small-caps;
text-shadow: 0.25px 0.25px var(--ui-bg-color), -0.25px -0.25px var(--text-light);
&amp;:focus {
outline: 0;
}
&amp;::before {
content: '';
position: absolute;
inset: -0.25rem;
z-index: -1;
border-style: solid;
border-color: transparent;
border-image-source: url('btn.webp');
border-image-slice: 10 70 10 70 fill;
border-image-width: 0px 14px 0px 15px;
border-image-repeat: stretch;
pointer-events: none;
transition: filter 0.2s ease, border 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), border-image-source 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
&amp;::after {
position: absolute;
content: '';
display: none;
width: 140%;
height: 140%;
left: -20%;
top: -20%;
z-index: -2;
background-repeat: no-repeat;
pointer-events: none;
background-image:
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, transparent 20%, var(--button-bg, var(--text-light)) 20%, transparent 30%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, transparent 10%, var(--button-bg, var(--text-light)) 15%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, transparent 10%, var(--button-bg, var(--text-light)) 15%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%),
radial-gradient(circle, var(--button-bg, var(--text-light)) 20%, transparent 20%);
}
&amp;:active {
transform: scale(0.98);
background-color: color-mix(in srgb, var(--button-bg, transparent), black 5%);
box-shadow: 0 2px 25px rgba(255, 0, 130, 0.2);
&amp;::before {
border-image-source: url('btn-active.webp');
}
}
&amp;:hover {
border-color: #ffffff6b;
color: var(--text-light);
&amp;::before {
border-image-source: url('btn-hover.webp');
}
}
&amp;:focus::after {
display: block;
animation: combinedBubbles ease-in-out 0.4s forwards;
}
}
@keyframes combinedBubbles {
0% {
background-position:
5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%, 40% 90%, 55% 90%, 70% 90%,
10% 10%, 30% 10%, 55% 10%, 70% 10%, 85% 10%, 70% 10%, 70% 10%;
background-size:
10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%, 10% 10%, 18% 18%,
15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
}
50% {
background-position:
0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%, 50% 50%, 65% 20%, 90% 30%,
0% 80%, 20% 80%, 45% 60%, 60% 90%, 75% 70%, 95% 60%, 105% 20%;
background-size:
10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%, 10% 10%, 18% 18%,
15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
}
100% {
background-position:
0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%, 50% 40%, 65% 10%, 90% 20%,
0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%, 110% 30%;
background-size:
0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%,
0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
}
}
#game-wrapper button:disabled { opacity: 0.5; cursor: not-allowed; border-color: #333; }
#game-wrapper button:disabled::before { filter: grayscale(1) brightness(0.6); }
#game-wrapper button.btn-small { padding: 0.25rem 0.5rem; font-size: 0.75rem; margin: 0; }
#game-wrapper button.btn-small::before { inset: -0.15rem; border-radius: 6px; }
#game-wrapper .btn-schemes { border-color: #bb86fc; }
#game-wrapper .btn-next-phase { display: none; margin-bottom: 1.25rem; }
#game-wrapper .btn-drawer-close { margin: 0; }
#game-wrapper .btn-ready { border-color: var(--highlight); animation: pulse-glow 1.2s infinite; }
#game-wrapper .btn-show-all{ position: absolute; bottom: 15px; left: 15px; font-size: 11px; padding: 6px 10px; margin: 0; border-color: var(--highlight); z-index: 30; border-radius: 6px; background:var(--ui-bg-color); color:#fff; cursor:pointer; font-weight:bold; font-family:'Segoe UI',sans-serif; }
#game-wrapper :is(.button, .chip, .text-field) img, svg, #game-wrapper :is(.set.tabs) :is(img, svg) {
min-inline-size: auto;
max-inline-size: none;
min-block-size: auto;
max-block-size: none;
}
#game-wrapper .hud-popover {
position: fixed;
top: -9999px;
left: -9999px;
background: #14151e;
border: 1px solid #444;
border-radius: 10px;
box-shadow: 0 10px 30px rgba(0,0,0,0.9);
padding: 0.625rem 0.75rem;
min-width: 200px;
z-index: 1500;
display: none;
flex-direction: column;
gap: 6px;
font-family: 'Segoe UI', sans-serif;
animation: popoverDrop 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
pointer-events: auto;
text-shadow: none;
}
#game-wrapper .hud-popover.open { display: flex; }
#game-wrapper .hud-popover-title { font-size: 0.6875rem; font-weight: bold; text-transform: uppercase; color: #888; letter-spacing: 0.5px; border-bottom: 1px solid #333; padding-bottom: 4px; margin-bottom: 2px; }
#game-wrapper .hud-popover-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; padding: 4px 6px; border-radius: 5px; color: var(--text-light); }
#game-wrapper .hud-popover-row.current { background: var(--mat-white); border-left: 2px solid var(--highlight); font-weight: bold; }
#game-wrapper .hud-popover-row.past { opacity: 0.7; }
#game-wrapper .hud-popover-footnote { font-size: 0.625rem; color: #777; border-top: 1px solid var(--ui-bg-color); padding-top: 6px; margin-top: 4px; font-style: italic; }
#game-wrapper .btn-settings-hud { font-size: 1rem; width: var(--pill-h); padding: 0; }
#game-wrapper #board-area { flex: 1; display: flex; flex-direction: column; padding: var(--board-pad); gap: var(--board-gap); scrollbar-width: none; perspective: 1200px; position: relative; z-index: 5; transition: margin-left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); transform-origin: center top; }
#game-wrapper #board-area.board-zoomed { transform: scale(1.025); }
.mt-auto { margin-top: auto !important; }
.action-log { text-align: center; font-size: 1rem; font-weight: bold; color: #fff; padding: 0.3125rem; height: 1.5rem; text-transform: uppercase; letter-spacing: 1px; font-family: 'Cardo', serif;
z-index: 9;
width: fit-content;
background: var(--chat-col-bg); border: dotted var(--text-light) 1px;
margin-inline: auto;
padding: 0.5rem;
padding-bottom: 2rem; }
#game-wrapper .mat { border-radius: 12px; padding: var(--mat-pad); display: flex; flex-direction: column; align-items: center; position: relative; border: 1px solid rgba(255,255,255,0.1); transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.6s, margin 0.6s; transform-origin: center; }
#game-wrapper.mat-white { color: var(--text-light); z-index: 8; position: sticky; top: 0; background: transparent; border: none; }
#game-wrapper .mat-black {
color: var(--text-light);
flex: var(--mat-black-flex);
justify-content: var(--mat-black-jc);
padding-bottom: var(--mat-black-pb);
z-index: 8;
position: relative;
min-height: auto;
max-height: 45vh;
margin-top: auto;
background: transparent;
border: none;
}
#game-wrapper .mat-bg { position: absolute; inset: 0; background: linear-gradient(180deg, var(--ui-bg-color), transparent); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; z-index: -1; pointer-events: none; }
#game-wrapper .mat-title { margin: 0 0 var(--mat-title-mb) 0; opacity: 0.8; text-transform: uppercase; font-size: var(--mat-title-fs); font-family: 'Cardo', serif; letter-spacing: 1px; z-index: 2; text-shadow: var(--body-text-shadow); }
#game-wrapper .mat-header-row { display: flex; justify-content: space-between; width: 100%; align-items: center; }
#game-wrapper .mat-collapsed { transform-origin: top; transform: scale(0.7); opacity: 0.4; max-height: 10dvh; filter: blur(1px); margin: -10px 0; transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s, filter 0.2s; pointer-events: none; }
#game-wrapper .mat-collapsed.has-cards { pointer-events: auto; margin-block: auto; }
#game-wrapper .mat-collapsed.has-cards:hover { transform: scale(0.75); opacity: 1; filter: blur(0px); z-index: 10; transition-delay: 0.8s; }
#game-wrapper .mat-white.has-cards {z-index: 8;
max-height: 30dvh; }
#game-wrapper .mat-white.mat-collapsed {overflow: visible; max-height: 10dvh;}
#game-wrapper .mat-collapsed .slot { border-color: transparent; background: transparent; box-shadow: none; }
#game-wrapper .mat-black.mat-collapsed { transform: scale(0.65) translateY(10vh); opacity: 0.15; pointer-events: none; filter: blur(2px); overflow: visible;}
#game-wrapper .slot-group-container { display: flex; justify-content: center; width: 100%; max-width: 800px; gap: 2rem;
padding: 1rem;}
#game-wrapper .sequence-slot-group { position: relative; width: var(--seq-group-w); height: var(--seq-group-h); display: flex; align-items: center; justify-content: center; }
#game-wrapper #teammate-sequence { cursor: default; }
#game-wrapper .side-hud-container {
position: absolute;
top: 33vh;
left: 0;
width: 100%;
margin: 0.125rem 0;
padding: 0.125rem 0.9375rem;
display: flex;
flex-direction: row;
justify-content: space-between;
background: transparent;
box-sizing: border-box;
pointer-events: none;
height: auto;
min-height: calc(var(--card-h) * 1.5);
z-index: 9;
flex: 1 1 auto;
transition: top 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
#game-wrapper[data-phase="nighttime"] .side-hud-container {
top: 5rem;
}
#game-wrapper .hud-left, .hud-right { display: flex; flex-direction: row; gap: var(--hud-gap); pointer-events: auto; align-items: center; justify-content: center; flex-direction: column; }
#game-wrapper .deck-wrapper, .discard-wrapper { display: flex; flex-direction: column; align-items: center; gap: 3px; }
#game-wrapper .deck-wrapper {gap: 10px;}
#game-wrapper .deck-visual, .discard-visual { display: flex; width: var(--deck-w); height: var(--deck-h); margin: 0; position: relative; }
#game-wrapper .deck-visual { background-color: #0f1016; background-image: url('card-back-bw.webp'); background-size: contain; background-position: center; border: 2px solid #555; border-radius: 6px; align-items: center; justify-content: center; transition: box-shadow 0.3s, transform 0.3s; box-shadow: -1px 1px 0px #222; }
#game-wrapper .discard-visual { align-items: center; justify-content: center; margin-bottom: 10px; }
#game-wrapper .deck-visual-logo { width: var(--deck-logo-sz); height: var(--deck-logo-sz); border: 2px dashed rgba(255,255,255,0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); font-size: var(--deck-logo-fs); font-weight: 900; letter-spacing: 1px; font-family: 'Cardo', serif; box-shadow: inset 0 0 10px var(--shadow-dark); }
#game-wrapper .discard-stack-card { position: absolute; width: var(--deck-w); height: var(--deck-h); border-radius: 6px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.7); pointer-events: none; border: 1px solid rgba(255,255,255,0.15); transition: transform 0.25s ease-out; }
#game-wrapper .discard-stack-card .card-wrapper { transform: var(--discard-scale); transform-origin: var(--discard-origin); }
#game-wrapper .discard-visual-empty { width: var(--deck-w); height: var(--deck-h); border: 2px dashed rgba(255,255,255,0.2); border-radius: 6px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.3); font-size: var(--deck-empty-fs); font-weight: bold; font-family: 'Segoe UI', sans-serif; background: var(--ui-bg-color);
}
#game-wrapper #rested-track { position: var(--rested-body-pos); top: var(--rested-top); right: var(--rested-right); width: fit-content; display: flex; flex-direction: column; z-index: var(--rested-z); pointer-events: auto; }
#game-wrapper .rested-mobile-pill { display: var(--rested-pill-display); height: 26px; font-size: 10px; padding: 0 8px; }
#game-wrapper .slot { position: absolute; border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; box-shadow: inset 0 0 20px var(--shadow-base); }
#game-wrapper .slot-dream { width: calc(var(--card-w) + 12px); height: calc(var(--card-h) + 12px); border: 2px dashed rgba(255,255,255,0.4); z-index: 2; background: rgba(0,0,0,0.2); box-sizing: border-box; padding: 0 0 3px 0; }
#game-wrapper .slot-defence { width: var(--card-w); height: var(--card-h); box-shadow: none; z-index: 3; transform: rotate(170deg); top: 55px; left: 15px; pointer-events: none; }
#game-wrapper .slot-sacrifice { width: var(--card-w); height: var(--card-h); z-index: 1; transform: rotate(225deg); top: 0px; right: 0px; pointer-events: none; }
#game-wrapper .slot.ready-to-drop { background: rgba(255,255,255,0.1); border-style: solid; border-color: #fff; box-shadow: 0 0 15px rgba(255,255,255,0.2); cursor: pointer; }
#game-wrapper .slot.ready-to-drop.drag-over { background: rgba(255, 230, 0, 0.25); border-color: #ffe600; box-shadow: 0 0 25px rgba(255, 230, 0, 0.8), inset 0 0 15px rgba(255, 230, 0, 0.4); transform: scale(1.05); }
#game-wrapper .clickable-slot { cursor: pointer; pointer-events: auto !important; transition: filter 0.2s, transform 0.2s; }
#game-wrapper .clickable-slot:hover { filter: brightness(1.3); scale: 1.05; z-index: 10 !important; }
#game-wrapper .hand-container { display: flex; justify-content: center; align-items: flex-end; flex-wrap: nowrap; min-height: var(--card-h); gap: 1rem;
padding-inline: 1rem;}
#game-wrapper #teammate-hand { position: absolute; top: -12dvh; left: 50%; transform: translateX(-50%) scale(0.8); pointer-events: none; opacity: 0.7; z-index: 1;}
#game-wrapper .recurring-pool { display: flex; justify-content: center; gap: 5px; flex-wrap: wrap; width: 100%; height: var(--card-w);
align-content: end;}
#game-wrapper .card-wrapper.horizontal-card { transform: rotateZ(-90deg) scale(0.85) translate(-10px, 0px) !important; transform-origin: center; transition: all 0.2s; margin: 0 12px; }
#game-wrapper .card-wrapper.horizontal-card:hover { transform: rotateZ(-90deg) scale(1) translate(-10px, 0px) !important; z-index: 50 !important; }
#game-wrapper .card-wrapper {
width: var(--card-w);
height: auto;
aspect-ratio: 1 / 1.4;
container-type: inline-size;
perspective: 1000px;
cursor: grab;
transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) translateY(var(--ty, 0px)) scale(var(--s, 1));
transition: transform 0.2s ease-out, margin 0.3s ease-out;
z-index: 5;
--c-val: 22.5cqi;
--c-opp: 12cqi;
--c-title: 6cqi;
--c-pow: 8.5cqi;
--c-desc: 6cqi;
--c-icon: 12cqi;
--c-cost: 8.5cqi;
--c-cost-f: 6cqi;
--card-pad-v: 3.5cqi;
--card-pad-h: 15cqi;
--card-pow-mt: 2cqi;
--card-pow-mb: 1.5cqi;
}
#game-wrapper .card-wrapper.in-hand:hover { z-index: 50 !important; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) rotateZ(0deg) translateY(-25px) scale(1.02); transition: 0.1s cubic-bezier(0.15, 0.45, 0.795, 0.95); }
#game-wrapper .draggable { touch-action: none !important; }
#game-wrapper .card-wrapper.card-selected { outline: 3px solid #ffe600; box-shadow: 0 0 20px #ffe600 !important; }
#game-wrapper .card-wrapper.discard-selected { outline: 3px solid var(--danger); box-shadow: 0 0 20px var(--danger) !important; filter: saturate(0) opacity(0.8); }
#game-wrapper .card-inner { position: relative; width: 100%; height: 100%; transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); transform-style: preserve-3d; border-radius: 5cqi; box-shadow: 0 0 0 1px #444; backface-visibility: hidden;}
#game-wrapper .card-wrapper.facedown .card-inner { transform: rotateY(180deg); }
#game-wrapper .card-wrapper.rotated .dual-card { transform: rotateZ(180deg); }
#game-wrapper .card-front, .card-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; border-radius: 5cqi; overflow: hidden; box-shadow: 0 6px 12px var(--shadow-base); border: 1px solid #000; box-sizing: border-box; }
#game-wrapper .card-shine { position: absolute; inset: 0; z-index: 10; border-radius: 5cqi; pointer-events: none; mix-blend-mode: color-dodge; background-image: url("https://res.cloudinary.com/simey/image/upload/Dev/PokemonCards/galaxy.png"), repeating-linear-gradient( 82deg, rgb(218, 56, 50) 20px, rgb(219, 204, 86) 40px, rgb(121, 199, 58) 60px, rgb(58, 192, 183) 80px, rgb(71, 98, 207) 100px, rgb(170, 69, 209) 120px, rgb(218, 56, 50) 200px ), radial-gradient( farthest-corner circle at var(--posx, 50%) var(--posy, 50%), rgba(255, 255, 255, 0.4) 5%, rgba(150, 150, 150, 0.15) 30%, rgb(0, 0, 0) 90% ); background-blend-mode: color-dodge, color-burn, screen; background-position: center, center, var(--posx, 50%) var(--posy, 50%); background-size: cover, 600% 1200%, cover; filter: brightness(calc((var(--hyp, 0) * 0.15) + 0.4)) contrast(1.1) saturate(0.85); opacity: 0; transition: opacity 0.3s ease-out; }
#game-wrapper .card-wrapper:hover .card-shine { opacity: 0.58; }
#game-wrapper .dual-card { display: flex; flex-direction: column; width: 100%; height: 100%; background: linear-gradient(0deg, #111 48.5%, #ffffff 81.5%); padding: 1.5cqi; box-sizing: border-box; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 5cqi; outline: 0.5px solid var(--mat-black); }
#game-wrapper .card-border-inner { border: 1px dotted rgb(133, 133, 133); box-sizing: border-box; border-radius: 3.5cqi; display: flex; flex-direction: column; height: 100%; position: relative; overflow: hidden; background: linear-gradient(-195deg, #111111 49.5%, #555 48.5%, #555555 51.5%, #f4f4f4 51.5%); background-origin: border-box; }
#game-wrapper .half-dream, .half-sentinel { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; padding: var(--card-pad-v) var(--card-pad-h); box-sizing: border-box; text-align: center; }
#game-wrapper .half-dream { color: #eee; z-index: 1; }
#game-wrapper .half-sentinel { color: #111; transform: rotate(180deg); z-index: 2; }
#game-wrapper .half-dream .card-corner-icon { color: var(--text-light); fill: var(--text-light); }
#game-wrapper .card-val-group { position: absolute; top: 3.5cqi; left: 0px; display: flex; flex-direction: column; align-items: center; gap: 1.5cqi; width: 16cqi; z-index: 3; }
#game-wrapper .card-val { font-weight: 900; font-size: var(--c-val); font-family: 'Cardo', serif; line-height: 0.8; text-shadow: 0.5px 0.5px var(--shadow-base); }
#game-wrapper .card-opp-tag { display: flex; align-items: center; justify-content: center; font-size: var(--c-opp); font-weight: 900; font-family: 'Cardo', serif; line-height: 1; padding: 1cqi; border-radius: 0 5cqi 5cqi 0; min-width: 15cqi; height: 12cqi; box-sizing: border-box; border: 0.75px #80808094 dotted; border-left: none; background: color-mix(contrast-color(var(--ui-bg-color)), transparent 80%); filter: contrast(0.75) drop-shadow(0.25px 0.25px 0px var(--ui-bg-color)); }
#game-wrapper .card-corner-group { position: absolute; top: 3.5cqi; right: 0px; display: flex; flex-direction: column; align-items: center; gap: 3cqi; width: 16cqi; z-index: 3; }
#game-wrapper .card-corner-icon { font-size: var(--c-opp); display: flex; align-items: center; justify-content: center; }
#game-wrapper .card-corner-icon svg { width: var(--c-opp) !important; height: var(--c-opp) !important; }
#game-wrapper .card-title-pill { display: block; margin: 1cqi auto 1.5cqi auto; background: var(--mat-black); color: #fff;
padding: 3cqi 2cqi 3cqi 2cqi;
font-size: clamp(2cqi, 5cqi, var(--c-title));
font-weight: 700;
width: 96%;
max-width: 100%;
text-align: center; font-family: 'Cardo', serif;
line-height: 1.1; clip-path: polygon(4cqi 0, calc(100% - 4cqi) 0, 100% 4cqi, 100% calc(100% - 4cqi), calc(100% - 4cqi) 100%, 4cqi 100%, 0 calc(100% - 4cqi), 0 4cqi); border: 2cqi double white; box-sizing: border-box; }
#game-wrapper .half-sentinel .card-title-pill { background: var(--mat-white); color: #111; border-color: #111; }
#game-wrapper .half-sentinel .card-title-pill::after { border-color: #111; }
#game-wrapper .card-cost-badge {width: var(--c-cost); height: var(--c-cost); border: 1px solid #fff; border-radius: 50%; background: #111; color: #fff; display: flex; align-items: center; justify-content: center; font-size: var(--c-cost-f); font-weight: 900; font-family: 'Segoe UI', sans-serif; line-height: 1; padding-bottom: 0.15em; box-sizing: border-box; }
#game-wrapper .half-sentinel .card-cost-badge { background: var(--mat-white); color: #111; border-color: #111; }
#game-wrapper .card-power { display: block; position: static; font-size: var(--c-pow); text-align: center; font-weight: 900; margin-top: var(--card-pow-mt); margin-bottom: var(--card-pow-mb); color: #eee; line-height: 1.1; font-family: 'Cardo', serif; width: 100%; text-wrap: pretty;}
#game-wrapper .half-sentinel .card-power { color: #111; }
#game-wrapper .card-desc {
display: var(--card-desc-display);
position: static;
font-size: var(--c-desc);
text-wrap: balance;
text-align: center;
font-family: 'Cardo', serif;
font-style: italic;
line-height: 1.15;
color: #aaa;
margin: auto 0;
padding-bottom: 2px;
width: 100%;
flex: 0.5 1 auto;
min-height: 0;
overflow-y: auto;
scrollbar-width: none;
text-shadow: var(--body-text-shadow);
}
#game-wrapper .card-desc::-webkit-scrollbar { display: none; }
#game-wrapper .half-sentinel .card-desc { color: #555; }
#game-wrapper .card-type-icon { font-size: var(--c-icon); display: flex; align-items: center; justify-content: center; }
#game-wrapper .card-type-icon svg { width: var(--c-icon) !important; height: var(--c-icon) !important; fill: none; }
#game-wrapper .icon-filled svg { fill: currentColor!important; }
#game-wrapper .card-back { transform: rotateY(180deg); background-color: #0f1016; background-image: url('card-back-bw.webp'); background-size: cover; background-position: center; border: 2px solid #555; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; }
#game-wrapper .card-back-logo { width: var(--deck-logo-sz); height: var(--deck-logo-sz); border: 2px dashed rgba(255,255,255,0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); font-size: var(--logo-f); font-weight: 900; letter-spacing: 2px; font-family: 'Cardo', serif; box-shadow: inset 0 0 15px var(--shadow-dark); }
#game-wrapper .card-back::before { position: absolute; top: 12px; left: 12px; color: rgba(255,255,255,0.3); font-size: 16px; }
#game-wrapper .card-back::after { position: absolute; bottom: 12px; right: 12px; color: rgba(255,255,255,0.15); font-size: 22px; }
#game-wrapper .inline-faceup-prompt { position: fixed; display: flex; flex-direction: column; align-items: center; z-index: 2000; pointer-events: none; }
#game-wrapper .inline-prompt-card-wrapper { width: var(--card-w); height: var(--card-h); display: flex; align-items: center; justify-content: center; pointer-events: auto; cursor: pointer; transition: transform 0.15s ease-out, filter 0.15s ease-out; }
#game-wrapper .inline-prompt-card-wrapper:hover { transform: scale(1.04) translateY(-3px); filter: drop-shadow(0 0 10px rgba(255, 68, 68, 0.7)); }
#game-wrapper .inline-prompt-actions { display: flex; gap: 6px; background: #161722; padding: 6px 9px; border-radius: 10px; border: 2px solid #bb86fc; box-shadow: 0 0 20px rgba(187, 134, 252, 0.8); margin-top: 8px; pointer-events: auto; animation: prompt-attention-pulse 1.3s infinite ease-in-out; }
#game-wrapper .inline-prompt-btn { margin: 0; font-size: 12px; font-weight: 900; padding: 6px 12px; white-space: nowrap; line-height: 1.1; border-radius: 6px; transition: transform 0.15s ease-out; }
#game-wrapper .inline-prompt-btn:hover { transform: scale(1.08); }
#game-wrapper .floating-score-hud { position: fixed; top: 40dvh; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 24px; background: var(--ui-bg-color); border: 3px double var(--text-light); box-shadow: 0 10px 80px 5px rgba(0,0,0,0.9), 2px 2px 5px rgba(255,255,255,0.1), 0 1px 1px var(--shadow-dark); padding: 8px 24px; border-radius: 30px; z-index: 2000; font-family: 'Cardo', serif; animation: scoreHudSlideIn 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); backdrop-filter: blur(8px); transition: left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
outline: 0.5px solid #5555556c;}
#game-wrapper .floating-score-item { display: flex; flex-direction: column; align-items: center; min-width: 70px; }
#game-wrapper .floating-score-label { font-size: 11px; color: #888; text-transform: uppercase; font-weight: bold; letter-spacing: 0.5px; }
#game-wrapper .floating-score-number { font-size: 24px; font-weight: 900; line-height: 1.1; transition: transform 0.2s, color 0.2s; }
#game-wrapper .floating-score-vs { font-size: 13px; font-weight: bold; color: #555; }
#game-wrapper .rested-track-body { display: var(--rested-body-display); position: var(--rested-body-pos); top: var(--rested-body-top); right: 0; flex-direction: column; gap: 0.5rem; align-items: center; background: rgba(15, 16, 22, 0.9); padding: 10px; border-radius: 12px; border: 1px solid #333; box-shadow: 0 5px 15px var(--shadow-base); font-family: 'Cardo', serif;
font-weight: bolder;}
#game-wrapper .track-slot { width: 28px; height: 28px; border-radius: 50%; border: 2px solid #555; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: bold; color: #666; transition: 0.2s cubic-bezier(0.2,0.8,0.2,1); background: #111; }
#game-wrapper .track-slot.active { border-color: #bb86fc; color: #fff; box-shadow: 0 0 15px rgba(187,134,252,0.8); background: rgba(187,134,252,0.2); transform: scale(1.15); }
#game-wrapper .track-label { font-size: var(--c-desc,9px); color: #aaa; font-family: 'Cardo', serif; text-align: center; width: 60px; font-weight: bold; letter-spacing: 0.5px; }
#game-wrapper .tube-track-container { display: flex; flex-direction: column; align-items: center; margin: 0px auto 0 auto; width: 100%; font-family: 'Cardo', serif; padding-top: 0px; gap: 1rem;}
#game-wrapper .tube-track-title {text-align: center; font-size: 11px; font-weight: bold; color: #888; text-transform: uppercase; margin-bottom: 12px; letter-spacing: 0.5px;}
#game-wrapper .tube-track-line { display: flex; align-items: center; justify-content: space-between; position: relative; width: 100%; padding: 0 10px; box-sizing: border-box; }
#game-wrapper .tube-track-line::before { content: ''; position: absolute; top: 50%; left: 20px; right: 20px; height: 2px; background: #444; transform: translateY(-50%); z-index: 1; }
#game-wrapper .tube-node { position: relative; z-index: 2; width: var(--pill-h); height: var(--pill-h); border-radius: 50%; background: #111; border: 2px solid #555; display: flex; align-items: center; justify-content: center; font-size: var(--c-icon, 12px); font-weight: bold; color: var(--text-light); font-weight: bold; transition: all 0.3s; }
#game-wrapper .tube-node.active { width: var(--pill-h, 20px); height: var(--pill-h, 20px); border-color: #bb86fc; background: #bb86fc; color: #111; box-shadow: 0 0 12px #bb86fc; }
#game-wrapper .tube-labels { display: flex; justify-content: space-between; width: 100%; font-weight: bold; margin-top: 4px; letter-spacing: 0.5px; font-size: 0.8rem;
color: var(--text-light);}
#game-wrapper .tube-label-lock { color:#aaa; font-weight:normal; max-width: 120px; line-height: 1.2; width: 100%; text-align: center; color: #aaa;
font-weight: normal;
max-width: 120px;
line-height: 1.2;
width: 100%;
display: flex;
justify-content: flex-end;
flex-direction: column;
align-items: center;
gap: 0.5rem;
padding-top: 0.5rem;}
#game-wrapper .locked-market-card { filter: grayscale(1) brightness(0.35); opacity: 0.45; cursor: pointer; position: relative; }
#game-wrapper .lock-badge { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(180, 20, 20, 0.95); border: 1px solid #ff4444; padding: 4px 8px; border-radius: 6px; font-size: 11px; font-weight: bold; color: #fff; white-space: nowrap; box-shadow: 0 4px 12px var(--shadow-dark); z-index: 10; pointer-events: none; display: inline-flex; align-items: center; gap: 4px; flex-direction: column;
max-width: calc(var(--card-w) - 1rem);}
#game-wrapper .track-lock-icons { display: inline-flex; align-items: center; justify-content: center; gap: 4px; vertical-align: middle;color: #999;
border: #666 2px dotted;
padding: 5px;
border-radius: 4px;}
#game-wrapper .track-lock-icons svg,
#game-wrapper .lock-badge svg { width: 14px !important; height: 14px !important; display: inline-block; vertical-align: middle; }
#game-wrapper .track-lock-label{font-size:1rem; margin-left:4px; font-weight:bold; white-space: nowrap;}
#game-wrapper .affordable-glow {
animation: pulse-gold 1.3s infinite ease-in-out !important;
border-color: var(--highlight) !important;
color: var(--highlight) !important;
}
#game-wrapper .drawer-left { position: absolute; top: 0; left: -340px; width: 290px; max-width: 85vw; height: 100%; background: #14151e; z-index: 2500; transition: left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); display: none; flex-direction: column; padding: 15px; box-sizing: border-box; font-family: 'Segoe UI', sans-serif; border-right: 3px double rgba(255,255,255,.1);
background: var(--ui-bg-color);
box-shadow: 4px 0px 2rem #000000b0, 1px 0px 1.5rem #faebd70f, 1px 0px 2px black;}
#game-wrapper .drawer-left.open { left: 0; }
#game-wrapper .drawer-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.65); z-index: 2499; display: none; opacity: 0; transition: opacity 0.3s; }
#game-wrapper .drawer-backdrop.open { display: block; opacity: 1; }
#game-wrapper .drawer-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #333; padding-bottom: 10px; margin-bottom: 15px; }
#game-wrapper .drawer-title { margin: 0; color: var(--text-light); font-family: 'Cardo', serif; font-weight: bold; letter-spacing: 0.5px; font-size: 1.75rem; }
#game-wrapper .drawer-body { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; }
#game-wrapper .scheme-card { position: relative; padding: 2px; border-radius: 8px; background: linear-gradient(145deg, #3a3a4c 0%, #161722 100%); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 4px 12px rgba(0,0,0,0.5); font-size: 12px; text-align: left; transition: all 0.25s ease-out; box-sizing: border-box; }
#game-wrapper .scheme-card-inner { border: 1px dotted rgba(180, 180, 180, 0.45); border-radius: 6px; padding: 10px 12px; background: linear-gradient(175deg, #181926 0%, #0e0f16 100%); display: flex; flex-direction: column; height: 100%; box-sizing: border-box; }
#game-wrapper .scheme-card.active { background: linear-gradient(145deg, #5b3d87 0%, #1c182a 100%); border-color: #bdbdbd; box-shadow: 0 0 14px rgba(187, 134, 252, 0.35); }
#game-wrapper .scheme-card.active .scheme-card-inner { border-color: rgba(187, 134, 252, 0.6); }
#game-wrapper .scheme-card.secret { border-color: #c9c9c9; }
#game-wrapper .scheme-card.unrevealed { opacity: 0.5; background: linear-gradient(145deg, #252633 0%, #111116 100%); border-color: #333; }
#game-wrapper .scheme-card.unrevealed .scheme-card-inner { border-color: rgba(100, 100, 100, 0.35); }
#game-wrapper .scheme-card.completed { background: linear-gradient(145deg, #2d5a32 0%, #142217 100%); box-shadow: 0 0 16px rgba(76, 175, 80, 0.4); }
#game-wrapper .scheme-card.completed .scheme-card-inner { border-color: rgba(76, 175, 80, 0.4); background: linear-gradient(175deg, #101c13 0%, #0a110c 100%); }
#game-wrapper .scheme-completed-badge { font-weight: bold; font-size: 11px; margin-top: 8px; display: flex; align-items: center; gap: 4px; letter-spacing: 0.5px; }
#game-wrapper .scheme-toast { position: fixed; top: 60px; left: 50%; transform: translateX(-50%); background: #1a1a24; border: 2px solid #4caf50; box-shadow: 0 10px 30px rgba(0,0,0,0.85), 0 0 20px rgba(76, 175, 80, 0.5); padding: 12px 24px; border-radius: 12px; display: flex; align-items: center; gap: 15px; z-index: 99999; font-family: 'Segoe UI', sans-serif; animation: slideDownToast 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); transition: left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); }
#game-wrapper .toast-fade { opacity: 0; transform: translate(-50%, -20px); transition: all 0.4s ease-out; }
#game-wrapper .scheme-card-header { display: flex; justify-content: space-between; align-items: center; color: var(--accent); font-weight: bold; margin-bottom: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); padding-bottom: 4px; }
#game-wrapper .scheme-card-header.secret { color: #bb86fc; }
#game-wrapper .scheme-card-pts { color: var(--highlight); font-family: 'Cardo', serif; font-size: 14px; font-weight: 900; }
#game-wrapper .scheme-card-title { font-size: 15px; font-weight: bold; margin: 4px 0; font-family: 'Cardo', serif; color: #fff; }
#game-wrapper .scheme-card-desc { color: #aaa; font-style: italic; line-height: 1.3; font-family: 'Cardo', serif; text-shadow: var(--body-text-shadow); }
#game-wrapper .scheme-card-footnote { font-size: 10px; color: #888; margin-top: 6px; }
#game-wrapper .scheme-card-unrevealed-title { font-weight: bold; color: #888; font-family: 'Cardo', serif; font-size: 14px; margin-bottom: 4px; }
#game-wrapper .scheme-tracker-container { display: flex; justify-content: center; gap: 6px; margin: 10px 0 6px 0; }
#game-wrapper .scheme-tracker-node { width: 14px; height: 14px; border-radius: 50%; background: #111; border: 2px solid #555; transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); box-sizing: border-box; }
#game-wrapper .scheme-tracker-node.filled { background: #bb86fc; border-color: #bb86fc; box-shadow: 0 0 10px rgba(187, 134, 252, 0.8); }
#game-wrapper .scheme-card.completed .scheme-tracker-node.filled { background: #4caf50; border-color: #4caf50; box-shadow: 0 0 10px rgba(76, 175, 80, 0.8); }
#game-wrapper #drag-ghost { position: absolute; pointer-events: none; z-index: 1000; display: none; opacity: 0.95; transform-origin: center; filter: drop-shadow(0 15px 30px var(--shadow-dark)); }
#game-wrapper #chat-container { position: absolute; top: var(--chat-b); right: var(--chat-r); width: var(--chat-w); height: var(--chat-h); background: var(--ui-bg-color); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; display: var(--chat-ui-display); flex-direction: column; z-index: 500; box-shadow: 0 10px 30px var(--shadow-dark); backdrop-filter: blur(5px); transition: height 0.2s, width 0.2s, border-radius 0.2s; overflow: hidden; resize: both; font-family: 'Segoe UI', sans-serif; }
#game-wrapper #chat-container.chat-collapsed { top: 4rem; left: 0.5rem; width: var(--chat-col-w) !important; height: var(--chat-col-h) !important; padding: 0 !important; resize: none !important; overflow: hidden !important; }
#game-wrapper #chat-container.chat-collapsed #chat-messages, #chat-container.chat-collapsed .chat-input-area { display: none !important; }
#game-wrapper #chat-container.has-unread.chat-collapsed { border-color: var(--danger) !important; animation: pulse-danger 1.4s infinite !important; }
#game-wrapper .chat-badge { display: none; position: absolute; top: 4px; right: 34px; width: 10px; height: 10px; background: var(--danger); border-radius: 50%; border: 1.5px solid #fff; box-shadow: 0 0 8px var(--danger); z-index: 10; pointer-events: none; }
#game-wrapper #chat-container.has-unread .chat-badge { display: block; }
#game-wrapper #chat-container.chat-collapsed #chat-header { background: var(--chat-col-bg); padding: var(--chat-col-p); justify-content: var(--chat-col-jc); border: none; height: 100%; box-sizing: border-box; }
#game-wrapper #chat-container.chat-collapsed #chat-header span { font-size: var(--chat-txt); line-height: 1; margin: 0; }
#game-wrapper #chat-container.chat-collapsed #chat-header span::after { content: var(--chat-icon); font-size: var(--chat-icon-sz); display: inline-block; line-height: 1; }
#game-wrapper #chat-header { background: rgba(0,0,0,0.8); padding: 8px 12px; cursor: grab; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.1); font-weight: bold; }
#game-wrapper #chat-header span { font-size: 14px; margin: 0; }
#game-wrapper #chat-header span::after { content: ''; }
#game-wrapper #chat-toggle { background: rgba(255,255,255,0.1); border: none; color: #fff; cursor: pointer; width: 24px; height: 24px; border-radius: 4px; display: flex; justify-content: center; align-items: baseline; padding: 0; font-weight: bold; transition: background 0.2s; }
#game-wrapper #chat-toggle:hover { background: rgba(255,255,255,0.2); }
#game-wrapper #chat-messages { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-family: 'Cardo', serif; }
#game-wrapper .chat-msg { background: rgba(255,255,255,0.05); padding: 8px 12px; border-radius: 8px; line-height: 1.3; color: #eee; }
#game-wrapper .chat-msg.self { background: rgba(68, 170, 255, 0.15); align-self: flex-end; border: 1px solid rgba(68, 170, 255, 0.3); }
#game-wrapper .chat-msg.other { align-self: flex-start; border: 1px solid rgba(255,255,255,0.1); }
#game-wrapper .chat-input-area { display: flex; border-top: 1px solid rgba(255,255,255,0.1); padding: 5px; background: rgba(0,0,0,0.5); border-radius: 0 0 8px 8px; }
#game-wrapper #chat-input { flex: 1; background: transparent; border: none; color: #fff; padding: 5px 10px; outline: none; font-family: inherit; font-size: 14px; }
@media (min-width: 769px) {
#game-wrapper{
--rested-body-display: flex;
--rested-body-pos: absolute;
--rested-body-top: auto;
--chat-l: calc(1.25 * var(--base-unit));
--chat-r: auto;
--card-w: calc(8.5 * var(--base-unit));
--card-h: calc(var(--card-w) * 1.4);
}
#game-wrapper .desktop-hide { display: none !important; }
#game-wrapper .discard-modal, #game-wrapper .market-modal, #game-wrapper .horizon-modal, #game-wrapper .hand-spend-modal {
display: flex;
justify-content: center;
gap: 12px;
flex-wrap: wrap;
padding: 12px;
width: 100%;
max-height: 55vh;
padding-top: 5cqi;
}
#game-wrapper .mat-white.has-cards {
min-height:15%;}
#game-wrapper .market-modal .horizon-choice,
#game-wrapper .discard-modal .discard-choice,
#game-wrapper .discard-modal .hand-spend-choice {
margin: 5px !important;
width: auto;
box-shadow: 0 1px 5px 4px #0000006e,0 0 10px 5px #f5f5f5a8,0 1px 13px 10px #00000080;
border-radius: 0.5cqi;
}
#game-wrapper .modal-actions{
justify-content: center;}
#game-wrapper .modal-badge-bottom-left { bottom: 0.9375rem; left: 1.25rem;
width: fit-content; align-self: end; }
#game-wrapper .modal-badge-bottom-right { bottom: 0.75rem; right: 1.25rem;
width: fit-content; align-self: end;}
#game-wrapper .modal-score-board, #game-wrapper .modal-score-summary, #game-wrapper .tube-track-container { width: 66%;}
#game-wrapper .modal-focus-card {
--card-w: calc(11 * var(--base-unit));
}
#game-wrapper .side-hud-container,
#game-wrapper[data-phase="nighttime"] .side-hud-container {
top: 33dvh !important;
padding: 0px var(--card-h);
margin: 0;
flex: none;
}
#game-wrapper #status-bar {
position: relative;
overflow: visible;
display: none;
}
body.in-game #game-wrapper #status-bar {
display: flex;
}
body:not(.in-game) #game-wrapper {
&amp; #status-bar,
&amp; #chat-container {
display: none !important;
}
}
#game-wrapper #status-bar .status-group { flex: 1; display: flex; align-items: center; }
#game-wrapper #status-bar .status-group:last-child { justify-content: flex-end; }
#game-wrapper #hud-phase {
position: static;
transform: none;
flex: 0 1 auto;
margin: 0 1rem;
}
#game-wrapper #welcome-screen h1 { font-size: clamp(3.5rem, 8vw, 6rem) !important; }
#game-wrapper .mat-black {
justify-content: flex-start;
}
#game-wrapper #chat-container {
top: 6vh;
left: 2vh;
}
#game-wrapper #chat-container.chat-collapsed {
top: auto;
bottom: 1.25rem;
left: 0;
transition: margin-left 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
}
@media (min-width: 1200px) {
#game-wrapper .drawer-backdrop { display: none; }
body.in-game #game-wrapper .drawer-left { display: flex; left: 0; box-shadow: none; background: rgba(15, 16, 22, 0.95); }
body.in-game #game-wrapper .drawer-left.closed { left: -300px; }
body.in-game:not(.schemes-closed) #game-wrapper #board-area { margin-left: var(--scheme-drawer-w); }
body.in-game:not(.schemes-closed) #game-wrapper #status-bar { margin-left: var(--scheme-drawer-w); width: calc(100% - var(--scheme-drawer-w)); }
body.in-game:not(.schemes-closed) #game-wrapper .screen-overlay { left: var(--scheme-drawer-w); width: calc(100% - var(--scheme-drawer-w)); }
body.in-game:not(.schemes-closed) #game-wrapper .floating-score-hud { left: calc(50% + 145px); }
body.in-game:not(.schemes-closed) #game-wrapper .scheme-toast { left: calc(50% + 145px); }
body.in-game:not(.schemes-closed) #game-wrapper #chat-container.chat-collapsed { margin-left: calc(var(--scheme-drawer-w) + var(--board-pad)); }
body.in-game.schemes-closed #game-wrapper #board-area { margin-left: 0;}
body.in-game.schemes-closed #game-wrapper #status-bar { margin-left: 0; width: 100%; padding-left: 20px; }
body.in-game.schemes-closed #game-wrapper .screen-overlay { left: 0; width: 100%; }
body.in-game.schemes-closed #game-wrapper .floating-score-hud { left: 50%; top: 2rem;}
body.in-game.schemes-closed #game-wrapper .scheme-toast { left: 50%; }
body.in-game.schemes-closed #game-wrapper #chat-container.chat-collapsed { margin-left: calc(var(--scheme-drawer-w) + var(--board-pad)); }
}
@keyframes popoverDrop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pulse-sentinel-glow {
0%, 100% { box-shadow: 0 0 4px #bb86fc, inset 0 0 2px #bb86fc; color: #bb86fc; border-color: #bb86fc; }
50% { box-shadow: 0 0 14px #bb86fc, inset 0 0 6px #bb86fc; color: #111; border-color: #111; }
}
#game-wrapper .half-sentinel .affordable-glow {
animation: pulse-sentinel-glow 1.3s infinite ease-in-out !important;
border-color: #bb86fc !important;
color: #bb86fc !important;
}
@keyframes pulse-gold {
0%, 100% {
box-shadow: 0 0 4px var(--highlight), inset 0 0 2px var(--highlight);
color: var(--highlight);
border-color: var(--highlight);
}
50% {
box-shadow: 0 0 14px var(--highlight), inset 0 0 6px var(--highlight);
color: #fff;
border-color: #fff;
}
}
@keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 5px rgba(255,255,255,0.1); } 50% { box-shadow: 0 0 15px rgba(255,255,255,0.5); } }
@keyframes pulse-purple { 0%, 100% { box-shadow: 0 0 10px rgba(187, 134, 252, 0.5), 0 0 20px rgba(187, 134, 252, 0.3); border-color: #bb86fc; } 50% { box-shadow: 0 0 30px rgba(187, 134, 252, 1), 0 0 45px rgba(187, 134, 252, 0.8); border-color: #e0b0ff; } }
#game-wrapper .purple-pulse-glow { animation: pulse-purple 1.2s infinite ease-in-out !important; z-index: 50 !important; }
@keyframes force-pulse { 0%, 100% { box-shadow: 0 0 20px rgba(187, 134, 252, 0.6), inset 0 0 10px rgba(187, 134, 252, 0.4); border-color: #bb86fc; transform: scale(1.05); } 50% { box-shadow: 0 0 40px rgba(187, 134, 252, 1), inset 0 0 20px rgba(187, 134, 252, 0.8); border-color: #fff; transform: scale(1.08); } }
#game-wrapper .forcing-aura { animation: force-pulse 1.5s infinite ease-in-out !important; z-index: 100 !important; }
@keyframes hand-subtle-glow { 0%, 100% { box-shadow: 0 6px 12px var(--shadow-base), 0 0 8px rgba(255,255,255,0.25); border-color: rgba(255,255,255,0.3); } 50% { box-shadow: 0 8px 20px var(--shadow-dark), 0 0 16px rgba(255,255,255,0.75); border-color: rgba(255,255,255,0.9); } }
#game-wrapper .hand-card-glow .card-front, .hand-card-glow .card-back { animation: hand-subtle-glow 2.5s infinite ease-in-out; }
@keyframes pushIn { 0% { width: 0; opacity: 0; } 100% { width: var(--card-w); opacity: 1; } }
#game-wrapper .card-push-anim { animation: pushIn 0.35s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
@keyframes dramatic-flip { 0% { transform: scale(1) translateZ(0); } 50% { transform: scale(1.15) translateZ(50px); box-shadow: 0 20px 40px var(--shadow-dark); } 100% { transform: scale(1) translateZ(0); } }
#game-wrapper .dramatic-flip-anim { animation: dramatic-flip 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
@keyframes x-axis-flip { 0% { transform: rotateX(0deg) translateY(0) scale(1); filter: brightness(1); } 50% { transform: rotateX(85deg) translateY(-40px) scale(1.15); filter: brightness(1.35); box-shadow: 0 25px 40px rgba(0,0,0,0.9); } 100% { transform: rotateX(0deg) translateY(0) scale(1); filter: brightness(1); } }
#game-wrapper .x-flip-dramatic { animation: x-axis-flip 0.7s cubic-bezier(0.34, 1.3, 0.64, 1) !important; z-index: 100 !important; }
@keyframes discard-shake { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 20% { transform: translate(-5px, 2px) rotate(-4deg); } 40% { transform: translate(5px, -2px) rotate(4deg); } 60% { transform: translate(-4px, -1px) rotate(-2deg); } 80% { transform: translate(4px, 1px) rotate(2deg); } }
#game-wrapper .discard-shake-anim { animation: discard-shake 0.3s ease-in-out !important; border-color: #ffe600 !important; box-shadow: 0 0 15px rgba(255, 230, 0, 0.8) !important; }
#game-wrapper .cleanup-pulse { animation: pulse-danger 1.5s infinite; cursor: pointer; border: 2px solid var(--danger); border-radius: 8px; }
@keyframes pulse-danger { 0%, 100% { box-shadow: 0 0 5px rgba(255,0,0,0.3); } 50% { box-shadow: 0 0 20px rgba(255,0,0,0.8); } }
@keyframes prompt-attention-pulse { 0%, 100% { box-shadow: 0 0 15px rgba(187, 134, 252, 0.7), 0 0 30px rgba(187, 134, 252, 0.4); border-color: #bb86fc; transform: scale(1); } 50% { box-shadow: 0 0 25px rgba(255, 230, 0, 0.95), 0 0 45px rgba(255, 230, 0, 0.6); border-color: #ffe600; transform: scale(1.03); } }
#game-wrapper .under-flight-anim { position: fixed; z-index: 1000; pointer-events: none; transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); width: var(--card-w); height: var(--card-h); }
#game-wrapper .flight-anim { position: fixed; z-index: 1000; pointer-events: none; transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); width: var(--card-w); height: var(--card-h); }
@keyframes scoreHudSlideIn { from { opacity: 0; transform: translate(-50%, -20px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes scorePop { 0% { transform: scale(1); } 50% { transform: scale(1.35); filter: brightness(1.5); } 100% { transform: scale(1); } }
#game-wrapper .floating-score-pop { animation: scorePop 0.35s cubic-bezier(0.2, 0.8, 0.2, 1); }
@keyframes pulse-success-slot { 0%, 100% { box-shadow: inset 0 0 20px var(--shadow-base), 0 0 10px rgba(239, 224, 136, 0.5); border-color: rgba(239, 224, 136, 0.5); } 50% { box-shadow: inset 0 0 10px rgba(239, 224, 136, 0.2), 0 0 40px rgba(239, 224, 136, 1); border-color: #efe088; background: rgba(239, 224, 136, 0.2); } }
#game-wrapper .score-success-pulse { animation: pulse-success-slot 0.8s ease-in-out !important; }
@keyframes pulse-fail-slot { 0%, 100% { box-shadow: inset 0 0 20px var(--shadow-base), 0 0 10px rgba(187, 134, 252, 0.5); border-color: rgba(187, 134, 252, 0.5); } 50% { box-shadow: inset 0 0 10px rgba(187, 134, 252, 0.2), 0 0 40px rgba(187, 134, 252, 1); border-color: #bb86fc; background: rgba(187, 134, 252, 0.2); } }
#game-wrapper .score-fail-pulse { animation: pulse-fail-slot 0.8s ease-in-out !important; }
@keyframes slideDownToast { from { transform: translate(-50%, -40px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
@keyframes dropIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cardVanishSpin {
0% { transform: scale(1) rotate(0deg); filter: blur(0px); opacity: 1; }
100% { transform: scale(0) rotate(720deg); filter: blur(14px); opacity: 0; }
}
#game-wrapper .card-vanish-spin {
animation: cardVanishSpin 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
pointer-events: none;
}
@keyframes cardFlyAndTuck {
0% { transform: translate(0, 0) scale(1) rotate(0deg); z-index: 100; opacity: 1; }
45% { transform: translate(140px, -40px) scale(0.9) rotate(18deg); z-index: 100; opacity: 1; }
75% { transform: translate(80px, 60px) scale(0.75) rotate(-6deg); z-index: -1; opacity: 0.8; }
100% { transform: translate(0, 80px) scale(0.5) rotate(0deg); z-index: -1; opacity: 0; }
}
#game-wrapper .card-fly-tuck {
animation: cardFlyAndTuck 0.75s cubic-bezier(0.2, 0.8, 0.2, 1) forwards !important;
pointer-events: none;
}
@keyframes cardSpinUp {
0% { transform: scale(0) rotate(-360deg); opacity: 0; }
75% { transform: scale(1.08) rotate(10deg); opacity: 1; }
100% { transform: scale(1) rotate(0deg); }
}
#game-wrapper .card-spin-up {
animation: cardSpinUp 0.65s cubic-bezier(0.34, 1.25, 0.64, 1);
}
&lt;/style&gt;
&lt;div class="game-inner"&gt;
&lt;div id="welcome-screen" class="screen-overlay"&gt;
&lt;button id="btn-settings"&gt;⚙️&lt;/button&gt;
&lt;h1&gt;&lt;span class="first-letter"&gt;R&lt;/span&gt;ECENCY BIAS&lt;/h1&gt;
&lt;span class="tagline"&gt;A week of dreams, a deck of schemes.&lt;/span&gt;
&lt;button id="btn-resume"&gt;Resume Saved Game&lt;/button&gt;
&lt;button id="btn-host"&gt;Host Game&lt;/button&gt;
&lt;button id="btn-solo" style="border-color: #888;"&gt;Test Solo / Pass &amp; Play&lt;/button&gt;
&lt;/div&gt;
&lt;div id="qr-modal" class="screen-overlay" style="display:none;"&gt;
&lt;h2&gt;Waiting for Teammate...&lt;/h2&gt;
&lt;div id="qrcode"&gt;&lt;/div&gt;
&lt;p&gt;Scan this QR code with a phone to join!&lt;/p&gt;</description></item></channel></rss>