Spaces:
Running
Running
Download src/style.css from lordhet/fruit-fly-simulation: direct link, hf CLI and curl.
- Browser
- Download file 23.1 kB
-
https://huggingface.co/spaces/lordhet/fruit-fly-simulation/resolve/main/src/style.css
- Command line
-
hf download hf://spaces/lordhet/fruit-fly-simulation/src/style.css
-
curl -L -o style.css https://huggingface.co/spaces/lordhet/fruit-fly-simulation/resolve/main/src/style.css
23.1 kB
| @font-face { | |
| font-family: Inter; | |
| src: url('/fonts/InterVariable.woff2') format('woff2'); | |
| font-style: normal; | |
| font-weight: 100 900; | |
| font-display: swap; | |
| } | |
| :root { | |
| color-scheme: dark; | |
| --bg: #10171d; | |
| --line: #2b3641; | |
| --text: #f4f5fa; | |
| --muted: #a8bbd2; | |
| --subtle: #8599ae; | |
| --violet: #8d65ff; | |
| --purple: #7254f5; | |
| --green: #4be8ae; | |
| --top: clamp(28px, 4.7svh, 42px); | |
| font: | |
| 16px Inter, | |
| ui-sans-serif, | |
| system-ui, | |
| -apple-system, | |
| BlinkMacSystemFont, | |
| 'Segoe UI', | |
| sans-serif; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| background: var(--bg); | |
| color: var(--text); | |
| } | |
| .icon-definitions { | |
| position: absolute; | |
| width: 0; | |
| height: 0; | |
| overflow: hidden; | |
| } | |
| .icon { | |
| width: 24px; | |
| height: 24px; | |
| display: block; | |
| fill: none; | |
| stroke: currentColor; | |
| stroke-width: 1.8; | |
| stroke-linecap: round; | |
| stroke-linejoin: round; | |
| flex: none; | |
| pointer-events: none; | |
| } | |
| button, | |
| select, | |
| input { | |
| font: inherit; | |
| } | |
| button, | |
| select { | |
| cursor: pointer; | |
| color: inherit; | |
| } | |
| button { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 12px; | |
| padding: 10px 18px; | |
| min-height: 46px; | |
| border: 1px solid transparent; | |
| border-radius: 11px; | |
| background: transparent; | |
| font-size: 1rem; | |
| white-space: nowrap; | |
| line-height: 1.25; | |
| transition: | |
| background 0.16s, | |
| color 0.16s; | |
| } | |
| button:hover { | |
| background: #ffffff08; | |
| color: #fff; | |
| } | |
| button:disabled { | |
| opacity: 0.5; | |
| cursor: default; | |
| } | |
| button:focus-visible, | |
| select:focus-visible, | |
| input:focus-visible, | |
| a:focus-visible, | |
| canvas:focus-visible, | |
| summary:focus-visible { | |
| outline: 2px solid #b298ff; | |
| outline-offset: 4px; | |
| } | |
| [hidden] { | |
| display: none ; | |
| } | |
| a { | |
| color: #b8a3ff; | |
| text-decoration: none; | |
| } | |
| a:hover { | |
| text-decoration: underline; | |
| } | |
| .workspace { | |
| display: grid; | |
| grid-template-columns: 54% 46%; | |
| height: 100svh; | |
| min-height: 740px; | |
| } | |
| .brain-pane, | |
| .fly-pane { | |
| min-width: 0; | |
| min-height: 0; | |
| display: grid; | |
| position: relative; | |
| } | |
| .brain-pane { | |
| container: brain / inline-size; | |
| --panel-pad: clamp(20px, 4.8cqw, 46px); | |
| grid-template-rows: auto minmax(0, 1fr) auto auto; | |
| background: radial-gradient(ellipse at 42% 40%, #0b141d 0, #10171d 72%); | |
| border-right: 1px solid #35424e; | |
| } | |
| .fly-pane { | |
| container: response / inline-size; | |
| --panel-pad: clamp(20px, 4.2cqw, 36px); | |
| grid-template-rows: minmax(0, 1fr) auto auto; | |
| background: #10171d; | |
| } | |
| .pane-head { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 24px; | |
| padding: var(--top) var(--panel-pad) 0; | |
| min-height: 112px; | |
| min-width: 0; | |
| } | |
| .section-index { | |
| font-size: 1.5rem; | |
| line-height: 1.5; | |
| color: var(--violet); | |
| font-weight: 450; | |
| flex: none; | |
| } | |
| .pane-title { | |
| min-width: 0; | |
| } | |
| .pane-head h1, | |
| .pane-head h2 { | |
| font-size: clamp(22px, 3.5cqw, 30px); | |
| font-weight: 530; | |
| letter-spacing: -0.03em; | |
| line-height: 1.3; | |
| margin: 0; | |
| } | |
| .pane-title p { | |
| font-size: 1rem; | |
| line-height: 1.4; | |
| color: var(--muted); | |
| margin: 7px 0 0; | |
| } | |
| .projection-control { | |
| margin-left: auto; | |
| flex: none; | |
| display: flex; | |
| align-items: center; | |
| position: relative; | |
| } | |
| .projection-control select { | |
| appearance: none; | |
| width: 5.5em; | |
| border: 0; | |
| background: transparent; | |
| color: var(--muted); | |
| font-size: 1.125rem; | |
| padding: 8px 29px 8px 7px; | |
| } | |
| .projection-control:has(option[value='cns']:checked) select { | |
| width: 12.5em; | |
| } | |
| .projection-control .icon { | |
| position: absolute; | |
| right: 0; | |
| width: 18px; | |
| height: 18px; | |
| color: var(--muted); | |
| pointer-events: none; | |
| } | |
| select option { | |
| background: #1b2530; | |
| color: var(--text); | |
| } | |
| .brain-stage, | |
| .fly-stage { | |
| position: relative; | |
| min-width: 0; | |
| min-height: 0; | |
| overflow: hidden; | |
| } | |
| .brain-stage { | |
| margin-top: 16px; | |
| } | |
| .brain-stage canvas, | |
| .fly-stage canvas { | |
| position: absolute; | |
| inset: 0; | |
| display: block; | |
| width: 100%; | |
| height: 100%; | |
| outline-offset: -5px; | |
| } | |
| .brain-stage canvas { | |
| touch-action: none; | |
| cursor: crosshair; | |
| } | |
| .brain-loading { | |
| position: absolute; | |
| inset: 0; | |
| display: grid; | |
| place-content: center; | |
| color: var(--muted); | |
| background: #10171df5; | |
| font-size: 0.9375rem; | |
| } | |
| .brain-key { | |
| display: grid; | |
| grid-template-columns: 1fr auto 1fr; | |
| align-items: start; | |
| gap: 16px; | |
| padding: 10px var(--panel-pad) 0; | |
| min-height: 66px; | |
| } | |
| .side-label { | |
| color: var(--muted); | |
| font-size: 1.125rem; | |
| } | |
| .side-label:last-child { | |
| text-align: right; | |
| } | |
| .activity-key { | |
| display: flex; | |
| gap: 28px; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--muted); | |
| font-size: 0.875rem; | |
| padding-top: 25px; | |
| } | |
| .activity-key span { | |
| display: flex; | |
| align-items: center; | |
| gap: 13px; | |
| white-space: nowrap; | |
| } | |
| .activity-key i { | |
| width: 12px; | |
| height: 12px; | |
| border-radius: 50%; | |
| box-shadow: inset 0 0 0 2px #ffffff15; | |
| } | |
| .rest { | |
| background: #7f9db7; | |
| } | |
| .stim { | |
| background: #a479ff; | |
| box-shadow: 0 0 9px #8252cf60 ; | |
| } | |
| .fire { | |
| background: #ffc56b; | |
| box-shadow: 0 0 8px #f6b65366 ; | |
| } | |
| .paint-controls { | |
| padding: 34px var(--panel-pad) 46px; | |
| min-width: 0; | |
| } | |
| .paint-tools { | |
| display: grid; | |
| grid-template-columns: max-content max-content minmax(0, 1fr) max-content max-content; | |
| align-items: center; | |
| gap: 8px; | |
| min-width: 0; | |
| } | |
| .tool-button { | |
| color: #d0dcef; | |
| } | |
| .tool-button[aria-pressed='true'] { | |
| background: linear-gradient(115deg, #443482, #39327a); | |
| color: #fff; | |
| } | |
| .primary { | |
| background: linear-gradient(115deg, #694ef0, #5c44e8); | |
| border-color: #9a80ff25; | |
| color: #fff; | |
| box-shadow: inset 0 1px #ffffff10; | |
| padding-inline: 18px; | |
| } | |
| .primary:hover { | |
| background: linear-gradient(115deg, #795dff, #6b50f4); | |
| } | |
| .primary:disabled { | |
| opacity: 0.6; | |
| } | |
| .brush-size { | |
| display: grid; | |
| grid-template-columns: auto minmax(24px, 1fr) auto; | |
| align-items: center; | |
| gap: 14px; | |
| min-width: 0; | |
| color: var(--muted); | |
| font-size: 0.875rem; | |
| padding-left: 20px; | |
| border-left: 1px solid #26323e; | |
| white-space: nowrap; | |
| } | |
| .brush-size input { | |
| width: 100%; | |
| min-width: 0; | |
| margin: 0; | |
| } | |
| .brush-size output { | |
| min-width: 40px; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| input[type='range'] { | |
| appearance: none; | |
| height: 8px; | |
| background: linear-gradient(to right, #8c66ff var(--range, 29.1%), #29333f var(--range, 29.1%)); | |
| border: 1px solid #3a4654; | |
| border-radius: 10px; | |
| cursor: pointer; | |
| } | |
| input[type='range']::-webkit-slider-thumb { | |
| appearance: none; | |
| width: 21px; | |
| height: 21px; | |
| border-radius: 50%; | |
| background: linear-gradient(#9875ff, #6449fa); | |
| border: 2px solid #f5f0ff; | |
| box-shadow: 0 1px 5px #0008; | |
| } | |
| input[type='range']::-moz-range-thumb { | |
| width: 17px; | |
| height: 17px; | |
| border-radius: 50%; | |
| background: #8966ff; | |
| border: 2px solid #f5f0ff; | |
| } | |
| .actions { | |
| margin-top: 26px; | |
| } | |
| .field-label { | |
| display: block; | |
| color: var(--subtle); | |
| font-size: 0.9375rem; | |
| letter-spacing: 0.025em; | |
| margin: 0 0 8px 2px; | |
| } | |
| .examples { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 16px; | |
| } | |
| .examples button { | |
| min-width: 0; | |
| color: #c2d1e6; | |
| justify-content: center; | |
| gap: 21px; | |
| padding: 11px 12px; | |
| min-height: 50px; | |
| } | |
| .examples .icon { | |
| width: 27px; | |
| height: 27px; | |
| color: #f2f1f8; | |
| } | |
| .examples button[aria-pressed='true'] { | |
| background: #262449; | |
| color: #b5a6f8; | |
| } | |
| .examples button[aria-pressed='true'] .icon { | |
| color: #beaaff; | |
| } | |
| .fly-head { | |
| align-items: flex-start; | |
| gap: 22px; | |
| min-height: 94px; | |
| } | |
| .fly-head h2 { | |
| font-size: clamp(22px, 3.7cqw, 30px); | |
| } | |
| .transport { | |
| margin-left: auto; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| flex: none; | |
| } | |
| .transport button { | |
| font-size: 1rem; | |
| padding: 3px 7px; | |
| gap: 13px; | |
| color: #c5d3e7; | |
| min-height: 34px; | |
| } | |
| .transport .icon { | |
| width: 22px; | |
| height: 22px; | |
| color: #f4f4fc; | |
| } | |
| .divider { | |
| height: 29px; | |
| width: 1px; | |
| background: #27333f; | |
| margin: 0 8px; | |
| } | |
| .response-bar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 16px; | |
| padding: 0 var(--panel-pad); | |
| min-height: 50px; | |
| } | |
| .body-state { | |
| min-width: 0; | |
| display: flex; | |
| align-items: center; | |
| gap: 18px; | |
| color: var(--green); | |
| font-size: 1.125rem; | |
| white-space: nowrap; | |
| } | |
| .body-state #behavior { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .body-state #behavior-dot { | |
| width: 12px; | |
| height: 12px; | |
| border-radius: 50%; | |
| background: currentColor; | |
| flex: none; | |
| } | |
| .body-state[data-rest='true'] { | |
| color: #a8bbd2; | |
| } | |
| .body-state small { | |
| font-size: 0.75rem; | |
| color: var(--subtle); | |
| white-space: normal; | |
| max-width: 120px; | |
| line-height: 1.4; | |
| } | |
| .body-state small:empty { | |
| display: none; | |
| } | |
| .camera-tabs { | |
| display: flex; | |
| align-items: center; | |
| gap: 21px; | |
| flex: none; | |
| } | |
| .camera-tabs button { | |
| color: #9eb4d0; | |
| border-radius: 0; | |
| position: relative; | |
| min-height: 42px; | |
| padding: 8px 15px; | |
| font-size: 1.0625rem; | |
| } | |
| .camera-tabs button[aria-pressed='true'] { | |
| color: #fff; | |
| } | |
| .camera-tabs button[aria-pressed='true']:after { | |
| content: ''; | |
| position: absolute; | |
| height: 5px; | |
| background: #9471ff; | |
| left: 10px; | |
| right: 10px; | |
| bottom: 0; | |
| border-radius: 3px; | |
| } | |
| .fly-surface { | |
| position: relative; | |
| isolation: isolate; | |
| display: grid; | |
| grid-template-rows: auto auto minmax(0, 1fr) auto; | |
| min-width: 0; | |
| min-height: 0; | |
| overflow: hidden; | |
| background: #10171d; | |
| } | |
| .fly-surface .fly-stage { | |
| position: absolute; | |
| inset: 0; | |
| margin: 0; | |
| z-index: 0; | |
| mask-image: none; | |
| -webkit-mask-image: none; | |
| } | |
| .fly-surface .fly-head { | |
| grid-row: 1; | |
| } | |
| .fly-surface .response-bar { | |
| grid-row: 2; | |
| } | |
| .fly-surface .specimen-line { | |
| grid-row: 4; | |
| min-height: 56px; | |
| padding-bottom: 14px; | |
| } | |
| .fly-surface .fly-head, | |
| .fly-surface .response-bar, | |
| .fly-surface .specimen-line { | |
| z-index: 1; | |
| pointer-events: none; | |
| background: none; | |
| } | |
| .fly-surface button { | |
| pointer-events: auto; | |
| } | |
| .fly-surface .pane-head h2, | |
| .fly-surface .body-state, | |
| .fly-surface .specimen-line { | |
| text-shadow: 0 1px 8px #050a10aa; | |
| } | |
| .specimen-line { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 16px; | |
| margin: 0 var(--panel-pad); | |
| min-height: 42px; | |
| color: var(--muted); | |
| font-size: 0.875rem; | |
| } | |
| .specimen-line > span:first-child { | |
| font-style: italic; | |
| } | |
| .scale { | |
| display: flex; | |
| align-items: center; | |
| gap: 13px; | |
| white-space: nowrap; | |
| font-style: normal; | |
| } | |
| #scale-bar { | |
| display: block; | |
| height: 6px; | |
| border: 1.5px solid #bdccdc; | |
| border-top: 0; | |
| } | |
| .readouts { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 0; | |
| margin: 36px var(--panel-pad) 0; | |
| } | |
| .readouts > div { | |
| min-width: 0; | |
| padding: 0 23px; | |
| border-left: 1px solid #2b3743; | |
| } | |
| .readouts > div:first-child { | |
| padding-left: 0; | |
| border-left: 0; | |
| } | |
| .readouts > div:last-child { | |
| padding-right: 0; | |
| } | |
| .readouts span { | |
| display: block; | |
| font-size: 1rem; | |
| color: var(--muted); | |
| margin-bottom: 8px; | |
| white-space: nowrap; | |
| } | |
| .readouts output { | |
| display: block; | |
| font-size: 1.5rem; | |
| line-height: 1.25; | |
| font-weight: 500; | |
| font-variant-numeric: tabular-nums; | |
| min-height: 30px; | |
| margin-bottom: 13px; | |
| } | |
| .meter, | |
| .balance { | |
| height: 14px; | |
| border: 1px solid #3b4654; | |
| border-radius: 8px; | |
| background: linear-gradient(#2b3541, #242e38); | |
| position: relative; | |
| } | |
| .meter { | |
| overflow: hidden; | |
| } | |
| .meter i, | |
| .balance i { | |
| position: absolute; | |
| left: 0; | |
| top: 0; | |
| bottom: 0; | |
| width: 0; | |
| border-radius: 8px; | |
| background: linear-gradient(90deg, #8e65ff, #8d6bff); | |
| transition: width 0.1s; | |
| } | |
| .balance i { | |
| left: 50%; | |
| border-radius: 0; | |
| } | |
| .balance b { | |
| position: absolute; | |
| left: 50%; | |
| top: -6px; | |
| bottom: -5px; | |
| width: 2px; | |
| background: #e1e9f6; | |
| transform: translateX(-1px); | |
| transition: left 0.1s; | |
| } | |
| .scene-footer { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 28px var(--panel-pad) 42px; | |
| min-height: 106px; | |
| position: relative; | |
| } | |
| .info-button { | |
| color: #adc0d8; | |
| padding: 0; | |
| min-height: 28px; | |
| width: 24px; | |
| border-radius: 50%; | |
| flex: none; | |
| } | |
| .info-button .icon { | |
| width: 22px; | |
| height: 22px; | |
| } | |
| .status-copy { | |
| max-height: 4.2em; | |
| overflow: auto; | |
| color: var(--subtle); | |
| font-size: 0.75rem; | |
| line-height: 1.4; | |
| min-width: 0; | |
| overflow-wrap: anywhere; | |
| } | |
| .status-copy strong { | |
| display: block; | |
| color: #c6d3e5; | |
| font-weight: 450; | |
| } | |
| .status-copy span { | |
| display: block; | |
| } | |
| .status-copy[data-state='ready'] { | |
| position: absolute; | |
| width: 1px; | |
| height: 1px; | |
| overflow: hidden; | |
| clip-path: inset(50%); | |
| } | |
| .status-copy[data-state='error'] { | |
| color: #ffa7ae; | |
| } | |
| .start-button { | |
| margin-top: 18px; | |
| width: 100%; | |
| font-size: 0.875rem; | |
| min-height: 38px; | |
| padding: 7px 13px; | |
| background: #3a316e; | |
| color: #e7ddff; | |
| } | |
| .compute-select { | |
| margin-left: auto; | |
| position: relative; | |
| color: var(--muted); | |
| font-size: 1rem; | |
| } | |
| .compute-select > summary { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| cursor: pointer; | |
| list-style: none; | |
| min-height: 35px; | |
| white-space: nowrap; | |
| } | |
| .compute-select > summary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .compute-select > summary .icon { | |
| width: 18px; | |
| height: 18px; | |
| } | |
| .status-light { | |
| width: 11px; | |
| height: 11px; | |
| border-radius: 50%; | |
| background: #667f96; | |
| } | |
| .status-light.live { | |
| background: var(--green); | |
| } | |
| .status-light.error { | |
| background: #ff9099; | |
| } | |
| .compute-options { | |
| position: absolute; | |
| bottom: calc(100% + 15px); | |
| right: 0; | |
| width: 310px; | |
| padding: 20px; | |
| background: #1a232efb; | |
| border: 1px solid #394657; | |
| box-shadow: 0 16px 50px #0007; | |
| border-radius: 12px; | |
| z-index: 5; | |
| } | |
| .compute-options label { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| font-size: 0.875rem; | |
| } | |
| .compute-options label:first-child { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .compute-options select { | |
| padding: 9px; | |
| border: 1px solid #445168; | |
| background: #202c3a; | |
| border-radius: 6px; | |
| font-size: 0.875rem; | |
| } | |
| .compute-options .check { | |
| margin-top: 20px; | |
| } | |
| .compute-options p { | |
| font-size: 0.8125rem; | |
| line-height: 1.5; | |
| color: var(--subtle); | |
| margin: 18px 0 0; | |
| } | |
| .check input { | |
| accent-color: var(--purple); | |
| } | |
| #progress { | |
| position: absolute; | |
| bottom: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 2px; | |
| border: 0; | |
| accent-color: var(--violet); | |
| } | |
| progress::-webkit-progress-bar { | |
| background: #1b2634; | |
| } | |
| progress::-webkit-progress-value { | |
| background: var(--violet); | |
| } | |
| #neuron-tooltip { | |
| position: absolute; | |
| pointer-events: none; | |
| background: #17232df5; | |
| border: 1px solid #3e4d61; | |
| border-radius: 8px; | |
| padding: 10px 13px; | |
| font-size: 0.8125rem; | |
| line-height: 1.5; | |
| max-width: 240px; | |
| box-shadow: 0 5px 20px #0006; | |
| white-space: pre-line; | |
| z-index: 2; | |
| } | |
| dialog { | |
| color: var(--text); | |
| background: #18212c; | |
| border: 1px solid #3b4b60; | |
| border-radius: 14px; | |
| width: min(480px, calc(100vw - 32px)); | |
| padding: 26px; | |
| max-height: 85svh; | |
| } | |
| dialog::backdrop { | |
| background: #060b12bf; | |
| backdrop-filter: blur(8px); | |
| } | |
| .dialog-heading { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 20px; | |
| margin-bottom: 18px; | |
| } | |
| .dialog-heading h2 { | |
| font-size: 1.25rem; | |
| letter-spacing: -0.025em; | |
| margin: 0; | |
| font-weight: 550; | |
| } | |
| .dialog-heading button { | |
| font-size: 1.5rem; | |
| min-height: 36px; | |
| padding: 3px 10px; | |
| } | |
| dialog label { | |
| display: flex; | |
| align-items: center; | |
| gap: 14px; | |
| margin: 22px 0; | |
| font-size: 0.9375rem; | |
| } | |
| dialog input[type='range'] { | |
| flex: 1; | |
| min-width: 50px; | |
| } | |
| dialog output { | |
| min-width: 50px; | |
| font-variant-numeric: tabular-nums; | |
| } | |
| .model-details { | |
| border-top: 1px solid var(--line); | |
| padding-top: 18px; | |
| font-size: 0.875rem; | |
| color: #b2c1d3; | |
| } | |
| summary { | |
| cursor: pointer; | |
| } | |
| dialog p { | |
| font-size: 1rem; | |
| line-height: 1.6; | |
| } | |
| .sources { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| padding-top: 6px; | |
| font-size: 0.875rem; | |
| } | |
| @container brain (max-width:900px) { | |
| .pane-head { | |
| gap: 18px; | |
| } | |
| .paint-tools { | |
| gap: 6px; | |
| } | |
| .paint-tools button { | |
| padding-inline: 13px; | |
| gap: 10px; | |
| } | |
| .brush-size { | |
| padding-left: 13px; | |
| gap: 11px; | |
| } | |
| .examples { | |
| gap: 8px; | |
| } | |
| .examples button { | |
| gap: 15px; | |
| } | |
| .projection-control select { | |
| font-size: 1rem; | |
| } | |
| } | |
| @container brain (max-width:760px) { | |
| .pane-head { | |
| min-height: 104px; | |
| } | |
| .pane-title p { | |
| font-size: 0.875rem; | |
| } | |
| .paint-tools button { | |
| padding-inline: 10px; | |
| font-size: 0.9375rem; | |
| gap: 8px; | |
| } | |
| .paint-tools .icon { | |
| width: 22px; | |
| height: 22px; | |
| } | |
| .brush-size { | |
| grid-template-columns: minmax(24px, 1fr) auto; | |
| padding-left: 12px; | |
| gap: 10px; | |
| } | |
| .brush-size > span { | |
| display: none; | |
| } | |
| .examples button { | |
| gap: 10px; | |
| font-size: 0.875rem; | |
| padding-inline: 6px; | |
| } | |
| .activity-key { | |
| gap: 22px; | |
| font-size: 0.8125rem; | |
| } | |
| .activity-key span { | |
| gap: 10px; | |
| } | |
| } | |
| @container brain (max-width:610px) { | |
| .pane-head { | |
| gap: 14px; | |
| flex-wrap: wrap; | |
| } | |
| .projection-control { | |
| align-self: flex-start; | |
| } | |
| .projection-control select { | |
| font-size: 0.875rem; | |
| } | |
| .paint-tools { | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 8px; | |
| } | |
| .paint-tools button { | |
| padding-inline: 5px; | |
| gap: 8px; | |
| } | |
| .brush-size { | |
| grid-column: 1/-1; | |
| grid-row: 2; | |
| grid-template-columns: auto minmax(30px, 1fr) auto; | |
| border: 0; | |
| padding: 13px 0 0; | |
| } | |
| .brush-size > span { | |
| display: block; | |
| } | |
| .paint-tools .primary { | |
| grid-column: 4; | |
| grid-row: 1; | |
| } | |
| .paint-tools #clear { | |
| grid-column: 3; | |
| grid-row: 1; | |
| } | |
| .examples { | |
| gap: 4px; | |
| } | |
| .examples .icon { | |
| width: 23px; | |
| height: 23px; | |
| } | |
| .examples button { | |
| gap: 7px; | |
| } | |
| .paint-controls { | |
| padding-top: 24px; | |
| padding-bottom: 30px; | |
| } | |
| .brain-key { | |
| min-height: 58px; | |
| } | |
| .activity-key { | |
| gap: 16px; | |
| } | |
| .activity-key span { | |
| gap: 8px; | |
| } | |
| } | |
| @container brain (max-width:580px) { | |
| .paint-tools button { | |
| flex-direction: column; | |
| white-space: normal; | |
| font-size: 0.875rem; | |
| gap: 5px; | |
| padding: 9px 2px; | |
| } | |
| } | |
| @container brain (max-width:430px) { | |
| .paint-tools button > span { | |
| min-height: 2.3em; | |
| display: grid; | |
| place-items: center; | |
| line-height: 1.15; | |
| } | |
| .paint-tools button { | |
| flex-direction: column; | |
| font-size: 0.875rem; | |
| gap: 5px; | |
| padding: 9px 2px; | |
| } | |
| .examples button { | |
| flex-direction: column; | |
| gap: 6px; | |
| font-size: 0.875rem; | |
| } | |
| .pane-head { | |
| row-gap: 8px; | |
| } | |
| .pane-title { | |
| flex: 1; | |
| } | |
| .projection-control { | |
| flex-basis: 100%; | |
| justify-content: flex-end; | |
| } | |
| .brain-key { | |
| padding-inline: 20px; | |
| gap: 8px; | |
| } | |
| .activity-key { | |
| gap: 13px; | |
| font-size: 0.75rem; | |
| } | |
| .activity-key span { | |
| gap: 7px; | |
| } | |
| .activity-key i { | |
| width: 10px; | |
| height: 10px; | |
| } | |
| .section-index { | |
| font-size: 1.25rem; | |
| } | |
| } | |
| @container response (max-width:730px) { | |
| .fly-head { | |
| gap: 16px; | |
| } | |
| .transport { | |
| gap: 5px; | |
| } | |
| .transport button { | |
| padding-inline: 4px; | |
| gap: 8px; | |
| font-size: 0.875rem; | |
| } | |
| .transport .icon { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .divider { | |
| margin-inline: 3px; | |
| } | |
| .camera-tabs { | |
| gap: 10px; | |
| } | |
| .camera-tabs button { | |
| padding-inline: 12px; | |
| font-size: 1rem; | |
| } | |
| .body-state { | |
| gap: 12px; | |
| font-size: 1rem; | |
| } | |
| .body-state small { | |
| display: none; | |
| } | |
| .readouts > div { | |
| padding-inline: 16px; | |
| } | |
| .readouts span { | |
| font-size: 0.875rem; | |
| } | |
| .compute-select { | |
| font-size: 0.9375rem; | |
| } | |
| } | |
| @container response (max-width:565px) { | |
| .fly-head { | |
| flex-wrap: wrap; | |
| row-gap: 6px; | |
| min-height: 110px; | |
| } | |
| .transport { | |
| flex-basis: 100%; | |
| justify-content: flex-end; | |
| } | |
| .divider { | |
| display: none; | |
| } | |
| .camera-tabs { | |
| gap: 4px; | |
| } | |
| .camera-tabs button { | |
| padding-inline: 9px; | |
| font-size: 0.9375rem; | |
| } | |
| .response-bar { | |
| gap: 8px; | |
| } | |
| .specimen-line { | |
| font-size: 0.75rem; | |
| gap: 10px; | |
| } | |
| .scale { | |
| gap: 8px; | |
| } | |
| .readouts > div { | |
| padding-inline: 12px; | |
| } | |
| .readouts span { | |
| font-size: 0.8125rem; | |
| } | |
| .readouts output { | |
| font-size: clamp(1rem, 4.6cqw, 1.25rem); | |
| } | |
| .meter, | |
| .balance { | |
| height: 11px; | |
| } | |
| .readouts { | |
| margin-top: 25px; | |
| } | |
| .compute-select { | |
| font-size: 0.875rem; | |
| } | |
| .compute-select > summary { | |
| gap: 10px; | |
| } | |
| .scene-footer { | |
| padding-top: 26px; | |
| padding-bottom: 30px; | |
| min-height: 91px; | |
| } | |
| .compute-options { | |
| width: min(310px, calc(100vw - 40px)); | |
| } | |
| } | |
| @media (min-width: 901px) and (max-height: 820px) { | |
| .pane-head { | |
| min-height: 100px; | |
| } | |
| .fly-head { | |
| min-height: 86px; | |
| } | |
| .paint-controls { | |
| padding-top: 22px; | |
| padding-bottom: 28px; | |
| } | |
| .readouts { | |
| margin-top: 22px; | |
| } | |
| .scene-footer { | |
| padding-top: 24px; | |
| padding-bottom: 28px; | |
| min-height: 87px; | |
| } | |
| .brain-key { | |
| min-height: 58px; | |
| } | |
| .activity-key { | |
| padding-top: 19px; | |
| } | |
| .brain-stage { | |
| margin-top: 10px; | |
| } | |
| } | |
| @media (max-width: 900px) { | |
| .workspace { | |
| height: auto; | |
| min-height: 0; | |
| grid-template-columns: 1fr; | |
| } | |
| .brain-pane { | |
| border-right: 0; | |
| border-bottom: 1px solid #35424e; | |
| grid-template-rows: auto clamp(310px, 52vw, 450px) auto auto; | |
| } | |
| .fly-pane { | |
| grid-template-rows: clamp(510px, 76vw, 650px) auto auto; | |
| } | |
| .pane-head { | |
| padding-top: 28px; | |
| } | |
| .fly-head { | |
| padding-top: 30px; | |
| } | |
| .brain-stage { | |
| margin-top: 12px; | |
| } | |
| .paint-controls { | |
| padding-bottom: 30px; | |
| } | |
| .scene-footer { | |
| padding-bottom: 30px; | |
| } | |
| .readouts { | |
| margin-top: 28px; | |
| } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| * { | |
| transition: none ; | |
| } | |
| } | |
| .setup-dialog { | |
| position: fixed; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| height: 100svh; | |
| max-width: none; | |
| max-height: none; | |
| margin: 0; | |
| padding: 24px; | |
| border: 0; | |
| border-radius: 0; | |
| background: #0c141deb; | |
| overflow: auto; | |
| } | |
| .setup-dialog[open] { | |
| display: grid; | |
| place-items: center; | |
| } | |
| .setup-dialog::backdrop { | |
| background: #0c141d; | |
| backdrop-filter: none; | |
| } | |
| .setup-content { | |
| width: min(100%, 440px); | |
| padding: 36px; | |
| background: linear-gradient(145deg, #1b2531, #141e29); | |
| border: 1px solid #344150; | |
| border-radius: 20px; | |
| box-shadow: 0 24px 100px #0005; | |
| } | |
| .setup-content h2 { | |
| margin: 0 0 20px; | |
| font-size: 2rem; | |
| letter-spacing: -0.04em; | |
| font-weight: 550; | |
| } | |
| .setup-content p { | |
| margin: 0; | |
| color: #c2cfe0; | |
| font-size: 1rem; | |
| line-height: 1.55; | |
| } | |
| .setup-content #setup-detail { | |
| margin-top: 12px; | |
| color: var(--muted); | |
| font-size: 0.875rem; | |
| overflow-wrap: anywhere; | |
| } | |
| .setup-content .primary { | |
| width: 100%; | |
| margin-top: 26px; | |
| min-height: 50px; | |
| } | |
| .setup-content .setup-note { | |
| margin-top: 17px; | |
| font-size: 0.8125rem; | |
| color: var(--subtle); | |
| line-height: 1.5; | |
| } | |
| #setup-progress { | |
| display: block; | |
| width: 100%; | |
| height: 5px; | |
| margin-top: 22px; | |
| border: 0; | |
| border-radius: 4px; | |
| overflow: hidden; | |
| accent-color: var(--violet); | |
| } | |
| #setup-progress::-webkit-progress-bar { | |
| background: #2a3543; | |
| } | |
| #setup-progress::-webkit-progress-value { | |
| background: var(--violet); | |
| } | |
| #setup-progress::-moz-progress-bar { | |
| background: var(--violet); | |
| } | |
| .setup-dialog[data-state='error'] #setup-detail { | |
| color: #ffb1b8; | |
| } | |
| .setup-dialog[data-state='loading'] #setup-button .icon { | |
| display: none; | |
| } | |
| @media (max-width: 480px) { | |
| .setup-dialog { | |
| padding: 18px; | |
| } | |
| .setup-content { | |
| padding: 28px; | |
| } | |
| .setup-content h2 { | |
| font-size: 1.75rem; | |
| } | |
| } | |