:root{--paper: #fcfcfd;--surface: #ffffff;--ink: #16161a;--ink-soft: #5a5a66;--ink-faint: #8e8e9c;--coral: #ff5d5d;--coral-deep: #e63e3e;--coral-wash: #fff0f0;--green: #0f9b6c;--line: #e8e8ee;--shadow: 0 1px 2px rgba(22, 22, 26, .05), 0 8px 24px -14px rgba(22, 22, 26, .18);--shadow-lift: 0 2px 6px rgba(22, 22, 26, .07), 0 20px 44px -18px rgba(22, 22, 26, .26);--radius: 12px;--radius-lg: 20px;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--serif: "Fraunces", ui-serif, Georgia, serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0f0f12;--surface: #1a1a20;--ink: #f2f2f5;--ink-soft: #a0a0ae;--ink-faint: #70707e;--coral: #ff6b6b;--coral-deep: #ff8a8a;--coral-wash: #2a1a1d;--green: #35c493;--line: #2a2a33;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -14px rgba(0, 0, 0, .7);--shadow-lift: 0 2px 6px rgba(0, 0, 0, .5), 0 20px 44px -18px rgba(0, 0, 0, .8)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.02em;line-height:1.12;margin:0}h1{font-size:clamp(1.9rem,5vw,2.8rem)}h2{font-size:clamp(1.3rem,3.4vw,1.7rem)}h3{font-size:1.05rem}p{margin:0}a{color:var(--coral-deep)}.shell{max-width:1080px;margin:0 auto;padding:0 16px 96px}.shell--narrow{max-width:620px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 22px}.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none}.brand svg{width:24px;height:24px;flex:none;color:var(--coral)}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint);font-size:.85rem}.center{text-align:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px}.card--tight{padding:16px}.card--alert{border-color:var(--coral);border-width:1.5px;box-shadow:var(--shadow-lift)}label{display:block;font-size:.83rem;font-weight:600;color:var(--ink-soft);margin-bottom:6px}input[type=text],input[type=date],input[type=datetime-local],input[type=number],input[type=email],textarea,select{width:100%;padding:11px 13px;font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px #ff5d5d29}textarea{resize:vertical;min-height:76px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;font:inherit;font-weight:600;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .15s,background .15s,border-color .15s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--ink-faint)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--coral);border-color:var(--coral);color:#fff}.btn--primary:hover:not(:disabled){background:var(--coral-deep);border-color:var(--coral-deep)}.btn--ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn--ink:hover:not(:disabled){opacity:.88}.btn--ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn--ghost:hover:not(:disabled){background:var(--coral-wash);color:var(--ink);border-color:transparent}.btn--big{padding:15px 26px;font-size:1.05rem}.btn--block{width:100%}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--coral-wash);color:var(--coral-deep);border:1px solid transparent}.chip--quiet{background:transparent;border-color:var(--line);color:var(--ink-soft)}.chip--good{background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}.chip--warn{background:var(--coral-wash);color:var(--coral-deep)}.counter{display:inline-flex;align-items:baseline;gap:7px;font-family:var(--serif);font-weight:700;padding:7px 16px;border-radius:999px;background:var(--ink);color:var(--paper)}.counter b{font-size:1.4rem;line-height:1}.counter span{font-size:.78rem;font-family:var(--sans);font-weight:500;opacity:.72;letter-spacing:.04em;text-transform:uppercase}.counter--empty{background:var(--coral);color:#fff}.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}@media(max-width:520px){.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}}.tile{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--line);border:1px solid var(--line)}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile__bar{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:18px 8px 7px;font-size:.72rem;color:#fff;background:linear-gradient(transparent,#000000b3);opacity:0;transition:opacity .15s}.tile:hover .tile__bar,.tile:focus-within .tile__bar{opacity:1}@media(hover:none){.tile__bar{opacity:1}}.tile__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.tile__actions{display:flex;gap:2px;flex:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:8px;background:#ffffff2e;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.icon-btn:hover{background:#ffffff52}.icon-btn[aria-pressed=true]{background:var(--coral);color:#fff}.tile--hidden img{opacity:.3;filter:grayscale(1)}.tile__flag{position:absolute;top:7px;left:7px}.tile__fav{position:absolute;top:7px;right:7px;color:var(--coral);filter:drop-shadow(0 1px 4px rgba(0,0,0,.6))}.queue-item{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}.queue-item:last-child{border-bottom:none}.queue-item img{width:42px;height:42px;border-radius:9px;object-fit:cover;flex:none}.progress{height:4px;border-radius:999px;background:var(--line);overflow:hidden}.progress i{display:block;height:100%;background:var(--coral);transition:width .25s}.empty{padding:44px 20px;text-align:center;color:var(--ink-soft)}.empty svg{width:52px;height:52px;opacity:.3;margin-bottom:10px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;max-width:calc(100vw - 32px);padding:11px 18px;border-radius:999px;font-size:.9rem;font-weight:500;background:var(--ink);color:var(--paper);box-shadow:var(--shadow-lift)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#0a0a0ceb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lightbox img{max-width:100%;max-height:84vh;border-radius:8px;box-shadow:var(--shadow-lift)}.tabs{display:flex;gap:4px;padding:4px;background:var(--coral-wash);border-radius:999px}.tabs button{flex:1;padding:8px 14px;font:inherit;font-weight:600;font-size:.88rem;border:none;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.stat{display:flex;flex-direction:column;gap:1px}.stat b{font-family:var(--serif);font-size:1.5rem;line-height:1.1}.stat span{font-size:.76rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:14px}.qr{width:164px;height:164px;padding:10px;background:#fff;border-radius:var(--radius);border:1px solid var(--line)}.qr img,.qr svg{width:100%;height:100%;display:block}.copyline{display:flex;align-items:center;gap:8px;padding:9px 9px 9px 14px;background:var(--paper);border:1.5px dashed var(--line);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.copyline span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.copyline--key{border-style:solid;border-color:var(--coral);background:var(--coral-wash)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.tile--selected{outline:3px solid var(--coral);outline-offset:-3px}.tile--selected img{opacity:.82}.tile__check{position:absolute;top:7px;left:7px;z-index:2;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffffd9;color:var(--ink);border:1.5px solid rgba(0,0,0,.15);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tile--selected .tile__check{background:var(--coral);border-color:var(--coral);color:#fff}.selection-bar{position:sticky;bottom:0;z-index:25;margin:14px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 24px -18px #16161a80}.selection-bar__actions{display:flex;gap:6px;flex-wrap:wrap}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;background:#ffffff24;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lightbox__nav:hover:not(:disabled){background:#ffffff47}.lightbox__nav:disabled{opacity:.25;cursor:default}.lightbox__nav--prev{left:14px}.lightbox__nav--next{right:14px}.lightbox__count{color:#f2f2f5;opacity:.6;font-size:.8rem;letter-spacing:.04em}.display{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0a0a0c;color:#fff;display:grid;place-items:center;cursor:none}.display--idle{cursor:none}.display--active{cursor:default}.display__backdrop{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;background-size:cover;background-position:center;filter:blur(42px) saturate(1.3) brightness(.45);transform:scale(1.1);transition:background-image .6s}.display__stage{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:2.5vmin}.display__photo{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 30px 90px -30px #000000e6;animation:display-drift var(--dwell, 7s) ease-out both}@keyframes display-drift{0%{transform:scale(1)}to{transform:scale(1.045)}}.display__progress{position:absolute;top:0;left:0;right:0;height:3px;background:#ffffff1f}.display__progress i{display:block;height:100%;background:var(--coral);width:0}.display__progress i.run{animation:display-progress var(--dwell, 7s) linear both}@keyframes display-progress{0%{width:0}to{width:100%}}.display__corner{position:absolute;z-index:2;display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:16px;background:#0a0a0c8c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.display__corner--credit{left:3vmin;bottom:3vmin;max-width:46vw}.display__corner--join{right:3vmin;bottom:3vmin}.display__corner--count{right:3vmin;top:3vmin;font-size:clamp(.8rem,1.3vmin,1rem);opacity:.75;letter-spacing:.06em;text-transform:uppercase}.display__who{font-family:var(--serif);font-size:clamp(1.1rem,2.6vmin,2rem);font-weight:700;line-height:1.15}.display__caption{font-size:clamp(.85rem,1.6vmin,1.1rem);opacity:.8}.display__qr{width:clamp(72px,9vmin,128px);height:clamp(72px,9vmin,128px);padding:7px;background:#fff;border-radius:10px}.display__qr img{width:100%;height:100%;display:block}.display__join-text{font-size:clamp(.8rem,1.5vmin,1.05rem);line-height:1.35}.display__join-text b{display:block;font-family:var(--serif);font-size:clamp(1rem,2vmin,1.4rem)}.display__teaser{position:relative;z-index:2;text-align:center;display:grid;gap:3vmin;justify-items:center;padding:5vmin}.display__teaser h1{font-size:clamp(2rem,7vmin,5rem);color:#fff}.display__teaser .display__qr{width:clamp(150px,26vmin,300px);height:clamp(150px,26vmin,300px);padding:14px}.display__big{font-family:var(--serif);font-size:clamp(1.6rem,4.5vmin,3.2rem);font-weight:700}.display__sub{font-size:clamp(.95rem,2vmin,1.4rem);opacity:.7}.display__controls{position:absolute;left:3vmin;top:3vmin;z-index:3;display:flex;gap:8px;opacity:0;transition:opacity .25s}.display--active .display__controls{opacity:1}.display__controls .btn{background:#ffffff1f;border-color:transparent;color:#fff}.display__controls .btn:hover{background:#ffffff40}.print-bar{position:sticky;top:0;z-index:10;padding:14px 0;background:var(--paper);border-bottom:1px solid var(--line)}.sheet{background:#fff;color:#16161a;width:8.5in;min-height:11in;margin:18px auto;padding:.4in;box-shadow:var(--shadow-lift);border-radius:4px;display:grid;gap:0}.sheet--cards{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr)}.sheet--poster{grid-template-columns:1fr}.cut-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;text-align:center;border:1px dashed #c9c9d2}.cut-card__name{font-family:var(--serif);font-weight:700;font-size:15pt;line-height:1.15;color:#16161a}.cut-card__qr{width:1.55in;height:1.55in}.cut-card__qr img{width:100%;height:100%;display:block}.cut-card__call{font-family:var(--serif);font-weight:700;font-size:12pt;color:#e63e3e}.cut-card__meta{font-size:8.5pt;color:#5a5a66;line-height:1.45}.cut-card__url{font-family:ui-monospace,Menlo,monospace;font-size:8pt;color:#16161a}.cut-card__brand{display:inline-flex;align-items:center;gap:5px;font-size:7.5pt;color:#8e8e9c;letter-spacing:.08em;text-transform:uppercase}.sheet--poster .cut-card{border:none;gap:22px}.sheet--poster .cut-card__name{font-size:34pt}.sheet--poster .cut-card__qr{width:4.4in;height:4.4in}.sheet--poster .cut-card__call{font-size:22pt}.sheet--poster .cut-card__meta{font-size:13pt}.sheet--poster .cut-card__url{font-size:12pt}@media print{@page{size:letter portrait;margin:.4in}html,body{background:#fff!important}.no-print{display:none!important}.sheet{width:auto;min-height:auto;margin:0;padding:0;box-shadow:none;border-radius:0;height:10.2in;break-inside:avoid}.cut-card{border-color:#e3e3e9}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
