@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Josefin+Sans:wght@300;400;500;600;700&display=swap";:root{--color-primary:#0f766e;--color-primary-hover:#0c5f59;--color-secondary:#14b8a6;--color-accent:#0369a1;--color-accent-2:#38bdf8;--color-bg:#f0fdfa;--color-bg-2:#fff;--color-surface:#fff;--color-card:#fff;--color-foreground:#134e4a;--color-muted:#475569;--color-muted-2:#e8f0f3;--color-border:#99f6e4;--color-border-strong:#5eead4;--color-destructive:#dc2626;--color-ring:#0f766e;--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffb8;--glass-border:#fff9;--glass-blur:14px;--radius-sm:8px;--radius:12px;--radius-lg:18px;--radius-pill:999px;--shadow-sm:0 1px 2px #0f4e4a0f;--shadow:0 6px 24px #0f4e4a14;--shadow-lg:0 24px 60px #0f4e4a29;--font-display:"Cinzel", "Josefin Sans", Georgia, serif;--font-sans:"Josefin Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--header-height:64px;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.22s}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.55}body:before{content:"";z-index:-1;background:radial-gradient(60% 50% at 18% 8%,#14b8a62e,#0000 60%),radial-gradient(50% 45% at 88% 4%,#38bdf829,#0000 60%),radial-gradient(70% 60% at 50% 100%,#0f766e1a,#0000 65%);position:fixed;inset:0}a{color:var(--color-accent);transition:color var(--dur) var(--ease);text-decoration:none}a:hover{color:var(--color-primary);text-decoration:underline}h1,h2,h3{font-family:var(--font-display);color:var(--color-foreground);letter-spacing:.02em;font-weight:600}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--color-ring);outline-offset:2px;border-radius:var(--radius-sm)}button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-foreground);cursor:pointer;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);box-shadow:var(--shadow-sm);padding:10px 18px;font-weight:500}button:hover{background:var(--color-muted-2);border-color:var(--color-secondary)}button:active{transform:translateY(1px)}button.primary{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;border-color:#0000;font-weight:600;box-shadow:0 6px 18px #0f766e47}button.primary:hover{background:linear-gradient(135deg, var(--color-primary-hover), #025a8a);border-color:#0000}button.danger{background:var(--color-destructive);border-color:var(--color-destructive);color:#fff}button.danger:hover{background:#b91c1c;border-color:#b91c1c}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}input,textarea,select{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-foreground);width:100%;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);background:#ffffffb3;padding:10px 12px}input::placeholder,textarea::placeholder{color:#94a3b8}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);background:#fff;outline:none;box-shadow:0 0 0 4px #0f766e1f}textarea{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;line-height:1.6}label{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:12px 0 5px;font-size:12px;font-weight:600;display:block}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23475569' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.shell{max-width:1040px;margin:0 auto;padding:32px 24px 64px}.shell.wide{max-width:1320px}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--color-muted)}.error{color:var(--color-destructive)}.topbar{z-index:100;height:var(--header-height);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);border-bottom:1px solid var(--glass-border);align-items:center;gap:20px;padding:0 24px;display:flex;position:sticky;top:0}.topbar .brand{font-family:var(--font-display);letter-spacing:.18em;color:var(--color-foreground);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.topbar .brand:hover{text-decoration:none}.topbar .brand .mark{color:var(--color-primary);display:flex}.topbar .spacer{flex:1}.topbar nav{gap:6px;display:flex}.topbar nav a{border-radius:var(--radius-sm);color:var(--color-muted);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);padding:8px 14px;font-size:14.5px;font-weight:500;position:relative}.topbar nav a:hover{color:var(--color-foreground);background:#0f766e0f;text-decoration:none}.topbar nav a.active{color:var(--color-primary)}.topbar nav a.active:after{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));border-radius:2px;height:2px;position:absolute;bottom:4px;left:14px;right:14px}.landing{min-height:calc(100% - var(--header-height));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:48px 24px 80px;display:flex}.landing .eyebrow{border-radius:var(--radius-pill);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);color:var(--color-primary);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.landing h1{letter-spacing:.22em;background:linear-gradient(135deg, #0c5f59 0%, var(--color-primary) 40%, var(--color-accent) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(44px,8vw,84px);font-weight:700;line-height:1.05}.landing .lede{max-width:560px;color:var(--color-muted);margin:0;font-size:clamp(16px,2.4vw,19px);font-weight:300;line-height:1.6}.enter-card{border-radius:var(--radius-lg);background:var(--glass-bg-strong);width:min(440px,92vw);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(150%);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);padding:26px 28px 28px}.enter-card form{align-items:stretch;gap:10px;display:flex}.enter-card .code-input{text-align:center;letter-spacing:.12em;flex:1;min-width:0;font-weight:600}.enter-card .primary{white-space:nowrap}.enter-card .footnote{color:var(--color-muted);margin:14px 0 0;font-size:13px}.value-strip{flex-wrap:wrap;justify-content:center;gap:14px 36px;margin-top:8px;display:flex}.value-strip .item{color:var(--color-muted);align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.value-strip .item svg{color:var(--color-primary);flex:none}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.card h3{margin:0 0 6px;font-size:18px}.card .muted{font-size:13.5px}table{border-collapse:collapse;width:100%}thead th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);border-bottom:2px solid var(--color-border);padding:12px 10px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--color-muted-2);vertical-align:middle;padding:14px 10px;font-size:14px}tbody tr{transition:background var(--dur) var(--ease)}tbody tr:hover{background:#0f766e08}tbody tr:last-child td{border-bottom:0}code{color:var(--color-primary);background:#0f766e14;border-radius:6px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px}.tag{border-radius:var(--radius-pill);border:1px solid var(--color-border);color:var(--color-muted);background:var(--color-muted-2);align-items:center;gap:6px;padding:3px 11px;font-size:12px;font-weight:600;display:inline-flex}.tag:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.tag.pub{color:#047857;background:#10b9811f;border-color:#6ee7b7}.tag.draft{color:#64748b}.page-head{align-items:baseline;gap:12px;margin:0 0 22px;display:flex}.page-head h2{letter-spacing:.06em;margin:0;font-size:24px}.page-head .muted{font-size:13px}.logout-btn{border-color:var(--color-border);box-shadow:none;background:0 0;padding:7px 14px;font-size:13px}.logout-btn:hover{border-color:var(--color-destructive);color:var(--color-destructive);background:#dc262614}.login-card{border-radius:var(--radius-lg);background:var(--glass-bg-strong);max-width:380px;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(150%);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);text-align:center;margin:40px auto 0;padding:32px 28px}.login-card h2{margin:14px 0 0;font-size:22px}.login-card .lock-mark{width:48px;height:48px;color:var(--color-primary);background:#0f766e1a;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;display:inline-flex}.login-card form{text-align:left;margin-top:8px}.login-card label{text-align:left}.field-error{color:var(--color-destructive);text-align:left;margin-top:8px;font-size:13px}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);background:#0f4e4a57;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(440px,94vw);max-height:88vh;box-shadow:var(--shadow-lg);padding:24px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-head h3{margin:0;font-size:17px}.modal-close{border-radius:var(--radius-sm);width:34px;height:34px;box-shadow:none;color:var(--color-muted);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.modal-close:hover{background:var(--color-muted-2);color:var(--color-foreground)}.viewer-wrap{background:#051114;position:fixed;inset:0}.viewer-wrap iframe{border:0;width:100%;height:100%;display:block}.viewer-wrap .splat-viewer{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.viewer-wrap .splat-viewer canvas{display:block}.joy-base{-webkit-backdrop-filter:blur(6px);pointer-events:none;z-index:11;background:#081e1c47;border:1px solid #ffffff2e;border-radius:50%;width:104px;height:104px;display:none;position:absolute;box-shadow:0 6px 20px #0000004d}.joy-knob{pointer-events:none;background:#14b8a699;border:1px solid #6ee7b7bf;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;transition:transform 50ms linear;position:absolute;top:50%;left:50%;transform:translate(0);box-shadow:0 4px 14px #00000059}.viewer-overlay{z-index:10;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(14px)saturate(140%);color:#e6fffb;background:#081e1c8c;border:1px solid #ffffff24;align-items:center;gap:14px;padding:10px 16px 10px 12px;font-size:14px;display:flex;position:absolute;top:16px;left:16px;box-shadow:0 8px 30px #00000059}.viewer-overlay a{color:#e6fffb;border-radius:var(--radius-pill);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;gap:6px;padding:4px 10px;font-weight:500;display:inline-flex}.viewer-overlay a:hover{color:#fff;background:#ffffff1f;text-decoration:none}.viewer-overlay strong{font-family:var(--font-display);letter-spacing:.04em;font-weight:600}.viewer-overlay .muted{color:#e6fffb99;font-family:ui-monospace,monospace;font-size:12.5px}.viewer-hint{z-index:10;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(12px);color:#e6fffb;background:#081e1c8c;border:1px solid #ffffff1f;align-items:center;gap:10px;padding:9px 18px;font-size:13px;display:inline-flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0000004d}.viewer-hint kbd{color:#fff;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:6px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-family:ui-monospace,monospace;font-size:11.5px;display:inline-flex}.loading{z-index:20;color:#e6fffb;text-align:center;background:radial-gradient(80% 70% at 50% 35%,#0a2a2e,#051114 70%);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;display:flex;position:absolute;inset:0}.loading .status{font-family:var(--font-sans);letter-spacing:.04em;color:#c8f5ef;font-size:15px;font-weight:500}.loading .error{color:#fda4a4;font-weight:500}.loading a{color:var(--color-secondary)}.bar{border-radius:var(--radius-pill);background:#ffffff1a;width:min(320px,70vw);height:5px;overflow:hidden}.bar>i{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-secondary), var(--color-accent-2));width:35%;height:100%;animation:slide 1.3s var(--ease) infinite;display:block;box-shadow:0 0 16px #14b8a699}@keyframes slide{0%{margin-left:-35%}to{margin-left:100%}}@media (width<=768px){.shell,.shell.wide{padding:24px 16px 48px}.topbar{gap:12px;padding:0 16px}.topbar .brand{letter-spacing:.14em;font-size:15px}.card{padding:18px}.enter-card{padding:20px}.enter-card form{flex-direction:column}.page-head{flex-direction:column;align-items:flex-start;gap:4px}table{white-space:nowrap;display:block;overflow-x:auto}.value-strip{gap:12px 22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.bar>i{width:60%;margin-left:20%;animation:none}}
