/* Species field guide. The site's dark stage, lit by each species' own star (--star for accents, --sun for its
   star's colour). Every chapter leads with a panel you can look at or play with; text stays short.
   Contents: 1 base · 2 fixed controls · 3 opening · 4 chapters and panels · 5 sky · 6 world · 7 body · 8 life ·
   9 people · 10 story · 11 foot · 12 phones · 13 reduced motion */

/* 1. Base */
:root{--ink:#f3eee7;--dim:rgba(243,238,231,.62);--faint:rgba(243,238,231,.4);--line:rgba(243,238,231,.13);--panel:rgba(255,255,255,.028);
  --star:#ffa552;--sun:#ff8a3d;--earth:#8fc0ff;
  --serif:"Instrument Serif",Georgia,serif;--sans:"Geist","Helvetica Neue",Arial,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;color-scheme:dark}
html{scroll-behavior:smooth}
body{margin:0;background:#050507;color:var(--ink);font:300 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
h1,h2,h3,h4{font-weight:400;margin:0}
.fg-kick{margin:0 0 14px;font:400 11px/1.3 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--star)}
.fg-kick b{font-weight:400;color:var(--ink);margin-right:10px}
.fg-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fg-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;background:var(--star);color:#140a04;
  font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;box-shadow:0 0 22px color-mix(in srgb,var(--star) 35%,transparent)}
.fg-btn:hover{background:#fff}
.fg-btn:focus-visible,.fg-pin:focus-visible,.fg-rdot:focus-visible,[data-z]:focus-visible{outline:1px solid var(--ink);outline-offset:3px}

/* 2. Fixed controls */
.fg-back{position:fixed;z-index:20;top:18px;left:18px;padding:9px 15px;border-radius:999px;border:1px solid var(--line);background:rgba(10,10,14,.5);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:500 12px/1 var(--sans);text-decoration:none}
.fg-back:hover{border-color:var(--star)}
.fg-rail{position:fixed;z-index:20;right:22px;top:50%;transform:translateY(-50%);display:grid;gap:14px}
.fg-rail a{display:flex;align-items:center;justify-content:flex-end;gap:10px;text-decoration:none}
.fg-rail a::after{content:"";width:7px;height:7px;border-radius:50%;border:1px solid rgba(243,238,231,.5);transition:all .3s}
.fg-rail a span{font:400 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);opacity:0;transition:opacity .3s}
.fg-rail a:hover span,.fg-rail a.on span{opacity:1}
.fg-rail a.on::after{background:var(--star);border-color:var(--star);box-shadow:0 0 10px var(--star)}

/* 3. Opening */
.fg-hero{position:relative;height:100vh;height:100svh;display:grid;align-content:end;padding:0 clamp(20px,7vw,110px) clamp(56px,10vh,110px);overflow:hidden}
.fg-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform 9s cubic-bezier(.2,.6,.2,1)}
.fg-hero.in .fg-hero-img{transform:scale(1)}
.fg-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#050507 2%,rgba(5,5,7,.55) 40%,rgba(5,5,7,.05) 70%),linear-gradient(90deg,rgba(5,5,7,.6),transparent 60%)}
.fg-hero-in{position:relative;z-index:1;max-width:880px;opacity:0;transform:translateY(20px);transition:opacity 1.4s .3s,transform 1.4s .3s}
.fg-hero.in .fg-hero-in{opacity:1;transform:none}
.fg-hero h1{font:400 clamp(64px,11vw,168px)/.86 var(--serif);letter-spacing:-.02em}
.fg-where{margin:18px 0 10px;font:400 12px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.fg-line{margin:0;max-width:34ch;font:300 clamp(18px,1.8vw,22px)/1.45 var(--sans);color:rgba(243,238,231,.88)}
.fg-stats{display:flex;flex-wrap:wrap;gap:0;margin:28px 0 0;border:1px solid var(--line);border-radius:16px;background:rgba(8,8,12,.45);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);width:max-content;max-width:100%}
.fg-stats div{padding:14px 22px;border-left:1px solid var(--line)}
.fg-stats div:first-child{border-left:0}
.fg-stats dt{font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.fg-stats dd{margin:0;font:400 30px/1 var(--serif);color:var(--ink)}
.fg-scroll{position:absolute;z-index:1;left:50%;bottom:22px;transform:translateX(-50%);margin:0;font:400 10px/1 var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--dim);animation:fgBob 2.4s ease-in-out infinite}
@keyframes fgBob{50%{transform:translate(-50%,6px)}}

/* 4. Chapters and panels */
.fg-ch{position:relative;padding:clamp(80px,13vh,140px) clamp(20px,6vw,90px) 20px;max-width:1240px;margin:0 auto}
.fg-ch-head h2{font:400 clamp(40px,5.4vw,76px)/1 var(--serif);letter-spacing:-.01em;max-width:18ch}
.fg-ch-head{margin-bottom:18px}
.fg-lede{max-width:52ch;margin:0 0 30px;font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:rgba(243,238,231,.82)}
.fg-panel{position:relative;margin:0;padding:22px;border-radius:20px;border:1px solid var(--line);background:var(--panel);overflow:hidden}
.fg-panel-t{margin:0 0 16px;font:400 11px/1.2 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--star)}
.fg-note{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--dim)}
.fg-hint{margin:10px 0 0;font:400 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.fg-big{margin:0;font:400 clamp(40px,4.4vw,60px)/1 var(--serif);color:var(--ink)}
.fg-big small{display:block;margin-top:8px;font:300 14px/1.4 var(--sans);color:var(--dim)}
.fg-reveal{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.fg-reveal.in{opacity:1;transform:none}

/* 5. Sky */
.fg-sky-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px}
.fg-suns-panel{display:grid;align-content:space-between;gap:18px;background:radial-gradient(80% 70% at 40% 40%,color-mix(in srgb,var(--sun) 18%,transparent),transparent 70%),var(--panel)}
.fg-suns{display:flex;align-items:center;gap:26px;min-height:150px}
.fg-disc{display:block;width:var(--d);height:var(--d);border-radius:50%;flex:none;
  background:radial-gradient(circle,#fff 0%,var(--c) 45%,color-mix(in srgb,var(--c) 70%,#000) 100%);
  box-shadow:0 0 calc(var(--d) * .5) color-mix(in srgb,var(--c) 70%,transparent),0 0 calc(var(--d) * 1.4) color-mix(in srgb,var(--c) 30%,transparent);animation:fgGlow 6s ease-in-out infinite}
.fg-sun{animation:none}
@keyframes fgGlow{50%{box-shadow:0 0 calc(var(--d) * .65) color-mix(in srgb,var(--c) 80%,transparent),0 0 calc(var(--d) * 1.8) color-mix(in srgb,var(--c) 35%,transparent)}}
.fg-suns-key{display:grid;gap:6px;font:400 11px/1.3 var(--mono);letter-spacing:.08em;color:var(--dim)}
.fg-suns-key b{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}
.fg-dome{display:block;width:100%;height:auto;border-radius:14px}
.fg-arc{fill:none;stroke:rgba(243,238,231,.16);stroke-dasharray:3 6}
.fg-ground{fill:#0b0a0d;stroke:rgba(243,238,231,.2)}
.fg-their-sun{fill:var(--sun);filter:drop-shadow(0 0 10px var(--sun)) drop-shadow(0 0 26px var(--sun))}
.fg-ghost-sun{fill:none;stroke:#fff6e8;stroke-width:1.4;stroke-dasharray:3 3}
.fg-ghost{transition:opacity .4s}
.fg-ghost-t{fill:rgba(243,238,231,.6);font:400 9px var(--mono);text-anchor:middle;letter-spacing:.06em}
.fg-nb-dark{fill:#1a1c22;stroke:rgba(243,238,231,.25)}
.fg-nb-lit{fill:#e8ddd2}
.fg-slide{display:flex;align-items:center;gap:14px;margin-top:14px;font:400 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.fg-slide input{flex:1;accent-color:var(--star)}
.fg-read{min-height:2.6em;margin:10px 0 0;font-size:15px;color:var(--ink)}

/* 6. World */
.fg-world-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.fg-zone-panel{grid-column:span 3}
.fg-jump-panel{grid-column:span 3}
.fg-air-panel,.fg-year-panel{grid-column:span 3}
@media (min-width:1100px){ .fg-air-panel,.fg-year-panel{grid-column:span 3} }
.fg-world::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg,none) center/cover no-repeat;opacity:.18}
.fg-zones{display:block;width:100%;height:auto;max-height:360px}
.fg-rays line{stroke:var(--sun);stroke-width:1.6;opacity:.55;stroke-dasharray:4 6;animation:fgRay 1.4s linear infinite}
.fg-zone-star{fill:var(--sun);filter:blur(6px);opacity:.9}
.fg-core{fill:#121014;stroke:rgba(243,238,231,.08)}
@keyframes fgRay{to{stroke-dashoffset:-9}}
.fg-zone{cursor:pointer;stroke:#050507;stroke-width:1;opacity:.78;transition:opacity .25s,filter .25s}
.fg-zone:hover,.fg-zone.on{opacity:1;filter:drop-shadow(0 0 10px rgba(255,255,255,.35))}
.fg-zone.fg-home{animation:fgPulse 2.4s ease-in-out infinite}
@keyframes fgPulse{50%{opacity:1}}
.fg-term{stroke:rgba(243,238,231,.35);stroke-dasharray:3 4}
.fg-zone-t{fill:var(--faint);font:400 9px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.fg-zone-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fg-zone-list button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);font:400 13px/1 var(--sans);color:var(--dim)}
.fg-zone-list button b{width:10px;height:10px;border-radius:50%}
.fg-zone-list button em{display:inline-flex;align-items:center;gap:3px;font:normal 400 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--star)}
.fg-zone-list button em .fg-ic{width:12px;height:12px}
.fg-zone-list button.on{border-color:var(--star);color:var(--ink);background:color-mix(in srgb,var(--star) 12%,transparent)}
.fg-zone-read{min-height:3em;margin:12px 0 0;font-size:15px;color:var(--ink)}
.fg-spinner{position:relative;width:min(280px,78%);aspect-ratio:1;margin:6px auto;border-radius:50%;overflow:hidden;box-shadow:0 0 50px rgba(140,190,255,.18),inset 0 0 20px rgba(0,0,0,.6)}
.fg-spinner span{position:absolute;inset:0}
.fg-spin-map{background:var(--map) 0 0/200% 100% repeat-x;animation:fgSpin 30s linear infinite}
.fg-spin-clouds{background:var(--clouds) 0 0/200% 100% repeat-x;opacity:.55;mix-blend-mode:screen;animation:fgSpin 22s linear infinite}
@keyframes fgSpin{to{background-position:-200% 0}}
.fg-spin-shade{border-radius:50%;background:radial-gradient(circle at 30% 40%,transparent 30%,rgba(0,0,0,.82) 72%)}
.fg-jump{display:grid;grid-template-columns:1fr 1fr;gap:14px;height:180px;align-items:end;padding:0 10px;border-bottom:1px solid rgba(243,238,231,.25)}
.fg-jump-lane{position:relative;height:100%;display:grid;justify-items:center;align-content:end}
.fg-jump-lane small{position:absolute;bottom:-26px;font:400 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.fg-jumper{display:block;width:18px;height:46px;border-radius:9px 9px 4px 4px;background:var(--earth);position:relative}
.fg-jumper::before{content:"";position:absolute;left:50%;top:-16px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:inherit}
.fg-j-them{background:var(--star);box-shadow:0 0 14px color-mix(in srgb,var(--star) 50%,transparent)}
.fg-jump.go .fg-j-earth{animation:fgJump 1.1s cubic-bezier(.3,.7,.4,1) both;--h:70px}
.fg-jump.go .fg-j-them{animation:fgJump calc(1.1s * var(--jr)) cubic-bezier(.3,.7,.4,1) both;--h:calc(70px * var(--jr))}
@keyframes fgJump{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--h)))}}
.fg-jump-btn{margin-top:40px}
.fg-rings{display:flex;align-items:center;gap:22px}
.fg-rings svg{width:130px;height:130px;flex:none;transform:rotate(-90deg)}
.fg-ring-bg{fill:none;stroke:rgba(243,238,231,.08);stroke-width:9}
.fg-ring{fill:none;stroke-width:9;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.6s cubic-bezier(.2,.7,.2,1)}
.fg-reveal.in .fg-ring{stroke-dasharray:var(--p) 100}
.fg-ring-them{stroke:var(--star)}
.fg-ring-earth{stroke:var(--earth)}
.fg-dot-earth{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--earth);margin-right:8px}
.fg-press{display:grid;gap:6px;margin-top:18px}
.fg-press div{width:var(--w);height:22px;border-radius:6px;display:flex;align-items:center;padding:0 10px;box-sizing:border-box;font:400 10.5px/1 var(--mono);letter-spacing:.06em;white-space:nowrap}
.fg-press-them{background:color-mix(in srgb,var(--star) 75%,#000);color:#140a04}
.fg-press-earth{background:rgba(143,192,255,.16);border:1px solid rgba(143,192,255,.4);color:var(--earth)}
.fg-columns{display:none}
.fg-columns i{width:12px;height:100%;border-radius:3px;background:linear-gradient(0deg,color-mix(in srgb,var(--star) 70%,transparent),transparent)}
.fg-columns i:nth-child(2n){opacity:.65}
.fg-dots{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px;min-height:44px}
.fg-dots i{width:10px;height:10px;border-radius:50%;background:var(--star);opacity:0;transform:scale(.3);transition:opacity .3s,transform .3s;transition-delay:calc(var(--i) * 14ms)}
.fg-reveal.in .fg-dots i{opacity:.9;transform:none}
.fg-dots-few i{width:34px;height:34px;box-shadow:0 0 16px color-mix(in srgb,var(--star) 50%,transparent)}
.fg-dots-few{gap:12px}

/* 7. Body */
.fg-body-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:16px}
.fg-specimen{padding:0;background:radial-gradient(80% 70% at 50% 35%,color-mix(in srgb,var(--star) 16%,transparent),transparent 70%),#0a0a0e}
.fg-spec-img{position:relative;width:min(100%,430px);aspect-ratio:var(--ar);margin:0 auto}
.fg-spec-img img{display:block;width:100%;height:100%;object-fit:cover}
.fg-pin{all:unset;cursor:pointer;position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;display:grid;place-items:center;
  background:rgba(8,8,12,.6);border:1.5px solid var(--star);color:var(--ink);font:500 12px/1 var(--mono);backdrop-filter:blur(6px)}
.fg-pin::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--star);opacity:.6;animation:fgPing 2.2s ease-out infinite}
@keyframes fgPing{to{transform:scale(1.7);opacity:0}}
.fg-pin.on{background:var(--star);color:#140a04}
.fg-spec-card{display:flex;gap:14px;align-items:flex-start;min-height:92px;padding:16px 20px 0}
.fg-spec-n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--star);color:#140a04;font:500 12px/1 var(--mono)}
.fg-spec-card h4{margin:2px 0 6px;font:400 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--star)}
.fg-spec-card p{margin:0;font-size:15px;line-height:1.55}
.fg-specimen .fg-hint{padding:0 20px 18px}
.fg-body-side{display:grid;gap:16px;align-content:start}
.fg-scale svg{width:100%;height:250px;overflow:visible}
.fg-grid{stroke:rgba(243,238,231,.1);stroke-dasharray:2 4}
.fg-grid-t{fill:rgba(243,238,231,.35);font:400 7px var(--mono)}
.fg-ground-l{stroke:rgba(243,238,231,.4)}
.fg-human{fill:#3b3a3f;stroke:#3b3a3f}
.fg-them{fill:var(--star);stroke:var(--star);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--star) 60%,transparent))}
.fg-fig-t{fill:var(--dim);font:400 8px var(--mono);text-anchor:middle}
.fg-them-t{fill:var(--star)}
.fg-spectrum{position:relative;padding:30px 0 22px}
.fg-rainbow{height:14px;border-radius:7px;background:linear-gradient(90deg,#2a0a3a 0%,#5b1fb5 13%,#3a5bff 22%,#1fc0ff 30%,#2bd66b 38%,#e8e23a 45%,#ff8a1f 52%,#e01f1f 62%,#7a0f0f 70%,#3a0505 85%,#1a0303 100%)}
.fg-band{position:absolute;height:12px;border-radius:6px;font:400 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;padding:0 6px;box-sizing:border-box}
.fg-band-h{top:6px;border:1.5px solid var(--earth);color:var(--earth);height:20px;background:rgba(143,192,255,.08)}
.fg-band-t{top:48px;border:1.5px solid var(--star);color:var(--star);height:20px;background:color-mix(in srgb,var(--star) 10%,transparent)}
.fg-band-h{transform:translateY(-6px)}
.fg-spec-ends{display:flex;justify-content:space-between;margin-top:42px;font:400 9.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.fg-therm{position:relative;height:14px;margin:26px 0 30px;border-radius:7px;background:linear-gradient(90deg,#3a6bd6,#7fb0ff 40%,#ffd27a 70%,#ff5a2a)}
.fg-therm span{position:absolute;top:50%;transform:translate(-50%,-50%);width:4px;height:28px;border-radius:2px}
.fg-therm-h{background:var(--earth)}
.fg-therm-h small{position:absolute;top:32px;left:50%;transform:translateX(-50%);white-space:nowrap;font:400 10px/1 var(--mono);letter-spacing:.08em;color:var(--earth)}
.fg-therm-t{background:#fff;box-shadow:0 0 10px #fff}
.fg-therm-t b{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);white-space:nowrap;font:400 24px/1 var(--serif);color:var(--ink)}

/* 8. Life */
.fg-life-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.fg-span-panel{grid-column:span 4}.fg-sleep-panel{grid-column:span 2}
.fg-kids-panel,.fg-food-panel,.fg-plant-panel{grid-column:span 2}
.fg-span{display:grid;gap:12px;padding-top:26px}
.fg-span-bar{position:relative;width:var(--w);height:34px;border-radius:8px;display:flex;align-items:center;padding:0 12px;box-sizing:border-box;transform-origin:left;transform:scaleX(0);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.fg-reveal.in .fg-span-bar{transform:none}
.fg-span-bar b{font:400 12px/1 var(--mono);letter-spacing:.06em;white-space:nowrap}
.fg-span-them{background:linear-gradient(90deg,color-mix(in srgb,var(--star) 85%,#000),var(--star));color:#140a04}
.fg-span-human{background:rgba(143,192,255,.18);color:var(--earth);border:1px solid rgba(143,192,255,.4)}
.fg-adult{position:absolute;top:-6px;bottom:-6px;width:2px;background:#fff}
.fg-adult small{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:4px;white-space:nowrap;font:normal 400 10px/1 var(--mono);color:var(--ink)}
.fg-sleep{position:relative;width:var(--w);height:22px;border-radius:6px;background:rgba(255,214,140,.16);overflow:hidden}
.fg-sleep i{position:absolute;top:0;bottom:0;background:#141a3a;border-left:1px solid rgba(160,180,255,.4);border-right:1px solid rgba(160,180,255,.4)}
.fg-sleep-them i{background:color-mix(in srgb,var(--star) 30%,#0a0c20)}
.fg-sleep-l{margin:6px 0 14px;font:400 11px/1.3 var(--mono);letter-spacing:.06em;color:var(--dim)}
.fg-kids{display:flex;align-items:center;gap:6px;color:var(--star)}
.fg-kid{width:42px;height:42px}
.fg-kid-more{opacity:.45;width:34px;height:34px}
.fg-kids b{margin-left:10px;font:400 44px/1 var(--serif);color:var(--ink)}
.fg-food{display:flex;flex-wrap:wrap;gap:8px}
.fg-food span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--star) 12%,transparent);color:var(--star)}
.fg-food .fg-ic{width:24px;height:24px}
.fg-swatches{display:flex;height:64px;border-radius:12px;overflow:hidden}
.fg-swatches i{flex:1}

/* 9. People */
.fg-people{max-width:none;padding-left:0;padding-right:0}
.fg-people>.fg-ch-head{max-width:1240px;margin:0 auto 18px;padding:0 clamp(20px,6vw,90px)}
.fg-settle{position:relative;min-height:clamp(520px,70vh,760px);display:grid;align-content:end}
.fg-settle img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fg-settle::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#050507 4%,rgba(5,5,7,.6) 35%,transparent 65%),linear-gradient(180deg,#050507,transparent 14%)}
.fg-settle-in{position:relative;z-index:1;max-width:1240px;width:100%;margin:0 auto;padding:0 clamp(20px,6vw,90px) 34px;box-sizing:border-box}
.fg-settle-text{max-width:46ch;margin:0 0 20px;font:400 clamp(22px,2.2vw,30px)/1.3 var(--serif)}
.fg-settle-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fg-settle-tiles div{padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:rgba(8,8,12,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.fg-settle-tiles .fg-ic{color:var(--star);margin-bottom:10px}
.fg-settle-tiles h4{margin:0 0 6px;font:400 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--star)}
.fg-settle-tiles p{margin:0;font-size:14px;line-height:1.5;color:rgba(243,238,231,.88)}

/* 10. Story */
.fg-ribbon{position:relative;height:96px;margin:6px 0 34px}
.fg-ribbon-line{position:absolute;left:0;right:0;top:48px;height:2px;background:linear-gradient(90deg,var(--line),var(--star))}
.fg-rdot{all:unset;cursor:pointer;position:absolute;top:41px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:#050507;border:2px solid var(--star);transition:transform .2s}
.fg-rdot.fg-key{background:var(--star);box-shadow:0 0 14px var(--star)}
.fg-rdot span{position:absolute;left:50%;transform:translateX(-50%) rotate(-35deg);transform-origin:left;bottom:22px;white-space:nowrap;font:400 10px/1 var(--mono);letter-spacing:.04em;color:var(--dim)}
.fg-rdot:hover{transform:scale(1.35)}
.fg-story{list-style:none;margin:0 0 40px;padding:0 0 0 28px;position:relative;max-width:760px}
.fg-story::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--line),var(--star) 85%,#fff)}
.fg-event{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:6px 10px;border-radius:12px;transition:background .6s}
.fg-event.flash{background:color-mix(in srgb,var(--star) 16%,transparent)}
.fg-event::before{content:"";position:absolute;left:-26px;top:13px;width:9px;height:9px;border-radius:50%;background:#050507;border:1.5px solid var(--star)}
.fg-event.fg-key::before{background:var(--star);box-shadow:0 0 14px var(--star)}
.fg-event time{font:400 13px/1.6 var(--mono);letter-spacing:.06em;color:var(--star);padding-top:3px}
.fg-event h4{font:400 26px/1.15 var(--serif);margin:0 0 4px}
.fg-event p{margin:0;color:rgba(243,238,231,.85)}
.fg-gap{padding:8px 0 8px 188px;font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:rgba(243,238,231,.3)}
.fg-cta{display:inline-block;padding:13px 24px;border-radius:999px;border:1.5px solid rgba(243,238,231,.85);font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none}
.fg-cta:hover{border-color:var(--star);background:rgba(255,140,70,.16)}

/* 11. Foot */
.fg-foot{padding:clamp(70px,12vh,120px) clamp(20px,6vw,90px) 60px;max-width:1240px;margin:0 auto;border-top:1px solid var(--line)}
.fg-foot h3{font:400 clamp(34px,4vw,54px)/1 var(--serif);margin-bottom:26px}
.fg-others{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fg-other{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:18px;border:1px solid var(--line);text-decoration:none;transition:border-color .3s,transform .3s}
.fg-other:hover{border-color:var(--star);transform:translateY(-2px)}
.fg-other img{width:62px;height:62px;border-radius:50%;box-shadow:0 0 18px rgba(140,190,255,.25)}
.fg-other b{display:block;font:400 26px/1 var(--serif)}
.fg-other small{font:400 11px/1.6 var(--mono);letter-spacing:.1em;color:var(--dim)}
.fg-credit{margin:40px 0 0;max-width:80ch;font-size:12px;color:rgba(243,238,231,.4)}

/* 12. Phones and tablets */
@media (max-width:960px){
  .fg-sky-grid,.fg-body-grid{grid-template-columns:minmax(0,1fr)}
  .fg-world-grid,.fg-life-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fg-zone-panel,.fg-jump-panel,.fg-span-panel,.fg-sleep-panel{grid-column:1 / -1;grid-row:auto}
  .fg-air-panel,.fg-year-panel,.fg-kids-panel,.fg-food-panel,.fg-plant-panel{grid-column:span 1}
}
@media (max-width:640px){
  .fg-rail{display:none}
  .fg-world-grid,.fg-life-grid{grid-template-columns:minmax(0,1fr)}
  .fg-air-panel,.fg-year-panel,.fg-kids-panel,.fg-food-panel,.fg-plant-panel{grid-column:1 / -1}
  .fg-stats div{padding:12px 14px}.fg-stats dd{font-size:22px}
  .fg-settle-tiles,.fg-others{grid-template-columns:minmax(0,1fr)}
  .fg-settle{min-height:auto}
  .fg-settle img{position:relative;height:300px}
  .fg-settle-in{margin-top:-60px}
  .fg-event{grid-template-columns:minmax(0,1fr);gap:2px}
  .fg-gap{padding-left:10px}
  .fg-ribbon{display:none}
  .fg-rings svg{width:100px;height:100px}
}

/* 13. Reduced motion */
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} .fg-reveal,.fg-hero-in{opacity:1;transform:none;transition:none}
  .fg-hero-img{transition:none;transform:none} .fg-disc,.fg-scroll,.fg-pin::before,.fg-rays line,.fg-zone.fg-home,.fg-spinner span{animation:none}
  .fg-ring{stroke-dasharray:var(--p) 100;transition:none} .fg-span-bar{transform:none;transition:none} .fg-dots i{opacity:.9;transform:none;transition:none} }
