.carver{--wood:#cfa375;--wood-edge:#8a5a2b;--groove:#4a2c14;--groove-shadow:#2b170a;--groove-light:#e9c79a;--guide:#3c220e47;--guide-current:#3c220e8c;--tip:#fff4d6;--tip-glow:#ffd68c8c;--demo:#fff4d6e6;--stray:#b3261e;margin:var(--carver-margin,1.5rem 0);justify-items:center;gap:.75rem;display:grid}.carver-stage{width:min(100%, var(--carver-size,300px));position:relative}.carver-surface{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;width:100%;height:auto;box-shadow:inset 0 0 0 2px var(--wood-edge), 0 2px 10px #00000040;border-radius:10px;display:block}.carver-wood{fill:var(--wood)}.carver-guide{fill:none;stroke:var(--guide);stroke-width:2px;stroke-dasharray:3 4;stroke-linecap:round}.carver-guide.is-current{stroke:var(--guide-current);stroke-width:2.5px}.carver-groove path{fill:none;stroke-linecap:round;stroke-linejoin:round}.groove-shadow{stroke:var(--groove-shadow);stroke-width:9px;opacity:.55;transform:translate(.6px,.8px)}.groove-cut{stroke:var(--groove);stroke-width:7px}.groove-light{stroke:var(--groove-light);stroke-width:1.4px;opacity:.7;transform:translate(-1.6px,-1.6px)}.carver-demo path{fill:none;stroke:var(--demo);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.carver-tip-dot{fill:var(--tip);stroke:var(--groove);stroke-width:1px}.carver-tip-glow{fill:var(--tip-glow);transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite carver-pulse}.is-carving .carver-tip-glow{animation:none}.is-straying .carver-tip-dot{fill:var(--stray)}.carver-arrow{stroke:var(--tip);stroke-width:2px;stroke-linecap:round}.carver-arrowhead{fill:var(--tip)}.carver-order{fill:var(--tip);paint-order:stroke;stroke:var(--groove);stroke-width:2px;font:600 8px/1 system-ui,sans-serif}@keyframes carver-pulse{0%,to{opacity:.7;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.carver-tip-glow{animation:none}}.carver-status{text-align:center;max-width:30rem;min-height:1.6em;margin:0}.carver-controls{justify-items:center;gap:.75rem;display:grid}.carver-actions,.carver-quiet{flex-wrap:wrap;justify-content:center;gap:.75rem .5rem;display:flex}.carver-actions button,.carver-quiet button,.carver-start{position:relative}.carver-actions button:after,.carver-quiet button:after,.carver-start:after{content:"";position:absolute}.carver-actions button:after{inset:-6px 0}.carver-quiet button:after{inset:-10px -6px}.carver-start:after{inset:-3px 0}.carver-actions button{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-size:.9rem}.carver-actions button.is-primary{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--bg));font-weight:700}.carver-actions button:hover:not(:disabled),.carver-actions button:focus-visible{border-color:var(--accent);color:var(--accent)}.carver-actions button:disabled{opacity:.5;cursor:default}.carver-quiet{gap:.2rem .9rem}.carver-quiet button{font:inherit;color:var(--muted);text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:.15rem 0;font-size:.8rem;text-decoration:underline 1px}.carver-quiet button:hover,.carver-quiet button:focus-visible{color:var(--accent)}.carver-debug{color:var(--muted);white-space:pre-wrap;max-width:300px;margin:0;font:11px/1.3 ui-monospace,monospace}.carver-haptic{opacity:0;pointer-events:none;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.carver{position:relative}.carver-surface.is-locked{touch-action:pan-x pan-y pinch-zoom;cursor:default}.carver-stage{isolation:isolate;transition:transform .7s cubic-bezier(.2,1.4,.4,1)}.carver-surface{transition:box-shadow .7s .15s}.carver-plain path{fill:none;stroke:var(--fg);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:opacity .5s .25s}.carver-board,.carver-work{transform-box:view-box;transform-origin:50%}.carver-board{transition:opacity .6s .32s,transform .75s cubic-bezier(.2,1.4,.4,1) .32s}.carver-work{transition:opacity .5s .8s}.carver-stage.is-asleep{animation:.9s ease-out backwards carver-appear}.carver-stage.is-asleep .carver-surface{box-shadow:none}.carver-stage.is-asleep .carver-board{opacity:0;transform:scale(.86)}.carver-stage.is-asleep .carver-work{opacity:0;transition-duration:.25s;transition-delay:0s}.carver-stage.is-asleep .carver-tip-glow{animation:none}@keyframes carver-appear{0%{opacity:0}to{opacity:1}}.carver-stage.is-awake{transform:translateY(-4px)}.carver-stage.is-awake .carver-surface{box-shadow:inset 0 0 0 1px var(--wood-edge), 0 8px 18px -8px #28140559, 0 0 14px #ffc4682e}.carver-stage.is-awake .carver-plain path{opacity:0;animation:1.1s ease-out carver-ignite}@keyframes carver-ignite{0%{stroke:var(--fg);opacity:1}35%{stroke:#ffd27a;opacity:1;filter:drop-shadow(0 0 4px #ffb84d)}60%{stroke:#fff1c4;opacity:.9;filter:drop-shadow(0 0 6px #ffb84d)}to{stroke:#fff1c4;opacity:0}}.carver-stage:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 38%,#fffae499 50%,#0000 62%) 130% 0/260% 100% no-repeat;border-radius:10px;position:absolute;inset:0}.carver-stage.is-awake:after{animation:1.1s ease-out .45s carver-shimmer}.carver-stage.is-celebrating:after{animation:1.2s ease-out carver-shimmer}@keyframes carver-shimmer{0%{opacity:1;background-position:130% 0}to{opacity:1;background-position:-30% 0}}.carver-stage.is-celebrating .groove-cut{animation:1.9s ease-in-out carver-gild}.carver-stage.is-celebrating .groove-light{animation:1.9s ease-in-out carver-gild-light}@keyframes carver-gild{0%,to{stroke:var(--groove)}35%,65%{stroke:#f2b84b}}@keyframes carver-gild-light{0%,to{stroke:var(--groove-light)}35%,65%{stroke:#fff6d8;opacity:1}}.carver-sparks{z-index:3;pointer-events:none;position:absolute;inset:0}.carver-spark{width:var(--size);height:var(--size);margin:calc(var(--size) / -2);opacity:0;animation:carver-spark 1.5s cubic-bezier(.15, .7, .3, 1) var(--delay) both;background:radial-gradient(circle,#fffbe8 0 30%,#ffd27a 55%,#0000 72%);border-radius:50%;position:absolute;top:50%;left:50%}.carver-sparks.is-done .carver-spark{animation-duration:1.8s}.carver-spark.is-rune{width:calc(var(--size) * .66);filter:drop-shadow(0 0 3px #ffc864e6);background:0 0;border-radius:0}.carver-spark.is-rune svg{width:100%;height:100%;display:block;overflow:visible}.carver-spark.is-rune path{fill:none;stroke:#fff1c4;stroke-width:8px;stroke-linecap:round;stroke-linejoin:round}@keyframes carver-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.3)}15%{opacity:1}70%{opacity:.9}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--dist) * -1)) scale(1)}}.carver-status.is-empty{min-height:0}.carver-start{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.45rem 1rem .45rem .75rem;font-size:.95rem;animation:.9s ease-out .3s backwards carver-appear;display:inline-flex}.carver-start:hover,.carver-start:focus-visible{border-color:var(--accent);color:var(--accent)}.carver-start:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.carver-chisel{--chisel:url(/brand/chisel.png);background:var(--chisel) center / contain no-repeat;transform-origin:50% 40%;width:.62em;height:2.2em;margin:-.45em .15em;display:inline-block;position:relative;transform:rotate(32deg)}.carver-chisel:after{content:"";-webkit-mask:var(--chisel) center / contain no-repeat;mask:var(--chisel) center / contain no-repeat;background:linear-gradient(170deg,#0000 40%,#ffecbef2 50%,#0000 60%) 0 100%/100% 300% no-repeat;animation:3.4s ease-in-out 1.2s infinite chisel-glint;position:absolute;inset:0}@media (prefers-color-scheme:dark){.carver-chisel{filter:drop-shadow(0 0 1px #fff4dc8c)}}.carver-start:hover .carver-chisel,.carver-start:focus-visible .carver-chisel{animation:.6s ease-in-out infinite chisel-tap}@keyframes chisel-glint{0%,55%{background-position:0 100%}85%,to{background-position:0 0}}@keyframes chisel-tap{0%,to{transform:rotate(32deg)translate(0)}50%{transform:rotate(32deg)translate(-1px,3px)}}@media (prefers-reduced-motion:reduce){.carver-stage,.carver-stage.is-awake{transition:none;transform:none}.carver-stage.is-asleep,.carver-start{animation:none}.carver-board{transition:opacity .4s;transform:none!important}.carver-stage.is-awake .carver-plain path,.carver-stage:after,.carver-stage.is-awake:after,.carver-stage.is-celebrating:after,.carver-chisel:after,.carver-start:hover .carver-chisel{animation:none}}
