.workshop__canvas-control{--workshop-canvas-control-size:34px;position:relative;box-sizing:border-box;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:var(--workshop-canvas-control-size);height:var(--workshop-canvas-control-size);padding:0;appearance:none;--workshop-canvas-control-surface:#ffffff;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--workshop-canvas-control-surface);color:var(--color-text-primary);box-shadow:0 10px 22px color-mix(in srgb,#101812 22%,transparent);cursor:pointer;font-family:var(--font-family);font-size:16px;font-weight:800;line-height:1;pointer-events:all;touch-action:manipulation;transform:scale(calc(1 / var(--workshop-canvas-control-parent-scale, 1)));transition:background-color .16s ease,border-color .16s ease,color .16s ease}.workshop__canvas-control:after{content:"";position:absolute;inset:-6px;border-radius:inherit;background:transparent}.workshop__canvas-control--labelled{width:auto;min-width:var(--workshop-canvas-control-size);padding-inline:10px}.workshop__canvas-control svg{position:relative;z-index:1;width:18px;height:18px;flex:0 0 auto;stroke:currentColor;pointer-events:none}.workshop__canvas-control-label{position:relative;z-index:1;white-space:nowrap;pointer-events:none}.workshop__canvas-control:hover:not(:disabled){background:color-mix(in srgb,var(--color-text-primary) 7%,var(--workshop-canvas-control-surface))}.workshop__canvas-control[data-active=true]{border-color:var(--color-text-primary);background:color-mix(in srgb,var(--color-text-primary) 12%,var(--workshop-canvas-control-surface))}.workshop__canvas-control:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.workshop__canvas-control:disabled{border-color:color-mix(in srgb,var(--color-border-strong) 50%,var(--workshop-canvas-control-surface));color:color-mix(in srgb,var(--color-text-primary) 38%,var(--workshop-canvas-control-surface));box-shadow:0 6px 14px color-mix(in srgb,#101812 12%,transparent);cursor:default}.workshop__canvas-control[aria-busy=true]{cursor:progress}.workshop__canvas-control--ai{border-color:color-mix(in srgb,var(--workshop-ai-accent) 40%,var(--workshop-toolbar-border-strong));background:var(--workshop-ai-control);color:var(--workshop-ai-accent-strong);box-shadow:0 0 0 1px color-mix(in srgb,var(--workshop-ai-accent) 16%,transparent),0 10px 22px color-mix(in srgb,#101812 22%,transparent),0 8px 18px -16px color-mix(in srgb,var(--workshop-ai-accent) 70%,transparent)}.workshop__canvas-control--ai:focus-visible,.workshop__canvas-control--ai:hover:not(:disabled){background:var(--workshop-ai-control-hover);color:var(--workshop-ai-accent-strong)}.workshop__canvas-control-shimmer{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}.workshop__canvas-control--ai .workshop__canvas-control-shimmer:before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;pointer-events:none;background:var(--workshop-ai-shimmer-gradient);background-size:220% 220%;mix-blend-mode:multiply}.workshop__canvas-control--ai[data-active=true]{border-color:var(--color-text-primary);background:var(--workshop-ai-control-active);color:var(--workshop-ai-accent-strong);box-shadow:0 0 0 1px color-mix(in srgb,var(--workshop-ai-accent) 28%,transparent),0 10px 22px color-mix(in srgb,#101812 22%,transparent),0 0 18px -10px color-mix(in srgb,var(--workshop-ai-accent) 86%,transparent)}.workshop__canvas-control--ai[data-active=true] .workshop__canvas-control-shimmer:before{opacity:.9;animation:workshop-ai-shimmer 2.2s ease-in-out infinite}.workshop__canvas-control-row{position:absolute;right:clamp(8px,2.4%,16px);bottom:clamp(8px,2.4%,16px);left:clamp(8px,2.4%,16px);z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px;pointer-events:none}.workshop__canvas-control-row--column{flex-direction:column}.workshop__canvas-control-row--top{top:clamp(8px,2.4%,16px);bottom:auto}@media print{.workshop__canvas-control,.workshop__canvas-control-row,.workshop__canvas-more-menu{display:none}}@media (prefers-reduced-motion:reduce){.workshop__canvas-control{transition:none}.workshop__canvas-control--ai[data-active=true] .workshop__canvas-control-shimmer:before{animation:none}}.workshop__canvas-control-row--part{inset:0;flex-wrap:nowrap;justify-content:center;align-items:flex-start}:root{--manip-ink:var(--color-text-primary);--manip-hot:#ffd54a;--manip-shadow:0 1px 2px rgba(23,33,25,0.06)}.manip{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-secondary);box-shadow:var(--manip-shadow);color:var(--color-text-primary);font-family:var(--font-family);user-select:none;-webkit-user-select:none}.manip--fullscreen{border:0;border-radius:0}.manip__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;border-bottom:1px solid var(--color-border)}.manip__toolbar-spacer{flex:1}.manip__tool-group{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary)}.manip__tool{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:6px;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.manip__tool:hover{color:var(--color-text-primary)}.manip__tool[aria-pressed=true]{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:0 1px 2px rgba(23,33,25,.12)}.manip__swatch:focus-visible,.manip__target:focus-visible,.manip__tool:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.manip__swatches{display:inline-flex;gap:8px}.manip__swatch{width:28px;height:28px;border-radius:var(--radius-full);border:3px solid var(--color-bg-secondary);box-shadow:0 0 0 1px var(--color-border-strong);transition:transform .15s}.manip__swatch[aria-pressed=true]{transform:scale(1.18);box-shadow:0 0 0 2px var(--color-text-primary)}.manip__target{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;max-width:280px;min-height:62px;padding:4px 8px;border:3px dashed var(--manip-ink);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--manip-ink);text-align:center;line-height:1.2;transition:transform .15s,background .15s}.manip__target-title{display:inline-flex;align-items:center;gap:6px;font-weight:800}.manip__target small{font-size:12px;font-weight:600}.manip__target--hot,.manip__target:hover{background:var(--manip-hot)}.manip__target--hot{transform:scale(1.05)}.manip__controls{display:flex;flex-wrap:wrap;align-items:end;gap:8px 12px;padding:8px 12px}.manip__controls .manip__tool-group,.manip__toolbar .manip__tool-group{max-width:100%;min-width:0;flex-wrap:wrap;align-items:end}.manip__field{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.manip__input,.manip__select{min-width:72px;max-width:180px;min-height:40px;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font:inherit;user-select:text}.manip__input:focus-visible,.manip__select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.manip__message{flex-basis:100%;padding:4px 12px;font-size:var(--font-size-sm)}.manip__stage{position:relative;width:100%;overflow:hidden;background:var(--color-surface)}.manip__stage>svg{display:block;width:100%;height:auto}.manip__live{flex:none}.manip__overlay,.manip__picture{position:absolute;inset:0;width:100%;height:100%}.manip__picture>svg{display:block;width:100%;height:100%}.manip__overlay{overflow:visible;pointer-events:none}.manip__overlay--live .manip__handle,.manip__overlay--live [data-manip-interactive]{pointer-events:auto;cursor:pointer;touch-action:none}.manip__overlay--live .manip__handle:has(.manip__grip),.manip__overlay--live [data-manip-drag]{cursor:grab}.manip__overlay--live [data-manip-drag]:active,.manip__overlay--live:has(.manip__placement[data-placement=drag]){cursor:grabbing}.manip__handle:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.manip__grip{fill:var(--color-surface);fill-opacity:.85;stroke:var(--manip-ink);stroke-width:3}.manip__grip--hot,.manip__handle:focus-visible .manip__grip,.manip__handle:hover .manip__grip{fill:var(--manip-hot);fill-opacity:1}.manip__grip-glyph{fill:var(--manip-ink);font-weight:800;pointer-events:none}.manip__hit{fill:transparent;stroke:none}.manip__drop{fill:var(--manip-hot);fill-opacity:.35;stroke:var(--manip-ink);stroke-width:3;stroke-dasharray:10 8}.manip__ghost{opacity:.85;pointer-events:none}.manip__drop-target{fill:transparent;stroke:var(--manip-ink);stroke-width:2.5;stroke-dasharray:8 6}.manip__drop-target--hot{fill:var(--manip-hot);fill-opacity:.35;stroke-dasharray:none;stroke-width:3}.manip__drop-target.manip__handle:focus-visible{stroke-dasharray:none}.manip__drop-origin{fill:transparent;stroke:var(--color-text-muted);stroke-width:2;stroke-dasharray:4 4;pointer-events:none}.manip__ghost--returning{transition:transform .16s ease-out}@media (prefers-reduced-motion:reduce){.manip__ghost--returning{transition:none}}.manip__counter-ring{fill:none;stroke:var(--manip-ink);stroke-width:3}@media (prefers-reduced-motion:no-preference){.manip__counter{transition:transform .3s ease}.manip__counter-body{transform-origin:0 0;transition:transform .15s ease}.manip__counter--lifted{transition:none}.manip__counter--lifted .manip__counter-body{transform:scale(1.12)}.manip__counter--lifted .manip__counter-ring{display:none}.manip__counter--fresh .manip__counter-body{animation:manip-counter-born .5s}}@keyframes manip-counter-born{0%{transform:scale(0)}60%{transform:scale(1.5)}}.manip__setup{flex-basis:100%;border-top:1px solid var(--color-border)}.manip__setup-summary{padding:8px 12px;font-weight:var(--font-weight-semibold)}.manip__hint,.manip__setup-summary{color:var(--color-text-muted);font-size:var(--font-size-sm)}.manip__hint{flex-basis:100%;margin:0}@media (prefers-reduced-motion:reduce){.manip__swatch,.manip__target{transition:none}.manip__target--hot{transform:none}}.subject-tool-core{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.subject-tool-core__error{position:absolute;bottom:10px;left:10px;right:10px;margin:0;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface,#fff);color:var(--color-text-primary,#182435);font-size:14px;line-height:1.4;pointer-events:none}.subject-tool-core .manip__stage{width:100%;height:100%;max-height:100%}.subject-tool-core .manip__picture svg{width:100%;height:100%}.subject-tool-core .manip__overlay{height:100%}.subject-tool-core .manip__handle:focus-visible{outline:none;stroke:var(--color-focus-ring,#176a75);stroke-width:4px;stroke-dasharray:6 4}.subject-tool-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.subject-tool-controls--panel{align-items:stretch;flex-direction:column;gap:16px}.subject-tool-controls label{display:flex;align-items:center;gap:6px;font-size:13px}.subject-tool-controls--panel label{flex-direction:column;align-items:stretch}.subject-tool-controls button,.subject-tool-controls input,.subject-tool-controls select,.subject-tool-controls textarea{min-height:40px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text-primary);padding:6px 10px;font:inherit}.subject-tool-controls input[type=number]{width:80px}.subject-tool-controls select{max-width:200px}.subject-tool-controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.subject-tool-controls textarea{resize:vertical;min-height:88px}.subject-tool-controls--panel select{max-width:100%}.subject-tool-controls--panel fieldset{min-width:0;border:1px solid var(--color-border);border-radius:8px;padding:10px;display:grid;gap:10px}.subject-tool-controls--panel fieldset>*{min-width:0}.subject-tool-controls--panel button{white-space:normal}.subject-tool-controls--panel select{width:100%}.subject-tool-controls--panel legend{font-size:13px;font-weight:600}.subject-tool-controls :is(button,input,textarea,select):focus-visible{outline:2px solid var(--color-focus-ring,#176a75);outline-offset:2px}.subject-tool-controls :is(button,input,select):disabled{opacity:.5}.subject-tool-controls__actions{display:flex;flex-wrap:wrap;gap:8px}.subject-tool-controls__message{color:var(--color-text-muted);font-size:13px}.source-photo-note-editor{box-sizing:border-box;width:100%;height:100%;display:flex;flex-direction:column;gap:8px;padding:12px;border:2px solid var(--color-border-strong,#98a2b3);border-radius:10px;background:var(--color-surface,white);color:var(--color-text-primary,#182435);font:14px/1.3 Arial,sans-serif;overflow:auto;pointer-events:auto}.source-photo-note-editor label{display:grid;gap:4px}.source-photo-note-editor :is(select,textarea,button){width:100%;min-height:36px;border:1px solid var(--color-border,#98a2b3);border-radius:6px;padding:6px;background:var(--color-surface,white);color:inherit;font:inherit}.source-photo-note-editor textarea{height:78px;resize:none}.source-photo-note-editor p{margin:0}.source-photo-note-editor>div{display:flex;gap:8px}.source-photo-note-editor :is(select,textarea,button):focus-visible{outline:2px solid var(--color-focus-ring,#176a75);outline-offset:2px}.map-reference-lookup{color:#243746;background:#fff;font:15px Arial,sans-serif;padding:3px 5px}.map-reference-lookup>span{display:block;font-weight:600;margin-bottom:5px}.map-reference-lookup>div{display:flex;align-items:center;gap:12px}.map-reference-lookup input{width:108px;min-height:36px;border:1px solid #607783;border-radius:5px;padding:4px 8px;font:20px Arial,sans-serif;color:#243746;background:white}.map-reference-lookup p{font-size:12px;line-height:1.25;margin:5px 0 0}.map-reference-lookup p[role=alert]{color:#973c32}.pvc{--pvc-d:44px;--pvc-ink:var(--manip-ink);height:clamp(600px,calc(100dvh - 96px),1100px)}.pvc--fullscreen{height:100%}.pvc-core{--pvc-surface:#ffffff;--pvc-rule:var(--color-text-primary);--pvc-band-a:#ecf2ea;--pvc-band-b:#f3f7f2}.pvc-core,.pvc__surface{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.pvc__surface{padding:0 12px}.pvc__writing{position:relative;flex:0 0 clamp(88px,20%,200px);display:flex;align-items:center;justify-content:center}.pvc__writing-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);opacity:.8;pointer-events:none}.pvc__chart{position:relative;flex:1;min-height:220px;overflow:hidden;border-radius:var(--radius-lg);background:var(--color-bg-secondary);box-shadow:0 0 0 1px var(--color-border),0 3px 12px rgba(23,33,25,.12)}.pvc__header{position:relative;min-width:0;padding:8px 4px;color:#fff;text-align:center;font-size:clamp(13px,1.7vw,22px);font-weight:800;line-height:1.1;cursor:copy;transition:filter .15s}.pvc__header:before{content:"";position:absolute;right:0;bottom:0;left:0;height:3px;background:var(--pvc-rule);pointer-events:none}.pvc__header:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pvc__header:hover{filter:brightness(1.08)}.pvc__header-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvc__header small{display:block;margin-top:2px;font-size:.65em;font-weight:600;opacity:.88}.pvc--tiny .pvc__header{padding:6px 0;font-size:11px}.pvc--tiny .pvc__header small{display:none}.pvc--tiny .pvc__header-title{text-overflow:clip}.pvc__header--point:after{content:"";position:absolute;right:-7px;bottom:-7px;z-index:1;width:14px;height:14px;border-radius:var(--radius-full);background:var(--color-text-primary);box-shadow:0 0 0 3px var(--color-bg-secondary)}.pvc__zone{min-width:0;border-left:3px solid var(--pvc-rule);background:var(--pvc-surface)}.pvc__zone--first{border-left:0}.pvc-col--after-point{border-left:4px solid var(--pvc-rule)}.pvc__divider{padding:4px;background:var(--color-text-primary);color:var(--color-bg-secondary);text-align:center}.pvc__band,.pvc__divider{font-size:var(--font-size-sm);font-weight:800}.pvc__band{padding:4px 10px;border-top:4px solid var(--pvc-rule);background:repeating-linear-gradient(45deg,var(--pvc-band-a),var(--pvc-band-a) 10px,var(--pvc-band-b) 10px,var(--pvc-band-b) 20px)}.pvc__ink{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;touch-action:none}.pvc--inking .pvc__ink{pointer-events:auto;cursor:crosshair}.pvc__tray{display:flex;align-items:center;gap:14px;min-height:88px;margin-top:10px;padding:10px 16px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.pvc__hint{flex:1;max-height:64px;margin:0;overflow:auto;color:var(--color-text-secondary);font-size:13px;line-height:1.35}.pvc__targets{display:flex;flex:1;justify-content:center;gap:12px}.pvc__readout{font-size:clamp(18px,2.6vw,30px);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.pvc__counters{position:absolute;inset:0;z-index:2;pointer-events:none}.pvc-counter{position:absolute;width:var(--pvc-d);height:var(--pvc-d);border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.7),rgba(255,255,255,0) 45%),var(--pvc-c);box-shadow:inset 0 0 0 3px rgba(0,0,0,.13),0 3px 0 rgba(0,0,0,.2),0 5px 8px rgba(0,0,0,.2);pointer-events:auto;cursor:grab;touch-action:none;transition:width .2s ease,height .2s ease}.pvc--inking .pvc-counter,.pvc-core--inactive .pvc-counter{cursor:default}.pvc-counter--source{--pvc-c:#6b6f8a;position:relative;flex:none}.pvc-counter--ten{display:grid;place-items:center;margin-left:6px;box-shadow:inset 0 0 0 3px rgba(0,0,0,.13),-4px 4px 0 -1px color-mix(in srgb,var(--pvc-c) 80%,black),-8px 8px 0 -2px color-mix(in srgb,var(--pvc-c) 65%,black),0 5px 8px rgba(0,0,0,.2);color:#fff;font-size:calc(var(--pvc-d) * .4);font-weight:800;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.35);user-select:none}.pvc--tidying .pvc-counter{transition:left .3s ease,top .3s ease,width .2s ease,height .2s ease}.pvc-counter--selected{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--color-text-primary),0 4px 8px rgba(0,0,0,.27)}.pvc-counter--glow{animation:pvc-glow .8s infinite alternate}.pvc-counter--fresh{animation:pvc-born .5s}.pvc-counter--dragging{z-index:9;scale:1.12;pointer-events:none;cursor:grabbing}.pvc-counter--ghost{background:none;border:3px dashed var(--pvc-c);box-shadow:none;opacity:.55;pointer-events:none}.pvc__bundle{position:absolute;border:3px dashed var(--color-text-primary);border-radius:18px;background:rgba(23,33,25,.06);pointer-events:auto;cursor:grab;touch-action:none}.pvc__bundle span{position:absolute;top:-13px;left:50%;transform:translateX(-50%);padding:2px 10px;border-radius:10px;background:var(--color-text-primary);color:var(--color-bg-secondary);font-size:12px;font-weight:800;white-space:nowrap}.pvc-celebration{position:absolute;top:42%;left:50%;z-index:20;pointer-events:none}.pvc-celebration__card{padding:18px 34px;border:5px solid var(--color-text-primary);border-radius:24px;background:var(--color-bg-secondary);box-shadow:0 12px 40px rgba(0,0,0,.35);text-align:center;white-space:nowrap;animation:pvc-card 2.4s both}.pvc-celebration__title{display:flex;align-items:center;justify-content:center;gap:10px;color:#e8453c;font-size:clamp(22px,4vw,34px);font-weight:900;animation:pvc-wiggle .5s .3s 3}.pvc-celebration__flip{transform:scaleX(-1)}.pvc-celebration__sentence{margin-top:6px;font-size:clamp(20px,3.6vw,32px);font-weight:800}.pvc-celebration__confetti{position:absolute;top:0;left:0;width:12px;height:12px;border-radius:3px;background:var(--pvc-k);animation:pvc-burst 1.3s ease-out both}@keyframes pvc-card{0%{opacity:1;transform:translate(-50%,-50%) scale(0) rotate(-20deg)}15%{transform:translate(-50%,-50%) scale(1.2) rotate(5deg)}25%{transform:translate(-50%,-50%) scale(1) rotate(-2deg)}85%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-95%) scale(.8)}}@keyframes pvc-burst{to{transform:rotate(var(--pvc-angle)) translateX(var(--pvc-distance)) rotate(540deg) scale(.2);opacity:0}}@keyframes pvc-wiggle{50%{transform:rotate(-5deg) scale(1.1)}}.pvc-block{position:absolute;pointer-events:auto;cursor:grab;touch-action:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));transition:left .3s ease,top .3s ease}.pvc-block:not(.pvc-block--source,.pvc-block--ghost):before{content:"";position:absolute;inset:-6px}.pvc__tidy{flex:none}.pvc-block svg{display:block;overflow:visible;pointer-events:none}.pvc--inking .pvc-block,.pvc-core--inactive .pvc-block{cursor:default}.pvc__block-sources{gap:6px}.pvc-block--source,.pvc__block-sources{display:flex;flex:none;align-items:center}.pvc-block--source{position:relative;justify-content:center;transition:none}.pvc-block--selected{outline:3px solid var(--color-text-primary);outline-offset:3px}.pvc-block--glow{outline-color:#ffc400;animation:pvc-block-glow .8s infinite alternate}.pvc-block--fresh{animation:pvc-born .5s}.pvc-block--dragging{z-index:9;scale:1.05;pointer-events:none;cursor:grabbing;transition:none}.pvc-block--ghost{box-sizing:border-box;border:3px dashed var(--pvc-c);opacity:.55;filter:none;pointer-events:none}@keyframes pvc-block-glow{to{filter:drop-shadow(0 0 8px rgba(255,196,0,.9))}}@keyframes pvc-born{0%{transform:scale(0)}60%{transform:scale(1.5)}}@keyframes pvc-glow{to{box-shadow:0 0 0 3px #fff,0 0 0 6px #ffc400,0 0 18px 8px rgba(255,196,0,.67)}}@keyframes pvc-fade{0%{opacity:0;transform:translate(-50%,-50%)}12%,85%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.pvc-celebration__card{animation:pvc-fade 2.4s both}.pvc-block--fresh,.pvc-block--glow,.pvc-celebration__title,.pvc-counter--fresh{animation:none}.pvc-block{transition:none}.pvc-celebration__confetti{display:none}.pvc-counter--glow{animation:none;box-shadow:0 0 0 3px #fff,0 0 0 6px #ffc400}.pvc--tidying .pvc-counter,.pvc-counter{transition:none}}.pvc-shape{--color-bg-primary:#f3f7f2;--color-bg-secondary:#ffffff;--color-bg-tertiary:#ecf2ea;--color-surface:rgba(23,33,25,0.04);--color-surface-hover:rgba(23,33,25,0.08);--color-border:rgba(23,33,25,0.1);--color-border-strong:rgba(23,33,25,0.18);--color-text-primary:#172119;--color-text-secondary:#4b5c50;--color-text-muted:#526356;position:absolute;top:0;left:0;overflow:hidden;background:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family);transform-origin:top left;user-select:none;-webkit-user-select:none}.pvc-core--fixed{flex:none;width:100%;height:100%}.pvc-core--fixed .pvc__surface{position:absolute;inset:0;display:block;padding:0}.pvc-core--fixed .pvc__chart{min-height:0}.pvc-core--fixed .pvc__tray{margin:0}.pvc-core--fixed .pvc__readout{font-size:30px}.pvc-core--fixed .pvc-celebration__title{font-size:34px}.pvc-core--fixed .pvc-celebration__sentence{font-size:32px}.pvc-core--dragging,.pvc-core--isolated .pvc__header,.pvc-core--isolated .pvc__tray button{pointer-events:auto}.pvc-core--pass-through,.pvc-core--pass-through *{pointer-events:none!important}@media (max-width:640px){.pvc{height:clamp(560px,calc(100dvh - 96px),900px)}.manip__tool span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pvc__surface{padding:0 6px}.pvc__tray{flex-wrap:wrap;gap:10px;padding:8px 10px}.pvc__hint{font-size:12px}.pvc__hint,.pvc__targets{order:3;flex-basis:100%}.pvc__readout{flex:1;text-align:right}.pvc-celebration__card{padding:12px 18px;white-space:normal}.pvc-core--fixed .pvc__tray{flex-wrap:nowrap;gap:14px;padding:10px 16px}.pvc-core--fixed .pvc__hint,.pvc-core--fixed .pvc__targets{order:0;flex-basis:auto;font-size:13px}.pvc-core--fixed .pvc__readout{flex:none;text-align:start}.pvc-core--fixed .pvc-celebration__card{padding:18px 34px;white-space:nowrap}}.workshop-drop-zone{position:absolute;z-index:4;box-sizing:border-box;border:2.5px dashed var(--color-text-primary);border-radius:8px;pointer-events:none}.workshop-drop-zone--hot{border-style:solid;background:rgb(255 213 74/.35)}.hangman-shape{position:absolute;inset:0;overflow:hidden}.hangman-shape__scene{display:block;width:100%;height:100%;pointer-events:none}.hangman-shape__keys{position:absolute;inset:0;pointer-events:none}.hangman-shape__key{position:absolute;padding:0;border:0;border-radius:1.6%/2.6%;background:transparent;cursor:pointer;pointer-events:none;touch-action:manipulation}.hangman-shape--live .hangman-shape__key:not(:disabled){pointer-events:auto}.hangman-shape--live .hangman-shape__key:not(:disabled):hover{background:rgba(23,33,25,.06)}.hangman-shape__key:focus-visible{outline:3px solid var(--color-accent,#2563eb);outline-offset:2px}.hangman-shape[data-outcome=solved] .hangman-shape__scene{animation:hangman-solved .6s ease-out 1}.hangman-shape__status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes hangman-solved{0%{transform:scale(1)}40%{transform:scale(1.02)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.hangman-shape[data-outcome=solved] .hangman-shape__scene{animation:none}}.word-puzzle-shape{position:absolute;inset:0;overflow:hidden}.word-puzzle-shape__page{display:block;width:100%;height:100%;pointer-events:none}.word-puzzle-shape__layer{position:absolute;top:0;left:0;pointer-events:none}.word-puzzle-shape__marks{inset:0;width:100%;height:100%;overflow:visible}.word-puzzle-shape__check,.word-puzzle-shape__clue,.word-puzzle-shape__grid,.word-puzzle-shape__marks{position:absolute;pointer-events:none}.word-puzzle-shape__grid{cursor:pointer;touch-action:none}.word-puzzle-shape--live .word-puzzle-shape__check,.word-puzzle-shape--live .word-puzzle-shape__clue:not(:disabled),.word-puzzle-shape--live .word-puzzle-shape__grid{pointer-events:auto}.word-puzzle-shape__clue{padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer;touch-action:manipulation}.word-puzzle-shape--live .word-puzzle-shape__clue:not(:disabled):hover{background:rgba(23,33,25,.05)}.word-puzzle-shape__check{border:2px solid #172119;border-radius:999px;background:#ffffff;color:#172119;font-family:Lexend,Inter,system-ui,sans-serif;font-weight:700;cursor:pointer;touch-action:manipulation}.word-puzzle-shape__check:hover{background:var(--color-bg-primary,#f3f7f2)}.word-puzzle-shape__check:focus-visible,.word-puzzle-shape__clue:focus-visible,.word-puzzle-shape__key:focus-visible{outline:3px solid var(--color-accent,#2563eb);outline-offset:2px}.word-puzzle-shape__selection{stroke:rgba(37,99,235,.28)}.word-puzzle-shape__feedback--found{stroke:rgba(46,125,50,.32);animation:word-puzzle-fade .7s ease-out 1 forwards}.word-puzzle-shape__feedback--wrong{stroke:rgba(186,26,26,.3);transform-box:fill-box;transform-origin:center;animation:word-puzzle-shake .42s ease-in-out 1,word-puzzle-fade .7s ease-out 1 forwards}.word-puzzle-shape__entry{fill:rgba(37,99,235,.1)}.word-puzzle-shape__cursor{fill:rgba(37,99,235,.18);stroke:#2563eb;stroke-width:4}.word-puzzle-shape__keypad{position:absolute;left:3%;right:3%;bottom:2%;display:grid;gap:.35em;padding:.5em;border:2px solid #344054;border-radius:.6em;background:#ffffff;box-shadow:0 .3em 1em rgba(23,33,25,.18);pointer-events:auto}.word-puzzle-shape__keypad-row{display:flex;justify-content:center;gap:.35em}.word-puzzle-shape__key{flex:0 1 2.6em;min-width:0;height:2.4em;padding:0;border:2px solid #526356;border-radius:.4em;background:#ffffff;color:#172119;font:inherit;font-family:Lexend,Inter,system-ui,sans-serif;font-weight:700;touch-action:manipulation}.word-puzzle-shape__key--wide{flex-basis:5.4em}.word-puzzle-shape[data-solved=true] .word-puzzle-shape__page{animation:word-puzzle-solved .6s ease-out 1}.word-puzzle-shape__status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes word-puzzle-shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}@keyframes word-puzzle-fade{0%,60%{opacity:1}to{opacity:0}}@keyframes word-puzzle-solved{0%{transform:scale(1)}40%{transform:scale(1.015)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.word-puzzle-shape[data-solved=true] .word-puzzle-shape__page,.word-puzzle-shape__feedback--found,.word-puzzle-shape__feedback--wrong{animation:none}}.arithmetic-shape__controls{position:absolute;pointer-events:none}.arithmetic-question-shape .arithmetic-shape__controls{top:0;left:0;right:10.4%;height:27.3%}.arithmetic-compact-shape .arithmetic-shape__controls{left:0;right:0;bottom:100%;height:50px}.arithmetic-compact-shape__pick{position:absolute;pointer-events:none;border-radius:4px;background:color-mix(in srgb,var(--color-accent) 12%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 55%,transparent)}.lo-header-shape__svg{display:block;max-width:none;max-height:none;overflow:visible}.lo-header-shape__placeholder{position:absolute;color:#6b6b6b;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.lo-header-shape__field{position:absolute;margin:0;padding:0;border:0;resize:none;overflow:hidden;color:#000;background:#fff;outline:2px solid var(--color-accent);outline-offset:4px;border-radius:2px;pointer-events:all}.lo-header-shape__field--criterion{outline:none}.lo-header-shape__field--criterion:focus{outline:2px solid var(--color-accent);outline-offset:0}.lo-header-shape__field::placeholder{color:#6b6b6b;font-style:italic}.lo-header-shape__date{position:absolute;padding:0 4px;border:0;border-radius:4px;background:transparent;cursor:pointer;pointer-events:all}.lo-header-shape__date:focus-visible,.lo-header-shape__date:hover{outline:2px solid var(--color-accent);outline-offset:1px}.lo-header-shape__date-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.flashcard-shape[data-editing=true]:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:3px;pointer-events:none;background:var(--gradient-ai-shimmer),var(--color-accent-ai-control-active);background-size:220% 220%,auto;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ai-shimmer var(--motion-ai-shimmer-duration,2.2s) ease-in-out infinite}.flashcard-shape__background{display:block;max-width:none;max-height:none;overflow:visible}.flashcard-shape__placeholder{position:absolute;inset:32px 32px 80px;display:grid;place-items:center;color:var(--color-text-muted);font:28px/1.35 var(--tl-font-sans);pointer-events:none}.flashcard-shape__image{position:absolute;object-fit:contain;pointer-events:none;user-select:none}.flashcard-shape__credit{position:absolute;overflow:hidden;color:var(--color-text-muted);font-family:var(--tl-font-sans);line-height:1.3;text-align:center;text-decoration:underline;text-underline-offset:2px;pointer-events:all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media (prefers-reduced-motion:reduce){.flashcard-shape[data-editing=true]:after{animation:none}}.teaching-block-shape__svg{display:block;max-width:none;max-height:none;overflow:visible}