@font-face{font-family:GuildText;src:url('./assets/jakarta-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:GuildText;src:url('./assets/jakarta-600.ttf') format('truetype');font-weight:600 700;font-display:swap}
@font-face{font-family:GuildTextFallback;src:url('./assets/body.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Cinzel;src:url('./assets/cinzel-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cinzel;src:url('./assets/cinzel-600.ttf') format('truetype');font-weight:500 600;font-display:swap}
:root{color-scheme:dark;--ink:#091321;--panel:#0e1b29;--gold:#cbb183;--pale:#eee5d4;--muted:#b4bfca;--line:#c3aa7c30;--blue:#93c4ed;--green:#b4d9bc;--serif:Cinzel,Georgia,serif}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--pale);font-family:GuildText,GuildTextFallback,Arial,sans-serif;font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}button,input,a,summary{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}button svg{pointer-events:none}a{color:inherit}.world{display:none}
.masthead{min-height:88px;position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:14px 5%;gap:20px;background:#080f1b;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;line-height:1.4;font:500 16px/1.4 var(--serif);letter-spacing:1px}.brand img{display:block;width:46px;height:54px;object-fit:contain}.brand small{display:block;font:400 10px/1.5 GuildText,GuildTextFallback,Arial,sans-serif;letter-spacing:.4px;color:var(--muted);margin-top:5px}.utilities{display:flex;gap:8px;align-items:center}.utility{height:44px;min-width:44px;background:transparent;color:#d3d9dd;border:1px solid #b4bfca35;border-radius:2px;font-size:10px;letter-spacing:.5px;padding:0 10px;display:grid;place-items:center}.utility:hover{background:#cbb18310;border-color:var(--gold)}.utility svg{width:18px;height:18px}.menu-trigger{letter-spacing:2px}
.layout{min-height:calc(100svh - 88px);display:grid;grid-template-columns:minmax(0,1.02fr) minmax(440px,1fr)}.art-panel{min-height:650px;height:calc(100svh - 88px);max-height:1000px;position:sticky;top:0;overflow:hidden;isolation:isolate;background:#1a2b32 url('./assets/stormwind-dawn-1536.jpg') 68% center/cover no-repeat}.art-panel:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#091321 0%,#091321b3 16%,#0913210a 63%,#0913214d 100%)}.art-panel:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#09132118 68%,#09132188 100%)}.character-render{display:block;position:absolute;width:auto;height:64%;max-height:630px;left:50%;bottom:148px;transform:translateX(-50%);aspect-ratio:354/751;stroke:none;overflow:hidden;filter:drop-shadow(0 10px 13px #03101db3)}.art-caption{position:absolute;top:27px;left:34px;right:34px;display:flex;justify-content:space-between;font-size:9px;font-weight:600;color:#eee5d4;letter-spacing:1.2px;text-shadow:0 1px 10px #07121b}.art-identity{position:absolute;bottom:37px;left:38px;right:30px;text-shadow:0 2px 15px #000}.tiny-label{font-size:10px;letter-spacing:1.3px;color:var(--gold)}.art-identity p{font:400 clamp(27px,2.5vw,38px)/1.2 var(--serif);margin:10px 0}.art-identity>span:last-child{font-size:9px;letter-spacing:1px;color:#c0cad0}
.quest-panel{align-self:center;padding:60px clamp(28px,5vw,80px) 30px;min-height:calc(100svh - 88px);display:flex;flex-direction:column;justify-content:center;position:relative;background:var(--ink)}.quest-content{width:100%;max-width:490px;margin:auto;animation:enter .35s ease both}.quest-content:focus{outline:none}.eyebrow{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:10px;letter-spacing:1.3px;text-transform:uppercase;line-height:1.6;margin-bottom:22px}.eyebrow:before{content:'';width:2px;height:17px;background:var(--gold)}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}h1{font:400 clamp(48px,4.7vw,72px)/1.13 var(--serif);letter-spacing:-1.4px;margin-bottom:22px}h1 em{font-style:normal;color:var(--gold)}h2{font:400 35px/1.3 var(--serif);letter-spacing:-.6px;margin-bottom:20px}h3{font:400 23px/1.4 var(--serif)}.intro{color:var(--muted);font-size:14px;line-height:1.9;max-width:430px}.intro strong{font-weight:600;color:var(--pale)}.intro+p{margin-top:13px}.dedication{font:400 21px/1.5 var(--serif);color:var(--gold);margin-bottom:22px}.gold-rule{height:1px;background:var(--line);margin:26px 0}.meta-row{display:flex;flex-wrap:wrap;gap:12px 22px;color:var(--muted);font-size:11px;margin:22px 0}.meta-row span{display:flex;align-items:center;gap:8px}.meta-row svg{width:15px;height:15px;color:var(--gold)}.primary{width:100%;min-height:54px;background:#d1b582;border:1px solid var(--gold);color:#111b25;border-radius:2px;padding:14px 19px;font-weight:700;font-size:12px;letter-spacing:.6px;display:flex;justify-content:center;align-items:center;gap:20px;transition:background .18s,border-color .18s}.primary:hover:not(:disabled){background:#e4cda3;border-color:#e4cda3}.primary svg{width:18px;height:18px}.secondary{background:transparent;border:1px solid #cbb18360;border-radius:2px;color:var(--gold);padding:13px 18px;min-height:48px;width:100%;font-size:12px;margin-top:12px}.secondary:hover{background:#cbb18310}.text-btn{border:0;background:none;color:#afc6d8;padding:12px 4px;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:4px}.text-btn:hover{color:var(--pale)}.center{text-align:center}.quiet{font-size:11px;line-height:1.8;color:#93a5b5;margin-top:15px}.quiet a{color:#afc6d8}.quest-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin:45px auto 0;padding-top:20px;max-width:490px;width:100%;color:#91a1af;font-size:9px;letter-spacing:.5px}.quest-footer>span:last-child{letter-spacing:0}
#progress{max-width:490px;width:100%;margin:0 auto 28px}.progress-track{display:flex;align-items:center}.progress-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.progress-item:after{content:'';position:absolute;top:12px;left:calc(50% + 18px);width:calc(100% - 36px);height:1px;background:#344351}.progress-item:last-child:after{display:none}.progress-item .dot{width:25px;height:25px;border:1px solid #566472;border-radius:50%;display:grid;place-items:center;color:#93a5b5;font-size:10px}.progress-item .dot svg{width:13px;height:13px}.progress-item .label{font-size:8px;letter-spacing:.5px;color:#93a5b5;text-transform:uppercase}.progress-item.active .dot{color:var(--gold);border-color:var(--gold)}.progress-item.active .label{color:var(--gold)}.progress-item.done .dot{background:#cbb18315;color:var(--gold);border-color:#cbb18377}
.dispatch{border-left:2px solid var(--gold);padding:4px 0 4px 21px;margin:26px 0}.dispatch p{font:400 17px/1.8 var(--serif);color:#ded7c8}.dispatch .signature{font:600 10px/1.6 GuildText,GuildTextFallback,Arial,sans-serif;color:var(--gold);margin-top:16px;letter-spacing:.6px}.objective{display:flex;align-items:flex-start;gap:15px;border-block:1px solid var(--line);padding:20px 0;margin:24px 0;color:var(--muted);font-size:13px}.objective>svg{color:var(--gold);flex:none}.objective strong{display:block;color:var(--pale);font-size:12px;font-weight:600;margin-bottom:3px}.inscription{padding:21px 22px;border-left:2px solid var(--gold);background:#0e1b29;margin:24px 0}.inscription p{font:400 16px/1.9 var(--serif);color:#ded7c8}.inscription p+p{margin-top:5px}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0 14px}.slot{height:68px;border:1px dashed #5c6b78;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;border-radius:2px;color:#93a5b5;background:#0d1a29}.slot span{font-size:9px;letter-spacing:.2px}.slot.filled{color:var(--gold);border:1px solid #cbb18388;background:#cbb1830b}.sigil-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sigil-button{height:78px;border:1px solid #516778;background:#122536;color:#bad3e6;border-radius:2px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:8px;font-size:10px}.sigil-button:hover:not(:disabled){border-color:var(--gold);color:var(--pale)}.small-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 14px}.hint-box{font-size:13px;line-height:1.8;background:#122536;border:1px solid #93c4ed40;padding:14px 16px;margin:0 0 15px;color:#c5d6e2}.status{margin:14px 0;line-height:1.8;font-size:12px;color:#e1b9a0}.status:empty{display:none}.success{padding:18px 20px;border:1px solid #97c9ab44;background:#20413622;color:var(--green);margin:20px 0}.success strong{display:block;font-size:10px;letter-spacing:1px;margin-bottom:6px}.success p{font-size:12px;line-height:1.8}
.memory-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin:24px 0 12px}.memory-bar strong{color:var(--gold);font-weight:600}.memory-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.memory-card{height:90px;background:#122536;border:1px solid #617787;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;position:relative;color:var(--gold);transition:background .18s}.memory-card:active{background:#213a4e}.memory-card .back-crest{width:44px;height:50px;object-fit:contain;pointer-events:none;opacity:.85}.memory-card span{font-size:10px;letter-spacing:.2px}.memory-card svg{width:29px;height:29px}.memory-card.open{background:#24445d;border-color:#93c4ed}.memory-card.matched{background:#263b3433;border-color:#a5bb8b77;color:#cbddaf;opacity:.65}.memory-card:disabled{opacity:.65}.field-label{display:block;font-size:10px;color:var(--gold);letter-spacing:.7px;margin:23px 0 9px;text-transform:uppercase}.answer{width:100%;height:55px;background:#0d1a29;border:1px solid #667a88;border-radius:2px;color:var(--pale);padding:13px 16px;font-size:16px;outline-offset:3px;margin-bottom:13px}.answer::placeholder{color:#91a1af}.seal-visual{width:68px;height:68px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--gold);margin:24px auto;background:#0e1b29}.seal-visual svg{width:32px;height:32px}.journey{display:flex;flex-direction:column;gap:24px;margin:27px 0}.journey-item{display:flex;gap:17px;align-items:flex-start}.journey-item .step-num{width:28px;height:28px;border:1px solid #cbb18360;border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:11px;flex:none;margin-top:2px}.journey-item p{font-size:13px;color:var(--muted)}.journey-item strong{font-size:14px;display:block;color:var(--pale);font-weight:600}
.photo-frame{min-height:155px;border:1px dashed #758c9b88;background:#0e1b29;padding:26px;text-align:center;margin:24px 0;color:#b5c9d8}.photo-frame svg{width:40px;height:40px;color:var(--gold);margin:6px 0 12px}.photo-frame p{font-size:12px}.photo-frame:has(img){padding:6px}.photo-frame img{display:block;width:100%;max-height:380px;object-fit:contain;background:#091321;border-radius:2px}.photo-caption{font-size:10px;color:#b5c9d8;margin-top:7px}.fallback{margin:22px 0;color:#b4bfca;font-size:12px}.fallback summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;text-decoration:underline;text-underline-offset:4px}.fallback .fallback-body{background:#0e1b29;padding:16px;border:1px solid #51677866;margin-top:8px}.fallback label{display:flex;gap:10px;align-items:flex-start;margin:12px 0;cursor:pointer}.fallback input{margin-top:5px;accent-color:var(--gold);width:18px;height:18px;flex:none}
.finale{text-align:center}.finale .eyebrow{justify-content:center}.finale .eyebrow:before{display:none}.finale h1{font-size:46px;letter-spacing:-1px;margin:20px 0}.achievement{padding:25px 18px;background:#0e1b29;border:1px solid #cbb18360;margin:28px 0}.achievement svg{width:44px;height:44px;color:var(--gold);margin-bottom:15px}.achievement .tiny-label{font-size:9px}.achievement h3{color:var(--gold);margin:9px 0}.achievement p{font-size:12px;color:var(--muted);line-height:2}.signoff{font:400 23px/1.4 var(--serif);color:var(--gold);margin:24px 0 8px}.finale .intro{margin-inline:auto}.finale .quiet{margin-top:24px}
#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);width:max-content;max-width:calc(100% - 35px);background:#152839;border:1px solid var(--gold);box-shadow:0 10px 30px #0008;padding:12px 20px;color:var(--pale);font-size:12px;z-index:20;opacity:0;transition:.2s;pointer-events:none}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{max-width:430px;width:calc(100% - 32px);max-height:calc(100svh - 32px);overflow-y:auto;overscroll-behavior:contain;color:var(--pale);background:#0e1b29;border:1px solid var(--gold);border-radius:3px;padding:29px;box-shadow:0 30px 80px #0009}dialog::backdrop{background:#030816cc;backdrop-filter:blur(5px)}dialog h2{font-size:27px}dialog p{font-size:12px;color:var(--muted);margin:12px 0 22px}#rehearsal-banner:not([hidden]){display:block;position:relative;width:100%;min-height:44px;z-index:9;font:600 10px/1.5 GuildText,GuildTextFallback,Arial,sans-serif;letter-spacing:.8px;color:#cbdceb;border:0;border-bottom:1px solid #93c4ed35;padding:10px 20px;background:#122536}#rehearsal-banner:hover{background:#1c3549}.tester-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.tester-grid .secondary{margin:0;padding:10px 7px;font-size:11px;min-height:46px}.tester-notes{font-size:12px;color:var(--muted);margin:18px 0}.tester-notes summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--gold);text-decoration:underline;text-underline-offset:4px}.tester-notes p{font-size:11px;line-height:1.8;margin:12px 0}.noscript{position:fixed;inset:0;display:grid;place-items:center;background:var(--ink);color:var(--pale);padding:30px;z-index:50}#celebration{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:15}.spark{position:absolute;left:var(--x);top:-30px;width:4px;height:var(--h);background:var(--c);animation:fall var(--t) var(--d) ease-in both;transform:rotate(var(--r));opacity:0}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fall{0%{opacity:0;transform:translateY(-20px) rotate(0)}10%{opacity:.8}100%{opacity:0;transform:translateY(105vh) rotate(500deg)}}
@media(min-width:1500px){.quest-panel{padding-inline:100px}.quest-content,#progress,.quest-footer{max-width:510px}}
@media(max-width:980px){.layout{grid-template-columns:minmax(0,.85fr) minmax(400px,1fr)}.masthead{padding-inline:26px}.quest-panel{padding-inline:28px}.art-identity{left:25px;right:20px}.art-identity p{font-size:26px}.art-caption{left:25px;right:25px}.character-render{height:61%;bottom:160px}}
@media(max-width:720px){body{font-size:14px}.masthead{min-height:78px;padding:11px 19px;gap:8px}.brand{font-size:12px;letter-spacing:.7px;gap:8px}.brand img{width:34px;height:45px}.brand small{font-size:8px;letter-spacing:0;margin-top:3px}.utilities{gap:5px}.utility{min-width:38px;height:44px;padding:0 7px;font-size:9px}.menu-trigger{letter-spacing:1px}.layout{display:block;min-height:0}.art-panel{position:relative;top:auto;min-height:0;height:345px;max-height:none;background-image:url('./assets/stormwind-dawn-mobile-800.jpg');background-position:50% 47%;background-size:cover}.art-panel:before{background:linear-gradient(0deg,#091321 0%,#091321aa 18%,#09132100 65%,#09132133 100%)}.art-panel:after{background:linear-gradient(90deg,#09132118,#09132100)}.character-render{height:275px;max-height:none;bottom:65px;left:55%}.art-caption{top:17px;left:23px;right:23px;font-size:8px;letter-spacing:.7px}.art-identity{bottom:17px;left:24px;right:24px}.art-identity .tiny-label{display:none}.art-identity p{font-size:23px;margin:0 0 3px}.art-identity>span:last-child{font-size:8px;letter-spacing:.6px}.quest-panel{min-height:0;justify-content:flex-start;padding:29px 25px 24px}.quest-content{margin:0 auto;max-width:470px}h1{font-size:49px;letter-spacing:-1.2px;line-height:1.13;margin-bottom:17px}.welcome .eyebrow{margin-bottom:14px;font-size:9px}.dedication{font-size:18px;margin-bottom:17px}.intro{font-size:13px;line-height:1.9}.gold-rule{margin:21px 0}.meta-row{margin:21px 0;gap:12px 19px;font-size:10px}.primary{min-height:54px;padding:14px;font-size:11px}.quiet{font-size:10px}.quest-footer{margin-top:32px;font-size:8px;padding-top:17px}.is-playing .art-panel{height:116px;background-position:center 48%}.is-playing .art-caption{display:none}.is-playing .character-render{height:145px;bottom:-34px;left:auto;right:9%;transform:none}.is-playing .art-identity{left:24px;bottom:25px;right:135px}.is-playing .art-identity p{font-size:18px}.is-playing .art-identity>span:last-child{font-size:7px;line-height:1.6;display:block;max-width:210px}.is-playing .art-panel:before{background:linear-gradient(0deg,#091321cc,#09132166),linear-gradient(90deg,#09132188,transparent)}.is-playing .quest-panel{padding-top:27px}.is-playing #progress{margin-bottom:28px}.is-playing h2{font-size:30px}.is-playing .eyebrow{margin-bottom:14px;font-size:9px;letter-spacing:.8px}.memory-card{height:82px}.inscription{padding:17px 19px;margin:20px 0}.inscription p{font-size:15px}.status{font-size:12px}.sigil-button{height:74px;font-size:9px}.slot{height:64px}.finale h1{font-size:39px}.finale .seal-visual{margin-top:5px}.progress-item .label{font-size:7px;letter-spacing:.2px}.photo-frame{margin:20px 0}.quest-panel{padding-bottom:max(24px,env(safe-area-inset-bottom))}.small-actions .quiet{margin:0;font-size:10px}.small-actions .text-btn{font-size:11px}}
@media(max-width:360px){.masthead{padding-inline:13px}.brand{font-size:11px}.brand img{width:28px}.brand small{font-size:7px}.quest-panel{padding-inline:20px}h1{font-size:44px}.utilities{gap:4px}.utility{min-width:34px;padding-inline:6px}.memory-card{height:76px}.sigil-button{font-size:8px}.meta-row{gap:12px}.finale h1{font-size:35px}.art-panel{height:325px}.character-render{height:255px}.is-playing .art-identity{right:120px}.is-playing .art-identity p{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.spark{display:none}}
