:root { color-scheme: light; font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #151515; background: #f4f4f2; } * { box-sizing: border-box; } body { margin: 0; } a { color: inherit; } .demo-page { min-height: 100vh; padding: 32px; } .demo-shell { width: min(100%, 1040px); margin: 0 auto; } .demo-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; } .demo-brand { margin: 0; font-size: 2.5rem; line-height: 1; } .demo-kicker { margin: 8px 0 0; max-width: 700px; color: #555; font-size: 1rem; } .demo-back { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid #c7c7c0; border-radius: 6px; background: #fff; text-decoration: none; font-weight: 650; } .demo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 28px; } .demo-card { display: grid; gap: 10px; min-height: 150px; padding: 18px; border: 1px solid #d5d5cf; border-radius: 8px; background: #fff; text-decoration: none; transition: transform 0.15s ease, border-color 0.15s ease; } .demo-card:hover { transform: translateY(-2px); border-color: #83837a; } .demo-card h2 { margin: 0; font-size: 1.125rem; } .demo-card p, .demo-meta { margin: 0; color: #5c5c55; } .demo-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; color: #66665f; font-size: 0.875rem; font-weight: 650; } .demo-player { display: grid; gap: 14px; } .demo-player-frame { width: min(100%, 960px); } .demo-note { max-width: 760px; margin: 18px 0 0; color: #606058; font-size: 0.95rem; } .demo-xr-status { max-width: 760px; margin: 0 0 10px; padding: 10px 12px; border: 1px solid #d5d5cf; border-radius: 6px; background: #fff; color: #4f4f48; font-size: 0.95rem; } .demo-xr-status[data-state="blocked"] { border-color: #d7a13a; background: #fff8e8; color: #5f4515; } .demo-xr-status[data-state="ready"] { border-color: #7eb07b; background: #eff8ef; color: #275425; } .demo-gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; } .demo-gallery-tile { display: grid; gap: 10px; padding: 0 0 12px; border: 1px solid #d5d5cf; border-radius: 8px; background: #fff; color: inherit; font: inherit; font-weight: 700; text-align: left; cursor: pointer; overflow: hidden; } .demo-gallery-tile:hover { border-color: #83837a; } .demo-gallery-tile img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #111; } .demo-gallery-tile span { padding: 0 12px; } .demo-focused-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; } .demo-focused-links a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border: 1px solid #d5d5cf; border-radius: 6px; background: #fff; color: #4f4f48; text-decoration: none; font-size: 0.9rem; font-weight: 650; } .demo-local-panel { display: grid; gap: 16px; width: min(100%, 760px); padding: 18px; border: 1px solid #d5d5cf; border-radius: 8px; background: #fff; } .demo-field { display: grid; gap: 6px; font-weight: 650; } .demo-field input, .demo-field select { width: 100%; min-height: 42px; border: 1px solid #c7c7c0; border-radius: 6px; background: #fff; color: inherit; font: inherit; } .demo-field input { padding: 8px; } .demo-field select { padding: 0 10px; } .demo-local-name { margin: 0; color: #606058; font-size: 0.95rem; } .demo-local-preview { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; border-radius: 6px; background: #111; color: #d8d8d8; overflow: hidden; } .demo-local-preview img, .demo-local-preview video { display: block; width: 100%; height: 100%; object-fit: contain; } .demo-local-preview p { margin: 0; padding: 16px; text-align: center; } .demo-local-launch { min-height: 44px; border: 0; border-radius: 6px; background: #151515; color: #fff; font: inherit; font-weight: 750; cursor: pointer; } .demo-local-launch:disabled { background: #9a9a92; cursor: not-allowed; } @media (max-width: 640px) { .demo-page { padding: 20px; } .demo-topbar { align-items: flex-start; flex-direction: column; } .demo-brand { font-size: 2rem; } }