.ink-signature-action:focus-visible{outline:2px solid var(--ink);outline-offset:4px}@media (min-width:701px){.directory:has(.ink-signature){padding-bottom:max(48px, env(safe-area-inset-bottom))}}.ink-signature{border-top:1px solid var(--line);color:var(--ink);margin-top:88px;padding-block:32px 8px}.ink-signature-heading,.ink-signature-bottom{justify-content:space-between;align-items:baseline;gap:12px 24px;display:flex}.ink-signature-heading p{color:var(--muted-foreground);font-size:var(--text-body);text-wrap:pretty;margin:10px 0 0;line-height:1.5}.ink-signature-paper{isolation:isolate;height:clamp(200px,26vw,280px);margin-block:16px 8px;position:relative}.ink-signature-paper canvas{width:100%;height:100%;color:var(--ink);touch-action:none;cursor:crosshair;display:block;position:absolute;inset:0}.ink-signature-hint{color:var(--muted-foreground);font-size:var(--text-caption);pointer-events:none;transition:opacity .16s var(--ease-out);place-items:center;display:grid;position:absolute;inset:0}.ink-signature-hint[data-hidden=true]{opacity:0}.ink-signature-bottom{color:var(--muted-foreground);font-size:var(--text-caption);line-height:1.5}.ink-signature-action{min-height:36px;color:var(--muted-foreground);font:inherit;font-size:var(--text-caption);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-underline-offset:4px;background:0 0;border:0;border-radius:2px;flex-shrink:0;padding:6px 0;transition:color .16s,opacity .16s}.ink-signature-action:disabled{opacity:.4;cursor:default}.exploration-grid .touchdesigner-row{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0;display:grid}.exploration-grid .touchdesigner-row .piece-visual-media{aspect-ratio:9/16}.exploration-grid .touchdesigner-row .piece-visual-inner>video,.exploration-grid .touchdesigner-row .piece-visual-inner>img{object-fit:cover}.touchdesigner-row .piece-hover-summary{display:none}.touchdesigner-row .piece-caption{padding:10px 2px 0}.touchdesigner-row .piece-caption-title,.touchdesigner-row .piece-caption-summary{margin:0}.touchdesigner-row .piece-caption-title{color:var(--foreground);font-size:14px;font-weight:600;line-height:1.3}.touchdesigner-row .piece-caption-summary{color:var(--muted-foreground);margin-top:3px;font-size:12px;line-height:1.4}.heart-burst{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.heart-burst-item{left:var(--heart-left);color:color-mix(in oklab, var(--accent) 78%, #e25573);opacity:0;transform:translate3d(0, 0, 0) rotate(var(--heart-rotation)) scale(var(--heart-scale));animation:heart-rise var(--heart-duration) var(--heart-delay) linear forwards;will-change:transform, opacity;font-size:clamp(16px,2.2vw,32px);line-height:1;position:absolute;bottom:-2rem}@keyframes heart-rise{0%{opacity:0;transform:translate3d(0, 0, 0) rotate(var(--heart-rotation)) scale(var(--heart-scale))}12%{opacity:.85}72%{opacity:.7}to{opacity:0;transform:translate3d(var(--heart-drift), -105vh, 0) rotate(calc(var(--heart-rotation) + 18deg)) scale(calc(var(--heart-scale) * .78))}}@media (prefers-reduced-motion:reduce){.heart-burst-item{animation:.42s ease-out forwards heart-fade}}@keyframes heart-fade{0%{opacity:0}to{opacity:.8}}@media (hover:hover) and (pointer:fine){.ink-signature-action:hover:not(:disabled){color:var(--ink)}}@media (max-width:700px){.ink-signature{margin-top:56px;padding-top:24px}.ink-signature-heading{flex-wrap:wrap;gap:4px}.ink-signature-bottom{flex-wrap:wrap;gap:4px 16px}.ink-signature-action{min-height:44px}.exploration-grid .touchdesigner-row{gap:8px}}@media (prefers-reduced-motion:reduce){.ink-signature-hint,.ink-signature-action{transition:none}}
