:root{--bg:#303234;--deep:#17191b;--gold:#c9974a;--gold-hi:#f4d49a;--cream:#e5dccf;--muted:#b8ad9d}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:#181a1c;color:var(--cream);font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}button,input{font:inherit}body{overflow:hidden}
.landing{position:relative;min-height:100svh;isolation:isolate;background:radial-gradient(circle at 50% 5%,#454749 0,#393b3d 31%,#2d2f31 66%,#1c1e20 100%);overflow:hidden}
.linen{position:absolute;inset:0;z-index:-6;opacity:.76;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px),radial-gradient(circle at 48% 18%,rgba(255,255,255,.055),transparent 48%);mix-blend-mode:soft-light}
.landing:after{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;box-shadow:inset 0 0 170px 35px rgba(0,0,0,.48)}
.skyline{position:absolute;left:0;right:0;bottom:0;height:45vh;z-index:-2;overflow:hidden;opacity:.68;filter:saturate(.78) contrast(1.04)}
.skyline img{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;filter:brightness(.78) blur(.55px);transform:scale(1.018)}
.skyline:before{content:"";position:absolute;z-index:2;inset:-1px 0 0;background:linear-gradient(to bottom,#343638 0%,rgba(52,54,56,.99) 10%,rgba(52,54,56,.92) 22%,rgba(52,54,56,.72) 36%,rgba(52,54,56,.38) 53%,rgba(52,54,56,.12) 68%,transparent 82%)}
.content{width:min(1100px,94vw);height:100svh;margin:auto;display:flex;flex-direction:column;align-items:center;padding:1.4vh 0 1.1vh;position:relative;z-index:2}
.brand{position:relative;width:clamp(205px,17.5vw,275px);height:clamp(220px,22vh,285px);display:grid;place-items:center;filter:drop-shadow(0 10px 12px rgba(0,0,0,.22));flex:0 0 auto}.logo-full{width:100%;height:100%;object-fit:contain;display:block}.logo-glint{position:absolute;inset:3% 7%;pointer-events:none;background:linear-gradient(108deg,transparent 39%,rgba(255,249,230,.9) 49%,rgba(255,221,151,.66) 52%,transparent 62%);transform:translateX(-165%);mix-blend-mode:screen;opacity:0;clip-path:inset(0)}
.logo-glint.run{animation:brandShimmer 2.65s cubic-bezier(.22,.61,.36,1) 1}@keyframes brandShimmer{0%{transform:translateX(-165%);opacity:0}17%{opacity:.16}48%{opacity:.42}78%{opacity:.18}100%{transform:translateX(165%);opacity:0}}
.welcome{text-align:center;margin-top:1.4vh;flex:0 0 auto}.welcome h1{margin:0;color:#dbad60;font-size:clamp(22px,2vw,31px);font-weight:400;letter-spacing:.095em;text-transform:uppercase;text-shadow:0 1px 0 #ffe7b3,0 3px 9px rgba(0,0,0,.64)}.welcome span{display:block;width:46px;height:2px;margin:16px auto 0;background:linear-gradient(90deg,#8d602d,#f3d18d,#8d602d);box-shadow:0 0 12px rgba(244,210,140,.42)}
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,2.3vw,36px);width:min(965px,90vw);margin-top:3.6vh;flex:0 0 auto}.portal-card{position:relative;height:clamp(220px,26vh,278px);border:1px solid rgba(211,161,78,.82);background:linear-gradient(145deg,rgba(54,56,57,.78),rgba(22,24,25,.94));display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gold-hi);overflow:hidden;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,238,204,.12),inset 0 -22px 46px rgba(0,0,0,.36),0 15px 30px rgba(0,0,0,.40);transition:transform .9s cubic-bezier(.2,.75,.2,1),box-shadow .9s,border-color .9s}.portal-card:hover,.portal-card:focus-visible{transform:translateY(-5px);border-color:#f2c872;box-shadow:inset 0 1px rgba(255,242,213,.2),0 24px 46px rgba(0,0,0,.5),0 0 24px rgba(214,164,76,.18)}
.portal-card::before,.portal-card::after{content:"";position:absolute;left:-34%;width:32%;height:3px;opacity:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(255,255,245,1) 0,rgba(255,224,155,.98) 18%,rgba(226,166,70,.72) 42%,transparent 72%);filter:blur(.15px);transform:translateX(0)}.portal-card::before{top:-1px}.portal-card::after{bottom:-1px}.portal-card.glow::before,.portal-card.glow::after{animation:edgeSweep 2.45s cubic-bezier(.2,.65,.22,1) 1}@keyframes edgeSweep{0%{left:-34%;opacity:0}10%{opacity:.9}48%{opacity:1}88%{opacity:.72}100%{left:102%;opacity:0}}
.frame-glint{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 35%,rgba(255,246,217,.17) 48%,rgba(255,224,158,.1) 53%,transparent 66%);transform:translateX(-130%)}.portal-card.glow .frame-glint{animation:cardWash 2.5s cubic-bezier(.2,.65,.22,1) 1}@keyframes cardWash{0%{transform:translateX(-130%);opacity:0}14%{opacity:.38}58%{opacity:.22}100%{transform:translateX(130%);opacity:0}}
.portal-icon{width:96px;height:96px;display:grid;place-items:center;margin-bottom:18px}.portal-icon svg{width:80px;height:80px;fill:none;stroke:#e7bb70;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 0 #fff0c8) drop-shadow(0 4px 1px #6b4519) drop-shadow(0 9px 8px rgba(0,0,0,.86));transition:filter .9s,transform .9s}.portal-card:hover .portal-icon svg,.portal-card:focus-visible .portal-icon svg{transform:translateY(-2px);filter:drop-shadow(0 1px 0 #fff4d6) drop-shadow(0 4px 1px #704719) drop-shadow(0 10px 10px rgba(0,0,0,.9)) drop-shadow(0 0 8px rgba(245,202,119,.25))}
.relief-text{color:#dfb76d;text-shadow:0 1px 0 #fff1cf,0 2px 0 #7d5526,0 5px 8px rgba(0,0,0,.72)}.portal-title{text-transform:uppercase;letter-spacing:.075em;font-size:clamp(16px,1.35vw,21px);font-weight:450}.portal-line{width:43px;height:2px;margin-top:27px;background:linear-gradient(90deg,#9c6c31,#f4d28c,#9c6c31);box-shadow:0 2px 0 #5d3b16,0 0 8px rgba(244,210,140,.28)}
.footer{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);text-transform:uppercase;letter-spacing:.22em;font-size:clamp(9px,.77vw,11px);color:#d9ad61;z-index:4;white-space:nowrap;text-shadow:0 1px 0 #ffe3a7,0 2px 0 #6d461d,0 4px 7px rgba(0,0,0,.72)}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;visibility:hidden}.modal.open{visibility:visible}.scrim{position:absolute;inset:0;border:0;background:rgba(8,9,10,.42);opacity:0;backdrop-filter:blur(0);transition:opacity .8s,backdrop-filter 1s}.modal.open .scrim{opacity:1;backdrop-filter:blur(12px)}.dialog{position:relative;width:min(430px,90vw);min-height:420px;border:1px solid rgba(219,169,84,.75);background:linear-gradient(145deg,rgba(53,55,56,.98),rgba(20,22,23,.99));box-shadow:0 28px 80px rgba(0,0,0,.72),inset 0 1px rgba(255,240,204,.1);opacity:0;transform:translateY(35px) scale(.975);transition:opacity .75s .1s,transform 1s cubic-bezier(.2,.75,.2,1)}.modal.open .dialog{opacity:1;transform:none}.dialog-logo-slot{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:72px;height:78px;opacity:0}.dialog-logo-slot img{width:100%;height:100%;object-fit:contain}.dialog-content{padding:120px 38px 34px;text-align:center;opacity:0;transform:translateY(12px);transition:opacity .6s .78s,transform .6s .78s}.modal.ready .dialog-content{opacity:1;transform:none}.dialog h2{margin:0;color:#d9aa58;text-transform:uppercase;letter-spacing:.18em;font-size:17px;font-weight:500}.dialog p{color:#d1c7b7;line-height:1.6;font-size:14px;margin:18px 0 22px}.field{display:flex;height:54px;border:1px solid rgba(210,160,79,.55)}.field input{flex:1;background:transparent;border:0;outline:none;color:#eee4d4;padding:0 15px}.field button{width:52px;border:0;background:transparent;color:#edc77d;cursor:pointer}.submit{width:100%;height:52px;margin-top:17px;border:0;background:linear-gradient(180deg,#efd18f,#a87531);color:#19140e;text-transform:uppercase;letter-spacing:.13em;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.45)}.status{height:20px;margin-top:12px;color:#e0af5b}.flying-logo{position:fixed;z-index:100;pointer-events:none;transform-origin:top left}.page-exit{animation:pageExit .82s forwards}@keyframes pageExit{to{filter:blur(15px);opacity:0;transform:scale(1.012)}}
@media(max-width:900px){.content{padding-top:1.2vh}.brand{width:222px;height:242px}.welcome{margin-top:1vh}.portal-grid{width:min(780px,92vw);gap:16px;margin-top:3.2vh}.portal-card{height:225px}.skyline{height:42vh}}
@media(max-width:620px){body{overflow:auto}.landing{min-height:100svh}.content{height:auto;min-height:100svh;padding:12px 0 15px}.brand{width:170px;height:195px}.welcome{margin-top:0}.welcome h1{font-size:18px}.portal-grid{grid-template-columns:1fr;width:min(340px,88vw);gap:12px;margin-top:18px;padding-bottom:24vh}.portal-card{height:135px;flex-direction:row;justify-content:flex-start;padding:0 27px}.portal-icon{width:61px;height:61px;margin:0 23px 0 0}.portal-icon svg{width:54px;height:54px}.portal-line{position:absolute;right:22px;width:28px;margin:0}.skyline{height:29vh;opacity:.66}.footer{bottom:9px;font-size:8px;letter-spacing:.14em}.dialog{min-height:395px}.dialog-content{padding-top:116px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
