@import "../shared/css/colors.css";@font-face{font-family:"TT2020";src:url("../shared/fonts/TT2020Base-Regular.woff2") format("woff2");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:"TT2020-input";src:url("../shared/fonts/TT2020Input.woff2") format("woff2");font-weight:normal;font-style:normal;font-display:swap}:root{--text-xs:12px;--control-h:calc(2.3125em + 4px);--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:28px;--text-2xl:40px;--cell:clamp(30px,8.5vw,46px)}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg,canvas,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,p,li{overflow-wrap:break-word}body{margin:0 auto;padding:20px;max-width:1100px;background:var(--paper);color:var(--blue-950);font-family:"TT2020","Courier New",Courier,monospace;font-size:var(--text-base);line-height:1.5;font-weight:600;display:flex;flex-direction:column;min-height:100vh}main{flex:1}p{font-weight:600;margin-bottom:1.5rem}ul{margin-bottom:1.5rem}header{font-weight:600;display:grid;grid-template-columns:1fr auto;row-gap:.25rem}h1{margin:.5rem 0 .75rem;font-size:3.25rem;line-height:1.1}header h1{grid-column:1 / -1;grid-row:2}h2{font-size:1.5rem;margin-bottom:1.5rem}a{color:var(--blue-950)}p.math{display:flex;justify-content:center;align-items:baseline;gap:2ch}p.math .bigop{display:inline-flex;flex-direction:column;align-items:center;line-height:1;row-gap:.1em}p.math .bigwedge{font-size:1.6em}p.math .apex{margin-left:-.4375ch}p.math .limit{font-size:.8125em}p.math .implies{letter-spacing:-.35ch;margin-right:.35ch}footer{margin-top:1.125rem;padding-top:.75rem;border-top:1px solid var(--base-150);color:var(--base-600);font-size:var(--text-xs);line-height:1.6}footer a{color:var(--base-600)}footer a:hover{color:var(--blue-950)}footer p{margin:0}button{font-size:1rem;height:var(--control-h);padding:.4375rem .75rem .375rem .75rem;white-space:nowrap;cursor:pointer;background:var(--paper);border:2px solid var(--blue-950)}button:hover{background:var(--base-50)}button:disabled{opacity:.4;cursor:not-allowed}button:disabled:hover{background:var(--paper)}input[type="range"]{-webkit-appearance:none;appearance:none;width:150px;height:18px;background:transparent;cursor:pointer;--fill:0%}input[type="range"]::-webkit-slider-runnable-track{-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background-color:var(--base-150);background-image:linear-gradient(var(--ink),var(--ink));background-repeat:no-repeat;background-size:var(--fill) 100%}input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6.5px;background:var(--ink);border:0;border-radius:47% 53% 50% 50% / 55% 45% 55% 45%;box-shadow:0px 0px 1px var(--ink)}input[type="range"]::-moz-range-track{height:3px;border-radius:2px;background:var(--base-150)}input[type="range"]::-moz-range-progress{height:3px;border-radius:2px;background:var(--ink)}input[type="range"]::-moz-range-thumb{width:16px;height:16px;background:var(--ink);border:0;border-radius:47% 53% 50% 50% / 55% 45% 55% 45%}input[type="range"]:focus-visible{outline:none}input[type="range"]:focus-visible::-webkit-slider-thumb{outline:2px dashed var(--red);outline-offset:3px}input[type="range"]:focus-visible::-moz-range-thumb{outline:2px dashed var(--red);outline-offset:3px}select{font-family:"TT2020-input","Courier New",Courier,monospace;background:var(--paper);border:2px solid var(--blue-950);height:var(--control-h);padding:.3rem .4rem;cursor:pointer}select:focus,button:focus-visible,#tracewrap:focus-visible{outline:none;box-shadow:0 0 2px 1px color-mix(in srgb,var(--blue-950) 25%,transparent)}.swap-btn{display:inline-grid}.swap-btn>span{grid-area:1 / 1;justify-self:center}.swap-btn .swap-ghost{visibility:hidden}#stage{margin:1.25rem auto 2rem auto;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.1rem}#controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}#speedbox{margin-left:auto;display:flex;align-items:center;gap:.6rem;color:var(--base-600);font-size:var(--text-sm)}#solving{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.25rem 1.5rem;align-items:start}@media (max-width:900px){#solving{grid-template-columns:minmax(0,1fr)}#boardcol{justify-self:center;width:100%}}#readout{min-height:3em;width:0;min-width:100%;margin-top:.6rem;text-align:center;color:var(--base-600);font-size:var(--text-sm)}#status.bad{color:var(--red-600)}#board{display:grid;grid-template-columns:auto auto auto auto;grid-template-rows:auto auto auto auto;width:fit-content;margin:0 auto;user-select:none;-webkit-user-select:none}#grid{grid-area:2 / 2}.strip.top{grid-area:1 / 2}.strip.bottom{grid-area:3 / 2}.strip.left{grid-area:2 / 1}.strip.right{grid-area:2 / 3}#files{grid-area:4 / 2}#ranks{grid-area:2 / 4}#files,#ranks{display:grid;gap:var(--gap,1px);background:var(--paper);color:var(--base-600);font-size:calc(var(--cell) * .28);line-height:1}#files{grid-template-columns:repeat(var(--n,6),var(--cell));margin-top:calc(var(--cell) * .14)}#ranks{grid-template-rows:repeat(var(--n,6),var(--cell));margin-left:calc(var(--cell) * .14)}.coord{display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--paper)}#files .coord{height:var(--coordh,16px);padding-top:var(--fpad,2px)}#ranks .coord{width:var(--coordh,16px);padding-top:var(--rpad,3px)}.strip{display:grid;gap:var(--gap,1px)}.strip.top,.strip.bottom{grid-template-columns:repeat(var(--n,6),var(--cell));padding:0 var(--frame,2px)}.strip.left,.strip.right{grid-template-rows:repeat(var(--n,6),var(--cell));padding:var(--frame,2px) 0}.clue{display:flex;align-items:center;justify-content:center;font-size:calc(var(--cell) * .52);line-height:1}.strip.top .clue,.strip.bottom .clue{height:var(--clue,40px)}.strip.left .clue,.strip.right .clue{width:var(--clue,40px)}#grid{display:grid;gap:var(--gap,1px);grid-template-columns:repeat(var(--n,6),var(--cell));background:var(--blue-950);border:var(--frame,2px) solid var(--blue-950)}.cell{position:relative;width:var(--cell);height:var(--cell);display:flex;align-items:center;justify-content:center;background:var(--paper);color:var(--blue-950)}.cell .value{font-size:calc(var(--cell) * .62);line-height:1;opacity:0;transition:opacity .4s ease,color .6s ease}.cell.filled .value{opacity:1}.cell.prov .value{color:var(--base-500)}.cell .pencil{position:absolute;inset:6%;display:grid;grid-template-columns:repeat(3,1fr);align-content:center;justify-items:center;align-items:center;color:var(--base-500);font-size:calc(var(--cell) * .27);line-height:1.05;transition:opacity .5s ease}.cell.filled .pencil{opacity:0}.pip{transition:opacity .35s ease}.pip.off{opacity:0;transition:opacity .9s ease}.cell.empty .pip{transition-duration:.3s}.cell.guessed{background:var(--blue-50)}.cell{transition:background .3s ease}.cell.wiped{background:var(--red-50);transition:background .4s ease .6s}.cell.flash-wipe{animation:flash-wipe 1s ease}@keyframes flash-wipe{18%,60%{background:var(--red-50)}}#grid.solved .cell{animation:settle .5s ease both;animation-delay:var(--d,0ms)}@keyframes settle{40%{transform:scale(.8)}}#tracewrap{height:480px;overflow-y:auto;scrollbar-gutter:stable;padding:.25rem 1rem .25rem .25rem;mask-image:linear-gradient(transparent,black 14px,black calc(100% - 14px),transparent);scrollbar-width:thin;scrollbar-color:var(--base-300) var(--paper)}#tracewrap::-webkit-scrollbar{width:8px}#tracewrap::-webkit-scrollbar-track{background:var(--paper)}#tracewrap::-webkit-scrollbar-thumb{background:var(--base-300);border-radius:4px}@media (max-width:900px){#tracewrap{height:340px}}#trace{font-size:var(--text-sm);line-height:1.7;color:var(--blue-950)}#trace .round{margin:0 0 .1rem 0;font-weight:600}#trace .lead{color:var(--base-600);margin-right:1ch}#trace .elim{display:inline-block;margin-right:1.25ch}.ne{position:relative;display:inline-block}.ne::after{content:"/";position:absolute;left:0;top:0}.falsum{position:relative;top:-.2em;display:inline-block}.falsum::after{content:"|";position:absolute;left:0;top:0;transform:translateY(-2%) scaleY(.52);transform-origin:50% 76%}.elim.demo{display:inline-block;margin:0}#trace .banner{display:block;margin:.35rem 0;padding:.1rem .6rem;background:var(--base-50)}#trace .banner.guess{background:var(--blue-50)}#trace .banner.contra{background:var(--red-50);color:var(--red-600)}#trace .banner.restart{background:none;border-top:2px solid var(--blue-950);border-bottom:2px solid var(--blue-950);text-align:center;margin:.6rem 0;padding:.25rem .6rem}#trace .branch{margin-left:2.5ch}#trace .branch.capped{margin-left:0}#trace .dead{opacity:.38;transition:opacity 1.2s ease}#trace .dead .dead{opacity:1}#trace .solgrid{margin:.35rem 0 .2rem 2.5ch}#trace .solrow{min-height:1.7em;letter-spacing:1em;font-weight:600}#trace .qed{text-align:right;padding-right:1ch;margin-top:.35rem}#trace .qed.bad{color:var(--red-600)}#trace .caret{display:inline-block;animation:blink 1.1s steps(2) infinite}@keyframes blink{50%{opacity:0}}#trace .elim[data-w]{cursor:pointer}#trace .elim[data-w]:hover,#trace .elim.hl{background:var(--yellow-100)}#board.explaining .cell,#board.explaining .pip,#board.explaining .pencil,#board.explaining .cell .value{transition:none}.cell.hl-line{background:var(--yellow-50)}.clue.hl-clue{background:var(--yellow-100)}.cell.hl-premise .pencil{opacity:1}.cell.hl-premise .value{opacity:0}.pip.hl-why,.pip.hl-target{opacity:1;position:relative}.pip.hl-why{color:var(--blue-950)}.pip.hl-target{color:var(--red-600)}.pip.hl-why::after,.pip.hl-target::after{content:"/";position:absolute;inset:0;text-align:center}.pip.hl-target::before{content:"";position:absolute;left:50%;top:50%;width:var(--ring,18px);height:var(--ring,18px);transform:translate(-50%,-50%);border:var(--ringb,1px) solid currentColor;border-radius:50%}@media (max-width:640px){body{padding:10px}#stage{padding:1rem .5rem}:root{--cell:clamp(24px,8.8vw,46px)}h1{font-size:2.5rem}#controls{display:grid;grid-template-columns:auto auto;justify-content:center}#controls #play{justify-self:start}#controls #new,#speedbox{justify-self:end}#speedbox{margin-left:0}input[type="range"]{width:6rem}}