.fs-root{background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.fs-canvas{cursor:crosshair;width:100%;height:100%;display:block}.fs-header{left:var(--gutter);pointer-events:none;z-index:10;position:absolute;bottom:2.5rem}.fs-title{font-family:var(--font-display);margin:.5rem 0 .75rem;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:400;line-height:1}.fs-title em{color:var(--gold-bright)}.fs-subtitle{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-dim);font-size:.75rem}.fs-hint{top:calc(var(--nav-h) + 1.4rem);left:var(--gutter);pointer-events:none;z-index:10;align-items:center;gap:1rem;display:flex;position:absolute}.fs-ghost-cursor{border:1.5px solid var(--gold-bright);width:18px;height:18px;animation:fs-drag-hint 2.6s infinite var(--ease);border-radius:50%;position:relative}.fs-ghost-cursor:after{content:"";filter:blur(8px);background:#d4af3759;border-radius:50%;position:absolute;inset:-4px}.fs-hint-text{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-left:3.5rem;font-size:.7rem}@keyframes fs-drag-hint{0%{opacity:0;transform:translate(0)}20%{opacity:1}80%{opacity:1;transform:translate(48px)}to{opacity:0;transform:translate(48px)}}.fs-cursor-overlay{pointer-events:none;position:absolute;inset:0}.fs-brush{pointer-events:none;opacity:0;transition:opacity .3s var(--ease);will-change:transform;border:1px solid #f3d27a59;border-radius:50%;position:absolute;top:0;left:0}.fs-root:hover .fs-brush{opacity:1}@media (hover:none){.fs-brush{display:none}}.fs-toggle{top:calc(var(--nav-h) + 1rem);right:var(--gutter);z-index:21;border:1px solid var(--line-strong);height:38px;color:var(--gold-bright);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .3s var(--ease);background:#0a0907d9;border-radius:999px;padding:0 1.1rem;font-size:.75rem;position:absolute}.fs-toggle:hover{border-color:var(--gold)}.fs-panel{bottom:2rem;right:var(--gutter);z-index:20;width:min(540px, calc(100vw - 2 * var(--gutter)));max-height:60dvh;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-lg);animation:fs-panel-in .4s var(--ease);background:#12100cf0;grid-template-columns:repeat(3,1fr);gap:1.1rem 1.4rem;padding:1.4rem;display:grid;position:absolute;overflow-y:auto;box-shadow:0 30px 60px -20px #000000b3}@keyframes fs-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.fs-group{flex-direction:column;gap:.5rem;display:flex}.fs-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:.68rem}.fs-select{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg);height:36px;color:var(--text);cursor:pointer;padding:0 .6rem;font-size:.85rem}.fs-slider{appearance:none;cursor:pointer;background:#d4af372e;border-radius:3px;outline:none;width:100%;height:3px;margin:.65rem 0}.fs-slider::-webkit-slider-thumb{appearance:none;background:var(--gold-bright);border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px #d4af3726,0 0 12px #d4af3780}.fs-slider::-moz-range-thumb{background:var(--gold-bright);border:none;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px #d4af3726,0 0 12px #d4af3780}.fs-color{appearance:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:100%;height:36px;padding:0;overflow:hidden}.fs-color::-webkit-color-swatch-wrapper{padding:0}.fs-color::-webkit-color-swatch{border:none}.fs-color::-moz-color-swatch{border:none}.fs-reset{background:var(--gold-gradient);color:#120e05;cursor:pointer;border:none;border-radius:999px;grid-column:1/-1;align-self:end;height:36px;font-size:.82rem;font-weight:600}.fs-background .fs-hint{top:auto;bottom:2rem;left:50%;transform:translate(-50%)}@media (max-width:760px){.fs-panel{grid-template-columns:repeat(2,1fr);bottom:1rem}.fs-header{bottom:auto;top:calc(var(--nav-h) + 1rem)}.fs-title{font-size:2.25rem}.fs-lab .fs-hint{top:auto;bottom:2rem}}
