body:has(.gj2-room){--gallery-paper:#eee8d8;--gallery-ink:#202820;background:var(--gallery-paper);color:var(--gallery-ink)}.gj2-room{--ink:#202820;--paper:#eee8d8;--cream:#fffaf0;--orange:#be592c;--green:#547251;--frame-top:84px;--vh:100vh;--aspect:1.4925;color:var(--ink);font-family:Helvetica Neue,Arial,sans-serif}@supports (height:100svh){.gj2-room{--vh:100svh}}.gj2-kicker,.gj2-label{font:10px / 1.3 var(--mono,monospace);letter-spacing:.14em;text-transform:uppercase;color:#54614e;margin:0}.gj2-game{isolation:isolate;height:calc(var(--vh) - var(--frame-top));background:#d6ccb0;grid-template:"head side"".side"minmax(0,1fr)"plaque side""foot foot"/minmax(0,1fr) minmax(340px,400px);column-gap:clamp(24px,3.5vw,58px);min-height:560px;padding:22px clamp(22px,4vw,64px) 0;display:grid;position:relative;overflow:clip}.gj2-game:before{content:"";z-index:1;pointer-events:none;border:1px solid #f9f3df8c;position:absolute;inset:11px}.gj2-backdrop{z-index:0;position:absolute;inset:0;overflow:clip;container-type:size}.gj2-backdrop:after{content:"";pointer-events:none;background:radial-gradient(58% 48% at 0 0,#eee8d8f2 0%,#eee8d8b3 45%,#eee8d800 100%),linear-gradient(0deg,#eee8d8d9 0,#eee8d800 110px);position:absolute;inset:0}.gj2-painting{width:max(100cqw, 100cqh * var(--aspect));aspect-ratio:1400/938;background:#d6ccb0;position:absolute;top:50%;left:50%;overflow:hidden;translate:-50% -50%}.gj2-ghost{filter:grayscale()sepia(.55)contrast(.58)opacity(.45);background:url(/art/amdahl/grande-jatte.jpg) 50%/cover;position:absolute;inset:0}.gj2-tiles{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:absolute;inset:0}.gj2-tiles>span{position:relative}.gj2-tiles b{background-repeat:no-repeat;background-size:800% 800%;transition:opacity .12s linear;position:absolute;inset:0;transform:scale(1.015)}.gj2-brush{z-index:1;border:2px solid var(--orange);animation:.5s ease-in-out infinite alternate gj2-work;position:absolute;inset:3px;box-shadow:0 0 0 1px #fff9ec,inset 0 0 0 1px #fff9ec}[data-brush=waiting]>.gj2-brush{border:2px dashed #fff9ec;animation:1.4s ease-in-out infinite alternate gj2-wait;box-shadow:0 0 0 1px #20282066}@keyframes gj2-work{to{transform:scale(.92)}}@keyframes gj2-wait{to{opacity:.35}}.gj2-study-overlay{background:#e8dfc688;position:absolute;inset:0}.gj2-study-line{border:3px solid #463d3270;border-radius:50%;animation:1.2s ease-in-out infinite alternate gj2-sketch;display:block;position:absolute;transform:rotate(-18deg)}.gj2-study-line.a{inset:18% 42% 25% 7%}.gj2-study-line.b{animation-delay:-.4s;inset:37% 10% 12% 57%}.gj2-study-line.c{animation-delay:-.8s;inset:10% 21% 45% 35%}.gj2-study-seal{white-space:nowrap;color:#fff9e9;font:10px var(--mono,monospace);letter-spacing:.16em;text-transform:uppercase;background:#283628;padding:9px 15px;position:absolute;top:70%;left:38%;transform:translate(-50%,-50%)rotate(-3deg)}@keyframes gj2-sketch{0%{opacity:.15;clip-path:inset(0 80% 0 0)}to{opacity:.6;clip-path:inset(0)}}.gj2-head,.gj2-plaque,.gj2-side,.gj2-foot{z-index:2;position:relative}.gj2-head{min-width:0;text-shadow:0 0 12px var(--paper), 0 0 24px var(--paper);grid-area:head;justify-content:space-between;align-items:start;gap:30px;display:flex}.gj2-head h1{letter-spacing:-.055em;margin:6px 0;font:400 clamp(42px,min(4.8vw,8.6svh),76px)/.88 Georgia,serif}.gj2-head h1 em{color:var(--orange);font-weight:400}.gj2-intro{color:#3f4a3b;margin:0;font:italic 16px Georgia,serif}.gj2-attribution{color:#3f4a3b;flex-wrap:wrap;gap:.8em;display:flex}.gj2-attribution span:before{content:"· "}.gj2-mission-mark{color:#fff9ec;background:#263927;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 22px 6px;display:flex}.gj2-mission-mark span{font:10px var(--mono,monospace);letter-spacing:.13em;text-transform:uppercase}.gj2-mission-mark strong{letter-spacing:-.04em;font:400 26px/1 Georgia,serif}.gj2-mission-of{color:#b7c8ad;letter-spacing:0;font:14px Georgia,serif}.gj2-plaque{background:#fffaf0f2;border:1px solid #6c7b6366;grid-area:plaque;place-self:end start;gap:5px;max-width:330px;margin-bottom:14px;padding:12px 16px 13px;display:grid;box-shadow:0 16px 28px -20px #1e291b}.gj2-plaque strong{letter-spacing:-.02em;font:400 21px/1.1 Georgia,serif}.gj2-plaque strong em{color:var(--orange)}.gj2-plaque small,.gj2-plaque span{font:9.5px / 1.5 var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:#61705d}.gj2-plaque span{color:var(--ink);border-top:1px solid #bec7b5;padding-top:6px}.gj2-side{min-width:0;min-height:min(var(--hold,0px), calc(100% - 26px));grid-area:side;grid-template-rows:auto minmax(0,1fr) auto;align-self:end;max-height:calc(100% - 26px);margin-block:12px 14px;display:grid;box-shadow:10px 12px #20282033,0 30px 60px -30px #1e291b}.gj2-console{background:#fffaf0f5;border:1px solid #6c7b6380;border-bottom:0;min-height:0;padding:18px 22px 8px;overflow-y:auto}.gj2-dock{background:#fffaf0f5;border:1px solid #6c7b6380;border-top:0;padding:8px 22px 14px}.gj2-console h2{letter-spacing:-.03em;text-wrap:balance;margin:8px 0 7px;font:400 clamp(24px,2vw,29px)/1.08 Georgia,serif}.gj2-console p:not(.gj2-kicker):not(.gj2-running){color:#4e5849;font:italic 15px/1.48 Georgia,serif}.gj2-description{margin:0 0 8px}.gj2-reserved{display:grid}.gj2-reserved>span{grid-area:1/1;min-width:0}.gj2-ghost-text{visibility:hidden}.gj2-timer{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px;display:grid}.gj2-timer>div{background:#eae9d9;flex-direction:column;justify-content:space-between;min-height:64px;padding:8px;display:flex}.gj2-timer>div:first-child{color:#fff8e8;background:#273b2a}.gj2-timer span{font:10px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase}.gj2-timer strong{font-variant-numeric:tabular-nums;white-space:nowrap;font:400 clamp(20px,2.3vw,32px)/1 Georgia,serif}.gj2-timer>div:nth-child(2) strong{font-size:clamp(16px,1.5vw,22px)}.gj2-track{border:1px solid #324331;height:30px;display:flex;position:relative;overflow-x:clip}.gj2-track-study{color:#fff;background:#be592c;place-items:center;min-width:0;display:grid}.gj2-track-paint{color:#1d2a1d;background:#90a981;flex:1;place-items:center;min-width:0;display:grid}.gj2-track span{max-width:100%;font:10px var(--mono,monospace);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden}.gj2-track-at{z-index:2;pointer-events:none;width:100%;position:absolute;top:-5px;bottom:-5px;left:0}.gj2-track-at:before{content:"";background:#192518;width:3px;position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 0 2px #fff9ed}.gj2-times{color:#596553;font:10px var(--mono,monospace);justify-content:space-between;margin:4px 0 12px;display:flex}.gj2-wages{border-top:1px solid #bec7b5;margin:2px 0 10px;padding-top:8px}.gj2-wages-head{font:10px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:#54614e;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:10px;display:grid}.gj2-wages-total{letter-spacing:-.02em;text-transform:none;font-variant-numeric:tabular-nums;color:var(--ink);font:400 20px/1 Georgia,serif}.gj2-wages[data-over=true] .gj2-wages-head>span:last-child{color:var(--orange)}.gj2-wages-bar{background:#eae9d9;height:14px;margin-top:6px;position:relative}.gj2-wages-bar b{max-width:100%;position:absolute;top:0;bottom:0;left:0}.gj2-wages-plan{outline-offset:-1px;outline:1px dashed #6c7b63}.gj2-wages-spent{background:linear-gradient(90deg, transparent var(--wait), #90a981 var(--wait)), repeating-linear-gradient(-45deg, #be592c 0 3px, #e7a987 3px 6px)}.gj2-wages-budget{background:var(--ink);width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.gj2-wages[data-over=true] .gj2-wages-budget{background:var(--orange);box-shadow:0 0 0 2px #fff9ec}.gj2-wages .gj2-times{margin-bottom:0}.gj2-console .gj2-hint{font:10px / 1.5 var(--mono,monospace);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;color:#8a4a26;margin:5px 0 0;overflow:hidden}.gj2-chart{margin:12px 0 4px}.gj2-chart svg{width:100%;height:auto;display:block;overflow:visible}.gj2-chart-axis{stroke:#20282066}.gj2-chart-tick{fill:#65715e;font:9px var(--mono,monospace);text-anchor:middle}.gj2-chart-tick.gj2-chart-left{text-anchor:end}.gj2-chart g line{stroke-dasharray:2 3;opacity:.8}.gj2-chart g path{fill:none;stroke-width:1.6px}.gj2-chart g text{font:italic 10.5px Georgia,serif}.gj2-chart [data-study=canvas] :is(line,path){stroke:#be592c}.gj2-chart g[data-study=canvas] text{fill:#9c4822}.gj2-chart [data-study=panel] :is(line,path){stroke:#3d5f41}.gj2-chart g[data-study=panel] text{fill:#2e4a32}.gj2-chart circle{stroke-width:1.6px;fill:#fffaf0}.gj2-chart circle[data-study=canvas]{stroke:#be592c}.gj2-chart circle[data-study=panel]{stroke:#3d5f41}.gj2-chart circle[data-study=canvas][data-made=true]{fill:#be592c}.gj2-chart circle[data-study=panel][data-made=true]{fill:#3d5f41}.gj2-chart figcaption{color:#4e5849;margin-top:4px;font:italic 12.5px/1.4 Georgia,serif}.gj2-plan{border:0;min-width:0;margin:0;padding:0;transition:opacity .25s}.gj2-plan:disabled{opacity:.5}.gj2-control{border-top:1px solid #bec7b5;padding-top:8px}.gj2-control-head{font:12px var(--mono,monospace);justify-content:space-between;align-items:baseline;display:flex}.gj2-count{font:400 32px Georgia,serif}.gj2-control input{width:100%;accent-color:var(--orange);cursor:pointer;margin:6px 0 3px}.gj2-control input:disabled{opacity:.55;cursor:default}.gj2-range-labels{font:10px var(--mono,monospace);color:#65715e;justify-content:space-between;display:flex}.gj2-method{margin:9px 0 4px}.gj2-method>div{grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;display:grid}.gj2-method button{text-align:left;min-height:50px;color:var(--ink);cursor:pointer;background:#f7f3e7;border:1px solid #889584;padding:9px;font:14px Georgia,serif;position:relative}.gj2-method button.selected{background:#e6eddf;border:2px solid #29412b}.gj2-method button:disabled{opacity:.52;cursor:not-allowed}.gj2-method button small{font:9px var(--mono,monospace);color:#5e6a59;margin-top:4px;display:block}.gj2-method button span{font:8px var(--mono,monospace);text-transform:uppercase;position:absolute;top:9px;right:8px}.gj2-primary{color:#fff9ec;width:100%;min-height:48px;font:12px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#263927;border:1px solid #263927;justify-content:space-between;align-items:center;gap:20px;padding:11px 15px;transition:background .2s,transform .2s;display:flex}.gj2-primary:hover{background:#be592c;transform:translateY(-2px)}.gj2-primary svg{width:18px;height:18px}.gj2-secondary{color:#485a47;font:11px var(--mono,monospace);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:7px 0;text-decoration:underline}.gj2-result-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.gj2-running{min-height:48px;font:12px var(--mono,monospace);text-align:center;background:#ecede1;place-items:center;margin:0;padding:0 14px;display:grid}.gj2-equation{border-block:1px solid #b2bfae;margin:24px 0;padding:20px 8px;overflow-x:auto}.gj2-equation-note{margin-top:16px;font:12px/1.5 Georgia,serif;display:block}.gj2-foot{font:10px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;background:#eee8d8f0;border-top:1px solid #6b7c664f;grid-area:foot;justify-content:space-between;gap:16px;margin:0 calc(-1*clamp(22px,4vw,64px));padding:10px clamp(22px,4vw,64px) 14px;display:flex}.gj2-foot a{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.gj2-room :is(button,a,input):focus-visible{outline:3px solid var(--orange);outline-offset:3px}.gj2-coda{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:clamp(32px,5vw,72px);max-width:1220px;margin:0 auto;padding:clamp(48px,7vw,86px) clamp(20px,5vw,64px) clamp(56px,8vw,96px);display:grid}.gj2-principle{min-width:0;max-width:62ch}.gj2-principle .gj2-kicker{line-height:1.6}.gj2-principle h2{letter-spacing:-.035em;text-wrap:balance;margin:18px 0 24px;font:400 clamp(32px,3.5vw,48px)/1.12 Georgia,serif}.gj2-principle h2 em{color:var(--orange);font-weight:400;display:block}.gj2-principle>p:not(.gj2-kicker){color:#2c3629;text-wrap:pretty;margin:0 0 1.25em;font-size:clamp(16px,1.2vw + 8px,18px);line-height:1.7}.gj2-coda-fact{border-top:1px solid #6b7c664f;flex-wrap:wrap;gap:14px 32px;margin:32px 0 0;padding-top:20px;display:flex}.gj2-coda-fact dt{font:10px var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:#5d6959}.gj2-coda-fact dd{margin:4px 0 0;font:400 27px Georgia,serif}.gj2-reference img{border:8px solid #faf6eb;outline:1px solid #20282030;box-shadow:0 30px 50px -34px #1e291b}.gj2-reference figcaption{color:#5d6959}.gj2-reference figcaption a{color:var(--ink)}@media (min-width:901px) and (max-height:820px){.gj2-game{padding-top:18px}.gj2-intro{font-size:14px}.gj2-console{padding:14px 18px 6px}.gj2-dock{padding:6px 18px 12px}.gj2-console h2{margin-top:6px;font-size:23px}.gj2-console p:not(.gj2-kicker):not(.gj2-running){font-size:14px;line-height:1.4}.gj2-timer{margin:6px 0 10px}.gj2-timer>div{min-height:46px;padding:6px 8px}.gj2-timer strong{font-size:22px}.gj2-track{height:24px}.gj2-times{margin:3px 0 6px}.gj2-wages{margin-bottom:6px;padding-top:6px}.gj2-wages-total{font-size:17px}.gj2-wages-bar{height:10px;margin-top:4px}.gj2-control{padding-top:4px}.gj2-control input{margin:2px 0}.gj2-method{margin-top:6px}.gj2-chart{margin:6px 0 2px}.gj2-equation{margin:8px 0 0;padding:6px 4px 8px}.gj2-equation-note{margin-top:6px}.gj2-times{margin-bottom:8px}.gj2-count{font-size:26px}.gj2-method>div{margin-top:6px}.gj2-method button{min-height:44px;padding:7px 9px}.gj2-plaque{padding:10px 14px}.gj2-plaque small{display:none}}@media (max-width:960px){.gj2-coda{grid-template-columns:minmax(0,1fr);max-width:760px}.gj2-reference{margin-top:0;position:static}}@media (max-width:900px){.gj2-game{height:auto;min-height:calc(var(--vh) - var(--frame-top));background:var(--paper);grid-template:"head""art""side"/minmax(0,1fr);padding:14px 14px 0}.gj2-game:before{border-color:#495e4838;inset:5px}.gj2-backdrop{top:var(--frame-top);z-index:3;grid-area:art;height:min(64vw,40svh);margin:12px -14px 0;position:sticky;box-shadow:0 14px 22px -16px #1e291b}.gj2-backdrop:after{display:none}.gj2-study-seal{left:50%}.gj2-head{text-shadow:none;gap:14px}.gj2-head h1{margin:5px 0;font-size:clamp(32px,9vw,48px)}.gj2-intro{font-size:13px}.gj2-kicker{font-size:9px}.gj2-plaque,.gj2-foot{display:none}.gj2-side{min-height:var(--hold,0px);max-height:none;box-shadow:none;margin:0 -14px;display:block}.gj2-console{border-inline:0;padding:16px 18px 6px;overflow:visible}.gj2-console h2{font-size:24px}.gj2-console p:not(.gj2-kicker):not(.gj2-running){font-size:14px}.gj2-timer>div{min-height:58px}.gj2-timer strong{font-size:22px}.gj2-control input{height:28px}.gj2-method button{min-height:54px}.gj2-dock{z-index:4;padding:10px 18px max(12px, env(safe-area-inset-bottom,0px));background:#fffaf0;border-inline:0;position:sticky;bottom:0;box-shadow:0 -12px 18px -10px #1e291b33}.gj2-reference figcaption{flex-direction:column;align-items:start;gap:10px}}@media (max-width:900px) and (max-height:700px){.gj2-backdrop{height:min(56vw,34svh);margin-top:8px}.gj2-intro{display:none}.gj2-head h1{font-size:30px}}@media (prefers-reduced-motion:reduce){.gj2-brush,.gj2-study-line{animation:none}.gj2-primary,.gj2-tiles b{transition:none}}
