body[data-surface=fluids] #portal{max-width:1800px;padding:0 36px;margin:auto}.fluids{--f-line:var(--rule);font-variant-numeric:tabular-nums}.fluids p{color:var(--muted)}.fluids button,.fluids select{min-height:44px}.fluids svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}.fluids button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.fluids a{color:var(--accent);text-underline-offset:5px}.fluids input,.fluids select{accent-color:var(--accent);caret-color:var(--accent)}.fluids select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule);padding:8px;border-radius:3px}.fluids .f-top{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:35px 0 30px}.fluids h1{font-size:clamp(30px,3.5vw,49px);letter-spacing:-.035em;line-height:1.1;margin:0 0 10px}.fluids .f-top p{font-size:14px;margin:0}.fluids .f-modes{display:flex;gap:24px;flex:none}.fluids .f-modes button{font-size:14px;border-bottom:2px solid transparent;color:var(--muted)}.fluids .f-modes [aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.fluids .f-workbench{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:30px}.fluids .f-experiment{min-width:0}.fluids figure{margin:0;min-width:0}.fluids figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:var(--muted);padding:12px 0;border-top:1px solid var(--rule)}.fluids .f-canvas-wrap{position:relative;aspect-ratio:2/1;background:#071017;overflow:hidden}.fluids canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:crosshair}.fluids canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.fluids .f-field-caption{position:absolute;bottom:12px;left:14px;max-width:calc(100% - 28px);padding:5px 8px;background:#080e13dd;color:#d9eaee;font-size:11px;pointer-events:none}.fluids #f-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#080e13ee;text-align:center;font-size:15px;padding:25px}.fluids .f-legend{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 0;font-size:11px;color:var(--muted);border-bottom:1px solid var(--rule)}.fluids #f-legend{display:flex;gap:8px;align-items:center}.fluids .f-legend i{display:inline-block;width:12px;height:5px;margin-left:10px}.fluids .f-legend i:first-child{margin-left:0}.fluids .f-teal{background:#42d5c8}.fluids .f-amber{background:#f08e53}.fluids .f-transport{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center;padding:17px 0}.fluids .f-transport button{font-size:12px}.fluids .f-primary{background:var(--accent);color:var(--bg);border-radius:3px;padding:0 17px;min-width:98px}.fluids .f-primary:hover{color:var(--bg);background:#aff7e9}.fluids .f-rate{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.fluids .f-rate select{min-height:36px;padding:4px}.fluids .f-replay{display:flex;justify-content:space-between;flex-wrap:wrap;font-size:12px;color:var(--muted);gap:5px}.fluids input[type=range]{width:100%;cursor:pointer;min-height:28px;margin:3px 0}.fluids .f-replay input:disabled{opacity:.35;cursor:default}.fluids .f-status{font-size:12px;line-height:1.6;min-height:20px;overflow-wrap:anywhere;margin:8px 0;color:var(--accent)}.fluids .f-controls{padding-top:6px}.fluids .f-controls h2{font-size:19px;font-weight:400;margin:0 0 10px}.fluids .f-small{font-size:12px;line-height:1.65;margin:0 0 15px}.fluids .f-presets{display:flex;gap:6px;border-bottom:1px solid var(--rule);margin-bottom:20px;padding-bottom:11px}.fluids .f-presets button{font-size:12px;color:var(--accent);flex:1;background:var(--paper);border:1px solid var(--rule);border-radius:3px}.fluids .f-presets button:hover{border-color:var(--accent)}.fluids .f-control{display:block;margin:0 0 16px}.fluids .f-control>span{display:flex;justify-content:space-between;font-size:13px}.fluids output{color:var(--accent)}.fluids small{font-size:11px;color:var(--muted);display:block}.fluids .f-readout{border-block:1px solid var(--rule);padding:16px 0;margin:20px 0}.fluids .f-readout>span{font-size:12px;color:var(--muted)}.fluids .f-readout strong{display:block;font-size:25px;line-height:1.3;font-weight:400;margin-top:5px}.fluids .f-readout p{font-size:12px;line-height:1.6;margin:10px 0 0}.fluids .f-view{font-size:12px;color:var(--muted);display:block}.fluids .f-view select{display:block;width:100%;margin-top:7px;font-size:12px}.fluids .f-check{min-height:44px;display:flex;align-items:center;gap:8px;font-size:12px;margin:8px 0}.fluids #f-share{font-size:12px;color:var(--accent);margin-bottom:5px}.fluids .f-guide{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin:40px 0 0;padding:35px 0;border-top:1px solid var(--rule)}.fluids .f-guide h2{font-size:31px;font-weight:400;letter-spacing:-.025em;line-height:1.15;margin:0 0 18px}.fluids .f-guide p{font-size:14px;line-height:1.8;max-width:65ch}.fluids .f-question h3{font-size:18px;font-weight:400;margin:0 0 12px}.fluids .f-answers{display:flex;flex-wrap:wrap;gap:8px}.fluids .f-answers button{border:1px solid var(--rule);font-size:12px;padding:8px 12px;border-radius:3px;text-align:left}.fluids .f-answers button:hover{border-color:var(--accent)}.fluids #f-answer{font-size:12px;color:var(--accent)}.fluids .f-method{border-block:1px solid var(--rule);padding:18px 0 20px;margin-bottom:40px}.fluids .f-method summary{cursor:pointer;color:var(--accent);min-height:44px;align-content:center;font-size:14px}.fluids .f-method p{max-width:75ch;font-size:13px;line-height:1.8}.fluids .f-source-links{display:flex;gap:18px 30px;flex-wrap:wrap;font-size:13px}.fluids .f-source-links a{min-height:44px;display:flex;align-items:center;gap:7px}.fluids .f-comparing{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fluids #f-pinned img{width:100%;display:block;aspect-ratio:2/1;object-fit:contain}.fluids #f-pinned figcaption{display:block;min-height:66px}.fluids #f-pin-label{display:block;font-size:10px;margin-top:4px}.fluids .f-comparing .f-live figcaption{min-height:66px}.fluids .f-comparing .f-field-caption{font-size:10px;left:4px;bottom:4px}.fluids #f-state{white-space:nowrap;color:var(--accent)}
@media(min-width:1600px){.fluids .f-workbench{grid-template-columns:minmax(0,1fr) 275px;gap:45px}.fluids .f-top{padding-top:45px}}
@media(max-width:1000px){body[data-surface=fluids] #portal{padding:0 24px}.fluids .f-workbench{grid-template-columns:minmax(0,1fr)}.fluids .f-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 25px;border-top:1px solid var(--rule);padding-top:25px}.fluids .f-controls h2,.fluids .f-controls>.f-small:first-of-type,.fluids .f-presets{grid-column:1/-1}.fluids .f-readout{margin:0 0 12px}.fluids .f-top{align-items:flex-start}.fluids .f-modes{gap:18px}.fluids .f-guide{gap:30px}}
@media(max-width:700px){body[data-surface=fluids] #portal{padding:0 20px}.fluids .f-top{display:block;padding:28px 0 18px}.fluids h1{font-size:34px}.fluids .f-top p{font-size:13px;max-width:38ch}.fluids .f-modes{margin-top:17px}.fluids .f-workbench{gap:20px}.fluids .f-canvas-wrap{aspect-ratio:2/1}.fluids figcaption{font-size:11px}.fluids .f-field-caption{font-size:10px;left:6px;bottom:6px}.fluids .f-legend{font-size:10px}.fluids .f-transport{gap:5px 18px;padding:14px 0}.fluids .f-transport button{min-height:44px}.fluids .f-controls{gap:8px 20px}.fluids .f-controls .f-small:last-child{grid-column:1/-1}.fluids .f-controls .f-readout{grid-column:1/-1}.fluids .f-guide{grid-template-columns:1fr;gap:20px;margin-top:30px;padding-top:28px}.fluids .f-guide h2{font-size:28px}.fluids .f-comparing{grid-template-columns:1fr;gap:15px}.fluids #f-pinned img{aspect-ratio:2/1;object-fit:contain}.fluids .f-comparing .f-live figcaption{min-height:0}.fluids #f-pin-label{font-size:11px}.fluids .f-source-links{display:block}.fluids .f-source-links a{margin:8px 0}.fluids .f-rate select{min-height:44px}}
@media(prefers-reduced-motion:reduce){.fluids *{scroll-behavior:auto;transition:none}}
.fluids input[type=range]{height:44px;min-height:44px;background:transparent}.fluids input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--rule)}.fluids input[type=range]::-webkit-slider-thumb{margin-top:-5px}.fluids input[type=range]::-moz-range-track{height:2px;background:var(--rule)}
