[hidden]{display:none!important}
.edge-button{display:inline-block;border:0;border-radius:4px;background:#111;color:#d9e5ed;padding:12px 16px;text-decoration:none;font:600 12px Montserrat,sans-serif;cursor:pointer}
.edge-button:hover{color:#e7c8f2}.edge-button:disabled{opacity:.5;cursor:wait}
#loginPanel,#collectionTools,#emptyCollection,#loadStatus{padding:14px 22px;font:13px/1.6 Montserrat,sans-serif}
#collectionTools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}#collectionTools details{font-size:11px;flex-basis:100%}
#signOut,#retrySave{background:transparent;border:1px solid #ddd;border-radius:4px;padding:10px;font:inherit}
#catalogueSearch{display:block;width:100%;padding:12px;border:1px solid #bbb;border-radius:4px;font:inherit;margin:12px 0}
.catalogue-result{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #eee;font-size:12px}.catalogue-result img{width:52px;height:65px;object-fit:contain}.catalogue-result span{flex:1}
/* Lightweight geometry remains when shelf children are unmounted. */
.wall.cabinet .row{height:calc(var(--clearance)*var(--cm,3px) + 16px + var(--surface) + 3px)}
.row:not(.effects-visible) .weather *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.weather *{animation:none!important}}

/* Swap previews never alter hit targets or the saved collection. */
.wall .piece.swap-displaced img,.wall .piece.swap-displaced .surface-light{visibility:hidden}
.swap-preview{position:fixed;z-index:19;pointer-events:none;object-fit:contain;object-position:center bottom;transform:translate(-50%,-100%);filter:drop-shadow(0 0 2px #d5f5ee99)}
.wall{overflow-anchor:none}.piece{user-select:none;-webkit-user-select:none}
.remove-piece,#undoRemoval{display:block;margin:16px 0;padding:12px;border:1px solid #bbb;border-radius:4px;background:transparent;font:inherit;cursor:pointer}
#undoRemoval{margin:12px 22px}#catalogueDrawer{width:min(100%,960px);max-height:90svh}
#catalogueResults{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}
.catalogue-result{display:flex;flex-direction:column;justify-content:flex-end;text-align:center;padding:16px 10px;border:0;border-bottom:8px solid #444b47;background:linear-gradient(#303734,#222827);color:#fff;content-visibility:auto;contain-intrinsic-size:auto 260px}
.catalogue-result img{width:100%;height:150px;object-fit:contain}.catalogue-result span{flex:0;min-height:34px}.catalogue-result small{font-size:10px}.catalogue-result .edge-button{width:100%}
#catalogueSort{margin:8px;padding:8px;font:inherit}#catalogueNote{font-size:11px;color:#626762}

#loadStatus{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:25;margin:0;padding:8px 14px;background:#fffef8;box-shadow:0 2px 12px #0002;border-radius:4px;pointer-events:none}
.wall .piece:focus,.wall .piece:focus-visible{outline:none;box-shadow:none}
.wall .piece:focus-visible img{filter:drop-shadow(0 0 2px #ccefff)}

.profile-link{font-size:12px;color:#35432e;text-decoration:none;padding:10px 14px;border:1px solid #d9dfd0;border-radius:6px}#storedCollection{margin:24px auto;padding:20px;max-width:950px;background:#f3f4ef;border-radius:10px}#storedCollection h2{font-size:17px}#storedCollection p{font-size:12px;color:#66705b}#storedPieces{display:flex;flex-wrap:wrap;gap:10px}#storedPieces button{font:inherit;font-size:12px;padding:12px;border:1px solid #d4d9cc;background:#fff;border-radius:6px;cursor:pointer}
/* Collector identity and compact navigation */
header.shelf-header{justify-content:space-between;height:78px;padding:12px 26px;overflow:visible}header.shelf-header>a{display:block;max-width:60%}header.shelf-header .edge-logo{display:block;margin:0;width:255px;max-width:100%;height:auto;filter:brightness(0)}.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;border:0;border-radius:8px;background:transparent;cursor:pointer}.menu-toggle span{display:block;width:23px;height:2px;background:#242a24}.shelf-navigation{position:absolute;right:20px;top:calc(100% + 6px);min-width:210px;padding:9px;background:#fff;border:1px solid #e0e3da;border-radius:10px;box-shadow:0 12px 35px #0002;z-index:50}.shelf-navigation a,.shelf-navigation button{display:block;width:100%;padding:13px;text-align:left;border:0!important;border-radius:5px;text-decoration:none;background:transparent;font:500 12px Montserrat,sans-serif;color:#30382c}.shelf-navigation a:hover,.shelf-navigation button:hover{background:#f2f4ed}#collectionTools.collector-summary{display:flex;flex-direction:column;gap:9px;align-items:center;padding:25px 20px 20px}.collector-avatar-link{display:block;text-decoration:none;border-radius:50%}.collector-avatar{display:grid;place-items:center;width:100px;height:100px;border-radius:50%;border:4px solid #fff;box-shadow:0 3px 18px #0001;overflow:hidden;font:500 36px Montserrat,sans-serif}.stone{background:#dfdfd3;color:#424739}.forest{background:#31594e;color:#fff}.ocean{background:#335976;color:#fff}.sunset{background:#b76c50;color:#fff}.plum{background:#71566c;color:#fff}.gold{background:#ddc884;color:#4e431e}.avatar-photo{width:100%;height:100%;object-fit:cover}.avatar-preset{width:72%;height:72%;object-fit:contain}.collector-name{font:500 19px Montserrat,sans-serif;letter-spacing:-.4px;color:#242d22;text-decoration:none}.collector-rank{font:600 11px Montserrat,sans-serif;background:#e9eddf;color:#424c35;border:1px solid #d7dfc9;border-radius:20px;padding:6px 13px}.collector-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:7px}.collector-badge{font:500 10px Montserrat,sans-serif;padding:6px 9px;border-radius:5px;background:#eee9d9}.collector-badge.official{background:#20362d;color:#fff}#collectionTools .collector-preferences{flex-basis:auto;font-size:10px;margin-top:6px;color:#777;max-width:420px}#collectionTools .collector-preferences label{display:block;margin-top:8px}.shelf-toolbar{display:flex;gap:10px;align-items:center;padding:0 22px;margin:15px 0 0;font:500 11px Montserrat,sans-serif;color:#68705e}.add-piece-plus{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;font:300 32px/1 system-ui;background:#263328;color:#fff;cursor:pointer;box-shadow:0 3px 10px #0001}.add-piece-plus:hover{background:#43513b}.menu-toggle:focus-visible,.add-piece-plus:focus-visible,.collector-avatar-link:focus-visible{outline:3px solid #a99b69;outline-offset:3px}@media(max-width:600px){header.shelf-header{height:66px;padding:10px 18px}header.shelf-header .edge-logo{width:210px}.collector-avatar{width:88px;height:88px}.shelf-toolbar{padding-inline:18px}#collectionTools.collector-summary{padding-top:21px;gap:8px}.collector-name{font-size:17px}}
