Spaces:
Runtime error
Runtime error
| /* ===== TwoQuarks skin for Gradio ===== */ | |
| *{margin:0;padding:0;box-sizing:border-box} | |
| :root{ | |
| --bg:#000; | |
| --fg:#fff; | |
| --muted:rgba(255,255,255,.55); | |
| --card:rgba(255,255,255,.04); | |
| --card2:rgba(255,255,255,.08); | |
| --stroke:rgba(255,255,255,.10); | |
| /* glass needs to be visible but not milky */ | |
| --glass:rgba(0,0,0,.32); | |
| --accent:#8cb4ff; | |
| --accentGlow: rgba(140,180,255,.20); | |
| --rSm:10px; | |
| --rMd:12px; | |
| --rLg:14px; | |
| } | |
| html,body{height:100%} | |
| body, .gradio-container{ | |
| font-family: Inter, ui-sans-serif, system-ui, Arial; | |
| background:var(--bg) ; | |
| color:var(--fg) ; | |
| overflow-x:hidden; | |
| } | |
| /* Starfield canvas (keep it inside stacking context) */ | |
| #quantumField{ | |
| position:fixed; inset:0; | |
| width:100vw; height:100vh; | |
| z-index:0; | |
| background:#000; | |
| pointer-events:none; | |
| opacity:.70; | |
| } | |
| /* Nav */ | |
| #tqNav{ | |
| position: fixed; | |
| top: 0; left: 0; right: 0; | |
| z-index: 999; | |
| padding: 12px 22px; | |
| background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.22)); | |
| backdrop-filter: blur(12px); | |
| border-bottom: 1px solid rgba(255,255,255,.06); | |
| } | |
| #tqNav .nav-inner{ | |
| max-width: 980px; | |
| margin: 0 auto; | |
| display:flex; | |
| align-items:center; | |
| gap: 12px; | |
| } | |
| #tqNav .brand{ | |
| font-weight: 700; | |
| font-size: 1.05rem; | |
| letter-spacing: .22px; | |
| opacity: .92; | |
| } | |
| #tqNav .nav-links{ | |
| display:flex; | |
| gap:10px; | |
| margin-left: 14px; | |
| flex-wrap: wrap; | |
| } | |
| #tqNav .nav-links a{ | |
| text-decoration:none; | |
| color: var(--fg); | |
| padding: 8px 12px; | |
| border: 1px solid rgba(255,255,255,.12); | |
| border-radius: 999px; | |
| font-size: .9rem; | |
| opacity: .78; | |
| transition: .15s ease; | |
| white-space: nowrap; | |
| background: rgba(255,255,255,.02); | |
| } | |
| #tqNav .nav-links a:hover{ | |
| opacity: 1; | |
| background: rgba(255,255,255,.06); | |
| border-color: rgba(255,255,255,.18); | |
| } | |
| #tqNav .spacer{ flex:1; } | |
| /* Hamburger button */ | |
| #tqNav .menu-btn{ | |
| width: 34px; | |
| height: 34px; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| border: 1px solid rgba(255,255,255,.14); | |
| border-radius: 12px; | |
| cursor: pointer; | |
| background: rgba(255,255,255,.03); | |
| transition: .15s ease; | |
| } | |
| #tqNav .menu-btn:hover{ | |
| background: rgba(255,255,255,.06); | |
| border-color: rgba(255,255,255,.20); | |
| } | |
| #tqNav .menu-btn span{ | |
| display:block; | |
| width:16px; | |
| height:2px; | |
| background: var(--fg); /* FIX: was black */ | |
| position:relative; | |
| opacity:.9; | |
| } | |
| #tqNav .menu-btn span::before, | |
| #tqNav .menu-btn span::after{ | |
| content:""; | |
| position:absolute; | |
| left:0; | |
| width:16px; | |
| height:2px; | |
| background: var(--fg); /* FIX: was black */ | |
| opacity:.9; | |
| } | |
| #tqNav .menu-btn span::before{ top:-6px; } | |
| #tqNav .menu-btn span::after{ top: 6px; } | |
| #tqNav .menu{ | |
| position:absolute; | |
| top: 60px; | |
| right: 24px; | |
| min-width: 220px; | |
| padding: 10px; | |
| border-radius: var(--rLg); | |
| background: var(--glass); | |
| backdrop-filter: blur(14px); | |
| border: 1px solid rgba(255,255,255,.10); | |
| box-shadow: 0 0 28px rgba(0,0,0,.6); | |
| display:none; | |
| } | |
| #tqNav .menu.open{ display:block; } | |
| #tqNav .menu a{ | |
| display:block; | |
| padding: 10px 10px; | |
| border-radius: 10px; | |
| text-decoration:none; | |
| color: var(--fg); | |
| opacity: .88; | |
| } | |
| #tqNav .menu a:hover{ | |
| background: rgba(255,255,255,.06); | |
| opacity: 1; | |
| } | |
| #tqNav .menu .sep{ | |
| height:1px; | |
| background: rgba(255,255,255,.10); | |
| margin: 8px 2px; | |
| } | |
| /* Make app sit above canvas and below fixed nav */ | |
| #tqApp{ | |
| position:relative; | |
| z-index:1; /* above canvas */ | |
| padding-top: 84px; | |
| } | |
| /* Hero / header panel (glass) */ | |
| .tq-hero{ | |
| margin: 10px 0 14px 0; | |
| padding: 14px 18px; | |
| background: var(--glass); | |
| backdrop-filter: blur(12px); | |
| border: 1px solid rgba(255,255,255,.06); | |
| border-radius: var(--rMd); /* FIX: 10x -> 10px */ | |
| box-shadow: 0 12px 34px rgba(0,0,0,.45); | |
| } | |
| .tq-hero .brand{ | |
| font-weight:700; | |
| letter-spacing:.22px; | |
| font-size:1.08rem; | |
| opacity:.92; | |
| } | |
| .tq-hero .desc{ | |
| margin-top:8px; | |
| color: var(--muted); | |
| font-size: .98rem; | |
| line-height: 1.45; | |
| } | |
| /* Cards / panels */ | |
| .gradio-container .gr-panel, | |
| .gradio-container .block, | |
| .gradio-container .wrap{ | |
| border:1px solid var(--stroke) ; | |
| background: var(--card) ; | |
| backdrop-filter: blur(10px) ; | |
| border-radius: var(--rMd) ; | |
| } | |
| /* Hover effect */ | |
| .gradio-container .gr-panel:hover{ | |
| background: var(--card2) ; | |
| border-color: rgba(255,255,255,.14) ; | |
| } | |
| /* Tabs (pill vibe) */ | |
| .gradio-container .gr-tab-nav{ | |
| background: transparent ; | |
| border: none ; | |
| gap: 10px ; | |
| } | |
| .gradio-container .gr-tab-nav button{ | |
| border:1px solid rgba(255,255,255,.12) ; | |
| border-radius:999px ; | |
| padding:8px 12px ; | |
| color: var(--fg) ; | |
| opacity:.78 ; | |
| background: rgba(255,255,255,.02) ; | |
| transition:.18s ease ; | |
| } | |
| .gradio-container .gr-tab-nav button:hover{ | |
| opacity:1 ; | |
| background: rgba(255,255,255,.06) ; | |
| border-color: rgba(255,255,255,.18) ; | |
| } | |
| .gradio-container .gr-tab-nav button.selected{ | |
| opacity: 1 ; | |
| border-color: rgba(140,180,255,.55) ; | |
| box-shadow: | |
| 0 0 0 1px rgba(140,180,255,.18) inset, | |
| 0 0 20px var(--accentGlow) ; | |
| } | |
| /* Inputs */ | |
| .gradio-container input, | |
| .gradio-container textarea{ | |
| background: rgba(255,255,255,.03) ; | |
| border:1px solid rgba(255,255,255,.12) ; | |
| color: var(--fg) ; | |
| border-radius: var(--rMd) ; | |
| } | |
| /* Buttons */ | |
| .gradio-container button, | |
| .gradio-container .gr-button{ | |
| color: var(--fg) ; | |
| border:1px solid rgba(255,255,255,.12) ; | |
| background: rgba(255,255,255,.04) ; | |
| border-radius:999px ; | |
| padding:10px 14px ; | |
| opacity:.86 ; | |
| transition:.15s ease ; | |
| } | |
| .gradio-container button:hover, | |
| .gradio-container .gr-button:hover{ | |
| opacity:1 ; | |
| background: rgba(255,255,255,.08) ; | |
| border-color: rgba(140,180,255,.35) ; | |
| box-shadow: 0 0 18px var(--accentGlow); | |
| } | |
| /* Gallery tweaks */ | |
| .gradio-container .gallery{ | |
| border-radius: var(--rMd) ; | |
| } | |
| /* Range accent */ | |
| input[type="range"]{ accent-color: var(--accent); } | |
| /* Optional: hide Gradio footer */ | |
| footer{ display:none ; } | |