* { margin: 0; padding: 0; box-sizing: border-box; } html, body, #root { width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; -webkit-overflow-scrolling: touch; background: #0d1117; color: #e6edf3; font-family: system-ui, -apple-system, sans-serif; } html { height: -webkit-fill-available; } body { -webkit-tap-highlight-color: transparent; touch-action: manipulation; } button, input { touch-action: manipulation; } .btn-depth { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: var(--btn-min-width, 44px); min-height: var(--btn-min-height, 44px); padding: var(--btn-padding, 0.75rem 2rem); border: none; border-radius: var(--btn-radius, 12px); background: var(--btn-front, hsl(345deg 100% 47%)); color: var(--btn-text, #fff); cursor: pointer; font-size: var(--btn-font-size, 1.05rem); font-weight: var(--btn-font-weight, 600); line-height: 1.1; outline-offset: 4px; user-select: none; white-space: nowrap; -webkit-tap-highlight-color: transparent; transition: all 0.12s ease; box-shadow: 0 4px 0 color-mix(in srgb, var(--btn-front, hsl(345deg 100% 47%)) 65%, #000), 0 6px 10px rgba(0,0,0,0.3); transform: translateY(0); } .btn-depth:hover:not(:disabled) { box-shadow: 0 6px 0 color-mix(in srgb, var(--btn-front, hsl(345deg 100% 47%)) 65%, #000), 0 8px 14px rgba(0,0,0,0.35); transform: translateY(-2px); } .btn-depth:active:not(:disabled) { box-shadow: 0 2px 0 color-mix(in srgb, var(--btn-front, hsl(345deg 100% 47%)) 65%, #000), 0 3px 5px rgba(0,0,0,0.3); transform: translateY(2px); } .btn-depth:disabled { cursor: default; opacity: 0.66; box-shadow: 0 2px 0 color-mix(in srgb, var(--btn-front, hsl(345deg 100% 47%)) 65%, #000), 0 3px 5px rgba(0,0,0,0.2); transform: translateY(2px); } .btn-depth:focus:not(:focus-visible) { outline: none; } .start-push-button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: var(--start-push-min-width, 44px); min-height: var(--start-push-min-height, 44px); padding: var(--btn-padding, 0.75rem 2rem); border: none; border-radius: var(--start-push-radius, 12px); background: transparent; color: transparent; cursor: pointer; font-size: var(--start-push-font-size, 1.05rem); font-weight: var(--start-push-font-weight, 600); line-height: 1.1; outline-offset: 4px; user-select: none; white-space: nowrap; -webkit-tap-highlight-color: transparent; transform: translateY(0); } .start-push-button__shadow, .start-push-button__edge, .start-push-button__front { position: absolute; inset: 0; border-radius: var(--start-push-radius, 12px); pointer-events: none; } .start-push-button__shadow { background: rgba(0, 0, 0, 0.28); filter: blur(5px); transform: translateY(6px) scaleX(0.98); } .start-push-button__edge { background: color-mix(in srgb, var(--start-push-front, hsl(345deg 100% 47%)) 62%, #000); transform: translateY(5px); } .start-push-button__front { display: inline-flex; align-items: center; justify-content: center; padding: var(--start-push-padding, 0.75rem 2rem); background: var(--start-push-front, hsl(345deg 100% 47%)); color: var(--start-push-text, #fff); box-shadow: inset 0 1px 0 rgba(255,255,255,0.2); transform: translateY(0); transition: transform 0.12s ease, filter 0.12s ease; } .start-push-button__front::before { content: attr(data-label); } .start-push-button:hover:not(:disabled) .start-push-button__front { filter: brightness(1.06); transform: translateY(-2px); } .start-push-button:active:not(:disabled) .start-push-button__front { transform: translateY(3px); } .start-push-button:disabled { cursor: default; } .start-push-button:disabled .start-push-button__front { filter: grayscale(0.25); opacity: 0.66; transform: translateY(3px); } .start-push-button:focus:not(:focus-visible) { outline: none; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes caro5-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } } @keyframes bot-float { 0%, 100% { transform: translateY(-50%) translateY(0px); } 50% { transform: translateY(-50%) translateY(-8px); } } @keyframes bot-speech-float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-4px); } } @keyframes bot-glow-pulse { 0%, 100% { filter: drop-shadow(0 0 4px rgba(var(--bot-glow-color, 88, 166, 255), 0.35)); } 50% { filter: drop-shadow(0 0 16px rgba(var(--bot-glow-color, 88, 166, 255), 0.75)); } } @keyframes caro5-spin { to { transform: rotate(360deg); } }