:root{color-scheme:dark;--bg:#090f14;--panel:#111d26;--panel2:#172733;--bd:#33434e;--text:#e5e5df;--muted:#aab8c1;--orange:#dc914e;--red:#a43b33;--green:#589d7f;font-family:Inter,Segoe UI,Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 55% 0%,#26303a 0%,#0a1218 48%,#070b0e 100%);color:var(--text);min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.44;cursor:not-allowed}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:.04em}p{line-height:1.5}.appwrap{max-width:1500px;margin:auto;padding:0 20px}.top{min-height:82px;display:flex;align-items:center;gap:18px;border-bottom:1px solid #344550}.brand{display:flex;align-items:center;gap:10px;min-width:195px;font-weight:900;font-size:24px;letter-spacing:.16em}.brand img{height:51px;width:43px}.brand small{display:block;font-weight:500;font-size:9px;letter-spacing:.28em;color:#aab5bc;margin-top:4px}.topnav{display:flex;flex:1;justify-content:center;gap:3px}.topnav button{background:transparent;color:#bbc4c9;border:1px solid transparent;border-radius:6px;display:flex;gap:7px;align-items:center;padding:13px 9px;font-size:12px;font-weight:750;white-space:nowrap}.topnav button b{font-size:23px;color:#8e989d;font-weight:500}.topnav button.chosen,.topnav button:hover,.mobile-nav .chosen{border-color:#ad5b3a;background:linear-gradient(165deg,#56281f,#281c1b);color:#fff}.topnav .chosen b{color:#ffad6c}.topstate{text-align:right;display:grid;gap:5px;min-width:130px;font-size:11px;letter-spacing:.08em;color:#77c49f}.topstate strong{font-size:16px;color:#f2ebe6}.content{padding:24px 0 34px;min-height:75vh}.sectiontitle{display:flex;align-items:baseline;justify-content:space-between;gap:20px;font-size:24px;font-weight:850;margin:4px 0 18px;letter-spacing:.08em}.sectiontitle small{font-size:11px;color:var(--orange);letter-spacing:.14em}.panel{background:linear-gradient(155deg,#192a35,#0f1a23);border:1px solid var(--bd);border-radius:9px;padding:19px;margin-bottom:12px;box-shadow:0 10px 22px #0003}.panel>h3{font-size:13px;color:#f0f2ec;margin-bottom:17px}.panel p{color:#c5cdd0;font-size:14px;margin:8px 0 14px}.panel small,.note,.muted{color:#98abb7;font-size:12px}.panel .note{margin-top:15px;line-height:1.4}.two{display:grid;grid-template-columns:1fr 1fr;gap:13px}.main-layout{grid-template-columns:1.3fr .7fr}.hero-scene{min-height:650px;border:1px solid #715441;position:relative;overflow:hidden;border-radius:9px;background:#111e26;background-image:linear-gradient(to top,#05090def,#0001 50%,#0004),var(--art);background-size:cover;background-position:center}.scene-copy{position:absolute;left:32px;bottom:34px;right:20px;z-index:2}.scene-copy h1{font-size:clamp(36px,6vw,64px);margin:8px 0}.scene-copy small{color:#f1a66c;font-size:12px;font-weight:700}.scene-copy p{margin:0 0 23px;color:#ddd}.gamebtn{background:#172632;color:#dfe7e9;border:1px solid #536570;border-radius:5px;min-height:44px;padding:12px 16px;font-weight:800;font-size:12px;letter-spacing:.05em;transition:.15s}.gamebtn:hover{background:#304250}.gamebtn.red{background:linear-gradient(#aa4538,#651f1d);border-color:#d16644;color:#fff;box-shadow:inset 0 1px #ffffff2a}.gamebtn.red:hover{filter:brightness(1.18)}.gamebtn.green{border-color:#529473;color:#b0efc9;background:#15382c}.gamebtn.disabled{opacity:.5;pointer-events:none}.statrow{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px;font-size:11px;letter-spacing:.06em}.statrow span{color:#aebec8}.statrow b{font-size:15px}.bar{height:8px;background:#394650;border-radius:999px;overflow:hidden;margin-bottom:12px}.bar i{height:100%;display:block;border-radius:999px}.condition{padding:12px;border:1px solid #856346;background:#342923;border-radius:6px;color:#e9b17a;font-weight:800;font-size:12px}.condition small{display:block;font-weight:400;margin-top:5px}.hero-card{position:relative;min-height:590px;border:1px solid #62503c;border-radius:9px;overflow:hidden;background:linear-gradient(145deg,#28323a,#0d171c)}.hero-card>img{display:block;width:100%;height:590px;object-fit:cover;object-position:center top}.hero-caption{background:linear-gradient(to top,#060b0f 0%,#060b0fcc 70%,transparent);position:absolute;bottom:0;left:0;right:0;padding:38px 24px 23px}.hero-caption small{color:#e0a470;font-weight:800}.hero-caption h2{font-size:31px;margin:8px 0}.hero-caption p{color:#c3ccd1;font-size:12px;max-width:460px}.character-layout{display:grid;grid-template-columns:1.12fr 1.25fr .78fr;gap:13px}.gearslots{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gear{min-height:104px;display:flex;align-items:center;gap:10px;background:#1a2b37;border:1px solid #3d5664;border-radius:7px;padding:11px}.gear img{width:44px;height:50px;object-fit:contain;padding:5px;border:1px solid #314959;border-radius:6px}.gear span{display:grid;gap:6px;min-width:0}.gear small{font-size:10px;color:#a7b8c0}.gear b{font-size:12px;line-height:1.25}.exp-layout{display:grid;grid-template-columns: minmax(0,1.8fr) minmax(270px,.65fr);gap:13px}.exp-layout>aside{min-width:0}.combat-scene{height:660px;border:1px solid #8a443c;border-radius:10px;position:relative;overflow:hidden;background:#071016 url('../assets/cinematic/hospital_encounter.webp') center center/cover no-repeat;box-shadow:0 15px 50px #0007}.combat-scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,#050709fa,#0000 47%,#03050780 100%)}.combat-title,.enemyhp,.combat-bottom{position:absolute;z-index:1}.combat-title{left:24px;top:22px;text-shadow:0 2px 8px #000}.combat-title small{color:#e79a67;font-weight:850;letter-spacing:.16em}.combat-title h1{font-size:clamp(26px,5vw,58px);margin:12px 0}.combat-title p{font-size:13px}.enemyhp{top:20px;right:20px;width:190px;background:#071017ca;padding:15px;border:1px solid #965244;border-radius:6px;text-align:right}.enemyhp strong{font-size:14px}.enemyhp .bar{margin-top:10px;margin-bottom:0}.combat-bottom{bottom:15px;left:15px;right:15px;display:flex;align-items:end;justify-content:space-between;gap:14px}.player-combat{background:#0c1820ee;display:flex;align-items:center;gap:10px;border:1px solid #4b626f;border-radius:6px;padding:7px 14px 7px 7px;min-width:155px}.player-combat img{width:50px;height:62px;object-fit:cover;border:1px solid #9e6546}.player-combat span{display:grid;gap:8px;font-size:12px}.player-combat small{font-size:11px;color:#9cc8b3}.actiongroup{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.actiongroup .gamebtn{min-height:70px;max-width:160px}.roomscene{min-height:510px;background:radial-gradient(circle at 50% 75%,#543b361a,transparent 70%),#10191f;position:relative;border:1px solid #5b4d41;border-radius:9px;overflow:hidden}.roomscene:before{content:'';position:absolute;inset:0;background-image:var(--room);background-position:center;background-size:cover;opacity:.8}.roomscene:after{content:'';position:absolute;inset:0;background:linear-gradient(#07101788 0%,transparent 40%,#070e13ee)}.roomtop,.room-bottom{position:absolute;z-index:1;left:23px;right:22px}.roomtop{top:21px}.roomtop small{color:#dea378;font-weight:750}.roomtop h1{font-size:40px;margin-top:10px}.room-bottom{bottom:20px;color:#e6e4e0}.room-bottom p{font-size:14px;margin-top:8px}.room-bottom small{color:#ecae82}.buttons{display:flex;gap:9px;flex-wrap:wrap}.buttons>.gamebtn{flex:1 1 150px}.itemgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:9px}.itemtile{min-height:106px;background:#172832;border:1px solid #344c58;border-radius:6px;padding:9px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:6px;text-align:center}.itemtile img{width:46px;height:46px;object-fit:contain}.itemtile strong{font-size:11px}.itemtile b{font-size:12px;color:#e7a979}.smallgrid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.smallgrid .itemtile{min-height:83px}.smallgrid .itemtile img{width:31px;height:31px}.centered{text-align:center;max-width:850px;margin:auto;padding:24px}.centered h2{font-size:30px;margin:20px}.centered .gamebtn{margin:10px}.cinematic-thumb{height:280px;margin:18px auto;background:url('../assets/cinematic/hospital_encounter.webp') center/cover;border:1px solid #4b555d;border-radius:8px}.fact{background:#13242d;border:1px solid #334b57;padding:12px;margin:8px 0;border-radius:5px;font-size:12px;line-height:1.5}.fact b{color:#eaa46e}.storegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.product{min-height:280px}.product-icon{height:85px;background:radial-gradient(circle,#874436,#1a2630 60%);display:flex;align-items:center;justify-content:center;font-size:50px;color:#efac74;border:1px solid #574c42;margin-bottom:15px}.product>strong{display:block;color:#ffd08b;font-size:22px;margin:15px 0}.owned{color:#8ce2ac;font-size:12px;font-weight:800}.adminnav{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}.adminnav button{border:1px solid #566570;background:#1c303a;color:#e4e6e2;border-radius:4px;padding:11px 14px}.adminnav button.chosen{background:#923c2c;border-color:#c77543}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.metrics h2{font-size:26px;color:#f0a571;margin-top:8px}textarea,input,select{background:#0c161d;border:1px solid #506475;color:#eff5f6;padding:13px;border-radius:4px;width:100%;display:block;margin:12px 0}textarea{min-height:150px;max-width:100%}.alert{background:#512b29;border:1px solid #a95547;padding:12px 16px;border-radius:6px;margin:0 0 14px;color:#ffddd8}.fatal,.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;font-size:40px;letter-spacing:.16em}.fatal p{font-size:15px;letter-spacing:normal;color:#c1cfd5}.splash small{font-size:12px}.footer{display:flex;justify-content:space-between;padding:16px 0;border-top:1px solid #34434b;color:#71858f;font-size:10px;letter-spacing:.09em}.mobile-nav{display:none}
@media(max-width:1250px){.topstate{display:none}.topnav button{padding:9px 5px;font-size:11px}.character-layout{grid-template-columns:1fr 1.3fr}.character-layout>div:last-child{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-card{min-height:500px}.hero-card>img{height:560px}.exp-layout{grid-template-columns:minmax(0,1.4fr) minmax(230px,.7fr)}}
@media(max-width:800px){.appwrap{padding:0 12px}.top{min-height:66px}.brand{font-size:20px}.brand img{height:43px;width:35px}.topnav{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;bottom:0;left:0;right:0;background:#0b151df8;border-top:1px solid #42515d;z-index:50;padding:6px 3px calc(7px + env(safe-area-inset-bottom));gap:2px}.mobile-nav button{min-width:0;border:1px solid transparent;background:transparent;color:#acbcc4;border-radius:6px;height:54px;display:grid;place-content:center;gap:1px}.mobile-nav button b{font-size:20px}.mobile-nav small{font-size:9px;font-weight:700}.footer{padding-bottom:95px}.content{padding:18px 0 22px}.sectiontitle{font-size:17px;display:grid;gap:4px}.sectiontitle small{font-size:9px}.two,.main-layout,.character-layout,.exp-layout,.storegrid{grid-template-columns:1fr}.character-layout>div:last-child{display:block;grid-column:auto}.hero-card{min-height:400px}.hero-card>img{height:440px}.gearslots{grid-template-columns:1fr 1fr}.gear{min-height:82px;padding:7px}.gear img{width:34px;height:45px}.gear b{font-size:11px}.hero-scene{min-height:490px;background-position:center}.scene-copy{left:18px;bottom:22px}.scene-copy h1{font-size:34px}.exp-layout aside{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exp-layout aside .panel{margin-bottom:0}.combat-scene{height:560px;background-position:57% center}.combat-title{top:14px;left:14px}.combat-title h1{font-size:28px}.enemyhp{top:15px;right:13px;width:105px;padding:9px}.combat-bottom{left:9px;right:9px;bottom:9px;display:grid;gap:8px}.player-combat{justify-self:start}.actiongroup{justify-content:stretch;display:grid;grid-template-columns:repeat(2,1fr)}.actiongroup .gamebtn{min-height:47px;max-width:none;font-size:10px;padding:8px}.roomscene{min-height:410px}.roomtop h1{font-size:28px}.metrics{grid-template-columns:repeat(2,1fr)}.footer span{display:none}}
@media(max-width:430px){.exp-layout aside{grid-template-columns:1fr}.gearslots{grid-template-columns:1fr 1fr;gap:6px}.gear{gap:6px}.gear img{width:30px}.gear b{font-size:10px}.hero-card>img{height:370px}.hero-caption{padding:40px 14px 14px}.hero-caption h2{font-size:24px}.hero-caption p{font-size:11px}.combat-scene{height:520px}.combat-title small{font-size:9px}.combat-title h1{font-size:25px}.enemyhp{width:97px}.itemgrid{grid-template-columns:repeat(2,1fr)}}

.admin-access{display:none}@media(max-width:800px){.admin-access{display:block;margin-left:auto;background:#381f1c;border:1px solid #a24b37;border-radius:5px;color:#ffd4af;min-width:42px;min-height:40px}}

/* VIRNOKT v1.0.1: original illustrated shelter banner, separate desktop/mobile framing. */
.hero-scene{
  min-height:590px;
  background-color:#101820;
  background-image:linear-gradient(0deg,rgba(4,9,13,.28) 0%,transparent 46%),url('../assets/characters/survivor_shelter_wide.webp');
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
}
.hero-scene .scene-copy{left:clamp(20px,3.5%,42px);bottom:clamp(24px,5%,48px);right:36%;max-width:520px;text-shadow:0 2px 14px #000d}
.hero-scene .scene-copy h1{font-size:clamp(30px,3.8vw,53px);line-height:1.02;letter-spacing:.055em}
.hero-scene .scene-copy p{margin-bottom:20px}
@media(max-width:850px){
 .hero-scene{min-height:570px;background-image:linear-gradient(0deg,#03080c99,transparent 55%),url('../assets/characters/survivor_shelter_mobile.webp');background-position:center center;background-size:cover}
 .hero-scene .scene-copy{left:22px;bottom:24px;right:20px;max-width:none}
 .hero-scene .scene-copy h1{font-size:clamp(30px,8vw,45px)}
}
@media(min-width:851px) and (max-width:1100px){
 .hero-scene{min-height:560px}
 .hero-scene .scene-copy{right:29%}
}


/* VIRNOKT v1.1: base is an environment, not a character poster. */
.hero-scene{background:none}
.shelter-scene{min-height:430px;position:relative;border:1px solid #615040;border-radius:10px;overflow:hidden;background:#111d22 url('../assets/locations/shelter.webp') center/cover no-repeat;display:flex;align-items:end}
.shelter-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#071015f0,transparent 68%);pointer-events:none}
.shelter-copy{position:relative;z-index:1;padding:32px;max-width:670px;text-shadow:0 2px 8px #000b}
.shelter-copy small,.mission-card small{font-size:11px;color:#eda365;letter-spacing:.1em;font-weight:850}
.shelter-copy h1{font-size:clamp(28px,4vw,45px);margin:7px 0}
.shelter-copy p{font-size:13px;color:#d0dadb;max-width:590px;margin-bottom:18px}
.base-dashboard{display:grid;grid-template-columns:1.5fr .7fr;gap:12px;margin-top:13px}
.building-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.base-building{background:#14242d;border:1px solid #38505b;border-radius:7px;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:13px}
.base-building>div{display:grid;gap:7px}.base-building small{font-size:11px;color:#a9bac5}
.base-building b{font-size:15px}.base-building .gamebtn{flex:0 0 auto}
.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.mission-card{overflow:hidden;border:1px solid #51473e;background:#15252e;border-radius:9px;min-width:0}
.mission-photo{height:210px;background-size:cover;background-position:center}
.mission-body{padding:17px}.mission-body h2{font-size:21px;margin:9px 0}
.mission-body p{font-size:12px;color:#aebec6;margin:7px 0}.mission-body p b{color:#f1eee8}
.mission-goal{min-height:32px}.mission-card .gamebtn{width:100%;margin-top:12px}
.platform-row{display:flex;justify-content:space-between;gap:12px;margin:9px 0;padding:12px;background:#162832;border:1px solid #344956;border-radius:6px}.platform-row span{font-size:11px;color:#d3a16d;text-align:right}
.settings-access{display:none}
@media(max-width:1100px){.mission-grid{grid-template-columns:1fr 1fr}.base-dashboard{grid-template-columns:1fr}}
@media(max-width:800px){.shelter-scene{min-height:350px}.shelter-copy{padding:19px}.shelter-copy h1{font-size:26px}.building-grid{grid-template-columns:1fr}.mission-grid{grid-template-columns:1fr}.mission-photo{height:170px}.settings-access{display:block;margin-left:auto;background:#17252c;border:1px solid #4b555c;border-radius:6px;color:#d7b190;min-width:42px;min-height:42px}.base-building .gamebtn{font-size:10px;padding:10px}}

@media(max-width:800px){.admin-access{font-size:9px;font-weight:900;padding:4px}}


/* v1.2.1 • first-time survivor registration */
.registration-wrap{max-width:1020px;margin:0 auto;padding:20px;color:#ecece9}
.reg-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #435058;padding:12px 0 18px;color:#dc955b;font-size:11px;letter-spacing:.13em}
.reg-logo{display:flex;align-items:center;gap:12px;color:#f3f4f3}.reg-logo img{width:48px;height:52px}
.reg-logo b{font-size:26px;letter-spacing:.2em}.reg-logo small{display:block;color:#9daeb8;font-size:9px;letter-spacing:.22em}
.reg-heading{padding:35px 0 26px;background:linear-gradient(110deg,#121d24,#090f14)}
.reg-heading small,.reg-num{color:#ed955b;font-size:12px;font-weight:800;letter-spacing:.16em}
.reg-heading h1{font-size:clamp(28px,5vw,54px);margin:10px 0}.reg-heading p{color:#bfccd2;max-width:650px}
.reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.reg-panel{padding:22px;background:linear-gradient(140deg,#172630,#0d1820);border:1px solid #44545c;border-radius:8px;display:flex;flex-direction:column;gap:17px}
.reg-wide,.reg-foot{grid-column:1/-1}.reg-panel>label{display:grid;gap:13px;font-size:16px;font-weight:700}.reg-panel input[type=text]{width:100%;border:1px solid #59666c;background:#071115;color:#eee;border-radius:5px;padding:14px 13px;outline-color:#f09051}.reg-panel small{color:#aebcc5;font-size:11px}
.reg-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.reg-options label,.reg-specialties label{cursor:pointer;position:relative;display:block}.reg-options input,.reg-specialties input{position:absolute;opacity:0;pointer-events:none}.reg-options span,.reg-specialties span{display:block;min-height:51px;border:1px solid #45535c;padding:15px 8px;background:#15222b;border-radius:5px;text-align:center;font-size:12px;font-weight:800}
.reg-options input:checked+span,.reg-specialties input:checked+span{border-color:#ec8243;background:linear-gradient(140deg,#50291f,#1b242b);box-shadow:inset 0 0 0 1px #ef914b;color:#fff}.reg-options input:focus-visible+span,.reg-specialties input:focus-visible+span{outline:2px solid #ffb477;outline-offset:2px}
.reg-specialties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reg-specialties span{text-align:left;padding:18px;min-height:112px}.reg-specialties b{display:block;margin-bottom:11px;color:#e8dcd1}.reg-specialties small{line-height:1.45;display:block}.reg-note{color:#a8b9be;font-size:12px;margin:0}
.reg-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px;background:#111f27;border:1px solid #394a55;border-radius:7px}.reg-foot small{font-size:12px;color:#abc0c8;line-height:1.8}.reg-submit{min-height:53px;font-weight:900}
@media(max-width:750px){.registration-wrap{padding:6px}.reg-top>span{display:none}.reg-grid{grid-template-columns:1fr}.reg-specialties{grid-template-columns:1fr}.reg-specialties span{min-height:72px}.reg-foot{flex-direction:column;align-items:stretch}.reg-submit{width:100%}}
@media(max-width:390px){.reg-options{grid-template-columns:1fr}.reg-options span{min-height:42px}}
