/* Tianyang / living currents. Native scrolling, progressive visual enhancement. */
:root{--fx-rgb:145,222,207;--fx-accent:#a5e5ce;--fx-ease:cubic-bezier(.16,1,.3,1)}
.fx-field.fx-refractive{mix-blend-mode:normal;opacity:1}.fx-stage[data-fx-visible=false] .fx-beams,.fx-stage[data-fx-visible=false] .fx-rings i{animation-play-state:paused}
body[data-world=hg1]{--fx-rgb:234,142,101;--fx-accent:#ec9b77}body[data-world=hg2]{--fx-rgb:132,225,215;--fx-accent:#9fe7d5}
.fx-stage{isolation:isolate;--fx-px:0;--fx-py:0;--fx-depth:0}.fx-field,.fx-beams,.fx-rings,.fx-vignette{position:absolute;inset:0;pointer-events:none;overflow:hidden}.fx-field{width:100%;height:100%;z-index:1;mix-blend-mode:screen;opacity:.8}.fx-beams{z-index:0;background:repeating-conic-gradient(from 165deg at 72% -25%,transparent 0deg 8deg,rgba(var(--fx-rgb),.07) 10deg 12deg,transparent 15deg 22deg);filter:blur(4px);transform-origin:72% 0;animation:fx-rays 17s ease-in-out infinite alternate}.fx-vignette{z-index:1;background:radial-gradient(ellipse at 62% 44%,transparent 32%,#03151c66 100%)}
.fx-rings{inset:10% 1% 4% 47%;z-index:2;display:grid;place-items:center;opacity:.65;transform:translate(calc(var(--fx-px)*-9px),calc(var(--fx-py)*-7px));transition:transform .3s}.fx-rings i{position:absolute;width:75%;aspect-ratio:1;border:1px solid rgba(var(--fx-rgb),.18);border-radius:50%;transform:rotateX(38deg) rotateZ(-24deg);animation:fx-orbit 22s linear infinite}.fx-rings i:nth-child(2){width:91%;border-style:dashed;opacity:.6;animation-direction:reverse;animation-duration:44s}.fx-rings i:nth-child(3){width:56%;border-color:rgba(var(--fx-rgb),.08);transform:rotateY(55deg) rotateZ(35deg)}.fx-rings::before,.fx-rings::after{content:"";position:absolute;background:rgba(var(--fx-rgb),.5);width:40px;height:1px;top:22%;right:14%}.fx-rings::after{transform:rotate(90deg)}
.fx-coordinates{position:absolute;z-index:3;right:52px;top:118px;display:flex;gap:36px;color:rgba(var(--fx-rgb),.7);font:9px/1.6 ui-monospace,monospace;letter-spacing:.16em;pointer-events:none}.fx-coordinates span:last-child{writing-mode:vertical-rl;position:absolute;right:0;top:58px}.fx-stage h1{animation:fx-title 1.45s var(--fx-ease) both}.fx-stage .eyeline,.fx-stage .eyebrow,.fx-stage .game-brand{animation:fx-title 1.4s .05s var(--fx-ease) both}.fx-stage .hero-description,.fx-stage .lede{animation:fx-title 1.5s .12s var(--fx-ease) both}.fx-stage .hero-actions,.fx-stage .actions{animation:fx-title 1.5s .22s var(--fx-ease) both}
.portal-home .portal-hero{height:max(850px,100svh);min-height:850px}.portal-home .hero-content{z-index:4}.portal-home .hero-bottom{z-index:4}.portal-home .hero-backdrop img{animation:none;transform:scale(1.08) translate(calc(var(--fx-px)*-10px),calc(var(--fx-depth)*65px + var(--fx-py)*-6px));will-change:transform}.portal-home .portal-hero::before{z-index:0}.portal-home .hero-grain{z-index:2;opacity:.1}.portal-home .hero-scroll-label{z-index:4}.portal-home .hero-signoff strong{color:transparent;-webkit-text-stroke:1px #f1efe8a0;letter-spacing:-.04em}.portal-home .hero-content em{background:linear-gradient(110deg,#ecf7db,#8bd5bf 42%,#e1ead1 68%,#68b3ae);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:fx-chroma 9s ease-in-out infinite alternate}
.fx-ticker{overflow:hidden;background:#09272d;color:#a9c8bd;border-top:1px solid #b6e4d030;border-bottom:1px solid #b6e4d030;padding:21px 0;font:11px/1.4 ui-monospace,monospace;letter-spacing:.23em;user-select:none}.fx-ticker-track{width:max-content;display:flex;animation:fx-ticker 45s linear infinite}.fx-ticker-track>span{display:block;white-space:nowrap;padding:0 30px}.fx-ticker b{font-size:17px;color:#dc8b68;padding:0 34px;font-weight:400}.fx-ticker:hover .fx-ticker-track{animation-play-state:paused}
.fx-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:150;pointer-events:none;transform-origin:0 50%;transform:scaleX(var(--fx-progress,0));background:linear-gradient(90deg,#d88d6e,#a4e2d3);box-shadow:0 0 12px #a4e2d355}
.fx-dock{position:fixed;z-index:80;right:22px;bottom:22px;display:flex;gap:0;align-items:center;background:#09242de6;backdrop-filter:blur(18px);border:1px solid #b5d9d63b;color:#deeee6;box-shadow:0 6px 40px #00101633;font:10px/1.4 system-ui,sans-serif;letter-spacing:.04em;transition:opacity .25s}.fx-dock button,.fx-dock a{border:0;background:none;color:inherit;padding:12px 14px;font:inherit;cursor:pointer;text-decoration:none}.fx-dock button{display:flex;align-items:center;gap:10px}.fx-dock button::before{content:"";width:6px;height:6px;border-radius:50%;background:#a4e4c8;box-shadow:0 0 10px #92efbf66}.fx-dock button[aria-pressed=true]::before{background:#8d9c99;box-shadow:none}.fx-dock a{border-left:1px solid #ffffff25;font-size:15px}.fx-dock :focus-visible{outline:2px solid var(--fx-accent);outline-offset:4px}body:has(dialog[open]) .fx-dock{opacity:0;pointer-events:none}.motion-setting{display:none!important}
.fx-cursor{position:fixed;left:0;top:0;width:40px;height:40px;margin:-20px;z-index:100;pointer-events:none;border:1px solid rgba(var(--fx-rgb),.5);border-radius:50%;opacity:0;display:grid;place-items:center;color:#effbef;font:20px system-ui;transition:width .25s,height .25s,margin .25s,background .25s,opacity .2s;mix-blend-mode:screen}.fx-cursor.is-active{width:76px;height:76px;margin:-38px;background:#14323c50;backdrop-filter:blur(3px)}.fx-cursor.is-active::before{content:"↗"}.fx-cursor.is-down{scale:.8}
.fx-tilt{transform:perspective(1200px) rotateX(var(--fx-rx,0deg)) rotateY(var(--fx-ry,0deg));transition:transform .7s var(--fx-ease);transform-style:preserve-3d;position:relative}.fx-tilt::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at var(--fx-hx,50%) var(--fx-hy,50%),rgba(var(--fx-rgb),.15),transparent 60%);opacity:0;transition:opacity .45s;z-index:3}.fx-tilt:hover::after{opacity:1}.game-media,.feature-media,.gallery-zoom,.trailer-frame{box-shadow:0 18px 55px #05191d08}.game-media img,.gallery-zoom img{transition:transform 1.2s var(--fx-ease),filter .7s}.game-media:hover img,.gallery-zoom:hover img{transform:scale(1.055)}.game-media::before,.gallery-zoom::before{content:"";position:absolute;inset:0;border:1px solid #d6eee442;z-index:3;pointer-events:none;transition:inset .5s var(--fx-ease)}.game-media:hover::before,.gallery-zoom:hover::before{inset:10px}.pill-link,.button{position:relative;overflow:hidden}.pill-link::after,.button::after{content:"";position:absolute;inset:-120% -50%;background:linear-gradient(100deg,transparent 40%,#ffffff60 50%,transparent 60%);transform:translateX(-65%) rotate(-10deg);transition:transform .7s var(--fx-ease);pointer-events:none}.pill-link:hover::after,.button:hover::after{transform:translateX(65%) rotate(-10deg)}
.fx-ready .fx-reveal{transition:opacity .95s var(--fx-ease),translate 1.15s var(--fx-ease),clip-path 1.15s var(--fx-ease);transition-delay:var(--fx-delay,0ms)}.fx-ready .fx-reveal:not(.fx-in){opacity:0;translate:0 36px;clip-path:inset(0 0 12% 0)}.fx-ready .fx-reveal.fx-in{opacity:1;translate:0 0;clip-path:inset(0)}.fx-ready .approach-item::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--fx-accent),transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.3s .2s var(--fx-ease)}.approach-item{position:relative}.fx-ready .fx-in.approach-item::before{transform:scaleX(1)}
/* A generative specimen, drawn locally rather than downloaded as a video. */
.fx-specimen{position:relative;min-height:430px;margin-top:35px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#42665d3d,transparent 65%);border:1px solid #b3dfc52b}.fx-specimen canvas{display:block;width:100%;height:360px;touch-action:pan-y}.fx-specimen::before,.fx-specimen::after{content:"+";position:absolute;top:14px;left:16px;font:16px monospace;color:#b8d3c3;pointer-events:none}.fx-specimen::after{left:auto;right:16px}.fx-specimen-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-top:1px solid #b3dfc525;font:9px/1.5 ui-monospace,monospace;letter-spacing:.14em;color:#a7c5bb}.fx-specimen-controls{display:flex;gap:6px}.fx-specimen-controls button{padding:7px 12px;background:none;border:1px solid #b5d6ca40;color:#b5d6ca;font:10px system-ui;cursor:pointer}.fx-specimen-controls button[aria-pressed=true]{background:#b1ddce;color:#113329;border-color:#b1ddce}.fx-specimen-controls button:focus-visible{outline:2px solid #ecb485;outline-offset:3px}
/* Hetero-Genesis: a dark, cinematic combat page. */
body[data-world=hg1] header{position:absolute;inset:0 0 auto;background:#061b24b8;backdrop-filter:blur(12px);z-index:20;border-color:#d6e7df25}body[data-world=hg1] .studio-link{font-size:10px;letter-spacing:.1em;white-space:nowrap}body[data-world=hg1] .hero{max-width:none;min-height:850px;height:100svh;max-height:1100px;grid-template-columns:49% 51%;padding:150px 52px 110px;background:linear-gradient(90deg,#061820fa 5%,#071d25c7 45%,#06182044),url('v3/library_hero_3840x1240.jpg') center/cover}body[data-world=hg1] .hero-copy{position:relative;z-index:5}body[data-world=hg1] .hero h1{font-size:clamp(60px,6.3vw,108px);line-height:1.02;letter-spacing:-.06em;max-width:740px;text-shadow:0 7px 40px #02101788}body[data-world=hg1] .hero-description{max-width:440px;line-height:1.9;font-size:14px}body[data-world=hg1] .hero-art{z-index:3;margin-left:-30px;transform:translate(calc(var(--fx-px)*-14px),calc(var(--fx-py)*-10px));filter:drop-shadow(0 35px 60px #00000050)}body[data-world=hg1] .hero-art img{box-shadow:none;mask-image:radial-gradient(ellipse at center,black 50%,transparent 75%);transform:scale(1.3)}body[data-world=hg1] .hero-bottom{z-index:5;left:52px;right:52px;bottom:27px}body[data-world=hg1] .hero .eyebrow{color:#ecad86}body[data-world=hg1] .fx-rings{inset:6% -7% 6% 43%;opacity:.7}body[data-world=hg1] .fx-ticker{background:#172b2c;color:#e2b390}body[data-world=hg1] .trailer-frame{position:relative;border:1px solid #d68c6c60;box-shadow:0 0 65px #c36f3a0d}body[data-world=hg1] .features-section{background:radial-gradient(ellipse at 0% 30%,#234b4b77,transparent 60%),#0b2028}body[data-world=hg1] .demo-numbers strong{font-variant-numeric:tabular-nums;color:#e9a179}body[data-world=hg1] .feature-media::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 25px #02151b50}body[data-world=hg1] .final-cta{position:relative;padding:125px 0}body[data-world=hg1] .final-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#81cbb51a,transparent 70%);animation:fx-breathe 8s ease-in-out infinite}body[data-world=hg1] .final-cta>.wrap{position:relative}
/* Hetero-Genesis 2: an illuminated living blueprint over the real ocean. */
.portal-detail[data-world=hg2] .masthead{position:absolute;inset:0 0 auto;z-index:20;background:#071e26b0;backdrop-filter:blur(12px)}.portal-detail[data-world=hg2] main>.wrap:first-child{width:100%;max-width:none}.portal-detail[data-world=hg2] .game-hero{position:relative;min-height:850px;padding:210px 52px 150px;overflow:hidden;color:#f2f0df}.portal-detail[data-world=hg2] .game-hero-image{position:absolute;inset:0;z-index:-2;border:0;margin:0}.portal-detail[data-world=hg2] .game-hero-image img{height:100%;width:100%;object-fit:cover;object-position:65% 50%;filter:saturate(.65);transform:scale(1.08) translateY(calc(var(--fx-depth)*50px));will-change:transform}.portal-detail[data-world=hg2] .game-hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,#051c25ed,#051c25a8 54%,#051c2544),linear-gradient(0deg,#081d23,transparent 40%)}.portal-detail[data-world=hg2] .game-title-row{position:relative;z-index:4;max-width:1340px;margin:auto;display:block}.portal-detail[data-world=hg2] .game-title-row h1{font-size:clamp(50px,5.5vw,88px);max-width:950px;line-height:1.15;letter-spacing:-.055em}.portal-detail[data-world=hg2] .game-title-row .latin{font-size:12px;letter-spacing:.18em;color:#c4e0d2;margin-top:30px}.portal-detail[data-world=hg2] .game-brand{color:#a6c7c5;margin-bottom:30px}.portal-detail[data-world=hg2] .game-status{position:relative;margin-top:35px;color:#b3e7d3;border-color:#94d2c34d;background:#174c4a55;padding:9px 15px}.portal-detail[data-world=hg2] .game-hero .lede{position:relative;z-index:4;max-width:470px;margin:25px max(0px,calc((100vw - 1444px)/2)) 0;font-size:14px;color:#b6c9c4;line-height:1.95}.portal-detail[data-world=hg2] .game-hero-image figcaption{position:absolute;bottom:30px;left:52px;right:52px;border:0;z-index:5;padding:0;color:#adcbc4}.portal-detail[data-world=hg2] .fx-coordinates{top:128px}.portal-detail[data-world=hg2] .fx-rings{inset:13% 0 12% 48%}.portal-detail[data-world=hg2] .fx-ticker{background:#153837}.portal-detail[data-world=hg2] .about-game{background:radial-gradient(ellipse at 0% 100%,#386f6022,transparent 65%)}.portal-detail[data-world=hg2] .gallery-zoom{position:relative;overflow:hidden}.portal-detail[data-world=hg2] .milestones li{position:relative}.portal-detail[data-world=hg2] .milestones li::before{content:"";position:absolute;left:-1px;top:0;width:2px;height:100%;background:linear-gradient(#c97f52,transparent);transform:scaleY(0);transform-origin:top;transition:transform 1.1s var(--fx-ease)}.portal-detail[data-world=hg2] .milestones li.fx-in::before{transform:scaleY(1)}.portal-detail[data-world=hg2] .fx-specimen{min-height:440px;margin:36px 0 0}.portal-detail[data-world=hg2] .fx-specimen canvas{height:380px}
@keyframes fx-title{from{opacity:0;translate:0 36px;clip-path:inset(0 0 100% 0)}to{opacity:1;translate:0 0;clip-path:inset(0)}}@keyframes fx-rays{from{transform:rotate(-6deg) scale(1.1);opacity:.55}to{transform:rotate(5deg) scale(1.18);opacity:1}}@keyframes fx-orbit{from{rotate:0deg}to{rotate:360deg}}@keyframes fx-chroma{to{background-position:100% 0}}@keyframes fx-ticker{to{transform:translateX(-50%)}}@keyframes fx-breathe{50%{opacity:.25;transform:scale(.94)}}
@media(max-width:1050px){body[data-world=hg1] .hero{padding-inline:32px}body[data-world=hg1] .studio-link{display:none}.fx-coordinates{right:32px}.portal-detail[data-world=hg2] .game-hero{padding-inline:32px}.fx-dock{right:18px;bottom:18px}.fx-specimen-footer{letter-spacing:.07em}.fx-rings{opacity:.4}}
@media(max-width:760px){.fx-coordinates{right:20px;top:103px;font-size:8px}.fx-coordinates span:last-child{display:none}.fx-field{opacity:.65}.fx-rings{inset:19% -20% 10% 15%;opacity:.28}.fx-beams{opacity:.5;filter:none}.portal-home .portal-hero{height:auto;min-height:880px}.portal-home .hero-backdrop img{transform:scale(1.06)}.portal-home .hero-content{padding-top:170px}.portal-home .hero-content .eyeline{font-size:8px;letter-spacing:.14em}.fx-ticker{font-size:9px;padding:16px 0}.fx-ticker b{padding-inline:22px}.fx-dock{right:12px;bottom:12px;font-size:9px}.fx-dock button,.fx-dock a{padding:10px 12px}.fx-specimen{min-height:330px;margin-top:26px}.fx-specimen canvas{height:280px}.fx-specimen-footer{padding:12px;gap:8px;font-size:8px}.fx-specimen-controls button{padding:6px 9px;font-size:9px}.fx-cursor{display:none!important}body[data-world=hg1] header{position:relative;padding:17px 20px;gap:16px;background:#081a22}body[data-world=hg1] .hero{height:auto;min-height:800px;display:flex;flex-direction:column-reverse;padding:35px 20px 75px;gap:20px}body[data-world=hg1] .hero-art{margin:0;align-self:stretch;transform:none;max-height:280px}body[data-world=hg1] .hero-art img{transform:scale(1.13);max-height:280px;object-fit:contain}body[data-world=hg1] .hero-copy{width:100%}body[data-world=hg1] .hero h1{font-size:clamp(44px,11vw,65px);max-width:600px;line-height:1.08;letter-spacing:-.04em}body[data-world=hg1] .hero-description{font-size:13px;line-height:1.8;margin:23px 0}body[data-world=hg1] .hero .eyebrow{font-size:9px}body[data-world=hg1] .hero-bottom{left:20px;right:20px;bottom:20px}body[data-world=hg1] .fx-coordinates{display:none}body[data-world=hg1] .fx-rings{inset:0 -25% 48% 0}body[data-world=hg1] .final-cta{padding:85px 0}.portal-detail[data-world=hg2] .game-hero{min-height:820px;padding:175px 20px 110px}.portal-detail[data-world=hg2] .game-title-row h1{font-size:clamp(36px,9vw,60px);line-height:1.2}.portal-detail[data-world=hg2] .game-title-row .latin{font-size:9px;letter-spacing:.11em;margin-top:22px}.portal-detail[data-world=hg2] .game-brand{font-size:8px;letter-spacing:.14em;margin-bottom:25px}.portal-detail[data-world=hg2] .game-hero .lede{font-size:13px;max-width:330px;margin-top:26px}.portal-detail[data-world=hg2] .game-hero-image figcaption{left:20px;right:20px;bottom:25px;font-size:8px}.portal-detail[data-world=hg2] .game-hero-image figcaption>span:last-child{display:none}.portal-detail[data-world=hg2] .fx-coordinates{top:112px;font-size:8px}.portal-detail[data-world=hg2] .fx-rings{inset:10% -50% 10% 12%}.portal-detail[data-world=hg2] .fx-specimen canvas{height:300px}.portal-detail[data-world=hg2] .fx-specimen{min-height:350px}footer,.portal-footer{padding-bottom:85px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.fx-field,.fx-cursor{display:none!important}.fx-reveal{opacity:1!important;translate:none!important;clip-path:none!important}.fx-tilt,.fx-stage img{transform:none!important}}
html[data-motion=off] .fx-field,html[data-motion=off] .fx-cursor{display:none!important}html[data-motion=off] .fx-reveal{opacity:1!important;translate:none!important;clip-path:none!important}html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important}html[data-motion=off] .fx-tilt{transform:none!important}html[data-motion=off] .fx-stage img{transform:none!important}html[data-motion=off]{scroll-behavior:auto!important}
.portal-home .studio-layout{row-gap:45px}.studio-layout>.fx-specimen{grid-column:1/-1;margin-top:0;min-height:430px}.studio-layout>.fx-specimen canvas{height:370px}.studio-layout>.fx-specimen::before{content:"+  LIVING FORM";font-size:9px;letter-spacing:.16em}
.portal-detail[data-world=hg2] .fx-specimen.fx-hologram{position:absolute;right:1%;top:24%;z-index:3;width:43%;min-height:0;border:0;margin:0;background:none;pointer-events:none;opacity:.85}.portal-detail[data-world=hg2] .fx-hologram canvas{height:440px}.fx-hologram::before,.fx-hologram::after{display:none}
@media(max-width:760px){.portal-detail[data-world=hg2] .fx-specimen.fx-hologram{width:100%;right:-40%;top:20%;z-index:2;opacity:.28}.portal-detail[data-world=hg2] .fx-hologram canvas{height:400px}}
html[lang^=zh] body[data-world=hg1] .hero h1{font-size:clamp(52px,5.7vw,86px);line-height:1.12;letter-spacing:-.04em}html[lang=ja] body[data-world=hg1] .hero h1,html[lang=ko] body[data-world=hg1] .hero h1{font-size:clamp(42px,4.4vw,74px);line-height:1.15}
@media(max-width:760px){html[lang^=zh] body[data-world=hg1] .hero h1{font-size:clamp(38px,10.1vw,60px)}html[lang=ja] body[data-world=hg1] .hero h1,html[lang=ko] body[data-world=hg1] .hero h1{font-size:clamp(31px,8vw,50px)}.studio-layout>.fx-specimen{min-height:340px}.studio-layout>.fx-specimen canvas{height:280px}}
