Spaces:
Sleeping
Sleeping
| :root { | |
| --bg-deep: #08172d; | |
| --bg-mid: #1f2e5c; | |
| --bg-glow: #b34f87; | |
| --text-primary: #eff4ff; | |
| --text-muted: #c5cdeb; | |
| --accent: #62ffd2; | |
| --accent-strong: #2ce6be; | |
| --glass-bg: rgba(7, 17, 33, 0.72); | |
| --glass-bg-soft: rgba(10, 22, 43, 0.56); | |
| --glass-border: rgba(171, 193, 255, 0.32); | |
| --danger: #ff6b6b; | |
| --warning: #ffbf5f; | |
| --success: #79dd7c; | |
| --scene-height: 248px; | |
| --dock-height: 172px; | |
| --stage-ratio: 1.7768; | |
| /* Reserved strip at the bottom of the viewport for the input bar */ | |
| --input-bar-height: 96px; | |
| /* Screen placement knobs — all values are % of the full background image */ | |
| --screen-top: 45.45%; /* vertical centre of the three screens */ | |
| --screen-left: 33.36%; /* horizontal centre of the left screen */ | |
| --screen-right: 66.56%; /* horizontal centre of the right screen */ | |
| --screen-width: 9.69%; /* box width */ | |
| --screen-height: 24.420%; /* box height */ | |
| --screen-half-width: 4.5%; | |
| --screen-controls-top: 62%; /* AI button row, just below the screens */ | |
| --screen-font-size: 0.85vw; /* text size inside the screens — lower = smaller */ | |
| --screen-text-pad-y: 0px; /* gap above the text in a screen box — lower = text higher */ | |
| --screen-text-pad-x: 16px; /* gap left of the text in a screen box — lower = text more left */ | |
| --history-top: 47%; | |
| --history-width: 20%; | |
| } | |
| html, | |
| body { | |
| margin: 0; | |
| padding: 0; | |
| min-height: 100%; | |
| font-family: "Poppins", sans-serif; | |
| color: var(--text-primary); | |
| overflow-x: hidden; | |
| } | |
| body.theme-app { | |
| background: radial-gradient(circle at top center, var(--bg-glow) 0%, var(--bg-mid) 36%, var(--bg-deep) 100%); | |
| position: relative; | |
| } | |
| body.theme-participant { | |
| --bg-image: none; | |
| } | |
| .app-bg { | |
| position: fixed; | |
| inset: 0; | |
| z-index: -2; | |
| pointer-events: none; | |
| background: radial-gradient(circle at top center, rgba(178, 81, 130, 0.4) 0%, transparent 46%); | |
| } | |
| .app-bg::before { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| background-image: linear-gradient(to bottom, rgba(6, 15, 30, 0.48), rgba(6, 15, 30, 0.82)), var(--bg-image, none); | |
| background-size: cover; | |
| background-position: center; | |
| } | |
| .app-shell { | |
| min-height: 100dvh; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .container { | |
| width: min(1080px, 100%); | |
| margin: 0 auto; | |
| box-sizing: border-box; | |
| padding: 24px; | |
| } | |
| .card { | |
| background: var(--glass-bg); | |
| border: 1px solid var(--glass-border); | |
| border-radius: 18px; | |
| box-shadow: 0 16px 40px rgba(4, 10, 20, 0.36); | |
| } | |
| h1, | |
| h2, | |
| h3 { | |
| margin: 0 0 14px; | |
| color: var(--text-primary); | |
| line-height: 1.2; | |
| } | |
| h1 { | |
| font-size: clamp(1.8rem, 3vw, 2.5rem); | |
| } | |
| h2 { | |
| font-size: clamp(1.35rem, 2.5vw, 1.8rem); | |
| } | |
| p { | |
| color: var(--text-muted); | |
| line-height: 1.6; | |
| } | |
| a { | |
| color: inherit; | |
| } | |
| input[type="text"], | |
| textarea { | |
| width: 100%; | |
| border: 1px solid rgba(202, 219, 255, 0.5); | |
| background: rgba(10, 22, 43, 0.72); | |
| color: var(--text-primary); | |
| border-radius: 12px; | |
| padding: 12px 14px; | |
| box-sizing: border-box; | |
| font: inherit; | |
| } | |
| input[type="text"]:focus, | |
| textarea:focus { | |
| outline: 2px solid rgba(98, 255, 210, 0.45); | |
| outline-offset: 1px; | |
| } | |
| textarea { | |
| resize: vertical; | |
| min-height: 130px; | |
| } | |
| button, | |
| .button { | |
| background: linear-gradient(120deg, var(--accent) 0%, var(--accent-strong) 100%); | |
| color: #082233; | |
| border: none; | |
| border-radius: 12px; | |
| padding: 12px 22px; | |
| font-weight: 700; | |
| font-size: 1rem; | |
| cursor: pointer; | |
| transition: transform 0.18s ease, filter 0.25s ease; | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| button:hover, | |
| .button:hover { | |
| transform: translateY(-1px); | |
| filter: brightness(1.06); | |
| } | |
| form label { | |
| font-weight: 600; | |
| display: block; | |
| margin: 10px 0 7px; | |
| } | |
| .buttons { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| /* Landing / login */ | |
| .auth-shell { | |
| flex: 1; | |
| display: grid; | |
| place-items: center; | |
| padding: 28px 20px; | |
| } | |
| .auth-card { | |
| width: min(700px, 100%); | |
| padding: 30px 26px; | |
| text-align: center; | |
| } | |
| .auth-card form { | |
| margin-top: 18px; | |
| } | |
| /* Participant dashboard */ | |
| /* Single screen, no scrolling (scoped to the dashboard so other pages still scroll) */ | |
| body:has(.participant-dashboard) { | |
| overflow: hidden; | |
| height: 100dvh; | |
| } | |
| .participant-dashboard { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| height: 100dvh; | |
| overflow: hidden; | |
| } | |
| .participant-dashboard .dashboard-scroll { | |
| flex: 1; | |
| overflow: hidden; | |
| padding-bottom: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 18px; | |
| } | |
| .dashboard-stage-container { | |
| position: relative; | |
| width: 100%; | |
| max-width: none; | |
| min-height: 100dvh; | |
| padding: 0; | |
| overflow: hidden; | |
| } | |
| .dashboard-stage-container .buttons { | |
| position: absolute; | |
| top: 20px; | |
| left: clamp(16px, 4vw, 32px); | |
| z-index: 5; | |
| } | |
| .participant-dashboard .dashboard-main-card { | |
| padding: 28px; | |
| } | |
| .rules-card { | |
| margin: 18px 0 24px; | |
| padding: 18px 20px; | |
| background: var(--glass-bg-soft); | |
| border-radius: 14px; | |
| border: 1px solid rgba(194, 208, 247, 0.34); | |
| } | |
| .rules-card ol { | |
| margin: 0; | |
| padding-left: 20px; | |
| color: var(--text-muted); | |
| } | |
| .rules-card li { | |
| margin-bottom: 10px; | |
| } | |
| .message-history-card { | |
| margin-top: 14px; | |
| background: rgba(10, 24, 45, 0.68); | |
| border: 1px solid rgba(164, 183, 236, 0.35); | |
| border-radius: 14px; | |
| padding: 20px; | |
| } | |
| .dashboard-stage { | |
| position: absolute; | |
| /* Anchor to the bottom so any extra height is cropped off the top, keeping the floor visible */ | |
| bottom: 0; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| width: 100vw; | |
| height: calc(100vw / var(--stage-ratio)); | |
| min-height: 100dvh; | |
| min-width: calc(100dvh * var(--stage-ratio)); | |
| margin: 0 auto; | |
| background-image: url("/static/img/robot_3_screens_fintan.png"); | |
| background-size: cover; | |
| background-repeat: no-repeat; | |
| background-position: center; | |
| } | |
| .response-card { | |
| position: absolute; | |
| top: var(--screen-top); | |
| width: var(--screen-width); | |
| height: var(--screen-height); | |
| padding: var(--screen-text-pad-y) var(--screen-text-pad-x); | |
| display: flex; | |
| align-items: flex-start; | |
| z-index: 2; | |
| background: rgba(7, 17, 33, 0.22); | |
| border: 1px solid rgba(171, 193, 255, 0.18); | |
| border-radius: 16px; | |
| box-shadow: 0 10px 24px rgba(4, 10, 20, 0.22); | |
| backdrop-filter: blur(12px); | |
| transform: translate(-50%, -50%); | |
| } | |
| .screen-controls { | |
| position: absolute; | |
| top: var(--screen-controls-top); | |
| z-index: 3; | |
| display: flex; | |
| gap: 8px; | |
| transform: translate(-50%, -50%); | |
| } | |
| .screen-controls--left { | |
| left: var(--screen-left); | |
| } | |
| .screen-controls--right { | |
| left: var(--screen-right); | |
| } | |
| .screen-btn { | |
| border: 1px solid rgba(202, 219, 255, 0.3); | |
| background: rgba(7, 17, 33, 0.45); | |
| color: var(--text-primary); | |
| padding: 6px 12px; | |
| border-radius: 999px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: background 0.2s ease, border-color 0.2s ease; | |
| } | |
| .screen-btn:hover { | |
| transform: none; | |
| filter: none; | |
| background: rgba(10, 24, 45, 0.55); | |
| border-color: rgba(202, 219, 255, 0.5); | |
| } | |
| .screen-btn:disabled { | |
| opacity: 0.4; | |
| cursor: not-allowed; | |
| } | |
| .history-panel { | |
| position: absolute; | |
| top: var(--history-top); | |
| width: var(--history-width); | |
| max-height: 46%; | |
| background: rgba(7, 17, 33, 0.55); | |
| border: 1px solid rgba(171, 193, 255, 0.22); | |
| border-radius: 16px; | |
| padding: 12px 14px; | |
| overflow-y: auto; | |
| transform: translateY(-50%); | |
| z-index: 2; | |
| backdrop-filter: blur(10px); | |
| } | |
| .history-panel--left { | |
| left: calc(var(--screen-left) - var(--screen-half-width) - 1%); | |
| transform: translate(-100%, -50%); | |
| } | |
| .history-panel--right { | |
| left: calc(var(--screen-right) + var(--screen-half-width) + 1%); | |
| } | |
| .history-panel h4 { | |
| margin: 0 0 8px; | |
| font-size: 0.9rem; | |
| } | |
| .history-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: grid; | |
| gap: 8px; | |
| font-size: 0.85rem; | |
| } | |
| .pending-banner { | |
| position: absolute; | |
| top: 6%; | |
| right: 6%; | |
| background: rgba(7, 17, 33, 0.7); | |
| border: 1px solid rgba(171, 193, 255, 0.25); | |
| padding: 8px 14px; | |
| border-radius: 999px; | |
| font-size: 0.85rem; | |
| z-index: 4; | |
| } | |
| .result-banner { | |
| position: absolute; | |
| top: 14%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| padding: 10px 18px; | |
| border-radius: 999px; | |
| font-weight: 700; | |
| z-index: 4; | |
| background: rgba(7, 17, 33, 0.8); | |
| border: 1px solid rgba(171, 193, 255, 0.25); | |
| } | |
| .result-banner--victory { | |
| color: #3bf7c8; | |
| } | |
| .result-banner--defeat { | |
| color: #ff9b9b; | |
| } | |
| .result-banner--left { | |
| left: var(--screen-left); | |
| } | |
| .result-banner--right { | |
| left: var(--screen-right); | |
| } | |
| .response-card--left { | |
| left: var(--screen-left); | |
| } | |
| .response-card--right { | |
| left: var(--screen-right); | |
| } | |
| .response-screen { | |
| width: 100%; | |
| height: 100%; | |
| overflow-y: auto; | |
| font-size: clamp(0.7rem, var(--screen-font-size), 0.82rem); | |
| line-height: 1.5; | |
| color: var(--text-primary); | |
| } | |
| .response-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: grid; | |
| gap: 10px; | |
| flex: 1; | |
| overflow-y: auto; | |
| padding-right: 4px; | |
| } | |
| .response-list li { | |
| background: rgba(8, 19, 39, 0.4); | |
| border: 1px solid rgba(172, 189, 235, 0.18); | |
| border-radius: 10px; | |
| padding: 10px 12px; | |
| line-height: 1.5; | |
| } | |
| .response-empty { | |
| color: var(--text-muted); | |
| } | |
| #message-list, | |
| #message-history { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: grid; | |
| gap: 10px; | |
| } | |
| #message-list li, | |
| #message-history li { | |
| background: rgba(14, 31, 61, 0.74); | |
| border: 1px solid rgba(172, 189, 235, 0.22); | |
| border-radius: 10px; | |
| padding: 10px 12px; | |
| line-height: 1.5; | |
| } | |
| .compose-dock { | |
| position: relative; | |
| z-index: 30; | |
| margin: 0 auto; | |
| padding: 0; | |
| width: min(960px, 100%); | |
| } | |
| .compose-dock--stage { | |
| position: fixed; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| transform: none; | |
| width: 100%; | |
| min-height: var(--input-bar-height); | |
| box-sizing: border-box; | |
| padding: 12px clamp(12px, 3vw, 28px); | |
| display: flex; | |
| align-items: center; | |
| background: transparent; | |
| /* Let the empty area around the controls pass clicks through to the stage */ | |
| pointer-events: none; | |
| } | |
| .compose-dock--stage .compose-form { | |
| width: 100%; | |
| pointer-events: auto; | |
| } | |
| .compose-form { | |
| display: flex; | |
| align-items: stretch; | |
| gap: 12px; | |
| } | |
| .question-counter { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| flex: 0 0 auto; | |
| min-width: 78px; | |
| min-height: 88px; | |
| padding: 8px 10px; | |
| border-radius: 14px; | |
| background: rgba(7, 17, 33, 0.4); | |
| border: 1px solid rgba(171, 193, 255, 0.22); | |
| font-weight: 700; | |
| } | |
| .question-counter--admin { | |
| margin-left: auto; | |
| } | |
| .question-label { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .compose-input { | |
| flex: 1; | |
| min-height: 88px; | |
| margin: 0; | |
| background: rgba(10, 22, 43, 0.12); | |
| border-color: rgba(202, 219, 255, 0.22); | |
| backdrop-filter: blur(8px); | |
| } | |
| .compose-dock--stage .compose-input { | |
| min-height: 64px; | |
| resize: none; | |
| background: rgba(10, 22, 43, 0.45); | |
| } | |
| .compose-dock--stage .question-counter { | |
| min-height: 64px; | |
| min-width: 70px; | |
| } | |
| .compose-send { | |
| min-width: 120px; | |
| align-self: stretch; | |
| } | |
| .game-actions { | |
| position: absolute; | |
| left: 50%; | |
| bottom: 16%; | |
| transform: translateX(-50%); | |
| display: flex; | |
| gap: 12px; | |
| z-index: 4; | |
| } | |
| .modal { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(4, 10, 20, 0.72); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 999; | |
| } | |
| .modal-card { | |
| width: min(420px, 90vw); | |
| background: rgba(8, 19, 39, 0.88); | |
| border: 1px solid rgba(171, 193, 255, 0.3); | |
| border-radius: 18px; | |
| padding: 20px; | |
| text-align: center; | |
| } | |
| .modal-card .buttons { | |
| display: flex; | |
| justify-content: center; | |
| margin-top: 14px; | |
| } | |
| .button-ghost { | |
| background: transparent; | |
| border: 1px solid rgba(171, 193, 255, 0.4); | |
| color: var(--text-primary); | |
| } | |
| .hidden { | |
| display: none; | |
| } | |
| .robot-scene { | |
| position: relative; | |
| left: 0; | |
| right: 0; | |
| height: calc(var(--scene-height) + env(safe-area-inset-bottom)); | |
| z-index: 10; | |
| pointer-events: none; | |
| overflow: hidden; | |
| background: linear-gradient( | |
| to top, | |
| rgba(5, 11, 24, 0.97) 0%, | |
| rgba(5, 11, 24, 0.72) 42%, | |
| rgba(5, 11, 24, 0.15) 82%, | |
| rgba(5, 11, 24, 0) 100% | |
| ); | |
| } | |
| .robot-scene__art { | |
| position: relative; | |
| left: 50%; | |
| bottom: -8px; | |
| transform: translateX(-50%); | |
| width: min(1320px, 145vw); | |
| height: calc(100% + 24px); | |
| object-fit: cover; | |
| object-position: bottom center; | |
| image-rendering: -webkit-optimize-contrast; | |
| image-rendering: crisp-edges; | |
| } | |
| .robot-scene::before { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| background: radial-gradient( | |
| ellipse 55% 38% at 50% calc(100% - 36px), | |
| rgba(255, 171, 102, 0.28), | |
| transparent 72% | |
| ); | |
| mix-blend-mode: screen; | |
| } | |
| /* Admin dashboard */ | |
| .theme-admin .admin-dashboard-container { | |
| min-height: 100dvh; | |
| padding-bottom: 36px; | |
| } | |
| .admin-sticky-nav { | |
| position: sticky; | |
| top: 10px; | |
| z-index: 12; | |
| margin: 8px 0 18px; | |
| padding: 12px; | |
| border-radius: 14px; | |
| background: rgba(8, 19, 39, 0.88); | |
| border: 1px solid rgba(175, 194, 246, 0.35); | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .admin-sticky-nav a { | |
| padding: 8px 12px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(182, 199, 243, 0.3); | |
| color: var(--text-primary); | |
| text-decoration: none; | |
| background: rgba(15, 30, 56, 0.88); | |
| } | |
| .admin-top-bar { | |
| align-items: center; | |
| } | |
| .ai-options { | |
| display: grid; | |
| gap: 10px; | |
| margin: 12px 0 16px; | |
| } | |
| .ai-option { | |
| display: grid; | |
| grid-template-columns: auto 1fr; | |
| gap: 10px; | |
| align-items: start; | |
| padding: 10px 12px; | |
| border-radius: 12px; | |
| background: rgba(11, 24, 45, 0.66); | |
| border: 1px solid rgba(170, 189, 237, 0.25); | |
| cursor: pointer; | |
| } | |
| select { | |
| width: 100%; | |
| border: 1px solid rgba(202, 219, 255, 0.5); | |
| background: rgba(10, 22, 43, 0.72); | |
| color: var(--text-primary); | |
| border-radius: 12px; | |
| padding: 12px 14px; | |
| box-sizing: border-box; | |
| font: inherit; | |
| } | |
| button[disabled] { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .admin-section { | |
| padding: 20px; | |
| margin-bottom: 20px; | |
| } | |
| .pending-message { | |
| margin-bottom: 16px; | |
| padding: 16px; | |
| background: rgba(10, 24, 45, 0.8); | |
| border: 1px solid rgba(159, 178, 230, 0.34); | |
| border-radius: 10px; | |
| } | |
| .pending-message p { | |
| margin: 0 0 10px; | |
| } | |
| .button-container { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 10px; | |
| } | |
| .button.approve, | |
| button.approve { | |
| background: var(--success); | |
| color: #14301a; | |
| } | |
| .button.delete, | |
| button.delete { | |
| background: var(--danger); | |
| color: #321212; | |
| } | |
| .button.regenerate, | |
| button.regenerate { | |
| background: var(--warning); | |
| color: #352300; | |
| } | |
| .message-history { | |
| background: rgba(11, 25, 47, 0.8); | |
| border-radius: 12px; | |
| border: 1px solid rgba(164, 182, 231, 0.35); | |
| padding: 18px; | |
| } | |
| .pending-message-list, | |
| .profile-list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| .profile-list li { | |
| background: rgba(11, 24, 45, 0.66); | |
| border: 1px solid rgba(170, 189, 237, 0.25); | |
| border-radius: 10px; | |
| padding: 12px; | |
| margin-bottom: 10px; | |
| line-height: 1.45; | |
| } | |
| @media (max-width: 900px) { | |
| :root { | |
| --scene-height: 170px; | |
| --dock-height: 180px; | |
| } | |
| .container { | |
| padding: 16px; | |
| } | |
| .participant-dashboard .dashboard-main-card { | |
| padding: 18px; | |
| } | |
| .compose-dock { | |
| padding: 8px 10px; | |
| } | |
| .dashboard-stage-container { | |
| min-height: 100dvh; | |
| padding: 0; | |
| } | |
| .dashboard-stage { | |
| width: 100vw; | |
| height: calc(100vw / var(--stage-ratio)); | |
| min-height: 100dvh; | |
| min-width: calc(100dvh * var(--stage-ratio)); | |
| } | |
| .response-card { | |
| position: absolute; | |
| width: min(32%, 180px); | |
| height: min(44%, 320px); | |
| } | |
| .compose-dock--stage { | |
| position: fixed; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| transform: none; | |
| width: 100%; | |
| } | |
| .screen-controls { | |
| top: var(--screen-controls-top); | |
| } | |
| .history-panel { | |
| position: static; | |
| transform: none; | |
| width: 100%; | |
| max-height: none; | |
| margin-top: 12px; | |
| } | |
| .game-actions { | |
| position: static; | |
| transform: none; | |
| margin-top: 12px; | |
| justify-content: center; | |
| } | |
| } | |
| /* Third screen — middle, aligned with left/right */ | |
| :root { | |
| --screen-middle: 49.8%; /* horizontal centre of the middle screen */ | |
| --screen-middle-top: 45.45%; /* same vertical centre as the others */ | |
| --screen-controls-middle-top: 62%; | |
| } | |
| .response-card--middle { | |
| left: var(--screen-middle); | |
| top: var(--screen-middle-top); | |
| } | |
| .screen-controls--middle { | |
| left: var(--screen-middle); | |
| top: var(--screen-controls-middle-top); | |
| } | |
| /* Result colours */ | |
| .result-banner--victory { color: #3bf7c8; } | |
| .result-banner--partial { color: #ffbf5f; } | |
| .result-banner--defeat { color: #ff9b9b; } | |
| .button-selected { | |
| opacity: 0.5; | |
| cursor: default; | |
| filter: grayscale(40%); | |
| } | |
| .auth-card ol, .auth-card p { | |
| text-align: left; | |
| } | |
| .history-round { | |
| margin-bottom: 12px; | |
| padding-bottom: 12px; | |
| border-bottom: 1px solid rgba(171, 193, 255, 0.15); | |
| } | |
| .history-round:last-child { | |
| border-bottom: none; | |
| margin-bottom: 0; | |
| } | |
| .history-question { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| margin: 0 0 4px; | |
| font-style: italic; | |
| } | |
| .history-answer { | |
| color: var(--text-primary); | |
| margin: 0; | |
| line-height: 1.5; | |
| } | |
| .result-banner { | |
| grid-column: 1 / -1; | |
| text-align: center; | |
| padding: 16px 24px; | |
| border-radius: 12px; | |
| font-size: 1.1rem; | |
| margin-top: 100px; | |
| } | |
| .result-banner--victory { background: rgba(0, 200, 100, 0.15); color: #00e676; } | |
| .result-banner--partial { background: rgba(255, 180, 0, 0.15); color: #ffb300; } | |
| .result-banner--defeat { background: rgba(255, 60, 60, 0.15); color: #ff5252; } | |
| .history-round--latest .history-question { | |
| display: none; | |
| } | |
| .history-round--latest .history-answer { | |
| font-size: 1.05rem; | |
| } | |
| .accordion-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| margin-top: 8px; | |
| } | |
| .accordion-item { | |
| border: 1px solid rgba(255,255,255,0.2); | |
| border-radius: 8px; | |
| overflow: hidden; | |
| } | |
| .accordion-item input[type="radio"] { | |
| display: none; | |
| } | |
| .accordion-header { | |
| display: block; | |
| padding: 10px 14px; | |
| cursor: pointer; | |
| font-weight: bold; | |
| } | |
| .accordion-item input[type="radio"]:checked + .accordion-header { | |
| background: rgba(255,255,255,0.15); | |
| } | |
| .accordion-body { | |
| display: none; | |
| padding: 8px 14px 12px; | |
| font-size: 0.9em; | |
| opacity: 0.85; | |
| } | |
| .accordion-item:hover .accordion-body, | |
| .accordion-item input[type="radio"]:checked ~ .accordion-body { | |
| display: block; | |
| } | |
| .prompt-description { | |
| margin-top: 8px; | |
| padding: 10px 14px; | |
| border-left: 3px solid rgba(255,255,255,0.3); | |
| font-size: 0.9em; | |
| opacity: 0.8; | |
| font-style: italic; | |
| } | |
| .hulp-panel { | |
| position: fixed; | |
| top: 70px; | |
| right: clamp(16px, 4vw, 32px); | |
| width: 280px; | |
| max-height: calc(100vh - 160px); | |
| overflow-y: auto; | |
| background: rgba(20, 20, 40, 0.75); | |
| backdrop-filter: blur(12px); | |
| -webkit-backdrop-filter: blur(12px); | |
| border: 1px solid rgba(255, 255, 255, 0.15); | |
| border-radius: 16px; | |
| padding: 14px; | |
| z-index: 99; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| transition: opacity 0.2s, transform 0.2s; | |
| } | |
| .hulp-panel--hidden { | |
| display: none; | |
| } | |
| .hulp-tabs { | |
| display: flex; | |
| gap: 6px; | |
| margin-bottom: 4px; | |
| } | |
| .hulp-tab { | |
| flex: 1; | |
| padding: 6px; | |
| border-radius: 10px; | |
| border: 1px solid rgba(255,255,255,0.2); | |
| background: transparent; | |
| color: rgba(255,255,255,0.6); | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| transition: background 0.15s; | |
| } | |
| .hulp-tab--active { | |
| background: rgba(100, 220, 200, 0.2); | |
| color: #7eeedd; | |
| border-color: rgba(100, 220, 200, 0.4); | |
| } | |
| .hulp-hint { | |
| font-size: 0.75rem; | |
| opacity: 0.5; | |
| margin-bottom: 4px; | |
| color: white; | |
| } | |
| .hulp-section { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .hulp-section--hidden { | |
| display: none; | |
| } | |
| .hint-chip { | |
| background: rgba(255,255,255,0.08); | |
| border: 1px solid rgba(255,255,255,0.15); | |
| color: white; | |
| padding: 7px 10px; | |
| border-radius: 10px; | |
| cursor: pointer; | |
| font-size: 0.82rem; | |
| text-align: left; | |
| transition: background 0.15s; | |
| line-height: 1.3; | |
| } | |
| .hint-chip:hover { | |
| background: rgba(255,255,255,0.2); | |
| } | |
| .hint-chip--topic { | |
| background: rgba(100, 220, 200, 0.08); | |
| border-color: rgba(100, 220, 200, 0.2); | |
| color: #c0f0ea; | |
| cursor: default; /* ← add this */ | |
| pointer-events: none; /* ← add this */ | |
| } | |
| .hint-chip--topic:hover { | |
| background: rgba(100, 220, 200, 0.2); | |
| } | |
| .walking-robot { | |
| position: fixed; | |
| bottom: 90px; | |
| left: 0; | |
| font-size: 2.5rem; | |
| z-index: 50; | |
| cursor: pointer; | |
| filter: drop-shadow(0 0 6px rgba(100, 220, 200, 0.6)); | |
| transition: opacity 0.3s; | |
| opacity: 1; | |
| animation: robotWalk 18s linear infinite; | |
| } | |
| .walking-robot--hidden { | |
| opacity: 0; | |
| pointer-events: none; | |
| } | |
| .walking-robot--dance { | |
| animation: robotDance 0.6s ease forwards ; | |
| } | |
| @keyframes robotWalk { | |
| 0% { transform: translateX(-50px) scaleX(1); } | |
| 10% { transform: translateX(10vw) translateY(-4px) scaleX(1); } | |
| 20% { transform: translateX(20vw) scaleX(1); } | |
| 30% { transform: translateX(30vw) translateY(-4px) scaleX(1); } | |
| 40% { transform: translateX(40vw) scaleX(1); } | |
| 49% { transform: translateX(110vw) scaleX(1); } | |
| 50% { transform: translateX(110vw) scaleX(-1); } | |
| 60% { transform: translateX(90vw) translateY(-4px) scaleX(-1); } | |
| 70% { transform: translateX(70vw) scaleX(-1); } | |
| 80% { transform: translateX(50vw) translateY(-4px) scaleX(-1); } | |
| 90% { transform: translateX(20vw) scaleX(-1); } | |
| 99% { transform: translateX(-50px) scaleX(-1); } | |
| 100% { transform: translateX(-50px) scaleX(1); } | |
| } | |
| @keyframes robotDance { | |
| 0% { transform: translateY(0) rotate(0deg) scale(1); } | |
| 15% { transform: translateY(-20px) rotate(-20deg) scale(1.4); filter: drop-shadow(0 0 18px #7eeedd); } | |
| 30% { transform: translateY(-10px) rotate(20deg) scale(1.4); } | |
| 45% { transform: translateY(-20px) rotate(-15deg) scale(1.5); } | |
| 60% { transform: translateY(-5px) rotate(10deg) scale(1.3); } | |
| 75% { transform: translateY(-15px) rotate(-5deg) scale(1.2); } | |
| 100% { transform: translateY(0) rotate(0deg) scale(1); } | |
| } | |
| @keyframes popUp { | |
| 0% { opacity: 1; transform: translateY(0) scale(1); } | |
| 100% { opacity: 0; transform: translateY(-50px) scale(1.8); } | |
| } |