.haven-capture{overflow:hidden;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease}
.haven-capture>span{display:block;transition:transform .25s ease}
.haven-capture:active{transform:scale(.9)}
.haven-capture[aria-expanded="true"]>span{transform:rotate(45deg)}
.haven-capture:focus-visible{outline:3px solid var(--sage-dark);outline-offset:4px}
.capture-dialog[open]{animation:capture-arrive .24s cubic-bezier(.2,.8,.2,1)}
.capture-dialog::backdrop{background:#12251b55;backdrop-filter:blur(6px)}
.capture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 8px}
.capture-choice{border:1px solid var(--glass-edge);background:var(--glass);color:var(--ink);border-radius:20px;padding:18px;text-align:left;display:grid;gap:8px;transition:transform .18s ease,background .18s ease;cursor:pointer;min-width:0;font:inherit}
.capture-choice>span{color:var(--sage-dark);font-size:25px}
.capture-choice strong{font-size:14px}
.capture-choice small{font-size:11px;line-height:1.5;color:var(--muted)}
.capture-choice:active{transform:scale(.95)}
.capture-choice:disabled{opacity:.45;cursor:default}
@keyframes capture-arrive{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.haven-capture,.haven-capture>span,.capture-choice{transition:none}.capture-dialog[open]{animation:none}.haven-capture:active,.capture-choice:active{transform:none}}
