:root{--space-deep: #070b1e;--space-mid: #101838;--space-card: #18224a;--space-line: #2c3a72;--star: #f7f4ea;--star-dim: #a9b3d6;--comet: #ffc94d;--planet: #6ee7d0;--alert: #ff7a7a;--radius: 18px;--touch: 48px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(1px 1px at 12% 22%,var(--star) 50%,transparent 50%),radial-gradient(1px 1px at 78% 14%,var(--star) 50%,transparent 50%),radial-gradient(2px 2px at 34% 68%,var(--star-dim) 50%,transparent 50%),radial-gradient(1px 1px at 88% 74%,var(--star) 50%,transparent 50%),radial-gradient(1px 1px at 56% 38%,var(--star-dim) 50%,transparent 50%),linear-gradient(180deg,var(--space-deep) 0%,var(--space-mid) 100%);background-attachment:fixed;color:var(--star);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;font-size:17px;line-height:1.5;-webkit-text-size-adjust:100%}.screen{margin:0 auto;max-width:34rem;min-height:100vh;padding:max(1.5rem,env(safe-area-inset-top)) 1.25rem max(1.5rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1.5rem}.screen__header{text-align:center}.screen__title{margin:0;font-size:clamp(1.9rem,7vw,2.6rem);letter-spacing:.01em}.screen__tagline{margin:.35rem 0 0;color:var(--comet);font-size:1.05rem}.screen__footer{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.screen__footer--centered{justify-content:center}.screen--centered{align-items:center;justify-content:center}.screen--admin .screen__title{font-size:1.5rem;color:var(--star-dim)}.card{background:var(--space-card);border:1px solid var(--space-line);border-radius:var(--radius);padding:1.25rem}.card__title{margin:0 0 .5rem;font-size:1.3rem}.card__text{margin:0 0 .5rem}.card__text:last-child{margin-bottom:0}.card__text--muted{color:var(--star-dim)}.form__label{display:block;margin:0 0 .4rem;font-size:1rem;font-weight:600;color:var(--star-dim)}.form__label+.form__input,.form__label+.nip{margin-bottom:1.25rem}.form__input{width:100%;min-height:var(--touch);padding:.6rem .9rem;border:2px solid var(--space-line);border-radius:12px;background:var(--space-mid);color:var(--star);font:inherit;font-size:1.15rem}.form__input:focus{border-color:var(--comet);outline:none}.form__saved{margin:0 0 1rem;padding:.6rem .8rem;border-radius:10px;background:#6ee7d01f;color:var(--planet);font-size:1rem}.form__error{margin:0 0 1rem;padding:.6rem .8rem;border-radius:10px;background:#ff7a7a1f;color:var(--alert);font-size:1rem}.form__hint{margin-top:.9rem;font-size:.9rem}.form__fieldset{margin:0 0 1rem;padding:.8rem 1rem .2rem;border:1px solid var(--space-line);border-radius:12px}.form__legend{padding:0 .4rem;color:var(--star-dim);font-size:.9rem}.form__check-detail{opacity:.75;font-size:.9rem}.form__warning{margin:.2rem 0 .8rem;padding:.6rem .8rem;border-radius:10px;background:#ffc94d1f;color:var(--comet);font-size:.9rem;line-height:1.4}.nip{display:flex;gap:.6rem}.nip__box{flex:1 1 0;min-width:0;height:4rem;border:2px solid var(--space-line);border-radius:14px;background:var(--space-mid);color:var(--star);font:inherit;font-size:2rem;font-weight:700;text-align:center;caret-color:var(--comet)}.nip__box:focus{border-color:var(--comet);outline:none}.button{min-height:var(--touch);padding:.7rem 1.4rem;border:2px solid transparent;border-radius:999px;font:inherit;font-size:1.1rem;font-weight:600;cursor:pointer}.button--primary{background:var(--comet);color:var(--space-deep)}.button--ghost{background:transparent;border-color:var(--space-line);color:var(--star-dim)}.button--full{width:100%}.button:disabled{opacity:.45;cursor:not-allowed}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.button-row .button{flex:1 1 10rem}.button--small{min-height:2.4rem;padding:.3rem .9rem;border-color:var(--space-line);background:transparent;color:var(--star-dim);font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center}.button--danger{color:var(--alert);border-color:#ff7a7a66}.screen--wide{max-width:62rem}.admin{display:flex;flex-direction:column;gap:1.5rem}.admin__context{margin:0;padding:.5rem .9rem;border-left:3px solid var(--comet);border-radius:0 8px 8px 0;background:#ffc94d14;color:var(--star-dim);font-size:.95rem}.panel{border:1px solid var(--space-line);border-radius:var(--radius);padding:1.25rem;background:#18224a80}.panel__title{margin:0 0 .35rem;font-size:1.2rem}.panel__hint{margin:0 0 1rem;color:var(--star-dim);font-size:.92rem}.panel__hint--standalone{padding:1rem 1.25rem;border:1px dashed var(--space-line);border-radius:var(--radius)}.tabs{display:flex;flex-wrap:wrap;gap:.5rem}.tabs--sticky{position:sticky;top:0;z-index:3;margin:-.5rem -.25rem 0;padding:.6rem .25rem;background:linear-gradient(var(--space-deep) 80%,transparent)}.tabs__button{min-height:2.8rem;padding:0 1.1rem;border:1px solid var(--space-line);border-radius:999px;background:transparent;color:var(--star-dim);font:inherit;cursor:pointer}.tabs__button--active{background:var(--space-line);color:var(--star);font-weight:600}.list{margin:0 0 1.25rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.list__item{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--space-line);border-radius:12px;background:var(--space-mid)}.list__item--active{border-color:var(--comet)}.list__main{flex:1 1 12rem;display:flex;flex-direction:column;gap:.15rem;min-width:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}.list__main--static{cursor:default}.list__name{font-weight:600}.list__icon{margin-right:.4rem}.list__meta{color:var(--star-dim);font-size:.85rem}.list__actions{display:flex;flex-wrap:wrap;gap:.4rem}.list__empty{padding:.9rem;border:1px dashed var(--space-line);border-radius:12px;color:var(--star-dim);font-size:.92rem}.thumb{width:3.5rem;height:3.5rem;border-radius:10px;object-fit:cover;background:var(--space-deep)}.thumb--empty{border:1px dashed var(--space-line)}.code-badge{padding:.3rem .7rem;border-radius:8px;background:var(--comet);color:var(--space-deep);font-size:1.1rem;font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums}.form{padding-top:1rem;border-top:1px solid var(--space-line)}.form__title{margin:0 0 .9rem;font-size:1rem;color:var(--star-dim)}.form__row{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.form__col{flex:1 1 12rem;min-width:0}.form__check{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:var(--star-dim)}.form__input--area{resize:vertical;font-size:1rem}.texts__field{position:relative}.texts__reset{margin:-.6rem 0 1rem}.i18n-fields{margin:0 0 1rem;padding:0;border:none}.i18n-fields__grid{display:flex;flex-wrap:wrap;gap:1rem}.i18n-fields__cell{flex:1 1 14rem;min-width:0}.i18n-fields__lang{display:block;margin-bottom:.3rem;font-size:.85rem;color:var(--star-dim)}.i18n-fields__required{color:var(--comet)}.i18n-fields__optional{opacity:.7}.screen--game{gap:1rem}.hud{position:sticky;top:0;z-index:2;margin:-.5rem -.25rem 0;padding:.75rem .25rem .6rem;background:linear-gradient(var(--space-deep) 75%,transparent)}.hud__row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.hud__title{flex:1 1 auto;min-width:0;margin:0;color:var(--comet);font-size:clamp(.85rem,3.2vw,1.05rem);font-weight:700;text-align:center;line-height:1.2}.hud__count{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.timer{color:var(--comet);font-size:1.2rem;font-weight:600;font-variant-numeric:tabular-nums}.progress{height:.7rem;border-radius:999px;background:var(--space-card);overflow:hidden}.progress__bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--planet),var(--comet));transition:width .35s ease}.objects{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}.objects>li{display:flex}.object{width:100%;height:100%;padding:.6rem .5rem .75rem;border:2px solid var(--space-line);border-radius:18px;background:var(--space-card);color:var(--star);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;touch-action:manipulation;-webkit-user-select:none;user-select:none}.object__image{position:relative;width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.object__image img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s ease}.object__name{margin-top:auto;font-size:1.05rem;font-weight:600;text-align:center;line-height:1.2}.object--found{border-color:var(--planet);background:#6ee7d01f}.object--found .object__image img{transform:scale(.9);opacity:.75}.object__stamp{position:absolute;right:.15rem;bottom:.15rem;width:2rem;height:2rem;border-radius:50%;background:var(--planet);color:var(--space-deep);font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center}@keyframes stamp{0%{transform:scale(1)}35%{transform:scale(1.14)}to{transform:scale(1)}}.object--stamping{animation:stamp .45s ease}.game__actions{margin-top:auto;padding-top:.5rem}.game__nudge{margin:0 0 .6rem;color:var(--planet);text-align:center;font-weight:600}.button--big{min-height:3.6rem;font-size:1.25rem}.card--summary{text-align:center}.pairing__instruction{margin:0;padding:.7rem .9rem;border-radius:12px;background:var(--space-card);color:var(--comet);font-size:1.1rem;font-weight:600;text-align:center}.pairing__row{margin:0;padding:.25rem .25rem .5rem;list-style:none;display:flex;gap:.7rem;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:auto;scrollbar-color:var(--comet) var(--space-card)}.pairing__row::-webkit-scrollbar{height:1.5rem}.pairing__row::-webkit-scrollbar-track{border-radius:999px;background:var(--space-card)}.pairing__row::-webkit-scrollbar-thumb{border-radius:999px;background:var(--comet);border:.35rem solid transparent;background-clip:content-box}.pairing__row>li{flex:0 0 auto;display:flex;scroll-snap-align:center}.pairing__item{width:calc((100vw - 3.9rem) / 3);max-width:calc((34rem - 3.9rem) / 3);height:100%;padding:.5rem .4rem .6rem;border:2px solid var(--space-line);border-radius:16px;background:var(--space-card);color:var(--star);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.4rem;touch-action:manipulation;-webkit-user-select:none;user-select:none}.pairing__image{position:relative;width:100%;aspect-ratio:791 / 1024;display:flex;align-items:center;justify-content:center}.pairing__row--planets .pairing__image{aspect-ratio:1}.pairing__image img{max-width:100%;max-height:100%;object-fit:contain}.pairing__name{font-size:.9rem;font-weight:600;text-align:center;line-height:1.15}.pairing__item--chosen{border-color:var(--comet);background:#ffc94d29;transform:translateY(-3px)}.pairing__item--solved{border-color:var(--planet);background:#6ee7d01a;opacity:.75;cursor:default}.pairing__item:disabled:not(.pairing__item--solved){opacity:.55;cursor:default}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12) rotate(-3deg)}to{transform:scale(1)}}.pairing__item--pop{animation:pop .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pairing__item--miss{animation:shake .32s ease}.missions{display:flex;flex-direction:column;gap:1rem}.mission-card{padding:1.25rem 1rem;border:2px solid var(--space-line);border-radius:var(--radius);background:var(--space-card);text-align:center;display:flex;flex-direction:column;gap:.75rem}.mission-card__badge{margin:0;font-size:2.4rem;line-height:1}.mission-card__title{margin:0;font-size:1.3rem}.button--done{background:#6ee7d029;border-color:var(--planet);color:var(--planet)}.mission-card__result{padding:.9rem;border:1px solid var(--planet);border-radius:12px;background:#6ee7d014}.mission-card__percent{margin:0 0 .3rem;color:var(--planet);font-size:2.4rem;font-weight:700;line-height:1}.mission-card__stats{margin:0;font-size:1rem;line-height:1.5}.mission-card__body{margin:0;padding:.8rem .9rem;border-radius:12px;background:var(--space-mid);font-size:1rem;line-height:1.55;text-align:left;white-space:pre-line}.card--welcome{text-align:center}.welcome__title{margin:0 0 1rem;font-size:clamp(1.8rem,8vw,2.4rem)}.welcome__body{margin:0 0 1.5rem;font-size:1.1rem;line-height:1.6;white-space:pre-line}.welcome__missions{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;text-align:left}.welcome__mission{padding:.9rem 1rem;border:1px solid var(--space-line);border-radius:14px;background:var(--space-mid)}.welcome__mission-title{margin:0 0 .35rem;font-size:1.05rem;color:var(--comet)}.welcome__mission-body{margin:0;font-size:.98rem;line-height:1.5;white-space:pre-line}.summary__badge{margin:0 0 .25rem;font-size:3rem;line-height:1}.summary__line{margin:0 0 1.25rem;font-size:1.1rem;line-height:1.7}.summary__percent{color:var(--comet);font-size:2rem;font-weight:700}.library{margin:0 0 1rem;padding:0;border:none}.library__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:.6rem}.library__item{position:relative;aspect-ratio:1;padding:.4rem;border:2px solid var(--space-line);border-radius:12px;background:#f7f4ea14;cursor:pointer}.library__item img{width:100%;height:100%;object-fit:contain}.library__item--chosen{border-color:var(--comet);background:#ffc94d26}.library__item--used img{opacity:.35}.library__badge{position:absolute;left:50%;bottom:.35rem;transform:translate(-50%);padding:.1rem .4rem;border-radius:6px;background:var(--space-line);color:var(--star-dim);font-size:.68rem;white-space:nowrap}.lang-switch{display:flex;gap:.5rem}.lang-switch__button{min-height:var(--touch);min-width:var(--touch);padding:0 1.1rem;border:1px solid var(--space-line);border-radius:999px;background:transparent;color:var(--star-dim);font:inherit;font-size:1rem;cursor:pointer}.lang-switch__button[aria-current=true]{background:var(--comet);border-color:var(--comet);color:var(--space-deep);font-weight:600}.link{min-height:var(--touch);display:inline-flex;align-items:center;color:var(--planet)}:focus-visible{outline:3px solid var(--comet);outline-offset:3px}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.contest{margin:1.2rem 0;padding:1.1rem;border:1px solid var(--space-line);border-radius:var(--radius);background:var(--space-card);text-align:center}.contest--locked{opacity:.55}.contest--done{border-color:var(--planet)}.contest__badge{margin:0;font-size:2rem;line-height:1}.contest__title{margin:.4rem 0 .6rem;font-size:1.2rem}.contest__body{margin:0 0 1rem;color:var(--star-dim);line-height:1.5;white-space:pre-wrap;text-align:left}.contest .form{text-align:left}.contest__consent{align-items:flex-start;line-height:1.4}.contest__consent input[type=checkbox]{width:1.4rem;height:1.4rem;flex:0 0 auto;margin-top:.1rem}.contest__link{color:var(--comet)}.contest__hint{margin-top:.4rem;color:var(--alert)}.page--text{max-width:44rem;margin:0 auto;padding:1.5rem 1.1rem 3rem}.prose{line-height:1.6}.prose h1{font-size:1.5rem}.prose h2{margin-top:2rem;font-size:1.15rem;color:var(--comet)}.prose ul{padding-left:1.2rem}.prose li{margin-bottom:.4rem}.prose a{color:var(--comet)}.prose__footer{margin-top:1.6rem;color:var(--star-dim);font-size:.85rem}.prose__version{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.7}.panel__danger{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--space-line)}.table-wrap{overflow-x:auto;margin-top:1rem}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{padding:.55rem .7rem;border-bottom:1px solid var(--space-line);text-align:left;vertical-align:middle}.table th{color:var(--star-dim);font-size:.85rem;font-weight:600;white-space:nowrap}.table__email{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;word-break:break-all}.table__tag{margin-left:.5rem;padding:.1rem .45rem;border-radius:999px;background:#a9b3d626;color:var(--star-dim);font-size:.75rem;white-space:nowrap}.table__actions-head,.table__actions{text-align:right;white-space:nowrap}.icon-button{min-width:2.2rem;min-height:2.2rem;margin-left:.25rem;padding:.2rem .45rem;border:1px solid var(--space-line);border-radius:9px;background:transparent;color:var(--star);font-size:1rem;line-height:1;cursor:pointer}.icon-button:hover:not(:disabled){border-color:var(--comet)}.icon-button--danger:hover:not(:disabled){border-color:var(--alert)}.icon-button:disabled{opacity:.3;cursor:not-allowed}.button-row--top{margin-top:.5rem}.dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#070b1ebf}.dialog{width:100%;max-width:26rem;max-height:90vh;overflow-y:auto;padding:1.25rem;border:1px solid var(--space-line);border-radius:var(--radius);background:var(--space-mid)}.dialog__title{margin:0 0 .6rem;font-size:1.15rem}
