@font-face{font-family:"Zen Dots";src:url("assets/fonts/zen-dots-kir-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/unbounded-200.ttf") format("truetype");font-weight:200;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/unbounded-300.ttf") format("truetype");font-weight:300;font-display:swap}
@font-face{font-family:"Unbounded Light";src:url("assets/fonts/unbounded-300.ttf") format("truetype");font-weight:300;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/unbounded-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/unbounded-500.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Unbounded";src:url("assets/fonts/unbounded-600.ttf") format("truetype");font-weight:600;font-display:swap}
:root{--bg:#090a0d;--panel:#282828;--text:#eeeef0;--muted:#969399;--line:rgba(255,255,255,.23);--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;border:0;outline:0;border-radius:0!important}body{background:var(--bg);color:var(--text);font-family:"Unbounded",sans-serif;font-weight:300;font-synthesis:none}button,input{font:inherit;color:inherit}.screen{position:relative;width:100%;height:100%;min-height:650px;overflow:hidden;background:#090a0d}
body,body *{letter-spacing:.028em!important}
.stars{position:absolute;inset:0;pointer-events:none}.stars-a{opacity:.44;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.4px),radial-gradient(circle,#fff 0 .8px,transparent 1.2px);background-size:103px 97px,151px 139px;background-position:11px 24px,71px 52px}.stars-b{opacity:.23;background-image:radial-gradient(circle,#fff 0 .7px,transparent 1px);background-size:57px 61px;background-position:9px 13px;animation:stars 80s linear infinite}.grain{position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
@keyframes stars{to{transform:translate3d(-80px,42px,0)}}
button{border:0;background:none;cursor:pointer}.capsule{min-height:46px;padding:0 26px;border:1px solid rgba(255,255,255,.74);border-radius:100px;background:rgba(21,21,24,.22);color:rgba(245,245,245,.92);font-size:11px;font-weight:300;white-space:nowrap;transition:.4s var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:9px}.capsule:hover,.pill-choice:hover{background:#ececed;color:#19191b;box-shadow:0 0 26px rgba(255,255,255,.24)}.capsule.dark{border-color:#151515;color:#151515;background:rgba(255,255,255,.08)}.capsule.dark:hover{background:#151515;color:white}.capsule.secondary{min-width:110px}.capsule.secondary:empty{visibility:hidden}
.ui-arrow{position:relative;display:inline-block;flex:0 0 auto;width:1.05em;height:.62em;color:inherit;vertical-align:middle;transform:rotate(var(--arrow-angle,0deg));transform-origin:50% 50%}.ui-arrow:before{content:"";position:absolute;left:0;right:.06em;top:50%;height:max(1px,.065em);border-radius:2px;background:currentColor;transform:translateY(-50%)}.ui-arrow:after{content:"";position:absolute;right:.06em;top:50%;width:.42em;height:.42em;border-top:max(1px,.065em) solid currentColor;border-right:max(1px,.065em) solid currentColor;transform:translateY(-50%) rotate(45deg)}.ui-arrow.left{--arrow-angle:180deg;margin-right:.12em}.ui-arrow.up-right{--arrow-angle:-45deg}.ui-arrow.down-right{--arrow-angle:45deg}.ui-arrow.up-left{--arrow-angle:-135deg;margin-right:.24em}.ui-arrow.vertical{--arrow-angle:-90deg}.logo{display:inline-flex;align-items:center}.logo>.ui-arrow{width:.74em;height:.74em}.pill-choice{display:inline-flex;align-items:center;justify-content:center;gap:8px}.person-card>button{display:inline-flex;align-items:center;gap:7px}

/* Landing — measured against the 1436×932 source frame */
.landing{background:#232526;border:0!important;outline:0;box-shadow:none}
.landing-starfield{position:absolute;z-index:0;inset:-6%;width:112%;height:112%;pointer-events:none;opacity:.68;animation:starDrift 14s ease-in-out infinite alternate;will-change:transform}
.landing-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 44%,transparent 8%,rgba(6,7,8,.03) 55%,rgba(5,6,7,.18) 100%)}
@keyframes starDrift{0%{transform:translate3d(-2.8%,-1.4%,0) scale(1.025)}100%{transform:translate3d(2.95%,1.65%,0) scale(1.045)}}
.sun-vector{position:absolute;z-index:2;left:50%;top:34.335vh;width:min(67.55vw,104.08vh);height:min(67.55vw,104.08vh);transform:translateX(-50%);overflow:visible;filter:blur(42px);pointer-events:none}
.tech{position:absolute;z-index:6;left:81px;right:81px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;font-family:"Unbounded",sans-serif;font-size:14px;font-weight:200;line-height:1;color:rgba(220,220,221,.18);letter-spacing:-.045em;text-transform:none}
.tech span:nth-child(2){text-align:center}.tech span:last-child{grid-column:3;text-align:right}
.tech.top{top:4.292vh}.tech.top span:nth-child(2){position:absolute;left:53.45%;transform:translateX(-50%);white-space:nowrap}.tech.bottom{bottom:4.077vh;color:rgba(184,187,185,.2)}.tech.bottom span:nth-child(2){color:rgba(56,56,56,.28)}
.landing-copy{position:absolute;z-index:5;top:34.871vh;left:50%;transform:translateX(-50%);width:100%;text-align:center;color:#fff}
.was{position:relative;left:-.94vw;width:64.85vw;margin:0 auto 2.79vh;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;font-family:"Unbounded",sans-serif;font-size:min(1.184vw,1.824vh);font-weight:200;line-height:1;color:rgba(255,255,255,.72);letter-spacing:-.045em;text-transform:none}
.landing h1{margin:0;font:400 min(8.914vw,13.734vh)/.9 "Zen Dots",sans-serif;letter-spacing:-.065em;text-transform:none;white-space:nowrap}
.landing-copy p{margin:2.253vh auto 10.837vh;font-family:"Unbounded",sans-serif;font-size:min(1.637vw,2.521vh);font-weight:300;line-height:1.2;letter-spacing:-.035em;color:#fff;text-transform:none}
.mobile-copy-break{display:none}
.landing .capsule.dark{width:auto;height:min(7.78vh,4.375vw);min-height:min(7.78vh,4.375vw);padding:0 min(1.72vw,2.65vh) 0 min(1.95vw,3vh);display:inline-flex;align-items:center;justify-content:center;gap:min(1.41vw,2.17vh);border:2px solid #1e2020;border-radius:42px;background:rgba(255,255,255,.02);color:#1d1e1e;font-family:"Unbounded",sans-serif;font-weight:300;font-size:min(1.253vw,1.931vh);letter-spacing:-.045em;text-transform:lowercase}
.landing .capsule.dark b{font-size:26px;font-weight:300;line-height:1}.landing .capsule.dark:hover{background:#1d1e1e;color:#fff}

/* Shared orbit */
.universe{position:absolute;inset:0;background:radial-gradient(ellipse at 49% 53%,#242628 0,#181a1c 55%,#111315 100%)}.universe.is-dim{filter:brightness(.43);opacity:.88}.orbit-header{position:absolute;z-index:30;left:3.2vw;right:3.2vw;top:34px;display:flex;align-items:center;justify-content:space-between}.orbit-screen:not(.modal-screen)>.orbit-header{left:5.2vw;right:5.2vw;top:5.1vh}.orbit-screen:not(.modal-screen)>.orbit-header .capsule{width:min(250px,20vw);height:min(54px,7vh);padding:0 22px;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif;background:rgba(15,16,18,.18)}.logo{font:400 clamp(21px,2.4vw,38px)/1 "Zen Dots";letter-spacing:-.03em;text-align:left}.logo b{font-weight:400}.orbit-line{position:absolute;left:50%;top:52%;border:1px solid rgba(255,255,255,.14);border-radius:50%;transform:translate(-50%,-50%) rotate(-5deg)}.o1{width:24vw;height:10vw}.o2{width:64vw;height:25vw;transform:translate(-50%,-50%) rotate(4deg)}.o3{width:108vw;height:45vw;transform:translate(-50%,-50%) rotate(-4deg)}
.planet-person{position:absolute;z-index:8;left:var(--x);top:var(--y);width:var(--s);height:var(--s);transform:translate(-50%,-50%);padding:0}.planet-person span{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);font:300 min(15px,1.15vw)/1 "Unbounded Light",sans-serif;white-space:nowrap;color:rgba(235,235,235,.78)}.planet-person span:after{content:"";display:block;width:1px;height:22px;margin:7px auto -8px;background:rgba(255,255,255,.5)}.planet-person i{position:relative;display:block;width:100%;height:100%;border-radius:50%;background:transparent;box-shadow:0 0 24px 6px color-mix(in srgb,var(--c),transparent 46%),0 0 52px color-mix(in srgb,var(--c),transparent 72%);animation:planet 6s ease-in-out infinite;transition:.7s var(--ease)}.planet-person i:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(circle at 68% 28%,rgba(255,255,255,.72) 0 5%,transparent 25%),linear-gradient(135deg,var(--c1,var(--c)),var(--c2,var(--c)));filter:blur(5.8px)}.planet-person:hover i{scale:1.18;filter:brightness(1.18)}.planet-person.p1 i{animation-delay:-1s}.planet-person.p2 i{animation-delay:-2s}.planet-person.p3 i{animation-delay:-3s}.planet-person.p4 i{animation-delay:-4s}.you i{background:radial-gradient(circle at 55% 30%,white,#fff0d6 54%,#ffc894);box-shadow:0 0 24px rgba(255,236,202,.4)}.you i:before{background:radial-gradient(circle at 55% 30%,white,#fff0d6 54%,#ffc894);filter:blur(1px)}
@keyframes planet{50%{transform:translateY(-7px) scale(1.04)}}
.years{position:absolute;z-index:8;left:5.2vw;right:5.2vw;bottom:4.2vh;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:13px;color:rgba(232,232,232,.56);font:300 min(17px,1.3vw)/1 "Unbounded Light",sans-serif}.years i{position:relative;height:1px}.years i:nth-of-type(1){background:linear-gradient(90deg,rgba(255,255,255,.025),rgba(255,255,255,.095))}.years i:nth-of-type(2){background:linear-gradient(90deg,rgba(255,255,255,.09),rgba(255,255,255,.19))}.years i:nth-of-type(3){background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.36))}.years i:after{content:"";position:absolute;right:-2px;top:50%;width:5px;height:5px;border-radius:50%;transform:translateY(-50%);background:rgba(245,245,245,.62)}.years i:nth-of-type(1):after{opacity:.38}.years i:nth-of-type(2):after{opacity:.68}.years i:nth-of-type(3):after{opacity:1}.years span:nth-of-type(1){opacity:.58}.years span:nth-of-type(2){opacity:.72}.years span:nth-of-type(3){opacity:.86}.years b{font-weight:500;color:rgba(249,249,249,.88)}.orbit-caption{position:absolute;left:50%;top:16%;transform:translateX(-50%);font:400 15px "Zen Dots";letter-spacing:.05em}.orbit-caption b{color:#727074;font-weight:400}
.person-card{position:absolute;z-index:22;right:5vw;top:24%;width:320px;padding:25px 27px;border:1px solid rgba(255,255,255,.45);border-radius:24px;background:rgba(17,17,20,.78);box-shadow:0 0 45px rgba(162,72,255,.15);backdrop-filter:blur(11px);animation:cardIn .5s var(--ease)}@keyframes cardIn{from{opacity:0;transform:translateX(18px)}}.person-card small,.person-card dt{font-size:7px;color:#858187}.person-card h2{margin:15px 0 7px;font:400 34px "Zen Dots"}.person-card>p{font-size:11px;color:#aaa6ae}.person-card dl{margin:24px 0}.person-card dl div{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}.person-card dd{margin:0;font-size:8px}.person-card>button{padding-bottom:4px;border-bottom:1px solid white;font-size:9px}

/* Empty orbit — measured against the 1430×930 source frame */
.empty-orbit{background:#232526;color:#f5f5f4}
.empty-starfield{opacity:.62}
.empty-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,transparent 17%,rgba(8,9,10,.04) 58%,rgba(7,8,9,.16) 100%)}
.empty-logo{position:absolute;z-index:8;left:5.315vw;top:4.7vh;padding:0;color:#f7f7f6;font:400 32px/1 "Zen Dots",sans-serif;letter-spacing:0;text-transform:uppercase;white-space:nowrap}
.empty-orbits{position:absolute;z-index:2;inset:0;pointer-events:none}
.empty-orbit-line{position:absolute;left:50%;top:53.763vh;display:block;border:1px solid rgba(226,228,227,.075);border-radius:50%;transform:translate(-50%,-50%)}
.empty-orbit-line.outer{width:77.343vw;height:65.161vh}.empty-orbit-line.middle{width:50.769vw;height:40.86vh}.empty-orbit-line.inner{width:25.385vw;height:21.398vh}
.empty-message{position:absolute;z-index:7;left:50%;top:17.2vh;width:52vw;transform:translateX(-50%);text-align:center}
.empty-message h1{margin:0;color:#f7f7f6;font:400 32px/1.12 "Zen Dots",sans-serif;letter-spacing:0;text-transform:uppercase}
.empty-message p{margin:1.08vh 0 0;color:rgba(226,226,226,.52);font:200 16px/1.3 "Unbounded",sans-serif;letter-spacing:-.045em}
.empty-you-label{position:absolute;z-index:7;left:50%;top:46.667vh;transform:translateX(-50%);color:rgba(255,255,255,.88);font:200 min(1.399vw,2.151vh)/1 "Unbounded",sans-serif;letter-spacing:-.045em}
.empty-you-line{position:absolute;z-index:6;left:50%;top:49.785vh;width:1px;height:3.011vh;transform:translateX(-50%);background:rgba(255,255,255,.82)}
.empty-you-line:before{content:"";position:absolute;left:50%;top:-2px;width:5px;height:5px;border-radius:50%;transform:translateX(-50%);background:#f5f5f4}
.empty-you-sphere{position:absolute;z-index:7;left:50%;top:52.688vh;width:48px;height:48px;transform:translateX(-50%);border-radius:50%;opacity:1;background:radial-gradient(circle at 70% 27%,rgba(255,255,251,.96) 0,rgba(255,252,238,.76) 31%,rgba(255,250,229,0) 55%),linear-gradient(108deg,#ffc5b5 0%,#fff4df 52%,#ffe6b7 100%);box-shadow:0 0 10px rgba(255,226,198,.08);animation:emptyPulse 5.8s ease-in-out infinite}
@keyframes emptyPulse{50%{filter:brightness(1.06);box-shadow:0 0 25px rgba(255,235,210,.24)}}
.empty-cta{position:absolute;z-index:8;left:50%;top:71.72vh;width:min(24.895vw,38.28vh);height:min(6.774vh,4.406vw);min-height:0;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;gap:min(.84vw,1.29vh);padding:0 min(1.75vw,2.688vh);border:2px solid rgba(255,255,255,.94);border-radius:100px;color:#f4f4f4;background:rgba(20,21,23,.08);font:300 min(1.399vw,2.151vh)/1 "Unbounded",sans-serif;letter-spacing:-.05em;white-space:nowrap;transition:.4s var(--ease)}
.empty-cta b{font-size:min(1.82vw,2.796vh);font-weight:200;line-height:1}.empty-cta:hover{background:#f1f1f1;color:#191a1c;box-shadow:0 0 28px rgba(255,255,255,.18)}
.empty-years{position:absolute;z-index:8;left:5.035vw;right:5.035vw;bottom:4.194vh;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;column-gap:min(.91vw,1.4vh);color:rgba(226,226,226,.36);font:200 min(1.399vw,2.151vh)/1 "Unbounded",sans-serif;letter-spacing:-.045em}
.empty-years i{position:relative;height:1px;background:rgba(222,223,222,.14)}.empty-years i:after{content:"";position:absolute;right:-2px;top:50%;width:4px;height:4px;border-radius:50%;transform:translateY(-50%);background:rgba(236,237,235,.42)}.empty-years b{color:rgba(244,244,244,.48);font-weight:200}
.result-screen{background:#090a0d}.result-screen .stars,.result-screen .grain{z-index:2}.result-vignette{position:absolute;z-index:3;inset:0;background:radial-gradient(ellipse at 45% 54%,transparent 0,rgba(9,10,13,.08) 52%,rgba(9,10,13,.48) 100%);pointer-events:none}.result-person-glow{position:absolute;z-index:1;left:-19vw;bottom:-29vw;width:93vw;height:93vw;border-radius:50%;background:radial-gradient(circle at 54% 45%,rgba(255,255,255,.98) 0 8%,var(--person-accent) 22%,var(--person-color) 43%,color-mix(in srgb,var(--person-color),#1a0829 48%) 57%,transparent 72%);filter:blur(18px);opacity:.96;animation:resultGlow 8s ease-in-out infinite}
@keyframes resultGlow{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.035);opacity:1}}
.relation-result-header{z-index:20}.relation-result-header .logo{font-size:clamp(20px,2.45vw,38px)}.relation-result-header .capsule{min-width:236px;color:#f1f1f1;background:rgba(13,14,17,.28)}
.result-anchor{position:absolute;z-index:8;left:35.5%;top:45.2%;width:35%;height:28px;display:flex;align-items:center;color:rgba(246,246,246,.84)}.result-anchor i{height:1px;flex:1;background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.68))}.result-anchor b{width:7px;height:7px;margin-left:-1px;border-radius:50%;background:#ececec;box-shadow:0 0 9px rgba(255,255,255,.65)}.result-anchor span{margin-left:12px;font:300 clamp(14px,1.35vw,21px)/1 "Unbounded Light",sans-serif}
.result-status-card{position:absolute;z-index:9;left:61.2%;top:50.8%;width:min(310px,27vw);min-height:178px;padding:31px 32px 25px;border:1px solid rgba(255,255,255,.64);border-radius:29px;background:rgba(14,14,17,.22);box-shadow:inset 0 0 24px rgba(255,255,255,.025);display:flex;flex-direction:column;align-items:flex-start;text-align:left}.result-status-card strong{color:rgba(249,249,249,.9);font:300 clamp(13px,1.25vw,19px)/1.2 "Unbounded Light",sans-serif}.result-status-card strong:nth-of-type(2){margin-top:27px}.result-status-card small{margin-top:7px;color:rgba(236,236,236,.58);font:300 clamp(8px,.72vw,11px)/1.25 "Unbounded Light",sans-serif}.result-status-card small:last-child{margin-top:4px}
.result-years{position:absolute;z-index:12;left:5.3%;right:5.3%;bottom:4.8%;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:13px;color:rgba(233,233,233,.62);font:300 clamp(12px,1.25vw,19px)/1 "Unbounded Light",sans-serif}.result-years i{position:relative;height:1px;background:rgba(255,255,255,.2)}.result-years i:after{content:"";position:absolute;right:-2px;top:50%;width:5px;height:5px;border-radius:50%;transform:translateY(-50%);background:rgba(245,245,245,.7)}.result-years b{font-weight:500;color:rgba(249,249,249,.88)}

/* Person history */
.person-view{background:#08090c}.tabs{position:absolute;z-index:20;left:50%;top:17%;transform:translateX(-50%);display:flex;gap:8px;align-items:center}.tabs button{color:#77747b;font:400 13px "Zen Dots";padding:4px 0}.tabs button.active{color:white;border-bottom:1px solid white}.tabs span{color:#69666d}.violet-horizon{position:absolute;left:50%;bottom:-45vh;width:100vw;height:82vh;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#fff 0,#e8bfff 9%,#a442f1 29%,#5b139d 50%,transparent 73%);filter:blur(8px);opacity:.9}.history-map{position:absolute;z-index:5;inset:21% 3.5% 0}.relation-arc{position:absolute;left:50%;top:44%;width:105vw;height:48vw;border:2px solid rgba(88,39,129,.26);border-radius:50%;transform:translate(-50%,-50%)}.history-body{position:absolute;top:30%;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:11px}.history-body i{width:43px;height:43px;border-radius:50%}.you-body{left:1%}.you-body i{background:#fff0d5;box-shadow:0 0 24px rgba(255,235,203,.5)}.ann-body{right:1%}.ann-body i{width:65px;height:65px;background:radial-gradient(circle at 62% 31%,white,#a44bff 40%,#39046d);box-shadow:0 0 35px #9e42ff}.distance-card{position:absolute;right:0;top:-5%;width:285px;padding:17px 20px;border:1px solid rgba(255,255,255,.52);border-radius:22px;background:rgba(15,13,18,.48)}.distance-card small,.distance-card b{display:block}.distance-card small{font-size:6px;color:#a9a4ad;margin-bottom:3px}.distance-card b{font-size:8px;font-weight:300;margin-bottom:13px}.distance-card p{font-size:7px;margin:4px 0 0}.timeline{position:absolute;left:2%;right:2%;bottom:6%;display:grid;grid-template-columns:repeat(5,1fr);list-style:none;margin:0;padding:0}.timeline li{position:relative;text-align:center;padding-top:65px}.timeline li:before{content:"";position:absolute;left:50%;top:0;height:48px;width:1px;background:rgba(255,255,255,.4)}.timeline li:after{content:"";position:absolute;left:50%;top:0;width:6px;height:6px;border-radius:50%;background:white;transform:translate(-50%,-50%)}.timeline b{display:block;font-size:14px;font-weight:400;margin-bottom:14px}.timeline span{font-size:8px;text-transform:uppercase}.timeline small{display:block;font-size:6px;color:#8c8790;margin-top:11px}

/* Moment constellation */
.moments-view .tabs{top:15%}.moments-map{position:absolute;inset:20% 3% 3%}.moments-map svg{position:absolute;inset:0;width:100%;height:100%}.moments-map line{stroke:rgba(255,255,255,.18);stroke-width:1}.moments-map circle{fill:#77747c}.ann-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:4;font-size:12px}.ann-core i{width:70px;height:70px;border-radius:50%;margin-top:8px;background:radial-gradient(circle at 60% 30%,white,#a143ff 40%,#3f0579);box-shadow:0 0 35px #9b40ff}.space-memory{position:absolute;z-index:5;min-width:145px;padding:9px;border:1px solid rgba(255,255,255,.28);border-radius:17px;background:rgba(19,18,22,.62);box-shadow:0 0 24px rgba(255,255,255,.06)}.space-memory small{font-size:6px}.space-memory p{font-size:7px;margin:7px 0 2px}.memory-image{width:100%;height:100px;border-radius:10px;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent),radial-gradient(circle at 60% 36%,#e3b5a0 0 9%,transparent 10%),linear-gradient(145deg,#384a44,#161b2b 48%,#7a4c3b)}.two .memory-image{background:linear-gradient(135deg,#4c2f29,#111a22 45%,#876c4b)}.three .memory-image{background:linear-gradient(135deg,#5b2737,#19131b 50%,#a96d52)}.quote,.music{width:150px}.quote .memory-image,.music .memory-image{display:none}.m0{left:6%;top:18%;width:210px}.m1{right:13%;top:8%;width:155px}.m2{right:3%;top:40%}.m3{left:28%;bottom:2%;width:170px}.m4{right:22%;bottom:0}

/* Exact full-canvas modal flow */
.modal-screen .orbit-header{filter:brightness(.65)}.modal-glow{position:absolute;z-index:11;left:50%;top:50%;width:55vw;height:70vh;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(129,70,172,.08) 43%,transparent 72%);filter:blur(20px)}.orbit-modal{position:absolute;z-index:20;left:50%;top:50%;width:min(610px,88vw);height:min(545px,75vh);min-height:440px;transform:translate(-50%,-48%);border:1px solid rgba(255,255,255,.54);border-radius:34px;background:rgba(40,40,40,.94);box-shadow:0 0 22px rgba(255,255,255,.22),inset 0 0 35px rgba(255,255,255,.035);padding:28px 22px 24px;display:flex;flex-direction:column}.counter{position:absolute;right:24px;top:20px;color:#aaa7ac;font-size:10px;font-weight:300}.modal-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 0 5px}.modal-content h2{margin:0 0 16px;font:400 clamp(22px,2.2vw,34px)/1.04 "Zen Dots";letter-spacing:-.025em}.modal-content>p{margin:0 0 24px;color:#aaa6ad;font-size:9px}.orbit-modal footer{display:flex;justify-content:center;gap:14px}.orbit-modal footer .capsule{min-width:145px;min-height:42px}.line-input{width:88%;height:80px;position:relative;border-bottom:1px solid rgba(255,255,255,.38)}.line-input input{width:100%;height:100%;border:0;outline:0;background:transparent;text-align:center;font-size:16px}.line-input span{position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);color:#77747a;font-size:8px}.option-grid{display:grid;gap:12px;width:86%}.roles{grid-template-columns:repeat(3,1fr)}.roles .pill-choice:last-child{grid-column:1}.trends{grid-template-columns:1fr 1fr}.moments-options{grid-template-columns:repeat(3,1fr)}.pill-choice{height:39px;padding:0 12px;border-radius:100px;background:#171719;font-size:9px;color:#d1ced2;transition:.35s}.pill-choice.selected{background:#ececed;color:#242426;box-shadow:0 0 16px rgba(255,255,255,.4)}.year-scale{width:94%;display:flex;align-items:flex-end;padding-top:20px;border-bottom:1px solid rgba(255,255,255,.22)}.year-scale button{flex:1;padding:0 0 10px;color:#949096;font-size:7px}.year-scale button.selected{color:white;font-size:12px}.year-scale button.selected:after{content:"";display:block;width:7px;height:7px;margin:8px auto -14px;border-radius:50%;background:white;box-shadow:0 0 12px white}.distance-scene{position:relative;width:88%;height:98px;display:flex;align-items:center;padding:0 8%;justify-content:space-between}.distance-scene em{position:absolute;left:12%;right:12%;top:58%;height:1px;background:linear-gradient(90deg,#ffe8c7,rgba(255,255,255,.18),#ff9d44)}.distance-scene div{z-index:2;display:flex;flex-direction:column;gap:7px;font-size:8px}.distance-scene i{width:35px;height:35px;border-radius:50%;background:#fff0d7;box-shadow:0 0 15px rgba(255,239,213,.5)}.distance-scene .target i{background:radial-gradient(circle at 60% 30%,white,#ffac48 45%,#b95c16);box-shadow:0 0 22px #ff9b35}.distance-options{width:96%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.distance-options .pill-choice{height:24px;font-size:6px}.custom-color{font-size:7px;color:#9d999f;margin:-3px 0 16px}.color-planets{display:flex;align-items:center;gap:28px}.color-planets button{width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 62% 32%,white,var(--c) 40%,color-mix(in srgb,var(--c),#16051e 35%));box-shadow:0 0 22px color-mix(in srgb,var(--c),transparent 40%);transition:.35s}.color-planets button:nth-child(3){width:80px;height:80px}.color-planets button.selected{outline:1px solid white;outline-offset:7px;transform:scale(1.06)}

/* Person onboarding / step 01 — measured against the supplied 882×702 frame */
.person-flow.step-0 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.modal-orbit-backdrop{position:absolute;z-index:0;inset:0;pointer-events:none;isolation:isolate;filter:brightness(.5)}
.person-flow.step-0 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-0 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-0 .modal-close{position:absolute;z-index:3;left:3.3%;top:4.45%;width:20px;height:20px;padding:0;color:rgba(245,245,245,.76)}
.person-flow.step-0 .modal-close:before,.person-flow.step-0 .modal-close:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1px;background:currentColor;transform-origin:center}
.person-flow.step-0 .modal-close:before{transform:translate(-50%,-50%) rotate(45deg)}.person-flow.step-0 .modal-close:after{transform:translate(-50%,-50%) rotate(-45deg)}
.person-flow.step-0 .modal-close:hover{color:#fff;filter:drop-shadow(0 0 5px rgba(255,255,255,.5))}
.person-flow.step-0 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-0 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-0 .modal-content>p{position:absolute;left:50%;top:25.3%;width:88%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.7);font:300 min(18px,1.34vw)/1.25 "Unbounded Light",sans-serif}
.person-flow.step-0 .line-input{position:absolute;left:50%;top:52.8%;width:85.4%;height:9.4%;transform:translateX(-50%);border:0;border-bottom:1px solid rgba(255,255,255,.52);border-radius:0 0 22px 22px}
.person-flow.step-0 .line-input span{position:absolute;left:50%;top:-17px;bottom:auto;transform:translateX(-50%);color:rgba(245,245,245,.82);font:300 10px/1 "Unbounded Light",sans-serif;text-transform:uppercase}
.person-flow.step-0 .line-input input{width:100%;height:100%;padding:2px 24px 0;border:0;outline:0;background:transparent;color:rgba(244,244,244,.8);font:300 min(18px,1.34vw)/1 "Unbounded Light",sans-serif;text-align:center}
.person-flow.step-0 .line-input input::placeholder{color:rgba(225,225,225,.25);opacity:1}
.person-flow.step-0 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;justify-content:center;gap:0}
.person-flow.step-0 .orbit-modal footer .secondary:empty{display:none}
.person-flow.step-0 .orbit-modal footer .capsule:not(.secondary){width:min(304px,22.61vw);height:min(60px,6.8vh);min-width:0;min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;background:rgba(20,20,22,.05);color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-0 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(20,20,22,.12);color:#f2f2f2;box-shadow:0 0 18px rgba(255,255,255,.14)}

/* Person onboarding / step 02 */
.person-flow .pill-choice{background:#151516;color:rgba(244,244,244,.9);box-shadow:none}
.person-flow .pill-choice.selected{background:#ececed;color:#202124;box-shadow:0 0 18px rgba(255,255,255,.42)}
.person-flow .pill-choice:hover:not(.selected){background:#ececed;color:#202124;box-shadow:0 0 18px rgba(255,255,255,.34)}
.person-flow.step-1 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.person-flow.step-1 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-1 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-1 .modal-close{display:none}
.person-flow.step-1 .modal-close:before,.person-flow.step-1 .modal-close:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1px;background:currentColor;transform-origin:center}
.person-flow.step-1 .modal-close:before{transform:translate(-50%,-50%) rotate(45deg)}.person-flow.step-1 .modal-close:after{transform:translate(-50%,-50%) rotate(-45deg)}
.person-flow.step-1 .modal-close:hover{color:#fff;filter:drop-shadow(0 0 5px rgba(255,255,255,.5))}
.person-flow.step-1 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-1 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-1 .roles{position:absolute;left:50%;top:31%;width:92%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}
.person-flow.step-1 .roles .pill-choice{width:100%;min-width:0;height:42px;padding:0 12px;border-radius:100px;font:300 18px/1 "Unbounded Light",sans-serif;white-space:nowrap}
.person-flow.step-1 .roles .pill-choice:last-child{grid-column:1}
.person-flow.step-1 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;align-items:center;justify-content:center;gap:20px}
.person-flow.step-1 .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-1 .orbit-modal footer .capsule.secondary{width:min(180px,14vw);min-width:0}.person-flow.step-1 .orbit-modal footer .capsule:not(.secondary){width:min(290px,22.61vw);min-width:0}
.person-flow.step-1 .orbit-modal footer .capsule.secondary{background:transparent}.person-flow.step-1 .orbit-modal footer .capsule:not(.secondary){background:rgba(17,18,20,.46)}
.person-flow.step-1 .orbit-modal footer .capsule:hover{color:#fff;box-shadow:0 0 16px rgba(255,255,255,.12)}.person-flow.step-1 .orbit-modal footer .capsule.secondary:hover{background:rgba(255,255,255,.035)}.person-flow.step-1 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(17,18,20,.58)}

/* Person onboarding / step 03 */
.person-flow.step-2 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.person-flow.step-2 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-2 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-2 .modal-close{display:none}
.person-flow.step-2 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-2 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-2 .modal-content>p{position:absolute;left:50%;top:49.2%;width:88%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.68);font:300 min(14px,1.04vw)/1.2 "Unbounded Light",sans-serif}
.person-flow.step-2 .year-scale{position:absolute;left:50%;top:54.1%;width:92%;height:66px;transform:translateX(-50%);display:grid;grid-template-columns:repeat(13,minmax(0,1fr));align-items:start;padding:0;border:0;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.person-flow.step-2 .year-scale.dragging{cursor:grabbing}
.person-flow.step-2 .year-scale:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(255,255,255,.43)}
.person-flow.step-2 .year-scale button{position:relative;z-index:1;width:100%;height:58px;padding:24px 0 0;color:rgba(242,242,242,.82);font:300 min(15px,1.12vw)/1 "Unbounded Light",sans-serif;letter-spacing:0!important;cursor:inherit;transition:color .18s var(--ease),text-shadow .18s var(--ease)}
.person-flow.step-2 .year-scale button:hover{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.55)}
.person-flow.step-2 .year-scale button.selected{color:#fff;font:500 min(16px,1.19vw)/1 "Unbounded",sans-serif;text-shadow:0 0 11px rgba(255,255,255,.75)}
.person-flow.step-2 .year-scale button.selected:before{content:"";position:absolute;left:50%;top:-1px;width:1px;height:17px;transform:translateX(-50%);background:rgba(255,255,255,.72)}
.person-flow.step-2 .year-scale button.selected:after{content:"";position:absolute;left:50%;top:15px;width:5px;height:5px;margin:0;border-radius:50%;transform:translate(-50%,-50%);background:#fff;box-shadow:0 0 10px rgba(255,255,255,.9)}
.person-flow.step-2 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;align-items:center;justify-content:center;gap:20px}
.person-flow.step-2 .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-2 .orbit-modal footer .capsule.secondary{width:min(180px,14vw);min-width:0;background:transparent}.person-flow.step-2 .orbit-modal footer .capsule:not(.secondary){width:min(290px,22.61vw);min-width:0;background:rgba(17,18,20,.46)}
.person-flow.step-2 .orbit-modal footer .capsule:hover{color:#fff;box-shadow:0 0 16px rgba(255,255,255,.12)}.person-flow.step-2 .orbit-modal footer .capsule.secondary:hover{background:rgba(255,255,255,.035)}.person-flow.step-2 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(17,18,20,.58)}

/* Person onboarding / step 04 */
.person-flow.step-3 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.person-flow.step-3 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-3 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-3 .modal-close{display:none}
.person-flow.step-3 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-3 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-3 .modal-content>p{position:absolute;left:50%;top:31.8%;width:82%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.7);font:300 min(17px,1.27vw)/1.22 "Unbounded Light",sans-serif}
.person-flow.step-3 .distance-scene{position:absolute;left:50%;top:40.5%;width:100%;height:142px;transform:translateX(-50%);padding:0;display:block;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.person-flow.step-3 .distance-orbits{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.person-flow.step-3 .distance-orbits ellipse{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1}
.person-flow.step-3 .distance-person{position:absolute;z-index:2;top:20px;width:70px;height:112px;display:block;transform:translateX(-50%);color:rgba(249,249,249,.88);font:300 min(15px,1.12vw)/1 "Unbounded Light",sans-serif;text-align:center}
.person-flow.step-3 .distance-person span{position:absolute;left:50%;top:0;transform:translateX(-50%);white-space:nowrap}
.person-flow.step-3 .distance-person em{position:absolute;left:50%;top:25px;width:1px;height:28px;transform:translateX(-50%);background:rgba(255,255,255,.58)}
.person-flow.step-3 .distance-person em:before{content:"";position:absolute;left:50%;top:-2px;width:5px;height:5px;border-radius:50%;transform:translateX(-50%);background:rgba(255,255,255,.9)}
.person-flow.step-3 .distance-person i{position:absolute;left:50%;top:49px;width:48px;height:48px;transform:translateX(-50%);border-radius:50%}
.person-flow.step-3 .distance-person.you{left:20%}.person-flow.step-3 .distance-person.you i{background:radial-gradient(circle at 63% 34%,#fff,#fff0d5 48%,#e6b884);box-shadow:0 0 18px rgba(255,233,202,.42)}
.person-flow.step-3 .distance-person.target{left:var(--target-x);cursor:grab;transition:left .32s var(--ease)}
.person-flow.step-3 .distance-person.target.dragging{cursor:grabbing;transition:none}
.person-flow.step-3 .distance-person.target i{width:57px;height:57px;top:44px;background:radial-gradient(circle at 58% 34%,#fff6d8 0,#ffd95e 25%,#ff9838 58%,#d96528 100%);filter:blur(2.7px);box-shadow:0 0 18px rgba(255,169,52,.72),0 0 34px rgba(255,112,37,.38)}
.person-flow.step-3 .distance-options{position:absolute;left:50%;top:68%;width:92%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.person-flow.step-3 .distance-options .pill-choice{width:100%;height:38px;padding:0 12px;border-radius:100px;font:300 min(15px,1.12vw)/1 "Unbounded Light",sans-serif;white-space:nowrap}
.person-flow.step-3 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;align-items:center;justify-content:center;gap:20px}
.person-flow.step-3 .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-3 .orbit-modal footer .capsule.secondary{width:min(180px,14vw);min-width:0;background:transparent}.person-flow.step-3 .orbit-modal footer .capsule:not(.secondary){width:min(290px,22.61vw);min-width:0;background:rgba(17,18,20,.46)}
.person-flow.step-3 .orbit-modal footer .capsule:hover{color:#fff;box-shadow:0 0 16px rgba(255,255,255,.12)}.person-flow.step-3 .orbit-modal footer .capsule.secondary:hover{background:rgba(255,255,255,.035)}.person-flow.step-3 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(17,18,20,.58)}

/* Person onboarding / step 05 */
.person-flow.step-4 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.person-flow.step-4 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-4 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-4 .modal-close{display:none}
.person-flow.step-4 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-4 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-4 .modal-content>p{position:absolute;left:50%;top:25.2%;width:82%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.7);font:300 min(17px,1.27vw)/1.22 "Unbounded Light",sans-serif}
.person-flow.step-4 .trends{position:absolute;left:50%;top:39.5%;width:82%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.person-flow.step-4 .trends .pill-choice{width:100%;height:58px;padding:0 20px;border-radius:100px;font:300 min(17px,1.27vw)/1 "Unbounded Light",sans-serif;white-space:nowrap}
.person-flow.step-4 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;align-items:center;justify-content:center;gap:20px}
.person-flow.step-4 .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-4 .orbit-modal footer .capsule.secondary{width:min(180px,14vw);min-width:0;background:transparent}.person-flow.step-4 .orbit-modal footer .capsule:not(.secondary){width:min(290px,22.61vw);min-width:0;background:rgba(17,18,20,.46)}
.person-flow.step-4 .orbit-modal footer .capsule:hover{color:#fff;box-shadow:0 0 16px rgba(255,255,255,.12)}.person-flow.step-4 .orbit-modal footer .capsule.secondary:hover{background:rgba(255,255,255,.035)}.person-flow.step-4 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(17,18,20,.58)}

/* Person onboarding / step 06 */
.person-flow.step-5 .modal-glow{left:50%;top:50%;width:96vw;height:96vh;background:radial-gradient(ellipse,rgba(255,255,255,.17),rgba(255,255,255,.045) 52%,transparent 74%);filter:blur(24px)}
.person-flow.step-5 .orbit-modal{left:50%;top:50%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:0;transform:translate(-50%,-50%);padding:0;border:1px solid rgba(255,255,255,.88);border-radius:30px;background:rgba(38,39,40,.9);box-shadow:0 0 22px rgba(255,255,255,.44),0 0 46px rgba(255,255,255,.17),inset 0 0 34px rgba(255,255,255,.035);overflow:hidden}
.person-flow.step-5 .counter{right:3.3%;top:4.6%;color:rgba(245,245,245,.76);font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-5 .modal-close{display:none}
.person-flow.step-5 .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.person-flow.step-5 .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}
.person-flow.step-5 .modal-content>p{position:absolute;left:50%;top:25.1%;width:82%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.7);font:300 min(17px,1.27vw)/1.22 "Unbounded Light",sans-serif}
.person-flow.step-5 .custom-color{position:absolute;z-index:5;left:50%;top:32.3%;transform:translateX(-50%);padding:5px 12px;color:rgba(241,241,241,.76);font:300 min(13px,.97vw)/1 "Unbounded Light",sans-serif;transition:color .25s var(--ease),text-shadow .25s var(--ease)}
.person-flow.step-5 .custom-color:hover{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.55)}
.person-flow.step-5 .custom-color:focus{outline:none}
.person-flow.step-5 .color-planets{position:absolute;left:50%;top:37%;width:82%;height:210px;transform:translateX(-50%);display:block;transition:opacity .3s var(--ease),filter .3s var(--ease)}
.person-flow.step-5 .color-planets.customizing{opacity:.16;filter:blur(5px);pointer-events:none}
.person-flow.step-5 .color-planets button{position:absolute;width:108px;height:108px;padding:0;border-radius:48% 52% 50% 50%;background:transparent;box-shadow:none;outline:1px solid transparent;outline-offset:7px;scale:1;animation:orbJelly 7.5s ease-in-out infinite;transition:outline-color .28s var(--ease),filter .28s var(--ease),scale .38s var(--ease)}
.person-flow.step-5 .color-planets button:before{content:"";position:absolute;inset:6px;border-radius:inherit;background:radial-gradient(circle at 68% 27%,rgba(255,255,255,.76) 0 4%,rgba(255,255,255,.3) 10%,transparent 24%),linear-gradient(135deg,var(--g1),var(--g2) 53%,var(--g3));filter:blur(6.5px);box-shadow:0 0 24px color-mix(in srgb,var(--c),transparent 20%),0 0 48px color-mix(in srgb,var(--c),transparent 54%)}
.person-flow.step-5 .color-planets button:after{content:"";position:absolute;inset:-5px;border:2px solid rgba(255,255,255,.92);border-radius:inherit;opacity:0;filter:blur(2.8px);box-shadow:0 0 10px rgba(255,255,255,.86),0 0 22px rgba(255,255,255,.48);transition:opacity .28s var(--ease)}
.person-flow.step-5 .color-planets button:hover{z-index:4;scale:1.12;outline-color:rgba(255,255,255,.86);filter:drop-shadow(0 0 14px rgba(255,255,255,.58))}.person-flow.step-5 .color-planets button.selected{z-index:3;scale:1.04;outline-color:rgba(255,255,255,.9);filter:drop-shadow(0 0 11px rgba(255,255,255,.46))}.person-flow.step-5 .color-planets button:hover:after,.person-flow.step-5 .color-planets button.selected:after{opacity:1}.person-flow.step-5 .color-planets button.selected:hover{scale:1.12}
.person-flow.step-5 .color-planets button:nth-child(1){--g1:#11bdd8;--g2:#54f0aa;--g3:#9cff86;left:13%;top:0;animation-delay:-1.1s}.person-flow.step-5 .color-planets button:nth-child(2){--g1:#ffcb25;--g2:#ffb957;--g3:#ff9d91;right:13%;top:0;animation-delay:-3.2s}.person-flow.step-5 .color-planets button:nth-child(3){--g1:#ff3f58;--g2:#ff82ad;--g3:#ffd0df;left:6%;bottom:0;animation-delay:-5.4s}.person-flow.step-5 .color-planets button:nth-child(4){--g1:#6238ff;--g2:#a852ff;--g3:#d77aff;left:50%;top:40%;width:116px;height:116px;transform:translate(-50%,-50%);animation-name:orbJellyCenter;animation-delay:-2.2s}.person-flow.step-5 .color-planets button:nth-child(5){--g1:#009ee8;--g2:#567cf8;--g3:#9d7cff;right:5%;bottom:0;animation-delay:-6.4s}
@keyframes orbJelly{0%,100%{border-radius:48% 52% 50% 50%;transform:translate3d(0,0,0) rotate(0)}25%{border-radius:54% 46% 43% 57%;transform:translate3d(2px,-4px,0) rotate(1.2deg)}50%{border-radius:45% 55% 56% 44%;transform:translate3d(-3px,2px,0) rotate(-1deg)}75%{border-radius:51% 49% 45% 55%;transform:translate3d(2px,4px,0) rotate(.7deg)}}
@keyframes orbJellyCenter{0%,100%{border-radius:48% 52% 50% 50%;transform:translate(-50%,-50%) rotate(0)}25%{border-radius:54% 46% 43% 57%;transform:translate(calc(-50% + 2px),calc(-50% - 4px)) rotate(1.2deg)}50%{border-radius:45% 55% 56% 44%;transform:translate(calc(-50% - 3px),calc(-50% + 2px)) rotate(-1deg)}75%{border-radius:51% 49% 45% 55%;transform:translate(calc(-50% + 2px),calc(-50% + 4px)) rotate(.7deg)}}
.person-flow.step-5 .color-customizer{position:absolute;z-index:8;left:50%;top:36%;width:58%;height:216px;transform:translate(-50%,8px) scale(.97);padding:20px 24px 18px;border:1px solid rgba(255,255,255,.48);border-radius:26px;background:rgba(15,15,17,.94);box-shadow:0 0 28px rgba(255,255,255,.16),inset 0 0 24px rgba(255,255,255,.035);opacity:0;visibility:hidden;display:grid;grid-template-columns:82px 1fr;grid-template-rows:1fr 1fr auto;column-gap:24px;align-items:center;text-align:left;transition:.3s var(--ease)}
.person-flow.step-5 .color-customizer.open{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
.person-flow.step-5 .custom-orb{grid-row:1/3;width:78px;height:78px;border-radius:50%;outline:1px solid rgba(255,255,255,.88);outline-offset:6px;background:radial-gradient(circle at 63% 31%,#fff,var(--c) 36%,color-mix(in srgb,var(--c),#16051e 28%));filter:blur(1.5px);box-shadow:0 0 24px color-mix(in srgb,var(--c),transparent 38%);animation:orbJelly 6s ease-in-out infinite}
.person-flow.step-5 .color-customizer label{display:grid;grid-template-columns:66px 1fr;gap:10px;align-items:center;color:rgba(245,245,245,.68);font:300 11px/1 "Unbounded Light",sans-serif}
.person-flow.step-5 .color-customizer input[type=range]{width:100%;height:12px;margin:0;appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.4);border-radius:100px;background:linear-gradient(90deg,#ff4f4f,#ffe14f,#56ff76,#4ffff3,#5270ff,#c85cff,#ff4f7d);outline:0}
.person-flow.step-5 .color-customizer label:nth-of-type(2) input{background:linear-gradient(90deg,#202024,#77777d,#fff)}
.person-flow.step-5 .color-customizer input[type=range]::-webkit-slider-thumb{width:17px;height:17px;appearance:none;-webkit-appearance:none;border:2px solid #151517;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.7),0 0 10px rgba(255,255,255,.6)}
.person-flow.step-5 .custom-done{grid-column:1/3;justify-self:center;width:152px;height:36px;border:1px solid rgba(255,255,255,.72);border-radius:100px;background:rgba(255,255,255,.04);color:#f4f4f4;font:300 12px/1 "Unbounded Light",sans-serif}
.person-flow.step-5 .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.6%;display:flex;align-items:center;justify-content:center;gap:20px}
.person-flow.step-5 .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.25vw)/1 "Unbounded Light",sans-serif}
.person-flow.step-5 .orbit-modal footer .capsule.secondary{width:min(180px,14vw);min-width:0;background:transparent}.person-flow.step-5 .orbit-modal footer .capsule:not(.secondary){width:min(310px,24vw);min-width:0;background:rgba(17,18,20,.46)}
.person-flow.step-5 .orbit-modal footer .capsule:hover{color:#fff;box-shadow:0 0 16px rgba(255,255,255,.12)}.person-flow.step-5 .orbit-modal footer .capsule.secondary:hover{background:rgba(255,255,255,.035)}.person-flow.step-5 .orbit-modal footer .capsule:not(.secondary):hover{background:rgba(17,18,20,.58)}
.upload-composition{position:relative;width:75%;height:180px}.upload-preview{position:absolute;left:12%;top:0;width:130px;height:160px;border:1px solid rgba(255,255,255,.45);border-radius:24px;display:grid;place-items:center;font-size:25px;color:#777}.upload-composition button{position:absolute;left:49%;top:63px;padding:11px 20px;border:1px solid rgba(255,255,255,.6);border-radius:12px;font-size:9px}.upload-composition small{position:absolute;left:54%;top:108px;color:#777;font-size:6px}.moment-form{display:grid;width:88%;gap:16px}.moment-form label{font-size:8px;color:#bbb7bd}.moment-form input{display:block;width:100%;margin-top:7px;padding:8px 4px;border:0;border-bottom:1px solid rgba(255,255,255,.24);outline:0;background:transparent;text-align:center;font-size:9px}.final-memory{display:flex;flex-direction:column;align-items:center}.portrait{width:120px;height:160px;border-radius:35px;margin-bottom:8px;background:radial-gradient(circle at 52% 29%,#d4aa91 0 10%,transparent 11%),linear-gradient(125deg,#1b1714,#735245 52%,#0d1010)}.final-memory b{font-size:9px;font-weight:300}.final-memory span{font-size:10px;margin-top:5px}.final-memory small{font-size:7px;color:#99959b;margin-top:4px}

#flash{position:fixed;z-index:200;inset:0;pointer-events:none;background:white;opacity:0}#flash.fire{animation:flash .8s var(--ease)}@keyframes flash{0%{opacity:0}25%{opacity:.76}100%{opacity:0}}
@media(max-width:760px){.screen{min-height:580px}.tech{left:18px;right:18px}.tech span:nth-child(2){display:none}.landing h1{font-size:13vw}.sun{width:145vw;bottom:-57vw}.orbit-header{left:18px;right:18px;top:20px}.logo{font-size:18px}.orbit-header .capsule{min-width:45px;width:45px;padding:0;font-size:0}.orbit-header .capsule:after{content:"+";font-size:20px}.orbit-caption{top:13%}.planet-person{transform:translate(-50%,-50%) scale(.72)}.years{left:18px;right:18px}.person-card{left:20px;right:20px;top:auto;bottom:70px;width:auto}.tabs{top:95px}.distance-card{display:none}.history-map{inset:145px 18px 0}.timeline{grid-template-columns:repeat(5,150px);overflow-x:auto}.timeline li{min-width:150px}.relation-arc{width:190vw;height:100vw}.space-memory{transform:scale(.75)}.m0{left:-20px}.m1{right:-20px}.m2{right:-30px}.m3{left:15%}.m4{right:5%}.orbit-modal{width:92vw;height:72vh;padding:24px 14px 18px}.modal-content h2{font-size:21px}.roles,.moments-options{grid-template-columns:1fr 1fr}.roles .pill-choice:last-child{grid-column:auto}.color-planets{gap:12px}.color-planets button{width:42px;height:42px}.color-planets button:nth-child(3){width:55px;height:55px}.year-scale button:nth-child(even){display:none}.orbit-modal footer .capsule{min-width:120px;padding:0 14px}.upload-preview{left:2%}.upload-composition button{left:48%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
.planet-person:not(.you) i:before{filter:blur(8px)}
.planet-person:not(.you),.planet-person:not(.you):focus,.planet-person:not(.you):focus-visible{outline:0;box-shadow:none}
.planet-person:not(.you) i{background:transparent;box-shadow:none;overflow:visible}
.planet-person:not(.you) i:before{inset:-4px;opacity:.94;filter:blur(11px)}
.person-card{left:clamp(32px,calc(var(--card-x) - 28px),calc(100% - 486px));right:auto;top:clamp(132px,calc(var(--card-y) + 42px),calc(100% - 372px));width:440px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;animation:cardIn .55s var(--ease)}
.person-card-panel{height:250px;padding:48px 42px 42px;border:1px solid rgba(255,255,255,.78);border-radius:34px;background:rgba(17,18,21,.28);box-shadow:0 0 30px rgba(255,255,255,.035);backdrop-filter:blur(2px);display:flex;flex-direction:column;justify-content:space-between}
.person-card-panel>div{display:flex;flex-direction:column;gap:9px}
.person-card-panel strong{font:300 18px/1.2 "Unbounded Light",sans-serif;color:rgba(250,250,250,.92)}
.person-card-panel small{font:300 14px/1.25 "Unbounded Light",sans-serif;color:rgba(220,219,222,.68)}
.person-card>button{display:block;margin:13px 1px 0 auto;padding:0;font:200 13px/1 "Unbounded",sans-serif;color:rgba(239,239,241,.72);border:0;text-transform:uppercase;white-space:nowrap}
.person-card{left:clamp(24px,calc(var(--card-x) - 2vw),calc(100% - min(440px,31vw) - 5vw));top:clamp(130px,calc(var(--card-y) + 7vh),calc(100% - min(285px,21vw) - 66px));width:min(440px,31vw)}
.person-card-panel{height:min(280px,20vw);min-height:215px;padding:min(36px,2.5vw) min(42px,2.92vw) min(30px,2.1vw)}
.person-card-panel strong{font-size:min(18px,1.25vw)}.person-card-panel small{font-size:min(14px,.94vw)}.person-card>button{font-size:min(13px,.9vw)}
.person-view{background:#111216}.person-view .violet-horizon{left:50%;bottom:-34vh;width:112vw;height:96vh;background:radial-gradient(ellipse at 53% 52%,rgba(255,255,255,.96) 0 7%,var(--relation-accent) 23%,var(--relation-color) 49%,transparent 76%);filter:blur(12px);opacity:.92}.person-view .relation-arc{top:45%;width:112vw;height:49vw;border-color:color-mix(in srgb,var(--relation-color),#15151b 54%);box-shadow:0 0 70px color-mix(in srgb,var(--relation-color),transparent 78%)}
.person-view .ann-body i{background:radial-gradient(circle at 66% 27%,rgba(255,255,255,.82),var(--relation-accent) 34%,var(--relation-color) 72%);box-shadow:0 0 34px 8px color-mix(in srgb,var(--relation-color),transparent 38%);filter:blur(2px)}
.person-view .tabs{top:18.2%;font-size:16px}.person-view .tabs button{font-size:min(17px,1.2vw)}
.person-view .history-map{inset:21% 3.5% 0}.person-view .history-body{top:28%;font:300 min(15px,1.05vw)/1 "Unbounded Light",sans-serif}.person-view .you-body{left:1%}.person-view .ann-body{right:1%}
.person-view .distance-card{right:1.6%;top:-5.5%;width:min(310px,24vw);padding:18px 22px;border-color:rgba(255,255,255,.78);border-radius:22px;background:rgba(16,16,20,.32);box-shadow:0 0 26px rgba(255,255,255,.11);backdrop-filter:blur(3px)}
.person-view .distance-card small{font:300 min(8px,.62vw)/1.3 "Unbounded Light",sans-serif;color:rgba(238,235,242,.63)}.person-view .distance-card b{font:300 min(9px,.72vw)/1.3 "Unbounded Light",sans-serif}.person-view .distance-card p{font:300 min(8px,.62vw)/1.3 "Unbounded Light",sans-serif;color:rgba(239,236,242,.64)}
.person-view .timeline{left:4%;right:4%;bottom:6%;grid-template-columns:repeat(var(--points),1fr)}.person-view .timeline li{padding-top:72px}.person-view .timeline li:before{height:55px;background:rgba(255,255,255,.38)}.person-view .timeline b{font:300 min(17px,1.28vw)/1 "Unbounded Light",sans-serif}.person-view .timeline span{font:300 min(11px,.82vw)/1.35 "Unbounded Light",sans-serif}.person-view .timeline small{font:200 min(9px,.68vw)/1.35 "Unbounded",sans-serif;color:rgba(245,240,248,.46)}
@media(max-width:760px){.person-card{left:20px;right:20px;top:auto;bottom:70px;width:auto}.person-card-panel{height:190px}.person-card-panel strong{font-size:15px}.person-card-panel small{font-size:11px}.person-card>button{font-size:10px}}
.planet-person span{color:var(--label-color,rgba(235,235,235,.78))}
.person-view .relation-arc{top:35%;width:94vw;height:22vw}
.person-view .timeline{top:61%;bottom:auto;height:auto;align-items:start;color:var(--relation-ink,rgba(248,246,249,.94))}
.person-view .timeline li{padding-top:66px;transform:translateY(0)}
.person-view .timeline li:nth-child(2),.person-view .timeline li:nth-last-child(2){transform:translateY(48px)}
.person-view .timeline li:nth-child(3){transform:translateY(60px)}
.person-view .timeline li:before{top:0;height:40px;transform:translateY(-40px);width:1px;background:rgba(255,255,255,.18)}
.person-view .timeline li:nth-child(2):before,.person-view .timeline li:nth-last-child(2):before{height:66px;transform:translateY(-66px)}
.person-view .timeline li:nth-child(3):before{height:70px;transform:translateY(-70px)}
.person-view .timeline li:after{background:rgba(255,255,255,.62)}
.person-view .timeline b,.person-view .timeline span,.person-view .timeline small{color:inherit}
.person-view .history-body{color:var(--relation-ink,rgba(248,246,249,.94))}
.person-view .violet-horizon{background:radial-gradient(ellipse at 50% 78%,var(--relation-accent) 0,var(--relation-color) 52%,transparent 79%);filter:blur(24px);opacity:.78}
.person-view .relation-arc{border-width:.65px;border-color:color-mix(in srgb,var(--relation-color),transparent 78%);box-shadow:none}
.person-card{top:clamp(130px,calc(var(--card-y) + 7vh),calc(100% - min(330px,24vw) - 54px))}
.person-change{width:100%;height:min(43px,3vw);min-height:34px;border-radius:999px;background:rgba(9,9,12,.46);font:300 min(15px,1.05vw)/1 "Unbounded Light",sans-serif;color:rgba(248,247,249,.92);transition:.35s var(--ease)}.person-change:hover{background:rgba(238,238,240,.9);color:#18181b;box-shadow:0 0 24px rgba(255,255,255,.2)}
.change-flow .modal-content{top:16%}.change-flow .change-distances{width:86%;margin:30px auto 18px}.change-flow .change-trends{width:86%;margin:0 auto}.change-flow .pill-choice{font-size:min(14px,1vw)}
.auth-shade{position:absolute;z-index:40;inset:0;background:rgba(7,8,10,.62);backdrop-filter:blur(5px)}
.auth-card{position:absolute;z-index:41;left:50%;top:50%;width:min(650px,66vw);height:min(480px,65vh);transform:translate(-50%,-50%);padding:46px 58px 42px;border:1px solid rgba(255,255,255,.82);border-radius:38px;background:rgba(24,25,28,.72);box-shadow:0 0 34px rgba(255,255,255,.18);backdrop-filter:blur(8px);text-align:center;color:#f3f3f4}
.auth-close{position:absolute;left:32px;top:31px;width:24px;height:24px;opacity:.66}.auth-close:before,.auth-close:after{content:"";position:absolute;left:11px;top:0;width:1px;height:25px;background:#fff;transform:rotate(45deg)}.auth-close:after{transform:rotate(-45deg)}
.auth-code{position:absolute;right:34px;top:30px;font:200 12px/1 "Unbounded",sans-serif;color:rgba(236,236,238,.62)}
.auth-card h2{margin:25px 0 18px;font:400 min(34px,2.35vw)/1.14 "Zen Dots",sans-serif;letter-spacing:.035em}.auth-card p{margin:0 0 38px;font:300 min(15px,1.08vw)/1.5 "Unbounded Light",sans-serif;color:rgba(229,228,231,.62)}
.auth-email{display:block;position:relative;margin:0 auto;width:min(470px,48vw);height:72px;border-bottom:1px solid rgba(255,255,255,.72);border-radius:0 0 28px 28px}.auth-email span{display:block;font:200 10px/1 "Unbounded",sans-serif;text-transform:uppercase;color:rgba(236,235,238,.62)}.auth-email input{display:block;width:100%;height:52px;padding:0 16px;border:0;outline:0;background:transparent;text-align:center;font:300 min(18px,1.3vw)/1 "Unbounded Light",sans-serif;color:#fff}.auth-email input::placeholder{color:rgba(222,220,225,.28)}
.auth-error{display:block;height:30px;padding-top:9px;font:200 9px/1 "Unbounded",sans-serif;color:#ff9aab}.auth-card .auth-submit{min-width:250px;height:52px;background:rgba(10,11,13,.38);font:300 13px/1 "Unbounded Light",sans-serif}
@media(max-width:760px){.auth-card{width:90vw;height:430px;padding:42px 24px 30px}.auth-card h2{font-size:23px}.auth-card p{font-size:11px}.auth-email{width:76vw}.auth-email input{font-size:14px}.person-view .relation-arc{top:38%;width:150vw;height:48vw}.person-view .timeline{top:60%;overflow-x:auto}.person-view .timeline li{transform:none!important}.person-card-panel{height:220px}.person-change{font-size:11px}}
.person-view .timeline li{transform:translateY(var(--curve-drop,0))}
.person-view .timeline li:before{height:var(--stem,40px);transform:translateY(var(--stem-up,-40px))}
.change-flow .modal-content{justify-content:flex-start;padding-top:48px}
.change-flow .modal-content h2{margin-bottom:24px}
.change-flow .modal-content>p{margin-bottom:58px;font:300 min(14px,1vw)/1.4 "Unbounded Light",sans-serif}
.change-line-input{position:relative;display:block;width:86%;height:105px;border-bottom:1px solid rgba(255,255,255,.34);border-radius:0 0 30px 30px}
.change-line-input span{position:absolute;left:50%;top:12px;transform:translateX(-50%);font:200 10px/1 "Unbounded",sans-serif;color:rgba(239,237,241,.64);text-transform:lowercase}
.change-line-input input{width:100%;height:100%;padding:28px 20px 0;border:0;outline:0;background:transparent;color:rgba(239,237,241,.48);text-align:center;font:300 min(18px,1.3vw)/1 "Unbounded Light",sans-serif;color-scheme:dark}
.change-line-input.date input{position:absolute;inset:0;z-index:2;opacity:0;cursor:pointer}.change-line-input.date b{position:absolute;left:0;right:0;bottom:20px;font:300 min(18px,1.3vw)/1 "Unbounded Light",sans-serif;color:rgba(239,237,241,.48);pointer-events:none}
.change-types{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 18px;width:92%;margin-top:46px}.change-types .pill-choice{height:58px;padding:0 16px;font:300 min(13px,.94vw)/1.25 "Unbounded Light",sans-serif}
.change-flow.step-2 .modal-content{padding-top:54px}.change-flow.step-2 .change-line-input{margin-top:92px}.change-line-input.detail input{padding-top:0;font-size:min(16px,1.15vw)}
.change-line-input.detail input::placeholder{color:rgba(224,221,226,.34)}
.change-line-input.text-date input{padding-top:28px}.change-line-input.text-date input::placeholder{color:rgba(224,221,226,.3)}.change-date-error{height:22px;margin-top:10px;font:200 9px/1.3 "Unbounded",sans-serif;color:rgba(255,156,174,.86)}
@media(max-width:760px){.change-types{grid-template-columns:1fr 1fr;gap:10px}.change-types .pill-choice{height:46px;font-size:10px}.change-flow .modal-content>p{margin-bottom:30px}.change-flow.step-2 .change-line-input{margin-top:48px}}

/* Add moment / four-step flow */
.moment-flow .orbit-modal{width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:0;border-radius:30px;background:rgba(38,39,41,.9);overflow:hidden}.moment-flow .counter{right:3.3%;top:4.6%;font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif;color:rgba(245,245,245,.76)}.moment-flow .modal-close{display:none}.moment-flow .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}.moment-flow .modal-content h2{position:absolute;left:50%;top:8.65%;width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(35px,2.51vw)/1.08 "Zen Dots",sans-serif;text-transform:uppercase}.moment-flow .modal-content>p{position:absolute;left:50%;top:24%;width:82%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.68);font:300 min(16px,1.17vw)/1.3 "Unbounded Light",sans-serif}.moment-flow .orbit-modal footer{position:absolute;left:0;right:0;bottom:7.5%;display:flex;align-items:center;justify-content:center;gap:20px}.moment-flow .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;padding:0 24px;border:2px solid rgba(255,255,255,.9);border-radius:100px;color:#f2f2f2;font:300 min(16px,1.18vw)/1 "Unbounded Light",sans-serif}.moment-flow .orbit-modal footer .capsule.secondary{width:min(185px,14.5vw);min-width:0;background:transparent}.moment-flow .orbit-modal footer .capsule:not(.secondary){width:min(285px,22.3vw);min-width:0;background:rgba(10,11,13,.44)}.moment-flow .orbit-modal footer .capsule:hover{box-shadow:0 0 18px rgba(255,255,255,.14)}.moment-error{position:absolute;left:50%;bottom:17.3%;width:76%;transform:translateX(-50%);color:rgba(255,157,177,.88);font:200 10px/1.2 "Unbounded",sans-serif}
.moment-flow .moments-options{position:absolute;left:50%;top:38.5%;width:84%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,1fr);gap:18px 20px}.moment-flow .moments-options .pill-choice{width:100%;height:56px;padding:0 18px;border:0;border-radius:100px;background:rgba(10,11,13,.65);color:rgba(246,245,247,.92);font:300 min(16px,1.17vw)/1 "Unbounded Light",sans-serif;transition:.28s var(--ease)}.moment-flow .moments-options .pill-choice:hover,.moment-flow .moments-options .pill-choice.selected{background:rgba(241,241,242,.92);color:#202024;box-shadow:0 0 24px rgba(255,255,255,.3)}
.moment-flow .moment-media-stage{position:absolute;left:50%;top:28.5%;width:72%;height:285px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:22px}.moment-upload-card{position:relative;width:238px;height:292px;flex:0 0 auto;border:1px solid rgba(255,255,255,.62);border-radius:34px;background:rgba(16,17,19,.38);display:grid;place-items:center;color:rgba(240,240,242,.52);font:200 34px/1 "Unbounded",sans-serif;overflow:hidden;cursor:pointer}.moment-upload-card img{width:100%;height:100%;object-fit:cover}.moment-upload-card input,.moment-file-button input,.moment-replace input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.moment-upload-action{width:270px;display:flex;flex-direction:column;align-items:center;gap:10px}.moment-file-button{position:relative;width:100%;height:68px;border:1px solid rgba(255,255,255,.78);border-radius:20px;display:flex;align-items:center;justify-content:center;gap:18px;color:#f3f3f4;font:300 min(16px,1.16vw)/1 "Unbounded Light",sans-serif;cursor:pointer;transition:.3s var(--ease)}.moment-file-button:hover{background:rgba(255,255,255,.07);box-shadow:0 0 18px rgba(255,255,255,.12)}.moment-file-button b{font:300 25px/1 "Unbounded Light",sans-serif}.moment-upload-action small{color:rgba(236,234,239,.48);font:200 11px/1 "Unbounded",sans-serif}.moment-replace{position:absolute;left:50%;bottom:-25px;transform:translateX(-50%);white-space:nowrap;color:rgba(245,244,246,.72);font:300 12px/1 "Unbounded Light",sans-serif;cursor:pointer}.moment-replace.inline{position:relative;left:auto;bottom:auto;transform:none;margin-top:2px}.moment-flow .has-media{top:26%;height:310px}.moment-flow .has-media .moment-upload-card{width:248px;height:304px}
.moment-flow .audio-stage .music-card{height:238px}.moment-flow .audio-stage .music-card span{font-size:72px;text-shadow:0 0 24px rgba(189,139,255,.58)}.moment-upload-action strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(247,246,248,.86);font:300 13px/1.25 "Unbounded Light",sans-serif}.moment-upload-action audio{width:100%;height:40px;filter:invert(.9) grayscale(1);opacity:.76}
.moment-kind-input{position:absolute;left:50%;top:37%;width:80%;height:165px;transform:translateX(-50%);border-bottom:1px solid rgba(255,255,255,.42);border-radius:0 0 34px 34px}.moment-kind-input span{display:block;color:rgba(239,237,241,.58);font:200 10px/1 "Unbounded",sans-serif;text-transform:lowercase}.moment-kind-input textarea{width:100%;height:132px;padding:42px 30px 20px;resize:none;border:0;outline:0;background:transparent;color:rgba(248,247,249,.88);text-align:center;font:300 min(20px,1.47vw)/1.45 "Unbounded Light",sans-serif}.moment-kind-input textarea::placeholder{color:rgba(230,227,233,.25)}
.moment-flow .moment-form{position:absolute;left:50%;top:28%;width:78%;transform:translateX(-50%);display:grid;gap:7px}.moment-flow .moment-form label{position:relative;height:92px;border-bottom:1px solid rgba(255,255,255,.32);border-radius:0 0 28px 28px;color:rgba(238,236,240,.74)}.moment-flow .moment-form label span{display:block;padding-top:4px;font:200 10px/1 "Unbounded",sans-serif}.moment-flow .moment-form input{display:block;width:100%;height:68px;margin:0;padding:15px 20px 0;border:0;outline:0;background:transparent;text-align:center;color:rgba(246,244,248,.78);font:300 min(17px,1.23vw)/1 "Unbounded Light",sans-serif}.moment-flow .moment-form input::placeholder{color:rgba(229,226,233,.3)}
.moment-flow .final-memory{position:absolute;left:50%;top:26%;width:68%;height:340px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.moment-preview-media{width:202px;height:238px;border:1px solid rgba(255,255,255,.56);border-radius:34px;overflow:hidden;margin-bottom:14px}.moment-preview-media img{width:100%;height:100%;object-fit:cover}.moment-flow .final-memory>b{font:300 min(15px,1.08vw)/1 "Unbounded Light",sans-serif;color:rgba(248,247,249,.9)}.moment-flow .final-memory>span{margin-top:8px;font:300 min(16px,1.16vw)/1.2 "Unbounded Light",sans-serif;color:rgba(248,247,249,.9)}.moment-flow .final-memory>small{margin-top:7px;font:200 min(12px,.88vw)/1.3 "Unbounded",sans-serif;color:rgba(228,224,232,.56)}.moment-preview-text,.moment-preview-audio{width:390px;min-height:185px;margin:10px 0 23px;padding:34px;border:1px solid rgba(255,255,255,.54);border-radius:34px;background:rgba(16,17,20,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;box-shadow:0 0 28px color-mix(in srgb,var(--relation-color,#a74cff),transparent 78%)}.moment-preview-text i,.moment-preview-audio>span{font:300 30px/1 "Unbounded Light",sans-serif;color:rgba(246,244,248,.72)}.moment-preview-text blockquote{max-width:310px;margin:0;font:300 min(17px,1.23vw)/1.45 "Unbounded Light",sans-serif;color:rgba(248,247,249,.9)}.moment-preview-audio strong{font:300 13px/1.3 "Unbounded Light",sans-serif}.moment-preview-audio audio{width:290px;height:38px;filter:invert(.9) grayscale(1);opacity:.76}
.moments-empty{position:absolute;left:50%;top:61%;transform:translate(-50%,-50%);margin:0;text-align:center;color:rgba(231,228,235,.4);font:300 13px/1.5 "Unbounded Light",sans-serif}.saved-memory .memory-image{overflow:hidden}.saved-memory .memory-image img{width:100%;height:100%;object-fit:cover}.saved-memory .archive-symbol{display:grid;width:100%;height:100%;place-items:center;font-size:34px;color:rgba(246,242,249,.72)}
@media(max-width:760px){.moment-flow .orbit-modal{width:92vw;height:72vh}.moment-flow .modal-content h2{font-size:21px}.moment-flow .modal-content>p{font-size:11px}.moment-flow .moments-options{grid-template-columns:1fr 1fr;top:34%;gap:10px}.moment-flow .moments-options .pill-choice{height:44px;font-size:11px}.moment-flow .moment-media-stage{top:27%;width:88%;height:270px;gap:12px}.moment-upload-card{width:42%;height:220px}.moment-upload-action{width:52%}.moment-file-button{height:58px;font-size:10px}.moment-flow .moment-form{top:27%;width:86%}.moment-flow .moment-form label{height:78px}.moment-flow .moment-form input{font-size:12px}.moment-preview-media{width:145px;height:185px}.moment-preview-text,.moment-preview-audio{width:78vw;min-height:150px}.moment-flow .orbit-modal footer .capsule{font-size:10px;padding:0 10px}.moment-flow .orbit-modal footer .capsule.secondary{width:120px}.moment-flow .orbit-modal footer .capsule:not(.secondary){width:175px}}

/* Moment layout calibration: keep every content block clear of the fixed footer. */
.moment-flow .modal-content h2{top:8.2%;font-size:min(31px,2.25vw);line-height:1.07}.moment-flow .modal-content>p{top:20.8%;font-size:min(14px,1.02vw)}
.moment-flow.step-1 .modal-content>p{top:18.4%}
.moment-flow .moment-media-stage{top:25.5%;width:68%;height:228px;gap:28px}.moment-upload-card{width:158px;height:198px;border-radius:27px}.moment-upload-action{width:238px}.moment-file-button{height:56px;border-radius:17px;font-size:min(14px,1vw)}.moment-file-button b{font-size:21px}.moment-upload-action small{font-size:9px}.moment-flow .has-media{top:24.5%;height:235px}.moment-flow .has-media .moment-upload-card{width:172px;height:214px}.moment-replace{bottom:-20px;font-size:10px}
.moment-flow .audio-stage{top:25.5%;height:228px}.moment-flow .audio-stage .music-card{width:170px;height:198px}.moment-flow .audio-stage .music-card span{font-size:56px}.moment-flow .audio-stage .moment-upload-action{width:250px}.moment-upload-action audio{height:34px}
.moment-kind-input{top:31.5%;height:145px}.moment-kind-input textarea{height:112px;padding-top:34px;font-size:min(17px,1.22vw)}
.moment-flow.step-2 .modal-content h2{top:7.5%}.moment-flow .moment-form{top:24.5%;width:76%;gap:0}.moment-flow .moment-form label{height:70px;border-radius:0 0 24px 24px}.moment-flow .moment-form label span{padding-top:1px;font-size:9px}.moment-flow .moment-form input{height:51px;padding-top:8px;font-size:min(15px,1.08vw)}
.moment-flow .final-memory{top:23.5%;height:275px}.moment-preview-media{width:154px;height:188px;margin-bottom:10px;border-radius:27px}.moment-preview-text,.moment-preview-audio{width:350px;min-height:150px;margin:4px 0 16px;padding:25px}.moment-preview-audio audio{height:34px}
.moment-flow .orbit-modal footer{bottom:6.2%;z-index:8}.moment-error{bottom:15.3%}

/* The moments archive inherits the person's actual planet color. */
.moments-view .ann-core i{position:relative;width:66px;height:66px;background:radial-gradient(circle at 67% 28%,rgba(255,255,255,.9) 0 4%,var(--relation-accent) 31%,var(--relation-color) 72%);box-shadow:0 0 42px 13px color-mix(in srgb,var(--relation-color),transparent 30%);filter:blur(7.5px)}
.moments-view .ann-core i:before{content:"";position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--relation-color),transparent 28%) 0,transparent 70%);filter:blur(26px);z-index:-1}.moments-view .ann-core{color:color-mix(in srgb,var(--relation-accent),white 44%)}
.moments-view .stars-a{animation:stars 118s linear infinite reverse;opacity:.34}.moments-view .stars-b{animation:stars 72s linear infinite;opacity:.2}.moments-view .grain{animation:momentGrainDrift 42s ease-in-out infinite alternate}@keyframes momentGrainDrift{to{transform:translate3d(18px,-12px,0) scale(1.02)}}

@media(max-width:760px){.moment-flow .modal-content h2{font-size:20px}.moment-flow .modal-content>p{top:20.5%;font-size:10px}.moment-flow .moment-media-stage,.moment-flow .audio-stage{top:25%;width:86%;height:205px;gap:14px}.moment-upload-card,.moment-flow .audio-stage .music-card{width:130px;height:170px}.moment-flow .has-media .moment-upload-card{width:136px;height:176px}.moment-upload-action,.moment-flow .audio-stage .moment-upload-action{width:48%}.moment-file-button{height:48px;font-size:9px}.moment-flow .moment-form{top:23.5%;width:84%}.moment-flow .moment-form label{height:64px}.moment-flow .final-memory{top:23%}.moment-preview-media{width:132px;height:166px}.moment-preview-text,.moment-preview-audio{width:72vw;min-height:132px}}

/* Equal rhythm inside moment dialogs. */
.moment-flow .moment-media-stage{gap:32px}.moment-upload-card{width:176px;height:218px}.moment-flow .has-media .moment-upload-card{width:182px;height:224px}.moment-flow .audio-stage .music-card{width:176px;height:218px}.moment-upload-action{gap:9px}.moment-flow .moment-form{grid-template-rows:repeat(3,70px)}.moment-flow .moment-form label{height:70px}.moment-flow .moment-form label span{height:17px}.moment-flow .moment-form input{height:53px}.moment-flow .orbit-modal footer{gap:20px}

/* All space layers drift at different speeds for a restrained parallax effect. */
.stars-a{animation:starsFar 168s linear infinite;will-change:transform}.stars-b{animation:starsNear 92s linear infinite;will-change:transform}.grain{animation:grainDrift 58s ease-in-out infinite alternate;will-change:transform}@keyframes starsFar{to{transform:translate3d(54px,-31px,0) scale(1.018)}}@keyframes starsNear{to{transform:translate3d(-104px,61px,0) scale(1.028)}}@keyframes grainDrift{to{transform:translate3d(13px,-9px,0) scale(1.015)}}

/* Moments archive: orbital composition and content-specific objects. */
.moments-view .tabs{top:18%}.moments-meta{position:absolute;z-index:6;left:50%;top:24%;transform:translateX(-50%);color:rgba(224,221,228,.58);font:200 min(11px,.82vw)/1 "Unbounded",sans-serif}.moments-map{inset:24% 2.5% 2.5%}.moments-map .memory-orbits ellipse{fill:none;stroke:rgba(216,214,222,.13);stroke-width:1}.moments-map .memory-spokes line{stroke:rgba(226,224,231,.22);stroke-width:1.2}.moments-map .memory-spokes circle{fill:rgba(225,222,230,.34)}.moments-view .ann-core{top:48%}.moments-view .space-memory{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}.moments-view .space-memory small{display:block;margin-top:7px;color:rgba(229,226,233,.67);font:200 min(8px,.62vw)/1.2 "Unbounded",sans-serif}.moments-view .space-memory p{margin:7px 0 0;color:rgba(238,236,240,.8);font:200 min(8px,.62vw)/1.2 "Unbounded",sans-serif;text-transform:uppercase}
.moments-view .m0{left:9%;top:18%;width:min(220px,17vw)}.moments-view .m1{left:64%;top:8%;width:min(160px,12.5vw)}.moments-view .m2{right:2.5%;top:25%;width:min(175px,13.5vw)}.moments-view .m3{right:9%;bottom:11%;width:min(230px,18vw)}.moments-view .m4{left:53%;bottom:0;width:min(220px,17vw)}.moments-view .m5{left:3%;bottom:16%;width:min(165px,13vw)}
.memory-photo{width:100%;height:min(150px,11.6vw);overflow:hidden;border:1px solid rgba(255,255,255,.32);border-radius:12px;box-shadow:0 0 20px rgba(255,255,255,.13)}.memory-photo img{width:100%;height:100%;object-fit:cover}.kind-photo.m1 .memory-photo{height:min(105px,8.1vw)}.kind-photo.m3 .memory-photo{height:min(170px,13vw)}
.memory-note{min-height:78px;padding:17px 18px 13px;border:1px solid rgba(255,255,255,.62);border-radius:23px;background:rgba(17,18,22,.38);box-shadow:0 0 25px rgba(255,255,255,.13);display:flex;flex-direction:column;justify-content:space-between}.memory-note q{color:rgba(241,239,243,.82);font:200 min(9px,.7vw)/1.35 "Unbounded",sans-serif}.memory-note small{text-align:right}
.memory-audio{height:68px;padding:0 14px;border:1px solid rgba(255,255,255,.62);border-radius:23px;background:rgba(17,18,22,.42);box-shadow:0 0 25px rgba(255,255,255,.14);display:grid;grid-template-columns:18px 1fr;grid-template-rows:1fr auto;gap:0 8px;align-items:center;cursor:pointer}.memory-audio b{grid-row:1/3;color:#fff;font-size:13px}.memory-audio i{height:25px;background:repeating-linear-gradient(90deg,rgba(230,228,234,.45) 0 1px,transparent 1px 3px);clip-path:polygon(0 42%,4% 27%,8% 58%,12% 36%,16% 72%,20% 30%,24% 63%,28% 18%,32% 75%,36% 39%,40% 67%,44% 25%,48% 80%,52% 32%,56% 71%,60% 20%,64% 63%,68% 37%,72% 77%,76% 29%,80% 60%,84% 40%,88% 68%,92% 34%,96% 54%,100% 44%,100% 56%,0 56%)}.memory-audio small{margin:0;text-align:right}.memory-audio.playing i{animation:wavePulse 1.2s ease-in-out infinite alternate}.memory-audio.playing b{color:var(--relation-accent);text-shadow:0 0 12px var(--relation-color)}@keyframes wavePulse{to{transform:scaleY(.62);opacity:.7}}
.memory-place{min-height:86px;padding:18px;border:1px solid rgba(255,255,255,.58);border-radius:28px;background:radial-gradient(circle at 50% 120%,color-mix(in srgb,var(--relation-color),transparent 68%),transparent 65%),rgba(17,18,22,.38);box-shadow:0 0 26px color-mix(in srgb,var(--relation-color),transparent 82%);display:flex;align-items:center;gap:12px}.memory-place b{font-size:24px;color:var(--relation-accent)}.memory-place span{color:rgba(242,240,244,.84);font:300 min(10px,.75vw)/1.35 "Unbounded Light",sans-serif}
.moments-view .ann-core i{animation:momentCorePulse 7.5s ease-in-out infinite}@keyframes momentCorePulse{50%{transform:scale(1.045);filter:blur(9px);box-shadow:0 0 55px 17px color-mix(in srgb,var(--relation-color),transparent 26%)}}

@media(max-width:760px){.moment-flow .moment-media-stage{gap:14px}.moment-upload-card,.moment-flow .audio-stage .music-card{width:138px;height:176px}.moment-flow .has-media .moment-upload-card{width:142px;height:182px}.moments-view .tabs{top:15%}.moments-meta{top:21%;font-size:8px}.moments-map{inset:22% 2% 2%}.moments-view .space-memory{transform:scale(.72)}.moments-view .m0{left:-2%;top:12%;width:180px}.moments-view .m1{left:auto;right:-4%;top:7%;width:135px}.moments-view .m2{right:-5%;top:39%;width:150px}.moments-view .m3{right:-5%;bottom:4%;width:180px}.moments-view .m4{left:43%;bottom:-2%;width:180px}.moments-view .m5{left:-4%;bottom:18%;width:150px}}

/* Preserve uploaded image proportions and keep optional details clear of controls. */
.moment-flow .has-media .moment-upload-card{width:auto;height:224px;max-width:360px;aspect-ratio:var(--media-aspect,.8);background:rgba(12,13,15,.5)}.moment-flow .has-media .moment-upload-card img{object-fit:contain;background:rgba(7,8,10,.62)}.moment-preview-media{width:auto;height:188px;max-width:330px;aspect-ratio:var(--media-aspect,.8);background:rgba(7,8,10,.55)}.moment-preview-media img{object-fit:contain}.moment-flow .moment-form input{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.moment-flow.step-2 .moment-error{top:72%;bottom:auto}.moment-flow.step-2 .moment-form{top:23%;grid-template-rows:repeat(3,68px)}.moment-flow.step-2 .moment-form label{height:68px}.moment-flow.step-2 .moment-form label span{display:flex;height:18px;align-items:center;justify-content:center}.moment-flow.step-2 .moment-form input{height:50px;padding:4px 20px 0}.moment-flow.step-2 .orbit-modal footer{bottom:6.2%}

/* Match the reference's low, concentric orbital field. */
.moments-view .ann-core{top:37.5%}.moments-map .memory-orbits ellipse{stroke:rgba(222,220,227,.12);stroke-width:.8}.moments-map .memory-spokes line{stroke:rgba(230,228,234,.2);stroke-width:1}.moments-map .memory-spokes circle{fill:rgba(229,226,233,.3)}.memory-photo{height:auto;aspect-ratio:var(--photo-aspect,1.45);max-height:170px;background:rgba(8,9,11,.45)}.memory-photo img{object-fit:contain;background:rgba(8,9,11,.5)}

/* Motion remains enabled for the explicitly requested space background. */
.stars{inset:-9%;width:118%;height:118%}.stars-a{animation:spaceLayerFar 74s linear infinite!important}.stars-b{animation:spaceLayerNear 46s linear infinite!important}.grain{animation:spaceGrain 39s ease-in-out infinite alternate!important}.landing-starfield{animation:starDrift 14s ease-in-out infinite alternate!important}@keyframes spaceLayerFar{0%{transform:translate3d(-1.5%,-1%,0) scale(1.015);opacity:.33}50%{opacity:.46}100%{transform:translate3d(3.8%,2.4%,0) scale(1.035);opacity:.34}}@keyframes spaceLayerNear{0%{transform:translate3d(2.5%,-2%,0) scale(1.02);opacity:.17}50%{opacity:.29}100%{transform:translate3d(-5%,3.7%,0) scale(1.05);opacity:.2}}@keyframes spaceGrain{to{transform:translate3d(2.2%,-1.4%,0) scale(1.025)}}@media(prefers-reduced-motion:reduce){.stars-a{animation:spaceLayerFar 74s linear infinite!important}.stars-b{animation:spaceLayerNear 46s linear infinite!important}.grain{animation:spaceGrain 39s ease-in-out infinite alternate!important}.landing-starfield{animation:starDrift 14s ease-in-out infinite alternate!important}}

@media(max-width:760px){.moment-flow .has-media .moment-upload-card{height:182px;max-width:260px}.moment-preview-media{height:166px;max-width:250px}.moment-flow.step-2 .moment-form{grid-template-rows:repeat(3,60px)}.moment-flow.step-2 .moment-form label{height:60px}.moment-flow.step-2 .moment-form input{height:42px}.moment-flow.step-2 .moment-error{top:70%}.moments-view .ann-core{top:37.5%}}

/* Random canvas starfield replaces visibly tiled CSS stars. */
.stars,.stars-a,.stars-b{display:none!important;background:none!important}.space-starfield{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none}.universe .space-starfield{z-index:0}.person-view>.space-starfield{z-index:0}.result-screen>.space-starfield{z-index:2}.modal-orbit-backdrop .space-starfield{opacity:.7}

/* Strict shared vertical zones for every moment dialog. */
.moment-flow .orbit-modal{--modal-title-top:7.8%;--modal-footer-bottom:6.8%;--modal-work-top:24%;--modal-work-bottom:22%}
.moment-flow .modal-content h2{top:var(--modal-title-top)}
.moment-flow .orbit-modal footer{bottom:var(--modal-footer-bottom);align-items:center}
.moment-flow .orbit-modal footer .capsule{margin:0;display:inline-flex;align-items:center;justify-content:center}
.moment-flow.step-2 .moment-form{top:var(--modal-work-top);bottom:var(--modal-work-bottom);height:auto;display:grid;grid-template-rows:repeat(3,1fr);gap:0}.moment-flow.step-2 .moment-form label,.moment-flow.step-2 .moment-form label span,.moment-flow.step-2 .moment-form input{box-sizing:border-box}.moment-flow.step-2 .moment-form label{height:auto;min-height:0;display:grid;grid-template-rows:22px 1fr}.moment-flow.step-2 .moment-form label span{height:22px;padding:0;display:flex;align-items:center;justify-content:center}.moment-flow.step-2 .moment-form input{height:100%;min-height:0;padding:0 22px;align-self:stretch}.moment-flow.step-2 .moment-error{top:76.5%;bottom:auto}
.moment-flow.step-3 .final-memory{top:21.5%;bottom:20%;height:auto;display:flex;justify-content:center;gap:0}.moment-flow.step-3 .moment-preview-media{flex:0 1 auto;max-height:188px}.moment-flow.step-3 .final-memory>b{margin-top:0}.moment-flow.step-3 .final-memory>span{margin-top:8px}

@media(max-width:760px){.moment-flow .orbit-modal{--modal-work-top:24%;--modal-work-bottom:23%}.moment-flow.step-2 .moment-form{top:var(--modal-work-top);bottom:var(--modal-work-bottom);grid-template-rows:repeat(3,1fr)}.moment-flow.step-2 .moment-form label{height:auto}.moment-flow.step-2 .moment-form input{height:100%}.moment-flow.step-3 .final-memory{top:21%;bottom:21%}.space-starfield{inset:-3%;width:106%;height:106%}}

/* 2026-08 alignment pass: one modal geometry and one control scale. */
.orbit-modal button,.orbit-modal label,.orbit-header .capsule,.person-card button{font-size:clamp(12px,1.02vw,16px)}
.orbit-modal footer .capsule,.person-flow .pill-choice,.moment-flow .pill-choice,.change-flow .pill-choice{font:300 clamp(12px,1.02vw,16px)/1 "Unbounded Light",sans-serif}
.orbit-header .capsule{font:300 clamp(12px,1.02vw,16px)/1 "Unbounded Light",sans-serif;display:inline-flex;align-items:center;justify-content:center}
.orbit-modal button:not(.modal-close):not(.color-planets button),.orbit-modal .moment-file-button,.orbit-modal .moment-replace,.orbit-header .capsule{font-size:14px!important}

/* Relationship filters sit in the visual centre between title and footer. */
.person-flow.step-1 .roles{position:absolute;left:50%;top:31%;bottom:25%;width:88%;height:auto;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,52px);align-content:center;gap:13px 18px}
.person-flow.step-1 .roles .pill-choice{width:100%;height:52px;margin:0;padding:0 18px;display:flex;align-items:center;justify-content:center;text-align:center}
.person-flow.step-1 .roles .pill-choice:last-child{grid-column:1}

/* The onboarding year rail is genuinely scrollable back to 1970. */
.person-flow.step-2 .year-scale{grid-template-columns:repeat(57,72px);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.person-flow.step-2 .year-scale::-webkit-scrollbar{display:none}
.person-flow.step-2 .year-scale:before{width:4104px;right:auto}
.person-flow.step-2 .year-scale button{min-width:72px}

/* A colour is outlined only after explicit selection or while hovering. */
.person-flow.step-5 .color-planets button{outline-color:transparent!important}
.person-flow.step-5 .color-planets button:hover,.person-flow.step-5 .color-planets button.selected{outline-color:rgba(255,255,255,.9)!important}

/* Change dialogs now share the exact title/counter/footer grid with moment dialogs. */
.change-flow .orbit-modal{--modal-title-top:7.8%;--modal-footer-bottom:6.8%;width:min(792px,58.63vw);height:min(640px,73.13vh);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:0;border-radius:30px;background:rgba(38,39,41,.9);overflow:hidden}
.change-flow .counter{right:3.3%;top:4.6%;font:300 min(20px,1.5vw)/1 "Unbounded Light",sans-serif;color:rgba(245,245,245,.76)}
.change-flow .modal-close{display:none}
.change-flow .modal-content{position:absolute;inset:0;display:block;padding:0;text-align:center}
.change-flow .modal-content h2{position:absolute;left:50%;top:var(--modal-title-top);width:84%;transform:translateX(-50%);margin:0;color:#f5f5f4;font:400 min(31px,2.25vw)/1.07 "Zen Dots",sans-serif;text-transform:uppercase}
.change-flow .modal-content>p{position:absolute;left:50%;top:20.8%;width:82%;transform:translateX(-50%);margin:0;color:rgba(238,238,238,.68);font:300 min(14px,1.02vw)/1.3 "Unbounded Light",sans-serif}
.change-flow .orbit-modal footer{position:absolute;left:0;right:0;bottom:var(--modal-footer-bottom);display:flex;align-items:center;justify-content:center;gap:20px;z-index:8}
.change-flow .orbit-modal footer .capsule{height:min(52px,6.8vh);min-height:48px;margin:0;padding:0 24px;border:2px solid rgba(255,255,255,.9);display:inline-flex;align-items:center;justify-content:center}
.change-flow .orbit-modal footer .capsule.secondary{width:min(185px,14.5vw);min-width:0;background:transparent}
.change-flow .orbit-modal footer .capsule:not(.secondary){width:min(285px,22.3vw);min-width:0;background:rgba(10,11,13,.44)}
.change-flow.step-0 .change-line-input{position:absolute;left:50%;top:37%;width:78%;height:112px;margin:0;transform:translateX(-50%);display:grid;grid-template-rows:24px 1fr;border-bottom:1px solid rgba(255,255,255,.35);border-radius:0 0 30px 30px}
.change-flow.step-0 .change-line-input span{position:static;transform:none;display:flex;align-items:center;justify-content:center;font:200 10px/1 "Unbounded",sans-serif;color:rgba(236,233,239,.68)}
.change-flow.step-0 .change-line-input input{height:100%;padding:0 20px;border:0;background:transparent;text-align:center;font:300 min(17px,1.22vw)/1 "Unbounded Light",sans-serif}
.change-date-error{position:absolute;left:50%;top:61%;width:72%;transform:translateX(-50%);color:rgba(255,157,177,.88);font:200 10px/1.25 "Unbounded",sans-serif}.change-date-error:empty{display:none}
.change-flow.step-1 .change-date-error{top:75%}
.change-flow.step-1 .change-types{position:absolute;left:50%;top:29%;bottom:25%;width:88%;height:auto;margin:0;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,58px);align-content:center;gap:18px}
.change-flow.step-1 .change-types .pill-choice{width:100%;height:58px;margin:0;padding:0 14px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.change-flow.step-2 .change-line-input{position:absolute;left:50%;top:34%;width:78%;height:145px;margin:0;transform:translateX(-50%);border-bottom:1px solid rgba(255,255,255,.35);border-radius:0 0 30px 30px}
.change-flow.step-2 .change-line-input input{width:100%;height:100%;padding:0 24px;border:0;background:transparent;text-align:center;font:300 min(17px,1.22vw)/1.35 "Unbounded Light",sans-serif}

/* Optional moment metadata stays inside the work zone and never touches controls. */
.moment-error:empty{display:none}
.moment-flow.step-2 .moment-error{top:72.5%;bottom:auto;font-size:9px}
.moment-flow.step-2 .moment-form{top:23.5%;bottom:25%;grid-template-rows:repeat(3,minmax(0,1fr))}
.moment-flow.step-2 .moment-form label{overflow:hidden}
.moment-flow.step-2 .moment-form input{font-size:min(15px,1.08vw)}

/* Upload icons and archive artifacts use a shared optical centre. */
.moment-file-button{display:grid;grid-template-columns:30px auto;place-content:center;align-items:center;column-gap:14px;text-align:left}
.moment-file-button b{width:30px;height:30px;display:grid;place-items:center;margin:0;line-height:1}
.moment-upload-card>span{position:absolute;inset:0;display:grid;place-items:center;line-height:1}
.memory-place{display:grid;grid-template-columns:32px 1fr;align-items:center;text-align:left}
.memory-place b{width:32px;height:32px;display:grid;place-items:center;line-height:1}
.memory-place span{align-self:center}
.moments-view .space-memory{box-sizing:border-box;text-align:left}
.moments-view .space-memory>small,.moments-view .space-memory>p{width:100%;text-align:left}

/* Planet labels remain readable and planets occupy collision-free slots. */
.planet-person{isolation:isolate}
.planet-person i{outline:0!important;border:0!important}
.planet-person:hover i{filter:blur(8px) brightness(1.08)}

@media(max-width:760px){
  .person-flow.step-1 .roles{width:86%;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,44px);gap:9px 10px}.person-flow.step-1 .roles .pill-choice{height:44px}.person-flow.step-1 .roles .pill-choice:last-child{grid-column:auto}
  .person-flow.step-2 .year-scale{grid-template-columns:repeat(57,62px)}.person-flow.step-2 .year-scale:before{width:3534px}.person-flow.step-2 .year-scale button{min-width:62px}
  .change-flow .orbit-modal{width:92vw;height:72vh}.change-flow .modal-content h2{font-size:20px}.change-flow .modal-content>p{font-size:10px}.change-flow.step-1 .change-types{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,44px);gap:10px}.change-flow.step-1 .change-types .pill-choice{height:44px}.change-flow .orbit-modal footer .capsule{font-size:10px}.change-flow .orbit-modal footer .capsule.secondary{width:120px}.change-flow .orbit-modal footer .capsule:not(.secondary){width:175px}
}

/* Orbit recap and the requested softer, living planets. */
.planet-person:not(.you) i{filter:none!important;animation:orbitPlanetJelly 7.6s ease-in-out infinite;will-change:border-radius,translate}
.planet-person:not(.you) i:before{inset:-2px;filter:blur(7px)!important;opacity:.93}
.planet-person:not(.you):hover i{filter:brightness(1.08)!important}
.planet-person.p1 i,.planet-person.rp1 i{animation-delay:-1.35s}.planet-person.p2 i,.planet-person.rp2 i{animation-delay:-2.7s}.planet-person.p3 i,.planet-person.rp3 i{animation-delay:-4.05s}.planet-person.p4 i{animation-delay:-5.4s}.planet-person.p5 i{animation-delay:-.7s}.planet-person.p6 i{animation-delay:-2.1s}.planet-person.p7 i{animation-delay:-3.5s}.planet-person.p8 i{animation-delay:-4.9s}
@keyframes orbitPlanetJelly{0%,100%{border-radius:50% 48% 52% 49%;translate:0 0}22%{border-radius:46% 54% 48% 52%;translate:1.5px -1px}48%{border-radius:53% 47% 55% 45%;translate:-1px 1.5px}73%{border-radius:48% 52% 46% 54%;translate:1px 1px}}

.orbit-recap-cta{position:absolute!important;z-index:28;right:5.2vw;bottom:10.3vh;width:min(218px,17vw);height:min(50px,6.4vh);min-width:0!important;padding:0 22px!important;border:1px solid rgba(255,255,255,.72)!important;background:rgba(10,11,13,.36)!important;color:rgba(245,245,245,.9)!important;font:300 clamp(11px,.94vw,14px)/1 "Unbounded Light",sans-serif!important;display:flex;align-items:center;justify-content:center}
.orbit-recap-cta:hover{background:rgba(255,255,255,.08)!important;box-shadow:0 0 22px rgba(255,255,255,.14)}

.moments-view .space-memory.kind-photo{width:min(var(--memory-photo-width,220px),22vw)!important}
.moments-view .space-memory.kind-photo .memory-photo{width:100%;height:auto;max-height:none;aspect-ratio:var(--photo-aspect,1.45)}
.moments-view .space-memory.kind-photo .memory-photo img{width:100%;height:100%;object-fit:cover;background:transparent}

.recap-screen{background:#101216}.recap-screen .universe{z-index:0;pointer-events:none;filter:brightness(.64);opacity:.82}.recap-screen .universe .years{opacity:.62}.recap-year .planet-person:not(.you) span,.closest-recap .recap-person span{max-width:min(170px,16vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recap-header{position:absolute;z-index:20;left:5.2vw;right:5.2vw;top:4.8vh;display:flex;align-items:center;justify-content:space-between}.recap-header .capsule{width:min(250px,20vw);height:min(54px,7vh);min-width:0;padding:0 22px;border:1px solid rgba(255,255,255,.82);background:rgba(11,12,15,.28);font:300 clamp(11px,1vw,15px)/1 "Unbounded Light",sans-serif}.recap-header .capsule:hover{background:rgba(255,255,255,.08);box-shadow:0 0 22px rgba(255,255,255,.15)}
.recap-sun{position:absolute;z-index:2;left:50%;top:53%;width:min(72vw,1050px);height:min(67vw,900px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 57% 45%,rgba(255,253,240,.98) 0 18%,rgba(255,247,209,.92) 37%,rgba(240,225,171,.52) 59%,rgba(212,191,122,.1) 74%,transparent 79%);filter:blur(28px);pointer-events:none}.recap-copy{position:absolute;z-index:7;left:50%;top:48.5%;width:70%;transform:translate(-50%,-50%);text-align:center;color:#202124}.recap-copy small{display:block;margin-bottom:12px;font:200 clamp(9px,.75vw,12px)/1 "Unbounded",sans-serif;color:rgba(35,35,37,.4)}.recap-copy h1{margin:0;font:400 clamp(24px,2.65vw,42px)/1.05 "Zen Dots",sans-serif;letter-spacing:.025em}.recap-copy p{margin:25px 0 46px;font:300 clamp(11px,1vw,15px)/1.3 "Unbounded Light",sans-serif}.recap-copy strong{display:block;font:400 clamp(42px,5.1vw,80px)/.88 "Zen Dots",sans-serif;letter-spacing:.03em}.recap-copy b{display:block;margin-top:22px;font:300 clamp(12px,1.3vw,20px)/1 "Unbounded Light",sans-serif;color:rgba(39,39,40,.55)}.recap-next{position:absolute!important;z-index:20;right:5.2vw;bottom:10.3vh;width:min(220px,18vw);height:min(50px,6.4vh);min-width:0!important;padding:0 22px!important;background:rgba(10,11,13,.55)!important;border:1px solid rgba(255,255,255,.82)!important;color:rgba(249,249,249,.92)!important;font:300 clamp(11px,.95vw,14px)/1 "Unbounded Light",sans-serif!important}

.closest-recap{background:radial-gradient(circle at 50% 54%,#2a2a28 0,#17191b 52%,#0d0f12 100%)}.closest-light{position:absolute;z-index:1;left:50%;top:52%;width:63vw;height:53vw;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(246,233,190,.7) 0,rgba(221,207,166,.28) 39%,rgba(190,177,137,.07) 66%,transparent 74%);filter:blur(42px)}.closest-orbit{position:absolute;z-index:3;left:50%;top:54%;border:1px solid rgba(255,255,255,.15);border-radius:50%;transform:translate(-50%,-50%) rotate(-4deg)}.closest-orbit.co1{width:31vw;height:15vw}.closest-orbit.co2{width:64vw;height:31vw;transform:translate(-50%,-50%) rotate(5deg)}.closest-orbit.co3{width:108vw;height:56vw;transform:translate(-50%,-50%) rotate(-3deg)}.closest-title{position:absolute;z-index:12;left:50%;top:14%;width:70%;transform:translateX(-50%);text-align:center}.closest-title h1{margin:0;color:#f2f1ef;font:400 clamp(24px,2.7vw,43px)/1.04 "Zen Dots",sans-serif;letter-spacing:.025em}.closest-recap .planet-person{z-index:10}.closest-recap .recap-you{z-index:11}.recap-person small{position:absolute;left:50%;top:calc(100% + 17px);width:170px;transform:translateX(-50%);color:rgba(244,243,241,.78);font:300 clamp(9px,.75vw,12px)/1.25 "Unbounded Light",sans-serif;text-transform:lowercase}.recap-years{z-index:12}.closest-recap>.space-starfield{z-index:0}

@media(max-width:760px){.orbit-recap-cta{right:18px;bottom:72px;width:158px}.recap-header{left:18px;right:18px;top:20px}.recap-header .logo{font-size:18px}.recap-header .capsule{width:148px;height:44px;padding:0 12px;font-size:9px}.recap-sun{width:125vw;height:125vw}.recap-copy{width:88%;top:49%}.recap-copy p{margin:18px 0 34px}.recap-next{right:18px;bottom:72px;width:154px}.closest-title{top:16%;width:88%}.closest-title h1{font-size:21px}.closest-recap .planet-person{transform:translate(-50%,-50%) scale(.66)}.recap-person small{font-size:9px}.moments-view .space-memory.kind-photo{width:min(var(--memory-photo-width,160px),35vw)!important}}

/* Motion system — preserves the final geometry and visual language. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:300ms;--motion-mid:440ms;--motion-long:900ms}
.screen{--parallax-x:0;--parallax-y:0;overflow:hidden}
.screen.motion-enter{opacity:0}.screen.motion-enter.motion-live{opacity:1;transition:opacity 520ms var(--motion-ease)}
.screen.motion-exit{pointer-events:none;opacity:0;transition:opacity 260ms var(--motion-ease)}
.capsule,.empty-cta,.pill-choice,.custom-color,.custom-done,.tabs button,.person-card>button{transition:scale var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease,opacity var(--motion-fast) ease,box-shadow var(--motion-fast) ease,filter var(--motion-fast) ease}
.capsule:hover,.empty-cta:hover{border-color:rgba(255,255,255,.96);box-shadow:0 0 22px rgba(255,255,255,.11)}
.capsule:active,.empty-cta:active,.pill-choice:active{scale:1.035}
.capsule svg,.empty-cta svg,.person-card button svg,.custom-done svg{transition:transform var(--motion-fast) var(--motion-ease)}
.capsule:hover svg,.empty-cta:hover svg,.person-card button:hover svg,.custom-done:hover svg{transform:translateX(5px)}
.pill-choice:hover{transform:scale(1.015);border-color:rgba(255,255,255,.54);filter:brightness(1.12)}
.pill-choice.selected{box-shadow:0 0 24px rgba(255,255,255,.2)}
.option-grid:has(.pill-choice.selected) .pill-choice:not(.selected),.distance-options:has(.pill-choice.selected) .pill-choice:not(.selected),.change-types:has(.pill-choice.selected) .pill-choice:not(.selected),.moments-options:has(.pill-choice.selected) .pill-choice:not(.selected){opacity:.72}

/* The shared spatial layers move independently, never restart on hover. */
.space-starfield{translate:calc(var(--parallax-x) * 2px) calc(var(--parallax-y) * 2px);transition:translate 1.4s var(--motion-ease)}
.orbit-line,.empty-ellipse,.distance-orbits,.history-map .relation-arc,.closest-orbit{translate:calc(var(--parallax-x) * 4px) calc(var(--parallax-y) * 4px);transition:translate 1.2s var(--motion-ease),opacity var(--motion-mid) ease,filter var(--motion-mid) ease}
.planet-person{translate:calc(var(--parallax-x) * 6px) calc(var(--parallax-y) * 6px);transition:translate 1s var(--motion-ease),opacity var(--motion-mid) ease,filter var(--motion-mid) ease,transform var(--motion-mid) var(--motion-ease)}

/* Hero light becomes the registration portal. */
.motion-auth-enter .sun-vector,.auth-open .sun-vector{animation:heroSunToPortal 1100ms var(--motion-ease) both}
.motion-auth-enter .landing-copy,.auth-open .landing-copy{animation:heroCopyToDepth 780ms var(--motion-ease) both}
.motion-auth-enter .tech,.auth-open .tech{animation:heroChromeOut 720ms ease both}
.auth-shade{animation:authShadeIn 850ms ease both}.auth-card{transform-origin:50% 58%;animation:authFromLight 1050ms var(--motion-ease) both}
.auth-committing .auth-card{animation:authCollapse 760ms var(--motion-ease) both}.auth-committing .auth-shade{animation:authShadeOut 760ms ease both}
@keyframes heroSunToPortal{0%{scale:1;filter:blur(67px);opacity:1}100%{scale:1.5;filter:blur(92px);opacity:1}}
@keyframes heroCopyToDepth{0%{transform:translate(-50%,-50%) scale(1);opacity:1;filter:blur(0)}100%{transform:translate(-50%,-50%) scale(.97);opacity:0;filter:blur(3px)}}
@keyframes heroChromeOut{to{opacity:.18;filter:blur(2px)}}
@keyframes authShadeIn{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(5px)}}
@keyframes authShadeOut{to{opacity:0;backdrop-filter:blur(9px)}}
@keyframes authFromLight{0%{opacity:0;transform:translate(-50%,-46%) scale(.94);filter:blur(12px);box-shadow:0 0 65px rgba(255,237,190,.28)}100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0);box-shadow:0 0 34px rgba(255,255,255,.18)}}
@keyframes authCollapse{to{opacity:0;transform:translate(-50%,-50%) scale(.9);filter:blur(10px)}}

/* A personal universe is born after registration. */
.motion-universe-birth .empty-you,.motion-universe-birth .planet-person.you{animation:youBirth 900ms var(--motion-ease) .16s both}
.motion-universe-birth .empty-ellipse{animation:orbitDraw 900ms var(--motion-ease) both}
.motion-universe-birth .empty-ellipse:nth-of-type(1){animation-delay:.45s}.motion-universe-birth .empty-ellipse:nth-of-type(2){animation-delay:.63s}.motion-universe-birth .empty-ellipse:nth-of-type(3){animation-delay:.8s}
.motion-universe-birth .empty-copy,.motion-universe-birth .orbit-caption{animation:softRise 700ms var(--motion-ease) 1.08s both}
.motion-universe-birth .empty-cta{animation:softRise 650ms var(--motion-ease) 1.28s both}
.empty-you,.planet-person.you{animation:youIdle 6.8s ease-in-out infinite}.empty-you i,.planet-person.you i{animation:youGlow 5.7s ease-in-out infinite}
.empty-ellipse{animation:orbitBreath 12s ease-in-out infinite;transform-origin:center}
@keyframes youBirth{0%{opacity:0;transform:translate(-50%,-50%) scale(.16);filter:blur(10px)}55%{opacity:1;filter:blur(2px)}100%{transform:translate(-50%,-50%) scale(1);filter:blur(0)}}
@keyframes orbitDraw{0%{opacity:0;transform:translate(-50%,-50%) scale(.72);filter:blur(5px)}100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}
@keyframes softRise{from{opacity:0;translate:0 12px;filter:blur(6px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes youIdle{0%,100%{translate:0 -1px}50%{translate:0 2px}}
@keyframes youGlow{0%,100%{filter:brightness(.96)}50%{filter:brightness(1.1)}}
@keyframes orbitBreath{0%,100%{opacity:.76}50%{opacity:.92}}

/* Modal shell stays in space while its content advances. */
.motion-modal-open .modal-orbit-backdrop{animation:backdropApproach 560ms var(--motion-ease) both}
.motion-modal-open .orbit-modal{animation:modalFromCenter 560ms var(--motion-ease) both}
.motion-modal-open .modal-content{animation:modalContentSharpen 560ms var(--motion-ease) both}
.motion-modal-open .modal-glow{animation:modalGlowIn 560ms ease both}
.motion-flow-forward .modal-content{animation:flowForward 420ms var(--motion-ease) both}.motion-flow-backward .modal-content{animation:flowBackward 420ms var(--motion-ease) both}
.motion-flow-forward .counter,.motion-flow-backward .counter{animation:counterChange 360ms var(--motion-ease) both}
.orbit-modal{transition:height 420ms var(--motion-ease),width 420ms var(--motion-ease),box-shadow 420ms ease}
@keyframes backdropApproach{from{filter:brightness(1);transform:scale(1)}to{filter:brightness(.54);transform:scale(1.012)}}
@keyframes modalFromCenter{from{opacity:0;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes modalContentSharpen{from{opacity:.18;filter:blur(8px);transform:translateZ(0)}to{opacity:1;filter:blur(0);transform:translateZ(0)}}
@keyframes modalGlowIn{from{opacity:0}to{opacity:1}}
@keyframes flowForward{0%{opacity:0;translate:18px 0;filter:blur(3px)}100%{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes flowBackward{0%{opacity:0;translate:-18px 0;filter:blur(3px)}100%{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes counterChange{from{opacity:0;translate:8px 0}to{opacity:1;translate:0 0}}

/* Year, distance, direction and colour all explain a state change. */
.year-scale button{transition:color var(--motion-fast) ease,opacity var(--motion-fast) ease,transform var(--motion-mid) var(--motion-ease),text-shadow var(--motion-fast) ease}
.year-scale button:hover{color:#fff;text-shadow:0 0 12px rgba(255,255,255,.45)}.year-scale button.selected{transform:scale(1.08);text-shadow:0 0 16px rgba(255,255,255,.7)}
.year-scale:after{transition:left 420ms var(--motion-ease),translate 420ms var(--motion-ease),box-shadow var(--motion-fast) ease}
.distance-person.target{transition:left 520ms var(--motion-ease),filter 520ms ease}.distance-person.target.dragging{transition:none;cursor:grabbing}.distance-person.target i{transition:filter 520ms ease,box-shadow 520ms ease,scale 520ms var(--motion-ease)}
.distance-options .selected{box-shadow:0 0 20px rgba(255,255,255,.18)}
.trends .selected svg,.trends .selected .arrow{animation:directionRight 300ms var(--motion-ease)}
.trends [data-value*="↗"].selected svg,.trends [data-value*="↗"].selected .arrow{animation-name:directionUp}.trends [data-value*="↘"].selected svg,.trends [data-value*="↘"].selected .arrow{animation-name:directionDown}.trends [data-value*="~"].selected{animation:directionWave 1.6s ease-in-out infinite}
@keyframes directionRight{to{translate:5px 0}}@keyframes directionUp{to{translate:4px -4px}}@keyframes directionDown{to{translate:4px 4px}}@keyframes directionWave{0%,100%{translate:0 0}50%{translate:3px -1px}}
.color-planets button{animation:colorDrift 7.8s ease-in-out infinite;transition:scale var(--motion-mid) var(--motion-ease),opacity var(--motion-mid) ease,outline-color var(--motion-fast) ease,filter var(--motion-mid) ease,box-shadow var(--motion-mid) ease}
.color-planets button:nth-child(2){animation-delay:-1.4s}.color-planets button:nth-child(3){animation-delay:-2.8s}.color-planets button:nth-child(4){animation-delay:-4.2s}.color-planets button:nth-child(5){animation-delay:-5.6s}
.color-planets:has(.selected) button:not(.selected){scale:.92;opacity:.68}.color-planets button.selected{scale:1.1;filter:brightness(1.1)}
@keyframes colorDrift{0%,100%{translate:0 -2px;border-radius:49% 51% 48% 52%}50%{translate:2px 3px;border-radius:54% 46% 53% 47%}}

/* The final selected sphere is the object that enters the orbit. */
.person-launching .orbit-modal h2,.person-launching .orbit-modal p,.person-launching .custom-color,.person-launching .orbit-modal footer,.person-launching .counter,.person-launching .modal-close{opacity:0;filter:blur(8px);transition:opacity 360ms ease,filter 360ms ease}
.person-launching .color-planets button:not(.selected){opacity:0;scale:.65}.person-launching .color-planets button.selected{animation:launchOrb 760ms var(--motion-ease) both}
@keyframes launchOrb{0%{translate:0 0;scale:1.1}55%{translate:0 -8vh;scale:1.25;filter:brightness(1.35)}100%{translate:24vw 15vh;scale:.5;opacity:0;filter:blur(5px)}}
.motion-person-arrival .result-person-glow,.motion-person-arrival .result-anchor{animation:personArrival 1.05s var(--motion-ease) both}.motion-person-arrival .result-status-card{animation:softRise 620ms var(--motion-ease) .55s both}
@keyframes personArrival{0%{opacity:0;translate:-34vw 18vh;scale:.35;filter:blur(8px)}100%{opacity:1;translate:0 0;scale:1;filter:blur(0)}}
.person-launching:after{content:"добавлено в твою орбиту";position:absolute;z-index:80;left:50%;bottom:10%;translate:-50% 0;color:rgba(255,255,255,.82);font:300 12px/1 "Unbounded Light",sans-serif;animation:statusWhisper 1.35s var(--motion-ease) both}
@keyframes statusWhisper{0%,100%{opacity:0;translate:-50% 8px}28%,72%{opacity:1;translate:-50% 0}}

/* Filled orbit idle, hover focus and camera transitions. */
.planet-person:not(.you){will-change:translate,transform,opacity}.universe.has-person-focus .planet-person:not(.is-focused):not(.you){opacity:.72}.planet-person.is-focused{transform:translate(-50%,-50%) scale(1.05);z-index:16}.planet-person.is-focused i{filter:brightness(1.16)!important}.universe.has-person-focus .orbit-line{opacity:.48}.person-card{animation:detailCardIn 420ms var(--motion-ease) both}
@keyframes detailCardIn{from{opacity:0;translate:0 8px;filter:blur(6px)}to{opacity:1;translate:0 0;filter:blur(0)}}
.motion-exit-person-focus .planet-person:not(.is-focused){opacity:0;filter:blur(8px)}.motion-exit-person-focus .planet-person.is-focused{transform:translate(-50%,-50%) scale(1.32);filter:brightness(1.15)}.motion-exit-person-focus .orbit-line{opacity:0;scale:1.08}
.motion-person-focus .relation-glow,.motion-person-focus .result-person-glow{animation:relationshipGlow 900ms var(--motion-ease) both}
@keyframes relationshipGlow{from{opacity:0;scale:.75;filter:blur(34px)}to{opacity:1;scale:1;filter:blur(0)}}

/* Relationship trajectory unfolds in a meaningful order. */
.motion-person-focus .person-view .relation-you{animation:softRise 500ms var(--motion-ease) .1s both}.motion-person-focus .person-view .relation-friend{animation:softRise 500ms var(--motion-ease) .28s both}
.motion-person-focus .relation-arc,.motion-change-arrival .relation-arc{animation:historyCurveIn 850ms var(--motion-ease) .34s both}
.motion-person-focus .timeline li,.motion-change-arrival .timeline li{animation:historyEventIn 520ms var(--motion-ease) both}.motion-person-focus .timeline li:nth-child(1),.motion-change-arrival .timeline li:nth-child(1){animation-delay:.58s}.motion-person-focus .timeline li:nth-child(2),.motion-change-arrival .timeline li:nth-child(2){animation-delay:.69s}.motion-person-focus .timeline li:nth-child(3),.motion-change-arrival .timeline li:nth-child(3){animation-delay:.8s}.motion-person-focus .timeline li:nth-child(4),.motion-change-arrival .timeline li:nth-child(4){animation-delay:.91s}.motion-person-focus .timeline li:nth-child(5),.motion-change-arrival .timeline li:nth-child(5){animation-delay:1.02s}
.timeline li{transition:opacity var(--motion-fast) ease,filter var(--motion-fast) ease,transform var(--motion-mid) var(--motion-ease)}.timeline:has(li:hover) li:not(:hover){opacity:.58}.timeline li:hover{filter:brightness(1.18)}
@keyframes historyCurveIn{from{opacity:0;clip-path:inset(0 100% 0 0);filter:blur(3px)}to{opacity:1;clip-path:inset(0 0 0 0);filter:blur(0)}}
@keyframes historyEventIn{from{opacity:0;translate:0 16px}.55%{opacity:1}to{translate:0 0}}
.change-releasing .orbit-modal{opacity:0;transform:translate(-50%,-50%) scale(.94);filter:blur(8px);transition:all 520ms var(--motion-ease)}
.motion-change-arrival .timeline li:last-child{animation:markerArrive 700ms var(--motion-ease) .4s both}
@keyframes markerArrive{from{opacity:0;translate:0 -18px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}

/* History and moments are two shapes of the same light. */
.tabs:after{transition:left 480ms var(--motion-ease),width 480ms var(--motion-ease)}
.motion-exit-tab-morph .relation-arc,.motion-exit-tab-morph .timeline i{filter:blur(6px);opacity:0;transition:all 430ms var(--motion-ease)}
.motion-exit-tab-morph .timeline li{scale:.5;opacity:0;filter:blur(4px);transition:all 430ms var(--motion-ease)}
.motion-tab-morph .space-memory{animation:momentAssemble 760ms var(--motion-ease) both}.motion-tab-morph .space-memory:nth-of-type(2){animation-delay:80ms}.motion-tab-morph .space-memory:nth-of-type(3){animation-delay:160ms}.motion-tab-morph .space-memory:nth-of-type(4){animation-delay:240ms}.motion-tab-morph .space-memory:nth-of-type(5){animation-delay:320ms}
.space-memory{transition:translate var(--motion-mid) var(--motion-ease),filter var(--motion-mid) ease,box-shadow var(--motion-mid) ease}.space-memory:hover{translate:0 -4px;filter:brightness(1.09);box-shadow:0 0 26px color-mix(in srgb,var(--person-color,#a74cff),transparent 58%)}.space-memory img{transition:scale var(--motion-mid) var(--motion-ease)}.space-memory:hover img{scale:1.03}
@keyframes momentAssemble{from{opacity:0;translate:calc((50vw - var(--x,50vw)) * .12) calc((50vh - var(--y,50vh)) * .12);scale:.65;filter:blur(8px)}to{opacity:1;translate:0 0;scale:1;filter:blur(0)}}
.moment-upload-card img{animation:imageSharpen 600ms var(--motion-ease) both}@keyframes imageSharpen{from{opacity:0;filter:blur(12px);scale:1.02}to{opacity:1;filter:blur(0);scale:1}}
.moment-releasing .orbit-modal{opacity:0;filter:blur(8px);transform:translate(-50%,-50%) scale(.95);transition:all 560ms var(--motion-ease)}.moment-releasing .final-memory{position:relative;z-index:90;animation:previewRelease 560ms var(--motion-ease) both}
@keyframes previewRelease{to{translate:-26vw 12vh;scale:.7;filter:brightness(1.25)}}
.motion-moment-arrival .space-memory:last-of-type{animation:memoryArrival 900ms var(--motion-ease) both}.motion-moment-arrival .memory-line:last-of-type{animation:historyCurveIn 650ms var(--motion-ease) .34s both}
@keyframes memoryArrival{0%{opacity:0;translate:28vw -18vh;scale:1.12;filter:blur(6px)}70%{opacity:1;filter:blur(0)}100%{translate:0 0;scale:1}}

/* Recap is scroll-like cinematic sequencing even when advanced by CTA. */
.motion-view.recap-screen .recap-copy>*{animation:softRise 700ms var(--motion-ease) both}.motion-view.recap-screen .recap-copy>*:nth-child(2){animation-delay:.12s}.motion-view.recap-screen .recap-copy>*:nth-child(3){animation-delay:.24s}.motion-view.recap-screen .recap-copy>*:nth-child(4){animation-delay:.36s}
.recap-screen .planet-person{animation:recapPeripheralIn 850ms var(--motion-ease) both}.recap-screen .planet-person:nth-of-type(2){animation-delay:.12s}.recap-screen .planet-person:nth-of-type(3){animation-delay:.24s}.recap-screen .planet-person:nth-of-type(4){animation-delay:.36s}
@keyframes recapPeripheralIn{from{opacity:0;translate:calc(var(--parallax-x) * 6px) 10vh;filter:blur(8px)}to{opacity:1;translate:calc(var(--parallax-x) * 6px) calc(var(--parallax-y) * 6px);filter:blur(0)}}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .space-starfield,.orbit-line,.empty-ellipse,.distance-orbits,.planet-person,.closest-orbit{translate:none!important}.screen.motion-enter{opacity:1}.screen.motion-exit{opacity:0}
}

/* Branded date picker: one spatial calendar for every exact-date field. */
.orbit-date-field{position:relative}.orbit-date-field input{padding-left:42px!important;padding-right:42px!important}
.orbit-date-trigger{position:absolute;z-index:4;right:14px;bottom:12px;width:30px;height:30px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:grid;place-items:center;color:rgba(245,245,245,.72);transition:background .25s var(--motion-ease),border-color .25s ease,box-shadow .25s ease}
.orbit-date-trigger i{position:relative;width:11px;height:10px;border:1px solid currentColor;border-radius:2px}
.orbit-date-trigger i:before,.orbit-date-trigger i:after{content:"";position:absolute;top:-3px;width:1px;height:4px;background:currentColor}.orbit-date-trigger i:before{left:2px}.orbit-date-trigger i:after{right:2px}
.orbit-date-trigger:hover,.orbit-date-field.calendar-open .orbit-date-trigger{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.75);box-shadow:0 0 16px rgba(255,255,255,.13);color:#fff}
.moment-flow.step-2 .orbit-date-trigger{bottom:10px}.change-flow.step-0 .orbit-date-trigger{bottom:15px}
.orbit-calendar-scrim{position:absolute;z-index:80;inset:0;width:100%;height:100%;border-radius:inherit;background:rgba(8,9,11,.35);opacity:0;backdrop-filter:blur(2px);transition:opacity 220ms ease}.orbit-calendar-scrim.is-open{opacity:1}
.orbit-calendar{position:absolute;z-index:81;left:50%;top:50%;width:min(350px,calc(100% - 32px));height:398px;padding:18px;border:1px solid rgba(255,255,255,.62);border-radius:25px;background:rgba(20,21,24,.97);box-shadow:0 0 36px rgba(255,255,255,.2),0 18px 60px rgba(0,0,0,.5),inset 0 0 28px rgba(255,255,255,.025);color:rgba(246,245,247,.92);opacity:0;transform:translate(-50%,-48%) scale(.96);filter:blur(6px);transition:opacity 260ms var(--motion-ease),transform 300ms var(--motion-ease),filter 260ms ease;font-family:"Unbounded Light",sans-serif}.orbit-calendar.is-open{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}
.orbit-calendar-head{height:44px;display:grid;grid-template-columns:40px 1fr 40px;align-items:center}.orbit-calendar-nav{width:36px;height:36px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center;color:rgba(246,245,247,.8);transition:.25s var(--motion-ease)}.orbit-calendar-nav:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.07);color:#fff}.orbit-calendar-nav.next{justify-self:end}.orbit-calendar-nav.prev .ui-arrow{transform:rotate(180deg)}
.orbit-calendar-title{justify-self:center;min-width:154px;height:38px;padding:0 13px;border-radius:100px;display:flex;align-items:center;justify-content:center;gap:8px;color:rgba(247,246,248,.94);font:300 13px/1 "Unbounded Light",sans-serif;transition:.25s var(--motion-ease)}.orbit-calendar-title:hover{background:rgba(255,255,255,.07);color:#fff}.orbit-calendar-title b{font-weight:400}.orbit-calendar-title i{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s var(--motion-ease)}.orbit-calendar-title[aria-expanded="true"] i{transform:translateY(2px) rotate(225deg)}
.orbit-calendar-weekdays,.orbit-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.orbit-calendar-weekdays{height:34px;align-items:center;margin-top:7px;color:rgba(233,230,236,.42);font:200 9px/1 "Unbounded",sans-serif;text-align:center}.orbit-calendar-grid{grid-template-rows:repeat(6,36px)}.orbit-calendar-day{width:36px;height:36px;justify-self:center;border:1px solid transparent;border-radius:50%;color:rgba(240,238,242,.76);font:300 11px/1 "Unbounded Light",sans-serif;transition:background .22s var(--motion-ease),color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s var(--motion-ease)}.orbit-calendar-day:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);color:#fff;transform:scale(1.04)}.orbit-calendar-day.today{border-color:rgba(255,255,255,.34)}.orbit-calendar-day.selected{background:rgba(242,242,243,.94);border-color:#fff;color:#1b1c1f;box-shadow:0 0 18px rgba(255,255,255,.26)}
.orbit-calendar-years{position:absolute;z-index:4;left:18px;right:18px;top:70px;bottom:54px;padding:10px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:40px;gap:5px;overflow-y:auto;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(17,18,21,.985);opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .22s ease,transform .25s var(--motion-ease);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.orbit-calendar-years.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.orbit-calendar-year{border-radius:100px;color:rgba(237,235,240,.62);font:300 10px/1 "Unbounded Light",sans-serif;transition:.2s ease}.orbit-calendar-year:hover{background:rgba(255,255,255,.09);color:#fff}.orbit-calendar-year.selected{background:rgba(241,241,242,.94);color:#1d1e21;box-shadow:0 0 14px rgba(255,255,255,.22)}
.orbit-calendar-footer{position:absolute!important;left:18px!important;right:18px!important;bottom:11px!important;height:34px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:0!important}.orbit-calendar-footer button{padding:8px 10px;color:rgba(238,236,240,.56);font:200 9px/1 "Unbounded",sans-serif;transition:color .2s ease}.orbit-calendar-footer button:hover{color:#fff}

/* Hover contrast: every dark action keeps light ink; only genuinely light controls use dark ink. */
.auth-card .auth-submit,.orbit-header .capsule,.recap-header .capsule,.orbit-modal footer .capsule,.orbit-recap-cta,.recap-next,.person-card>button,.custom-done{color:rgba(248,247,249,.96)!important;-webkit-text-fill-color:rgba(248,247,249,.96)!important;opacity:1!important;visibility:visible!important}
.auth-card .auth-submit *,.orbit-header .capsule *,.recap-header .capsule *,.orbit-modal footer .capsule *,.orbit-recap-cta *,.recap-next *,.person-card>button *,.custom-done *{color:inherit!important;opacity:1!important;visibility:visible!important}
.capsule:hover{background:rgba(255,255,255,.08)!important;color:rgba(248,247,249,.96)!important;-webkit-text-fill-color:rgba(248,247,249,.96)!important;opacity:1!important;visibility:visible!important}
.capsule:hover,.capsule:hover *{opacity:1!important;visibility:visible!important;color:rgba(248,247,249,.96)!important;-webkit-text-fill-color:rgba(248,247,249,.96)!important;filter:none!important}
.landing .capsule.dark:hover{background:#1d1e1e!important;color:#fff!important}
.auth-card .auth-submit:hover{background:rgba(10,11,13,.7)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.orbit-header .capsule:hover,.recap-header .capsule:hover,.orbit-modal footer .capsule:hover,.orbit-recap-cta:hover,.recap-next:hover,.person-card>button:hover,.custom-done:hover{background:rgba(255,255,255,.08)!important;color:rgba(248,247,249,.96)!important}
.empty-cta:hover{background:#f1f1f1!important;color:#191a1c!important}
.empty-cta:hover,.empty-cta:hover *,.pill-choice:hover,.pill-choice:hover *,.pill-choice.selected,.pill-choice.selected *{opacity:1!important;visibility:visible!important;color:#191a1c!important;filter:none!important}

/* Safari must release the temporary rectangular blur layer after modal entry. */
.motion-modal-open .orbit-modal{animation-fill-mode:none;isolation:isolate;background-clip:padding-box}

/* The selected person's sphere is a local light source, not a full-screen colour wash. */
.relation-result .result-person-glow{inset:auto;left:-16vw;bottom:-42vw;width:94vw;height:94vw;border-radius:50%;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.96) 0 4%,var(--person-accent) 13%,var(--person-color) 28%,color-mix(in srgb,var(--person-color),#15091f 40%) 43%,color-mix(in srgb,var(--person-color),transparent 72%) 55%,transparent 68%);-webkit-filter:blur(54px);filter:blur(54px);opacity:.94;will-change:filter,transform;transform:translateZ(0)}
.relation-result.motion-person-arrival .result-person-glow{animation:resultPersonGlowArrival 1.05s var(--motion-ease) both}
.relation-result.motion-person-focus .result-person-glow{animation:resultPersonGlowFocus 900ms var(--motion-ease) both}
@keyframes resultPersonGlowArrival{0%{opacity:0;translate:-22vw 12vh;scale:.42;-webkit-filter:blur(78px);filter:blur(78px)}100%{opacity:.94;translate:0 0;scale:1;-webkit-filter:blur(54px);filter:blur(54px)}}
@keyframes resultPersonGlowFocus{from{opacity:0;scale:.78;-webkit-filter:blur(78px);filter:blur(78px)}to{opacity:.94;scale:1;-webkit-filter:blur(54px);filter:blur(54px)}}

/* Relationship actions stay visible and separate from the cinematic hover card. */
.orbit-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.header-person-remove{min-height:31px;padding:0 14px;border:1px solid rgba(255,255,255,.2);border-radius:100px;background:rgba(10,11,13,.22);color:rgba(245,225,229,.62);font:200 8px/1 "Unbounded",sans-serif;letter-spacing:.025em;transition:border-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease}
.header-person-remove:hover{border-color:rgba(255,183,193,.62);background:rgba(75,24,32,.28);color:rgba(255,220,225,.94);box-shadow:0 0 18px rgba(186,61,79,.13)}
.result-manage-remove{width:100%;margin-top:14px;padding:9px 0 2px;border-top:1px solid rgba(255,255,255,.13);color:rgba(250,225,230,.62);font:200 8px/1.2 "Unbounded",sans-serif;text-align:left;transition:color .25s ease,border-color .25s ease}
.result-manage-remove:hover{color:rgba(255,221,226,.95);border-color:rgba(255,179,190,.45)}

/* The planet detail never collides with the lower recap CTA. */
.orbit-screen .person-card{left:auto!important;right:5.2vw!important;top:clamp(205px,36vh,calc(100% - min(330px,24vw) - 78px))!important}
.orbit-recap-cta{transition:opacity .28s ease,transform .32s var(--motion-ease),background .25s ease,box-shadow .25s ease}
.universe.has-person-focus~.orbit-recap-cta{opacity:0!important;pointer-events:none!important;transform:translateY(8px)}

/* The status summary introduces the history, then clears the canvas. */
.person-view .distance-card{pointer-events:none;animation:historyStatusVisit 5.8s var(--motion-ease) both}
@keyframes historyStatusVisit{0%{opacity:0;transform:translateY(8px);filter:blur(6px)}10%,68%{opacity:1;transform:translateY(0);filter:blur(0)}100%{opacity:0;transform:translateY(-6px);filter:blur(4px);visibility:hidden}}

/* Person removal stays quiet until deliberately requested from a relationship screen. */
.person-remove-trigger{margin-top:13px;padding:0 0 2px;border-bottom:1px solid rgba(255,255,255,.2);color:rgba(236,233,239,.38);font:200 7px/1.2 "Unbounded",sans-serif;letter-spacing:.04em;transition:color .28s ease,border-color .28s ease,opacity .28s ease}
.person-remove-trigger:hover{color:rgba(255,182,190,.82);border-color:rgba(255,182,190,.5)}
.result-remove-trigger{position:absolute;z-index:12;left:calc(61.2% + 31px);top:calc(50.8% + 192px);margin:0}
.delete-person-shade{position:absolute;z-index:80;inset:0;background:rgba(5,6,8,.64);backdrop-filter:blur(7px);animation:deleteShadeIn .32s ease both}
.delete-person-modal{position:absolute;z-index:81;left:50%;top:50%;width:min(680px,calc(100vw - 48px));height:430px;padding:42px 48px 38px;border:1px solid rgba(255,255,255,.72);border-radius:34px;background:rgba(27,28,31,.92);box-shadow:0 0 40px rgba(255,255,255,.2),0 26px 80px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;text-align:center;transform:translate(-50%,-50%);animation:deleteModalIn .46s var(--motion-ease) both}
.delete-person-code{position:absolute;right:30px;top:24px;color:rgba(235,233,237,.66);font:200 10px/1 "Unbounded",sans-serif}
.delete-person-modal h2{margin:49px 0 0;color:#f6f5f6;font:400 clamp(24px,2.25vw,36px)/1.18 "Zen Dots",sans-serif;letter-spacing:.025em}
.delete-person-modal p{margin:28px 0 0;color:rgba(231,228,233,.55);font:200 12px/1.45 "Unbounded",sans-serif}
.delete-person-modal footer{margin-top:auto;display:flex;gap:20px;align-items:center;justify-content:center}
.delete-person-modal .capsule{min-width:220px;height:52px;color:rgba(248,247,249,.96)!important;-webkit-text-fill-color:rgba(248,247,249,.96)!important;background:rgba(8,9,11,.44);font:300 11px/1 "Unbounded Light",sans-serif}
.delete-person-modal .secondary{background:transparent}
.delete-person-modal .delete-confirm:hover{border-color:rgba(255,175,185,.75)!important;background:rgba(92,22,32,.36)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:0 0 24px rgba(171,45,63,.16)}
@keyframes deleteShadeIn{from{opacity:0}to{opacity:1}}
@keyframes deleteModalIn{from{opacity:0;transform:translate(-50%,-47%) scale(.96);filter:blur(8px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}

/* Moment cards and their connector endpoints share one coordinate system. */
.moments-view .space-memory[data-moment-node]{left:var(--moment-x)!important;right:auto!important;top:var(--moment-y)!important;bottom:auto!important;transform:translate(-50%,-50%);transform-origin:center}
@media(max-width:760px){.moments-view .space-memory[data-moment-node]{transform:translate(-50%,-50%) scale(.72)!important}}

@media(max-width:760px){.orbit-calendar{height:380px;width:min(342px,calc(100% - 24px));padding:14px}.orbit-calendar-grid{grid-template-rows:repeat(6,34px)}.orbit-calendar-day{width:34px;height:34px}.orbit-calendar-years{left:14px;right:14px;top:64px}.orbit-date-trigger{right:8px;bottom:8px}.change-flow.step-0 .orbit-date-trigger{bottom:12px}}

/* Mobile opening sequence — composed for the tall 604×1302 reference frames. */
@media(max-width:760px){
  .landing,.empty-orbit{min-height:100%;height:100%;}

  .landing .landing-vignette{background:radial-gradient(ellipse at 50% 48%,transparent 5%,rgba(7,8,9,.025) 55%,rgba(5,6,7,.13) 100%)}
  .landing .landing-starfield{inset:-4%;width:108%;height:108%;opacity:.82}
  .landing .sun-vector{top:35%;width:132vw;height:132vw;filter:blur(clamp(25px,5vw,32px))}
  .landing .tech{left:3%;right:3%;font-size:clamp(6px,1.72vw,11px);color:rgba(220,220,221,.31)}
  .landing .tech.top{top:3.05%;grid-template-columns:1fr 1fr 1fr}
  .landing .tech.top span:nth-child(2){display:block;position:static;transform:none;text-align:center}
  .landing .tech.bottom{bottom:2.25%;grid-template-columns:1fr 1fr;color:rgba(184,187,185,.31)}
  .landing .tech.bottom span:nth-child(2){display:none}
  .landing .tech.bottom span:last-child{grid-column:2}
  .landing-copy{top:38.9%;padding:0 3%}
  .landing .was{left:0;width:86%;margin:0 auto 17px;font-size:clamp(7px,2vw,9px);color:rgba(255,255,255,.78)}
  .landing h1{font-size:14.35vw;line-height:.92;letter-spacing:-.055em!important}
  .landing-copy p{margin:20px auto 0;font-size:clamp(12px,3.35vw,20px);line-height:1.18;letter-spacing:-.035em!important}
  .desktop-copy-break{display:none}.mobile-copy-break{display:inline}
  .landing .capsule.dark{position:absolute;left:50%;top:20.25vh;transform:translateX(-50%);width:68vw;height:clamp(56px,14.57vw,88px);min-height:0;padding:0 22px;gap:14px;border-width:1.5px;font-size:clamp(14px,3.75vw,23px)}
  .landing .capsule.dark b{font-size:clamp(24px,6vw,36px)}

  .empty-orbit .empty-starfield{inset:-4%;width:108%;height:108%;opacity:.78}
  .empty-orbit .empty-vignette{background:radial-gradient(ellipse at 50% 53%,transparent 12%,rgba(8,9,10,.035) 58%,rgba(7,8,9,.14) 100%)}
  .empty-logo{left:50%;top:4.1%;transform:translateX(-50%);font-size:clamp(23px,6.3vw,40px)}
  .empty-orbit-line{top:57%}
  .empty-orbit-line.outer{width:142vw;height:58%}
  .empty-orbit-line.middle{width:103vw;height:40%}
  .empty-orbit-line.inner{width:63vw;height:20%}
  .empty-message{top:28.5%;width:94%}
  .empty-message h1{font-size:clamp(21px,6.1vw,38px);line-height:1.08}
  .empty-message p{margin-top:12px;font-size:clamp(12px,3.55vw,22px);line-height:1.35}
  .empty-you-label{top:47.3%;font-size:clamp(20px,5.5vw,34px)}
  .empty-you-line{top:50.2%;height:5.1%}
  .empty-you-line:before{width:6px;height:6px}
  .empty-you-sphere{top:54.2%;width:clamp(50px,13vw,79px);height:clamp(50px,13vw,79px)}
  .empty-cta{top:68.35%;width:69%;height:clamp(56px,14.57vw,88px);padding:0 18px;gap:8px;font-size:clamp(13px,3.65vw,22px)}
  .empty-cta b{font-size:clamp(24px,6vw,36px)}
  .empty-years{left:4.2%;right:4.2%;bottom:2.4%;column-gap:8px;font-size:clamp(10px,3vw,18px)}
}

/* Selected-person calibration. */
.logo>.ui-arrow{width:.92em;height:1em;margin-right:.28em}
.logo>.ui-arrow:after{width:.7em;height:.7em}
.logo-person:before{content:" / ";font-weight:400}
.relation-result .result-person-glow{inset:auto;left:-12vw;bottom:-33vw;width:78vw;height:78vw;border-radius:50%;background:radial-gradient(circle at 48% 45%,rgba(255,255,255,.95) 0 4%,var(--person-accent) 12%,var(--person-color) 27%,color-mix(in srgb,var(--person-color),#15091f 42%) 42%,color-mix(in srgb,var(--person-color),transparent 78%) 53%,transparent 64%);-webkit-filter:blur(67px);filter:blur(67px);opacity:.9;will-change:filter,transform;transform:translateZ(0)}
.header-person-remove{min-height:34px;padding:0 17px;border-color:rgba(255,255,255,.34);background:rgba(10,11,13,.34);color:rgba(250,232,235,.82);font-size:10px;font-weight:300}

/* Mobile product system — rebuilt from the complete tall-screen reference flow. */
@media(max-width:760px){
  :root{--mobile-side:clamp(22px,5.7vw,34px);--mobile-panel:rgba(37,37,40,.91);--mobile-line:rgba(255,255,255,.9)}
  html,body,#app{height:100%;min-height:100%;overflow:hidden}
  .screen{width:100%;height:100dvh;min-height:680px;overflow:hidden}
  .screen:after{content:"";position:absolute;z-index:100;inset:0;pointer-events:none;border:1px solid rgba(251,229,249,.72)}
  .space-starfield{inset:-2%;width:104%;height:104%;opacity:.9}

  /* Shared mobile header and footer language. */
  .orbit-header,.orbit-screen:not(.modal-screen)>.orbit-header,.relation-result-header{left:0!important;right:0!important;top:4.1%!important;height:auto;display:flex;justify-content:center;align-items:flex-start;pointer-events:none}
  .orbit-header .logo,.relation-result-header .logo{pointer-events:auto;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;justify-content:center;column-gap:8px;row-gap:5px;max-width:88vw;color:#f5f4f5;font:400 clamp(24px,6.35vw,38px)/.95 "Zen Dots",sans-serif;text-align:center;white-space:nowrap}
  .orbit-header .logo>.ui-arrow,.relation-result-header .logo>.ui-arrow{grid-column:1;grid-row:1;width:.8em;height:.9em;margin:0}
  .orbit-header .logo>.ui-arrow:after,.relation-result-header .logo>.ui-arrow:after{width:.62em;height:.62em}
  .orbit-header .logo-title,.relation-result-header .logo-title{grid-column:2;grid-row:1}
  .orbit-header .logo:not(:has(.ui-arrow)) .logo-title{grid-column:1/3}
  .orbit-header .logo-person,.relation-result-header .logo-person{grid-column:1/3;grid-row:2;color:rgba(239,236,240,.62);font:200 clamp(11px,3vw,18px)/1 "Unbounded",sans-serif;text-transform:uppercase}
  .logo-person:before{content:""}
  .years,.result-years,.empty-years,.recap-years{left:4.4%!important;right:4.4%!important;bottom:2.35%!important;gap:10px!important;font-size:clamp(9px,2.7vw,15px)!important;color:rgba(231,228,233,.48)!important}
  .years i,.result-years i,.empty-years i{opacity:.7}

  /* Empty universe. */
  .empty-logo{top:4.15%;font-size:clamp(25px,6.5vw,39px)}
  .empty-message{top:28.2%;width:92%}
  .empty-message h1{font-size:clamp(25px,6.6vw,40px);line-height:1.05}
  .empty-message p{margin-top:15px;font-size:clamp(12px,3.45vw,20px);line-height:1.38}
  .empty-orbit-line{top:57.5%}.empty-orbit-line.outer{width:149vw;height:59%}.empty-orbit-line.middle{width:108vw;height:41%}.empty-orbit-line.inner{width:64vw;height:20%}
  .empty-you-label{top:47.3%;font-size:clamp(22px,5.4vw,32px)}
  .empty-you-line{top:50.6%;height:5.1%}.empty-you-sphere{top:54.65%;width:clamp(54px,13vw,78px);height:clamp(54px,13vw,78px)}
  .empty-cta{top:68.45%;width:68%;height:clamp(60px,7.3vh,82px);padding:0 22px;border-width:2px;font-size:clamp(13px,3.45vw,21px);gap:10px}
  .empty-cta .ui-arrow{width:1.1em;height:.75em}

  /* Main orbit: large quiet canvas and one grounded primary action. */
  .orbit-screen:not(.modal-screen)>.orbit-header .orbit-header-actions{position:fixed;z-index:31;left:50%;right:auto;top:auto;bottom:7.4%;transform:translateX(-50%);width:68%;align-items:stretch;pointer-events:auto}
  .orbit-screen:not(.modal-screen)>.orbit-header .capsule{width:100%!important;height:clamp(60px,7.2vh,80px)!important;min-width:0!important;padding:0 20px!important;border-width:2px;font-size:clamp(13px,3.45vw,20px)!important;background:rgba(12,13,15,.26)}
  .orbit-screen:not(.modal-screen)>.orbit-header .capsule:after{content:none}
  .orbit-screen .universe .planet-person{transform:translate(-50%,-50%) scale(.82)}
  .orbit-screen .universe .planet-person span{font-size:clamp(8px,2.35vw,13px)}
  .orbit-screen .universe .you{transform:translate(-50%,-50%) scale(.74)}
  .orbit-screen .orbit-line.o1{width:58vw;height:25vw}.orbit-screen .orbit-line.o2{width:108vw;height:46vw}.orbit-screen .orbit-line.o3{width:180vw;height:78vw}
  .orbit-recap-cta{right:6%!important;bottom:15.2%!important;width:auto!important;height:34px!important;padding:0 2px!important;border:0!important;background:transparent!important;color:rgba(237,234,239,.56)!important;font-size:10px!important;box-shadow:none!important}

  /* Added-person / selected-relationship result. */
  .relation-result .result-person-glow{left:-28vw;bottom:-6vh;width:145vw;height:92vh;opacity:.82;filter:blur(54px)}
  .relation-result .result-vignette{opacity:.38}
  .relation-result .result-anchor{left:11%;top:43.2%;width:36%;height:25px}
  .relation-result .result-anchor span{font-size:clamp(14px,3.7vw,20px)}
  .relation-result .result-status-card{left:28.5%;top:46%;width:66%;min-height:190px;padding:25px 24px 20px;border-radius:34px;background:rgba(28,27,31,.18)}
  .relation-result .result-status-card strong{font-size:clamp(13px,3.5vw,20px)}
  .relation-result .result-status-card strong:nth-of-type(2){margin-top:24px}
  .relation-result .result-status-card small{font-size:clamp(8px,2.25vw,12px)}
  .result-add-change{width:100%;height:34px;margin-top:21px;border-radius:100px;background:rgba(25,22,29,.5);color:rgba(249,247,250,.92);font:300 clamp(9px,2.6vw,14px)/1 "Unbounded Light",sans-serif}
  .result-open-history{align-self:flex-end;margin:12px 2px -4px;color:rgba(245,242,247,.72);font:200 clamp(8px,2.4vw,13px)/1 "Unbounded",sans-serif;display:flex;align-items:center;gap:8px}
  .result-manage-remove{position:absolute;right:0;top:calc(100% + 48px);width:auto;border:0;opacity:.36;font-size:7px}
  .relation-result-header .orbit-header-actions{position:fixed;z-index:31;left:50%;bottom:7.4%;width:68%;transform:translateX(-50%);align-items:stretch;pointer-events:auto}
  .relation-result-header .capsule{width:100%!important;height:clamp(60px,7.2vh,80px);min-width:0!important;border-width:2px;font-size:clamp(13px,3.45vw,20px)!important;background:rgba(15,13,18,.22)}
  .relation-result-header .capsule:after{content:none}

  /* Relationship screens share a centered header and compact tab switcher. */
  .person-view>.orbit-header .orbit-header-actions{position:fixed;z-index:35;left:calc(50% + min(154px,32vw));top:13.7%;width:33px;height:33px;pointer-events:auto}
  .person-view>.orbit-header .capsule{width:33px!important;height:33px!important;min-width:33px!important;min-height:33px!important;padding:0!important;border:1px solid rgba(255,255,255,.82);border-radius:50%;font-size:0!important;background:rgba(15,16,18,.32)}
  .person-view>.orbit-header .capsule:after{content:"+";display:block;font:200 23px/1 "Unbounded",sans-serif;color:#fff}
  .person-view>.orbit-header .header-person-remove{display:none}
  .person-view .tabs{top:13.65%;left:50%;width:auto;gap:7px;white-space:nowrap}
  .person-view .tabs button{padding:4px 0 7px;font-size:clamp(14px,4.1vw,23px)}
  .person-view .tabs span{font-size:clamp(15px,4vw,22px)}

  /* Vertical relationship history. */
  .person-view .violet-horizon{bottom:-10%;width:155vw;height:77%;opacity:.9;filter:blur(13px)}
  .history-map{inset:18.3% 0 3.7%;overflow:hidden}
  .history-map .relation-arc{left:50%;top:54%;width:178vw;height:76vw;border-width:1px}
  .history-body{z-index:9;left:50%!important;right:auto!important;transform:translateX(-50%);font-size:clamp(9px,2.6vw,14px)}
  .history-body.you-body{top:4%}.history-body.ann-body{top:auto;bottom:5%}
  .history-body.you-body i{width:39px;height:39px}.history-body.ann-body i{width:62px;height:62px}
  .history-map .distance-card{display:none}
  .history-map .timeline{left:50%;right:auto;top:19%;bottom:16%;width:88%;transform:translateX(-50%);display:flex;flex-direction:column;overflow:visible;padding:0}
  .history-map .timeline:before{content:"";position:absolute;left:50%;top:-3%;bottom:-3%;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.52) 8%,rgba(255,255,255,.52) 92%,transparent)}
  .history-map .timeline li{flex:1;min-width:0!important;width:100%;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
  .history-map .timeline li:before{left:50%;top:0;height:1px;width:1px;background:transparent}
  .history-map .timeline li:after{top:10%;width:4px;height:4px}
  .history-map .timeline b{position:relative;z-index:2;margin:0 0 7px;padding:0 9px;background:transparent;text-shadow:0 0 12px color-mix(in srgb,var(--relation-color),#15121a 36%);font-size:clamp(14px,4vw,22px);font-weight:300}
  .history-map .timeline span{position:relative;z-index:2;max-width:94%;padding:0 8px;background:transparent;text-shadow:0 0 12px color-mix(in srgb,var(--relation-color),#15121a 36%);font-size:clamp(10px,3.2vw,17px);line-height:1.18}
  .history-map .timeline small{position:relative;z-index:2;margin-top:6px;padding:0 8px;background:transparent;text-shadow:0 0 10px color-mix(in srgb,var(--relation-color),#15121a 36%);font-size:clamp(8px,2.5vw,13px)}

  /* Moments: a full-height orbital archive with readable artifacts. */
  .moments-view .tabs{top:13.65%}.moments-meta{top:18.4%;font-size:clamp(7px,2vw,10px)}
  .moments-map{inset:21.2% 0 3.5%}
  .moments-view .ann-core{top:44%;font-size:clamp(9px,2.6vw,14px)}
  .moments-view .ann-core i{width:54px;height:54px}
  .moments-view .space-memory[data-moment-node]{max-width:35vw;transform:translate(-50%,-50%) scale(.78)!important}
  .moments-view .space-memory.kind-photo{width:min(var(--memory-photo-width,150px),34vw)!important}
  .moments-view .space-memory small,.moments-view .space-memory p{font-size:clamp(6px,1.85vw,9px)}
  .moments-view .memory-note{min-height:66px;padding:13px 14px;border-radius:20px}.moments-view .memory-note q{font-size:clamp(7px,2vw,10px)}
  .moments-view .memory-place{min-height:70px;padding:13px;border-radius:22px}.moments-view .memory-audio{height:58px}

  /* One modal frame for all onboarding, change and moment flows. */
  .modal-screen .modal-orbit-backdrop{filter:brightness(.52);opacity:.9}
  .modal-screen .modal-orbit-backdrop>.orbit-header .orbit-header-actions{display:none}
  .modal-screen .modal-glow{inset:12% -15% 8%;width:auto!important;height:auto!important;filter:blur(34px);background:radial-gradient(ellipse,rgba(255,255,255,.2),rgba(184,130,218,.18) 45%,transparent 72%)}
  .orbit-modal,.person-flow .orbit-modal,.change-flow .orbit-modal,.moment-flow .orbit-modal{left:50%!important;top:50%!important;width:calc(100% - 48px)!important;height:min(650px,62.5vh)!important;min-height:560px!important;max-width:650px!important;max-height:calc(100dvh - 190px)!important;padding:0!important;border:1.5px solid var(--mobile-line)!important;border-radius:clamp(38px,10vw,58px)!important;background:var(--mobile-panel)!important;box-shadow:0 0 20px rgba(255,255,255,.55),0 0 60px rgba(197,145,225,.34)!important;transform:translate(-50%,-50%)!important;overflow:hidden!important}
  .orbit-modal .counter,.person-flow .counter,.change-flow .counter,.moment-flow .counter{right:7%!important;top:5.2%!important;font:300 clamp(16px,4.4vw,24px)/1 "Unbounded Light",sans-serif!important}
  .orbit-modal .modal-close{display:none!important}
  .orbit-modal .modal-content{position:absolute!important;inset:0!important;padding:0!important;text-align:center!important}
  .orbit-modal .modal-content h2,.person-flow .modal-content h2,.change-flow .modal-content h2,.moment-flow .modal-content h2{left:50%!important;top:10.5%!important;width:88%!important;margin:0!important;transform:translateX(-50%)!important;font:400 clamp(22px,5.9vw,35px)/1.08 "Zen Dots",sans-serif!important;text-transform:uppercase}
  .orbit-modal .modal-content>p,.person-flow .modal-content>p,.change-flow .modal-content>p,.moment-flow .modal-content>p{left:50%!important;top:24%!important;width:86%!important;margin:0!important;transform:translateX(-50%)!important;font:300 clamp(11px,3.15vw,17px)/1.32 "Unbounded Light",sans-serif!important;color:rgba(231,228,233,.48)!important}
  .orbit-modal footer,.person-flow .orbit-modal footer,.change-flow .orbit-modal footer,.moment-flow .orbit-modal footer{left:5%!important;right:5%!important;bottom:6.3%!important;display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:12px!important;align-items:center!important}
  .orbit-modal footer .capsule,.person-flow .orbit-modal footer .capsule,.change-flow .orbit-modal footer .capsule,.moment-flow .orbit-modal footer .capsule{width:100%!important;min-width:0!important;height:clamp(60px,7.2vh,78px)!important;min-height:0!important;margin:0!important;padding:0 10px!important;border:2px solid rgba(255,255,255,.94)!important;border-radius:100px!important;font-size:clamp(11px,3.15vw,17px)!important;background:rgba(12,13,15,.42)!important;gap:8px!important}
  .orbit-modal footer .secondary{background:transparent!important}
  .orbit-modal footer .secondary:empty{visibility:hidden!important}

  /* Six-step person flow. */
  .person-flow.step-0 .line-input{left:50%!important;top:45%!important;width:86%!important;height:18%!important;transform:translateX(-50%)!important;border-radius:0 0 28px 28px!important}
  .person-flow.step-0 .line-input span{font-size:10px!important}.person-flow.step-0 .line-input input{font-size:clamp(13px,3.7vw,20px)!important}
  .person-flow.step-1 .roles{left:50%!important;top:34%!important;bottom:auto!important;width:88%!important;height:auto!important;transform:translateX(-50%)!important;grid-template-columns:1fr 1fr!important;grid-template-rows:repeat(4,46px)!important;align-content:start!important;gap:10px 12px!important}
  .person-flow.step-1 .roles .pill-choice{height:46px!important;padding:0 9px!important;font-size:clamp(9px,2.6vw,14px)!important}.person-flow.step-1 .roles .pill-choice:last-child{grid-column:1!important}
  .person-flow.step-2 .modal-content>p{top:45%!important;font-size:clamp(9px,2.5vw,13px)!important}
  .person-flow.step-2 .year-scale{left:0!important;top:52%!important;width:100%!important;height:86px!important;transform:none!important;grid-template-columns:repeat(57,78px)!important;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)!important}
  .person-flow.step-2 .year-scale:before{top:0}.person-flow.step-2 .year-scale button{display:block!important;min-width:78px!important;height:70px!important;padding-top:28px!important;font-size:clamp(12px,3.4vw,18px)!important}
  .person-flow.step-3 .modal-content>p,.person-flow.step-5 .modal-content>p{top:29%!important}
  .person-flow.step-3 .distance-scene{left:0!important;top:39%!important;width:100%!important;height:24%!important;transform:none!important}
  .person-flow.step-3 .distance-person.you{left:13%!important}.person-flow.step-3 .distance-person.target{left:var(--target-x)!important}
  .person-flow.step-3 .distance-options{left:4%!important;right:4%!important;top:66%!important;width:92%!important;transform:none!important;grid-template-columns:repeat(4,1fr)!important;gap:5px!important}
  .person-flow.step-3 .distance-options .pill-choice{height:30px!important;padding:0 5px!important;font-size:clamp(7px,1.9vw,10px)!important}
  .person-flow.step-4 .trends{left:50%!important;top:34%!important;width:74%!important;transform:translateX(-50%)!important;grid-template-columns:1fr!important;gap:11px!important}
  .person-flow.step-4 .trends .pill-choice{height:48px!important;font-size:clamp(11px,3vw,16px)!important}
  .person-flow.step-5 .custom-color{top:37%!important;font-size:clamp(8px,2.2vw,12px)!important}
  .person-flow.step-5 .color-planets{left:50%!important;top:47%!important;width:76%!important;transform:translateX(-50%)!important;gap:12px!important}
  .person-flow.step-5 .color-planets button{width:58px!important;height:58px!important}.person-flow.step-5 .color-planets button:nth-child(3){width:68px!important;height:68px!important}
  .person-flow.step-5 .color-customizer{left:6%!important;right:6%!important;top:34%!important;bottom:22%!important}

  /* Three-step relationship change flow. */
  .change-flow.step-0 .modal-content>p{top:24%!important}
  .change-flow .change-line-input{left:50%!important;top:43%!important;width:86%!important;height:18%!important;transform:translateX(-50%)!important;border-radius:0 0 28px 28px!important}
  .change-flow .change-line-input input{font-size:clamp(13px,3.8vw,20px)!important}.change-flow .change-line-input span{font-size:10px!important}
  .change-flow.step-1 .change-types{left:50%!important;top:35%!important;width:86%!important;transform:translateX(-50%)!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
  .change-flow.step-1 .change-types .pill-choice{height:48px!important;padding:0 9px!important;font-size:clamp(8px,2.45vw,13px)!important}
  .change-flow.step-2 .change-line-input.detail{top:43%!important}

  /* Four-step moment flow. */
  .moment-flow.step-0 .moments-options{left:50%!important;top:35%!important;width:86%!important;transform:translateX(-50%)!important;grid-template-columns:1fr 1fr!important;gap:11px 14px!important}
  .moment-flow.step-0 .moments-options .pill-choice{height:47px!important;font-size:clamp(9px,2.65vw,14px)!important}
  .moment-flow.step-1 .modal-content>p{top:24%!important}
  .moment-flow .moment-media-stage,.moment-flow .audio-stage{left:50%!important;top:29%!important;width:84%!important;height:41%!important;transform:translateX(-50%)!important;gap:15px!important}
  .moment-flow .moment-upload-card,.moment-flow .audio-stage .music-card{width:45%!important;height:auto!important;max-width:220px!important;max-height:220px!important;aspect-ratio:1/1!important;border-radius:30px!important}
  .moment-flow .moment-upload-action{width:51%!important}.moment-flow .moment-file-button{height:42px!important;font-size:clamp(8px,2.3vw,12px)!important}
  .moment-flow .has-media{justify-content:center!important}.moment-flow .has-media .moment-upload-card{width:auto!important;height:100%!important;max-width:75%!important;aspect-ratio:var(--media-aspect,.8)!important}.moment-flow .moment-replace{bottom:-20px!important}
  .moment-kind-input{left:50%!important;top:36%!important;width:84%!important;height:25%!important;transform:translateX(-50%)!important}.moment-kind-input textarea{height:100%!important;font-size:clamp(12px,3.4vw,18px)!important}
  .moment-flow.step-2 .moment-form{left:5%!important;right:5%!important;top:32%!important;bottom:24%!important;width:90%!important;height:auto!important;transform:none!important;grid-template-rows:repeat(3,1fr)!important}
  .moment-flow.step-2 .moment-form label{height:auto!important;grid-template-rows:19px 1fr!important}.moment-flow.step-2 .moment-form input{height:100%!important;font-size:clamp(11px,3vw,16px)!important}.moment-flow.step-2 .moment-form label span{height:19px!important;font-size:clamp(7px,2vw,10px)!important}
  .moment-flow.step-3 .final-memory{left:5%!important;right:5%!important;top:28%!important;bottom:24%!important;width:90%!important;height:auto!important;transform:none!important}.moment-flow.step-3 .moment-preview-media{height:min(205px,25vh)!important;max-width:76%!important;border-radius:29px!important}.moment-flow.step-3 .moment-preview-text,.moment-flow.step-3 .moment-preview-audio{width:82%!important;min-height:135px!important}
  .moment-flow .moment-error,.change-flow .change-date-error{font-size:9px!important}

  /* Year recap and closest orbit. */
  .recap-header{left:0!important;right:0!important;top:4.2%!important;justify-content:center}.recap-header .logo{font-size:clamp(24px,6.3vw,38px)!important}.recap-header .capsule{display:none}
  .recap-year .recap-sun{top:49%;width:160vw;height:116vh;filter:blur(32px)}
  .recap-year .recap-copy{top:51%;width:84%}.recap-copy small{font-size:clamp(7px,2vw,10px)}.recap-copy h1{font-size:clamp(22px,6vw,34px)}.recap-copy p{margin:22px 0 25px;font-size:clamp(8px,2.2vw,12px)}.recap-copy strong{font-size:clamp(30px,8vw,46px)}.recap-copy b{margin-top:16px;font-size:clamp(9px,2.6vw,14px)}
  .recap-year .planet-person{opacity:.24;transform:translate(-50%,-50%) scale(.54)}
  .recap-next{left:50%!important;right:auto!important;bottom:7.3%!important;width:68%!important;height:62px!important;transform:translateX(-50%);font-size:clamp(11px,3vw,16px)!important;background:rgba(18,18,18,.3)!important}
  .closest-recap .recap-header .logo>.ui-arrow{width:.75em;height:.8em}
  .closest-recap .closest-light{top:50%;width:135vw;height:110vh;filter:blur(46px);opacity:.78}
  .closest-recap .closest-orbit{top:51%}.closest-recap .co1{width:58vw;height:28vw}.closest-recap .co2{width:112vw;height:54vw}.closest-recap .co3{width:190vw;height:94vw}
  .closest-recap .planet-person{transform:translate(-50%,-50%) scale(.78)}
  .closest-recap .recap-you{transform:translate(-50%,-50%) scale(.68)}
  .closest-title{left:50%;top:auto!important;bottom:16.5%;width:72%;height:54px;padding:0 18px;border:1px solid rgba(255,255,255,.76);border-radius:100px;display:flex;align-items:center;justify-content:center;background:rgba(20,20,18,.18)}
  .closest-title h1{font:300 clamp(9px,2.7vw,14px)/1.25 "Unbounded Light",sans-serif!important}.closest-title h1 br{display:none}

  /* Auth and destructive confirmation also belong to the same mobile family. */
  .auth-card{width:calc(100% - 48px);height:min(610px,68vh);padding:36px 28px;border-radius:42px}.auth-card h2{font-size:clamp(24px,6vw,34px)}.auth-card p{font-size:clamp(9px,2.5vw,13px)}
  .delete-person-modal{width:calc(100% - 48px);height:520px;padding:38px 24px 30px;border-radius:42px}.delete-person-modal h2{font-size:clamp(22px,5.7vw,32px)}.delete-person-modal footer{width:100%;gap:10px}.delete-person-modal .capsule{min-width:0;width:50%;padding:0 10px;font-size:10px}
}

/* Exact mobile scale calibration from the supplied 484–580 px reference frames. */
@media(max-width:760px){
  .orbit-modal,.person-flow .orbit-modal,.change-flow .orbit-modal,.moment-flow .orbit-modal{
    width:90.5vw!important;
    height:clamp(490px,58dvh,650px)!important;
    min-height:0!important;
    max-height:calc(100dvh - 150px)!important;
    border-radius:clamp(38px,10vw,54px)!important;
  }
  .orbit-modal .modal-content h2,.person-flow .modal-content h2,.change-flow .modal-content h2,.moment-flow .modal-content h2{
    width:86%!important;
    font-size:clamp(23px,5.8vw,32px)!important;
    line-height:1.06!important;
  }
  .orbit-modal .modal-content>p,.person-flow .modal-content>p,.change-flow .modal-content>p,.moment-flow .modal-content>p{
    font-size:clamp(12px,3.25vw,17px)!important;
    line-height:1.28!important;
  }
  .orbit-modal footer,.person-flow .orbit-modal footer,.change-flow .orbit-modal footer,.moment-flow .orbit-modal footer{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    left:5.5%!important;
    right:5.5%!important;
    gap:12px!important;
  }
  .orbit-modal footer .capsule,.person-flow .orbit-modal footer .capsule,.change-flow .orbit-modal footer .capsule,.moment-flow .orbit-modal footer .capsule{
    height:clamp(62px,7vh,74px)!important;
    padding:0 12px!important;
    font-size:clamp(13px,3.35vw,17px)!important;
    letter-spacing:0!important;
    gap:7px!important;
  }
  .orbit-modal footer .ui-arrow{width:.92em;height:.68em}

  .person-flow.step-1 .roles{width:86%!important;grid-template-rows:repeat(4,47px)!important;gap:10px 12px!important}
  .person-flow.step-1 .roles .pill-choice{height:47px!important;padding:0 11px!important;font-size:clamp(12px,3vw,16px)!important;line-height:1.08!important;white-space:normal!important}
  .person-flow.step-3 .distance-options .pill-choice{height:31px!important;padding:0 4px!important;font-size:clamp(9px,2.2vw,12px)!important;line-height:1!important;white-space:normal!important}
  .person-flow.step-4 .trends{width:78%!important;gap:12px!important}
  .person-flow.step-4 .trends .pill-choice{height:50px!important;font-size:clamp(14px,3.45vw,18px)!important;white-space:normal!important}
  .person-flow.step-5 .custom-color{font-size:clamp(10px,2.55vw,13px)!important}

  .change-flow.step-1 .change-types{width:86%!important;gap:11px 13px!important}
  .change-flow.step-1 .change-types .pill-choice{height:48px!important;padding:0 10px!important;font-size:clamp(11px,2.8vw,14px)!important;line-height:1.14!important;white-space:normal!important}
  .moment-flow.step-0 .moments-options{width:86%!important;gap:11px 14px!important}
  .moment-flow.step-0 .moments-options .pill-choice{height:47px!important;padding:0 10px!important;font-size:clamp(12px,3vw,15px)!important;white-space:normal!important}

  .person-flow.step-0 .line-input span,.change-flow .change-line-input span{font-size:clamp(10px,2.5vw,13px)!important}
  .person-flow.step-0 .line-input input,.change-flow .change-line-input input{font-size:clamp(14px,3.7vw,19px)!important}
  .moment-flow.step-2 .moment-form label span{font-size:clamp(9px,2.25vw,12px)!important}
  .moment-flow.step-2 .moment-form input{font-size:clamp(12px,3.1vw,16px)!important}
  .moment-file-button{font-size:clamp(11px,2.8vw,14px)!important}

  .relation-result .result-status-card{width:68%;min-height:clamp(174px,35vw,205px);padding:24px 23px 19px}
  .relation-result .result-status-card strong{font-size:clamp(15px,3.7vw,20px)}
  .relation-result .result-status-card small{font-size:clamp(10px,2.45vw,13px)}
  .result-add-change{height:38px;font-size:clamp(11px,2.8vw,14px)}
  .result-open-history{font-size:clamp(10px,2.5vw,13px)}

  .moments-view .space-memory[data-moment-node]{max-width:40vw;transform:translate(-50%,-50%)!important}
  .moments-view .space-memory.kind-photo{width:min(var(--memory-photo-width,172px),40vw)!important}
  .moments-view .memory-note{min-width:128px;min-height:72px;padding:15px 16px}
  .moments-view .memory-note q{font-size:clamp(9px,2.25vw,12px)}
  .moments-view .space-memory small,.moments-view .space-memory p{font-size:clamp(8px,2.05vw,11px)}
  .moments-view .memory-place{min-width:126px;min-height:76px}.moments-view .memory-place span{font-size:clamp(9px,2.2vw,12px)}
  .moments-view .memory-audio{min-width:130px;height:64px}

  .tabs button{font-size:clamp(15px,4vw,22px)}
  .moments-meta{font-size:clamp(9px,2.2vw,12px)}
  .history-map .timeline b{font-size:clamp(16px,4.25vw,23px)}
  .history-map .timeline span{font-size:clamp(12px,3.2vw,17px)}
  .history-map .timeline small{font-size:clamp(10px,2.55vw,13px)}
}
