.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#120f0c99;display:grid;place-items:center;padding:1rem;z-index:250;overscroll-behavior:contain;animation:modal-fade .2s ease both}.modal-card{display:flex;flex-direction:column;width:min(100%,640px);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);background:#fffdf9;border:1px solid var(--border);border-radius:2px;box-shadow:0 20px 45px #120f0c24;overflow:hidden;animation:modal-pop .25s ease both}.modal-card:focus{outline:none}.modal-card--lg{width:min(100%,760px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1rem 1rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h3{font-family:var(--heading-font-family);font-size:clamp(1.3rem,4vw,1.55rem);line-height:1.2;color:var(--primary-dark);margin:0;min-width:0;overflow-wrap:anywhere}.modal-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:0;border-radius:2px;background:transparent;cursor:pointer;color:var(--primary-medium);transition:background .2s ease,color .2s ease}@media (hover: hover){.modal-close:hover{background:var(--surface);color:var(--primary-dark)}}.modal-body{padding:1.5rem;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media (max-width: 640px){.modal-overlay{place-items:end stretch;padding:0;padding-top:calc(var(--safe-top) + 1.5rem)}.modal-card,.modal-card--lg{width:100%;max-height:100%;border:0;border-radius:14px 14px 0 0;animation-name:modal-sheet}.modal-header{padding:.6rem .5rem .6rem 1.25rem;position:relative}.modal-header:before{content:"";position:absolute;top:.4rem;left:50%;width:2.4rem;height:4px;margin-left:-1.2rem;border-radius:999px;background:var(--border)}.modal-body{padding:1.25rem 1.25rem calc(1.5rem + var(--safe-bottom))}}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}@keyframes modal-sheet{0%{transform:translateY(100%)}to{transform:none}}
