.sw-root{position:relative;width:100%;height:100svh;overflow:hidden}.sw-canvas{position:absolute;inset:0;z-index:1}.sw-canvas canvas{display:block;width:100%!important;height:100%!important}.sw-about,.sw-logo{position:fixed;top:24px;z-index:5;color:var(--ink);text-decoration:none;font-size:clamp(18px,1.6vw,24px)}.sw-logo{left:28px;letter-spacing:-.01em}.sw-about{right:28px}.sw-frame{position:fixed;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:min(78vw,82vh);height:min(78vw,82vh);border-left:1px solid rgb(255 255 255/.45);border-right:1px solid rgb(255 255 255/.45);pointer-events:none}.sw-frame:before{content:"";position:absolute;left:0;right:0;top:0;border-top:1px solid rgb(255 255 255/.45)}.sw-tag{position:absolute;top:-12px;padding:3px 8px;background:var(--deep-teal);color:#9ED8FF;font:12px/1.2 ui-monospace,Menlo,monospace;letter-spacing:.02em;white-space:nowrap}.sw-l{left:-1px;transform:translateX(-30%)}.sw-c{left:50%;transform:translateX(-50%)}.sw-r{right:-1px;transform:translateX(30%)}.sw-hover{position:fixed;z-index:6;pointer-events:none;background:#fff;color:var(--deep-teal);padding:8px 12px;border-radius:10px;font-size:15px;display:flex;flex-direction:column}.sw-hover small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}.sw-filters,.sw-shape{position:fixed;bottom:26px;z-index:5;display:flex;align-items:center;gap:14px;font-size:clamp(18px,1.6vw,24px)}.sw-shape{left:28px}.sw-filters{right:28px;gap:22px}.sw-shape span{min-width:6.5em;text-align:center}.sw-root button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--ink-soft);font:inherit;cursor:pointer;padding:4px}.sw-shape button{font-size:1.3em;line-height:1}.sw-filters button.is-on,.sw-root button:hover{color:#fff}.sw-filters button:not(.is-on){color:rgb(255 255 255/.55)}@media (max-width:700px){.sw-shape{bottom:70px;left:50%;transform:translateX(-50%)}.sw-filters{left:0;right:0;justify-content:center;gap:14px;font-size:15px}.sw-tag.sw-l,.sw-tag.sw-r{display:none}}