.editor-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 1.6rem;
    background: linear-gradient(145deg, rgba(29,24,54,.92), rgba(18,16,34,.94));
    box-shadow: 0 30px 80px rgba(0,0,0,.38), inset 0 1px rgba(255,255,255,.045);
    transform-style: preserve-3d;
    backdrop-filter: blur(24px);
}

.editor-card::before {
    position: absolute;
    top: -8rem;
    right: -7rem;
    width: 16rem;
    height: 16rem;
    border-radius: 50%;
    background: rgba(139,105,255,.11);
    content: "";
    filter: blur(15px);
    pointer-events: none;
}

.editor-page {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    min-height: min(610px, calc(100svh - 8.5rem));
    padding: 1.35rem;
}

.editor-page[hidden] { display: none; }

.toast {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: .8rem;
    padding: .8rem .9rem;
    border: 1px solid;
    border-radius: .95rem;
    font-size: .76rem;
    line-height: 1.45;
    animation: toast-in 420ms cubic-bezier(.22,1,.36,1) both;
}
.toast svg { flex: 0 0 auto; width: 1.1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.toast--success { color: #b6f4e1; border-color: rgba(110,231,194,.18); background: rgba(110,231,194,.07); }
.toast--error { color: #ffb1bd; border-color: rgba(255,116,137,.2); background: rgba(255,116,137,.07); }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } }

/* Scanner */
.scan-page .page-copy { margin-bottom: 1rem; }
.scanner-frame {
    position: relative;
    width: min(100%, 21rem);
    aspect-ratio: 1;
    margin: .1rem auto 0;
    overflow: hidden;
    border: 1px solid rgba(180,157,255,.18);
    border-radius: 1.2rem;
    background: rgba(5,4,14,.45);
    box-shadow: inset 0 1px 12px rgba(0,0,0,.25);
}
.scanner-corners { position: absolute; z-index: 5; inset: .9rem; opacity: .38; pointer-events: none; transition: opacity 220ms ease; }
.scanner-frame.is-active .scanner-corners { opacity: 1; }
.scanner-corners i { position: absolute; width: 1.7rem; height: 1.7rem; border-color: #b9a6ff; filter: drop-shadow(0 0 8px rgba(155,124,255,.45)); }
.scanner-corners i:nth-child(1) { top: 0; left: 0; border-top: 2px solid; border-left: 2px solid; border-radius: .45rem 0 0; }
.scanner-corners i:nth-child(2) { top: 0; right: 0; border-top: 2px solid; border-right: 2px solid; border-radius: 0 .45rem 0 0; }
.scanner-corners i:nth-child(3) { right: 0; bottom: 0; border-right: 2px solid; border-bottom: 2px solid; border-radius: 0 0 .45rem; }
.scanner-corners i:nth-child(4) { bottom: 0; left: 0; border-bottom: 2px solid; border-left: 2px solid; border-radius: 0 0 0 .45rem; }
#qr-reader { display: none; width: 100%; height: 100%; overflow: hidden; border: 0 !important; }
.scanner-frame.is-active #qr-reader { display: block; }
#qr-reader video { display: block; width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 1.15rem; }
#qr-reader canvas { max-width: 100% !important; border-radius: 1.15rem; }

.scanner-start {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 1.35rem;
    text-align: center;
}
.scanner-start[hidden] { display: none; }
.scanner-start > strong { color: #e7e1f3; font-size: .88rem; }
.scanner-start > span { max-width: 14rem; margin-top: .25rem; color: #7f788e; font-size: .68rem; line-height: 1.4; }
.scanner-start__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: min(100%, 12rem);
    min-height: 2.8rem;
    margin-top: .9rem;
    padding: .65rem .85rem;
    color: #17102d;
    border: 0;
    border-radius: .8rem;
    background: linear-gradient(105deg,#bcaaff,#a889ff 55%,#e487b5 130%);
    box-shadow: 0 8px 22px rgba(126,88,255,.22);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 800;
}
.scanner-start__button svg { width: 1.05rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.scanner-start__button:disabled { cursor: wait; opacity: .65; }
.scanner-fallback {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: .75rem;
    padding: .35rem;
    color: #928aa2;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: .66rem;
    font-weight: 600;
}
.scanner-fallback:hover { color: #c3b9d5; }
.scanner-fallback svg { width: .9rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

.scanner-manual {
    position: relative;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 1.35rem;
    text-align: center;
}
.scanner-manual[hidden] { display: none; }
.scanner-manual__icon {
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    margin-bottom: .7rem;
    color: #c4b4ff;
    border: 1px solid rgba(184,164,255,.15);
    border-radius: .85rem;
    background: rgba(155,124,255,.08);
}
.scanner-manual__icon svg { width: 1.3rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.scanner-manual > strong { color: #e7e1f3; font-size: .88rem; }
.scanner-manual > span:not(.scanner-manual__icon) { max-width: 15rem; margin-top: .25rem; color: #7f788e; font-size: .68rem; line-height: 1.4; }
.scanner-manual__form { width: min(100%, 15rem); margin-top: .9rem; }
.scanner-manual__field {
    display: grid;
    grid-template-columns: minmax(0,1fr) 2.65rem;
    overflow: hidden;
    border: 1px solid rgba(184,164,255,.18);
    border-radius: .8rem;
    background: rgba(255,255,255,.045);
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
.scanner-manual__field:focus-within { border-color: rgba(184,164,255,.52); box-shadow: 0 0 0 3px rgba(155,124,255,.1); }
.scanner-manual__field input {
    min-width: 0;
    height: 2.65rem;
    padding: 0 .8rem;
    color: #f2edfb;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: .78rem;
}
.scanner-manual__field input::placeholder { color: #716a7e; }
.scanner-manual__field button {
    display: grid;
    place-items: center;
    color: #19122c;
    border: 0;
    background: linear-gradient(135deg,#bcaaff,#a889ff);
    cursor: pointer;
}
.scanner-manual__field button svg { width: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.scanner-manual__error { display: block; min-height: 1rem; margin-top: .3rem; color: #ff9baa; font-size: .62rem; }
.scanner-manual__back {
    padding: .3rem;
    color: #8f889e;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: .63rem;
    font-weight: 700;
}
.scanner-manual__back:hover { color: #c3b9d5; }
.scanner-frame.is-manual .scanner-corners { opacity: .22; }
.scanner-frame.is-starting .scanner-start__button svg { animation: scanner-pulse 900ms ease-in-out infinite alternate; }
@keyframes scanner-pulse { to { opacity: .35; transform: scale(.85); } }
.scan-status { margin: .7rem 0; color: #777184; font-size: .69rem; text-align: center; }
.scan-status--error { color: #ff9baa; }

.editor-note {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-top: auto;
    padding: .8rem;
    color: #9891a6;
    border: 1px solid rgba(110,231,194,.1);
    border-radius: .9rem;
    background: rgba(110,231,194,.04);
    font-size: .72rem;
    line-height: 1.45;
}
.editor-note svg { flex: 0 0 auto; width: 1.15rem; fill: none; stroke: var(--mint); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.editor-note--compact { margin-top: 1rem; }

.unlock-page { justify-content: center; }
.unlock-mark {
    display: grid;
    place-items: center;
    width: 5.5rem;
    height: 5.5rem;
    margin: 0 auto 1.5rem;
    color: #ff9baa;
    border: 1px solid rgba(255,116,137,.15);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,116,137,.13), rgba(255,116,137,.025) 65%);
}
.login-divider { display: flex; align-items: center; gap: .65rem; margin: .8rem 0; color: #696273; font-size: .65rem; text-transform: uppercase; }
.login-divider::before,.login-divider::after { flex: 1; height: 1px; background: rgba(255,255,255,.07); content: ""; }
.passkey-login-button {
    display: grid;
    grid-template-columns: 1.2rem minmax(0,1fr) 1.2rem;
    align-items: center;
    justify-items: center;
    gap: .65rem;
    width: 100%;
    min-height: 3.35rem;
    padding: .75rem 1rem;
    color: #dcd4f3;
    border: 1px solid rgba(184,164,255,.2);
    border-radius: .9rem;
    background: linear-gradient(110deg,rgba(155,124,255,.1),rgba(110,231,194,.035));
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}
.passkey-login-button:hover { border-color: rgba(184,164,255,.38); background: linear-gradient(110deg,rgba(155,124,255,.15),rgba(110,231,194,.06)); transform: translateY(-2px); }
.passkey-login-button:disabled { cursor: default; opacity: .58; transform: none; }
.passkey-login-button svg { width: 1.15rem; fill: none; stroke: #c6b5ff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.65; }
.passkey-login-button i { display: none; width: 1rem; height: 1rem; border: 2px solid rgba(196,180,255,.28); border-top-color: #c4b4ff; border-radius: 50%; animation: spin 700ms linear infinite; }
.passkey-login-button.is-loading svg,.passkey-login-button.is-loading span { visibility: hidden; }
.passkey-login-button.is-loading i { display: block; }
.passkey-login-status { min-height: 1rem; margin: .35rem 0 0; color: #7f788e; font-size: .65rem; line-height: 1.4; text-align: center; }
.passkey-login-status--error { color: #ff9baa; }
.unlock-mark svg { width: 2rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.action-form { display: flex; flex: 1; flex-direction: column; }
.unlock-page .action-form { flex: 0 0 auto; }

/* Dashboard */
.dashboard-hero {
    position: relative;
    width: 8rem;
    height: 7.3rem;
    margin: -.2rem auto .8rem;
}
.dashboard-hero__tag {
    position: absolute;
    top: -.6rem;
    left: .75rem;
    width: 6.25rem;
    height: 7.4rem;
    filter: drop-shadow(0 18px 18px rgba(0,0,0,.3));
    transform: rotate(4deg);
}
.dashboard-hero__tag img { width: 100%; height: 100%; object-fit: contain; }
.dashboard-qr {
    position: absolute;
    top: 2.4rem;
    left: 1.9rem;
    display: grid;
    grid-template-columns: repeat(3,.53rem);
    grid-auto-rows: .53rem;
    gap: .15rem;
    padding: .35rem;
    border-radius: .48rem;
    background: rgba(255,255,255,.95);
}
.dashboard-qr i { border-radius: .1rem; background: #28184f; }
.dashboard-qr i:nth-child(even) { transform: scale(.45); }
.dashboard-qr i:nth-child(5) { border-radius: 50%; }
.connected-badge {
    position: absolute;
    right: -.9rem;
    bottom: .6rem;
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    padding: .42rem .58rem;
    color: #c7f6e8;
    border: 1px solid rgba(110,231,194,.15);
    border-radius: 99px;
    background: rgba(18,16,34,.88);
    box-shadow: 0 8px 20px rgba(0,0,0,.25);
    font-size: .58rem;
    font-weight: 700;
}
.connected-badge i { width: .4rem; height: .4rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 10px rgba(110,231,194,.7); }

.dashboard-page .page-copy { margin-bottom: 1rem; }
.dashboard-page h1 { font-size: clamp(1.65rem,7vw,2.25rem); }
.destination-card {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: .75rem;
    padding: .8rem;
    border: 1px solid rgba(184,164,255,.14);
    border-radius: .95rem;
    background: rgba(153,118,255,.055);
    text-decoration: none;
    transition: border-color 180ms ease, transform 180ms ease;
}
.destination-card:hover { border-color: rgba(184,164,255,.3); transform: translateY(-2px); }
.destination-card__icon {
    display: grid;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    color: #c4b4ff;
    border-radius: .75rem;
    background: rgba(174,145,255,.11);
}
.destination-card__icon svg { width: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.destination-card small,.destination-card strong { display: block; }
.destination-card small { margin-bottom: .14rem; color: #827b91; font-size: .61rem; }
.destination-card strong { overflow: hidden; color: #ded8ed; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.destination-card > .arrow-icon { width: 1rem; fill: none; stroke: #958ca6; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }

.control-grid { display: grid; gap: .55rem; margin-top: .75rem; }
.control-button {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 4rem;
    padding: .75rem .8rem;
    color: #ddd7e9;
    border: 1px solid rgba(255,255,255,.075);
    border-radius: .95rem;
    background: rgba(255,255,255,.025);
    cursor: pointer;
    text-align: left;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}
.control-button:hover { border-color: rgba(184,164,255,.24); background: rgba(255,255,255,.045); transform: translateY(-2px); }
.control-button--danger:hover { border-color: rgba(255,116,137,.24); background: rgba(255,116,137,.045); }
.control-button__icon {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .72rem;
}
.control-button__icon svg { width: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.control-button__icon--link { color: #c4b4ff; background: rgba(155,124,255,.11); }
.control-button__icon--password { color: #7ceaca; background: rgba(110,231,194,.09); }
.control-button__icon--passkey { color: #e1b2ff; background: rgba(205,137,255,.09); }
.control-button__icon--reset { color: #ff9baa; background: rgba(255,116,137,.09); }
.control-button strong,.control-button small { display: block; }
.control-button strong { margin-bottom: .15rem; font-size: .83rem; }
.control-button small { color: #827b91; font-size: .65rem; }
.control-button > .arrow-icon { width: 1rem; fill: none; stroke: #8c849b; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }

.dashboard-logout { margin: .75rem 0 0; text-align: center; }
.dashboard-logout button {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .5rem .7rem;
    color: #8f889e;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    transition: color 180ms ease;
}
.dashboard-logout button:hover { color: #d8d1e6; }
.dashboard-logout svg { width: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

/* Action pages */
.field--spaced { margin-top: 1rem; }
.editor-preview { margin-top: .8rem; }
.editor-page > .action-form > .button-row { margin-top: auto; }

.passkey-manage-page .passkey-mark { width: 6.8rem; height: 6.8rem; margin-bottom: 1.1rem; }
.passkey-state {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: .7rem;
    margin-top: .2rem;
    padding: .85rem .9rem;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: .95rem;
    background: rgba(255,255,255,.025);
}
.passkey-state > span { width: .55rem; height: .55rem; border-radius: 50%; background: #81798e; box-shadow: 0 0 0 4px rgba(129,121,142,.08); }
.passkey-state--linked > span { background: var(--mint); box-shadow: 0 0 0 4px rgba(110,231,194,.09), 0 0 12px rgba(110,231,194,.35); }
.passkey-state strong,.passkey-state small { display: block; }
.passkey-state strong { color: #ded8ed; font-size: .78rem; }
.passkey-state small { margin-top: .18rem; color: #817a90; font-size: .65rem; line-height: 1.4; }
.passkey-manage-status { min-height: 1.05rem; margin: .65rem 0 0; color: #817a90; font-size: .67rem; line-height: 1.4; text-align: center; }
.passkey-manage-status--error { color: #ff9baa; }
.passkey-manage-status--success { color: #7ceaca; font-weight: 700; }
.passkey-manage-actions { display: grid; gap: .55rem; margin-top: .2rem; }
.passkey-manage-actions form { margin: 0; }
.passkey-manage-button { position: relative; }
.passkey-manage-button svg { width: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.passkey-manage-button i { display: none; width: 1rem; height: 1rem; border: 2px solid rgba(21,15,46,.3); border-top-color: #150f2e; border-radius: 50%; animation: spin 700ms linear infinite; }
.passkey-manage-button.is-loading svg,.passkey-manage-button.is-loading span { display: none; }
.passkey-manage-button.is-loading i { display: block; }
.passkey-manage-button:disabled { cursor: wait; opacity: .7; transform: none; }
.passkey-remove-button {
    width: 100%;
    min-height: 2.8rem;
    padding: .65rem .85rem;
    color: #b7919a;
    border: 1px solid rgba(255,116,137,.12);
    border-radius: .85rem;
    background: rgba(255,116,137,.035);
    cursor: pointer;
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}
.passkey-remove-button:hover,.passkey-remove-button.is-confirming { color: #ffdce2; border-color: rgba(255,116,137,.32); background: rgba(255,116,137,.1); }
.passkey-manage-page > .button-row { justify-content: flex-start; padding-top: .7rem; }

.danger-mark {
    display: grid;
    place-items: center;
    width: 6.2rem;
    height: 6.2rem;
    margin: .6rem auto 1.2rem;
    color: #ff9baa;
    border: 1px solid rgba(255,116,137,.16);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,116,137,.14), rgba(255,116,137,.025) 65%);
}
.danger-mark svg { width: 2.35rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.eyebrow--danger { color: #ff9baa; }
.reset-summary { display: grid; gap: .65rem; padding: .9rem; border: 1px solid rgba(255,255,255,.07); border-radius: .95rem; background: rgba(255,255,255,.022); }
.reset-summary div { display: flex; align-items: center; gap: .65rem; color: #aaa3b6; font-size: .73rem; }
.reset-summary svg { flex: 0 0 auto; width: 1rem; fill: none; stroke: var(--mint); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.reset-form { margin-top: 1rem; }
.confirm-check { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .65rem; cursor: pointer; }
.confirm-check input { position: absolute; opacity: 0; pointer-events: none; }
.confirm-check > span {
    display: grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    color: transparent;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: .38rem;
    background: rgba(255,255,255,.035);
    transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}
.confirm-check svg { width: .9rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; }
.confirm-check input:checked + span { color: #14271f; border-color: var(--mint); background: var(--mint); }
.confirm-check input:focus-visible + span { outline: 3px solid rgba(194,176,255,.7); outline-offset: 3px; }
.confirm-check em { color: #938c9f; font-size: .71rem; font-style: normal; line-height: 1.4; }
.danger-button {
    min-height: 3.45rem;
    padding: .8rem 1.05rem;
    color: #fff3f5;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 1rem;
    background: linear-gradient(105deg,#dc4963,#ff7489);
    box-shadow: 0 10px 28px rgba(220,73,99,.2);
    cursor: pointer;
    font-weight: 700;
    transition: opacity 180ms ease, transform 180ms ease;
}
.danger-button:hover:not(:disabled) { transform: translateY(-2px); }
.danger-button:disabled { cursor: not-allowed; opacity: .35; }

/* Whole-card navigation */
.editor-card.is-shuffling { pointer-events: none; transform-origin: 50% 68%; will-change: transform,opacity,box-shadow; }
.editor-card.card-shuffle-forward-out { animation: editor-card-forward-out 340ms cubic-bezier(.4,0,.5,1) both; }
.editor-card.card-shuffle-forward-in { animation: editor-card-forward-in 340ms cubic-bezier(.22,1,.36,1) both; }
.editor-card.card-shuffle-back-out { animation: editor-card-back-out 340ms cubic-bezier(.4,0,.5,1) both; }
.editor-card.card-shuffle-back-in { animation: editor-card-back-in 340ms cubic-bezier(.22,1,.36,1) both; }
@keyframes editor-card-forward-out {
    0% { opacity:1; transform:translate3d(0,0,0) rotateZ(0) scale(1); }
    45% { opacity:.96; box-shadow:0 25px 52px rgba(0,0,0,.36); transform:translate3d(4%,-.65rem,2.5rem) rotateZ(1.8deg) scale(.995); }
    100% { opacity:0; transform:translate3d(-19%,1.1rem,-7rem) rotateZ(-5deg) scale(.95); }
}
@keyframes editor-card-forward-in {
    0% { opacity:0; transform:translate3d(19%,-1rem,-7rem) rotateZ(5deg) scale(.95); }
    66% { opacity:1; box-shadow:0 25px 52px rgba(0,0,0,.36); transform:translate3d(-1.2%,.1rem,1rem) rotateZ(-.4deg) scale(1.008); }
    100% { opacity:1; transform:translate3d(0,0,0) rotateZ(0) scale(1); }
}
@keyframes editor-card-back-out {
    0% { opacity:1; transform:translate3d(0,0,0) rotateZ(0) scale(1); }
    45% { opacity:.96; box-shadow:0 25px 52px rgba(0,0,0,.36); transform:translate3d(-4%,-.65rem,2.5rem) rotateZ(-1.8deg) scale(.995); }
    100% { opacity:0; transform:translate3d(19%,1.1rem,-7rem) rotateZ(5deg) scale(.95); }
}
@keyframes editor-card-back-in {
    0% { opacity:0; transform:translate3d(-19%,-1rem,-7rem) rotateZ(-5deg) scale(.95); }
    66% { opacity:1; box-shadow:0 25px 52px rgba(0,0,0,.36); transform:translate3d(1.2%,.1rem,1rem) rotateZ(.4deg) scale(1.008); }
    100% { opacity:1; transform:translate3d(0,0,0) rotateZ(0) scale(1); }
}

@media (min-width:560px) {
    .editor-page { min-height: 610px; padding: 2rem 2.25rem; }
    .scan-page,.unlock-page { min-height: 650px; }
    .control-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-height:720px) and (max-width:559px) {
    .editor-page { min-height: calc(100svh - 6.8rem); }
    .dashboard-hero { height: 5.7rem; transform: scale(.82); transform-origin: top center; margin-bottom: -.6rem; }
    .control-button { min-height: 3.55rem; }
}
