:root{--bg:#f1f5f9;--pane:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--accent:#2563eb;--error:#dc2626;--inverse:#fff;--canvas:#fff;--ink:#000;--match:#16a34a;--close:#d97706;--off:#dc2626;--missing:#94a3b8;--font-body:Inter, sans-serif;--font-wordmark:"Funnel Display", sans-serif;--text-s:13px;--text-m:14px;--text-l:16px;--text-xl:22px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--radius-s:6px;--radius-m:8px;font-family:var(--font-body);font-size:var(--text-l);color:var(--text);background:var(--bg)}@font-face{font-family:Funnel Display;font-weight:700;font-display:swap;src:url(/assets/FunnelDisplay-Bold-CwA1vLLC.woff2)format("woff2")}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.status-match{color:var(--match)}.status-close{color:var(--close)}.status-off{color:var(--off)}.status-missing{color:var(--missing)}.header{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--pane);border-bottom:2px solid var(--border);box-shadow:0 1px 3px color-mix(in srgb, var(--ink) 8%, transparent);flex:none;display:flex}.header-wordmark{font-family:var(--font-wordmark);text-transform:lowercase;text-shadow:0 1px 1px color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink);font-size:24px;font-weight:700;line-height:1;text-decoration:none}.header-title{padding-left:var(--space-4);color:var(--muted);border-left:1px solid var(--border);margin:0;font-size:15px;font-weight:600}.button{padding:var(--space-2) var(--space-5);font:inherit;border-radius:var(--radius-s);cursor:pointer;border:0;font-weight:600;text-decoration:none}.button-primary{color:var(--inverse);background:var(--accent)}.button-secondary{padding:calc(var(--space-2) - 1px) calc(var(--space-5) - 1px);color:var(--text);background:var(--pane);border:1px solid var(--border)}.button-secondary:hover{background:var(--bg)}.button:disabled{opacity:.6;cursor:not-allowed}.button[aria-busy=true]{cursor:progress}.tag{padding:2px var(--space-2);font-size:var(--text-s);color:var(--muted);background:var(--bg);border-radius:999px;font-weight:600;text-decoration:none}.tag-match{color:var(--inverse);background:var(--match)}a.tag:hover{color:var(--text)}a.tag-match:hover{color:var(--inverse)}.panel{background:var(--pane);border:1px solid var(--border);border-radius:var(--radius-m);position:relative;overflow:hidden}.panel[data-label]:before{content:attr(data-label);top:var(--space-2);left:var(--space-2);z-index:1;padding:2px var(--space-2);border-radius:var(--radius-s);color:var(--inverse);background:var(--text);opacity:0;pointer-events:none;font-size:12px;font-weight:600;transition:opacity .15s;position:absolute}.panel[data-label]:hover:before{opacity:1}.checklist{padding:0 0 var(--space-2);flex:1;margin:0;list-style:none;overflow-y:auto}.checklist-row{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);cursor:default;grid-template-columns:18px 1fr;align-items:center;column-gap:10px;display:grid}.checklist-row:hover{background:var(--bg)}.checklist-check{border:2px solid var(--border);border-radius:4px;width:18px;height:18px;position:relative}.checklist-row.ticked .checklist-check{border-color:var(--match);background:var(--match)}.checklist-row.ticked .checklist-check:after{content:"";background:var(--inverse);position:absolute;inset:-2px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/14px no-repeat}.checklist.stale .checklist-verdict,.checklist.stale .checklist-row.ticked .checklist-check{opacity:.6}.checklist-label{font-size:var(--text-m)}.checklist-verdict{margin-top:var(--space-1);font-size:var(--text-s);font-variant-numeric:tabular-nums;grid-column:2;gap:10px;display:flex}.checklist-status{font-weight:700}.checklist-score,.checklist-offset{color:var(--muted)}.share-card{gap:var(--space-3);padding:var(--space-4);background:var(--bg);border-radius:var(--radius-m);display:grid}.share-card-text{font:inherit;font-size:var(--text-l);white-space:pre;margin:0;line-height:1.5}.share-card-actions{align-items:center;gap:var(--space-3);font-size:var(--text-m);color:var(--muted);display:flex}.share-card-actions a{color:inherit}.field{gap:var(--space-1);display:grid}.field-label{font-size:var(--text-m);font-weight:600}.field-input{width:100%;padding:var(--space-2) var(--space-3);font:inherit;color:var(--text);background:var(--pane);border:1px solid var(--border);border-radius:var(--radius-s)}.field-input:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea.field-input{resize:vertical;min-height:120px}.field-hint{font-size:var(--text-s);color:var(--muted)}.field-hint-error{color:var(--error)}.table{border-collapse:collapse;width:100%;font-size:var(--text-m);background:var(--pane)}.table th,.table td{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:600}.table .table-number{text-align:right;font-variant-numeric:tabular-nums}.notice{max-width:480px;margin:0 auto;padding:64px 24px;line-height:1.6}.notice h1{margin:0 0 var(--space-2);font-size:var(--text-xl)}.notice a{color:var(--accent)}.notice-bar{padding:var(--space-2) var(--space-3);font-size:var(--text-m);border-top:1px solid var(--border);align-items:center;gap:10px;margin:0;display:flex}.notice-bar a{color:var(--accent);font-weight:600}.notice-bar-match{background:color-mix(in srgb, var(--match) 8%, transparent)}.notice-bar-accent{background:color-mix(in srgb, var(--accent) 8%, transparent)}.notice-bar:has(.notice-bar-aside){row-gap:var(--space-1);flex-wrap:wrap}.notice-bar .notice-bar-aside{color:var(--muted);flex-basis:100%;font-weight:400}.footer{gap:var(--space-4);padding-top:var(--space-4);font-size:var(--text-s);border-top:1px solid var(--border);margin-top:40px;display:flex}.footer a{color:var(--muted)}.footer a:hover{color:var(--text)}.page{max-width:720px;padding:40px var(--space-5);margin:0 auto;line-height:1.6}.page h1{margin:0 0 var(--space-3);font-size:var(--text-xl)}.page h2{margin:40px 0 var(--space-2);font-size:var(--text-l)}.page p{margin:0 0 var(--space-3)}.page ol,.page ul{margin:0 0 var(--space-3);padding-left:var(--space-5)}.page li+li{margin-top:var(--space-2)}.page a{color:var(--accent)}.page-form{gap:var(--space-4);margin-top:var(--space-5);display:grid}.app{flex-direction:column;height:100%;display:flex}.app>main{flex:1;width:100%;overflow-y:auto}.page-error{color:var(--error);padding:24px}.home{max-width:1120px;margin:0 auto;padding:40px 24px 64px}.how-to-play{max-width:680px;color:var(--muted);margin:0 0 32px;line-height:1.6}.challenge-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0;padding:0;list-style:none;display:grid}.challenge-card{color:inherit;text-decoration:none;display:block}.challenge-card:hover{border-color:var(--accent)}.challenge-card img{aspect-ratio:16/10;object-fit:cover;object-position:top;border-bottom:1px solid var(--border);background:var(--canvas);width:100%;display:block}.challenge-card-title{justify-content:space-between;align-items:center;gap:var(--space-2);padding:10px var(--space-3);font-weight:600;display:flex}.challenge-card-day{margin-top:calc(-1 * var(--space-2));padding:0 var(--space-3) var(--space-3);font-size:var(--text-s);color:var(--muted);display:block}.home section+section{margin-top:var(--space-5)}.home-heading{margin:0 0 var(--space-4);font-size:var(--text-xl)}.home-daily{margin-bottom:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.home-daily-mock img{aspect-ratio:16/10;object-fit:cover;object-position:top;border-right:1px solid var(--border);background:var(--canvas);width:100%;display:block}.home-daily-body{justify-content:center;gap:var(--space-4);padding:var(--space-5);flex-direction:column;display:flex}.home-daily-body .home-heading{margin:0}.home-daily-text{color:var(--muted);margin:0;line-height:1.6}.home-daily-actions{align-items:center;gap:var(--space-4);color:var(--muted);font-size:var(--text-m);display:flex}.admin{max-width:1120px;padding:var(--space-5);margin:0 auto}.admin-section{padding:var(--space-4) var(--space-5)}.admin-section+.admin-section{margin-top:var(--space-5)}.admin-section h2{margin:0 0 var(--space-3);font-size:var(--text-l)}.admin-section .table+h2,.admin-section .admin-muted+h2{margin-top:var(--space-5)}.admin-section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.admin-runway{font-size:var(--text-m);color:var(--muted);font-weight:600}.admin-runway.low{color:var(--error)}.admin-thumb{aspect-ratio:16/10;object-fit:cover;object-position:top;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--canvas);width:96px;display:block}.admin-change{gap:var(--space-2);display:flex}.admin-change .field-input{width:auto;min-width:220px}.admin-muted{color:var(--muted);margin:0}.admin-statuses{gap:var(--space-1) var(--space-3);margin:var(--space-1) 0 0;flex-wrap:wrap;padding:0;font-weight:600;list-style:none;display:flex}.admin-render img{border:1px solid var(--border);max-width:100%;display:block}.admin-text{white-space:pre-wrap}.admin-login{gap:var(--space-4);width:100%;max-width:400px;margin:var(--space-5) auto 0;display:grid}.arrangement{border:1px solid var(--border);border-radius:var(--radius-s);margin-left:auto;display:flex;overflow:hidden}.arrangement button{padding:6px var(--space-2);color:var(--muted);cursor:pointer;background:0 0;border:0;display:flex}.arrangement button+button{border-left:1px solid var(--border)}.arrangement button[aria-pressed=true]{color:var(--text);background:var(--bg)}.arrangement svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round}.play{gap:var(--space-2);min-height:0;padding:var(--space-2);flex:1;grid-template-columns:minmax(0,1fr) 320px;display:grid}.play.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 64px}.play .panel{width:100%;min-width:0;height:100%;min-height:0}.panel>.scaled{padding:var(--space-2)}.compare{gap:var(--space-2);width:100%;height:100%;display:flex}.compare.stacked{flex-direction:column}.compare>.panel{flex:1 1 0}.resize-handle{flex:none;position:relative}.resize-handle[data-panel-group-direction=horizontal]{width:8px}.resize-handle[data-panel-group-direction=vertical]{height:8px}.resize-handle:after{content:"";border-radius:2px;transition:background .15s;position:absolute;inset:3px}.resize-handle[data-resize-handle-state=hover]:after,.resize-handle[data-resize-handle-state=drag]:after{background:var(--accent)}.scaled{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.scaled-frame{box-shadow:0 0 0 1px var(--border);position:relative;overflow:hidden}.scaled-content{transform-origin:0 0;position:absolute;top:0;left:0}.scaled-content>img,.scaled-content>iframe{background:var(--canvas);border:0;display:block}.mock-highlight{outline:3px dashed var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);pointer-events:none;position:absolute}.sidebar-pane{flex-direction:column;display:flex}.sidebar{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-head{align-items:center;gap:var(--space-3);padding:10px var(--space-3);display:flex}.sidebar-toggle{color:var(--muted);border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:6px;display:flex}.sidebar-toggle:hover{color:var(--text);background:var(--bg)}.sidebar-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.rail{padding:var(--space-2) 0;align-items:center;gap:10px}.rail .sidebar-toggle{margin-left:0}.rail .button{width:52px;padding:var(--space-2) 0;font-size:var(--text-s)}.rail .composite-score{font-size:18px}.rail .progress{width:40px;margin:0}.rail .error{cursor:help;margin:0}.rail .checklist{flex-direction:column;align-items:center;gap:2px;width:100%;padding:0;display:flex}.rail .checklist-row{width:100%;padding:var(--space-2) 0;border-top:0;justify-content:center;display:flex}.rail .checklist-check[class*=status-]{border-color:currentColor}.composite{align-items:baseline;gap:var(--space-1);display:flex}.composite-score{font-size:var(--text-xl);font-weight:700}.composite-of{color:var(--muted)}.ticked-count{margin-left:var(--space-2);color:var(--muted);font-size:var(--text-m);font-variant-numeric:tabular-nums}.composite .tag{margin-left:var(--space-2)}.stale-note{padding:0 var(--space-3) var(--space-2);color:var(--muted);font-size:var(--text-s);margin:0}.sidebar-judging{padding:0 var(--space-3) var(--space-3);margin:0}.verdict-report{gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--border);display:grid}.verdict-report>.button{justify-self:start}.verdict-report-actions{gap:var(--space-2);display:flex}.grades-left{padding:var(--space-3) var(--space-3) 0;color:var(--muted);font-size:var(--text-m);font-variant-numeric:tabular-nums;margin:0}.rail .grades-left{font-size:var(--text-s);cursor:help;padding:0}.sidebar-share{padding:0 var(--space-3) var(--space-3)}.sidebar-share .share-card-actions{flex-wrap:wrap}.progress{height:3px;margin:0 var(--space-3);background:linear-gradient(90deg, transparent, var(--accent), transparent) 0 0 / 40% 100% no-repeat;animation:1.2s linear infinite progress}@keyframes progress{0%{background-position:-40% 0}to{background-position:140% 0}}.error{margin:var(--space-1) var(--space-3);color:var(--error);font-weight:600}.overlay{pointer-events:none;position:absolute;inset:0}.overlay-target{stroke:currentColor;fill:currentColor}.overlay-target rect{fill:none;stroke-width:2px}.overlay-target .expected{stroke-dasharray:6 4}.overlay-target text{font:600 20px var(--font-body);paint-order:stroke;stroke:var(--canvas);stroke-width:4px}.overlay-target.faded{opacity:.2}.overlay-target.hovered rect{stroke-width:4px}.editor-pane{flex-direction:column;display:flex}.tooling{gap:var(--space-1);padding:6px var(--space-2);border-bottom:1px solid var(--border);display:flex}.tooling button{padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--text-s);color:var(--muted);border-radius:var(--radius-s);cursor:pointer;background:0 0;border:1px solid #0000;font-weight:600}.tooling button[aria-pressed=true]{color:var(--accent);background:var(--bg);border-color:var(--border)}.editor{flex:1;min-width:0;overflow:hidden}.editor .cm-editor{height:100%;font-size:var(--text-s)}.editor .cm-scroller{overflow:auto}
