@charset "UTF-8";
:root{--bg:#0b0911;--bg-soft:#12101a;--ink:#f4f0f8;--muted:#a39baa;--purple:#bda0ff;--purple-deep:#8a62e8;--mint:#c8f7dc;--paper:#eeece8;--dark:#121016;--line:rgba(255,255,255,.13);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",system-ui,sans-serif;line-height:1.65;overflow-x:hidden}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}.wrap{width:min(1280px,calc(100% - 80px));margin-inline:auto}.skip-link{position:fixed;z-index:200;top:8px;left:8px;transform:translateY(-150%);padding:10px 16px;background:#fff;color:#000;border-radius:8px}.skip-link:focus{transform:none}.page-noise{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.scroll-progress{position:fixed;z-index:120;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--purple),#f0c6ff,var(--mint));transform:scaleX(0);transform-origin:left}.cursor-dot,.cursor-ring{position:fixed;z-index:150;top:0;left:0;pointer-events:none;opacity:0}.cursor-dot{width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#fff;mix-blend-mode:difference}.cursor-ring{display:grid;place-items:center;width:38px;height:38px;margin:-19px;border:1px solid rgba(255,255,255,.55);border-radius:50%;transition:width .3s,height .3s,margin .3s,background .3s,border-color .3s}.cursor-ring span{opacity:0;color:#0d0a13;font-size:8px;font-weight:800;letter-spacing:.12em}.cursor-ring.is-view{width:72px;height:72px;margin:-36px;background:var(--mint);border-color:var(--mint)}.cursor-ring.is-view span{opacity:1}.js .cursor-dot,.js .cursor-ring{opacity:1}@media(pointer:fine){.js body,.js a,.js button,.js .character-card{cursor:none}}
/* navigation */
.site-header{position:fixed;z-index:70;top:0;left:0;right:0;height:94px;display:flex;align-items:center;transition:height .35s,background .35s,border-color .35s;border-bottom:1px solid transparent}.site-header.scrolled{height:74px;background:rgba(11,9,17,.76);backdrop-filter:blur(20px);border-color:var(--line)}.nav-wrap{width:min(1440px,calc(100% - 64px));margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{width:41px;height:41px;padding:2px;border:1px solid rgba(255,255,255,.25);border-radius:13px;background:rgba(255,255,255,.08);transform:rotate(-5deg)}.brand-mark img{width:100%;height:100%;border-radius:10px;object-fit:cover}.brand-name{display:flex;align-items:baseline;gap:9px;font-size:20px;font-weight:800;letter-spacing:.08em}.brand-name small{color:#8e8499;font-size:8px;letter-spacing:.18em}.desktop-nav{display:flex;gap:36px}.desktop-nav a{color:#b2a9bb;font-size:11px;letter-spacing:.06em;transition:color .25s}.desktop-nav a span{margin-right:7px;color:#665c72;font-size:8px}.desktop-nav a:hover{color:#fff}.nav-download{display:flex;align-items:center;gap:20px;padding:10px 11px 10px 19px;border:1px solid rgba(255,255,255,.22);border-radius:99px;font-size:11px;font-weight:650}.nav-download i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--ink);color:var(--bg);font-style:normal;font-size:14px}.nav-download:hover{background:var(--purple);border-color:var(--purple)}
/* hero */
.hero{position:relative;min-height:1000px;height:max(100svh,1000px);padding-top:94px;overflow:hidden;background:radial-gradient(circle at 75% 40%,#251839 0,transparent 38%),linear-gradient(135deg,#0b0911 0,#0d0a15 60%,#100d18 100%)}#cosmos{position:absolute;inset:0;width:100%;height:100%;opacity:.75}.hero-glow{position:absolute;right:5%;top:12%;width:600px;height:600px;border-radius:50%;background:rgba(157,100,239,.15);filter:blur(100px);animation:breathe 7s ease-in-out infinite}.hero-giant-word{position:absolute;left:50%;top:70px;transform:translateX(-50%);font-family:Arial Black,Arial,sans-serif;font-size:clamp(140px,18.3vw,330px);font-weight:900;line-height:1;letter-spacing:-.075em;color:transparent;-webkit-text-stroke:1px rgba(221,198,255,.075);white-space:nowrap;pointer-events:none}.hero-side-type{position:absolute;right:25px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);color:#544b61;font-size:8px;letter-spacing:.3em}.hero-layout{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:35px;height:calc(100% - 165px);min-height:735px}.hero-copy{position:relative;z-index:5;padding-top:10px}.hero-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#c0b4ce;font-size:9px;font-weight:650;letter-spacing:.16em}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 14px var(--mint)}.hero-version{margin-left:9px;padding-left:16px;border-left:1px solid #51475e;color:#70647e}.hero h1{margin:32px 0 30px;font-size:clamp(66px,7.4vw,112px);font-weight:780;line-height:1.08;letter-spacing:-.075em}.title-line{display:block;overflow:hidden;padding:0 .08em .09em 0}.title-line>span{display:block;transform:translateY(115%);animation:titleUp 1.15s var(--ease) .18s forwards}.title-line:nth-child(2)>span{animation-delay:.34s}.accent-line{color:var(--purple);font-style:italic}.hero-copy-bottom{display:flex;align-items:flex-end;gap:35px}.hero-copy-bottom>p{margin:0;color:#a99fb3;font-size:12px;line-height:2}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:51px;padding:13px 22px;border-radius:99px;font-size:11px;font-weight:700;transition:background .3s,color .3s}.button-light{background:var(--ink);color:var(--bg)}.button-light:hover{background:var(--mint)}.button-light span{font-size:17px}.text-link{display:flex;gap:30px;color:#8d8298;font-size:9px;letter-spacing:.05em}.text-link:hover{color:#fff}.hero-proof{display:flex;align-items:center;gap:13px;margin-top:33px;color:#645a70;font-size:8px;letter-spacing:.12em}.hero-proof i{width:3px;height:3px;border-radius:50%;background:#5c5266}.hero-enter{opacity:0;translate:0 20px;animation:enterUp .9s var(--ease) .5s forwards}.hero-enter.delay-2{animation-delay:.6s}.hero-enter.delay-3{animation-delay:.75s}.hero-enter.delay-4{animation-delay:.9s}
.hero-stage{position:relative;height:690px;perspective:1200px}.stage-number{position:absolute;z-index:0;right:-15px;top:10px;font-family:Arial Black,Arial,sans-serif;font-size:300px;font-weight:900;line-height:1;letter-spacing:-.12em;color:rgba(255,255,255,.025);-webkit-text-stroke:1px rgba(255,255,255,.07)}.stage-orbit{position:absolute;z-index:0;left:50%;top:47%;border:1px solid rgba(199,168,246,.13);border-radius:50%;transform:translate(-50%,-50%) rotate(-20deg)}.orbit-a{width:570px;height:570px}.orbit-b{width:440px;height:440px;border-style:dashed;animation:spin 35s linear infinite}.orbit-a::before{content:"";position:absolute;top:68px;right:52px;width:7px;height:7px;border-radius:50%;background:var(--purple);box-shadow:0 0 20px var(--purple)}.hero-portrait{position:absolute;z-index:2;top:0;left:50%;width:390px;margin:0;transform:translateX(-50%) rotate(2deg);border:1px solid rgba(255,255,255,.19);border-radius:195px 195px 26px 26px;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.035));box-shadow:0 40px 100px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.18);overflow:hidden;backdrop-filter:blur(8px)}.portrait-chrome{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#b5a9c2;font-size:7px;letter-spacing:.15em}.portrait-chrome>span:last-child{display:flex;align-items:center;gap:6px;color:var(--mint)}.portrait-chrome i{width:4px;height:4px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}.hero-image-wrap{position:relative;height:500px;margin:0 10px;border-radius:180px 180px 18px 18px;overflow:hidden;background:radial-gradient(circle at 50% 25%,#efd9ed,#bfa4cc 65%,#6c567c)}.hero-image-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 65%,rgba(22,12,30,.36));pointer-events:none}.hero-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.9) contrast(1.03);transform:scale(1.025)}.hero-portrait figcaption{display:flex;align-items:center;justify-content:space-between;padding:17px 22px 19px}.hero-portrait figcaption div{display:flex;flex-direction:column}.hero-portrait figcaption span{color:#897b98;font-size:6px;letter-spacing:.18em}.hero-portrait figcaption strong{font-size:19px;letter-spacing:.02em}.hero-portrait figcaption em{color:#8c8197;font-size:8px;font-style:normal;text-align:right;line-height:1.6}.float-card{position:absolute;z-index:5;border:1px solid rgba(255,255,255,.16);background:rgba(24,18,33,.76);box-shadow:0 20px 50px rgba(0,0,0,.35);backdrop-filter:blur(18px)}.stage-chat{right:-5px;bottom:87px;width:235px;padding:14px 16px;border-radius:17px 17px 17px 4px;transform:rotate(-3deg)}.float-card-top{display:flex;align-items:center;gap:7px;color:#a89bb5;font-size:8px}.float-card-top img{width:25px;height:25px;border-radius:50%;object-fit:cover}.float-card-top i{margin-left:auto;font-style:normal;letter-spacing:2px}.stage-chat p{margin:10px 0 6px;font-size:11px;line-height:1.8}.message-time{display:block;text-align:right;color:#776a85;font-size:7px}.stage-memory{left:-15px;top:145px;display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:13px;transform:rotate(-4deg)}.stage-memory>span{color:var(--purple);font-size:21px}.stage-memory div{display:flex;flex-direction:column}.stage-memory small{color:#82738f;font-size:6px;letter-spacing:.13em}.stage-memory strong{font-size:9px;font-weight:550}.stage-seal{position:absolute;z-index:4;left:8px;bottom:67px;display:grid;place-items:center;width:80px;height:80px;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:rgba(16,11,24,.65)}.stage-seal span{position:absolute;width:100%;height:100%;font-size:6px;letter-spacing:.13em;color:#9b8da9;text-align:center;padding-top:7px;word-spacing:5px}.stage-seal b{color:var(--purple);font-size:23px}.parallax-layer{--px:0px;--py:0px;translate:var(--px) var(--py);transition:translate .25s ease-out}.hero-roster{position:absolute;z-index:5;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:25px;padding-top:18px;border-top:1px solid var(--line)}.roster-label{color:#6e627a;font-size:6px;line-height:1.7;letter-spacing:.18em}.roster-label b{color:#a697b3;font-size:8px;font-weight:500}.roster-avatars{display:flex;align-items:center;gap:7px}.roster-avatar{position:relative;width:39px;height:39px;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:#21192b;overflow:hidden;transition:transform .3s,border-color .3s}.roster-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:grayscale(.5);transition:filter .3s}.roster-avatar:hover{transform:translateY(-7px) scale(1.1);border-color:var(--purple)}.roster-avatar:hover img{filter:none}.scroll-cue{margin-left:auto;display:flex;align-items:center;gap:17px;color:#766a82;font-size:7px;letter-spacing:.16em}.scroll-cue i{display:grid;place-items:center;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;color:#c0b1ce;font-size:14px;font-style:normal;animation:scrollCue 2s infinite}
/* marquee */
.kinetic-strip{position:relative;z-index:8;width:105%;margin:-12px 0 -5px -2%;overflow:hidden;background:var(--purple);color:#160e20;transform:rotate(-1.5deg);box-shadow:0 10px 45px rgba(150,103,224,.18)}.kinetic-track{display:flex;align-items:center;gap:34px;width:max-content;padding:14px 0;animation:marquee 25s linear infinite;white-space:nowrap}.kinetic-track span{font-family:Arial Black,"Microsoft YaHei UI",sans-serif;font-size:18px;font-weight:900;letter-spacing:-.02em}.kinetic-track b{font-size:15px}
/* characters */
.characters-section{position:relative;padding:150px 0 125px;overflow:hidden;background:#0d0a13}.characters-glow{position:absolute;left:20%;top:30%;width:700px;height:700px;border-radius:50%;background:rgba(122,72,183,.08);filter:blur(120px)}.section-top{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:50px}.section-kicker{display:block;margin-bottom:20px;color:#8f7ba4;font-size:8px;font-weight:700;letter-spacing:.23em}.section-top h2{margin:0;font-size:clamp(55px,6.3vw,90px);line-height:1.12;letter-spacing:-.065em}.section-top h2 span{color:#746680}.section-intro{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:22px;padding-bottom:7px}.big-count{grid-row:span 2;font-family:Arial Black,Arial,sans-serif;font-size:100px;line-height:.8;letter-spacing:-.09em;color:transparent;-webkit-text-stroke:1px #675671}.section-intro p{margin:0;color:#8f829b;font-size:10px;line-height:1.9}.carousel-controls{grid-column:2;display:flex;gap:8px;margin-top:22px}.carousel-controls button{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:transparent;color:#c9bacd;font-size:17px;transition:background .25s,color .25s}.carousel-controls button:hover{background:var(--ink);color:var(--bg)}.character-toolbar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:55px;margin-bottom:25px}.filter-tabs{display:flex;gap:8px;flex-wrap:wrap}.filter-tab{display:flex;align-items:center;gap:12px;padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:transparent;color:#8e819b;font-size:9px;transition:.25s}.filter-tab span{color:#5e5369;font-size:7px}.filter-tab:hover{border-color:#766585;color:#fff}.filter-tab.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.filter-tab.active span{color:#756a7c}.drag-hint{display:flex;align-items:center;gap:10px;color:#675b73;font-size:8px;letter-spacing:.1em}.drag-hint i{font-size:17px;font-style:normal}.character-viewport{position:relative;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;cursor:grab}.character-viewport::-webkit-scrollbar{display:none}.character-viewport.dragging{cursor:grabbing;scroll-snap-type:none}.character-track{display:flex;gap:20px;width:max-content;padding:10px max(40px,calc((100vw - 1280px)/2)) 35px}.character-card{--accent:#bda0ff;position:relative;flex:0 0 315px;height:480px;border:1px solid rgba(255,255,255,.13);border-radius:24px;overflow:hidden;background:#1b1523;scroll-snap-align:center;transform-style:preserve-3d;transition:border-color .35s,box-shadow .35s;animation:cardIn .45s both}.character-card:hover{border-color:color-mix(in srgb,var(--accent) 65%,transparent);box-shadow:0 30px 70px color-mix(in srgb,var(--accent) 13%,transparent)}.character-card[hidden]{display:none}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .18s ease-out}.card-bg{position:absolute;inset:0;background:radial-gradient(circle at 50% 25%,color-mix(in srgb,var(--accent) 45%,#4b3b57),#19131f 72%)}.card-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.1),transparent 35%)}.card-art{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.85);transition:transform .8s var(--ease),filter .5s}.character-card:hover .card-art{transform:scale(1.055);filter:saturate(1.05)}.card-shade{position:absolute;z-index:2;inset:20% 0 0;background:linear-gradient(transparent,rgba(13,9,18,.1) 35%,rgba(13,9,18,.93) 77%,#0d0912 100%)}.card-number{position:absolute;z-index:3;top:12px;right:17px;font-family:Arial Black,Arial,sans-serif;font-size:70px;line-height:1;letter-spacing:-.08em;color:rgba(255,255,255,.16);text-shadow:0 2px 20px rgba(0,0,0,.15)}.card-series{position:absolute;z-index:3;top:20px;left:19px;padding:5px 9px;border:1px solid rgba(255,255,255,.28);border-radius:99px;background:rgba(15,10,20,.2);backdrop-filter:blur(8px);color:#fff;font-size:7px;letter-spacing:.08em}.card-copy{position:absolute;z-index:4;left:22px;right:22px;bottom:20px;transform:translateZ(25px)}.card-en{color:var(--accent);font-size:7px;letter-spacing:.2em}.card-copy h3{margin:5px 0 4px;font-size:27px;line-height:1.25;letter-spacing:-.04em}.card-role{margin:0;color:#a295ad;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.card-tags{display:flex;gap:5px}.card-tags span{padding:3px 7px;border-radius:5px;background:rgba(255,255,255,.07);color:#aa9db5;font-size:7px}.card-open{display:flex;align-items:center;gap:6px;color:#d8c9df;font-size:7px;letter-spacing:.1em}.card-open b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:13px;transition:transform .35s}.character-card:hover .card-open b{transform:rotate(45deg);background:var(--accent)}.carousel-footer{display:flex;align-items:center;gap:20px;color:#6a5e75;font-size:7px;letter-spacing:.16em}.carousel-progress{flex:1;height:1px;background:#2c2433}.carousel-progress i{display:block;width:10%;height:2px;background:var(--purple);transform-origin:left;transition:width .2s}.noscript-note{text-align:center;color:var(--muted)}
/* features */
.features-section{position:relative;padding:150px 0;background:var(--paper);color:var(--dark)}.features-heading{position:relative;margin-bottom:80px}.features-heading .section-kicker{color:#82738e}.features-heading h2{margin:0;font-size:clamp(52px,6.6vw,94px);line-height:1.12;letter-spacing:-.075em}.features-heading h2 em{color:#8e72b6;font-style:italic}.features-heading>p{position:absolute;right:0;bottom:8px;margin:0;color:#746c78;font-size:11px;line-height:2}.feature-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.feature-panel{position:relative;min-height:490px;border-radius:26px;overflow:hidden;padding:38px}.panel-number{position:absolute;right:28px;top:19px;font-family:Arial Black,Arial,sans-serif;font-size:70px;line-height:1;color:rgba(255,255,255,.08);letter-spacing:-.08em}.panel-copy{position:relative;z-index:3;max-width:470px}.panel-kicker{display:block;margin-bottom:18px;font-size:7px;font-weight:700;letter-spacing:.2em;opacity:.6}.panel-copy h3{margin:0 0 16px;font-size:31px;line-height:1.35;letter-spacing:-.045em}.panel-copy p{max-width:400px;margin:0;font-size:10px;line-height:1.95;opacity:.65}.memory-panel{grid-column:span 7;display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#16111f;color:#f4eef9}.memory-scene{position:relative;min-height:390px}.memory-date{position:absolute;right:0;top:2px;color:#5f536c;font-size:6px;letter-spacing:.16em}.memory-msg{position:absolute;width:90%;padding:17px 18px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);box-shadow:0 20px 40px rgba(0,0,0,.18);backdrop-filter:blur(10px)}.memory-msg small{color:#8c7d99;font-size:7px}.memory-msg p{margin:6px 0 0;font-size:10px}.memory-msg.old{top:75px;left:0;border-radius:5px 17px 17px 17px;transform:rotate(-3deg)}.memory-msg.new{right:0;bottom:50px;border-radius:17px 5px 17px 17px;background:#b89ce6;color:#1a1123;transform:rotate(3deg)}.memory-msg.new small{color:#5e486f}.memory-connector{position:absolute;left:45%;top:180px;height:85px;border-left:1px dashed #6f5a82}.memory-connector span{position:absolute;left:-11px;top:31px;color:var(--purple);font-size:21px}.initiative-panel{grid-column:span 5;background:#c7b3e5;color:#1b1422}.initiative-panel .panel-number{color:rgba(30,20,40,.07)}.initiative-art{position:absolute;right:-65px;bottom:-25px;width:310px;height:410px;object-fit:cover;object-position:top;filter:saturate(.65);mix-blend-mode:multiply;opacity:.75;mask-image:linear-gradient(to bottom,#000 65%,transparent)}.initiative-msg{position:absolute;z-index:3;left:35px;bottom:34px;padding:14px 18px;border:1px solid rgba(255,255,255,.35);border-radius:14px 14px 14px 4px;background:rgba(242,234,249,.6);backdrop-filter:blur(10px);transform:rotate(-2deg)}.initiative-msg span{color:#71617f;font-size:7px}.initiative-msg p{margin:4px 0 0;font-size:11px}.privacy-panel{grid-column:span 5;background:var(--mint)}.privacy-panel .panel-number{color:rgba(20,40,30,.07)}.privacy-watermark{position:absolute;left:-15px;bottom:45px;font-family:Arial Black,Arial,sans-serif;font-size:115px;font-weight:900;letter-spacing:-.09em;color:transparent;-webkit-text-stroke:1px rgba(22,47,35,.12);transform:rotate(-8deg)}.local-status{position:absolute;left:38px;right:38px;bottom:35px;display:flex;flex-direction:column;padding-top:17px;border-top:1px solid rgba(20,50,35,.16)}.local-status>span{display:flex;align-items:center;gap:7px;color:#4e755f;font-size:7px;letter-spacing:.16em}.local-status i{width:5px;height:5px;border-radius:50%;background:#4a9b6b;box-shadow:0 0 0 4px rgba(74,155,107,.12)}.local-status b{margin:8px 0 3px;font-size:15px}.local-status small{color:#70917e;font-size:6px;letter-spacing:.16em}.sync-panel{grid-column:span 7;display:grid;grid-template-columns:1fr 1.05fr;background:#17131d;color:#f4eef9}.sync-tags{display:flex;gap:7px;margin-top:24px;flex-wrap:wrap}.sync-tags span{padding:5px 9px;border:1px solid rgba(255,255,255,.12);border-radius:99px;color:#9c8da8;font-size:7px}.sync-scene{display:flex;align-items:center;justify-content:center;gap:10px;min-height:320px}.sync-device{text-align:center}.sync-device>div{border:1px solid rgba(255,255,255,.15);background:linear-gradient(145deg,#32283e,#211a2a);box-shadow:0 20px 35px rgba(0,0,0,.3)}.sync-device>span{display:block;margin-top:12px;color:#81748d;font-size:6px;letter-spacing:.18em}.desktop-device>div{width:155px;height:160px;padding:25px 20px;border-radius:15px;transform:rotate(-4deg)}.desktop-device img{width:40px;height:40px;margin:0 auto 18px;border-radius:12px}.desktop-device i{display:block;height:6px;margin:10px;border-radius:99px;background:#4a3d58}.phone-device>div{width:80px;height:170px;padding:30px 12px 15px;border-radius:18px;transform:rotate(5deg)}.phone-device i{display:block;height:29px;margin:10px 0;border-radius:5px 10px 10px 10px;background:#493b56}.phone-device i:nth-child(2){margin-left:13px;background:#6c5586;border-radius:10px 5px 10px 10px}.phone-device b{display:grid;place-items:center;width:27px;height:27px;margin:auto;border-radius:8px;background:#5a476d;color:#c4a9dc}.sync-link{width:55px;text-align:center}.sync-link>span{font-size:6px;color:#9c86b1}.sync-link>i{position:relative;display:block;height:1px;margin:12px 0;background:#4b3c59}.sync-link b{position:absolute;top:-3px;left:0;width:7px;height:7px;border-radius:50%;background:var(--purple);box-shadow:0 0 10px var(--purple);animation:syncMove 2.5s infinite}.sync-link small{color:#5f526b;font-size:5px;white-space:nowrap}
/* download */
.download-section{position:relative;min-height:790px;display:flex;align-items:center;overflow:hidden;background:radial-gradient(circle at 50% 60%,#2b1941,transparent 45%),#0b0911;text-align:center}.download-stars{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.35) 0 1px,transparent 1.3px);background-size:91px 91px;opacity:.2;mask-image:radial-gradient(circle,#000,transparent 70%)}.download-cast{position:absolute;inset:auto 0 -120px;display:flex;align-items:flex-end;justify-content:center;gap:6vw;opacity:.17;filter:grayscale(.4);pointer-events:none}.download-cast img{width:300px;height:650px;object-fit:cover;object-position:top;mask-image:linear-gradient(#000 40%,transparent 90%)}.download-cast img:first-child{transform:rotate(-8deg) translateX(-90px)}.download-cast img:nth-child(2){width:360px;height:730px}.download-cast img:last-child{transform:rotate(8deg) translateX(90px)}.download-content{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center}.download-content h2{margin:0;font-size:clamp(62px,7.5vw,108px);line-height:1.12;letter-spacing:-.075em}.download-content h2 span{color:var(--purple);font-style:italic}.download-content>p{margin:25px 0 32px;color:#a296ae;font-size:11px;line-height:2}.download-button{display:flex;align-items:center;justify-content:space-between;gap:65px;min-width:330px;padding:15px 16px 15px 27px;border-radius:99px;background:var(--ink);color:var(--bg);text-align:left;transition:background .3s}.download-button>span{display:flex;flex-direction:column;font-family:Arial Black,Arial,sans-serif;font-size:17px;letter-spacing:.04em}.download-button small{font-family:"Microsoft YaHei UI",sans-serif;font-size:7px;font-weight:500;letter-spacing:.12em;opacity:.55}.download-button b{display:grid;place-items:center;width:49px;height:49px;border-radius:50%;background:var(--purple);font-size:23px}.download-button:hover{background:var(--mint)}.download-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.download-actions .download-button{min-width:310px}.download-android{background:#c7b3e5}.download-android b{background:#f5f0fa}.download-meta{display:flex;align-items:center;gap:12px;margin-top:24px;color:#64586f;font-size:7px;letter-spacing:.12em}.download-meta i{width:3px;height:3px;border-radius:50%;background:#54475f}
/* footer */
.site-footer{background:#0b0911}.footer-main{display:flex;align-items:center;gap:35px;padding:35px 0;border-top:1px solid var(--line)}.footer-main>p{color:#75697f;font-size:10px}.back-top{margin-left:auto;color:#766a82;font-size:7px;letter-spacing:.16em}.footer-bottom{display:flex;justify-content:space-between;gap:25px;padding:19px 0 27px;border-top:1px solid var(--line);color:#544a5d;font-size:6px;letter-spacing:.09em}.footer-bottom p{max-width:570px;margin:0;text-align:center;letter-spacing:0}
/* dialog */
.character-dialog{--accent:#bda0ff;width:min(900px,calc(100% - 36px));max-height:min(760px,calc(100dvh - 40px));padding:0;border:1px solid rgba(255,255,255,.18);border-radius:27px;background:#120e19;color:var(--ink);box-shadow:0 45px 120px rgba(0,0,0,.65);overflow:auto}.character-dialog::backdrop{background:rgba(5,3,8,.75);backdrop-filter:blur(12px)}.character-dialog[open]{animation:dialogIn .35s var(--ease)}.dialog-close{position:absolute;z-index:6;top:15px;right:15px;width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(15,10,20,.45);backdrop-filter:blur(10px);color:#fff;font-size:24px;line-height:1}.dialog-layout{display:grid;grid-template-columns:390px 1fr;min-height:590px}.dialog-portrait{position:relative;min-height:590px;overflow:hidden;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent) 45%,#4b3b57),#19131f 75%)}.dialog-portrait img{width:100%;height:100%;object-fit:cover;object-position:top}.dialog-portrait::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(12,8,17,.7))}.dialog-portrait-caption{position:absolute;z-index:2;left:27px;bottom:25px}.dialog-portrait-caption span{color:var(--accent);font-size:7px;letter-spacing:.2em}.dialog-portrait-caption strong{display:block;font-size:29px}.dialog-details{position:relative;padding:58px 38px 38px}.dialog-series{color:var(--accent);font-size:8px;font-weight:700;letter-spacing:.15em}.dialog-details h2{margin:9px 0 4px;font-size:35px;letter-spacing:-.045em}.dialog-role{margin:0 0 23px;color:#8f819c;font-size:9px}.dialog-description{margin:0 0 24px;color:#b2a6bc;font-size:11px;line-height:2}.dialog-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:23px}.dialog-fact{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035)}.dialog-fact small{display:block;color:#74677f;font-size:7px}.dialog-fact strong{display:block;margin-top:4px;font-size:10px;font-weight:550}.dialog-quote{position:relative;margin:0;padding:17px 17px 17px 38px;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:13px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:#d4c5de;font-size:11px}.dialog-quote::before{content:"“";position:absolute;left:13px;top:5px;color:var(--accent);font-family:Georgia,serif;font-size:29px}.dialog-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}.dialog-tags span{padding:4px 9px;border:1px solid var(--line);border-radius:99px;color:#8f819b;font-size:8px}
/* motion */
.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.visible{opacity:1;transform:none}@keyframes titleUp{to{transform:none}}@keyframes enterUp{to{opacity:1;translate:0 0}}@keyframes breathe{50%{transform:scale(1.15);opacity:.65}}@keyframes spin{to{transform:translate(-50%,-50%) rotate(340deg)}}@keyframes scrollCue{50%{transform:translateY(5px)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes syncMove{0%,100%{left:0;opacity:0}15%,85%{opacity:1}50%{left:calc(100% - 7px)}}@keyframes cardIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes dialogIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
/* responsive */
@media(max-width:1180px){.wrap{width:calc(100% - 56px)}.hero-layout{grid-template-columns:1fr 1fr;gap:10px}.hero h1{font-size:74px}.hero-copy-bottom{display:block}.hero-actions{flex-direction:row;align-items:center;margin-top:20px}.hero-stage{transform:scale(.88);transform-origin:center}.hero-roster{gap:15px}.roster-avatars{gap:5px}.roster-avatar{width:34px;height:34px}.memory-panel{grid-column:span 8}.initiative-panel{grid-column:span 4}.privacy-panel{grid-column:span 4}.sync-panel{grid-column:span 8}.feature-panel{padding:31px}.panel-copy h3{font-size:27px}.memory-panel{grid-template-columns:1fr}.memory-scene{position:absolute;right:20px;bottom:15px;width:48%;height:300px;min-height:0}.memory-panel .panel-copy{max-width:45%}.initiative-art{opacity:.45}.sync-panel{grid-template-columns:1fr}.sync-scene{position:absolute;right:15px;bottom:20px;width:52%;transform:scale(.85)}.sync-panel .panel-copy{max-width:45%}}
@media(max-width:900px){.wrap{width:calc(100% - 40px)}.desktop-nav{display:none}.hero{height:auto;min-height:1180px;padding-top:120px}.hero-layout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.hero-copy{text-align:center}.hero-eyebrow{justify-content:center}.hero h1{font-size:clamp(62px,11vw,90px)}.hero-copy-bottom>p{font-size:11px}.hero-actions{justify-content:center}.hero-proof{justify-content:center}.hero-stage{width:600px;max-width:none;left:50%;margin-left:-300px;transform:scale(.9);transform-origin:center top}.hero-roster{bottom:25px;flex-wrap:wrap;justify-content:center}.roster-label{display:none}.scroll-cue{display:none}.section-top{align-items:flex-start}.section-intro{grid-template-columns:1fr}.big-count{display:none}.section-intro p{grid-column:1}.carousel-controls{grid-column:1}.character-track{padding-left:20px;padding-right:20px}.features-heading>p{position:static;margin-top:25px}.memory-panel,.initiative-panel,.privacy-panel,.sync-panel{grid-column:span 12}.memory-panel{grid-template-columns:1fr 1fr}.memory-panel .panel-copy{max-width:none}.memory-scene{position:relative;right:auto;bottom:auto;width:auto;height:auto;min-height:390px}.initiative-art{opacity:.7}.sync-panel{grid-template-columns:1fr 1fr}.sync-panel .panel-copy{max-width:none}.sync-scene{position:relative;right:auto;bottom:auto;width:auto;transform:none}.download-cast{opacity:.11}.dialog-layout{grid-template-columns:330px 1fr}}
@media(max-width:680px){.wrap{width:calc(100% - 32px)}html{scroll-padding-top:72px}.nav-wrap{width:calc(100% - 28px)}.site-header{height:74px}.brand-mark{width:37px;height:37px}.brand-name{font-size:18px}.brand-name small{display:none}.nav-download{gap:10px;padding:7px 8px 7px 14px;font-size:9px}.nav-download i{width:25px;height:25px}.hero{min-height:1080px;padding-top:105px}.hero-giant-word{top:90px;font-size:38vw}.hero-side-type{display:none}.hero h1{margin:25px 0 23px;font-size:clamp(52px,15vw,76px);line-height:1.13}.hero-copy-bottom>p{font-size:10px}.desktop-only{display:none}.hero-actions{gap:18px}.button{gap:18px;min-height:47px;padding:11px 18px;font-size:10px}.text-link{font-size:8px;gap:12px}.hero-proof{font-size:7px}.hero-stage{height:600px;transform:scale(.74);margin-bottom:-90px}.hero-roster{bottom:28px;gap:8px;padding-top:15px}.roster-avatars{gap:4px}.roster-avatar{width:30px;height:30px}.kinetic-track{padding:11px 0;gap:23px}.kinetic-track span{font-size:14px}.characters-section{padding:100px 0 85px}.section-top{display:block}.section-top h2{font-size:57px}.section-intro{display:flex;align-items:center;justify-content:space-between;margin-top:25px}.section-intro p{font-size:9px}.carousel-controls{margin:0}.character-toolbar{margin-top:32px;align-items:flex-start}.filter-tab{padding:7px 11px;font-size:8px;gap:8px}.drag-hint{display:none}.character-track{gap:13px;padding:7px 16px 25px}.character-card{flex-basis:275px;height:430px;border-radius:21px}.card-copy h3{font-size:25px}.carousel-footer{gap:12px}.carousel-footer>span:last-child{display:none}.features-section{padding:100px 0}.features-heading{margin-bottom:45px}.features-heading h2{font-size:49px}.features-heading>p{font-size:10px}.feature-grid{gap:13px}.feature-panel{min-height:510px;padding:27px;border-radius:22px}.panel-copy h3{font-size:27px}.memory-panel{display:block;min-height:760px}.memory-scene{min-height:350px;margin-top:20px}.initiative-panel{min-height:570px}.initiative-art{right:-80px;opacity:.58}.privacy-panel{min-height:470px}.privacy-watermark{font-size:95px}.local-status{left:27px;right:27px}.sync-panel{display:block;min-height:780px}.sync-scene{min-height:330px;margin-top:25px;transform:scale(.9)}.download-section{min-height:690px}.download-content h2{font-size:56px}.download-content>p{font-size:10px}.download-button{min-width:290px;gap:35px}.download-meta{max-width:300px;justify-content:center;flex-wrap:wrap;font-size:6px}.download-cast img{width:200px}.download-cast img:nth-child(2){width:230px}.footer-main{flex-wrap:wrap;gap:20px}.footer-main>p{width:100%;margin:0}.back-top{margin-left:0}.footer-bottom{flex-direction:column;gap:10px}.footer-bottom p{text-align:left}.character-dialog{max-height:calc(100dvh - 24px)}.dialog-layout{grid-template-columns:1fr}.dialog-portrait{min-height:360px;height:360px}.dialog-details{padding:30px 24px}.dialog-details h2{font-size:30px}}
@media(max-width:370px){.hero h1{font-size:49px}.roster-avatar{width:27px;height:27px}.character-card{flex-basis:255px}.features-heading h2{font-size:43px}.download-content h2{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.hero-enter{opacity:1;translate:none}.title-line>span{transform:none}.parallax-layer{translate:none}.cursor-dot,.cursor-ring{display:none}}

/* cinematic character prologue */
.hero{--hero-accent:#efb3d1}
.hero-sticky{position:relative;height:100%;isolation:isolate}
.hero-portraits{display:contents}
.hero-portrait{--scene-opacity:0;--scene-shift:0px;--scene-rotate:2deg;--scene-scale:1;opacity:var(--scene-opacity);transform:translateX(-50%) translateY(var(--scene-shift)) rotate(var(--scene-rotate)) scale(var(--scene-scale));pointer-events:none;will-change:transform,opacity}
.hero .accent-line{color:var(--hero-accent);transition:color .7s}
.hero-glow{background:color-mix(in srgb,var(--hero-accent) 20%,transparent);transition:background .7s}
.stage-number,.hero-character-word{transition:color .5s,-webkit-text-stroke-color .5s}
.hero-character-word{position:absolute;z-index:1;left:50%;top:230px;transform:translateX(-50%) rotate(-90deg);font-family:Arial Black,Arial,sans-serif;font-size:105px;font-weight:900;line-height:1;letter-spacing:-.06em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--hero-accent) 16%,transparent);opacity:.75;pointer-events:none}
.scene-copy{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;max-width:475px;margin-top:29px;padding-top:16px;border-top:1px solid var(--line)}
.scene-count{color:var(--hero-accent);font-size:9px;font-weight:700;white-space:nowrap;transition:color .5s}
.scene-copy p{margin:0;color:#9e92a9;font-size:10px;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene-profile{padding:4px 0;border:0;border-bottom:1px solid #574b63;background:none;color:#9d8fac;font-size:8px;white-space:nowrap}
.scene-profile:hover{color:#fff;border-color:var(--hero-accent)}
#heroChatText{min-height:40px}
.roster-avatar.active{border-color:var(--hero-accent);transform:translateY(-6px);box-shadow:0 0 0 3px color-mix(in srgb,var(--hero-accent) 12%,transparent)}
.roster-avatar.active img{filter:none}
.scene-rail{display:none}
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
  .hero{height:520svh;min-height:4000px;padding-top:0;overflow:clip}
  .hero-sticky{position:sticky;top:0;height:100svh;min-height:760px;padding-top:94px;overflow:hidden;background:radial-gradient(circle at 75% 40%,color-mix(in srgb,var(--hero-accent) 10%,#17101f) 0,transparent 40%),linear-gradient(135deg,#0b0911 0,#0d0a15 60%,#100d18 100%)}
  .hero-layout{min-height:min(735px,calc(100svh - 165px))}
  .scene-rail{position:absolute;z-index:7;left:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:15px;color:#6d5f78;font-size:7px;letter-spacing:.12em}
  .scene-rail>span{writing-mode:vertical-rl}
  .scene-rail-track{position:relative;width:1px;height:120px;background:#342a3d}
  .scene-rail-track i{position:absolute;inset:0;background:var(--hero-accent);transform:scaleY(0);transform-origin:top;box-shadow:0 0 8px var(--hero-accent)}
  .scene-rail a{writing-mode:vertical-rl;color:#75677f;font-size:6px}
  .scene-rail a:hover{color:#fff}
}
@media(min-width:901px) and (max-height:850px){
  .hero-stage{transform:scale(.82);transform-origin:center}
  .hero h1{margin:22px 0;font-size:clamp(62px,6.6vw,94px)}
  .hero-copy-bottom>p{font-size:10px}
  .scene-copy{margin-top:20px}
  .hero-roster{bottom:15px}
}
@media(max-width:900px){
  .hero-sticky{height:1060px;min-height:0}
  .scene-copy{margin:24px auto 0;text-align:left}
  .hero-character-word{font-size:90px}
}
@media(max-width:680px){
  .hero-sticky{height:975px}
  .scene-copy{gap:9px;margin-top:21px;padding-top:13px}
  .scene-count{font-size:8px}
  .scene-copy p{font-size:9px}
  .scene-profile{font-size:7px}
  .hero-character-word{font-size:72px}
}
@media(min-width:901px) and (prefers-reduced-motion:reduce){
  .hero{height:1000px;min-height:1000px;padding-top:94px}
  .hero-sticky{height:906px}
}

/* character-specific art direction and final polish */
.hero{--hero-secondary:#7fa5d9}
.hero-sticky::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 85%,color-mix(in srgb,var(--hero-secondary) 10%,transparent),transparent 35%);transition:background .8s}
.scene-atmosphere{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.scene-grid{position:absolute;inset:-20%;opacity:.16;background-image:linear-gradient(color-mix(in srgb,var(--hero-accent) 16%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--hero-accent) 16%,transparent) 1px,transparent 1px);background-size:90px 90px;mask-image:radial-gradient(circle at 68% 50%,#000,transparent 64%);transform:rotate(-8deg);transition:opacity .7s,transform 1s,background-size .7s}
.scene-halo{position:absolute;right:7%;top:7%;width:min(57vw,780px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--hero-accent) 18%,transparent);border-radius:50%;opacity:.38;box-shadow:inset 0 0 100px color-mix(in srgb,var(--hero-secondary) 5%,transparent),0 0 100px color-mix(in srgb,var(--hero-accent) 4%,transparent);transition:border-radius .8s,transform 1s,border-color .8s}
.scene-halo::before,.scene-halo::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--hero-secondary) 14%,transparent);border-radius:inherit}
.scene-halo::before{inset:9%}.scene-halo::after{inset:23%;border-style:dashed}
.scene-symbols span{position:absolute;color:var(--hero-accent);font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1;text-shadow:0 0 32px color-mix(in srgb,var(--hero-accent) 25%,transparent);opacity:.22;animation:symbolFloat 8s ease-in-out infinite;transition:color .6s}
.scene-symbols span:nth-child(1){left:49%;top:17%;font-size:52px}
.scene-symbols span:nth-child(2){right:5%;bottom:22%;font-size:30px;animation-delay:-2.5s}
.scene-symbols span:nth-child(3){left:43%;bottom:16%;font-size:24px;animation-delay:-5s}
.scene-label{position:absolute;left:46%;bottom:105px;color:#665973;font-size:6px;letter-spacing:.25em;white-space:nowrap}
.scene-label::before{content:"";display:inline-block;width:34px;height:1px;margin:0 12px 2px 0;background:var(--hero-accent);opacity:.5}
.hero[data-texture="archive"] .scene-grid{background-size:180px 100%;background-image:repeating-linear-gradient(90deg,transparent 0 100px,color-mix(in srgb,var(--hero-accent) 20%,transparent) 100px 101px);transform:rotate(0)}
.hero[data-texture="archive"] .scene-halo{border-radius:24px;transform:rotate(7deg) scale(.82)}
.hero[data-texture="sketch"] .scene-grid{background-size:55px 55px;opacity:.1;transform:rotate(5deg)}
.hero[data-texture="digital"] .scene-grid{background-size:42px 42px;transform:rotate(0);opacity:.2}
.hero[data-texture="pixel"] .scene-grid{background-size:32px 32px;transform:rotate(0)}
.hero[data-texture="pixel"] .scene-halo{border-radius:0;transform:rotate(45deg) scale(.62)}
.hero[data-texture="math"] .scene-grid{background-size:70px 70px;transform:rotate(0);opacity:.22}
.hero[data-texture="rail"] .scene-grid{background-size:100% 68px;transform:perspective(650px) rotateX(57deg) rotateZ(-12deg) scale(1.35)}
.hero[data-texture="rail"] .scene-halo{transform:rotate(-24deg) scaleY(.48)}
.hero[data-texture="detective"] .scene-grid{background-image:radial-gradient(circle,transparent 0 54px,color-mix(in srgb,var(--hero-accent) 22%,transparent) 55px 56px,transparent 57px);background-size:170px 170px;transform:rotate(0)}
.hero[data-texture="detective"] .scene-halo{border-width:2px;transform:scale(.72)}
.hero[data-texture="nocturne"] .scene-grid{opacity:.07;transform:rotate(0)}
.hero[data-texture="nocturne"] .scene-halo{transform:scale(.85);border-style:dashed}
.scene-transition{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent 34%,color-mix(in srgb,var(--hero-accent) 16%,transparent) 48%,rgba(255,255,255,.09) 51%,transparent 65%);mix-blend-mode:screen;transform:translateX(-120%)}
.scene-transition.play{animation:sceneSweep .85s var(--ease)}
.stage-chat{border-color:color-mix(in srgb,var(--hero-accent) 25%,transparent);transition:border-color .6s}
@keyframes symbolFloat{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-18px) rotate(7deg)}}
@keyframes sceneSweep{0%{opacity:0;transform:translateX(-120%)}30%{opacity:.65}100%{opacity:0;transform:translateX(120%)}}

.desktop-nav a{position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:1px;background:var(--purple);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.desktop-nav a.active{color:#fff}
.desktop-nav a.active::after{transform:scaleX(1)}
.feature-panel{--spot-x:50%;--spot-y:50%;isolation:isolate;transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.feature-panel::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(360px circle at var(--spot-x) var(--spot-y),rgba(255,255,255,.14),transparent 68%);opacity:0;transition:opacity .45s}
@media(hover:hover){
  .feature-panel:hover{transform:translateY(-6px);box-shadow:0 28px 65px rgba(24,16,31,.14)}
  .feature-panel:hover::after{opacity:1}
}
.button-light{position:relative;overflow:hidden}
.button-light::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.65) 48%,transparent 70%);transform:translateX(-130%);transition:transform .7s var(--ease)}
.button-light:hover::before{transform:translateX(130%)}
::selection{background:#bda0ff;color:#140d1c}
:focus-visible{outline:2px solid var(--purple);outline-offset:5px}
@media(max-width:900px){
  .scene-label{display:none}
  .scene-grid{opacity:.09}
  .scene-halo{right:-270px;top:34%;width:620px;opacity:.2}
  .scene-symbols span:nth-child(1){left:8%;top:48%;font-size:34px}
  .scene-symbols span:nth-child(2){right:6%;bottom:15%;font-size:23px}
  .scene-symbols span:nth-child(3){left:5%;bottom:8%;font-size:18px}
  .scene-transition{display:none}
}
@media(prefers-reduced-motion:reduce){
  .scene-transition{display:none}
  .feature-panel:hover{transform:none}
}

/* automatic character gallery */
.gallery-tools{display:flex;align-items:center;gap:22px}
.gallery-auto-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.025);color:#75697f;font-size:8px;letter-spacing:.08em;white-space:nowrap;transition:color .25s,border-color .25s,background .25s}
.gallery-auto-toggle i{width:5px;height:5px;border-radius:50%;background:#665c6e;transition:background .25s,box-shadow .25s}
.gallery-auto-toggle:hover{border-color:#766585;color:#fff}
.gallery-auto-toggle.active{border-color:rgba(200,247,220,.2);background:rgba(200,247,220,.045);color:#b7d9c5}
.gallery-auto-toggle.active i{background:var(--mint);box-shadow:0 0 9px rgba(200,247,220,.7);animation:autoPulse 2s ease-in-out infinite}
.character-viewport{overscroll-behavior-x:contain}
.character-viewport.auto-scrolling{scroll-snap-type:none}
@keyframes autoPulse{50%{opacity:.45;box-shadow:0 0 3px rgba(200,247,220,.35)}}

/* cinematic conversations */
.conversations-section{position:relative;isolation:isolate;padding:155px 0 165px;overflow:hidden;background:linear-gradient(160deg,#0b0911 0,#100c17 58%,#0b0911 100%)}
.conversation-word{position:absolute;z-index:-1;left:50%;top:35px;transform:translateX(-50%);font-family:Arial Black,Arial,sans-serif;font-size:clamp(105px,14.8vw,240px);font-weight:900;line-height:1;letter-spacing:-.075em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(213,187,240,.055);pointer-events:none}
.conversation-aurora{position:absolute;z-index:-1;left:50%;top:40%;width:1050px;height:760px;transform:translate(-50%,-50%) rotate(-8deg);border-radius:50%;background:radial-gradient(ellipse,rgba(136,85,180,.11),transparent 65%);filter:blur(40px);animation:conversationBreathe 9s ease-in-out infinite;pointer-events:none}
.conversation-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:65px}
.conversation-heading h2{margin:0;font-size:clamp(55px,6.2vw,88px);line-height:1.12;letter-spacing:-.065em}
.conversation-heading h2 span{color:#a789c8;font-style:italic}
.conversation-heading>p{margin:0 0 8px;color:#998ba5;font-size:11px;line-height:2.05}
.conversation-heading>p span{color:#675b73;font-size:9px}
.conversation-shell{--chat-accent:#efb3d1;position:relative;display:grid;grid-template-columns:305px minmax(0,1fr);height:660px;border:1px solid rgba(255,255,255,.14);border-radius:31px;background:linear-gradient(135deg,rgba(39,30,49,.9),rgba(15,12,21,.95));box-shadow:0 50px 110px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.07);overflow:clip;transition:box-shadow .7s}
.conversation-shell::before{content:"";position:absolute;right:-8%;bottom:-45%;width:70%;height:100%;border-radius:50%;background:color-mix(in srgb,var(--chat-accent) 11%,transparent);filter:blur(80px);pointer-events:none;transition:background .7s}
.conversation-sidebar{position:relative;z-index:2;display:flex;flex-direction:column;min-width:0;padding:31px 21px 25px}
.conversation-sidebar-top{display:flex;flex-direction:column;padding:0 10px}
.conversation-sidebar-top span{color:#776985;font-size:6px;font-weight:700;letter-spacing:.22em}
.conversation-sidebar-top b{margin-top:6px;font-size:14px;font-weight:600;letter-spacing:.03em}
.conversation-cast{display:flex;flex-direction:column;gap:9px;margin-top:29px}
.conversation-character{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:9px;border:1px solid transparent;border-radius:16px;background:transparent;color:#a79aae;text-align:left;transition:background .35s,border-color .35s,color .35s,transform .35s var(--ease)}
.conversation-character::before{content:"";position:absolute;left:-1px;top:25%;width:2px;height:50%;border-radius:3px;background:var(--character-accent);transform:scaleY(0);transition:transform .35s}
.conversation-character:hover{background:rgba(255,255,255,.035);color:#fff;transform:translateX(3px)}
.conversation-character.active{border-color:color-mix(in srgb,var(--character-accent) 22%,transparent);background:linear-gradient(100deg,color-mix(in srgb,var(--character-accent) 12%,transparent),rgba(255,255,255,.025));color:#fff}
.conversation-character.active::before{transform:scaleY(1)}
.conversation-character>img{width:50px;height:57px;border-radius:12px;object-fit:cover;object-position:center top;filter:saturate(.75);transition:filter .35s}
.conversation-character.active>img{filter:saturate(1)}
.conversation-character>span{display:flex;flex-direction:column;min-width:0}
.conversation-character strong{font-size:12px;font-weight:650}
.conversation-character small{margin-top:3px;color:#74677f;font-size:7px;white-space:nowrap}
.conversation-character.active small{color:#9d8daa}
.conversation-character>i{font-family:Arial,sans-serif;font-size:8px;font-style:normal;color:#584d62}
.conversation-character.active>i{color:var(--character-accent)}
.conversation-sidebar-foot{display:flex;flex-direction:column;gap:5px;margin-top:auto;padding:21px 10px 0;border-top:1px solid var(--line)}
.conversation-sidebar-foot>span{display:flex;align-items:center;gap:7px;color:#8c7b99;font-size:6px;letter-spacing:.18em}
.conversation-sidebar-foot i{width:4px;height:4px;border-radius:50%;background:var(--mint);box-shadow:0 0 7px var(--mint)}
.conversation-sidebar-foot small{color:#5e5269;font-size:7px}
.chat-window{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0;height:632px;margin:14px 14px 14px 0;border:1px solid rgba(255,255,255,.11);border-radius:22px;background:radial-gradient(circle at 90% 0,color-mix(in srgb,var(--chat-accent) 7%,transparent),transparent 30%),rgba(10,8,14,.86);box-shadow:0 25px 60px rgba(0,0,0,.25);overflow:hidden;transition:background .7s}
.chat-topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:79px;padding:0 25px;border-bottom:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.018)}
.chat-person{display:flex;align-items:center;gap:12px}
.chat-avatar{position:relative;flex-shrink:0}
.chat-avatar img{width:43px;height:43px;border:1px solid color-mix(in srgb,var(--chat-accent) 38%,transparent);border-radius:50%;object-fit:cover;object-position:center top}
.chat-avatar>i{position:absolute;right:0;bottom:1px;width:10px;height:10px;border:2px solid #110d17;border-radius:50%;background:var(--mint)}
.chat-person>div:last-child{display:flex;flex-direction:column}
.chat-person strong{font-size:12px;font-weight:650;letter-spacing:.02em}
.chat-person span{display:flex;align-items:center;gap:5px;margin-top:2px;color:#796d84;font-size:7px}
.chat-person span i{width:4px;height:4px;border-radius:50%;background:#8ec8a5}
.chat-actions{display:flex;align-items:center;gap:17px}
.chat-actions>span{color:#574c61;font-size:6px;letter-spacing:.17em}
.chat-actions button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:#9c8da7;font-size:17px;line-height:1;transition:color .25s,border-color .25s,background .25s}
.chat-actions button:hover{border-color:var(--chat-accent);background:color-mix(in srgb,var(--chat-accent) 9%,transparent);color:#fff}
.chat-actions button.replaying{animation:replaySpin .7s var(--ease)}
.chat-messages{min-height:0;padding:20px 28px 13px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3b3045 transparent;background-image:radial-gradient(circle,rgba(255,255,255,.04) .6px,transparent .8px);background-size:22px 22px}
.chat-day{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:#5e5269;font-size:6px;letter-spacing:.13em}
.chat-day span{color:#8a7b95;font-size:7px}
.chat-day i{flex:1;height:1px;background:rgba(255,255,255,.055)}
.chat-day small{font-size:5px;letter-spacing:.16em}
.chat-message{display:flex;align-items:flex-start;gap:9px;margin-bottom:13px;animation:messageIn .45s var(--ease) both}
.chat-message.from-user{justify-content:flex-end}
.message-avatar{flex:0 0 29px;width:29px;height:29px;margin-top:3px;border-radius:50%;object-fit:cover;object-position:center top}
.message-stack{display:flex;flex-direction:column;align-items:flex-start;max-width:76%}
.from-user .message-stack{align-items:flex-end}
.chat-bubble{margin:0;padding:10px 14px;border:1px solid rgba(255,255,255,.085);border-radius:5px 16px 16px 16px;background:#211b29;box-shadow:0 8px 22px rgba(0,0,0,.1);color:#ddd3e3;font-size:11px;line-height:1.75;letter-spacing:.01em}
.from-user .chat-bubble{border-color:color-mix(in srgb,var(--chat-accent) 55%,transparent);border-radius:16px 5px 16px 16px;background:var(--chat-accent);color:#211624;box-shadow:0 8px 25px color-mix(in srgb,var(--chat-accent) 8%,transparent)}
.chat-message-meta{margin-top:4px;padding:0 3px;color:#554a5f;font-size:6px;letter-spacing:.06em}
.from-user .chat-message-meta{color:#73647e}
.typing-bubble{display:flex;align-items:center;gap:4px;height:35px;padding:0 14px;border:1px solid rgba(255,255,255,.08);border-radius:5px 16px 16px 16px;background:#211b29}
.typing-bubble i{width:4px;height:4px;border-radius:50%;background:#8e7c9a;animation:typingDot 1.1s ease-in-out infinite}
.typing-bubble i:nth-child(2){animation-delay:.15s}.typing-bubble i:nth-child(3){animation-delay:.3s}
.chat-compose{display:flex;align-items:center;gap:11px;min-height:54px;margin:0 24px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:rgba(255,255,255,.028);padding:6px 7px 6px 14px}
.chat-compose-icon{color:#655770;font-size:17px;font-weight:300}
.chat-compose-placeholder{color:#594d63;font-size:9px}
.chat-compose>a{display:flex;align-items:center;gap:11px;margin-left:auto;padding:8px 9px 8px 14px;border-radius:10px;background:color-mix(in srgb,var(--chat-accent) 13%,transparent);color:color-mix(in srgb,var(--chat-accent) 80%,#fff);font-size:8px;font-weight:600;white-space:nowrap;transition:background .3s,color .3s}
.chat-compose>a b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--chat-accent);color:#1a121e;font-size:11px}
.chat-compose>a:hover{background:var(--chat-accent);color:#1a121e}
.chat-compose>a:hover b{background:#1a121e;color:var(--chat-accent)}
.chat-disclaimer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 27px 14px;color:#4e4357;font-size:6px;letter-spacing:.04em}
.chat-disclaimer span:last-child{font-size:5px;letter-spacing:.14em}
@keyframes conversationBreathe{50%{transform:translate(-50%,-50%) rotate(3deg) scale(1.13);opacity:.65}}
@keyframes messageIn{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@keyframes typingDot{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:1}}
@keyframes replaySpin{to{transform:rotate(-360deg)}}
.desktop-nav{gap:28px}

@media(max-width:1180px){
  .conversation-shell{grid-template-columns:275px minmax(0,1fr)}
  .conversation-sidebar{padding-inline:16px}
  .conversation-character{grid-template-columns:45px minmax(0,1fr) auto;gap:10px}
  .conversation-character>img{width:45px;height:52px}
  .chat-messages{padding-inline:23px}
}
@media(max-width:900px){
  .conversation-heading{align-items:flex-start}
  .conversation-heading>p{font-size:10px}
  .conversation-shell{grid-template-columns:1fr;height:auto}
  .conversation-sidebar{padding:23px 20px 17px}
  .conversation-sidebar-top{padding:0 4px}
  .conversation-cast{flex-direction:row;gap:9px;margin-top:20px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
  .conversation-cast::-webkit-scrollbar{display:none}
  .conversation-character{flex:1 0 195px;grid-template-columns:44px minmax(0,1fr) auto;padding:8px}
  .conversation-character>img{width:44px;height:49px}
  .conversation-character:hover{transform:none}
  .conversation-sidebar-foot{display:none}
  .chat-window{height:620px;margin:0 12px 12px}
}
@media(max-width:680px){
  .gallery-tools{gap:10px}
  .gallery-auto-toggle{padding:7px 10px;font-size:7px}
  .conversations-section{padding:105px 0 110px}
  .conversation-word{top:35px;font-size:25vw}
  .conversation-heading{display:block;margin-bottom:40px}
  .conversation-heading h2{font-size:51px}
  .conversation-heading>p{margin-top:25px;font-size:10px}
  .conversation-heading>p span{font-size:8px}
  .conversation-shell{border-radius:24px}
  .conversation-sidebar{padding:19px 11px 12px}
  .conversation-cast{gap:7px;margin-top:16px}
  .conversation-character{flex-basis:169px;grid-template-columns:41px minmax(0,1fr);gap:9px;border-radius:13px}
  .conversation-character>img{width:41px;height:47px;border-radius:10px}
  .conversation-character strong{font-size:11px}
  .conversation-character small{font-size:6px}
  .conversation-character>i{display:none}
  .chat-window{height:600px;margin:0 8px 8px;border-radius:18px}
  .chat-topbar{min-height:72px;padding:0 15px}
  .chat-avatar img{width:39px;height:39px}
  .chat-actions{gap:10px}
  .chat-actions>span{display:none}
  .chat-messages{padding:18px 13px 10px}
  .chat-day{margin-bottom:17px}
  .message-stack{max-width:82%}
  .chat-bubble{padding:9px 12px;font-size:10px}
  .message-avatar{flex-basis:26px;width:26px;height:26px}
  .chat-compose{min-height:51px;margin:0 11px;padding-left:11px;gap:7px}
  .chat-compose-placeholder{font-size:8px}
  .chat-compose-icon{display:none}
  .chat-compose>a{padding-left:11px;font-size:7px}
  .chat-disclaimer{padding:10px 14px 12px;font-size:5px}
  .chat-disclaimer span:last-child{display:none}
}
@media(max-width:370px){
  .conversation-heading h2{font-size:44px}
  .chat-compose-placeholder{max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(prefers-reduced-motion:reduce){
  .gallery-auto-toggle.active i{opacity:1}
  .conversation-aurora{display:none}
}

/* Character gallery: drag freely without selecting or ghost-dragging content. */
.character-viewport,.character-card,.character-card *{user-select:none;-webkit-user-select:none}
.character-card img,.dialog-portrait img{-webkit-user-drag:none;user-drag:none}
.character-viewport.dragging .card-inner{transition:none}
.card-open{font-weight:700;letter-spacing:.06em;white-space:nowrap}

/* Full character dossier. */
.character-dialog{width:min(1120px,calc(100% - 42px));max-height:min(920px,calc(100dvh - 42px));scrollbar-width:thin;scrollbar-color:#59466c transparent}
.dialog-layout{grid-template-columns:44% 56%;min-height:760px}
.dialog-portrait{min-height:760px}
.dialog-portrait::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.12),transparent 32%);pointer-events:none}
.dialog-details{padding:48px 42px 38px}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}
.dialog-en{color:#685a75;font-size:7px;letter-spacing:.16em;text-align:right}
.dialog-headline{margin:8px 0 0;color:var(--accent);font-size:13px;font-weight:650;letter-spacing:-.02em}
.dialog-role{margin:9px 0 22px;font-size:10px}
.dialog-quote{margin-bottom:22px;font-size:12px;line-height:1.8}
.dialog-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dialog-fact{min-height:70px;padding:12px}
.dialog-fact strong{font-size:10px;line-height:1.55}
.dialog-profile{margin-top:27px;padding-top:25px;border-top:1px solid var(--line)}
.dialog-profile>span{color:var(--accent);font-size:7px;font-weight:750;letter-spacing:.19em}
.dialog-profile p{margin:13px 0 0;color:#b9adbf;font-size:12px;line-height:1.95}
.dialog-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.dialog-story-grid section,.dialog-together{padding:16px 17px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}
.dialog-story-grid small,.dialog-together small{color:var(--accent);font-size:9px;font-weight:700}
.dialog-story-grid p,.dialog-together p{margin:8px 0 0;color:#9f92aa;font-size:11px;line-height:1.85}
.dialog-together{margin-top:10px;background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 18%,transparent)}
.dialog-navigation{position:sticky;z-index:5;bottom:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;padding:17px 22px;border-top:1px solid rgba(255,255,255,.1);background:rgba(17,12,24,.9);backdrop-filter:blur(22px)}
.dialog-navigation button{display:flex;align-items:center;gap:12px;padding:7px 5px;border:0;background:transparent;color:#d4c8dc;text-align:left}
.dialog-navigation button:last-child{justify-content:flex-end;text-align:right}
.dialog-navigation button i{color:var(--accent,#bda0ff);font-size:19px;font-style:normal;transition:transform .25s}
.dialog-navigation button:hover i{transform:translateX(-4px)}
.dialog-navigation button:last-child:hover i{transform:translateX(4px)}
.dialog-navigation button span{font-size:10px}
.dialog-navigation button small{display:block;margin-top:2px;color:#74677f;font-size:8px}
.dialog-download{display:flex;align-items:center;justify-content:center;gap:18px;min-height:43px;padding:10px 20px;border-radius:99px;background:var(--ink);color:var(--bg);font-size:10px;font-weight:700;transition:background .25s,transform .25s}
.dialog-download:hover{background:var(--mint);transform:translateY(-2px)}
.dialog-download b{font-size:15px}
@media(max-width:900px){
  .dialog-layout{grid-template-columns:39% 56%;min-height:700px}
  .dialog-portrait{min-height:700px}
  .dialog-details{padding:40px 30px 32px}
  .dialog-facts{grid-template-columns:1fr 1fr}
  .dialog-fact:last-child{grid-column:1/-1}
}
@media(max-width:680px){
  .character-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:22px}
  .dialog-layout{grid-template-columns:1fr;min-height:0}
  .dialog-portrait{height:410px;min-height:410px}
  .dialog-details{padding:30px 22px 26px}
  .dialog-heading{display:block}
  .dialog-en{display:block;margin-top:5px;text-align:left}
  .dialog-headline{font-size:12px}
  .dialog-facts{grid-template-columns:1fr 1fr}
  .dialog-fact:last-child{grid-column:1/-1}
  .dialog-story-grid{grid-template-columns:1fr}
  .dialog-profile p{font-size:11px}
  .dialog-navigation{grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px}
  .dialog-download{grid-column:1/-1;grid-row:1;min-height:42px}
  .dialog-navigation button{padding:6px}
}

/* Community: two luminous, tactile QQ group cards. */
.community-section{position:relative;isolation:isolate;padding:155px 0 135px;overflow:hidden;background:radial-gradient(circle at 12% 12%,#251735 0,transparent 38%),radial-gradient(circle at 90% 78%,#102d31 0,transparent 36%),#0b0911}
.community-section::before{content:"";position:absolute;z-index:-2;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at center,#000,transparent 78%)}
.community-stars{position:absolute;z-index:-1;inset:-20%;background-image:radial-gradient(circle,#c9b4ef 0 1px,transparent 1.5px),radial-gradient(circle,#b8f4dc 0 1px,transparent 1.5px);background-position:0 0,47px 61px;background-size:137px 137px,181px 181px;opacity:.22;animation:communityDrift 35s linear infinite}
.community-watermark{position:absolute;z-index:-1;top:25px;left:50%;transform:translateX(-50%);color:transparent;font-family:Arial Black,Arial,sans-serif;font-size:clamp(100px,16vw,250px);font-weight:900;line-height:1;letter-spacing:-.08em;white-space:nowrap;-webkit-text-stroke:1px rgba(255,255,255,.035);pointer-events:none}
.community-wrap{position:relative}
.community-heading{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:45px;margin-bottom:68px}
.community-heading .section-kicker{grid-column:1/-1;margin-bottom:-12px}
.community-heading h2{margin:0;font-size:clamp(52px,6.2vw,88px);line-height:1.13;letter-spacing:-.065em}
.community-heading h2 span{color:#82738e}
.community-heading>p{margin:0 0 8px;color:#91849b;font-size:11px;line-height:2.05}
.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px;perspective:1600px}
.community-card{--community-x:50%;--community-y:50%;--community-rx:0deg;--community-ry:0deg;position:relative;min-width:0;padding:27px 28px 22px;border:1px solid rgba(255,255,255,.14);border-radius:31px;background:linear-gradient(145deg,rgba(52,35,68,.9),rgba(20,15,29,.96));box-shadow:0 38px 90px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.06);transform:rotateX(var(--community-rx)) rotateY(var(--community-ry));transform-style:preserve-3d;transition:transform .25s ease-out,border-color .35s,box-shadow .35s;overflow:hidden}
.community-card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle 330px at var(--community-x) var(--community-y),rgba(222,190,255,.13),transparent 70%);pointer-events:none;transition:opacity .3s}
.community-card:hover{border-color:rgba(220,194,255,.32);box-shadow:0 48px 110px rgba(0,0,0,.42),0 20px 70px rgba(154,105,207,.08)}
.community-developer{background:linear-gradient(145deg,rgba(20,54,57,.88),rgba(13,23,29,.97))}
.community-developer::after{background:radial-gradient(circle 330px at var(--community-x) var(--community-y),rgba(174,245,220,.12),transparent 70%)}
.community-card-glow{position:absolute;right:-110px;top:-150px;width:330px;height:330px;border-radius:50%;background:#a679d1;filter:blur(100px);opacity:.16;pointer-events:none}
.community-developer .community-card-glow{background:#79dfbd}
.community-card>header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding-bottom:19px;border-bottom:1px solid rgba(255,255,255,.09);color:#83718f;font-size:7px;letter-spacing:.17em}
.community-card>header i{color:#a899b4;font-size:6px;font-style:normal}
.community-developer>header{color:#6f9690}
.community-card-main{position:relative;z-index:2;display:grid;grid-template-columns:184px minmax(0,1fr);align-items:center;gap:25px;padding:30px 0 28px}
.qr-button{position:relative;display:block;width:100%;padding:0;border:0;border-radius:23px;background:transparent;color:#fff;text-align:left}
.qr-frame{position:relative;display:block;padding:8px;border:1px solid rgba(255,255,255,.65);border-radius:23px;background:#fff;box-shadow:0 20px 45px rgba(0,0,0,.3),0 0 0 6px rgba(255,255,255,.04);overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s}
.qr-frame::after{content:"";position:absolute;left:8px;right:8px;top:8px;height:70px;background:linear-gradient(transparent,rgba(191,157,255,.17),transparent);animation:qrScan 4.5s ease-in-out infinite;pointer-events:none}
.community-developer .qr-frame::after{background:linear-gradient(transparent,rgba(102,218,181,.16),transparent)}
.qr-frame img{width:100%;height:auto;border-radius:16px}
.qr-button:hover .qr-frame{transform:translateY(-6px) rotate(-1.5deg);box-shadow:0 28px 55px rgba(0,0,0,.4),0 0 0 6px rgba(255,255,255,.07)}
.qr-zoom{position:absolute;z-index:3;top:16px;right:16px;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:rgba(16,11,22,.82);box-shadow:0 5px 15px rgba(0,0,0,.2);font-size:14px;backdrop-filter:blur(8px)}
.community-label{color:#bca2d2;font-size:7px;font-weight:700;letter-spacing:.13em}
.community-developer .community-label{color:#8fd3bd}
.community-card-copy h3{margin:9px 0 12px;font-size:25px;line-height:1.3;letter-spacing:-.04em}
.community-card-copy>p{margin:0;color:#a294ac;font-size:10px;line-height:1.9}
.community-developer .community-card-copy>p{color:#91aaa7}
.community-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:16px}
.community-tags span{padding:4px 7px;border:1px solid rgba(255,255,255,.09);border-radius:6px;color:#8f7e9c;font-size:7px}
.community-developer .community-tags span{color:#78a198}
.community-number{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.09)}
.community-number small{color:#776681;font-size:7px}
.community-number strong{color:#e7dcee;font-family:Arial,sans-serif;font-size:19px;letter-spacing:.06em}
.community-developer .community-number strong{color:#d8eee7}
.copy-group{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;min-height:42px;margin-top:12px;padding:10px 15px;border:0;border-radius:12px;background:#eee8f3;color:#1c1424;font-size:9px;font-weight:700;transition:background .25s,transform .25s}
.copy-group b{font-size:15px;font-weight:400}
.copy-group:hover{background:var(--mint);transform:translateY(-2px)}
.copy-group.copied{background:var(--mint)}
.community-card>footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:17px;border-top:1px solid rgba(255,255,255,.09)}
.community-card>footer>span{display:flex;align-items:center;gap:7px;color:#b1a1bb;font-size:7px}
.community-card>footer i{width:5px;height:5px;border-radius:50%;background:#c3a4e8;box-shadow:0 0 9px #c3a4e8}
.community-developer>footer i{background:#8de0bf;box-shadow:0 0 9px #8de0bf}
.community-card>footer small{color:#66596f;font-size:6px;text-align:right}
.community-note{display:flex;align-items:center;gap:17px;margin-top:28px;padding:0 4px;color:#6f6279}
.community-note>span{color:#b69ad4;font-size:17px}
.community-note p{margin:0;font-size:8px;line-height:1.8}
.community-note small{margin-left:auto;font-size:6px;letter-spacing:.15em;white-space:nowrap}
.qr-dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid rgba(255,255,255,.19);border-radius:28px;background:#13101a;color:var(--ink);box-shadow:0 45px 120px rgba(0,0,0,.7);overflow:auto}
.qr-dialog::backdrop{background:rgba(5,3,8,.8);backdrop-filter:blur(14px)}
.qr-dialog[open]{animation:dialogIn .35s var(--ease)}
.qr-dialog-content{padding:34px;text-align:center}
.qr-dialog-content>span{color:#9b84b3;font-size:7px;letter-spacing:.2em}
.qr-dialog-content h2{margin:6px 0 19px;font-size:25px}
.qr-dialog-content img{width:100%;max-height:62dvh;object-fit:contain;border-radius:18px;background:#fff}
.qr-dialog-content p{margin:17px 0 0;color:#8d8197;font-size:9px}
.qr-dialog-content .copy-group{max-width:250px;margin:15px auto 0}
.community-toast{position:fixed;z-index:220;left:50%;bottom:28px;max-width:calc(100% - 32px);padding:12px 19px;border:1px solid rgba(255,255,255,.17);border-radius:99px;background:rgba(20,15,27,.92);box-shadow:0 15px 45px rgba(0,0,0,.4);backdrop-filter:blur(16px);color:#e9dfed;font-size:10px;text-align:center;opacity:0;transform:translate(-50%,18px);pointer-events:none;transition:opacity .3s,transform .3s}
.community-toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes communityDrift{to{transform:translate3d(7%,5%,0)}}
@keyframes qrScan{0%,100%{transform:translateY(-90px);opacity:0}15%,85%{opacity:1}50%{transform:translateY(330px)}}
@media(max-width:1180px){
  .community-card{padding:24px 22px 20px}
  .community-card-main{grid-template-columns:155px minmax(0,1fr);gap:19px}
  .community-card-copy h3{font-size:22px}
  .community-number strong{font-size:16px}
}
@media(max-width:900px){
  .community-heading{grid-template-columns:1fr;gap:22px}
  .community-heading .section-kicker{margin-bottom:-5px}
  .community-heading>p{margin:0}
  .community-grid{grid-template-columns:1fr;gap:18px}
  .community-card-main{grid-template-columns:195px minmax(0,1fr);gap:26px}
  .community-card-copy h3{font-size:26px}
}
@media(max-width:680px){
  .community-section{padding:100px 0 85px}
  .community-heading{margin-bottom:40px}
  .community-heading h2{font-size:clamp(37px,10.8vw,44px)}
  .community-heading>p{font-size:10px}
  .community-card{padding:20px 18px 17px;border-radius:24px}
  .community-card-main{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:15px;padding:23px 0 21px}
  .qr-frame{padding:5px;border-radius:15px}
  .qr-frame img{border-radius:10px}
  .qr-zoom{top:9px;right:9px;width:25px;height:25px;font-size:11px}
  .community-label{font-size:6px;letter-spacing:.06em}
  .community-card-copy h3{margin:6px 0 8px;font-size:19px}
  .community-card-copy>p{font-size:9px;line-height:1.75}
  .community-tags{margin-top:10px;gap:4px}
  .community-tags span{padding:3px 5px;font-size:6px}
  .community-number{display:block;margin-top:12px;padding-top:10px}
  .community-number strong{display:block;margin-top:2px;font-size:17px}
  .copy-group{min-height:37px;padding:8px 11px;font-size:8px}
  .community-card>footer small{max-width:150px}
  .community-note{align-items:flex-start;gap:10px}
  .community-note small{display:none}
  .qr-dialog-content{padding:28px 22px}
}
@media(max-width:370px){
  .community-card-main{grid-template-columns:96px minmax(0,1fr);gap:12px}
  .community-card-copy h3{font-size:17px}
  .community-tags span:nth-child(3){display:none}
}
@media(prefers-reduced-motion:reduce){
  .community-stars,.qr-frame::after{animation:none}
  .community-card{transform:none}
}

/* Live release statistics and the read-only observatory entry. */
.download-live{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px;color:#796b84}
.download-live>span{display:flex;align-items:center;gap:7px;font-size:6px;letter-spacing:.16em}
.download-live>span i{width:5px;height:5px;border-radius:50%;background:#a7dfc0;box-shadow:0 0 9px #a7dfc0}
.download-live strong{color:#e7ddec;font-family:Arial,sans-serif;font-size:18px;font-variant-numeric:tabular-nums}
.download-live small{font-size:7px}
.download-live a{margin-left:8px;padding-left:16px;border-left:1px solid rgba(255,255,255,.13);color:#a28caf;font-size:7px;white-space:nowrap}
.download-live a:hover{color:var(--mint)}
.admin-link{margin-left:auto;color:#9b86aa;font-size:7px;white-space:nowrap}
.admin-link+.back-top{margin-left:0}
@media(max-width:680px){
  .download-live{max-width:310px;margin-inline:auto;flex-wrap:wrap;gap:7px 10px}
  .download-live>span{width:100%;justify-content:center}
  .download-live a{margin-left:3px;padding-left:10px}
  .admin-link{margin-left:0}
  .footer-main .back-top{margin-left:auto}
}

/* Decorative layers may extend beyond the canvas, but never create horizontal scrolling. */
html,body{overflow-x:clip}

/* Top-layer dialogs need a real pointer: the custom halo cannot sit above them. */
@media(pointer:fine){
  .js .character-dialog,.js .character-dialog *,.js .qr-dialog,.js .qr-dialog *{cursor:auto}
  .js .character-dialog a,.js .character-dialog button,.js .character-dialog [role="button"],
  .js .qr-dialog a,.js .qr-dialog button,.js .qr-dialog [role="button"]{cursor:pointer}
}

/* Star-track cinema: layered depth driven by native scroll, no WebGL required. */
.hero{--hero-progress:0}
.hero::after{content:"";position:absolute;z-index:2;inset:0;box-shadow:inset 0 0 180px 35px rgba(3,2,8,.62);pointer-events:none}
.hero-warp{position:absolute;z-index:1;inset:0;overflow:hidden;perspective:900px;pointer-events:none;opacity:calc(.16 + var(--hero-progress) * .42)}
.hero-warp i{position:absolute;left:58%;top:44%;width:48vmin;height:48vmin;border:1px solid rgba(197,164,241,.2);border-radius:50%;box-shadow:0 0 45px rgba(161,111,220,.06),inset 0 0 45px rgba(161,111,220,.05);transform:translate(-50%,-50%) rotateX(67deg) rotateZ(calc(var(--hero-progress) * 160deg)) scale(calc(.65 + var(--hero-progress) * 1.25));transition:border-color .6s}
.hero-warp i:nth-child(2){width:72vmin;height:72vmin;border-style:dashed;border-color:rgba(147,211,211,.14);transform:translate(-50%,-50%) rotateX(71deg) rotateZ(calc(var(--hero-progress) * -115deg)) scale(calc(.55 + var(--hero-progress) * 1.35))}
.hero-warp i:nth-child(3){width:96vmin;height:96vmin;border-color:rgba(221,190,255,.08);transform:translate(-50%,-50%) rotateX(74deg) rotateZ(calc(var(--hero-progress) * 80deg)) scale(calc(.45 + var(--hero-progress) * 1.45))}
.hero-warp>span{position:absolute;left:58%;top:44%;transform:translate(-50%,-50%);color:rgba(224,202,255,.75);font-size:22px;text-shadow:0 0 28px #b893e5;animation:breathe 4s ease-in-out infinite}
.hero-camera{position:absolute;z-index:4;right:28px;top:112px;display:flex;align-items:center;gap:11px;color:#655770;font-size:6px;letter-spacing:.17em;pointer-events:none}
.hero-camera i{display:block;width:44px;height:1px;background:linear-gradient(90deg,#715489,transparent);transform-origin:left;transform:scaleX(calc(.3 + var(--hero-progress) * .7))}
.hero-camera small{color:#4e4359;font-size:5px;letter-spacing:.13em}
.hero-giant-word{will-change:transform}
@media(min-width:901px){
  .hero-giant-word{transform:translateX(-50%) translateY(calc(var(--hero-progress) * -95px)) scale(calc(1 + var(--hero-progress) * .16))}
  .hero-copy{transform:translateY(calc(var(--hero-progress) * -18px));transition:transform .12s linear}
}
@media(max-width:900px){.hero-warp{opacity:.16}.hero-warp i{left:50%;width:70vmin;height:70vmin}.hero-warp>span{left:50%}.hero-camera{display:none}}
@media(prefers-reduced-motion:reduce){.hero-warp,.hero-camera{display:none}.hero-copy{transform:none}}

/* Dossier entrance and the interactive memory constellation. */
.dialog-details>*{animation:dossierEnter .55s var(--ease) both}
.dialog-details>*:nth-child(2){animation-delay:.04s}.dialog-details>*:nth-child(3){animation-delay:.07s}.dialog-details>*:nth-child(4){animation-delay:.1s}.dialog-details>*:nth-child(5){animation-delay:.13s}.dialog-details>*:nth-child(n+6){animation-delay:.16s}
@keyframes dossierEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.memory-scene{isolation:isolate}
.memory-scene::before{content:"";position:absolute;z-index:-1;inset:0;background-image:radial-gradient(circle,rgba(218,192,240,.55) 0 1px,transparent 1.4px),radial-gradient(circle,rgba(157,208,198,.35) 0 1px,transparent 1.3px);background-position:0 0,31px 43px;background-size:83px 83px,109px 109px;opacity:.32;pointer-events:none}
.memory-nebula{position:absolute;z-index:-1;inset:-20%;background:radial-gradient(circle at 42% 35%,rgba(169,120,213,.2),transparent 32%),radial-gradient(circle at 72% 72%,rgba(116,188,184,.12),transparent 30%);animation:memoryNebula 12s ease-in-out infinite alternate}
.memory-links{position:absolute;z-index:0;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.memory-links path{fill:none;stroke:rgba(202,170,230,.44);stroke-width:1.2;stroke-dasharray:5 7;vector-effect:non-scaling-stroke;animation:memoryDash 18s linear infinite}
.memory-links path:last-child{stroke:rgba(137,198,190,.24);stroke-dasharray:2 9}
.memory-msg.memory-choice{font:inherit;text-align:left;color:inherit}
.memory-msg.old.selected{border-color:rgba(198,167,231,.42);box-shadow:0 20px 45px rgba(164,116,204,.14)}
.memory-star{position:absolute;z-index:4;display:flex;align-items:center;gap:7px;padding:6px;border:0;background:transparent;color:#83728f;font-size:7px;letter-spacing:.08em}
.memory-star i{position:relative;display:block;width:11px;height:11px;border:1px solid rgba(224,199,255,.65);border-radius:50%;background:#c4a2e8;box-shadow:0 0 15px rgba(199,157,236,.7)}
.memory-star i::after{content:"";position:absolute;inset:-7px;border:1px solid rgba(202,164,235,.18);border-radius:50%;animation:memoryPulse 2.8s ease-out infinite}
.memory-star span{opacity:.65;transition:opacity .25s,color .25s}
.memory-star:hover span,.memory-star.selected span{opacity:1;color:#d5bce9}
.memory-star.selected i{background:#e4c9ff;box-shadow:0 0 22px #c19ae5}
.star-one{left:39%;top:12%}.star-two{right:0;top:27%}.star-three{left:26%;bottom:2%}
#memoryLive{z-index:3}
#memoryLiveNote{display:block;margin-top:9px;color:#6d5a79;font-size:6px;line-height:1.6}
.memory-live-updated{animation:memoryLive .5s var(--ease)}
@keyframes memoryDash{to{stroke-dashoffset:-140}}
@keyframes memoryPulse{from{opacity:.7;transform:scale(.65)}to{opacity:0;transform:scale(1.8)}}
@keyframes memoryNebula{to{transform:translate3d(4%,3%,0) scale(1.08)}}
@keyframes memoryLive{from{opacity:.25;transform:rotate(3deg) translateY(12px)}to{opacity:1;transform:rotate(3deg) translateY(0)}}
@media(max-width:680px){.memory-star{font-size:6px}.star-one{left:42%}.star-two{right:-3%}.star-three{left:30%}}
@media(prefers-reduced-motion:reduce){.memory-nebula,.memory-links path,.memory-star i::after{animation:none}}
