:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--surface:#161b22;--surface-2:#1f2630;--border:#2d3540;--text:#e6edf3;--muted:#9aa6b2;--accent:#7c5cff;--accent-2:#22d3ee;--accent-text:#fff;--danger:#f87171;--ok:#34d399;--radius:16px;--gutter:16px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, monospace}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font:16px/1.5 var(--font);-webkit-tap-highlight-color:transparent;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0}body.no-scroll{overflow:hidden}#app{max-width:560px;padding:0 var(--gutter) 32px;margin:0 auto}h1,h2,h3{margin:0 0 12px;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.125rem}h3{font-size:1rem}p{margin:0 0 12px}a{color:var(--accent-2)}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center;justify-items:center;gap:12px;display:grid}.visually-hidden{clip-path:inset(50%);white-space:nowrap;opacity:0;width:1px;height:1px;overflow:hidden;position:absolute!important}.hero{text-align:center;padding:32px 0 20px}.hero-logo{margin:0 auto 12px;display:block}.lead{color:var(--muted);font-size:1.05rem}.topbar{padding:16px 0 8px}.back{color:var(--muted);align-items:center;gap:6px;min-height:44px;text-decoration:none;display:inline-flex}.page{gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:12px;min-width:0;padding:20px;display:grid}.card>*{min-width:0;margin-bottom:0}.card-flush{gap:0;padding:0;overflow:hidden}.card-quiet{background:0 0;border-style:dashed}.footer{text-align:center;padding-top:24px}.btn{min-height:48px;font:600 1rem/1.2 var(--font);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 18px;text-decoration:none;transition:transform 80ms,background-color .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn:focus-visible,.tool:focus-visible,.code-input:focus-visible,summary:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.btn-primary{background:linear-gradient(135deg, var(--accent), #5b3df5);color:var(--accent-text)}.btn-secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.btn-danger{border-color:color-mix(in srgb, var(--danger) 50%, transparent);color:var(--danger);background:0 0}.btn-xl{min-height:64px;font-size:1.125rem}.btn-sm{flex:1 1 0;width:auto;min-height:44px;padding:8px 12px;font-size:.9rem}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.btn-row>.btn:not(.btn-sm){flex:120px}.btn-row>.btn-primary:not(.btn-sm){flex-grow:1.6}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:22px;height:22px}.mode-switch{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mode-option{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;text-align:center;cursor:pointer;border-radius:12px;justify-items:center;gap:2px;padding:14px 10px;display:grid}.mode-option .icon{margin-bottom:4px}.mode-option[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, var(--surface-2));box-shadow:inset 0 0 0 1px var(--accent)}.mode-option:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.mode-title{font-weight:700}.mode-sub{color:var(--muted);font-size:.85rem}.code-form{gap:10px;display:flex}.code-form .btn{width:auto}.code-input{border:1px solid var(--border);background:var(--bg);width:0;min-width:0;min-height:48px;color:var(--text);font:600 1.1rem var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:12px;flex:1;padding:10px 14px}.code-input::placeholder{text-transform:none;letter-spacing:normal;color:var(--muted);font-weight:400}.field-error{color:var(--danger);min-height:0;font-size:.9rem}.field-error:empty{display:none}.alert{background:color-mix(in srgb, var(--danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:#fecaca;border-radius:12px;padding:12px 14px}.banner{color:#fde68a;background:#f59e0b24;border:1px solid #f59e0b66;border-radius:12px;padding:10px 14px}details summary{cursor:pointer;min-height:32px;font-weight:600}.tips ul{color:var(--muted);margin:8px 0 0;padding-left:20px}.tips li+li{margin-top:4px}.tech code{font:.8rem/1.4 var(--mono);color:var(--muted);overflow-wrap:anywhere;margin-top:8px;display:block}.help-item{margin-top:14px}.help-item p{color:var(--muted);margin:0}.progress{appearance:none;background:var(--surface-2);border:0;border-radius:99px;width:100%;height:10px;overflow:hidden}.progress::-webkit-progress-bar{background:var(--surface-2)}.progress::-webkit-progress-value{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:99px}.progress::-moz-progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:99px}.progress:indeterminate{background:linear-gradient(90deg, transparent 0%, var(--accent) 40%, var(--accent-2) 60%, transparent 100%) 0 0 / 40% 100% no-repeat var(--surface-2);animation:1.4s ease-in-out infinite slide}.progress:indeterminate::-webkit-progress-bar{background:0 0}.progress:indeterminate::-moz-progress-bar{background:0 0}@keyframes slide{0%{background-position:-40% 0}to{background-position:140% 0}}.status-label{font-size:1.05rem;font-weight:600}.status-photo,.review-photo{object-fit:contain;background:var(--bg);border-radius:12px;width:100%;height:auto;max-height:50dvh}.status-photo{max-height:30dvh}.stages{color:var(--muted);gap:6px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.stages li{align-items:center;gap:10px;display:flex}.stages li:before{content:"";border:2px solid var(--border);border-radius:50%;flex:none;width:10px;height:10px}.stages li.is-done:before{background:var(--ok);border-color:var(--ok)}.stages li.is-current{color:var(--text);font-weight:600}.stages li.is-current:before{border-color:var(--accent-2);background:var(--accent-2);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-2) 25%, transparent)}.spinner{border:3px solid var(--surface-2);border-top-color:var(--accent-2);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.code-card{text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.75rem;font-weight:700}.code-display{letter-spacing:.08em;color:var(--text);-webkit-user-select:all;user-select:all;font-size:clamp(2rem,11vw,2.75rem);font-weight:700}.qr{background:#fff;border-radius:12px;justify-self:center;width:min(220px,70vw);padding:10px}.qr svg{width:100%;height:auto;display:block}.viewer{aspect-ratio:4/5;background:var(--bg);width:100%;max-height:70dvh;position:relative;overflow:hidden}.viewer.is-full{z-index:50;aspect-ratio:auto;width:100vw;height:100dvh;max-height:none;position:fixed;inset:0}.viewer-canvas{touch-action:none;width:100%;height:100%;display:block}.viewer-overlay{text-align:center;color:var(--muted);place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.viewer-overlay[hidden]{display:none}.viewer-hint{color:var(--muted);text-align:center;pointer-events:none;background:#0d1117bf;border-radius:10px;margin:0;padding:8px 12px;font-size:.85rem;position:absolute;top:12px;left:12px;right:12px}.viewer-toolbar{gap:8px;display:flex;position:absolute;bottom:10px;right:10px}.viewer.is-full .viewer-toolbar{bottom:calc(16px + env(safe-area-inset-bottom));right:calc(16px + env(safe-area-inset-right))}.viewer-toolbar[hidden],.viewer-hint[hidden]{display:none}.tool{border:1px solid var(--border);width:48px;height:48px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#161b22d9;border-radius:12px;place-items:center;display:grid}.tool[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.stats{color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;gap:6px 14px;margin:0;padding:12px 16px;font-size:.875rem;display:flex}.preview{gap:6px;margin:0;display:grid}.preview-img{background:var(--bg);border-radius:12px;width:100%;height:auto}.facts{gap:10px;margin:0;display:grid}.fact{grid-template-columns:9rem 1fr;gap:2px 12px;display:grid}.fact dt{color:var(--muted);font-size:.9rem}.fact dd{margin:0;font-weight:600}.fact-explain{grid-column:1/-1;margin:0}.saved-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.saved-item{background:var(--surface-2);color:var(--text);border-radius:12px;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;min-height:56px;padding:8px;text-decoration:none;display:grid}.saved-thumb{background:var(--bg);width:48px;height:48px;color:var(--muted);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.saved-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.saved-code{letter-spacing:.06em;white-space:nowrap;font-weight:700}.saved-when{color:var(--muted);text-align:right;font-size:.8rem}.server-status{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.server-status:empty{display:none}.server-status:before{content:"";background:var(--muted);border-radius:50%;width:8px;height:8px}.server-status[data-state=ok]:before{background:var(--ok)}.server-status[data-state=down]:before{background:var(--danger)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.workshop-code{text-transform:none;letter-spacing:normal}
