*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:transparent;color:#fff}#root{height:100%;position:relative;z-index:1}:root{--bg-dark: #0a0a0f;--bg-card: #12121a;--bg-hover: #1a1a2e;--bg-glass: rgba(18, 18, 26, .8);--accent-blue: #3b82f6;--accent-green: #22c55e;--accent-purple: #a855f7;--accent-red: #ef4444;--accent-orange: #f97316;--accent-cyan: #06b6d4;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--border-glow: rgba(59, 130, 246, .3);--border-subtle: rgba(255, 255, 255, .1);--gradient-header: linear-gradient(135deg, #3b82f6 0%, #a855f7 100%)}.glass-card{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.glass-card:hover{border-color:var(--border-glow);box-shadow:0 8px 32px #3b82f626}.gradient-text{background:var(--gradient-header);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.arcade-button{padding:10px 20px;background:#ffffff1a;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:14px;font-family:inherit;transition:all .2s ease}.arcade-button:hover{background:#ffffff26;border-color:var(--border-glow);transform:translateY(-1px)}.arcade-button:active{transform:translateY(0)}.arcade-button.primary{background:var(--accent-blue);border-color:var(--accent-blue)}.arcade-button.primary:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f666}.arcade-button.export{background:linear-gradient(135deg,#6464ff,#8a64ff);border:none;font-weight:600}.arcade-header{padding:12px 24px;background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.app{display:flex;flex-direction:column;height:100vh}.fluid-canvas{cursor:crosshair;touch-action:none}.fluid-canvas:active{cursor:grabbing}::-webkit-scrollbar-track{background:#0000004d;border-radius:4px}::-webkit-scrollbar-thumb{background:#6464ff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6464ff80}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 5px #6464ff80}50%{box-shadow:0 0 20px #6464ffcc}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.pulse{animation:pulse 2s ease-in-out infinite}.glow{animation:glow 2s ease-in-out infinite}.slide-in{animation:slideIn .3s ease-out}.slide-up{animation:slideUp .3s ease}@media (max-width: 768px){.app{flex-direction:column}aside{width:100%!important;height:200px;border-left:none!important;border-top:1px solid rgba(100,100,255,.2)}}.no-select{user-select:none;-webkit-user-select:none}canvas:focus{outline:none}.stats{background:var(--bg-glass);backdrop-filter:blur(10px);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;font-size:12px;color:var(--text-muted);display:flex;flex-direction:column;gap:8px}.controls{display:flex;gap:8px}.control-button{padding:8px 16px;background:#6464ff33;border:1px solid rgba(100,100,255,.3);border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-family:inherit;transition:all .2s ease}.control-button:hover{background:#6464ff4d;border-color:#6464ff80;transform:translateY(-1px)}.app-footer{padding:12px 24px;background:var(--bg-glass);backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle)}.instructions{display:flex;gap:24px;font-size:14px;color:var(--text-muted)}.overlay{position:absolute;top:16px;right:16px;z-index:100}:root{--p31-coral: #cc6247;--p31-teal: #5DCAA5;--p31-cyan: #4db8a8;--p31-amber: #cda852;--p31-lavender: #8b7cc9;--p31-phosphorus: #3ba372;--p31-phosphor: #00FF88;--p31-fuchsia: #e879f9;--p31-void: #0f1115;--p31-surface: #161920;--p31-surface2: #1c2028;--p31-cloud: #d8d6d0;--p31-paper: #f4f4f5;--p31-ink: #1e293b;--p31-muted: #6b7280;--p31-border-subtle: rgba(255, 255, 255, .06);--p31-glass-border: rgba(255, 255, 255, .08);--p31-glass-surface: rgba(255, 255, 255, .04);--p31-font-sans: "Atkinson Hyperlegible", sans-serif;--p31-font-mono: "JetBrains Mono", monospace;--p31-text-xs: .75rem;--p31-text-sm: .875rem;--p31-text-base: 1rem;--p31-text-md: 1.0625rem;--p31-text-lg: 1.125rem;--p31-text-xl: 1.25rem;--p31-text-2xl: 1.5rem;--p31-text-3xl: 1.875rem;--p31-text-4xl: 2.25rem;--p31-space-1: .25rem;--p31-space-2: .5rem;--p31-space-3: .75rem;--p31-space-4: 1rem;--p31-space-5: 1.25rem;--p31-space-6: 1.5rem;--p31-space-8: 2rem;--p31-space-10: 2.5rem;--p31-space-12: 3rem;--p31-space-16: 4rem;--p31-radius-sm: 4px;--p31-radius-md: 8px;--p31-radius-lg: 12px;--p31-radius-xl: 16px;--p31-radius-full: 9999px;--p31-shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--p31-shadow-md: 0 4px 14px rgba(0, 0, 0, .08);--p31-shadow-lg: 0 12px 40px rgba(0, 0, 0, .12);--p31-shadow-glow-teal: 0 0 24px rgba(37, 137, 125, .25);--p31-motion-instant: .1s;--p31-motion-fast: .15s;--p31-motion-normal: .25s;--p31-motion-slow: .4s;--p31-motion-glacial: .8s;--p31-ease-standard: cubic-bezier(.4, 0, .2, 1);--p31-ease-emphasized: cubic-bezier(.2, 0, 0, 1);--p31-ease-decelerate: cubic-bezier(0, 0, .2, 1);--p31-focus-ring: 2px solid rgba(77, 184, 168, .55);--p31-focus-offset: 2px;--p31-z-base: 0;--p31-z-dropdown: 50;--p31-z-sticky: 100;--p31-z-overlay: 200;--p31-z-modal: 300;--p31-z-toast: 400}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--p31-font-sans);background:var(--p31-void);color:var(--p31-cloud);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.arcade-background{position:fixed;inset:0;background:var(--p31-void);z-index:-1;overflow:hidden}.arcade-background:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at top,rgba(93,202,165,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom,rgba(139,124,201,.05) 0%,transparent 50%)}.arcade-background:after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%235DCAA5' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.4}.p31-gray-rock .arcade-background:before,.p31-gray-rock .arcade-background:after{opacity:0}.p31-alive .arcade-background:before{animation:arcadeMeshPulse 12s ease-in-out infinite}@keyframes arcadeMeshPulse{0%,to{transform:translate(0) scale(1);opacity:.6}50%{transform:translate(-1%,-1%) scale(1.02);opacity:.8}}@media (prefers-reduced-motion: reduce){.p31-alive .arcade-background:before{animation:none}}.glass-card{background:var(--p31-glass-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);box-shadow:var(--p31-shadow-lg);transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.glass-card:hover{border-color:#5dcaa533;box-shadow:0 8px 32px #5dcaa51a}.arcade-button{padding:var(--p31-space-2) var(--p31-space-4);background:var(--p31-glass-surface);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);color:var(--p31-cloud);font-family:var(--p31-font-sans);font-size:var(--p31-text-sm);cursor:pointer;transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.arcade-button:hover{background:#ffffff14;border-color:#5dcaa54d}.arcade-button:focus-visible{outline:var(--p31-focus-ring);outline-offset:var(--p31-focus-offset)}.arcade-button.primary{background:var(--p31-cyan);border-color:var(--p31-cyan);color:var(--p31-void)}.arcade-button.primary:hover{background:#3aa89a;box-shadow:0 4px 12px #4db8a84d}.arcade-button.success{background:var(--p31-phosphorus);border-color:var(--p31-phosphorus);color:var(--p31-cloud)}.arcade-button.danger{background:var(--p31-coral);border-color:var(--p31-coral);color:var(--p31-cloud)}.arcade-header{padding:var(--p31-space-4) var(--p31-space-6);background:var(--p31-glass-surface);backdrop-filter:blur(20px);border-bottom:1px solid var(--p31-glass-border);display:flex;justify-content:space-between;align-items:center}.arcade-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--p31-void);color:var(--p31-cloud)}.arcade-loading-spinner{font-size:var(--p31-text-4xl);margin-bottom:var(--p31-space-4)}.arcade-loading-spinner:before{content:"◐";animation:arcadeSpin 1s linear infinite}@keyframes arcadeSpin{0%{content:"◐"}25%{content:"◓"}50%{content:"◑"}75%{content:"◒"}to{content:"◐"}}@media (prefers-reduced-motion: reduce){.arcade-loading-spinner:before{animation:none;content:"◐"}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0000004d;border-radius:var(--p31-radius-sm)}::-webkit-scrollbar-thumb{background:#4db8a84d;border-radius:var(--p31-radius-sm)}::-webkit-scrollbar-thumb:hover{background:#4db8a880}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.slide-in{animation:slideIn var(--p31-motion-normal) var(--p31-ease-standard)}.slide-up{animation:slideUp var(--p31-motion-normal) var(--p31-ease-standard)}@media (prefers-reduced-motion: reduce){.slide-in,.slide-up{animation:none;opacity:1;transform:none}}.gradient-text{background:linear-gradient(135deg,var(--p31-cyan) 0%,var(--p31-lavender) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}:focus-visible{outline:var(--p31-focus-ring);outline-offset:var(--p31-focus-offset)}.spoon-indicator{display:inline-flex;align-items:center;gap:var(--p31-space-1);padding:var(--p31-space-1) var(--p31-space-2);background:var(--p31-glass-surface);border-radius:var(--p31-radius-lg);font-family:var(--p31-font-mono);font-size:var(--p31-text-xs)}.spoon-high{color:var(--p31-teal)}.spoon-medium{color:var(--p31-amber)}.spoon-low{color:var(--p31-coral)}.spoon-empty{color:var(--p31-muted)}.spoon-icon-loading:before{content:"◐"}.spoon-icon-inactive:before{content:"○"}.spoon-icon-active:before{content:"●"}.p31-return-ribbon{position:fixed;bottom:0;left:0;right:0;height:48px;background:var(--p31-glass-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--p31-glass-border);display:flex;align-items:center;justify-content:center;gap:var(--p31-space-1);padding:0 var(--p31-space-4);z-index:var(--p31-z-sticky);font-family:var(--p31-font-sans);font-size:var(--p31-text-sm);transition:transform var(--p31-motion-normal) var(--p31-ease-standard),opacity var(--p31-motion-normal) var(--p31-ease-standard)}.p31-gray-rock .p31-return-ribbon{transform:translateY(100%);opacity:0;pointer-events:none}.p31-alive .p31-return-ribbon{transform:translateY(0);opacity:1;pointer-events:auto}.p31-return-ribbon{transform:translateY(0);opacity:1}.p31-ribbon-nav{display:flex;align-items:center;gap:var(--p31-space-1)}.p31-ribbon-link{display:flex;align-items:center;gap:var(--p31-space-1);padding:var(--p31-space-2) var(--p31-space-3);color:var(--p31-cloud);text-decoration:none;border-radius:var(--p31-radius-md);transition:all var(--p31-motion-fast) var(--p31-ease-standard);white-space:nowrap}.p31-ribbon-link:hover{background:#ffffff14;color:var(--p31-teal)}.p31-ribbon-link:focus-visible{outline:var(--p31-focus-ring);outline-offset:var(--p31-focus-offset)}.p31-ribbon-link.active{background:#5dcaa526;color:var(--p31-teal)}.p31-ribbon-separator{color:var(--p31-muted);opacity:.4;font-size:var(--p31-text-xs);padding:0 var(--p31-space-1);user-select:none}.p31-ribbon-home{display:flex;align-items:center;gap:var(--p31-space-2);font-weight:600;color:var(--p31-teal);margin-right:var(--p31-space-2)}.p31-ribbon-link:focus-visible{outline:var(--p31-focus-ring);outline-offset:2px}@media (prefers-contrast: high){.p31-return-ribbon{background:var(--p31-ink);border-top:2px solid var(--p31-cloud)}.p31-ribbon-link:hover,.p31-ribbon-link.active{background:var(--p31-cloud);color:var(--p31-ink)}}@media (prefers-reduced-motion: reduce){.p31-return-ribbon{transition:none}}@media (max-width: 640px){.p31-return-ribbon{height:44px;padding:0 var(--p31-space-2);gap:0}.p31-ribbon-link{padding:var(--p31-space-1) var(--p31-space-2);font-size:var(--p31-text-xs)}.p31-ribbon-link span:not(:first-child){display:none}.p31-ribbon-home span{display:none}}:root{--liquid-deep: var(--p31-void);--liquid-surface: var(--p31-surface);--liquid-foam: var(--p31-cloud);--liquid-cyan: var(--p31-cyan);--liquid-teal: var(--p31-teal);--liquid-accent: var(--p31-lavender)}.sculptor-canvas{background:var(--liquid-deep);border-radius:var(--p31-radius-lg);overflow:hidden;box-shadow:inset 0 0 40px #00000080}.tool-palette{display:flex;flex-direction:column;gap:var(--p31-space-2);padding:var(--p31-space-3);background:var(--p31-glass-surface);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg)}.tool-button{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--p31-surface);border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);color:var(--p31-cloud);font-size:var(--p31-text-lg);cursor:pointer;transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.tool-button:hover{border-color:var(--p31-cyan);background:var(--p31-surface2)}.tool-button.active{background:var(--p31-cyan);border-color:var(--p31-cyan);color:var(--p31-void)}.tool-button:focus-visible{outline:var(--p31-focus-ring);outline-offset:var(--p31-focus-offset)}.brush-sizes{display:flex;gap:var(--p31-space-2);align-items:center;padding:var(--p31-space-2)}.brush-size{border-radius:var(--p31-radius-full);background:var(--p31-glass-border);border:2px solid transparent;cursor:pointer;transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.brush-size:hover{border-color:var(--p31-cyan)}.brush-size.active{background:var(--p31-cyan)}.brush-size.small{width:12px;height:12px}.brush-size.medium{width:20px;height:20px}.brush-size.large{width:32px;height:32px}.color-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--p31-space-2);padding:var(--p31-space-2)}.color-swatch{width:36px;height:36px;border-radius:var(--p31-radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:var(--p31-cloud);box-shadow:0 0 0 2px var(--p31-cyan)}.color-swatch.cyan{background:var(--p31-cyan)}.color-swatch.teal{background:var(--p31-teal)}.color-swatch.lavender{background:var(--p31-lavender)}.color-swatch.coral{background:var(--p31-coral)}.color-swatch.amber{background:var(--p31-amber)}.color-swatch.phosphorus{background:var(--p31-phosphorus)}.color-swatch.cloud{background:var(--p31-cloud)}.color-swatch.void{background:var(--p31-void);border:1px solid var(--p31-glass-border)}.physics-panel{background:var(--p31-glass-surface);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);padding:var(--p31-space-3)}.physics-control{display:flex;flex-direction:column;gap:var(--p31-space-1);margin-bottom:var(--p31-space-3)}.physics-control:last-child{margin-bottom:0}.control-label{font-family:var(--p31-font-mono);font-size:var(--p31-text-xs);color:var(--p31-muted);text-transform:uppercase;display:flex;justify-content:space-between}.control-value{color:var(--p31-cyan)}input[type=range]{-webkit-appearance:none;width:100%;height:4px;background:var(--p31-surface2);border-radius:var(--p31-radius-full);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--p31-cyan);border-radius:var(--p31-radius-full);cursor:pointer;transition:transform var(--p31-motion-fast) var(--p31-ease-standard)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px #4db8a84d}.fps-counter{font-family:var(--p31-font-mono);font-size:var(--p31-text-xs);color:var(--p31-muted);position:absolute;top:var(--p31-space-2);left:var(--p31-space-2);background:#00000080;padding:var(--p31-space-1) var(--p31-space-2);border-radius:var(--p31-radius-sm)}.fps-value{color:var(--p31-teal)}.fps-value.low{color:var(--p31-coral)}.sim-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--p31-space-2);font-family:var(--p31-font-mono);font-size:var(--p31-text-xs)}.stat-item{display:flex;justify-content:space-between;padding:var(--p31-space-1) var(--p31-space-2);background:var(--p31-surface);border-radius:var(--p31-radius-sm)}.stat-name{color:var(--p31-muted)}.stat-number{color:var(--p31-cyan)}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--p31-space-2)}.preset-button{padding:var(--p31-space-2);background:var(--p31-surface);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);font-family:var(--p31-font-sans);font-size:var(--p31-text-xs);color:var(--p31-cloud);cursor:pointer;transition:all var(--p31-motion-fast) var(--p31-ease-standard)}.preset-button:hover{border-color:var(--p31-cyan);background:var(--p31-surface2)}.action-bar{display:flex;gap:var(--p31-space-2);padding:var(--p31-space-3);background:var(--p31-glass-surface);border-top:1px solid var(--p31-glass-border)}.action-button{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;gap:var(--p31-space-2);font-size:var(--p31-text-sm)}.action-button.clear{background:var(--p31-coral);border-color:var(--p31-coral)}.action-button.save{background:var(--p31-phosphorus);border-color:var(--p31-phosphorus)}@media (max-width: 768px){.tool-palette{flex-direction:row;flex-wrap:wrap;justify-content:center}.tool-button{width:44px;height:44px}.physics-panel{padding:var(--p31-space-2)}}@media (prefers-contrast: high){.tool-button{border-width:3px}.tool-button.active{box-shadow:0 0 0 3px var(--p31-cloud)}}
