:root{zoom:.85;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;color-scheme:light;--brand: #c8372d;--brand-hover: #a92b23;--brand-soft: #fdf3f2;--brand-ring: #f0c3bf;--accent-warm: #f6b73c;--surface: #ffffff;--surface-muted: #f6f7f9;--surface-soft: #eef0f3;--surface-overlay: rgba(255, 255, 255, .92);--surface-inverse: #14181f;--text-1: #1a202c;--text-2: #4a5261;--text-3: #6b7280;--text-muted: #8a919d;--text-on-brand: #ffffff;--border: #e5e8ec;--border-strong: #d5dae1;--border-soft: #eef0f3;--status-success-bg: #d9f2e2;--status-success-fg: #14603a;--status-warn-bg: #fdf0d3;--status-warn-fg: #8a5a08;--status-error-bg: #fbe3e1;--status-error-fg: #942018;--status-info-bg: #e3edfb;--status-info-fg: #1e4e8f;--viewer-bg: #23272f;--viewer-bg-light: linear-gradient(180deg, #eef3fa 0%, #dfe8f5 100%);--content-max: min(96vw, 1720px);--radius-card: 14px;--radius-control: 10px;--shadow-card: 0 2px 8px rgba(15, 20, 30, .06);--shadow-card-hover: 0 10px 24px rgba(15, 20, 30, .1);--shadow-overlay: 0 18px 48px rgba(15, 20, 30, .28)}:root[data-theme=dark]{color-scheme:dark;--brand: #e0564c;--brand-hover: #ea7168;--brand-soft: #2a1d1c;--brand-ring: #6e332e;--accent-warm: #e9b64d;--surface: #1a1f29;--surface-muted: #12161e;--surface-soft: #232936;--surface-overlay: rgba(26, 31, 41, .92);--surface-inverse: #f2f4f8;--text-1: #e9edf3;--text-2: #b4bcc9;--text-3: #8d96a6;--text-muted: #6f7889;--text-on-brand: #ffffff;--border: #2b3240;--border-strong: #39414f;--border-soft: #232936;--status-success-bg: #15342a;--status-success-fg: #6fd3a0;--status-warn-bg: #372b12;--status-warn-fg: #e5b96b;--status-error-bg: #3b1e1c;--status-error-fg: #f09a92;--status-info-bg: #1a2a40;--status-info-fg: #8ab6f2;--viewer-bg: #0e1116;--viewer-bg-light: linear-gradient(180deg, #1c222d 0%, #161b24 100%);--shadow-card: 0 2px 8px rgba(0, 0, 0, .35);--shadow-card-hover: 0 10px 24px rgba(0, 0, 0, .45);--shadow-overlay: 0 18px 48px rgba(0, 0, 0, .6)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--surface-muted);background-image:radial-gradient(1100px 500px at 85% -10%,color-mix(in srgb,var(--brand) 7%,transparent),transparent 70%),radial-gradient(900px 420px at -10% 100%,color-mix(in srgb,var(--accent-warm) 6%,transparent),transparent 70%);background-attachment:fixed;color:var(--text-1);transition:background-color .2s ease,color .2s ease}*{box-sizing:border-box}button,input{font:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-control);font-weight:600;font-size:.92rem;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--brand);border:1px solid var(--brand);color:var(--text-on-brand)}.btn-primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--brand-hover);border-color:var(--brand-hover)}.btn-secondary{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-1)}.btn-secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--brand);color:var(--brand)}.btn-primary:disabled,.btn-secondary:disabled,.btn-primary[aria-disabled=true],.btn-secondary[aria-disabled=true]{opacity:.55;cursor:not-allowed}input[type=range]{accent-color:var(--brand)}.not-found-page{min-height:100vh}.not-found-content{display:flex;min-height:calc(100vh - 72px);width:min(90vw,680px);margin:0 auto;padding:0 0 112px;flex-direction:column;align-items:center;justify-content:center;text-align:center}.not-found-code{color:var(--brand)}.not-found-content h1{margin:0;font-size:2.5rem;letter-spacing:0;white-space:nowrap}.not-found-content>p{margin:12px 0 28px;color:var(--text-3)}@media (max-width: 480px){.not-found-content h1{font-size:1.9rem}}input[type=checkbox]{accent-color:var(--brand)}.hud-btn,.theme-toggle-btn,.back-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.hud-btn{width:32px;height:32px;border-color:var(--border)}.theme-toggle-btn{width:38px;height:38px;font-size:1.15rem;line-height:1}.back-btn{width:40px;height:40px}.hud-btn:hover:not(:disabled),.theme-toggle-btn:hover:not(:disabled),.back-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.hud-btn:disabled{opacity:.4;cursor:not-allowed}.status-badge.voxelized,.project-card-status.voxelized{background:var(--status-success-bg);color:var(--status-success-fg)}.status-badge.generated,.project-card-status.generated{background:var(--status-info-bg);color:var(--status-info-fg)}.status-badge.generating,.project-card-status.generating{background:var(--status-warn-bg);color:var(--status-warn-fg)}.status-badge.failed,.project-card-status.failed{background:var(--status-error-bg);color:var(--status-error-fg)}.route-loading{min-height:100vh;display:grid;place-items:center;color:var(--text-muted)}.project-card-skeleton,.skeleton-card{border-radius:var(--radius-card);background:linear-gradient(110deg,var(--surface-soft) 8%,var(--surface) 18%,var(--surface-soft) 33%);background-size:200% 100%}.project-card-skeleton{height:260px}.skeleton-card{min-height:70vh}@media (prefers-reduced-motion: no-preference){.project-card-skeleton,.skeleton-card{animation:shimmer 1.5s linear infinite}}@keyframes shimmer{to{background-position-x:-200%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.piece-tally{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.piece-tally-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:8px;background:var(--surface-soft)}.piece-tally-size{font-size:.85rem;font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}.piece-tally-count{margin-left:auto;font-size:.85rem;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums}.piece-glyph{display:inline-grid;gap:1.5px;padding:3px;border-radius:4px;background:color-mix(in srgb,var(--piece-color, var(--text-muted)) 82%,black);flex-shrink:0}.piece-glyph i{width:7px;height:7px;border-radius:50%;background:var(--piece-color, var(--text-muted))}
