/* TouraCraft CLEAN RESTORATION v3.10
   Gateway interaction correction: align recovered-art hotspots to the real visual cards
   and restore clear hover/focus feedback. No database/auth changes. */

.passport-gateway{position:fixed;inset:0;z-index:1000;background:#020b17;overflow:auto;color:#fff}
.passport-gateway-art{position:relative;width:100%;min-height:100vh;aspect-ratio:2048/1080;margin:auto;background:#020b17}
.passport-gateway-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;user-select:none;-webkit-user-drag:none}
.gateway-hotspot{position:absolute;border:2px solid transparent;background:transparent;cursor:pointer;border-radius:28px;color:transparent;padding:0;z-index:3;pointer-events:auto;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
.gateway-hotspot:focus-visible{outline:3px solid #f2cf71;outline-offset:4px}
.gateway-hotspot:hover{transform:translateY(-2px) scale(1.008)}
.gateway-back{left:1.1%;top:1.8%;width:13.8%;height:6.2%;border-radius:10px}
.gateway-back:hover{background:rgba(255,255,255,.035);box-shadow:0 0 22px rgba(255,255,255,.10)}
.gateway-passport{left:27.3%;top:45.5%;width:22.0%;height:36.9%}
.gateway-passport:hover,.gateway-passport:focus-visible{border-color:rgba(242,183,55,.78);background:rgba(242,183,55,.035);box-shadow:0 0 34px rgba(242,183,55,.22),inset 0 0 28px rgba(242,183,55,.035)}
.gateway-community{left:50.9%;top:45.5%;width:22.0%;height:36.9%}
.gateway-community:hover,.gateway-community:focus-visible{border-color:rgba(49,175,255,.82);background:rgba(49,175,255,.03);box-shadow:0 0 34px rgba(49,175,255,.22),inset 0 0 28px rgba(49,175,255,.035)}
.gateway-hotspot:active{transform:translateY(0) scale(.995)}
.gateway-mobile{display:none;padding:28px 20px 42px;min-height:100vh;background:radial-gradient(circle at 50% 0,#11395b 0,#061726 42%,#020b17 100%)}
.gateway-mobile .gateway-logo{display:block;width:190px;margin:48px auto 25px}
.gateway-mobile h1{text-align:center;font-size:18px;letter-spacing:.16em;color:#f2cf71;text-transform:uppercase;margin:0 0 10px}
.gateway-mobile p{text-align:center;color:#d8e6ef;line-height:1.55;max-width:430px;margin:0 auto 24px}
.gateway-mobile-grid{display:grid;gap:14px;max-width:520px;margin:auto}
.gateway-mobile-card{padding:24px;border-radius:22px;background:rgba(6,23,38,.92);border:1px solid rgba(255,255,255,.15);text-align:left;color:#fff}
.gateway-mobile-card.passport{border-color:rgba(242,207,113,.58)}
.gateway-mobile-card.community{border-color:rgba(63,174,255,.55)}
.gateway-mobile-card b{font-size:24px;display:block;margin-bottom:8px}.gateway-mobile-card span{color:#afc6d5;line-height:1.5}
.gateway-mobile-back{display:inline-block;color:#fff;text-decoration:none;font-weight:850;margin-bottom:10px}

.member-portal-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.member-card-quick{border-color:rgba(242,207,113,.5)!important;color:#f5dc99!important;background:rgba(214,170,80,.07)!important}

.member-card-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(0,7,15,.74);backdrop-filter:blur(9px)}
.member-card-modal.hidden{display:none!important}
.member-card-sheet{width:min(540px,100%);border-radius:28px;overflow:hidden;border:1px solid rgba(242,207,113,.55);box-shadow:0 30px 90px rgba(0,0,0,.55);background:#f8fafb;color:#0b2136}
.member-card-top{padding:24px 26px 20px;background:linear-gradient(145deg,#123d66,#0a2947);color:#fff;position:relative}
.member-card-kicker{text-transform:uppercase;letter-spacing:.18em;color:#f2cf71;font-size:10px;font-weight:950}
.member-card-title{font-size:31px;font-weight:950;margin-top:5px}.member-card-status{margin-top:8px;color:#c9f1de;font-weight:850;font-size:13px}
.member-card-x{position:absolute;right:17px;top:17px;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:22px;cursor:pointer}
.member-card-body{padding:26px}
.member-card-number{font-size:34px;font-weight:1000;letter-spacing:.09em;color:#0d2945}.member-card-name{font-size:21px;font-weight:900;margin-top:5px}
.member-card-instruction{margin-top:13px;color:#5a7183;line-height:1.55;font-size:13px}
.member-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.member-card-actions button{min-height:48px}
.member-stamp-toggle{background:#d6aa50!important;border-color:#d6aa50!important;color:#071523!important}
.member-card-close{background:#0b2136!important;color:#fff!important}
.member-stamp-box{margin-top:20px;padding-top:20px;border-top:1px solid #dce4e9;display:grid;gap:10px}.member-stamp-box.hidden{display:none!important}
.member-stamp-box .pass-label{font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;color:#a87922}
.member-stamp-box .passport-number-display{padding:12px 14px;border-radius:13px;background:#eef3f6;border:1px solid #d8e1e7;font-size:19px;font-weight:950;letter-spacing:.08em}
.member-stamp-box label{font-size:11px;font-weight:900;color:#435b6e;text-transform:uppercase;letter-spacing:.08em}
.member-stamp-box input{width:100%;padding:13px 14px;border:1px solid #cad7df;border-radius:12px;background:#fff;color:#0b2136;font:inherit;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.member-stamp-box .action{width:100%}.member-stamp-help{font-size:12px;color:#617789;line-height:1.5}
.member-claim-message{font-size:12px;line-height:1.5}.member-claim-success{color:#176b49}.member-claim-error{color:#a03737}

.community-modal{position:fixed;inset:0;z-index:1250;display:grid;place-items:center;padding:22px;background:rgba(0,7,15,.8);backdrop-filter:blur(10px)}
.community-modal.hidden{display:none!important}.community-sheet{width:min(880px,100%);max-height:min(760px,90vh);overflow:auto;border-radius:26px;border:1px solid rgba(69,174,255,.43);background:linear-gradient(155deg,#071a2b,#0c2b46);padding:26px;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.community-headline{display:flex;justify-content:space-between;gap:15px;align-items:start}.community-headline h2{font-size:34px;margin:5px 0 7px}.community-headline p{color:#a9c0cf;margin:0;line-height:1.55}.community-close{width:42px;height:42px;border-radius:50%;padding:0;flex:none}.community-count{margin:18px 0 12px;color:#f2cf71;font-weight:900}.community-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.community-card{padding:16px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.035)}.community-card b{display:block;font-size:16px}.community-card span{display:block;color:#a9c0cf;font-size:12px;margin-top:4px}.community-card p{font-size:12px;line-height:1.48;color:#d5e2ea;margin:10px 0 0}.community-avatar{width:58px;height:58px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#173a58;border:1px solid rgba(242,207,113,.45);color:#f2cf71;font-weight:950;margin-bottom:10px}.community-avatar img{width:100%;height:100%;object-fit:cover}

@media(max-width:760px){.passport-gateway-art{display:none}.gateway-mobile{display:block}.member-card-actions{grid-template-columns:1fr}.community-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.community-grid{grid-template-columns:1fr}.member-card-sheet{border-radius:20px}.member-card-number{font-size:28px}}

/* v3.27.6 stability sweep: preserve the restored gateway artwork without viewport cropping.
   The artwork and percentage hotspots share the same aspect-ratio canvas so controls remain aligned. */
@media(min-width:761px){
  .passport-gateway{display:grid;place-items:center;overflow:hidden;background:#020b17}
  .passport-gateway-art{
    width:min(100vw,calc(100vh * 1.8962962963));
    min-height:0;
    height:auto;
    aspect-ratio:2048/1080;
    margin:auto;
    overflow:hidden;
    background:#020b17;
  }
  .passport-gateway-art>img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center center;
  }
}
