:root{--md-sys-color-primary:#0047ab;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#d8e2ff;--md-sys-color-on-primary-container:#001a41;--md-sys-color-secondary:#57606f;--md-sys-color-on-secondary:#fff;--md-sys-color-error:#a5122d;--md-sys-color-on-error:#fff;--md-sys-color-background:#f8f9fa;--md-sys-color-on-background:#1a1a1a;--md-sys-color-surface:#fff;--md-sys-color-on-surface:#1a1a1a;--md-sys-color-surface-variant:#e1e2ec;--md-sys-color-on-surface-variant:#44474f;--md-sys-color-outline:#74777f;--md-sys-color-outline-variant:#c4c6d0;--color-accent-blue:#0047ab;--color-on-accent-blue:#fff;--color-accent-green:#006837;--color-on-accent-green:#fff;--color-accent-red:#a5122d;--color-on-accent-red:#fff;--color-accent-teal:teal;--color-on-accent-teal:#fff;--color-accent-orange:#e67e22;--color-on-accent-orange:#fff;--color-accent-grey:#ced6e0;--color-on-accent-grey:#1a1a1a;--radius-small:8px;--radius-medium:12px;--radius-large:16px;--radius-extra-large:28px;--radius-full:100px;--elevation-1:0 1px 3px 1px #00000026, 0 1px 2px 0 #0000004d;--elevation-2:0 2px 6px 2px #00000026, 0 1px 2px 0 #0000004d;--elevation-3:0 4px 8px 3px #00000026, 0 1px 3px 0 #0000004d;--spacing-xs:4px;--spacing-s:8px;--spacing-m:12px;--spacing-l:16px;--spacing-xl:24px;--spacing-xxl:32px;--interaction-hover:brightness(.9);--interaction-active:brightness(.8);--scroll-shadow-color:rgba(from var(--md-sys-color-outline) r g b / .4)}@media (prefers-color-scheme:dark){:root{--md-sys-color-primary:#adc6ff;--md-sys-color-on-primary:#002e69;--md-sys-color-primary-container:#004494;--md-sys-color-on-primary-container:#d8e2ff;--md-sys-color-secondary:#bfc6dc;--md-sys-color-on-secondary:#293041;--md-sys-color-error:#ffb4ab;--md-sys-color-on-error:#690005;--md-sys-color-background:#1a1c1e;--md-sys-color-on-background:#e2e2e6;--md-sys-color-surface:#1a1c1e;--md-sys-color-on-surface:#e2e2e6;--md-sys-color-surface-variant:#44474f;--md-sys-color-on-surface-variant:#c4c6d0;--md-sys-color-outline:#8e9099;--md-sys-color-outline-variant:#44474f;--color-accent-blue:#adc6ff;--color-on-accent-blue:#002e69;--color-accent-green:#68d391;--color-on-accent-green:#00391c;--color-accent-red:#ffb4ab;--color-on-accent-red:#690005;--color-accent-teal:#81e6d9;--color-on-accent-teal:#003734;--color-accent-orange:#fbd38d;--color-on-accent-orange:#4b2800;--color-accent-grey:#44474f;--color-on-accent-grey:#e2e2e6;--elevation-1:0 1px 2px 0 #0000004d, 0 1px 3px 1px #00000026;--elevation-2:0 2px 4px 0 #0000004d, 0 2px 6px 2px #00000026;--elevation-3:0 4px 8px 0 #0000004d, 0 4px 12px 4px #00000026;--interaction-hover:brightness(1.1);--interaction-active:brightness(1.2);--scroll-shadow-color:rgba(from var(--md-sys-color-outline) r g b / .4)}}body{margin:0 var(--spacing-s);padding:0 var(--spacing-s);background-color:var(--md-sys-color-background);align-items:safe center;gap:var(--spacing-l);color:var(--md-sys-color-on-background);box-sizing:border-box;flex-direction:column;width:auto;font-family:Pretendard,sans-serif;transition:background-color .3s,color .3s;display:flex}header{background-color:var(--md-sys-color-background);justify-content:center;align-items:center;width:100%;min-height:56px;display:flex;position:relative}header h1{margin:0;margin-left:var(--spacing-s);color:var(--md-sys-color-on-background);font-size:1.125rem;font-weight:600}#gameBody main{visibility:hidden;display:contents}#gameBody footer{visibility:hidden}footer{text-align:center;width:100%;max-width:1400px}#controls{padding:var(--spacing-xl);background:var(--md-sys-color-surface);border-radius:var(--radius-large);box-shadow:var(--elevation-1);justify-content:center;align-items:center;gap:var(--spacing-l);box-sizing:border-box;flex-flow:column wrap;width:100%;max-width:1400px;transition:background-color .3s,box-shadow .3s;display:flex}.controls .group{justify-content:left;align-items:center;gap:var(--spacing-s);flex-flow:wrap;width:100%;display:flex}.controls .pair{align-items:center;gap:var(--spacing-s);flex-direction:row;display:flex}.controls label{color:var(--md-sys-color-on-surface);white-space:nowrap;font-size:1rem;font-weight:700}.controls input,.controls select{box-sizing:border-box;border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--radius-medium);background:var(--md-sys-color-surface);min-height:2.5rem;color:var(--md-sys-color-on-surface);font-size:1rem;transition:border-color .2s,background-color .3s}.controls select{padding:1px var(--spacing-m)}.controls input{text-align:center;margin:0;line-height:1}.controls input:focus,.controls select:focus{border-color:var(--md-sys-color-primary);outline:2px solid var(--md-sys-color-primary);outline-offset:-2px}.input-row{min-height:2.5rem}main.in-game .hide-in-game,main:not(.in-game) .only-in-game{display:none}body.canvas-only{margin:0;padding:0}body.canvas-only #controls,body.canvas-only header,body.canvas-only footer{display:none!important}body.canvas-only #ladderCanvasWrapper{box-shadow:none;background:0 0;border:0;border-radius:0;width:fit-content;max-width:fit-content;padding:0}button{padding:var(--spacing-m) var(--spacing-xl);cursor:pointer;color:var(--md-sys-color-on-secondary);border-radius:var(--radius-full);letter-spacing:.1px;white-space:nowrap;background:var(--md-sys-color-secondary);border:none;font-size:1rem;font-weight:600;transition:all .2s}@media (hover:hover) and (pointer:fine){button:hover{filter:var(--interaction-hover);box-shadow:var(--elevation-1)}}button:active{filter:var(--interaction-active)}button:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}#btnRun{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}#btnShowAll,.btnGreen{background:var(--color-accent-green);color:var(--color-on-accent-green)}#btnCopy{background:var(--md-sys-color-secondary);color:var(--md-sys-color-on-secondary)}#btnReset,.btnRed{background:var(--md-sys-color-error);color:var(--md-sys-color-on-error)}#btnFill{background:var(--color-accent-teal);color:var(--color-on-accent-teal)}#nameInputs input{border-left:4px solid var(--color-accent-blue);width:7.5rem}#destInputs input{border-left:4px solid var(--color-accent-orange);width:7.5rem}#destInputs input:focus{border-color:var(--color-accent-orange);outline:2px solid var(--color-accent-orange);outline-offset:-2px}#ladderCanvasWrapper{padding:0 0 var(--spacing-xl);background:var(--md-sys-color-surface);border-radius:var(--radius-large);box-shadow:var(--elevation-1);box-sizing:border-box;text-align:center;max-width:100%;height:fit-content;line-height:0;transition:background-color .3s}#ladderToolbar{padding:0 var(--spacing-xl);box-sizing:border-box;flex-direction:row;justify-content:flex-end;align-items:center;max-width:100vw;height:32px;display:flex;position:sticky}#ladderToolbar #btnFit{background-color:#0000;border:0;border-radius:0;width:24px;height:24px;margin:0;padding:0;line-height:0;right:0}#ladderToolbar #btnFit svg{fill:var(--md-sys-color-on-background)}@media (hover:hover){#ladderToolbar #btnFit:hover{filter:var(--interaction-hover)}}#ladderToolbar #btnFit:active{transform:scale(.95)}.ladder-scroll-container{-webkit-overflow-scrolling:touch;box-sizing:border-box;flex-direction:row;max-width:100%;height:fit-content;padding:0;display:flex;position:relative;overflow-x:auto;container-type:scroll-state}canvas{z-index:0;width:0;height:0}.ladder-scroll-container:before,.ladder-scroll-container:after{pointer-events:none;z-index:3;content:"";width:0;transition:box-shadow .3s ease-in-out;position:sticky}.ladder-scroll-container:before{left:0}.ladder-scroll-container:after{right:0}@container scroll-state(scrollable:left){.ladder-scroll-container:before{box-shadow:0 0 8px 8px var(--scroll-shadow-color)}}@container scroll-state(scrollable:right){.ladder-scroll-container:after{box-shadow:0 0 8px 8px var(--scroll-shadow-color)}}svg#labelSvg{pointer-events:none;z-index:1;width:0;height:0;font-size:1em;position:absolute;top:0;left:0}#labelSvg text{fill:var(--md-sys-color-on-surface)}#labelSvg text.blue{fill:var(--color-accent-blue)}#labelSvg text.orange{fill:var(--color-accent-orange)}#labelSvg text.grey{fill:var(--color-accent-grey)}#labelSvg rect{fill:var(--md-sys-color-surface)}#labelSvg path.check{fill:none;stroke:var(--color-accent-blue);stroke-width:2px}.info-text{color:var(--md-sys-color-on-surface-variant);word-break:keep-all;margin-top:0;font-size:.875rem;font-weight:400;line-height:1.4}.info-text strong{color:var(--md-sys-color-primary)}.site-info-text{color:var(--md-sys-color-on-surface-variant);font-size:.8rem}.footer-separator{margin:0 var(--spacing-xs);color:var(--md-sys-color-outline-variant)}footer .lang-switcher{gap:var(--spacing-xs);display:inline-flex}header .lang-switcher{line-height:0;display:inline-block;position:absolute!important;right:32px!important}header #btnLang{all:unset}#langMenu{background:#fff;border:1px solid #ccc;flex-direction:column;display:flex;position:absolute;right:0}#langMenu button{padding:var(--spacing-m) var(--spacing-m);box-sizing:border-box;min-height:2rem;color:var(--md-sys-color-on-secondary);background:var(--md-sys-color-secondary);border:0;border-radius:0;margin:0}#langMenu.hidden{display:none!important}header .lang-switcher svg{fill:var(--md-sys-color-on-background)}.lang-link{border-radius:var(--radius-small);padding:2px 4px;transition:background-color .2s;border-bottom:none!important;text-decoration:none!important}.lang-link:hover{background-color:var(--md-sys-color-surface-variant)}html[lang=ko] .lang-link[data-lang=ko],html[lang=en] .lang-link[data-lang=en],html[lang=ja] .lang-link[data-lang=ja]{color:var(--md-sys-color-primary);background-color:var(--md-sys-color-primary-container);font-weight:800}.link{color:var(--md-sys-color-primary);text-decoration:underline;-webkit-text-decoration-color:var(--md-sys-color-primary);text-decoration-color:var(--md-sys-color-primary);text-line-through-style:solid;text-underline-offset:3px;font-weight:600;text-decoration-thickness:1px;transition:text-decoration-thickness .2s}.link:hover{text-decoration-thickness:2px}.no-break{white-space:nowrap;display:inline-block}@media (width<=480px){.controls label,.controls #playerCount,.controls select{flex:1}.controls .buttons{flex-direction:column;align-items:stretch;width:100%}}#tr{visibility:hidden;position:absolute;top:0;left:0}#tr2{visibility:hidden;background-color:var(--color-accent-blue);z-index:2;border-radius:50%;width:8px;height:8px;position:absolute;top:0;left:0}#toast{box-sizing:border-box;background-color:var(--md-sys-color-on-surface);width:max-content;max-width:90vw;color:var(--md-sys-color-surface);padding:var(--spacing-m) 28px;border-radius:var(--radius-full);z-index:9999;visibility:hidden;opacity:0;box-shadow:var(--elevation-3);pointer-events:none;margin:0;font-size:.95rem;font-weight:500;transition:opacity .3s,transform .3s,visibility .3s;display:none;position:fixed;top:12.5vh;left:50vw;transform:translate(-50%)translateY(-10px)}#toast.show{visibility:visible;opacity:.9;display:block;transform:translate(-50%)translateY(0)}dialog{opacity:0;padding:var(--spacing-xl);border-radius:var(--radius-extra-large);box-sizing:border-box;background:var(--md-sys-color-surface);width:400px;max-width:90vw;color:var(--md-sys-color-on-surface);box-shadow:var(--elevation-3);border:none;margin:0;transition:opacity .3s ease-out;position:fixed;top:5vh;left:50vw;transform:translate(-50%)}dialog h2{color:var(--md-sys-color-on-surface);margin-top:0;font-size:1.25rem}.textarea-group{gap:var(--spacing-xs);margin-bottom:var(--spacing-l);flex-direction:column;display:flex}.textarea-group label{color:var(--md-sys-color-on-surface-variant);font-size:.875rem;font-weight:600}.textarea-group textarea{box-sizing:border-box;width:100%;padding:var(--spacing-s);border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--radius-medium);background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);resize:vertical;max-height:80vh;font-family:inherit;font-size:.95rem}.textarea-group textarea:focus{border-color:var(--md-sys-color-primary);outline:2px solid var(--md-sys-color-primary);outline-offset:-2px}dialog p{max-height:30vh;margin-bottom:var(--spacing-xl);overflow-y:auto}dialog:open{opacity:1}dialog::backdrop{background-color:#0006}dialog .group{justify-content:flex-end;gap:var(--spacing-s);display:flex}.af4b7c9579-div{position:absolute!important;top:auto!important;right:0!important}.af4b7c9579-btn{padding:0!important}
