- * { box-sizing: border-box; margin: 0; padding: 0; }
- :root {
- --bg: #06050c;
- --purple: #a55cff;
- --purple-soft: #b56cff;
- --cyan: #24f6d2;
- --yellow: #ffd719;
- --green: #22c55e;
- --red: #ff4d6a;
- --text: #ffffff;
- --muted: rgba(255, 255, 255, 0.64);
- }
- html, body { width: 100%; min-height: 100%; overflow-x: hidden; }
- body {
- min-width: 320px;
- color: var(--text);
- background-color: var(--bg);
- background-position: center;
- background-size: cover;
- background-attachment: fixed;
- font-family: "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
- }
- button, a { font: inherit; -webkit-tap-highlight-color: transparent; }
- button { cursor: pointer; }
- /* ===== Página / shell ===== */
- .ppt-page {
- width: min(1400px, 94vw);
- margin: 0 auto;
- padding-bottom: 26px;
- }
- .game-toolbar {
- display: flex;
- align-items: center;
- justify-content: space-between;
- min-height: 56px;
- padding: 0 4px;
- }
- .toolbar-link {
- color: var(--purple);
- text-decoration: none;
- font-size: 13px;
- font-weight: 850;
- letter-spacing: 0.06em;
- background: none;
- border: 0;
- }
- .toolbar-link:hover { color: #d3a7ff; }
- .arcade-shell {
- display: grid;
- grid-template-columns: minmax(0, 1.55fr) minmax(330px, 0.95fr);
- min-height: calc(100svh - 160px);
- overflow: hidden;
- border: 1px solid rgba(181, 108, 255, 0.48);
- border-radius: 28px;
- background: linear-gradient(135deg, rgba(11, 8, 25, 0.94), rgba(5, 4, 14, 0.92));
- box-shadow: 0 35px 100px rgba(0, 0, 0, 0.62);
- backdrop-filter: blur(9px);
- }
- .board-column {
- display: flex;
- min-width: 0;
- flex-direction: column;
- padding: 18px 26px 22px;
- border-right: 1px solid rgba(255, 255, 255, 0.08);
- }
- .ppt-logo {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 14px;
- min-height: 70px;
- margin: 0 auto 10px;
- color: var(--purple-soft);
- font-size: clamp(28px, 3.4vw, 46px);
- font-weight: 1000;
- line-height: 1;
- letter-spacing: 0.06em;
- text-transform: uppercase;
- text-shadow: 0 0 18px rgba(165, 92, 255, 0.55);
- }
- .ppt-logo .lg-dot { color: var(--cyan); }
- /* ===== Arena ===== */
- .ppt-arena {
- position: relative;
- flex: 1;
- display: grid;
- grid-template-columns: 1fr auto 1fr;
- align-items: center;
- gap: clamp(10px, 2.5vw, 36px);
- min-height: 360px;
- padding: clamp(18px, 4vh, 44px) clamp(12px, 2vw, 26px);
- overflow: hidden;
- border: 2px solid rgba(181, 108, 255, 0.5);
- border-radius: 18px;
- background:
- radial-gradient(120% 90% at 50% 0%, rgba(123, 92, 255, 0.12), transparent 60%),
- #03060c;
- box-shadow: 0 0 30px rgba(123, 92, 255, 0.18), inset 0 0 40px rgba(0, 0, 0, 0.7);
- }
- .ppt-side {
- display: grid;
- gap: 12px;
- justify-items: center;
- }
- .ppt-tag {
- font-size: 12px;
- font-weight: 800;
- letter-spacing: 0.14em;
- text-transform: uppercase;
- color: rgba(255, 255, 255, 0.72);
- }
- .ppt-side.you .ppt-tag { color: var(--cyan); }
- .ppt-side.ai .ppt-tag { color: var(--red); }
- /* Carta 3D */
- .flip-card {
- width: min(210px, 30vw);
- aspect-ratio: 3 / 4;
- perspective: 1200px;
- }
- .flip-inner {
- position: relative;
- width: 100%;
- height: 100%;
- transform-style: preserve-3d;
- transition: transform 0.6s cubic-bezier(0.6, 0.2, 0.2, 1);
- }
- .flip-card.flipped .flip-inner { transform: rotateY(180deg); }
- .flip-face {
- position: absolute;
- inset: 0;
- display: grid;
- place-items: center;
- border-radius: 18px;
- backface-visibility: hidden;
- -webkit-backface-visibility: hidden;
- }
- .flip-front {
- border: 2px solid rgba(181, 108, 255, 0.55);
- background:
- repeating-linear-gradient(45deg, rgba(123, 92, 255, 0.10) 0 10px, transparent 10px 20px),
- rgba(12, 9, 26, 0.96);
- color: rgba(181, 108, 255, 0.85);
- font-size: clamp(48px, 8vw, 78px);
- font-weight: 900;
- }
- .flip-back {
- transform: rotateY(180deg);
- border: 2px solid rgba(255, 255, 255, 0.14);
- background: rgba(255, 255, 255, 0.05);
- color: #fff;
- font-size: clamp(54px, 9vw, 96px);
- }
- .flip-back i { filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.5)); }
- /* Resultado por carta */
- .flip-card.win .flip-back {
- border-color: var(--green);
- box-shadow: 0 0 0 2px var(--green), 0 0 45px rgba(34, 197, 94, 0.5);
- }
- .flip-card.win .flip-back i { color: var(--green); }
- .flip-card.lose .flip-inner { opacity: 0.45; filter: saturate(0.5); }
- .flip-card.tie .flip-back {
- border-color: var(--purple-soft);
- box-shadow: 0 0 0 2px rgba(181, 108, 255, 0.7), 0 0 40px rgba(123, 92, 255, 0.4);
- }
- .flip-card.tie .flip-back i { color: var(--purple-soft); }
- .flip-card.pulse { animation: ppt-pop 0.4s cubic-bezier(0.2, 0.9, 0.3, 1.5); }
- @keyframes ppt-pop {
- 0% { transform: scale(0.8); }
- 70% { transform: scale(1.06); }
- 100% { transform: scale(1); }
- }
- /* VS central */
- .ppt-vs {
- display: grid;
- place-items: center;
- width: clamp(54px, 7vw, 78px);
- height: clamp(54px, 7vw, 78px);
- border-radius: 50%;
- border: 2px solid rgba(255, 255, 255, 0.2);
- background: rgba(10, 8, 22, 0.9);
- color: #fff;
- font-size: clamp(18px, 2vw, 26px);
- font-weight: 1000;
- letter-spacing: 0.05em;
- box-shadow: 0 0 24px rgba(123, 92, 255, 0.35);
- }
- .ppt-vs.clash { animation: vs-clash 0.5s ease; }
- @keyframes vs-clash {
- 0% { transform: scale(1); }
- 40% { transform: scale(1.4); box-shadow: 0 0 60px rgba(181, 108, 255, 0.9); }
- 100% { transform: scale(1); }
- }
- /* Cuenta atrás + destello */
- .ppt-count {
- position: absolute;
- inset: 0;
- display: grid;
- place-items: center;
- z-index: 5;
- color: #fff;
- font-size: clamp(70px, 12vw, 130px);
- font-weight: 1000;
- pointer-events: none;
- opacity: 0;
- text-shadow: 0 0 30px rgba(123, 92, 255, 0.8);
- }
- .ppt-count.tick { animation: count-tick 0.45s ease; }
- @keyframes count-tick {
- 0% { opacity: 0; transform: scale(1.6); }
- 40% { opacity: 1; transform: scale(1); }
- 100% { opacity: 0; transform: scale(0.8); }
- }
- .ppt-flash {
- position: absolute;
- inset: 0;
- z-index: 4;
- pointer-events: none;
- opacity: 0;
- background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.85), transparent 60%);
- }
- .ppt-flash.go { animation: flash-go 0.45s ease; }
- @keyframes flash-go { 0% { opacity: 0; } 30% { opacity: 0.9; } 100% { opacity: 0; } }
- /* Partículas del choque */
- .spark {
- position: absolute;
- z-index: 6;
- width: 10px;
- height: 10px;
- border-radius: 50%;
- pointer-events: none;
- will-change: transform, opacity;
- }
- /* Estado / resultado */
- .ppt-status {
- display: grid;
- gap: 4px;
- margin-top: 16px;
- text-align: center;
- }
- .ppt-result {
- min-height: 26px;
- font-size: clamp(18px, 2vw, 24px);
- font-weight: 900;
- letter-spacing: 0.03em;
- }
- .ppt-result.win { color: var(--green); text-shadow: 0 0 18px rgba(34, 197, 94, 0.5); }
- .ppt-result.lose { color: var(--red); text-shadow: 0 0 18px rgba(255, 77, 106, 0.5); }
- .ppt-result.tie { color: var(--purple-soft); }
- .ppt-detail { font-size: 13px; color: var(--muted); }
- /* Elección */
- .ppt-choices {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 12px;
- margin-top: 18px;
- }
- .ppt-choice {
- display: grid;
- place-items: center;
- gap: 8px;
- padding: 16px 10px;
- border: 1px solid rgba(181, 108, 255, 0.35);
- border-radius: 16px;
- background: rgba(123, 92, 255, 0.07);
- color: #fff;
- transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
- }
- .ppt-choice .ic { font-size: 34px; color: var(--purple-soft); }
- .ppt-choice .lb {
- font-size: 12px;
- font-weight: 800;
- letter-spacing: 0.06em;
- text-transform: uppercase;
- color: rgba(255, 255, 255, 0.82);
- }
- .ppt-choice:hover {
- transform: translateY(-4px);
- border-color: var(--purple-soft);
- background: rgba(123, 92, 255, 0.18);
- box-shadow: 0 14px 34px rgba(0, 0, 0, 0.4), 0 0 20px rgba(165, 92, 255, 0.3);
- }
- .ppt-choice:hover .ic { color: #fff; }
- .ppt-choice:disabled { opacity: 0.45; cursor: not-allowed; transform: none; box-shadow: none; }
- /* ===== Columna control ===== */
- .control-column {
- display: flex;
- min-width: 0;
- flex-direction: column;
- padding: 24px 28px 22px;
- }
- .desktop-stats {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 12px;
- }
- .stat-card {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 4px;
- padding: 14px 8px;
- border: 1px solid rgba(255, 255, 255, 0.14);
- border-radius: 16px;
- background: rgba(255, 255, 255, 0.035);
- font-size: 10px;
- font-weight: 800;
- letter-spacing: 0.06em;
- text-transform: uppercase;
- color: var(--muted);
- }
- .stat-card b { font-size: 24px; line-height: 1; color: var(--yellow); }
- .stat-card.you b { color: var(--cyan); }
- .stat-card.ai b { color: var(--red); }
- .streak-badge {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
- margin-top: 14px;
- padding: 10px;
- border: 1px solid rgba(181, 108, 255, 0.35);
- border-radius: 13px;
- background: rgba(123, 92, 255, 0.08);
- font-size: 12px;
- font-weight: 800;
- letter-spacing: 0.05em;
- text-transform: uppercase;
- color: var(--muted);
- }
- .streak-badge b { color: var(--purple-soft); font-size: 16px; }
- .rules-block { margin: 22px 0; }
- .rules-block h2 {
- margin-bottom: 16px;
- color: var(--purple);
- font-size: 18px;
- font-weight: 900;
- letter-spacing: 0.045em;
- }
- .rules-block p {
- margin: 12px 0;
- font-size: 15px;
- line-height: 1.6;
- color: rgba(255, 255, 255, 0.82);
- }
- .rules-block strong { color: var(--cyan); }
- .action-row {
- display: grid;
- grid-template-columns: 1fr;
- gap: 12px;
- margin-top: auto;
- }
- .arcade-action {
- min-height: 46px;
- border: 1px solid rgba(181, 108, 255, 0.45);
- border-radius: 13px;
- color: var(--purple);
- background: rgba(123, 92, 255, 0.08);
- font-size: 12px;
- font-weight: 900;
- letter-spacing: 0.04em;
- }
- .arcade-action:hover { color: #fff; background: rgba(123, 92, 255, 0.19); }
- .btn-start-ppt {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 12px;
- width: 100%;
- min-height: 58px;
- border: 2px solid var(--purple-soft);
- border-radius: 12px;
- color: var(--purple-soft);
- background: rgba(24, 14, 46, 0.9);
- font-size: 18px;
- font-weight: 900;
- letter-spacing: 0.06em;
- text-transform: uppercase;
- box-shadow: 0 0 18px rgba(165, 92, 255, 0.25);
- }
- .btn-start-ppt:hover { color: #fff; box-shadow: 0 0 28px rgba(165, 92, 255, 0.45); }
- /* ===== Responsive ===== */
- .mobile-choices-note { display: none; }
- @media (max-width: 1050px) {
- .arcade-shell { grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.85fr); }
- }
- @media (max-width: 820px) {
- .ppt-page { width: calc(100% - 24px); }
- .arcade-shell { display: block; min-height: 0; border-radius: 22px; }
- .board-column { padding: 18px 16px 16px; border-right: 0; }
- .control-column {
- padding: 4px 16px 20px;
- border-top: 1px solid rgba(255, 255, 255, 0.08);
- }
- .action-row { margin-top: 18px; }
- }
- @media (max-width: 480px) {
- .ppt-page { width: calc(100% - 16px); }
- .flip-card { width: 40vw; }
- .ppt-choice { padding: 12px 6px; }
- .ppt-choice .ic { font-size: 28px; }
- .desktop-stats { gap: 8px; }
- .stat-card b { font-size: 20px; }
- }