.effigy-wrap{margin-bottom:var(--cv-air)}.effigy-viewport{position:relative;width:100%;aspect-ratio:4 / 5;max-height:80vh;overflow:hidden;background:var(--cv-paper)}.effigy-viewport canvas{display:block;width:100%!important;height:100%!important;cursor:crosshair;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.effigy-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--cv-sp-3);background:var(--cv-paper);z-index:10;font-family:var(--cv-font);font-size:var(--cv-fs-0);color:var(--cv-mute);transition:opacity var(--cv-dur-drift) var(--cv-ease-glide)}.effigy-loader.hidden{opacity:0;pointer-events:none}.effigy-loader img{display:block;width:var(--cv-ctrl-h);height:var(--cv-ctrl-h);image-rendering:pixelated}.effigy-loader-fail{display:flex;flex-direction:column;align-items:center;gap:var(--cv-sp-4)}@media(prefers-reduced-motion:reduce){.effigy-shake,.effigy-bigshake{animation:none}}.effigy-toolbar{display:flex;flex-direction:column;align-items:center;gap:var(--cv-sp-1);padding:var(--cv-sp-3) 0 0}.effigy-tool-row{display:flex;justify-content:center;gap:var(--cv-sp-2);flex-wrap:wrap}.effigy-toolbar button,.effigy-retry{position:relative;isolation:isolate;font-family:var(--cv-font);font-size:var(--cv-fs-meta);font-weight:400;letter-spacing:.02em;text-transform:lowercase;padding:var(--cv-sp-2) var(--cv-sp-4);min-height:var(--cv-ctrl-h);color:var(--cv-ink);background:transparent;border:0;appearance:none;-webkit-appearance:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--cv-sp-2);transition:transform var(--cv-dur-press) var(--cv-ease-glide);user-select:none;-webkit-user-select:none}.effigy-toolbar button:before,.effigy-retry:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--cv-paper);border:2px solid var(--cv-ink)}@media(hover:hover){.effigy-toolbar button:hover,.effigy-retry:hover{transform:translate(-2px,-2px)}}.effigy-toolbar button:active,.effigy-retry:active{transform:translate(-1px,-1px)}.effigy-toolbar button.active:before{background:var(--cv-lavender)}.effigy-toolbar button.active{color:var(--cv-paper)}.effigy-shake{animation:effigy-shake var(--cv-dur-quick) ease-out}@keyframes effigy-shake{0%{transform:translate(0)}20%{transform:translate(-8px,4px)}40%{transform:translate(6px,-6px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-2px)}to{transform:translate(0)}}.effigy-bigshake{animation:effigy-bigshake .35s ease-out}@keyframes effigy-bigshake{0%{transform:translate(0)}10%{transform:translate(-14px,8px)}20%{transform:translate(12px,-10px)}30%{transform:translate(-10px,6px)}40%{transform:translate(8px,-8px)}50%{transform:translate(-6px,4px)}60%{transform:translate(5px,-3px)}70%{transform:translate(-3px,2px)}to{transform:translate(0)}}@media(forced-colors:active){.effigy-toolbar button.active:before{border-width:3px;border-color:Highlight}}
