:root{--bg: #0b0b0f;--panel: #16171d;--panel-2: #1f2129;--text: #f4f5f7;--muted: #a1a5b0;--accent: #5b8cff;--accent-2: #3a6bff;--danger: #ff5b6e;--radius: 16px;--touch: 56px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{overscroll-behavior:none}.app{max-width:760px;margin:0 auto;min-height:100%;padding:env(safe-area-inset-top) 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.screen{display:flex;flex-direction:column;gap:16px;flex:1;padding-top:12px}.screen--center{justify-content:center;text-align:center;gap:24px}.title{font-size:2rem;margin:0}.subtitle{color:var(--muted);margin:0}.group{background:var(--panel);border-radius:var(--radius);padding:18px}.group__label{margin:0 0 4px;font-size:1.1rem}.group__hint{margin:0 0 14px;color:var(--muted);font-size:.9rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.card{min-height:96px;border:0;border-radius:var(--radius);background:var(--panel-2);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:1rem;cursor:pointer;transition:transform .08s ease,background .2s}.card:active{transform:scale(.97)}.card--single{background:linear-gradient(135deg,#243056,#1b2340)}.card__icon{font-size:1.8rem}.card__title{font-weight:600}.flow__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.flow__title{font-weight:600}.preview{position:relative;width:100%;background:#000;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.preview__video{width:100%;height:100%;object-fit:cover;display:block}.preview__status{position:absolute;color:var(--muted);padding:24px;text-align:center}.preview__overlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;animation:flash .18s ease-out}@keyframes flash{0%{opacity:.9}to{opacity:0}}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:6rem;font-weight:800;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.6)}.rec{position:absolute;left:12px;bottom:12px;right:12px;color:#fff;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.8)}.rec__dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--danger);margin-right:6px;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.3}}.rec__bar{height:6px;background:#ffffff4d;border-radius:3px;margin-top:6px;overflow:hidden}.rec__fill{height:100%;background:var(--danger);transition:width .1s linear}.rec__note{margin-top:6px;color:#8fffa8;font-size:.9rem}.pose-review{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.thumbs{display:flex;gap:8px}.thumb{flex:1;aspect-ratio:1;border-radius:10px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden;border:2px solid transparent}.thumb img{width:100%;height:100%;object-fit:cover}.thumb--active{border-color:var(--accent)}.thumb--filled{color:var(--text)}.btn{min-height:var(--touch);padding:0 20px;border:0;border-radius:12px;background:var(--panel-2);color:var(--text);font-size:1rem;font-weight:600;cursor:pointer}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5}.btn--primary{background:linear-gradient(135deg,var(--accent),var(--accent-2))}.btn--ghost{background:transparent;border:1px solid #2a2d38}.btn--xl{font-size:1.15rem;width:100%}.btn--sm{min-height:40px;font-size:.85rem;padding:0 12px}.actions{display:flex;flex-direction:column;gap:12px;margin-top:auto}.actions--sticky{position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 70%,transparent);padding-top:12px}.actions__row{display:flex;gap:12px}.actions__row .btn{flex:1}.hint{text-align:center;color:var(--muted);margin:0}.hint--muted{font-size:.8rem}.warn{color:#ffd37a;text-align:center;margin:0;font-size:.9rem}.toast{background:var(--panel);border-radius:10px;padding:10px 14px;text-align:center;margin:0}.review{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 620px){.review{grid-template-columns:1fr 1fr;align-items:start}}.review__composite{background:var(--panel);border-radius:var(--radius);padding:12px;min-height:200px;display:flex;align-items:center;justify-content:center}.composite-img{max-width:100%;max-height:60vh;border-radius:8px;box-shadow:0 8px 30px #00000080}.review__building{color:var(--muted)}.review__side h3{margin:4px 0 10px}.review__photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.review__photo{margin:0;display:flex;flex-direction:column;gap:6px}.review__photo img{width:100%;border-radius:8px}.review__video{margin-top:16px}.clip{width:100%;border-radius:8px;background:#000}.upload{border-radius:10px;padding:12px 14px;font-size:.95rem;display:flex;align-items:center;gap:10px}.upload--uploading{background:#1b2340;color:#cdd6ff}.upload--ready{background:#16311f;color:#9affba}.upload--error{background:#3a1b22;color:#ffb3bd}.upload--idle{background:var(--panel);color:var(--muted)}.upload__meta{color:inherit;opacity:.8}.upload__error{display:flex;align-items:center;gap:12px;justify-content:space-between;width:100%;flex-wrap:wrap}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.link-row{width:100%;margin-top:4px}.print-preview{background:var(--panel);border-radius:var(--radius);padding:12px;display:flex;justify-content:center}.print-preview .composite-img{max-height:46vh}.print-config{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.field select,.field input,.field__input{min-height:var(--touch);border-radius:12px;background:var(--panel-2);color:var(--text);border:1px solid #2a2d38;padding:0 12px;font-size:1rem}.field--disabled{opacity:.5}.admin{display:flex;flex-direction:column;gap:16px;padding-top:12px}.admin__bar{display:flex;align-items:center;justify-content:space-between}.admin__bar-actions,.admin__new{display:flex;gap:8px}.admin__new .field__input{flex:1}.booth{background:var(--panel);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.booth__head{display:flex;align-items:center;gap:12px}.booth__name{flex:1;min-height:44px;border-radius:10px;background:var(--panel-2);color:var(--text);border:1px solid #2a2d38;padding:0 12px;font-size:1.1rem;font-weight:600}.booth__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.field--check{flex-direction:row;align-items:center;gap:10px;color:var(--text)}.field--check input{min-height:0;width:20px;height:20px}.booth__meta{display:flex;flex-wrap:wrap;gap:16px;font-size:.85rem;color:var(--muted)}.booth__meta strong{color:var(--text)}.booth__code{background:#1b2340;color:#cdd6ff;border-radius:10px;padding:10px 14px;font-size:.9rem}.booth__code strong{font-size:1.1rem;letter-spacing:.08em}.booth__token{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:400;letter-spacing:normal;word-break:break-all}.booth__code code{background:#ffffff1a;padding:1px 5px;border-radius:4px}.booth__actions{display:flex;flex-wrap:wrap;gap:8px}.badge--online{background:#16311f;color:#9affba}.badge--busy{background:#1b2340;color:#cdd6ff}.badge--offline{background:var(--panel-2);color:var(--muted)}.badge--maintenance{background:#3a2b16;color:#ffd37a}.enroll{display:flex;flex-direction:column;gap:14px;width:100%;max-width:360px}.enroll__code{min-height:var(--touch);border-radius:12px;background:var(--panel-2);color:var(--text);border:1px solid #2a2d38;padding:0 16px;font-size:1.6rem;text-align:center;letter-spacing:.18em;text-transform:uppercase}.history{display:flex;flex-direction:column;gap:12px}.history__row{display:flex;align-items:center;gap:12px;background:var(--panel);border-radius:12px;padding:10px;min-height:76px}.history__thumb{width:54px;height:80px;border-radius:8px;overflow:hidden;background:var(--panel-2);flex:none;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);text-align:center}.history__thumb img{width:100%;height:100%;object-fit:cover}.history__meta{flex:1;min-width:0}.history__title{font-weight:600}.history__sub{color:var(--muted);font-size:.8rem}.history__loading,.history__err{color:var(--muted);display:flex;align-items:center;gap:8px}.history__err{color:#ffb3bd}.badge{font-size:.72rem;padding:2px 8px;border-radius:999px;background:var(--panel-2);color:var(--muted)}.badge--ready{background:#16311f;color:#9affba}.badge--uploading{background:#1b2340;color:#cdd6ff}.arshare{background:var(--panel);border-radius:var(--radius);padding:14px}.arshare h3{margin:0 0 10px}.arshare__row{display:flex;gap:14px;align-items:center}.arshare__qr{width:120px;height:120px;border-radius:8px;background:#fff;padding:6px;flex:none}.arshare__body{display:flex;flex-direction:column;gap:10px}.scan{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:50}.scan__stage{position:absolute;top:0;right:0;bottom:0;left:0}.scan__stage a-scene,.scan__stage canvas,.scan__stage video{width:100%!important;height:100%!important}.scan__overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column}.scan__overlay .btn,.scan__overlay a.btn,.scan__overlay button{pointer-events:auto}.scan__scrim{position:absolute;left:0;right:0;pointer-events:none}.scan__scrim--top{top:0;height:120px;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}.scan__scrim--bottom{bottom:0;height:260px;background:linear-gradient(to top,rgba(0,0,0,.78),transparent)}.scan__top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.scan__top .brand{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}.scan__top-spacer{width:44px}.scan__finder{position:absolute;top:45%;left:50%;width:min(74vw,320px);aspect-ratio:3 / 4;transform:translate(-50%,-50%);pointer-events:none}.scan__corner{position:absolute;width:28px;height:28px;border:3px solid rgba(255,255,255,.9);transition:border-color .3s}.scan__corner--tl{top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:8px}.scan__corner--tr{top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:8px}.scan__corner--bl{bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:8px}.scan__corner--br{bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:8px}.scan__finder--on .scan__corner{border-color:#9affba}.scan__scanline{position:absolute;left:6%;right:6%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 12px var(--accent);animation:scanline 2.2s ease-in-out infinite}@keyframes scanline{0%{top:4%;opacity:0}15%{opacity:1}85%{opacity:1}to{top:96%;opacity:0}}.scan__foot{margin-top:auto;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 16px calc(22px + env(safe-area-inset-bottom))}.scan__panel{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:420px;text-align:center}.scan__panel .btn{pointer-events:auto}.scan__headline{margin:0;color:#fff;font-size:1.5rem;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.6)}.scan__sub{margin:0;color:#e7e9ee;font-size:.95rem;text-shadow:0 1px 6px rgba(0,0,0,.85)}.scan__msg{color:#fff;text-align:center;margin:0;padding:4px;text-shadow:0 1px 6px rgba(0,0,0,.9)}.scan__msg--err{color:#ffb3bd}.scan__status{display:inline-flex;align-items:center;gap:8px;background:#0000008c;color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;transition:background .3s,color .3s}.scan__status--on{background:#16311fd1;color:#9affba}.scan__status-dot{width:9px;height:9px;border-radius:50%;background:currentColor;animation:pulse 1.1s infinite}.scan__status--on .scan__status-dot{animation:none}.scan__bar{display:flex;gap:10px}.scan__toast{margin:0}.scan__code{display:flex;gap:8px;width:100%;max-width:280px;pointer-events:auto}.scan__code-input{flex:1;min-height:46px;border-radius:10px;background:#00000080;color:#fff;border:1px solid rgba(255,255,255,.35);padding:0 14px;font-size:1.15rem;text-align:center;letter-spacing:.16em;text-transform:uppercase}.scan__code .btn,.scan__foot a{pointer-events:auto}.brand{font-weight:800;font-size:1.4rem;letter-spacing:-.01em}.brand--sm{font-size:1.1rem}.brand__accent{background:linear-gradient(135deg,var(--accent),#8f6bff);-webkit-background-clip:text;background-clip:text;color:transparent}.booth-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.booth-bar__name{font-size:.9rem;font-weight:600;color:#9affba}.booth-bar__actions{display:flex;gap:14px;align-items:center}.booth-bar__link{color:var(--muted);font-size:.85rem;text-decoration:none;background:none;border:0;cursor:pointer;padding:0}.booth-bar__link--btn:active{opacity:.6}.landing{display:flex;flex-direction:column;gap:40px;padding:8px 0 32px;text-align:left}.landing__nav{display:flex;align-items:center;justify-content:space-between;padding-top:8px}.landing__hero{display:flex;flex-direction:column;gap:18px;padding:24px 0 8px}.landing__title{font-size:2.6rem;line-height:1.08;margin:0;font-weight:800;letter-spacing:-.02em}.landing__grad{background:linear-gradient(135deg,var(--accent),#b58bff);-webkit-background-clip:text;background-clip:text;color:transparent}.landing__tag{color:var(--muted);font-size:1.05rem;line-height:1.5;margin:0;max-width:46ch}.landing__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.landing__cta .btn{width:auto;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.landing__section{display:flex;flex-direction:column;gap:18px}.landing__h2{font-size:1.5rem;margin:0;font-weight:700}.landing__steps{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 620px){.landing__steps{grid-template-columns:repeat(3,1fr)}}.step{background:var(--panel);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px}.step__icon{font-size:1.8rem}.step__title{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:8px}.step__n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--accent-2);color:#fff;font-size:.8rem;flex:none}.step__body{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}.landing__grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 620px){.landing__grid{grid-template-columns:repeat(3,1fr)}}.feature{background:var(--panel);border-radius:var(--radius);padding:18px}.feature__title{margin:0 0 6px;font-size:1.02rem}.feature__body{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.landing__cta-band{background:linear-gradient(135deg,#1b2340,#241b40);border-radius:var(--radius);padding:28px;align-items:flex-start}.landing__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #22242e;padding-top:18px;color:var(--muted)}.landing__foot-meta{font-size:.8rem}.media{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:flex;flex-direction:column}.media__top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.media__top .brand{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}.media__top-spacer{width:44px}.media__stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 14px;overflow:hidden}.media__video{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:14px;background:#000;box-shadow:0 10px 40px #00000080}.media__slideshow{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media__slide{position:absolute;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:14px;box-shadow:0 10px 40px #00000080;opacity:0;transition:opacity .5s ease}.media__slide--on{opacity:1}.media__dots{position:absolute;bottom:10px;left:0;right:0;display:flex;gap:7px;justify-content:center}.media__dot{width:7px;height:7px;border-radius:999px;background:#ffffff59}.media__dot--on{background:#fff}.media__bar{display:flex;gap:10px;justify-content:center;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.media__bar .btn{color:#fff;border-color:#ffffff4d}.media__toast{position:absolute;left:50%;bottom:84px;transform:translate(-50%)}.codebox{display:flex;gap:8px;width:100%;max-width:320px;margin:4px 0 6px}.codebox__input{flex:1;min-height:var(--touch);border-radius:12px;background:var(--panel-2);color:var(--text);border:1px solid #2a2d38;padding:0 16px;font-size:1.2rem;text-align:center;letter-spacing:.18em;text-transform:uppercase}.codebox__input:focus{outline:none;border-color:var(--accent)}
