.hero-portal{width:min(1260px,calc(100% - 80px));margin:auto;text-align:center;min-height:100svh;padding:38px 0 20px;position:relative}.portal-open{background:#101c1a}.portal-open:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#0b1d20a6,#101b18dd 55%,#101b18),url('scenes/world-castle.jpg') center 20%/cover no-repeat}.portal-brand{display:flex;justify-content:center;align-items:center;gap:22px;font-size:10px;letter-spacing:3px;color:#d5c49b;margin-bottom:38px}.portal-brand span{font-size:30px;color:var(--gold)}.hero-portal h1{font-size:clamp(43px,5vw,74px);line-height:.98;letter-spacing:-1.5px;margin:16px 0}.hero-portal h1 em{font-style:normal;color:#d6b66f}.portal-lead{color:#b3b8a9;font-size:13px;margin:20px 0 32px}.hero-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;text-align:left}.hero-card{position:relative;min-width:0;overflow:hidden;border:1px solid #88734770;border-radius:3px;background:radial-gradient(ellipse at 50% 45%,#b6ac682a,transparent 70%),linear-gradient(145deg,#223932ed,#101c1bef);padding:0;isolation:isolate;transition:transform .25s,border-color .25s,box-shadow .25s}.hero-card:before{content:'';position:absolute;inset:7px;border:1px solid #a4905828;z-index:-1}.hero-card:after{content:'';position:absolute;left:15%;right:15%;top:38%;height:100px;border:1px solid #b99f5240;border-radius:50%;transform:rotateX(65deg);z-index:-1;box-shadow:0 0 50px #c5a66510}.hero-card-stars{position:absolute;right:17px;top:12px;color:#c5a76b75}.hero-figure{display:block;height:265px;width:198.75px;max-width:100%;margin:10px auto 0;background-repeat:no-repeat;transform-origin:bottom center;filter:drop-shadow(0 12px 14px #0008)}.hero-figure.party{background-image:url('characters/party-atlas.png');background-size:400% 200%}.hero-figure.ranger{background-position:0 0}.hero-figure.elf{background-position:33.333% 0}.hero-figure.halfling{background-position:66.667% 0}.hero-figure.halforc{background-position:100% 0}.hero-figure.healer{background-image:url('characters/svetlana-atlas.png');background-size:300% 200%;background-position:0 0;width:265px;max-width:none;position:relative;left:50%;margin-left:-132.5px}.hero-card-copy{display:block;text-align:center;padding:13px 6px 21px;background:linear-gradient(transparent,#111c18cc 30%)}.hero-kind{display:block;color:#9faaa0;font-size:8px;letter-spacing:.6px}.hero-card strong{display:block;font:600 clamp(22px,2.1vw,30px)/1.3 var(--serif);color:#eadbb8;margin:5px 0 10px;white-space:nowrap}.hero-book-state{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:#a5a68e}.hero-card[data-hero=svetlana] .hero-book-state{color:#ddbf7a}.hero-card:hover,.hero-card:focus-visible,.hero-card[aria-pressed=true]{border-color:#d1b16c;box-shadow:0 0 0 1px #9d844b44,0 16px 40px #0005,0 0 40px #bca46412;transform:translateY(-6px)}.hero-card:hover .hero-figure,.hero-card:focus-visible .hero-figure{animation:hero-breathe 2.8s ease-in-out infinite alternate}.hero-card[aria-pressed=true]:before{border-color:#d1b16c65}.hero-card[aria-pressed=true] .hero-card-stars{color:#f0d690}.hero-entry{position:relative;display:flex;align-items:center;gap:24px;text-align:left;margin:28px auto 0;max-width:960px;min-height:135px;padding:24px 32px;border:1px solid #a990565a;background:linear-gradient(110deg,#293a2baa,#14211ce6);box-shadow:0 10px 35px #0002}.entry-rune{font-size:40px;color:#c9ad6c}.entry-copy{flex:1}.entry-copy h2{font:600 30px/1.2 var(--serif);margin:3px 0 5px;color:#ebdbb8}.entry-copy>p:last-child{font-size:11px;color:#a9b09f;margin:0;max-width:350px}.entry-copy .eyebrow{font-size:8px;letter-spacing:1.4px}#hero-form{flex:0 0 285px}#hero-form label{display:block;font-size:10px;color:#c5bb9f;margin-bottom:7px}.password-row{display:flex;gap:8px}.password-row input{min-width:0;width:100%;color:#ebdec1;background:#0e1916;border:1px solid #847346;padding:11px 12px;border-radius:2px;font-size:16px}.password-row button{border:1px solid #d3b171;background:linear-gradient(#b89a5b,#887039);color:#181f17;font-weight:700;font-size:13px;min-width:65px;padding:10px;border-radius:2px}.password-row button span{padding-left:6px}#entry-status{position:absolute;bottom:-26px;left:0;right:0;text-align:center;font-size:11px;margin:0;color:#b9b798}#entry-status.error{color:#f1a996}.portal-footer{font-size:9px;letter-spacing:1.2px;color:#889586;margin:52px 0 5px}@keyframes hero-breathe{to{transform:translateY(-3px) scale(1.012)}}
@media(max-width:1000px){.hero-portal{width:calc(100% - 40px)}.hero-roster{gap:10px}.hero-figure{height:225px;width:168.75px}.hero-figure.healer{width:225px;margin-left:-112.5px}.hero-card strong{font-size:23px}.hero-kind{font-size:7px}.hero-entry{gap:15px;padding:20px}.entry-rune{display:none}}
@media(max-width:700px){.hero-portal{width:calc(100% - 32px);padding-top:22px}.portal-brand{font-size:8px;letter-spacing:1.6px;gap:14px;margin-bottom:24px}.portal-brand span{font-size:23px}.hero-portal>.eyebrow{font-size:7px;letter-spacing:1.7px}.portal-lead{font-size:12px;max-width:270px;margin:18px auto 27px}.hero-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hero-card[data-hero=svetlana]{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:207px}.hero-card[data-hero=svetlana] .hero-figure{position:static;left:auto;width:200px;height:200px;margin:0 -24px 0 -35px;flex-shrink:0}.hero-card[data-hero=svetlana] .hero-card-copy{background:none;text-align:left;padding:24px 10px 24px 0;max-width:55%}.hero-card[data-hero=svetlana] strong{font-size:32px}.hero-figure{width:156px;height:208px;margin-top:4px}.hero-card strong{font-size:25px}.hero-kind{font-size:8px}.hero-card-copy{padding-bottom:17px}.hero-card:hover,.hero-card:focus-visible,.hero-card[aria-pressed=true]{transform:none}.hero-entry{display:block;padding:22px;margin-top:22px}.entry-copy>p:last-child{font-size:12px}.entry-copy h2{font-size:32px}#hero-form{margin-top:18px}.password-row button{min-width:75px}#entry-status{font-size:11px;bottom:-38px;padding:0 8px}.portal-footer{margin-top:61px}.hero-portal h1{font-size:clamp(40px,10vw,58px)}.hero-book-state{font-size:8px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.hero-card,.hero-figure{animation:none!important;transition:none!important}}
/* Comfortable touch targets; 16px inputs prevent Safari focus zoom. */
@media(pointer:coarse),(max-width:1024px){.top-tools button,.chapter-tabs button,.replay-button,#credits-open,#clear-filters{min-height:44px}.filters input,.filters select,#cast-level{font-size:16px;min-height:44px}.spell-description{font-size:14px;line-height:1.75}.spell-facts dd{font-size:13px}.upcast p{font-size:12px}.character-summary{font-size:12px}.library-hint{display:none}.scene-controls{gap:10px}.music-button{padding:10px}.top-tools{gap:12px}}
@media(max-width:520px){.masthead{height:auto;min-height:82px;flex-wrap:wrap;gap:8px;padding:14px 0}.top-tools{width:100%;justify-content:space-between}.brand{font-size:9px}.right-page{padding:23px 20px}.spell-facts{gap:16px 12px}.scene-badge{font-size:6px}.portal-open .world-backdrop{display:none}}
