:root{--color-paper:#f7f5ec;--color-paper-2:#ece8db;--color-paper-3:#dcd8c8;--color-ink:#0d141f;--color-muted:#485768;--color-rule:#c1baa6;--color-accent:#008d49;--color-accent-2:#d76547;--color-accent-3:#3282c6;--color-danger:#c83a35;--color-success:#08813e;--color-focus:#005ea2;--font-display:Georgia, "Times New Roman", serif;--font-body:Arial, Helvetica, sans-serif;--font-mono:"Courier New", Courier, monospace;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.35rem;--text-2xl:1.8rem;--text-display-s:2.5rem;--text-display:4.5rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.32s;--rule-thin:1px;--rule-thick:2px;--radius-sm:4px;--radius-md:8px}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(96.5965% -.430375 4.5647);--color-paper-2:lab(91.985% -.398129 6.89515);--color-paper-3:lab(86.2063% -.452697 8.45286);--color-ink:lab(6.07678% -.245504 -9.0128);--color-muted:lab(36.1198% -2.6557 -11.9825);--color-rule:lab(75.7884% -.157595 11.2418);--color-accent:lab(50.9916% -51.3458 28.0641);--color-accent-2:lab(56.9896% 43.9684 39.0817);--color-accent-3:lab(51.9515% -6.87036 -43.2918);--color-danger:lab(47.1882% 56.4372 37.7547);--color-success:lab(47.234% -43.0938 27.3305);--color-focus:lab(37.2801% 1.4853 -59.0549)}}
*{box-sizing:border-box}html,body{background:var(--color-paper);max-width:100vw;color:var(--color-ink);font-family:var(--font-body);margin:0;overflow-x:clip}button,input,select,textarea{font:inherit}button{border:0}a{color:inherit}::selection{background:var(--color-accent);color:var(--color-paper)}.shell{min-height:100vh;padding:var(--space-lg)}.topbar{justify-content:space-between;align-items:center;gap:var(--space-md);border-bottom:var(--rule-thick) solid var(--color-ink);padding-bottom:var(--space-md);display:flex}.brand{align-items:baseline;gap:var(--space-sm);min-width:0;display:flex}.brand h1{font-family:var(--font-display);font-size:clamp(var(--text-2xl), 8vw, var(--text-display));overflow-wrap:anywhere;margin:0;line-height:.92}.brand span{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.status-pill{border:var(--rule-thin) solid var(--color-ink);padding:var(--space-xs) var(--space-sm);background:var(--color-paper-2);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;border-radius:999px}.judge-notice{margin-top:var(--space-md);border:var(--rule-thin) solid var(--color-ink);border-left:var(--rule-thick) solid var(--color-accent-2);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);background:var(--color-paper-2);color:var(--color-ink);line-height:1.45}.judge-notice code{overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--text-sm)}.workspace{gap:var(--space-lg);padding-top:var(--space-lg);grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);display:grid}.panel{border:var(--rule-thick) solid var(--color-ink);border-radius:var(--radius-md);background:#fdfcf7;background:lab(98.8789% -.225395 2.2753);min-width:0}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-sm);border-bottom:var(--rule-thin) solid var(--color-rule);padding:var(--space-md);display:flex}.panel-header h2,.caption-card h3{font-size:var(--text-lg);margin:0}.panel-body{padding:var(--space-md)}.video-frame{aspect-ratio:16/10;border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper-2);place-items:center;display:grid;overflow:hidden}.video-frame video{object-fit:contain;background:var(--color-ink);width:100%;height:100%}.empty-video{max-width:24rem;color:var(--color-muted);text-align:center;line-height:1.45}.controls{gap:var(--space-sm);margin-top:var(--space-md);display:grid}.file-input{border:var(--rule-thin) dashed var(--color-muted);border-radius:var(--radius-md);padding:var(--space-md);background:var(--color-paper)}.button-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-xs);border:var(--rule-thick) solid var(--color-ink);border-radius:var(--radius-sm);min-height:2.75rem;padding:0 var(--space-md);background:var(--color-accent);color:var(--color-ink);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);font-weight:700;display:inline-flex}.btn:hover{background:var(--color-accent-2);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn:focus-visible,.file-input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.btn:disabled{background:var(--color-paper-3);color:var(--color-muted);cursor:not-allowed;transform:none}.btn.secondary{background:var(--color-paper)}.btn.secondary:hover{background:var(--color-paper-2)}.caption-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.caption-card{gap:var(--space-sm);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-md);background:var(--color-paper);min-height:13rem;display:grid}.caption-card p{margin:0;line-height:1.45}.caption-text{font-size:var(--text-lg);font-weight:700}.caption-meta,.history,.facts{color:var(--color-muted);font-size:var(--text-sm);line-height:1.45}.scorebar{justify-content:space-between;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);display:flex}.score{padding:var(--space-2xs) var(--space-xs);background:var(--color-paper-2);color:var(--color-ink);border-radius:999px}.facts{margin-top:var(--space-md);border-top:var(--rule-thin) solid var(--color-rule);padding-top:var(--space-md)}.history{gap:var(--space-xs);margin-top:var(--space-md);display:grid}.history-row{gap:var(--space-sm);border-top:var(--rule-thin) solid var(--color-rule);padding-top:var(--space-xs);grid-template-columns:minmax(0,1fr) auto;display:grid}@media (max-width:900px){.workspace,.caption-grid{grid-template-columns:1fr}}@media (max-width:560px){.shell{padding:var(--space-md)}.topbar,.panel-header{flex-direction:column;align-items:flex-start}.button-row{display:grid}.btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.12s!important;animation-duration:.12s!important}}
