/* Original game typography and responsive companion stage. */
@font-face{font-family:'Quest Display';src:url('/rpg/fonts/LilitaOne-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--quest-display:'Quest Display','Trebuchet MS',system-ui,sans-serif}
/* Multiply integrates the original exact school lettering with the light header. */
.school-wordmark{background:transparent;border-radius:0;mix-blend-mode:multiply}
.school-badge{background:transparent!important;box-shadow:none!important;border:0!important}
.school-badge img{mix-blend-mode:multiply}
.quest-wordmark b,.quest-wordmark b strong{font-family:var(--quest-display);font-weight:400;font-style:normal;letter-spacing:.01em}
.quest-wordmark b{filter:drop-shadow(0 2px 0 #fff);transform:rotate(-2deg)}
#loginView .login-hero h1{font-family:var(--quest-display);font-weight:400;font-size:clamp(52px,5vw,88px);letter-spacing:.01em;line-height:1.12;color:#344289;text-shadow:0 3px 0 #fff,0 6px 0 #c2b9ef,0 12px 22px #6d52bb29;transform:rotate(-1.5deg);padding:4px 0 10px}
#loginView .login-hero h1 span{background:none;color:#8855bd;text-shadow:0 3px 0 #fff7da,0 6px 0 #d6a6df,0 12px 25px #b784d64d}
#loginView .hero-copy{font-size:clamp(17px,1.5vw,23px);line-height:1.45;color:#4c506c;max-width:960px}
#loginView .login-card h2,#loginView .login-btn{font-family:var(--quest-display);font-weight:400;letter-spacing:.025em}
#loginView .login-card h2{font-size:32px}#loginView .login-btn{font-size:22px}
.dashboard .welcome-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,330px);align-items:center;min-height:300px;padding:26px clamp(24px,3vw,52px);gap:24px;background-image:linear-gradient(100deg,#152144f0,#243462d4 47%,#41507727 80%),url('/rpg/starlight-world.webp');background-position:center,center 48%;background-size:cover;border:1px solid #a8b6ef80;border-radius:28px;box-shadow:0 12px 35px #141e4638,inset 0 1px #ffffff3b}
.dashboard .welcome-banner>div:first-child{position:relative;z-index:1}
.dashboard .welcome-banner h2{font-family:var(--quest-display);font-weight:400;font-size:clamp(30px,3vw,52px);line-height:1.14;letter-spacing:.015em;text-shadow:0 3px 0 #192343,0 8px 20px #10152b80;overflow-wrap:anywhere}
.dashboard .welcome-banner h2 span{color:#ffdd83}
.dashboard .welcome-banner .eyebrow{font-size:12px;letter-spacing:.17em;color:#d8d7ff}
.dashboard .welcome-banner #welcomeLine{font-size:clamp(15px,1.2vw,19px);line-height:1.5;color:#f0efff;margin:14px 0}
.dashboard .welcome-banner .level-row{width:100%;max-width:640px;font-size:14px;grid-template-columns:auto minmax(90px,1fr) auto;background:#1520428a;padding:14px 16px;border:1px solid #ffffff26;border-radius:14px;margin-top:20px}
.dashboard .welcome-banner .xp-bar{height:12px}
.dashboard .welcome-banner #petStage{position:relative;inset:auto;width:100%;height:auto;min-height:240px;opacity:1;display:grid;align-self:stretch;z-index:1}
.companion-play{position:relative;display:grid;justify-items:center;align-content:center;isolation:isolate;width:100%;min-width:0}
.companion-play-ring{position:absolute;z-index:-1;top:3%;left:50%;transform:translateX(-50%);width:240px;height:240px;border:1px solid #f6d89696;border-radius:50%;background:radial-gradient(circle,#aeabf058,#98ddeb16 60%,transparent 70%);box-shadow:0 0 40px #e4c48226,inset 0 0 26px #fff2}
.companion-play-ring:after{content:'✦';position:absolute;top:10%;right:10%;color:#ffdf91;font-size:26px;text-shadow:0 0 14px #fff}
.companion-play-pet{position:relative;display:block;width:230px;height:210px;border:0;background:transparent;cursor:pointer;border-radius:50%;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.companion-play-pet:focus-visible{outline:3px solid #ffe9aa;outline-offset:5px}
.dashboard .welcome-banner #petStage .world-sprite{width:100%;height:100%;display:block}
.dashboard .welcome-banner #petStage .pet-svg{display:block;width:100%;height:100%;max-height:none;max-width:none;animation:none;filter:drop-shadow(0 12px 10px #121b4660)}
.dashboard .welcome-banner .companion-play-message{font-weight:800;font-size:14px;text-align:center;line-height:1.4;background:#18274be8;border:1px solid #d2cbfd55;padding:9px 14px;border-radius:18px;margin:0;min-height:38px;color:#fff4d0}
.companion-play-hint{font-size:12px;font-weight:700;color:#ede9ff;margin-top:7px}
.play-sparks{position:absolute;inset:25% -5% auto;opacity:0;pointer-events:none;letter-spacing:32px;color:#ffe997;font-size:27px;text-shadow:0 0 16px #ffd18c}
.companion-play-pet[data-playing] .play-sparks{animation:quest-spark .9s ease-out}
.companion-play-pet[data-reaction=hop] .world-sprite{animation:quest-hop .9s ease-in-out}
.companion-play-pet[data-reaction=twirl] .world-sprite{animation:quest-twirl .9s ease-in-out}
.companion-play-pet[data-reaction=nuzzle] .world-sprite{animation:quest-nuzzle .9s ease-in-out}
@keyframes quest-hop{0%,100%{transform:translateY(0)}35%{transform:translateY(-24px) rotate(-6deg)}65%{transform:translateY(0) scale(1.05,.95)}}
@keyframes quest-twirl{0%,100%{transform:rotate(0)}30%{transform:rotate(-14deg) scale(.95)}65%{transform:rotate(14deg) scale(1.05)}}
@keyframes quest-nuzzle{0%,100%{transform:translateX(0)}30%{transform:translateX(-12px) rotate(-7deg)}70%{transform:translateX(12px) rotate(7deg)}}
@keyframes quest-spark{10%{opacity:1}100%{opacity:0;transform:translateY(-38px) scale(1.2)}}
/* Compact preview stage, larger artwork, and collectible Special treasures. */
#adventureDialog .boutique-preview{align-content:start;row-gap:12px;background:radial-gradient(ellipse at 50% 27%,#f1e2ff,#f8f5ec 55%,#efebf8);border-color:#d4c4e8}
#adventureDialog .boutique-art{width:min(100%,420px);max-width:420px;aspect-ratio:1;height:auto;justify-self:center;margin:6px auto;display:grid;place-items:center}
#adventureDialog .boutique-art>.pet-svg{width:100%;height:100%;max-width:none;max-height:none}
#adventureDialog .boutique-preview>h2,#adventureDialog .stock-header h2,.adventure-dialog-header b,.companion-sanctuary h2{font-family:var(--quest-display);font-weight:400;letter-spacing:.015em}
#adventureDialog .boutique-preview>h2{font-size:clamp(28px,2.3vw,40px)}
#adventureDialog .stock-header h2{font-size:clamp(28px,2.4vw,42px);color:#4c3778}
.boutique-categories button{font-family:var(--quest-display);font-weight:400;font-size:17px;letter-spacing:.015em;min-height:48px}
#adventureDialog .fashion-art{background:radial-gradient(ellipse at 50% 48%,#fffaf4 15%,#f5effb 67%,#e9e3f7);min-height:230px}
.fashion-info h3{font-size:20px;color:#343b63}.fashion-info>p{font-weight:800}
.fashion-detail{background:linear-gradient(145deg,#fffdf5,#f5edf8);border-color:#ded0e8}
.fashion-card.special-edition{border:2px solid #c9a053;box-shadow:0 5px 0 #d1b580,0 12px 25px #a478b71f;background:#fffaf0}
#adventureDialog .special-edition .fashion-art{background:radial-gradient(ellipse at 50% 55%,#fff2ca 0%,#e9dcfa 55%,#d5ddf5 100%)}
.special-edition .fashion-art>span{background:linear-gradient(120deg,#6d439f,#a257ac);color:#fff1be;border:1px solid #e6c16f;font-size:13px;letter-spacing:.06em;padding:7px 11px;box-shadow:0 3px 8px #653a8f29}
.special-edition .fashion-info h3{color:#6c3982}
.special-edition .fashion-info .primary-btn{background:linear-gradient(120deg,#78469d,#a75da5);border-bottom-color:#59317b}
.special-edition .fashion-detail{border-color:#cdaa63;box-shadow:0 0 18px #ffe79a5e;background:#fff9e9}
@media(min-width:1550px){#adventureDialog .fashion-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#adventureDialog .boutique-art{width:min(100%,460px);max-width:460px}}
@media(max-width:850px){.dashboard .welcome-banner{grid-template-columns:minmax(0,1fr) 240px;padding:24px;gap:14px}.dashboard .welcome-banner .level-row{grid-template-columns:auto 1fr}.dashboard .welcome-banner .level-row>span:last-child{grid-column:1/-1}.companion-play-pet{width:210px;height:195px}.companion-play-ring{width:210px;height:210px}}
@media(max-width:600px){#loginView .login-hero h1{font-size:clamp(48px,11vw,66px)}.dashboard .welcome-banner{grid-template-columns:1fr;padding:22px 18px;gap:12px;min-height:0}.dashboard .welcome-banner #petStage{min-height:235px}.dashboard .welcome-banner h2{font-size:33px}.dashboard .welcome-banner .level-row{max-width:100%;font-size:13px;margin-top:12px}.dashboard .welcome-banner #welcomeLine{font-size:15px}.companion-play-pet{width:200px;height:180px}.companion-play-ring{width:200px;height:200px}.boutique-categories button{font-size:15px}#adventureDialog .boutique-art{max-width:300px}.fashion-info h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.companion-play-pet .world-sprite,.companion-play-pet .play-sparks{animation:none!important}.companion-play-pet[data-playing] .play-sparks{opacity:1}.atelier-special .atelier-particle{animation:none!important}}
