:root{--ink:#303d38;--muted:#69786f;--paper:#f7f2e8;--line:#d9dfd1;--green:#446652;--pink:#e59787}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}main{max-width:1180px;margin:auto;padding:28px 38px 18px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:1px solid var(--line);background:#fbf9f1;border-radius:9px;padding:10px 14px;cursor:pointer}button:hover{border-color:#728f76;background:#edf1e5}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #d99d4e;outline-offset:3px}button:disabled{opacity:.5;cursor:default}header{display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px}.brand{display:flex;gap:12px;color:inherit;text-decoration:none;font-family:Georgia,serif;font-size:26px;align-items:center}.brand small{font:9px Arial,sans-serif;letter-spacing:2px;display:block;margin-top:4px}.mark{font-size:38px;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:#dce8d4;color:#527355}.topnote{margin:auto;font:italic 15px Georgia,serif;color:var(--muted)}header button{font-size:12px}.intro{display:flex;justify-content:space-between;gap:30px;padding:35px 0 28px;align-items:center}.eyebrow,.tiny,.paneltitle{font-size:10px;letter-spacing:1.5px;font-weight:700}.eyebrow{color:var(--green)}h1{font:48px/1.07 Georgia,serif;letter-spacing:-1.5px;margin:13px 0 15px}h1 em{font-weight:normal;color:#55755b}.intro p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.intro aside{width:300px;border-left:1px solid var(--line);padding-left:28px}.tiny{color:#879180}h2{font:26px Georgia,serif;margin:12px 0}.progress{font-size:11px;display:flex;justify-content:space-between;gap:10px;margin-top:22px}.progress span:last-child{color:#78916c}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}nav button{width:40px;padding:9px 0;border-radius:50%;font-size:12px}nav button.active{background:var(--green);color:white;border-color:var(--green)}nav button.won:after{content:'·';color:#bf9a4e;margin-left:3px}.workshop{border:1px solid #c9d5c4;border-radius:16px;overflow:hidden;box-shadow:0 9px 25px #435d3d08}.scenehead{display:flex;align-items:center;justify-content:space-between;background:#e9eddf;gap:8px;padding:9px 20px;font-size:10px;letter-spacing:1.4px}.scenehead i{display:inline-block;background:#7e9e67;border-radius:50%;width:6px;height:6px;margin-right:8px}.scenehead button{font-size:11px;padding:5px 10px;letter-spacing:0}.canvaswrap{position:relative;background:#f5eddf}canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.message{background:#fdfaf2;min-height:45px;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 18px;font-size:12px;border-top:1px solid #e4e4d5}.desk{display:grid;grid-template-columns:1fr 1.25fr .8fr;gap:16px;margin-top:18px}.panel{border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0}.paneltitle{font-size:9px;letter-spacing:1px;margin-bottom:15px;display:flex;align-items:center;justify-content:space-between}.paneltitle b{font:24px Georgia,serif;color:#53745b}.panel label{display:block;font-size:12px}.panel label span{font-size:10px;color:var(--muted)}input[type=range]{width:100%;accent-color:#688565;margin:16px 0 5px}.scale{display:flex;justify-content:space-between;font-size:9px;color:#8a9281}.panel p{font-size:10px;line-height:1.7;color:var(--muted);margin-bottom:0}.primary{width:100%;background:var(--green);color:#fff;border-color:var(--green);padding:13px}.primary:hover{background:#355442;color:white}.primary kbd{float:right;color:#cedbc9}.secondary{display:flex;gap:8px;margin-top:9px}.secondary button{font-size:10px;flex:1;padding:9px 6px}kbd{font:10px monospace}.dpad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,34px);gap:5px;justify-content:center}.dpad button{padding:5px;font-size:17px;touch-action:none;user-select:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.directional p{text-align:center}footer{display:flex;align-items:center;justify-content:space-between;margin-top:24px;color:#879180;font:italic 12px Georgia,serif}footer button{font:10px Arial,sans-serif;border:0;background:none}dialog{border:1px solid var(--line);border-radius:18px;max-width:580px;width:calc(100% - 32px);padding:30px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#263c3480;backdrop-filter:blur(5px)}dialog p,dialog li{font-size:14px;line-height:1.7;color:#5e7062}dialog h2{font-size:32px}dialog a{color:var(--green)}#closeInfo{float:right;font-size:20px;padding:4px 12px}#celebration{position:absolute;inset:0;background:#f7f2e8ef;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px}#celebration[hidden]{display:none}#celebration h2{font:44px Georgia,serif}#celebration p{font-size:13px;max-width:380px;line-height:1.6;color:var(--muted)}#celebration button{margin:5px;min-width:170px}#next{background:var(--green);color:white}.seal{font-size:55px;color:#ad904c}body.paused canvas{filter:saturate(.6)}@media(max-width:700px){main{padding:18px 14px}.topnote{display:none}header{gap:6px;padding-bottom:16px}.brand{font-size:21px;margin-right:auto}.mark{width:42px;height:42px;font-size:32px}.brand small{font-size:7px}header button{padding:8px;font-size:10px}.intro{padding:25px 0 20px;gap:14px;align-items:flex-start}h1{font-size:36px}.intro p{font-size:11px}.desktop{display:none}.intro aside{width:39%;padding-left:13px;margin-top:21px}.intro h2{font-size:20px}.tiny,.eyebrow{font-size:8px;letter-spacing:1px}.progress{flex-direction:column;gap:7px;margin-top:12px}.scenehead{padding:9px 10px;font-size:8px;letter-spacing:.5px}.desk{grid-template-columns:1fr 1fr;gap:9px}.panel{padding:12px}.actions{grid-column:1/-1;grid-row:2}.directional{grid-column:2;grid-row:1}.paneltitle{font-size:8px}.message{font-size:11px;min-height:50px}.dpad{grid-template-columns:repeat(3,35px)}#celebration h2{font-size:28px;margin:8px}#celebration .seal{font-size:26px}#celebration p{margin:6px;font-size:11px}#celebration button{padding:7px;font-size:11px}footer{font-size:10px}nav button{width:33px;padding:8px 0}nav{gap:7px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
@media(max-width:700px){.intro{display:block}.intro aside{width:100%;border-left:0;border-top:1px solid var(--line);padding:14px 0 0;margin-top:18px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center}.intro aside .tiny{grid-column:1}.intro aside h2{grid-column:1;margin:0}.intro aside p{display:none}.progress{grid-column:2;grid-row:1/3;margin:0;gap:5px;align-items:flex-end}}
