.game-world{position:relative;min-height:1420px;margin:0 calc(50% - 50vw);overflow:hidden;padding:5rem max(4vw,calc((100vw - 1320px)/2)) 12rem;background:radial-gradient(ellipse at 72% 13%,#12325288,transparent 34%),radial-gradient(ellipse at 50% 83%,#80571d33,transparent 38%),linear-gradient(#070706,#0d0a07)}
.game-world:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 79px,#c7953822 80px),repeating-linear-gradient(0deg,transparent 0 79px,#c7953817 80px);mask-image:linear-gradient(transparent,#000 30%,#000 74%,transparent)}
.star-canopy{position:absolute;inset:0;width:100%;height:48%;opacity:.9}.game-title{position:relative;z-index:2;max-width:600px;padding-top:2rem}
.game-title h1{margin:.25rem 0 2.2rem;color:#e9c778;font:600 clamp(3.2rem,6.5vw,6.8rem)/1.12 Georgia,"Songti SC",serif;letter-spacing:.08em;text-shadow:0 2px 0 #4d2d08,0 0 32px #d69c3944}
.parchment-label{position:relative;display:grid;width:280px;min-height:190px;align-content:center;padding:1.4rem 2.2rem;color:#241609;background:linear-gradient(120deg,#cfaf75,#f0ddb0 46%,#b88e51);border:3px double #4d2e0b;box-shadow:0 0 0 7px #a7793244,0 18px 50px #000}.parchment-label:before,.parchment-label:after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);color:#674112}.parchment-label:before{left:.5rem}.parchment-label:after{right:.5rem}.parchment-label small{font-weight:800;letter-spacing:.25em}.parchment-label strong{font:700 2.8rem Georgia,"Songti SC",serif}.parchment-label span{margin-top:.7rem;color:#5e452c;font-size:.8rem}
.canopy-portals{position:relative;z-index:3;display:flex;justify-content:flex-end;gap:1.2rem;margin:-2rem 0 4rem}.canopy-portals a{display:grid;place-items:center;width:160px;aspect-ratio:1;padding:1rem;border:2px solid #b98a42;border-radius:50%;background:radial-gradient(circle,#172d3d 0 36%,#0d0b09 68%);color:#ead7ae;text-align:center;text-decoration:none;box-shadow:inset 0 0 0 7px #060606,0 0 0 1px #f0c46d,0 0 36px #2caaff44;transition:.25s}.canopy-portals a:hover,.canopy-portals a:focus-visible{transform:translateY(-7px);box-shadow:inset 0 0 0 7px #060606,0 0 0 1px #f0c46d,0 0 52px #2caaff88}.canopy-portals span{color:#77c8ff;font-size:2.4rem}.canopy-portals strong{font:700 1rem Georgia,"Songti SC",serif}.canopy-portals small{color:#af9d7b;font-size:.68rem}
.today-stories{position:relative;z-index:4;margin-top:2rem;text-align:center}.today-stories header h2{margin:.1rem;font:600 clamp(2rem,4vw,3.5rem) Georgia,"Songti SC",serif}.today-stories header>p:last-child{color:#bfae8c}.today-card-row{display:flex;justify-content:center;align-items:flex-start;gap:1rem;margin:2.5rem auto;perspective:1200px}.today-card{position:relative;display:grid;width:min(210px,19%);min-height:290px;align-content:start;padding:8px 8px 1rem;border:1px solid #ca994c;background:linear-gradient(145deg,#26180e,#0e0c0b 58%);color:#ead9b9;text-align:left;box-shadow:inset 0 0 0 4px #0a0907,0 14px 35px #000b;cursor:pointer;transition:.25s}.today-card:nth-child(even){transform:translateY(28px)}.today-card:hover,.today-card:focus-visible,.today-card.is-selected{z-index:2;border-color:#8ed7ff;transform:translateY(-12px) scale(1.025);box-shadow:inset 0 0 0 4px #0a0907,0 0 36px #4ec1ff66}.today-card small{padding:.6rem .6rem 0;color:#c8994a;font-size:.62rem}.today-card strong{padding:.2rem .6rem;font:700 .95rem/1.35 Georgia,"Songti SC",serif}.card-portrait{display:grid;place-items:center;min-height:130px;border:1px solid #715125;background:radial-gradient(circle,#436b8155,#10141a 48%,#080707);color:#9ad9ff;font-size:4rem;text-shadow:0 0 24px #5bc8ff}.card-heat{margin:.7rem .6rem 0;color:#e49e45;font-size:.68rem}.game-hint{margin-top:4.5rem;color:#d9a64c;font-size:.8rem;letter-spacing:.12em}.game-hint span{display:block;font-size:2rem;animation:root-pulse 1.8s infinite}
.ornamental-tree{position:absolute;left:50%;bottom:-25px;z-index:1;width:260px;height:600px;transform:translateX(-50%)}.ornamental-tree:before{content:"";position:absolute;left:50%;bottom:0;width:128px;height:570px;transform:translateX(-50%);background:linear-gradient(90deg,#38220d,#bb8540 42%,#4a2d10);clip-path:polygon(38% 0,62% 0,82% 62%,100% 100%,0 100%,18% 62%);filter:drop-shadow(0 0 20px #b47b2d44)}.tree-crown{position:absolute;left:50%;top:-50px;width:940px;height:300px;transform:translateX(-50%);border:4px solid #9b6d2e;border-width:4px 0 0;border-radius:50%;background:radial-gradient(ellipse,#7e9b4c22,transparent 66%)}.tree-bough{position:absolute;top:100px;width:360px;height:150px;border-top:18px solid #80572a}.bough-left{right:55%;transform:rotate(12deg);border-radius:65% 0}.bough-right{left:55%;transform:rotate(-12deg);border-radius:0 65%}@keyframes root-pulse{50%{transform:translateY(.5rem);opacity:.55}}
.cultural-tree{margin:0 calc(50% - 50vw);padding-top:5rem;background:radial-gradient(ellipse at 50% 30%,#593b1638,transparent 40%),#0c0906}.tree-stage{position:relative;max-width:1240px;margin:auto;padding:0 3rem}.tree-legend{position:sticky;top:90px;z-index:4;float:left;display:grid;width:170px;padding:1.2rem;border:3px double #a97831;background:linear-gradient(135deg,#e4c997,#b58c51);color:#2b1a0b;box-shadow:0 15px 40px #0008}.tree-legend strong{font:700 1.35rem Georgia,"Songti SC",serif}.tree-legend span{margin:.7rem 0;font-size:.72rem}.tree-legend small{padding-top:.7rem;border-top:1px solid #68491f}.tree-trunk{max-width:820px;margin:auto}.era-branch{min-height:92px}.era-copy>span{display:none}.era-branch.is-lit{border-color:#8cd8ff;box-shadow:inset 0 0 0 3px #090806,0 0 32px #50bfff55}.ground-line{height:120px;border-top-width:7px}.ground-line span{padding:.8rem 2rem;border:4px double #b48845;white-space:nowrap}
.root-system{padding-top:5rem}.root-network{grid-template-columns:repeat(5,1fr);max-width:1200px;margin:4rem auto 0}.root-network:before{display:none}.root-network button{position:relative;display:grid;place-items:center;min-height:170px;padding:1.2rem;border:1px solid #8d6a35;border-radius:50%;background:radial-gradient(circle,#31210f,#120d08 68%);color:#e7c37e;box-shadow:0 0 0 5px #0a0705,0 0 34px #a8782920;cursor:pointer}.root-network button:nth-child(n+6){transform:translateX(52%)}.root-network button:hover,.root-network button:focus-visible,.root-network button.is-unlocked{border-color:#84d7ff;box-shadow:0 0 0 5px #0a0705,0 0 42px #45c5ff66}.root-network button>span{font-size:2.2rem}.root-network strong{font:700 1rem Georgia,"Songti SC",serif}.root-network small{color:#aa9674;font-size:.66rem}.reset-journey{position:relative;margin-top:5rem;padding:.9rem 3rem;border:4px double #a87b3a;background:#d4b47b;color:#27170a;font:700 1rem Georgia,"Songti SC",serif;cursor:pointer}
.story-quest{width:min(620px,calc(100% - 2rem));padding:2.2rem;border:3px double #d0a152;background:radial-gradient(circle at 50% 0,#263b48,#15110d 48%);color:#f2e2c5;box-shadow:0 0 0 8px #090806,0 0 80px #4fc3ff44}.story-quest::backdrop{background:#020202cc;backdrop-filter:blur(5px)}.story-quest h2{margin:.2rem 0;font:700 2rem Georgia,"Songti SC",serif}.story-quest>p:not(.kicker){color:#bdaa88}.quest-close{position:absolute;top:.8rem;right:1rem;border:0;background:none;color:#d4aa66;font-size:2rem;cursor:pointer}.quest-route{display:flex;justify-content:space-between;gap:.5rem;margin:2rem 0;padding:0;list-style:none}.quest-route li{flex:1;padding:.6rem;border:1px solid #6b5636;color:#8f8068;text-align:center;font-size:.72rem}.quest-route li.is-active{border-color:#65caff;color:#bceaff}.quest-actions{display:flex;gap:1rem}.quest-actions button,.quest-actions a{flex:1;padding:.8rem 1rem;border:1px solid #c7974a;background:#d5b473;color:#28190b;text-align:center;text-decoration:none;font-weight:800;cursor:pointer}.quest-actions a{background:transparent;color:#e3bd77}
@media(prefers-reduced-motion:reduce){.game-hint span{animation:none}.today-card,.canopy-portals a{transition:none}}
@media(max-width:760px){.game-world{min-height:1540px;padding:3rem 1rem 10rem}.game-title{text-align:center}.game-title h1{font-size:clamp(3rem,15vw,4.5rem)}.parchment-label{width:230px;min-height:150px;margin:auto}.parchment-label strong{font-size:2.2rem}.canopy-portals{justify-content:center;gap:.5rem;margin:3rem 0}.canopy-portals a{width:105px}.canopy-portals span{font-size:1.7rem}.canopy-portals small{display:none}.today-card-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.today-card{width:100%;min-height:240px}.today-card:nth-child(even){transform:none}.today-card:hover,.today-card:focus-visible,.today-card.is-selected{transform:translateY(-4px)}.card-portrait{min-height:95px}.today-card:last-child{grid-column:1/-1;width:50%;justify-self:center}.tree-stage{padding:0 1rem}.tree-legend{position:relative;top:0;float:none;width:100%;margin-bottom:2rem}.root-network{grid-template-columns:repeat(2,1fr);gap:1rem}.root-network button,.root-network button:nth-child(n+6){min-height:150px;transform:none}.root-network button:last-child{grid-column:1/-1;width:50%;justify-self:center}.quest-actions{flex-direction:column}}

/* v1.1 componentized life-tree scene */
.game-world{min-height:1320px;isolation:isolate}
.life-tree-picture{display:contents}
.game-world>*:not(.life-tree-art,.star-canopy,.ornamental-tree){position:relative;z-index:3}
.life-tree-art{position:absolute;z-index:1;left:50%;top:105px;width:min(1040px,76vw);height:auto;transform:translateX(-38%);opacity:.7;filter:sepia(.16) saturate(.9) brightness(.68) drop-shadow(0 0 34px #c9953a22);pointer-events:none;user-select:none}
.ornamental-tree{display:none}
.canopy-portals{margin:-1rem 0 2rem;padding-left:min(42vw,560px)}
.canopy-portals a{width:140px;background:radial-gradient(circle at 50% 42%,#173d58 0 31%,#17110c 32% 66%,#060504 68%);box-shadow:inset 0 0 0 6px #080705,0 0 0 1px #f0c46d,0 0 34px #2caaff42}
.today-stories{max-width:1100px;margin:0 auto;padding-top:2rem}
.today-stories header{max-width:620px;margin:auto;padding:1rem;background:#080705bb;backdrop-filter:blur(4px)}
.today-card-row{align-items:stretch}
.today-card{width:min(190px,19%);min-height:270px;background:linear-gradient(145deg,#2d1a0d,#0c0c0d 58%);text-decoration:none;backdrop-filter:blur(5px)}
.today-card.is-placeholder{cursor:default}
.today-card.is-placeholder:hover{z-index:auto;border-color:#ca994c;transform:none;box-shadow:inset 0 0 0 4px #0a0907,0 14px 35px #000b}
.today-card.is-placeholder:nth-child(even):hover{transform:translateY(22px)}
.today-card:nth-child(even){transform:translateY(22px)}
.cultural-tree{position:relative;overflow:hidden;padding-top:6rem;background:radial-gradient(ellipse at 50% 30%,#6f4b1838,transparent 42%),linear-gradient(#0a0806,#120c07 72%,#090603)}
.cultural-tree:before{content:"";position:absolute;z-index:0;left:50%;top:120px;width:min(740px,64vw);height:1180px;transform:translateX(-50%);background:url("../images/life-tree-layer-v1.webp") center top/contain no-repeat;opacity:.42;filter:sepia(.25) brightness(.6) drop-shadow(0 0 24px #b77d2522);pointer-events:none}
.cultural-tree>*{position:relative;z-index:1}
.tree-intro{max-width:700px;margin:0 auto 3rem;padding:1rem 2rem;background:#090705c9;text-align:center;backdrop-filter:blur(5px)}
.tree-stage{max-width:1120px}
.tree-trunk{display:grid;gap:1.25rem;max-width:720px}
.tree-era{position:relative}
.tree-era:nth-child(odd){transform:translateX(12%)}
.tree-era:nth-child(even){transform:translateX(-12%)}
.era-branch{min-height:84px;background:linear-gradient(90deg,#17100bd9,#322113e8 48%,#100c09e0)}
.story-blossoms{max-width:82%;margin:.45rem auto 0}
.root-system{position:relative;overflow:hidden;padding-bottom:8rem;background:linear-gradient(#130b05,#080503)}
.root-system:before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 50% -10%,transparent 0 72px,#9a69200d 74px 76px);pointer-events:none}
.root-network{position:relative;gap:1.4rem}
.root-network button{min-height:158px;background:radial-gradient(circle at 50% 38%,#4b3218,#171009 58%,#070504 72%);box-shadow:0 0 0 5px #080503,0 0 0 7px #8d652d,0 18px 34px #0009}
.root-network button:after{content:"";position:absolute;top:-55px;left:50%;width:1px;height:55px;background:linear-gradient(transparent,#9d7435);transform:rotate(var(--root-angle,0deg));transform-origin:bottom}
.root-network button:nth-child(2n){--root-angle:18deg}.root-network button:nth-child(3n){--root-angle:-18deg}
@media(max-width:900px){
  .life-tree-art{top:210px;width:1040px;max-width:none;transform:translateX(-48%);opacity:.45}
  .canopy-portals{justify-content:center;padding-left:0;margin:3rem 0}
  .today-stories{padding-top:0}
  .tree-era:nth-child(n){transform:none}
}
@media(max-width:760px){
  .game-world{min-height:auto;padding-bottom:6rem}
  .life-tree-art{top:320px;width:760px;opacity:.28}
  .game-title{padding-top:0}.game-title h1{font-size:clamp(2.8rem,14vw,4.2rem)}
  .canopy-portals{display:grid;grid-template-columns:repeat(3,1fr)}
  .canopy-portals a{width:100%;max-width:108px;justify-self:center}
  .today-card-row{grid-template-columns:1fr 1fr}
  .today-card{width:100%;min-height:235px}.today-card:nth-child(even){transform:none}
  .today-card:last-child{width:100%}
  .cultural-tree{padding-top:4rem}.cultural-tree:before{top:210px;width:920px;max-width:none;opacity:.25}
  .tree-intro{margin-inline:1rem}.tree-trunk{gap:.8rem}
  .era-branch{min-height:78px}.story-blossoms{max-width:100%}
  .root-network{grid-template-columns:1fr 1fr}.root-network button{min-height:145px}
}
