@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";.contest-app{--navy: #182d3c;--teal: #096b61;--muted: #65747c;--line: #dce3e5;max-width:1540px;margin:auto;padding:30px 36px 48px;color:var(--navy);font-family:Inter,Noto Sans JP,system-ui,sans-serif;font-size:14px}.contest-app button,.contest-app select{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);padding:9px 13px}.contest-app button:hover:not(:disabled){border-color:var(--teal);background:#eff8f4}.contest-app button:disabled{opacity:.45;cursor:default}.contest-app button:focus-visible,.contest-app textarea:focus-visible,.contest-app select:focus-visible{outline:3px solid #f0b952;outline-offset:3px}.contest-app .primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:650}.contest-app .primary:hover:not(:disabled){color:var(--teal)}.contest-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.contest-app .eyebrow{font-size:10px;font-weight:750;letter-spacing:.14em;margin:0 0 7px;color:var(--teal)}.contest-header h1{font-size:clamp(22px,2.6vw,34px);margin:0 0 8px;letter-spacing:-.04em}.contest-header p:not(.eyebrow){margin:0;color:var(--muted)}.contest-header nav{display:flex;gap:5px;padding:4px;background:#e9eeec;border-radius:12px;white-space:nowrap}.contest-header nav button{border-color:transparent;background:transparent}.contest-header nav .active{background:#fff;box-shadow:0 2px 5px #20362a10}.contest-overview{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-radius:12px;background:var(--navy);color:#fff}.contest-overview>div:first-child{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}.contest-overview .eyebrow{color:#abd8c6}.contest-overview strong{font-size:30px;font-variant-numeric:tabular-nums}.contest-overview strong small{font-size:14px;font-weight:400;color:#bfcfd3}.workspace-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.autosave{font-size:11px;color:#bfcfd3}.case-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:20px 0}.contest-app .case-card{display:flex;gap:10px;text-align:left;padding:10px;min-width:0}.case-card svg{flex:none;width:58px;height:58px}.case-card line{stroke:#b7c3c8;stroke-width:1.2}.case-card circle{fill:#799ba1;stroke:#fff;stroke-width:1.5}.case-card span{display:flex;flex-direction:column;gap:4px}.case-card b{font-size:15px}.case-card small{color:var(--muted);font-size:11px}.contest-app .case-card.selected{border:2px solid var(--teal);padding:9px;background:#eff8f4}.case-card.selected circle{fill:var(--teal)}.contest-workbench{display:grid;grid-template-columns:minmax(240px,var(--editor-weight, 40fr)) minmax(0,var(--explore-weight, 60fr));gap:20px;align-items:start}.work-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-heading h2,.submission-panel h2{font-size:19px;margin:0}.metric{color:var(--muted);font-size:12px;background:#f1f4f3;border-radius:6px;padding:7px 10px;white-space:nowrap}.template-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.template-row label{color:var(--muted);font-size:12px}.template-row select{flex:1}.editor-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px}.contest-app .editor-tabs button{border:0;border-radius:0;background:none}.contest-app .editor-tabs button[aria-pressed=true]{color:var(--teal);border-bottom:2px solid var(--teal);font-weight:650}.contest-app .rule-editor{display:block;width:100%;height:340px;resize:vertical;padding:16px;border:1px solid #d5dfe1;border-radius:8px;color:#153949;background:#f6f9f8;font:13px/1.8 IBM Plex Mono,ui-monospace,monospace;white-space:pre;-moz-tab-size:2;tab-size:2}.judge-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.hint{color:var(--muted);font-size:12px;line-height:1.7}.help{border-top:1px solid var(--line);padding:13px 0 0;margin-top:14px;font-size:12px;line-height:1.8}.help summary{cursor:pointer;font-weight:600}.help pre{overflow:auto;max-height:200px;background:#f6f9f8;padding:10px}.help dl{display:grid;grid-template-columns:70px 1fr;gap:7px}.help dd{margin:0}.help code{background:#edf2f0;padding:2px 4px;border-radius:3px}.graph-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.graph-toolbar label,.playback label{display:flex;align-items:center;gap:5px;font-size:12px}.contest-graph{height:480px;background:radial-gradient(#dfe7e7 1px,transparent 1px);background-size:18px 18px;margin:14px 0;border:1px solid #e5eceb;border-radius:10px}.graph-key{display:flex;flex-wrap:wrap;gap:13px;color:var(--muted);font-size:10px;margin:10px 0 17px}.playback{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.simulation-status{font-size:12px;background:#f1f5f4;padding:12px;border-radius:8px;line-height:1.6}.last-step{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px}.last-step code{display:block;width:100%;overflow-wrap:anywhere;padding:8px;background:#f9f6ed}.branch-picker,.inline-confirm{padding:12px;margin:12px 0;border-radius:8px;background:#fff5db;font-size:12px}.branch-picker div,.inline-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.results-panel{margin-top:20px}.start-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.start-results button{text-align:left;display:flex;flex-direction:column;gap:6px;font-size:12px}.contest-app .start-results .passed{opacity:1;border-color:#cde6d9;background:#f2faf5;color:var(--teal)}.contest-app .start-results .failed{border-color:#e9cec2;background:#fff7f2}.start-results small{font-size:10px}.submission-panel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:20px}.submission-panel p:not(.eyebrow){color:var(--muted);font-size:12px}.submission-actions{display:flex;flex-wrap:wrap;gap:8px}.notice{padding:12px 16px;border:1px solid #d1e2d8;background:#f1f9f3;border-radius:8px;margin-bottom:16px;font-size:13px}.contest-app .success{color:var(--teal)}.contest-app .error{color:#b33128;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.trace-list{max-height:180px;overflow:auto}@media (max-width: 1050px){.contest-app{padding:22px 20px}.contest-overview{align-items:start;flex-direction:column}.case-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.case-card svg{width:38px;height:48px}}@media (max-width: 760px){.contest-app{padding:18px 12px}.contest-header{align-items:start;flex-direction:column}.contest-workbench{grid-template-columns:1fr}.case-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.case-card svg{width:50px;height:50px}.work-panel,.contest-overview{padding:16px}.contest-app .rule-editor{height:260px;font-size:14px}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important}}.code-editor{--editor-line-height: 24px;--editor-font-size: 13px;display:flex;min-width:0;border:1px solid #d5dfe1;border-radius:8px;overflow:hidden;background:#f6f9f8}.contest-app .code-editor .rule-editor{border:0;border-radius:0;padding-left:10px;min-width:0;flex:1;font-size:var(--editor-font-size);line-height:var(--editor-line-height)}.line-numbers{position:relative;width:44px;flex:none;align-self:stretch;text-align:right;color:#8a999c;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--editor-font-size);line-height:var(--editor-line-height);overflow:hidden;border-right:1px solid #e0e8e6}.line-number-content{position:absolute;top:0;left:0;right:0;padding:16px 0}.line-number-content>div{height:var(--editor-line-height);padding-right:8px}.line-numbers .active-line{background:#fff0c6;color:#805f0a}@media (max-width: 760px){.code-editor{--editor-font-size: 14px;--editor-line-height: 26px}}.atlas-select{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:20px 0}.atlas-select label{display:flex;align-items:center;gap:8px}.atlas-select span{font-size:12px;color:var(--muted)}.atlas-colors{width:100%;height:90px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;font:13px/1.6 monospace}.share-link{display:inline-block;padding:10px 16px;background:var(--navy);color:#fff;border-radius:8px;text-decoration:none}.visual-panel,.contest-graph{position:relative}.explore-width-handle,.explore-height-handle{position:absolute;z-index:2;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px}.explore-width-handle{left:-17px;top:0;bottom:0;width:12px;cursor:ew-resize}.explore-height-handle{left:0;right:0;bottom:-8px;height:16px;cursor:ns-resize}.explore-width-handle:after,.explore-height-handle:after{content:"";position:absolute;background:#9dbbb5;border-radius:3px}.explore-width-handle:after{width:4px;height:64px;top:40%;left:4px}.explore-height-handle:after{height:4px;width:64px;left:calc(50% - 32px);top:6px}.explore-width-handle:hover,.explore-height-handle:hover,.explore-width-handle:focus-visible,.explore-height-handle:focus-visible{background:#d8e9e4;outline:2px solid var(--teal)}@media (max-width: 760px){.explore-width-handle{display:none}}.sandbox-app .contest-overview{margin-bottom:20px}.sandbox-app .contest-overview strong{font-size:24px}.sandbox-app .panel-heading,.sandbox-app .editor-tabs{flex-wrap:wrap}.sandbox-app .field{margin-top:12px}.sandbox-app .field select,.sandbox-app .field input{width:100%;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font:inherit}.sandbox-app .graph-toolbar input{width:100px;padding:8px;border:1px solid var(--line);border-radius:8px}.sandbox-app .contest-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.sandbox-app .note{color:var(--muted);font-size:12px;line-height:1.7}.sandbox-app .result-panel{overflow-x:auto}.sandbox-app .rules-help,.sandbox-app .rules-detail-panel{background:#f6f9f8;border-color:var(--line)}.sandbox-app .trace-row{overflow-wrap:anywhere}.sandbox-app .contest-overview .hint{color:#c6d9dd}.sandbox-app .graph-studio .field{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px}.sandbox-app .graph-studio .field label{color:var(--muted);font-size:12px;letter-spacing:normal}.failure-trace{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.failure-trace .panel-heading{flex-wrap:wrap}.failure-trace h3{margin:0}.failure-steps{list-style:none;padding:0;display:grid;gap:10px}.failure-steps li{background:#f6f9f8;border:1px solid var(--line);border-radius:8px;padding:14px;font-size:12px;overflow-wrap:anywhere}.failure-step-heading{display:flex;flex-wrap:wrap;gap:16px}.failure-steps p{margin:8px 0}.failure-steps code{display:block;white-space:pre-wrap}.failure-steps .failure-last{background:#fff4ef;border-color:#ddab99}:root{font-family:Space Grotesk,IBM Plex Sans,system-ui,sans-serif;color:#1a1a1a;background:#f4f1ec;font-size:17px;--ink: #1a1a1a;--muted: #5c5c5c;--panel: #ffffff;--panel-2: #fdfaf5;--line: #e7e2da;--accent: #2f6bff;--accent-2: #ff8a3d;--shadow: 0 12px 30px rgba(24, 18, 9, .08);--shadow-soft: 0 6px 16px rgba(24, 18, 9, .06)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#fff7ec,#f4f1ec 40%,#f0ebe4)}.app{padding:24px 28px 36px}.header{margin-bottom:16px;padding:10px 14px;border-radius:14px;background:linear-gradient(120deg,#fff7ec,#fff 55%,#fff3e6);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.header h1{margin:0 0 4px;font-size:30px;letter-spacing:-.02em}.header p{margin:0;color:var(--muted)}.columns{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;position:relative}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow-soft)}.panel h2{margin:12px 0 8px;font-size:16px;text-transform:uppercase;color:#6b5c4d;letter-spacing:.08em}.panel textarea,.panel input,.panel select{width:100%;padding:8px;border:1px solid #d7cfc4;border-radius:10px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;background:#fffdf9}.panel textarea:focus,.panel input:focus,.panel select:focus{outline:2px solid rgba(47,107,255,.25);border-color:#9ab7ff}.panel textarea::placeholder,.panel input::placeholder{color:#b9b0a6}.tabs{display:flex;gap:8px;margin-bottom:12px}.tab{padding:6px 12px;border-radius:999px;border:1px solid #d7cfc4;background:#fffdf7;font-size:13px;cursor:pointer}.tab.active{border-color:var(--accent);color:var(--accent)}.algo-panel{padding:10px;border:1px solid #efe7dd;border-radius:12px;background:#fffdf7}.algo-panel .field label{min-width:110px;white-space:nowrap}.algo-panel .field>:not(label){flex:1;min-width:0}.contest-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.contest-report{margin-top:10px;padding:8px;border-radius:10px;border:1px solid #efe7dd;background:#fffdf7;font-size:13px}.contest-total-score{margin-top:6px;padding:8px 10px;border-radius:8px;background:linear-gradient(135deg,#fff1c7,#ffe2a8);border:1px solid #e2b35c;color:#6b3f00;font-size:22px;font-weight:700;letter-spacing:.02em}.contest-output{margin-top:10px}.contest-editor{margin-top:10px;display:grid;gap:8px}.graph-studio{margin-top:12px}.graph-studio code{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.contest-table{display:grid;gap:4px;margin-top:6px}.contest-row{display:grid;grid-template-columns:50px 50px 1fr 1fr;gap:8px;padding:4px 6px;border-radius:6px;background:#fff8ee}.rules-help{margin-top:10px;padding:10px;border-radius:10px;border:1px solid #efe7dd;background:#fffdf7;font-size:13px}.rules-help-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66;margin-bottom:6px}.rules-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rules-help-item{padding:6px 8px;border-radius:8px;background:#fff8ee;border:1px solid #f2e6d5}.static-value{padding:6px 8px;border-radius:6px;border:1px solid #efe7dd;background:#fffdf7;font-size:14px}.ln-textarea{display:grid;grid-template-columns:38px 1fr;gap:0;border:1px solid #efe7dd;border-radius:8px;background:#fffdf7;overflow:hidden;width:100%;box-sizing:border-box}.rules-monaco{border:1px solid #efe7dd;border-radius:8px;overflow:hidden;background:#fffdf7;width:100%;flex:1;min-width:0}.rules-comment-line{color:#1a7f37!important;font-style:italic;font-weight:600}.ln-textarea textarea{border:none;outline:none;padding:8px;resize:vertical;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:14px;line-height:1.5;background:transparent;width:100%;box-sizing:border-box}.ln-gutter{padding:8px 6px;text-align:right;color:#b2a59b;font-size:14px;line-height:1.5;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;border-right:1px solid #efe7dd;background:#fdf8f1;-webkit-user-select:none;user-select:none;pointer-events:none}.trace-summary{margin:6px 0 10px;padding:6px 8px;border-radius:8px;border:1px solid #efe7dd;background:#fffdf7;font-size:13px;display:flex;gap:16px;flex-wrap:wrap}.mini-summary{margin-top:8px;padding:6px 8px;border-radius:8px;border:1px solid #efe7dd;background:#fffdf7;font-size:13px;display:flex;gap:16px;flex-wrap:wrap}.warn{margin-top:6px;padding:6px 8px;border-radius:8px;border:1px solid #f2d2a8;background:#fff6e6;font-size:13px;color:#8a5b1a}.snapshot-panel{margin-top:12px;padding:10px;border-radius:10px;border:1px solid #efe7dd;background:#fffdf7}.snapshot-header{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66;margin-bottom:6px}.snapshot-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.snapshot-row input{flex:1}.snapshot-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;background:#fff8ee;border:1px solid #f2e6d5;margin-bottom:6px}.snapshot-name{font-size:13px;color:#4e433a}.snapshot-actions{display:flex;gap:6px}.slider-row{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;width:clamp(160px,28vw,240px)}.slider-row input[type=range]{width:100%}.slider-number{width:78px}.slider-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px}.slider-value{min-width:70px;text-align:right;font-size:13px;color:#6c5e55}.rules-help-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6f5f50;margin-bottom:4px}.rules-help-body{display:grid;gap:2px;color:#433a32}.rules-help-body code{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;background:#f4ece2;padding:0 4px;border-radius:4px}.rules-help-note{margin-top:6px;color:#6b5c4d}.rules-help-note code{background:#f6efe6;padding:1px 6px;border-radius:6px}.rules-detail{margin-top:10px;padding:10px;border-radius:10px;border:1px solid #efe7dd;background:#fffdf7;font-size:13px}.rules-detail-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66;margin-bottom:6px}.rules-detail ul{margin:0;padding-left:18px;color:#4a4037}.rules-detail li{margin-bottom:4px}.rules-detail-block{margin-bottom:8px}.rules-detail-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66;margin-bottom:4px}.field{display:flex;align-items:center;gap:8px;margin-bottom:8px}.field label{font-size:14px;color:#4b4035;text-transform:uppercase;letter-spacing:.06em}.settings-box .field{align-items:center}.settings-box .field label{min-width:120px;white-space:nowrap}.settings-box .field>:not(label){flex:1;min-width:0}.note{font-size:14px;color:var(--muted);margin-top:6px}.legend{margin-top:10px;border:1px solid #efe7dd;border-radius:10px;padding:8px;background:#fffdf7}.legend-title{font-size:12px;text-transform:uppercase;color:#7a6f66;margin-bottom:6px}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:6px}.legend-item{display:flex;align-items:center;gap:6px;font-size:13px}.legend-name{color:#7a6f66;font-size:12px}.legend-swatch{width:14px;height:14px;border-radius:4px;border:1px solid #999}.error{margin-top:6px;color:#b12a2a;font-size:14px}.right .graph-area{height:320px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:var(--panel-2);resize:both;overflow:hidden;min-width:260px;min-height:220px}.graph-canvas{width:100%;height:100%}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.controls .controls-start-field{flex-basis:100%}.controls .controls-break{flex-basis:100%;height:0}.controls button{padding:6px 10px;border-radius:999px;border:1px solid #2f2f2f;background:#fff;cursor:pointer;font-size:14px;box-shadow:0 1px #00000014}.contest-actions button{padding:6px 10px;font-size:13px;white-space:nowrap}.controls button:hover{border-color:var(--accent);color:var(--accent)}.controls button:active{transform:translateY(1px)}.controls button:disabled{opacity:.4;cursor:default}.status-line{font-size:14px;color:#3b332b;margin-bottom:10px}.controls-help{margin:8px 0 10px;padding:10px;border:1px solid #efe7dd;border-radius:10px;background:#fffdf7;font-size:13px;color:#4a4037}.controls-help-title{margin-bottom:6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66}.controls-help-row{margin-bottom:4px}.result-panel table{width:100%;border-collapse:collapse;font-size:14px}.result-panel thead th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66}.settings-box{margin-bottom:12px;padding:10px 12px;border-radius:12px;border:1px solid #efe7dd;background:#fffdf7;box-shadow:var(--shadow-soft)}.settings-box h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7a6f66}.result-panel th,.result-panel td{border-bottom:1px solid #efe7dd;padding:6px 4px;text-align:left}.result-panel tr.fail{background:#fff4f1}.result-panel tr.ok{background:#f0fff6}.result-panel tr:hover{background:#f7f2ea;cursor:pointer}.trace-panel{margin-top:12px}.trace-row{border:1px solid #efe7dd;border-radius:10px;padding:6px 8px;margin-bottom:6px;font-size:14px}.trace-row.bad{border-color:#e06d6d;background:#fff1f1}.trace-main,.trace-sub{display:flex;flex-wrap:wrap;gap:8px}.trace-sub{color:#5a4f45;margin-top:4px}.muted{color:#7a6f66;font-size:14px}@media (max-width: 980px){.columns{grid-template-columns:1fr}}
