*{box-sizing:border-box}html{color-scheme:dark;background:#07080d}body{margin:0;background:radial-gradient(circle at 50% -10%,#1a1730 0,#090a10 38%,#06070b 100%);color:#f5f4fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}button{color:inherit}.muted{color:#999aae;font-size:.88em}.boot{min-height:100vh;display:grid;place-content:center;gap:18px;text-align:center;color:#aaa9bd}.rift-loader{width:72px;height:72px;border-radius:50%;margin:auto;background:radial-gradient(circle,#090a10 22%,#6e55b9 34%,#161223 49%,#090a10 68%);box-shadow:0 0 40px #7b5cff55;animation:breathe 1.8s ease-in-out infinite}.rift-loader i{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #ffffff28;animation:spin 4s linear infinite}@keyframes breathe{50%{transform:scale(1.07);box-shadow:0 0 60px #8d6cff77}}@keyframes spin{to{transform:rotate(360deg)}}
a{color:inherit;text-decoration:none}.shell{max-width:920px;margin:auto;min-height:100vh;padding:0 16px 110px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 2px 14px;position:sticky;top:0;z-index:20;background:linear-gradient(#090a10f2,#090a10c8 78%,transparent);backdrop-filter:blur(14px)}.wordmark{font-weight:900;letter-spacing:.16em;font-size:.95rem}.top-actions{display:flex;gap:10px}.chip{border:1px solid #ffffff1f;background:#ffffff08;border-radius:999px;padding:7px 11px;color:#c5c4d3;font-size:.8rem}.nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(920px,100%);height:82px;padding:9px 12px max(9px,env(safe-area-inset-bottom));background:#0d0e15ed;border-top:1px solid #ffffff16;backdrop-filter:blur(18px);z-index:50;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.nav button{border:0;background:none;color:#797a8c;border-radius:14px;padding:7px 2px;display:grid;place-content:center;gap:3px}.nav button.active{background:#ffffff0b;color:#fff}.nav b{font-size:1.25rem;line-height:1}.nav span{font-size:.68rem;font-weight:700}.page-head{padding:12px 2px 18px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-weight:800;font-size:.67rem;color:#8c8ca0}.page-head h1{font-size:clamp(2rem,7vw,3.8rem);line-height:.98;margin:.3rem 0 .6rem;letter-spacing:-.055em}.page-head p{color:#a9a8ba;line-height:1.55;max-width:620px;margin:.4rem 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:28px 0 12px}.section-title h2{margin:0;font-size:1.2rem}.section-title small{color:#808193}.card{background:linear-gradient(145deg,#141620,#0d0e15);border:1px solid #ffffff12;border-radius:22px;box-shadow:0 18px 50px #00000024;overflow:hidden}.btn{border:1px solid #ffffff1c;background:#ffffff0a;padding:11px 15px;border-radius:13px;font-weight:750;cursor:pointer}.btn:hover{background:#ffffff12}.btn.primary{background:linear-gradient(135deg,#775fe2,#8e6be8);border-color:#a98eff44;color:white}.btn.danger{color:#ffb2b2}.btn.small{padding:7px 10px;font-size:.8rem}.btn:disabled{opacity:.45;cursor:not-allowed}.notice{padding:12px 14px;border-radius:14px;margin:12px 0;font-size:.9rem}.notice.good{background:#4ecb8a15;border:1px solid #4ecb8a48;color:#aaf0c8}.notice.bad{background:#ff686815;border:1px solid #ff686848;color:#ffc0c0}.gate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gate-card{min-height:210px;position:relative;padding:16px;border:1px solid var(--gate-border);border-radius:22px;overflow:hidden;background:radial-gradient(circle at 50% 31%,color-mix(in srgb,var(--gate) 25%,transparent),#0e0f17 54%);cursor:pointer}.gate-card:before{content:"";position:absolute;width:116px;height:116px;border-radius:50%;top:26px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,#050508 20%,color-mix(in srgb,var(--gate) 55%,#160f26) 30%,#08080d 48%,transparent 70%);box-shadow:0 0 34px color-mix(in srgb,var(--glow) 28%,transparent),inset 0 0 15px #000}.gate-card:after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,transparent 25%,#ffffff09 49%,transparent 52%);pointer-events:none}.gate-card .gate-copy{position:absolute;bottom:14px;left:16px;right:16px}.gate-card h3{margin:0;font-size:1.05rem}.gate-card p{margin:4px 0 0;color:#999bac;font-size:.75rem;line-height:1.35}.gate-card .gate-icon{position:absolute;top:61px;left:50%;transform:translateX(-50%);z-index:2;font-size:1.35rem;color:white;text-shadow:0 0 10px var(--glow)}.egg-grid{display:grid;gap:14px}.egg-card{position:relative;min-height:265px;padding:18px;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:14px}.egg-visual{height:205px;position:relative;display:grid;place-items:center;--gate:#7b67db;--glow:#a98dff}.egg-visual:before{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#06070b 17%,color-mix(in srgb,var(--gate) 42%,#16121f) 32%,#0c0d14 49%,transparent 71%);box-shadow:0 0 44px color-mix(in srgb,var(--glow) 25%,transparent)}.egg{position:relative;width:96px;height:132px;border-radius:48% 48% 45% 45% / 58% 58% 42% 42%;background:linear-gradient(140deg,#f3ead6 0%,color-mix(in srgb,var(--gate) 45%,#d9d0d0) 48%,#201d32 100%);border:1px solid #fff7;box-shadow:inset 14px 8px 24px #ffffff47,inset -14px -14px 28px #0005,0 20px 35px #0009;z-index:2}.egg:before,.egg:after{content:"";position:absolute;inset:12px;border-radius:inherit;border:1px solid color-mix(in srgb,var(--glow) 55%,transparent);opacity:.45;transform:rotate(var(--egg-rot,13deg))}.egg:after{inset:24px;transform:rotate(-22deg);opacity:.25}.egg.cracking{box-shadow:inset 14px 8px 24px #ffffff47,inset -14px -14px 28px #0005,0 0 34px color-mix(in srgb,var(--glow) 60%,transparent)}.egg.cracking .crack{display:block}.crack{display:none;position:absolute;left:47px;top:23px;width:3px;height:76px;background:#fff;box-shadow:0 0 12px var(--glow);transform:rotate(15deg);clip-path:polygon(0 0,100% 0,100% 23%,0 31%,100% 45%,0 60%,100% 77%,0 100%)}.gate-glass{position:absolute;inset:0;z-index:4;border-radius:inherit;pointer-events:auto;user-select:none;-webkit-user-select:none;background:linear-gradient(135deg,color-mix(in srgb,var(--gate) 10%,transparent),transparent 35%,#ffffff05 52%,transparent 64%);border:1px solid color-mix(in srgb,var(--gate) 22%,transparent)}.gate-glass:after{content:"BOUNDPHASE  •  BOUNDPHASE  •  ";position:absolute;inset:0;display:grid;place-content:center;overflow:hidden;color:#fff;font-size:7px;letter-spacing:.22em;opacity:.045;transform:rotate(-18deg);white-space:nowrap}.egg-info h3{margin:0 0 4px}.egg-info p{margin:4px 0;color:#9b9cad;font-size:.86rem}.progress{height:7px;background:#ffffff0d;border-radius:99px;overflow:hidden;margin:12px 0}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gate),var(--glow));border-radius:inherit}.today-list{display:grid;gap:10px}.routine-row{display:flex;align-items:center;gap:12px;padding:13px 14px}.routine-row .gdot{width:12px;height:12px;border-radius:50%;background:var(--gate);box-shadow:0 0 12px var(--gate)}.routine-row .rtext{flex:1}.routine-row b{display:block;font-size:.9rem}.routine-row small{color:#868798}.pulse-btn{width:44px;height:44px;border-radius:50%;border:1px solid #ffffff25;background:#ffffff0b;display:grid;place-items:center;cursor:pointer}.pulse-btn:hover{background:#ffffff18}.comp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.comp-card{position:relative;min-height:285px;background:#10111a;border-radius:22px;overflow:hidden;border:1px solid #ffffff13}.comp-card img{width:100%;height:220px;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none}.comp-card .gate-glass{height:220px}.comp-copy{padding:12px}.comp-copy h3{margin:0}.comp-copy small{color:#8e8fa2}.rare-badge{display:inline-flex;padding:3px 7px;border-radius:99px;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;background:#b995ff1a;border:1px solid #b995ff42;color:#d8c6ff}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card,.install-card{width:min(460px,100%);padding:28px;border:1px solid #ffffff16;border-radius:28px;background:#101119dd;box-shadow:0 30px 100px #0008}.brand-mark{width:58px;height:58px;border-radius:18px;background:radial-gradient(circle at 40% 30%,#b69aff,#705ad2 48%,#201b3c);display:grid;place-items:center;font-weight:900;letter-spacing:.08em;box-shadow:0 0 35px #7f65df44}.auth-card h1,.install-card h1{font-size:2rem;letter-spacing:-.04em;margin:.7em 0 .25em}.auth-tabs{display:flex;gap:7px;margin:20px 0}.auth-tabs button{flex:1}.auth-card form,.install-card form,.admin-form{display:grid;gap:13px}.auth-card label,.install-card label,.admin-form label{display:grid;gap:7px;color:#a4a5b5;font-size:.82rem;font-weight:650}.auth-card input,.install-card input,.admin-form input,.admin-form select,.admin-form textarea,.modal input,.modal select,.modal textarea{width:100%;border:1px solid #ffffff17;background:#07080d;padding:12px 13px;border-radius:12px;color:#fff;outline:none}.auth-card input:focus,.install-card input:focus,.admin-form input:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#8b6ee5}.modal-backdrop{position:fixed;inset:0;background:#000a;backdrop-filter:blur(10px);z-index:80;display:grid;place-items:end center;padding:20px 14px}.modal{width:min(600px,100%);max-height:88vh;overflow:auto;background:#11131d;border:1px solid #ffffff1a;border-radius:28px;padding:20px;box-shadow:0 30px 100px #000}.modal h2{margin:.2rem 0}.modal .close{float:right;border:0;background:#ffffff0c;border-radius:50%;width:36px;height:36px}.template-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.template-chips button{font-size:.75rem}.comp-hero{position:relative;min-height:520px;border-radius:28px;overflow:hidden;border:1px solid #ffffff16;background:#0e0f18}.comp-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;user-select:none;-webkit-user-drag:none}.comp-hero .gate-glass{z-index:3}.comp-hero-copy{position:absolute;z-index:5;left:0;right:0;bottom:0;padding:80px 20px 20px;background:linear-gradient(transparent,#090a10f5)}.comp-hero-copy h1{font-size:2.5rem;margin:0;letter-spacing:-.05em}.talk-box{padding:18px;margin-top:14px}.talk-output{min-height:80px;line-height:1.55;color:#deddea}.talk-actions{display:flex;gap:8px;margin-top:12px}.talk-actions input{flex:1;border:1px solid #ffffff17;background:#080910;color:white;border-radius:12px;padding:11px}.story-card{padding:16px;margin:9px 0}.story-card.locked{filter:blur(0);opacity:.45}.variant-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.variant{aspect-ratio:1;border-radius:16px;background:radial-gradient(circle at 35% 28%,var(--gate),#141522 70%);display:grid;place-items:end center;font-size:.65rem;text-align:center;border:1px solid #ffffff15;overflow:hidden;position:relative}.variant img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}.variant span{position:relative;z-index:2;width:100%;padding:16px 5px 7px;background:linear-gradient(transparent,#080910dc)}.variant.locked{filter:grayscale(1);opacity:.35}.variant.locked:before{content:'◇';font-size:1.3rem;position:absolute;inset:0;display:grid;place-items:center}.play-list{display:grid;gap:11px}.play-card{display:flex;gap:14px;align-items:center;padding:13px}.play-portrait{width:66px;height:66px;border-radius:18px;object-fit:cover}.play-card .copy{flex:1}.game-wrap{background:#0c0d14;border:1px solid #ffffff15;border-radius:24px;padding:14px}.game-hud{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.game-stage{position:relative;min-height:360px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#22243a,#090a10 70%);touch-action:manipulation}.game-stage canvas{width:100%;height:360px;display:block}.game-instructions{text-align:center;color:#a5a6b7;margin:12px auto;max-width:500px;font-size:.9rem}.me-list{display:grid;gap:9px}.me-row{padding:14px;display:flex;justify-content:space-between;align-items:center}.empty{padding:34px 18px;text-align:center;color:#9091a2;border:1px dashed #ffffff18;border-radius:22px}.empty .big{font-size:2rem;margin-bottom:8px}.installer{display:grid;place-items:center;padding:25px}.check-grid{display:grid;gap:7px;margin:18px 0}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:8px}.dot.ok{background:#58d295;box-shadow:0 0 8px #58d295}.dot.no{background:#fa7171}.admin-body{background:#080910}.admin-header{position:sticky;top:0;z-index:20;padding:16px max(18px,calc((100vw - 900px)/2));display:flex;justify-content:space-between;background:#0c0d14ee;border-bottom:1px solid #ffffff10}.admin-wrap{max-width:900px;margin:auto;padding:18px}.admin-wrap section{padding:20px 0;border-bottom:1px solid #ffffff10}.ready-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:9px 0}.ready-row b{font-size:.72rem}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.stat-grid div{padding:13px;border:1px solid #ffffff10;border-radius:15px;text-align:center}.stat-grid b{display:block;font-size:1.4rem}.stat-grid span{font-size:.68rem;color:#88899a}.pack-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid #ffffff0d}.pack-row small{display:block;color:#858697}.admin-form{max-width:620px}.admin-form hr{width:100%;border:0;border-top:1px solid #ffffff10}.install-card{margin:auto}.install-card code,.admin-wrap code{word-break:break-all;color:#d0c2ff}@media(min-width:700px){.gate-grid{grid-template-columns:repeat(4,1fr)}.egg-grid{grid-template-columns:repeat(2,1fr)}.comp-grid{grid-template-columns:repeat(4,1fr)}.page-head{padding-top:32px}.nav{border:1px solid #ffffff16;border-bottom:0;border-radius:24px 24px 0 0}.egg-card{grid-template-columns:145px 1fr}.stat-grid{grid-template-columns:repeat(5,1fr)}}@media(max-width:560px){.egg-card{grid-template-columns:120px 1fr}.egg-visual{height:185px}.egg-visual:before{width:140px;height:140px}.egg{width:84px;height:116px}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
