/* The legend keeps its own portrait layout. No shared game stage. */
.source-page *{box-sizing:border-box}
html.source-page,html.source-page body{background:var(--gl-bg,#090a0c)!important}
html.source-page[data-transparent="1"],html.source-page[data-transparent="1"] body{background:transparent!important}
.source-page [hidden]{display:none!important}
#legend-stage{position:absolute;width:1080px;height:1920px;transform-origin:top left;color:var(--gl-ink,#f6f1e8);--gl-accent:#ffd34e;--gl-route:#2eccc0;font-family:Inter,"Segoe UI",sans-serif}
.gl-capture{position:absolute;top:182px;left:40px;width:1000px}
.gl-board{position:relative;padding:0 22px 0;isolation:isolate;border:2px solid #89723f;border-radius:34px;background:radial-gradient(ellipse at 15% 0%,#4a3927aa,transparent 54%),linear-gradient(125deg,#25272b,var(--gl-bg,#090a0c));box-shadow:inset 0 2px 0 #ffdf9144,inset 0 0 0 7px #111214,0 22px 55px #0005;overflow:hidden}
.gl-board::before{content:"";position:absolute;inset:10px;border:1px solid #bf9a4b30;border-radius:25px;pointer-events:none;z-index:-1;background-image:radial-gradient(#e7c88813 .9px,transparent .9px);background-size:12px 12px}
.gl-heading{position:relative;min-height:251px;padding:27px 18px 22px;display:flex;align-items:center;border-bottom:1px solid #c6a96744}
.gl-heading-copy{position:relative;z-index:1;width:730px}
.gl-brand{font-size:21px;font-weight:800;letter-spacing:2px;margin:0 0 18px;color:var(--gl-accent)}
.gl-brand span{font-size:17px;color:#c5baa7;letter-spacing:1px;margin-left:13px}
.gl-heading h1{font-size:79px;font-weight:950;font-family:"Arial Black",Inter,sans-serif;font-style:italic;letter-spacing:-5px;line-height:1.01;margin:0;width:680px;overflow-wrap:anywhere;color:#fff2cc;text-shadow:0 4px 0 #9a7139,0 8px 0 #121617,0 13px 18px #0009;transform:rotate(-2deg)}
.gl-invitation{font-size:28px;font-weight:550;margin:24px 0 0;letter-spacing:-.5px;color:#e4d9c5}
.gl-heading-art{position:absolute;right:-32px;top:6px;width:270px;height:244px;pointer-events:none}
.gl-heading-art svg{width:100%;height:100%;overflow:visible}
.gl-columns{display:grid;grid-template-columns:410px 1fr;margin:0 13px;padding:19px 15px 13px;font-size:23px;font-weight:850;letter-spacing:3px;color:var(--gl-accent)}
.gl-columns span+span{padding-left:40px;color:var(--gl-route)}
.gl-viewport{height:1072px;position:relative;overflow:hidden;margin:0 -4px;mask-image:linear-gradient(transparent,#000 1.6%,#000 98.4%,transparent)}
.gl-track{position:relative;will-change:transform;padding:8px 8px 0}
.gl-row{position:relative;display:grid;grid-template-columns:358px 68px minmax(0,1fr);gap:8px;align-items:center;height:calc(var(--row-step,214px) - 18px);margin-bottom:18px;padding:19px 23px 20px;border:1px solid #a4926b6b;border-radius:24px;background:radial-gradient(ellipse at 4% 15%,#b2813433,transparent 55%),linear-gradient(110deg,#323436,#26282d 52%,#1c272a);box-shadow:inset 0 2px 0 #fbdfaa48,inset 0 -5px 0 #080b0da8,0 6px 8px #0008;isolation:isolate}
.gl-row::before{content:"";position:absolute;left:0;top:26px;bottom:26px;width:5px;border-radius:0 8px 8px 0;background:var(--gl-accent);box-shadow:0 0 22px color-mix(in srgb,var(--gl-accent),transparent 40%)}
.gl-row::after{content:"";pointer-events:none;position:absolute;inset:5px;border:1px solid #dbc29920;border-radius:19px;background:linear-gradient(165deg,#fff1,transparent 25%);z-index:-1}
.gl-gift{display:flex;align-items:center;gap:17px;min-width:0}
.gl-medallion{position:relative;display:grid;place-items:center;width:130px;height:140px;flex:none;border-radius:28px;background:radial-gradient(ellipse,#ffcd6855,#584b3444 48%,#151a1e 74%);border:1px solid #e1c58377;box-shadow:inset 0 1px 0 #ffe1a866,inset 0 -5px 7px #0008,0 10px 14px #0005;transform:rotate(-4deg)}
.gl-medallion::before{content:"";position:absolute;inset:7px;border:1px solid #f5df991a;border-radius:22px}
.gl-medallion::after{content:"✦";position:absolute;right:5px;top:-15px;font-size:25px;color:#ffe4a5;text-shadow:0 0 20px #ffcb37}
.gl-medallion img.tt-core-gift-icon{width:114px;height:114px;object-fit:contain;filter:drop-shadow(0 8px 6px #0008);transform:rotate(4deg)}
.gl-gift-copy{min-width:0}.gl-gift-name{display:block;font-size:37px;font-weight:850;line-height:1.15;letter-spacing:-1.2px;overflow-wrap:anywhere}
.gl-coins{display:flex;gap:9px;align-items:center;margin-top:12px;font-size:28px;color:var(--gl-accent);font-weight:650}
.gl-coin{width:19px;height:19px;flex:none;border-radius:50%;background:linear-gradient(135deg,#fff0b2,#dba840);box-shadow:inset 0 0 0 3px #6c4b29,inset 0 0 0 5px #edc66b,0 1px 0 #fff4ce}
.gl-link{display:grid;place-items:center;position:relative;width:63px;height:63px;border:1px solid #76c1b56b;border-radius:18px;transform:rotate(-3deg);background:linear-gradient(145deg,#435f59,#243c3b);box-shadow:inset 0 2px #c2f8d52e,0 5px 0 #10181b;color:#b2ffea}
.gl-link svg{width:39px;height:39px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transform:rotate(3deg)}
.gl-action-wrap{height:100%;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:13px;padding-left:9px}
.gl-action{margin:0;font-size:48px;line-height:1.15;letter-spacing:-1.4px;font-weight:850;overflow-wrap:anywhere;color:var(--gl-ink)}
.gl-count{align-self:flex-start;border:1px solid #6ecdbb66;border-radius:7px;background:#18312f;color:#c0ffe6;padding:4px 10px;font-size:25px;font-weight:750;line-height:1.2;white-space:nowrap}
.gl-count:empty{display:none}
.gl-pop{position:absolute;right:20px;top:-10px;z-index:5;padding:5px 17px;border-radius:13px;background:linear-gradient(#fff0a9,#efbb46);border:2px solid #ffecb4;color:#352518;font-size:42px;line-height:1.1;font-weight:950;box-shadow:0 8px 24px #0007;animation:gl-pop 1.8s both;pointer-events:none}
.gl-row.is-lit{border-color:var(--gl-accent);background:radial-gradient(ellipse at 0% 0%,#ffcc7955,transparent 72%),linear-gradient(110deg,#4d4230,#303938);box-shadow:inset 0 0 0 2px #ffe39866,inset 0 2px 0 #fff0b7,0 0 22px #ffcf6333,0 6px 8px #0008}
.gl-row.is-lit .gl-link{background:linear-gradient(140deg,#ccfff0,#4cc6b0);color:#123a31;box-shadow:0 0 20px #6cfbdc66}
.gl-row.is-lit .gl-medallion{animation:gl-lift .55s ease-out}
.gl-particle{position:absolute;left:40%;top:50%;width:12px;height:12px;background:var(--particle-colour);clip-path:polygon(50% 0,62% 35%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);pointer-events:none;z-index:4;animation:gl-spark .9s ease-out both}
.gl-board-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;height:77px;padding:0 17px;border-top:1px solid #88724a77;font-size:24px;letter-spacing:1.6px;font-weight:750;color:#d7c8a8}
.gl-board-foot>span:first-child{display:flex;align-items:center;gap:13px}
.gl-board-foot i{width:9px;height:9px;border-radius:50%;background:var(--gl-route);box-shadow:0 0 13px var(--gl-route)}
#row-position{color:var(--gl-accent);font-variant-numeric:tabular-nums}
.gl-recent{display:flex;align-items:center;gap:17px;min-height:95px;margin-top:14px;padding:16px 22px;border:1px solid #655f4f;border-radius:18px;color:#efdfbd;background:linear-gradient(115deg,#303133,#1b2425);box-shadow:inset 0 1px #fff1,0 6px 20px #0003;font-size:29px;line-height:1.3}
.gl-recent-spark{color:var(--gl-accent);font-size:42px;flex:none}.gl-recent strong{color:#fff3d2}.gl-recent .tt-core-avatar{font-size:24px}
.gl-recent>span:last-child{min-width:0;overflow-wrap:anywhere}
.gl-release-note{margin:15px 8px 0;padding:12px 16px;border-radius:12px;background:#151716ed;color:#ccc5b6;font-size:22px;line-height:1.45;text-align:center}.gl-release-note a{color:#ead59b;text-underline-offset:4px}
.gl-mode{position:absolute;top:139px;left:40px;width:1000px;margin:0;text-align:center;color:#ead59b;font-size:25px;font-weight:750;letter-spacing:1px}.gl-mode:empty{display:none}
.gl-empty{text-align:center;font-size:42px;padding:130px 45px;color:#e1d5bb}
.source-page #legend-stage .tt-core-overlay-status{position:absolute;left:40px;top:22px;width:1000px;max-width:none;transform:none;margin:0}
.source-page #legend-stage .tt-core-notice{font-size:26px;padding:14px 24px;background:#252521f5;border-color:#a28b51;color:#e4dbc8;line-height:1.45}
.source-page #legend-stage .tt-core-notice strong{font-size:30px;color:#ffe6ac}
[data-tt-gift-icons=off] .gl-medallion{display:none}
[data-tt-gift-icons=off] .gl-gift-name{font-size:43px}
[data-arrows=off] .gl-link{visibility:hidden}
[data-coins=off] .gl-coins{display:none}
[data-dense=true] .gl-track{padding-top:4px}
[data-dense=true] .gl-row{padding:12px 18px;margin-bottom:12px;height:calc(var(--row-step,214px) - 12px);grid-template-columns:358px 68px minmax(0,1fr)}
[data-dense=true] .gl-medallion{width:106px;height:116px;border-radius:24px}
[data-dense=true] .gl-medallion img{width:96px;height:96px}
[data-dense=true] .gl-gift-name{font-size:32px}
[data-dense=true] .gl-coins{font-size:26px;margin-top:9px}
[data-dense=true] .gl-action{font-size:37px}
[data-dense=true] .gl-action-wrap{gap:6px}
[data-dense=true] .gl-count{font-size:23px}
[data-reduced=true] .gl-particle{display:none}
[data-reduced=true] .gl-pop{animation:none}
[data-reduced=true] .gl-medallion{animation:none}
@keyframes gl-lift{0%,100%{transform:rotate(-4deg)}35%{transform:translateY(-8px) rotate(3deg) scale(1.05)}}
@keyframes gl-pop{0%{opacity:0;transform:translateY(15px) scale(.6)}15%{opacity:1;transform:translateY(-4px) scale(1.08)}30%,78%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-25px) scale(.95)}}
@keyframes gl-spark{0%{opacity:0;transform:translate(0,0) scale(.2)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.25)}}
@media(prefers-reduced-motion:reduce){.gl-particle{display:none}.gl-pop,.gl-row.is-lit .gl-medallion{animation:none}}
