/* Deck safes v1 — test-room only */
.sf-b{position:absolute;right:6px;top:6px;z-index:9;width:30px;height:30px;border-radius:50%;border:1.5px solid #111;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 1px 0 #111}
.sf-b svg{width:15px;height:15px}
.sf-b.has{background:#F8CC0C}
.sf-d{position:fixed;inset:auto 0 0 0;z-index:2147483600;max-height:78vh;overflow:auto;background:#fffdf6;color:#111;border-top:3px solid #111;box-shadow:0 -10px 30px rgba(0,0,0,.35);padding:16px 18px 28px;font:400 15px/1.45 "JetBrains Mono",ui-monospace,Menlo,monospace;transform:translateY(105%);transition:transform .3s}
.sf-d.open{transform:none}
@media (min-width:900px){.sf-d{inset:0 0 0 auto;width:520px;max-height:none;border-top:0;border-left:3px solid #111}}
.sf-h{display:flex;align-items:center;gap:10px;margin:0 0 12px;font:700 13px/1 inherit;letter-spacing:.12em;text-transform:uppercase}
.sf-h i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.45)}
.sf-x{margin-left:auto;font:700 13px/1 inherit;border:1.5px solid #111;background:#fff;padding:8px 12px;cursor:pointer}
.sf-n{border:1.5px solid #111;background:#fff;padding:12px 14px;margin:0 0 12px}
.sf-n h3{margin:0 0 6px;font:700 15px/1.3 inherit}.sf-n time{font-size:11px;color:#777}
.sf-n ul{margin:6px 0 0;padding-left:18px}.sf-e{color:#777}
/* unlocking a safe puts that deck in its test version (JF 2:02 PM, tentative) */
#cards .card.sf-test{z-index:30}
#cards .card.sf-test .face{outline:3px dashed #F8CC0C;outline-offset:3px}
#cards .card.sf-test::after{content:"TEST";position:absolute;left:6px;bottom:44px;z-index:9;background:#000;color:#F8CC0C;border:1px solid #F8CC0C;font:700 9px/1 Arial,sans-serif;letter-spacing:.12em;padding:3px 5px;pointer-events:none}
.sf-b{right:6px;top:6px}
/* Safe code entry, DECKs look (JF 2:09 PM: no PP styling) */
.sf-k{position:fixed;inset:0;z-index:2147483610;display:none;align-items:center;justify-content:center;background:rgba(255,255,255,.72)}
.sf-k.open{display:flex}
.sf-kf{position:relative;background:#fff;color:#111;border:1.5px solid #111;padding:30px 18px 18px;width:min(86vw,340px);display:flex;flex-direction:column;gap:14px;
 font:400 13px/1 "JetBrains Mono",ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;
 box-shadow:3px -3px 0 -1px #fff,3px -3px 0 0 #111,6px -6px 0 -1px #fff,6px -6px 0 0 #111}
.sf-kf::before{content:"";position:absolute;left:12px;top:11px;width:120px;height:8px;
 background:radial-gradient(circle,#fb9d45 3.5px,transparent 4px) 0 0/10px 8px no-repeat,radial-gradient(circle,#efe143 3.5px,transparent 4px) 10px 0/10px 8px no-repeat,radial-gradient(circle,#9cdeda 3.5px,transparent 4px) 20px 0/10px 8px no-repeat,radial-gradient(circle,#bab6b5 3.5px,transparent 4px) 30px 0/10px 8px no-repeat,radial-gradient(circle,#D24FCE 3.5px,transparent 4px) 40px 0/10px 8px no-repeat,radial-gradient(circle,#7e70ae 3.5px,transparent 4px) 50px 0/10px 8px no-repeat,radial-gradient(circle,#ea5346 3.5px,transparent 4px) 60px 0/10px 8px no-repeat,radial-gradient(circle,#55A01C 3.5px,transparent 4px) 70px 0/10px 8px no-repeat,radial-gradient(circle,#2f5fd0 3.5px,transparent 4px) 80px 0/10px 8px no-repeat,radial-gradient(circle,#f3c8b7 3.5px,transparent 4px) 90px 0/10px 8px no-repeat,radial-gradient(circle,#e8dab7 3.5px,transparent 4px) 100px 0/10px 8px no-repeat,radial-gradient(circle,#d9f562 3.5px,transparent 4px) 110px 0/10px 8px no-repeat}
.sf-kt{margin:0;font-weight:700;font-size:14px}
.sf-ki-old{font:700 20px/1 "JetBrains Mono",ui-monospace,Menlo,monospace;letter-spacing:.3em;text-align:center;background:#fff;color:#111;border:1.5px solid #111;border-radius:0;padding:12px;outline:none}
.sf-ki-old:focus{box-shadow:0 0 0 3px #e8e5de}
.sf-kb{display:flex;gap:10px}.sf-kb button{flex:1;font:inherit;letter-spacing:inherit;padding:12px;background:#fff;color:#111;border:1.5px solid #111;border-radius:0;cursor:pointer}
.sf-ke{background:#111!important;color:#fff!important}
.sf-kf.busy{opacity:.6;pointer-events:none}
.sf-kf.no{animation:sfno .4s}
@keyframes sfno{20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.sf-kt{display:flex;align-items:center;justify-content:space-between}
.sf-kc{font:400 22px/1 inherit;border:0;background:none;color:#111;cursor:pointer;padding:0 4px}
.sf-kd{margin:0;height:44px;border:1.5px solid #111;display:flex;align-items:center;justify-content:center;font:400 16px/1 inherit;letter-spacing:.35em}
.sf-kp{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sf-kp button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:58px;background:#fff;color:#111;border:1.5px solid #111;border-radius:0;cursor:pointer;font:inherit;padding:0}
.sf-kp button b{font:700 20px/1 "JetBrains Mono",ui-monospace,Menlo,monospace;letter-spacing:0}
.sf-kp button small{font:400 9px/1 "JetBrains Mono",ui-monospace,Menlo,monospace;letter-spacing:.14em;min-height:9px}
.sf-kp button:active{background:#e8e5de}
.sf-kp .sf-ke{background:#fff!important}.sf-ke img{height:36px;width:auto;display:block}
.sf-kb{display:none}
/* Safe type v3 (JF 2:14 PM): site type system only. Space Mono 700 caps for labels/menu, Space Mono 400 for meta & body, short scale 24/14/12/11/10, leading tied to size. No new fonts. */
.sf-kf,.sf-d{font-family:"Space Mono",ui-monospace,monospace!important}
.sf-kt{font:700 11px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em!important;text-transform:uppercase}
.sf-kc{font:400 24px/1 "Space Mono",ui-monospace,monospace!important}
.sf-kd{font:400 14px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.3em!important}
.sf-kp button b{font:700 24px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:0!important}
.sf-kp button small{font:400 10px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em!important;text-transform:uppercase}
.sf-h{font:700 11px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em!important}
.sf-x{font:700 11px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em!important}
.sf-n{font:400 14px/20px "Space Mono",ui-monospace,monospace!important}
.sf-n h3{font:700 14px/20px "Space Mono",ui-monospace,monospace!important;text-transform:none}
.sf-n time{font:400 10px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em;color:#777}
.sf-e{font:400 12px/1.4 "Space Mono",ui-monospace,monospace!important}
/* menu item = the hang-tag # only (JF 2:16 PM) */
.dd-i.sf-i{display:flex!important;align-items:center;justify-content:center}
.dd-i.sf-i .sf-hash{height:1.6em;width:auto;display:block}
.sf-kt .sf-hash{height:20px;width:auto;display:block}
/* PASS# (JF 2:19 PM): PASS in the label type, bold hang-tag # set to cap height */
.sf-pass{display:inline-flex;align-items:center;gap:.08em;font:inherit;letter-spacing:inherit}
.sf-pass .sf-hash{height:.95em!important;width:auto;display:inline-block;margin-left:.05em}
.sf-kt .sf-pass .sf-hash{height:.95em!important}

.sf-f{margin:12px 0}.sf-f img{display:block;width:100%;height:auto;border:1px solid #ddd}.sf-f figcaption{font:400 11px/1.4 'Space Mono',monospace;margin-top:4px}.sf-t summary{font:700 11px/1.4 'Space Mono',monospace;letter-spacing:.08em;cursor:pointer;margin:8px 0}.sf-t pre{white-space:pre-wrap;font:400 11px/1.45 'Space Mono',monospace;max-height:60vh;overflow:auto}

.sf-ke{font:inherit;font-weight:700;letter-spacing:.08em;font-size:15px}

.sf-ab{display:flex;gap:10px;align-items:stretch}
.sf-abc{font:700 14px/1 "Space Mono",ui-monospace,monospace;letter-spacing:.12em;padding:12px 16px;background:#fff;color:#111;border:1.5px solid #111;border-radius:0;cursor:pointer}
.sf-ti{display:none;flex:1;min-width:0;font:400 16px/1 "Space Mono",ui-monospace,monospace;padding:10px;border:1.5px solid #111;border-radius:0;background:#fff;color:#111;-webkit-appearance:none}
.sf-k.txt .sf-ti{display:block}

/* ENTER label visible (JF 11:57 PM 10-29): white bold on black */
.sf-k .sf-kp button.sf-ke{background:#111!important;color:#fff!important;border-color:#111!important;font:700 15px/1 "Space Mono",ui-monospace,monospace!important;letter-spacing:.08em!important;text-indent:0!important}
.sf-k .sf-kp button.sf-ke:active{background:#333!important}

/* FRONT STAGE switch inside the Backstage panel (JF 12:47 AM 10-30) */
.sf-d .sf-fs{display:block;width:100%;margin:0 0 16px;padding:14px;background:#111;color:#fff;border:1.5px solid #111;border-radius:0;font:700 18px/1 "Space Mono",ui-monospace,monospace;letter-spacing:.1em;cursor:pointer}
