/* Jungle setting, readable artwork and one clear navigation system. */
:root{--jungle-glow:#ffb955;--jungle-rgb:255,185,85;--page-gutter:clamp(20px,5vw,88px)}
body.jungle{background:#040d09;isolation:isolate}
.jungle[data-biome=papaya]{--jungle-glow:#f899e5;--jungle-rgb:231,99,203}
.jungle[data-biome=gas]{--jungle-glow:#b7ff55;--jungle-rgb:155,255,60}
.jungle[data-biome=moon]{--jungle-glow:#7bdfff;--jungle-rgb:80,190,255}
.canopy-backdrop{position:absolute;inset:0 0 auto;height:1080px;z-index:-2;background:linear-gradient(90deg,#020b069c,#020b0625 62%),linear-gradient(180deg,#020b0320 0%,#030e0530 60%,#040d09 100%),url('assets/jungle-canopy.webp') center top/cover no-repeat;pointer-events:none}
.reading-progress{position:fixed;left:0;top:0;height:2px;width:0;background:var(--jungle-glow);z-index:20;box-shadow:0 0 14px var(--jungle-glow)}
.jungle .header{position:relative;z-index:4;min-height:88px;padding:18px var(--page-gutter);background:#03100875;border-color:#c7dc9c22;gap:24px}
.header nav{gap:32px;color:#e4e8d6;font-size:13px}
.header nav a{transition:color .2s}
.jungle .hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:'copy studio' 'actions studio';grid-template-rows:1fr 1fr;column-gap:6%;row-gap:28px;min-height:0;padding:46px var(--page-gutter) 56px;overflow:visible;align-items:stretch}
.jungle .hero-copy{grid-area:copy;align-self:end;min-width:0;padding:0;text-shadow:0 2px 24px #0006}
.jungle .hero-copy:before{display:none}
.jungle .hero .eyebrow{color:#e1e7c4;letter-spacing:1.8px;font-size:10px;margin:0}
.jungle .hero h1{font-size:clamp(88px,9.4vw,152px);line-height:.86;letter-spacing:-2px;margin:28px 0 26px;max-width:100%}
.hero-kicker{display:block;font-size:.37em;line-height:1.2;letter-spacing:-.5px;margin-bottom:.24em;color:#f4efdc}
.jungle .hero h1 .outline{display:block;font-size:1em;-webkit-text-stroke:0;color:#d5ed9e;text-shadow:0 8px 50px #b9e56212;white-space:normal;overflow-wrap:normal}
.jungle .intro{font-size:16px;color:#d5dec9;line-height:1.75;margin:0;max-width:440px}
.hero-actions{grid-area:actions;align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.jungle .button{border-radius:5px;background:#d5ed9e;padding:16px 24px;box-shadow:none;font-size:13px;gap:40px;min-height:52px;transition:background .2s,transform .2s}
.jungle .button:hover{background:#edffc4;transform:translateY(-2px)}
.hero-actions p{color:#aabca4;font-size:11px;margin:0;line-height:1.6}

/* Viewer: artwork, selection, then utilities. */
.jungle .studio{grid-area:studio;min-width:0;margin:0;padding:0;background:linear-gradient(145deg,#10271be8,#05130eea);border:1px solid #d1e3a635;border-radius:20px;box-shadow:0 24px 80px #0005,0 0 70px rgba(var(--jungle-rgb),.08);backdrop-filter:blur(12px);transition:box-shadow .6s}
.jungle .studio-topline{display:flex;justify-content:space-between;padding:18px 22px;background:transparent;border-bottom:1px solid #c6d7981c;font-size:9px;letter-spacing:1.5px;color:#c1cfb5}
.jungle .studio-topline>span:last-child{display:inline;font-variant-numeric:tabular-nums;color:#f4efdc;letter-spacing:1px}
.live-dot{box-shadow:0 0 10px color-mix(in srgb,var(--world) 50%,transparent)}
.jungle .studio-stage{min-height:0;aspect-ratio:1.8;background:radial-gradient(ellipse,rgba(var(--jungle-rgb),.12),transparent 72%)}
.jungle .studio-stage:before{display:none}
.studio-caption{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 22px 18px}
.jungle .studio-caption .eyebrow{font-size:8px;letter-spacing:1.6px;color:#9eb297;margin:0 0 5px}
.studio-caption h2{font-family:var(--display);font-style:italic;font-weight:800;font-size:29px;line-height:1.05;letter-spacing:.2px;margin:0;overflow-wrap:anywhere}
.studio-caption button{border:0;border-bottom:1px solid #cbdcb250;background:transparent;padding:8px 0;color:#e5eed8;font-size:11px;white-space:nowrap;min-height:44px}
.studio-caption button span{margin-left:12px}
.studio-caption button:hover{color:var(--world);border-color:var(--world)}
.jungle .world-picker{padding:0 20px 16px;gap:8px}
.jungle .world-picker button{font-size:12px;font-weight:500;letter-spacing:0;gap:10px;min-height:47px;padding:10px 12px;border-radius:6px;background:#07160d99;border-color:#b4d5a430;color:#becbb3;transition:border-color .2s,background .2s}
.jungle .world-picker button:hover{border-color:#c5d8b67a;color:#f4efdc}
.jungle .world-picker button.selected{border-color:var(--world);background:color-mix(in srgb,var(--world) 10%,#0a170d);color:#f4efdc}
.world-picker small{font-size:9px;color:#a0b392}
.studio-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:12px 20px;border-block:1px solid #c6d7981c;background:#02100933}
.jungle .studio-status{min-height:0;padding:0;border:0;text-align:left;font-size:10px;line-height:1.65;color:#acbda1;flex:1}
.jungle .studio-controls{padding:0;gap:8px}
.jungle .studio-controls button{background:#12251b;border-color:#abc79130;border-radius:5px;font-size:11px;min-height:44px;padding:8px 14px}
.jungle .studio-controls button:hover{border-color:#c8dda377;background:#203729}
.studio-controls #rotate-left,.studio-controls #rotate-right{min-width:44px;font-size:19px;padding:4px 10px}
.jungle .studio-footer{padding:4px 20px;align-items:center;gap:16px}
.jungle .studio-footer button{min-height:44px;padding:8px 0;color:#cbd7be;font-size:11px;border:0;background:transparent}
.jungle .studio-footer button:hover{color:#f4efdc}
.atmosphere-controls{display:flex;margin:0;gap:0}
.atmosphere-controls button:before{content:'';display:inline-block;width:6px;height:6px;margin-right:8px;border:1px solid #cbd7be;border-radius:50%;vertical-align:1px}
.atmosphere-controls button[aria-pressed=true]:before{background:#cbd7be;box-shadow:0 0 9px #cbd7be77}
.enter-3d{bottom:12px}

/* Gallery and editorial sections. */
.jungle .ticker{transform:none;background:#0b1911;color:#bfceac;border-block:1px solid #bfd67d26;box-shadow:none;padding:17px var(--page-gutter);font-size:15px;justify-content:space-between;gap:25px}
.jungle .ticker img{filter:none;opacity:.65;width:17px;height:21px}
.jungle .section{padding:88px var(--page-gutter)}
.jungle .collection{background:radial-gradient(ellipse at 0% 30%,#29432435,transparent 55%)}
.jungle .section-head{align-items:center;gap:30px}
.jungle .section-head h2{font-size:clamp(44px,5.5vw,80px);line-height:1;margin:12px 0 0}
.jungle .section-head h2 span{color:#d5ed9e}
.jungle .section-head>p{font-size:13px;color:#acbda5;line-height:1.8}
.jungle .filters{padding:30px 0 18px;margin:0 0 28px;border-color:#c6d7982b;gap:8px}
.jungle .filters button{font-size:12px;min-height:44px;border-color:#c6d79836;padding:10px 18px}
.jungle .filters button.active{background:#d5ed9e;border-color:#d5ed9e}
.jungle .grid{gap:36px 28px}
.jungle .strain{padding:0;background:#0c1b13;border:1px solid #c6d79826;box-shadow:none;overflow:hidden;border-radius:10px;transform:none}
.jungle .card-art{aspect-ratio:1.5;border:0;border-radius:0}
.jungle .card-art img{transition:transform .55s cubic-bezier(.2,.6,.2,1)}
.jungle .card-art:hover img{transform:scale(1.035)}
.jungle .card-index{font-size:9px;padding:9px 11px;background:#061009e6;border-color:#e2edc330}
.jungle .card-art .round-arrow{background:#061009d9;backdrop-filter:blur(6px)}
.jungle .card-info{padding:22px 22px 25px;gap:15px;border-top:1px solid #c6d7981c}
.jungle .card-info h3{font-size:32px;margin-bottom:8px}
.jungle .card-info p{font-size:12px;color:#acbda5}
.jungle .collection-note{margin:30px 0 0;font-size:11px;color:#8da486}
.jungle .universe{background:linear-gradient(90deg,#061009d9,#061009e8),url('assets/jungle-canopy.webp') center 60%/cover;border-block:1px solid #c6d79826;align-items:center;gap:10%}
.jungle .universe:before{display:none}
.jungle .universe h2{font-size:clamp(46px,6vw,84px);margin:24px 0 0;line-height:.98}
.jungle .universe .outline{-webkit-text-stroke:1px #c5dfa0}
.jungle .universe-copy{padding:0}
.jungle .universe-copy p{font-size:15px;line-height:1.85;color:#bccab1}
.jungle .big-star{display:none}
.jungle .text-link{border-color:#bfd67d40;color:#d5ed9e}
.jungle .qr-section{background:#07160f;color:#f4efdc;gap:12%}
.jungle .qr-section .eyebrow{color:#bdce9e}
.jungle .qr-copy h2{font-size:clamp(46px,5.5vw,78px);margin:24px 0;line-height:1}
.jungle .qr-copy h2 span{-webkit-text-stroke-color:#c5dfa0}
.jungle .qr-copy>p:not(.eyebrow){color:#acbda5;font-size:14px;line-height:1.85}
.jungle .qr-actions{flex-wrap:wrap;gap:18px 24px}
.jungle .qr-actions .button{background:#d5ed9e;color:#142018}
.jungle .qr-actions .text-link{color:#d5ed9e;border-color:#d5ed9e50;font-size:12px;min-height:44px}
.jungle .qr-copy .qr-destination{font-size:11px!important}
.jungle .qr-display{box-shadow:0 20px 60px #0003;transform:none;max-width:330px;background:#102219;border:1px solid #aecf7840;border-radius:12px;padding:30px}
.jungle .qr-display img{border-radius:0}
.jungle .qr-display>span{color:#a9ba9c;font-size:9px;letter-spacing:1.4px}
.jungle .closing{background:#d1e5a4;padding:50px var(--page-gutter) 32px}
.jungle .domain{font-size:clamp(42px,10vw,144px);margin:16px 0 28px;letter-spacing:-1.5px}
.jungle .closing>div{font-size:12px;align-items:center}
.jungle .closing>div a{padding:12px 0;min-height:44px}
.jungle footer{padding:26px var(--page-gutter);border-top:1px solid #a8c16e33;gap:18px}
.jungle footer p{font-size:11px;line-height:1.6}
.jungle footer a:hover{color:#d5ed9e}
.dialog-head h2{font-size:34px}
.dialog-bottom{font-size:13px;gap:24px}
#save-artwork{font-size:12px;padding:14px 0}
.next-world{min-height:44px}

/* Existing ambient motion stays at the edges and never intercepts input. */
.fireflies{position:absolute;inset:0 0 auto;height:1000px;overflow:hidden;pointer-events:none;z-index:3}
.fireflies i{position:absolute;width:3px;height:3px;border-radius:50%;background:#ffe6a0;box-shadow:0 0 10px 3px #e8ff5744;animation:drift var(--duration,12s) ease-in-out infinite alternate;animation-delay:var(--delay,0s)}
@keyframes drift{0%{transform:translate(0,0);opacity:.12}40%{opacity:.65}100%{transform:translate(35px,-65px);opacity:.2}}
.motion-paused .fireflies i{animation-play-state:paused}
.motion-paused *{scroll-behavior:auto!important}
.resin-drops{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;border-radius:inherit;contain:layout paint}
.resin-drop{position:absolute;display:block;width:var(--drop-size);height:calc(var(--drop-size)*1.35);border-radius:8% 70% 65% 70%;background:radial-gradient(ellipse at 32% 25%,#fff7bf 0%,#ffe6a9 9%,#ffcc51 18%,#d9870b 53%,#723202 86%);border:1px solid #ffc965aa;box-shadow:inset -2px -2px 3px #58270188,0 2px 11px #ffbb393b;transform:rotate(45deg);opacity:0;animation:resin-fall var(--drop-time) cubic-bezier(.42,0,.65,1) var(--drop-delay) infinite;transform-origin:top left}
.resin-drop:after{content:'';position:absolute;left:20%;top:18%;width:19%;height:42%;border-radius:50%;background:#fff8d4aa;filter:blur(.4px)}
@keyframes resin-fall{0%{transform:translate3d(0,0,0) rotate(45deg) scale(.45);opacity:0}8%{opacity:.8}23%{transform:translate3d(0,15px,0) rotate(45deg) scale(.9);opacity:.9}72%{opacity:.8}88%{transform:translate3d(0,var(--fall-distance),0) rotate(45deg) scale(.85);opacity:0}100%{transform:translate3d(0,var(--fall-distance),0) rotate(45deg) scale(.85);opacity:0}}
.motion-paused .resin-drop{animation-play-state:paused}

@media(min-width:1700px){.jungle .hero{column-gap:8%;padding-block:68px}.jungle .studio-stage{aspect-ratio:1.8}.jungle .hero h1{font-size:clamp(152px,9vw,200px)}}
@media(max-width:1100px) and (min-width:801px){.jungle .hero{column-gap:4%}.jungle .hero h1{font-size:9.4vw}.jungle .studio-stage{aspect-ratio:1.35}.jungle .intro{font-size:14px}.jungle .hero .eyebrow{font-size:9px;letter-spacing:1.2px}.jungle .world-picker button{font-size:10px;padding-inline:9px;gap:7px}.world-picker small{display:none}.studio-caption h2{font-size:26px}}
@media(min-width:801px) and (max-width:1100px){.studio-tools{display:block}.jungle .studio-status{text-align:center;padding-bottom:9px}}
@media(max-width:800px){
 :root{--page-gutter:24px}
 .canopy-backdrop{height:1100px;background-position:38% top}
 .jungle .header{min-height:76px;padding:16px var(--page-gutter);flex-wrap:nowrap;gap:18px;background:#041109a0}
 .wordmark{font-size:24px;flex-shrink:0}
 .header nav{display:flex;gap:20px;order:initial;flex:initial;justify-content:flex-end;border:0;font-size:12px}
 .header nav a{padding:0;white-space:nowrap}
 .jungle .hero{grid-template-columns:minmax(0,1fr);grid-template-areas:'copy' 'studio' 'actions';grid-template-rows:auto;gap:25px;padding:30px var(--page-gutter) 40px;min-height:0}
 .jungle .hero-copy{padding:0;align-self:auto}
 .jungle .hero .eyebrow{font-size:9px;letter-spacing:1.6px}
 .jungle .hero h1{font-size:clamp(88px,20vw,128px);margin:18px 0 16px;line-height:.86;letter-spacing:-1px}
 .hero-kicker{font-size:.36em;margin-bottom:.2em;letter-spacing:0}
 .jungle .intro{font-size:14px;line-height:1.65}
 .hero-actions{align-items:center;gap:12px}
 .jungle .hero-actions .button{width:100%;justify-content:space-between}
 .jungle .studio{border-radius:14px;padding:0}
 .jungle .studio-stage{min-height:0;aspect-ratio:1.6}
 .jungle .studio-topline{padding:14px 18px;font-size:8px;letter-spacing:1.3px}
 .studio-caption{padding:4px 18px 15px;gap:15px}
 .studio-caption h2{font-size:28px}
 .jungle .studio-caption .eyebrow{font-size:8px;letter-spacing:1.3px}
 .studio-caption button{font-size:11px}
 .studio-caption button span{margin-left:7px}
 .jungle .world-picker{padding:0 16px 15px;gap:7px}
 .jungle .world-picker button{font-size:12px;padding:10px;gap:9px}
 .world-picker small{display:none}
 .studio-tools{display:block;padding:10px 16px 12px}
 .jungle .studio-status{font-size:10px;min-height:28px;padding-bottom:8px;text-align:center}
 .jungle .studio-controls{gap:7px;flex-wrap:wrap}
 .jungle .studio-controls button{font-size:11px;min-height:44px;padding-inline:13px}
 .jungle .studio-footer{padding:4px 16px;flex-wrap:nowrap;gap:12px}
 .jungle .studio-footer button{font-size:11px}
 .atmosphere-controls{margin:0}
 .jungle .ticker{font-size:14px;justify-content:flex-start;padding-block:15px;gap:22px}
 .jungle .section{padding:56px var(--page-gutter)}
 .jungle .section-head{display:block}
 .jungle .section-head h2{font-size:clamp(42px,8vw,62px)}
 .jungle .section-head>p{font-size:13px;margin:18px 0 0}
 .jungle .filters{padding-top:24px;margin-bottom:24px}
 .jungle .filters button{font-size:12px;padding:10px 14px}
 .jungle .grid{gap:24px}
 .jungle .card-info{padding:19px 18px 22px}
 .jungle .card-info h3{font-size:30px}
 .jungle .card-art{aspect-ratio:1.5}
 .jungle .universe{grid-template-columns:1fr;gap:30px}
 .jungle .universe h2{font-size:clamp(46px,8vw,64px);margin-top:18px}
 .jungle .universe-copy p{font-size:14px;margin-top:0}
 .jungle .qr-section{grid-template-columns:1fr;gap:36px}
 .jungle .qr-copy h2{font-size:clamp(43px,8vw,64px);margin:20px 0}
 .jungle .qr-copy>p:not(.eyebrow){font-size:13px}
 .jungle .qr-display{max-width:310px;padding:28px}
 .jungle .qr-actions .button{font-size:12px;gap:24px;padding:14px 18px}
 .jungle .closing{padding:38px var(--page-gutter) 24px}
 .jungle .domain{font-size:12vw}
 .jungle .closing>div{display:flex;font-size:10px;gap:15px}
 .jungle .closing>div a{margin:0;white-space:nowrap}
 .jungle footer{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding-block:24px}
 .jungle footer p{font-size:10px;margin:0}
 .jungle footer p:last-child{grid-column:1 / -1}
 .fireflies{height:1000px}
 .resin-drop:nth-child(even){display:none}
 .resin-drop{--drop-size:8px!important;--fall-distance:210px!important}
 .dialog-bottom{font-size:12px;gap:16px}
 .dialog-head h2{font-size:28px}
}
@media(max-width:520px){
 :root{--page-gutter:20px}
 .jungle .header{min-height:72px;padding-block:12px;gap:15px}
 .wordmark{font-size:22px;padding-left:28px}
 .wordmark:before{width:21px;height:28px}
 .header nav{font-size:11px;gap:15px}
 .jungle .hero{padding-top:25px;gap:22px}
 .jungle .hero h1{font-size:24vw}
 .jungle .hero .eyebrow{font-size:8px;letter-spacing:1.25px}
 .jungle .intro{font-size:13px}
 .jungle .studio-stage{aspect-ratio:1.35}
 .jungle .world-picker button{font-size:10px;padding:10px 9px;gap:8px;min-height:46px}
 .jungle .studio-caption .eyebrow{font-size:7px}
 .studio-caption h2{font-size:26px}
 .jungle .grid{grid-template-columns:1fr}
 .jungle .section-head h2{font-size:11.2vw;letter-spacing:-.5px}
 .jungle .card-info h3{font-size:30px}
 .jungle .filters button{font-size:11px;padding-inline:12px}
 .jungle .qr-copy h2{font-size:11.3vw}
}
@media(max-width:360px){
 :root{--page-gutter:16px}
 .jungle .header{gap:12px}
 .wordmark{font-size:20px;padding-left:24px}
 .wordmark:before{width:18px;height:25px}
 .header nav{gap:10px;font-size:10px}
 .jungle .hero .eyebrow{font-size:7px;letter-spacing:1.15px}
 .jungle .studio-topline{padding-inline:14px;letter-spacing:1px}
 .studio-caption{padding-inline:14px;gap:10px}
 .studio-caption h2{font-size:23px}
 .studio-caption button{font-size:10px}
 .jungle .world-picker{padding-inline:12px}
 .jungle .world-picker button{font-size:9px;gap:6px}
 .jungle .studio-footer{padding-inline:12px;gap:9px}
 .jungle .studio-footer button{font-size:10px}
 .jungle .studio-controls button{padding-inline:10px}
 .jungle .filters button{font-size:10px;padding-inline:11px}
 .jungle .universe h2{font-size:14.5vw}
 .jungle .qr-actions{gap:12px}
}
@media(prefers-reduced-motion:reduce){.fireflies i{animation:none;opacity:.25}.resin-drops{display:none}.jungle *{scroll-behavior:auto!important}}
