@font-face{font-family:Astra;src:url('./vendor/NotoSans-Regular.ttf');font-display:swap}
:root{--night:#050913;--paper:#edf3fc;--muted:#a3b1c7;--line:#c9dcff24;--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box}html{color-scheme:dark;background:var(--night)}body{margin:0;min-width:320px;min-height:100svh;position:relative;color:var(--paper);font-family:Astra,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,a,textarea{-webkit-tap-highlight-color:transparent}button,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #d2e5ff;outline-offset:5px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.symbols{position:absolute;width:0;height:0;overflow:hidden}
.cosmos{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none;background:var(--night)}.nebula{position:absolute;inset:0;background:url('./assets/nebula-observatory-v1.jpg') center/cover no-repeat;opacity:.72}#cosmos-canvas{position:absolute;inset:0;width:100%;height:100%}.cosmos-shade{position:absolute;inset:0;background:linear-gradient(0deg,#050913ed,transparent 38%,#05091325 80%,#0509137a),radial-gradient(ellipse at center,#05091332,transparent 70%)}
.masthead{position:absolute;top:0;width:100%;padding:28px 40px;z-index:2;display:flex;justify-content:center}.brand{display:flex;align-items:center;min-height:44px;font-size:12px;letter-spacing:7px;padding-left:7px;color:#dce6f8}
.screen{min-height:100svh}.wish-screen,.report-screen{display:flex;align-items:center;justify-content:center;padding:105px 24px 70px}.wish-content{width:min(460px,100%);animation:arrive .6s var(--ease) both}
.wish-input{position:relative;text-align:left;border:1px solid #d4e1fc38;border-radius:20px;padding:25px;background:linear-gradient(130deg,#bdcffc0c,#607eab07),#0a1026b8;box-shadow:inset 0 1px 0 #e8efff06,0 15px 50px #0002;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:border-color .25s,box-shadow .25s}.wish-input:focus-within{border-color:#c5ddff8c;box-shadow:0 0 0 4px #c3dcff06}
.wish-input label{font-size:13px;color:#c1cde0}.wish-input textarea{display:block;width:100%;resize:none;min-height:125px;border:0;background:transparent;color:#edf3ff;font-size:19px;line-height:1.7;margin-top:20px;padding:0;outline:0}.wish-input textarea::placeholder{color:#7f8fa9}.wish-input textarea:focus-visible{outline:none}
.primary{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;width:100%;min-height:56px;padding:15px 20px;border-radius:14px;background:linear-gradient(105deg,#eff4ff,#cbdcf3 67%,#c3d1ed);color:#13233e;font-size:14px;border:1px solid #edf5ff9c;box-shadow:inset 0 1px 0 #fff8,0 4px 24px #a5c8ff16;transition:transform .2s,filter .2s}.primary:active:not(:disabled){transform:scale(.985)}.primary svg{width:19px;height:19px}#wish-form .primary{margin-top:16px}@media(hover:hover){.primary:hover:not(:disabled){filter:brightness(1.07)}}
.error{color:#f0bbc8;font-size:12px;line-height:1.7;text-align:left}.error:empty{display:none}
.sky-screen{position:fixed;inset:0;height:100dvh;min-height:0;background:#050913;z-index:10;overflow:hidden;isolation:isolate;touch-action:none}#sky-canvas,#camera{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;visibility:hidden}#sky-canvas{touch-action:none;pointer-events:none}.ar-active #camera{visibility:visible}.ar-ready #sky-canvas{visibility:visible;mix-blend-mode:screen}.sky-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#030711af,transparent 28%,transparent 56%,#030711e6)}
.sky-top{position:absolute;top:max(20px,env(safe-area-inset-top));left:22px;right:22px;display:grid;grid-template-columns:46px 1fr 46px;align-items:center;z-index:3}.round-button{width:46px;height:46px;border:1px solid #c3d4ef38;border-radius:50%;background:#0b1323a8;display:grid;place-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.round-button:active{background:#364b6b9e}.round-button svg{width:18px;height:18px}.sky-heading{text-align:center;display:flex;flex-direction:column;gap:7px}.sky-heading>span{font-size:11px;letter-spacing:2px}.sky-heading small{font-size:10px;color:#adbbcf}
.setup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(370px,calc(100% - 48px));text-align:center}.setup h1{font-size:26px;font-weight:400;line-height:1.35;letter-spacing:-.7px;margin:0 0 18px}.setup p{font-size:14px;line-height:1.8;color:#d6e0ef;margin:0 0 18px}.setup .muted{font-size:12px;color:#a3b1c7}.setup .error{color:#f0bbc8;font-size:12px}.setup .primary{margin-top:27px}.setup small{display:block;margin-top:16px;font-size:10px;line-height:1.6;color:#8e9db3}
.calibration{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);width:min(310px,calc(100% - 56px));text-align:center;z-index:4;pointer-events:none;text-shadow:0 2px 18px #000,0 1px 5px #000}.calibration-arrow{width:32px;height:32px;stroke-width:1.5;color:#edf3fc}.calibration p{font-size:14px;line-height:1.8;margin:22px 0 0}.ar-active:not(.ar-ready) .sky-heading{visibility:hidden}
.reticle{width:44px;height:44px;border:1px solid #e2eeff70;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.reticle:after{content:'';position:absolute;left:20px;top:20px;width:2px;height:2px;border-radius:50%;background:#fff}.sending .reticle{box-shadow:0 0 40px #c6deff30;animation:breathe 2s ease-in-out infinite}
.sky-bottom{position:absolute;bottom:max(50px,calc(env(safe-area-inset-bottom) + 30px));left:50%;transform:translateX(-50%);width:min(390px,calc(100% - 40px));z-index:3;text-align:center}.sky-bottom>p{font-size:13px;line-height:1.7;color:#dee8f7;margin:0 0 20px;text-shadow:0 1px 8px #000}.sky-bottom small{display:block;font-size:10px;color:#aebed3;margin-top:12px;min-height:16px}.stop-button{display:block;margin:10px auto 0;background:#172338b3;border:1px solid #c3d4ef38;border-radius:24px;min-height:44px;font-size:12px;color:#d6e1f5;padding:10px 24px}
#progress-wrap{margin:18px 0 6px}progress{width:100%;height:3px;appearance:none;border:0;overflow:hidden;background:#57648040;border-radius:4px}progress::-webkit-progress-bar{background:#57648040}progress::-webkit-progress-value{background:linear-gradient(90deg,#829fc9,#e6f3ff)}progress::-moz-progress-bar{background:#cee5ff}#signal-status{display:block;font:12px ui-monospace,monospace;color:#e4efff;margin-top:14px}.sending #back-button,.sending #recalibrate-button{visibility:hidden}
.screen-mode{background:radial-gradient(ellipse at 50% 38%,#13203888,transparent 62%),#050913}.screen-mode .setup{max-width:350px}.screen-mode #sky-bottom{bottom:max(60px,env(safe-area-inset-bottom))}
#screen-pulse{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;z-index:2;background:#eef6ff;opacity:0;pointer-events:none}.screen-signal #screen-pulse.on{opacity:1;box-shadow:0 0 45px #c6e2ff40}.screen-signal #reticle{visibility:hidden}
.report-content{max-width:420px;width:100%;text-align:center;animation:arrive .6s var(--ease) both}.report-check{width:44px;height:44px;padding:10px;border:1px solid #bfd8fc55;border-radius:50%;color:#dcecff;margin-bottom:20px}.report-content h1{font-size:30px;font-weight:400;letter-spacing:-.8px;margin:0}.report-wish{font-size:17px;line-height:1.8;color:#bfcee3;margin:25px 0 30px;overflow-wrap:anywhere}.report-details{display:flex;justify-content:space-around;margin:0 0 30px;padding:23px 0;gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.report-details>div{flex:1}.report-details>div+div{border-left:1px solid var(--line)}.report-details dt{font-size:10px;color:#95a8c2;margin-bottom:9px}.report-details dd{font-size:13px;color:#e2edfb;margin:0;font-variant-numeric:tabular-nums}.report-content .primary{background:#c5dcff0c;border-color:#c5dcff40;color:#dceaff;box-shadow:none}
dialog{width:min(390px,calc(100% - 40px));background:#111d33;color:var(--paper);border:1px solid #bfd8fc40;border-radius:24px;padding:30px 25px 20px;text-align:center;box-shadow:0 20px 90px #0008}dialog::backdrop{background:#020612d9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}dialog h2{font-size:23px;font-weight:400;line-height:1.4;margin:6px 0 16px}dialog p{font-size:13px;line-height:1.8;color:#bac9df;margin-bottom:25px}.subtle-button{display:block;background:none;color:#aabbda;font-size:12px;min-height:44px;padding:12px 6px;margin:10px auto 0}
body[data-screen=sky]{overflow:hidden}body[data-screen=sky]>.masthead{visibility:hidden}.source-page{max-width:700px;margin:auto;padding:65px 25px;font-size:14px;line-height:1.9}.source-page h1{font-size:34px;font-weight:400;letter-spacing:-1px;margin:30px 0}.source-page a{color:#c8defb;text-decoration:underline;text-underline-offset:4px}.source-page p{color:#b1c2db}
@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{opacity:.65}}
@media(max-width:600px){.masthead{padding:24px}.wish-screen,.report-screen{padding:95px 24px 65px}.wish-input{padding:22px}.wish-input textarea{font-size:18px;min-height:135px}.nebula{inset:0 -20%;background-position:36% center;opacity:.6}.sky-top{left:18px;right:18px}.setup h1{font-size:25px}.report-content h1{font-size:28px}}
@media(max-height:600px){.masthead{padding:8px 24px}.wish-screen,.report-screen{padding-top:70px;padding-bottom:30px}.wish-input textarea{min-height:80px}.setup{top:56%;max-width:430px}.setup h1{margin-top:0;font-size:21px}.setup p{font-size:12px;margin-bottom:9px}.setup .primary{margin-top:16px;min-height:48px}.setup small{margin-top:9px}.calibration{top:47%;padding:16px;max-width:400px}.calibration .calibration-arrow{width:28px;height:28px}.calibration p{font-size:12px;margin:0}.sky-bottom{bottom:36px}.sky-bottom>p{margin-bottom:10px}.sky-bottom small{margin-top:5px}.report-check{margin-bottom:10px}.report-wish{margin:15px 0}.report-details{padding:15px 0;margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body[data-telegram=true] .masthead{padding-top:max(24px,var(--tg-inset-top,0px))}
body[data-telegram=true] .sky-top{top:max(20px,env(safe-area-inset-top),var(--tg-inset-top,0px))}
body[data-telegram=true] .sky-bottom{bottom:max(50px,calc(var(--tg-inset-bottom,0px) + 30px))}

.account-entry{position:absolute;right:24px;top:28px;min-height:44px;padding:10px 0 10px 12px;background:none;color:#b9c9df;font-size:12px}
body[data-screen=account] .account-entry{display:none}.history-note{display:block;color:#97a8bf;text-align:center;font-size:10px;line-height:1.6;margin:16px 10px 0}.save-status{font-size:12px;line-height:1.7;color:#afc3dd;margin:0 0 20px}
.account-screen{padding:125px 24px 50px;background:#05091375}.account-content{width:min(520px,100%);margin:0 auto}.account-top{display:flex;align-items:center;gap:18px}.account-top h1{font-size:26px;font-weight:400;letter-spacing:-.6px;margin:0}.account-name{font-size:12px;color:#b4c5de;margin:20px 0 24px}.account-name:empty{display:none}.account-message{padding:32px 0;text-align:center;color:#d1dced;font-size:15px;line-height:1.8}.account-message .muted{font-size:13px;color:#a4b6d1}.account-message .primary{margin-top:28px}.history-list{display:grid;gap:16px;margin-top:24px}.history-item{padding:22px;border:1px solid #c9dcff24;border-radius:18px;background:#091225cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.history-item-top,.history-item-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;color:#9bafca;font-size:10px;line-height:1.6}.history-status{white-space:nowrap;color:#c0d8e7}.history-status.interrupted{color:#dbb7bc}.history-wish{font-size:16px;line-height:1.75;overflow-wrap:anywhere;margin:18px 0 12px;color:#e2ebf9}.history-delete{background:none;padding:10px 0 10px 10px;min-height:44px;font-size:11px;color:#b6c6dd}.account-privacy{font-size:10px;color:#91a4bf;line-height:1.7;text-align:center;margin:32px 0 0}.account-privacy a{text-decoration:underline;text-underline-offset:3px}#account-unsaved{font-size:12px;padding:15px 0}#account-unsaved p{margin:0}
body[data-telegram=true] .account-entry{top:max(24px,var(--tg-inset-top,0px))}body[data-telegram=true] .account-screen{padding-top:max(125px,calc(var(--tg-inset-top,0px) + 85px));padding-bottom:max(50px,calc(var(--tg-inset-bottom,0px) + 30px))}
@media(max-width:600px){.account-entry{top:24px}.account-screen{padding-top:110px}.history-item{padding:18px}.account-top h1{font-size:24px}}
@media(max-height:600px){.account-entry{top:8px}}

.report-direction{margin:-8px 0 26px;padding:0 12px}.report-direction>span{font-size:10px;color:#95a8c2}.report-direction p{font-size:16px;line-height:1.6;margin:10px 0 0;overflow-wrap:anywhere;color:#dceaff}.history-direction{font-size:12px;line-height:1.7;color:#c0d2eb;margin:0 0 10px;overflow-wrap:anywhere}

.profile-identity{display:flex;align-items:center;gap:22px;margin:34px 0 28px}.profile-avatar{position:relative;flex-shrink:0;display:grid;place-items:center;width:70px;height:70px;border-radius:50%;border:1px solid #c2d9ff50;background:radial-gradient(circle at 35% 25%,#8ea5d530,#13233b44 70%);box-shadow:0 0 36px #93bfff0a;font-size:27px;font-weight:400;color:#dceaff}.profile-avatar:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#cde3ff;right:5px;top:8px;box-shadow:0 0 12px #b4d7ff}.profile-person{min-width:0}.profile-rank{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#b5cbe8;margin:0 0 7px}.profile-person h2{font-size:26px;line-height:1.25;font-weight:400;letter-spacing:-.5px;margin:0;overflow-wrap:anywhere}.profile-handle{font-size:11px;line-height:1.6;color:var(--muted);margin:7px 0 0;overflow-wrap:anywhere}.profile-stats{display:grid;grid-template-columns:1fr 1fr 1.15fr;margin:0;padding:22px 0;border-block:1px solid var(--line);gap:8px}.profile-stats>div{text-align:center;border-right:1px solid var(--line)}.profile-stats>div:last-child{border:0}.profile-stats dd{font-size:23px;line-height:1.3;letter-spacing:-.8px;margin:0;font-variant-numeric:tabular-nums}.profile-stats dt{font-size:10px;color:var(--muted);margin-top:7px}.profile-favorite{font-size:11px;line-height:1.8;color:#b4c6df;margin:14px 0 34px;overflow-wrap:anywhere}.account-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.account-section-heading h2{font-size:17px;font-weight:400;margin:0}.account-section-heading>span{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.achievement{display:flex;flex-direction:column;min-height:155px;padding:16px 14px;border:1px solid #b8cfff20;border-radius:14px;background:#0a132380}.achievement.unlocked{border-color:#b8cfff4a;background:linear-gradient(140deg,#7997bd19,#0d18288c)}.achievement-top{display:flex;justify-content:space-between;gap:6px;font-size:9px;letter-spacing:.2px;color:#9eafc9}.unlocked .achievement-top{color:#c2daf5}.achievement h3{font-size:12px;line-height:1.5;font-weight:400;margin:18px 0 6px;color:#dce7f8}.achievement p{font-size:10px;line-height:1.65;color:#a9bad2;margin:0 0 18px}.achievement progress{display:block;appearance:none;-webkit-appearance:none;width:100%;height:2px;border:0;background:#c2d8ff18;border-radius:2px;margin-top:auto;overflow:hidden}.achievement progress::-webkit-progress-bar{background:#c2d8ff18}.achievement progress::-webkit-progress-value{background:#c1d8f2}.achievement progress::-moz-progress-bar{background:#c1d8f2}.achievement-note{font-size:9px;color:#93a7c4;margin:12px 0 32px}.history-heading{margin-bottom:0}.history-list:empty{margin:0}
@media(max-width:360px){.profile-identity{gap:16px}.profile-avatar{width:60px;height:60px}.profile-person h2{font-size:23px}.profile-stats dd{font-size:20px}.achievement{padding:14px 11px}.achievement h3{font-size:11px}}

.referral-card{position:relative;margin:0 0 32px;padding:22px 20px 18px;border:1px solid #c9dcff30;border-radius:18px;background:radial-gradient(ellipse at 65% 35%,#49628d1f,transparent 65%),#0a1325ba}.referral-card .account-section-heading{margin-bottom:12px}.referral-card .account-section-heading h2{font-size:16px}.referral-copy{font-size:11px;line-height:1.8;color:#b7c7de;margin:0}.referral-sky{width:100%;height:auto;display:block;overflow:visible;margin:8px 0 0}.referral-sky path{stroke:#bed7fc29;stroke-width:.8}.referral-sky circle{fill:#19253d;stroke:#adc9f469;stroke-width:1.2;transition:fill .5s,filter .5s}.referral-sky circle.lit{fill:#e5f0ff;stroke:#e5f0ff;filter:drop-shadow(0 0 5px #b6d5ff)}.referral-progress{font-size:10px;line-height:1.7;text-align:center;margin:0 0 18px;color:#c4d3e9}.referral-rewards{display:flex;gap:7px;justify-content:space-between}.referral-rewards span{padding:6px 7px;border:1px solid #a6bed921;border-radius:7px;color:#9aadca;font-size:9px;white-space:nowrap}.referral-rewards .earned{border-color:#b2d5ff55;background:#a4cfff10;color:#d6e7fc}.referral-pending{font-size:9px;line-height:1.6;color:#a3b5cf;text-align:center;margin:16px 0 22px}.referral-actions .primary{min-height:48px;font-size:12px}.referral-actions .subtle-button{margin:6px auto 0;font-size:11px;min-height:40px;display:block}.referral-status{font-size:11px;color:#c4d7ef;line-height:1.6;margin:8px 0;text-align:center}.referral-status:empty{display:none}.referral-rules{border-top:1px solid #bad2f01c;margin-top:10px;padding-top:12px;font-size:10px;color:#a5b9d3}.referral-rules summary{cursor:pointer;min-height:30px;line-height:30px}.referral-rules p{line-height:1.9;margin:8px 0 2px}.referral-link-wrap{font-size:10px;color:#afc3de;margin:12px 0;display:block}.referral-link-wrap input{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #adc9f43b;border-radius:8px;background:#070f20;color:#dceaff;font-size:12px}.referral-badge{display:inline-block;margin-top:10px;padding:3px 9px;color:#d5e6ff;border:1px solid #b9d5ff46;border-radius:20px;background:#9abfff0c;font-size:9px;letter-spacing:.7px}.referral-welcome{color:#c0d7f3;max-width:300px;margin:16px auto 0}
@media(max-width:360px){.referral-card{padding:20px 15px 16px}.referral-rewards{gap:4px}.referral-rewards span{font-size:8px;padding:6px}}
