:root{--ink:#252d26;--paper:#f2ecdd;--yellow:#efd44e;--orange:#ee6941}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:'PingFang SC','Microsoft YaHei',sans-serif}::selection{background:var(--orange);color:var(--ink)}header{display:flex;align-items:center;gap:20px;padding:24px 5%;border-bottom:1px solid #73785f}header a{color:var(--yellow);text-underline-offset:5px}header>a:first-child{font-size:30px;font-weight:900;text-decoration:none}header span{flex:1;font-size:13px}header>a:last-child{font-size:12px}main{max-width:1240px;margin:auto;padding:45px 30px}h1{font-size:clamp(38px,5vw,64px);margin:0 0 14px;letter-spacing:-.035em}.lead{line-height:1.7;margin-bottom:35px}.desk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.card{padding:22px;color:var(--ink);background:var(--paper);box-shadow:6px 10px 18px #121a1380}.merge{background:#cec0e5;transform:rotate(-.7deg)}.stack{background:var(--yellow);transform:rotate(.6deg)}.run{background:#bcd0b1;transform:rotate(-.4deg)}h2{font-size:28px;line-height:1.3;margin:0 0 14px}.quote{font-size:13px;line-height:1.7;min-height:46px}.quote a{color:inherit;font-size:11px;white-space:nowrap}.hud{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin:22px 0 12px;font-variant-numeric:tabular-nums}canvas{display:block;width:100%;aspect-ratio:1;background:var(--ink);touch-action:pan-y}button{font:inherit;cursor:pointer;min-height:44px;border:1px solid var(--ink);color:var(--ink);background:var(--paper);padding:9px 15px}button:hover{background:#fff5d5}button:active{transform:translateY(2px)}button:focus-visible,a:focus-visible,#board:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.primary{background:var(--ink);color:var(--paper);font-weight:bold;width:100%;margin-top:12px}.primary:hover{background:#3b483b}.reset{background:transparent;width:100%;margin-top:12px}.guide{font-size:12px;line-height:1.8;min-height:67px}.status{border-top:1px solid #252d2655;padding-top:15px;font-size:13px;line-height:1.7;min-height:61px}.directions,.run-buttons{display:flex;gap:7px;margin-top:12px}.directions button{flex:1;font-size:23px}.run-buttons .primary{margin:0;flex:1}.run-buttons button{font-size:18px}#board{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:var(--ink);padding:8px;aspect-ratio:1;touch-action:none}.cell{background:#4a5348;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--paper);font-size:11px;min-width:0;transition:background .15s}.cell b{font-size:24px}.cell[data-v="2"]{background:#f2ecdd;color:var(--ink)}.cell[data-v="4"]{background:#bed2b2;color:var(--ink)}.cell[data-v="8"]{background:#f0ce50;color:var(--ink)}.cell[data-v="16"]{background:#ef9b6f;color:var(--ink)}.cell[data-v="32"]{background:#ff704b;color:var(--ink)}.mini-person{width:22px;height:27px;position:relative;margin-bottom:2px;background:var(--ink);border-radius:7px 7px 3px 3px}.mini-person:before{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:#d9ac7e;top:-6px;left:4px}.cell[data-v="16"] .mini-person:before,.cell[data-v="32"] .mini-person:before{border-top:5px solid #edc834}#champion{text-align:center;padding:18px 0}#champion img{display:block;width:180px;max-height:240px;object-fit:contain;margin:auto}#champion strong{display:block;margin-top:8px;font-size:17px}footer{font-size:12px;line-height:1.8;color:#d4d6c7;margin-top:42px}@media(max-width:1000px){.desk{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){main{padding:32px 20px}header{padding:18px;gap:12px}header span{font-size:11px}.desk{grid-template-columns:1fr;gap:28px}.card{padding:22px}.lead{font-size:14px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Material study: an authentic scanned paper layer, tinted for each printed world. */
body{background-color:#c9bfa7;color:#302d26;background-image:linear-gradient(#cfc6afaa,#cfc6afaa),url('../assets/riso-fiber-v2.webp');background-size:auto,640px}header{border-color:#514a3e}header a{color:#302d26}.lead{color:#514a3e}.materials{border-top:3px double #514a3e;border-bottom:3px double #514a3e;padding:24px 0;margin:35px 0}.materials h2{font-size:25px}.materials p{font-size:13px;line-height:1.8}.theme-buttons{display:flex;gap:10px;flex-wrap:wrap}.theme-buttons button[aria-pressed=true]{background:#302d26;color:#f0e4c9}.material-samples{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin:24px 0}.material-samples>div{padding:24px 18px;min-height:115px;background-image:url('../assets/riso-fiber-v2.webp');background-size:450px;font-weight:bold;font-size:20px;box-shadow:2px 6px 12px #30291c28}.material-samples small{display:block;font-size:12px;font-weight:normal;margin-top:14px}.material-samples .section-sample{background-color:#c5b89c;background-blend-mode:multiply}.material-samples .card-sample{background-color:#f2e6c8;background-blend-mode:multiply;transform:rotate(-1deg);position:relative}.material-samples .table-sample{background-color:#494c40;background-blend-mode:multiply;color:#eee4cd}.references a{color:inherit}.keyboard-bar{display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;font-size:13px;margin:30px 0 23px;padding:12px 0;border-bottom:1px solid #514a3e}.keyboard-bar span{font-size:12px}.card{background-color:#eee2c5;background-image:url('../assets/riso-fiber-v2.webp');background-size:600px;background-blend-mode:multiply;box-shadow:5px 11px 18px #30251640;position:relative;color:#302d26;border-top:1px solid #f8f0d6}.card:before,.card-sample:before{content:'';position:absolute;top:-9px;left:38%;width:78px;height:23px;background:#c2aa73aa;transform:rotate(-3deg);box-shadow:1px 2px 4px #493f2420;pointer-events:none}.card:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 28px #7c542329;pointer-events:none}.merge,.stack,.run{background-color:#eee2c5}.active-game{outline:2px solid #9b4e32;outline-offset:7px}.hud{border-bottom:1px solid #79684c66;padding-bottom:10px}h1,h2{font-family:'Songti SC','STSong','Noto Serif CJK SC',serif}.card h2{font-weight:900}button{background-color:#e7d8b8;background-image:url('../assets/riso-fiber-v2.webp');background-size:450px;background-blend-mode:multiply;border-color:#4c4233}.primary{background-color:#403d30;color:#f0e4c9}.primary:hover{background-color:#554733}.reset{background-color:#decfb0}.board-wrap{position:relative}#board{background-color:#45483e;background-image:url('../assets/riso-fiber-v2.webp');background-blend-mode:multiply;background-size:500px;box-shadow:inset 0 0 25px #14171366}.cell{background:#5b6055;color:#f0e4c9;border:1px solid #242d2433}.cell[data-v]{background-image:url('../assets/riso-fiber-v2.webp');background-size:300px;background-blend-mode:multiply}.cell[data-v="2"]{background-color:#e8ddc2}.cell[data-v="4"]{background-color:#c7c3a4}.cell[data-v="8"]{background-color:#d6bd76}.cell[data-v="16"]{background-color:#c87b50}.mini-person{border-radius:2px 2px 0 0}canvas{background-color:#42483b;box-shadow:inset 0 0 22px #14181366;filter:sepia(.28) saturate(.7)}#champion{background:url('../assets/riso-fiber-v2.webp') center/500px;border-top:3px double #66573f;margin-top:16px;scroll-margin:40px}#win-flash{position:absolute;inset:25% 5%;z-index:4;background:#eee2c5f5;border:3px double #9b4e32;align-content:center;text-align:center;font-size:30px;font-weight:900;transform:rotate(-3deg);box-shadow:3px 6px 15px #30291c60}#win-flash small{display:block;font-size:15px;margin-top:10px}#confetti{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:visible}#confetti i{position:absolute;top:50%;left:50%;width:9px;height:16px;background:var(--c);animation:paper-burst 1.1s cubic-bezier(.16,1,.3,1) both}@keyframes paper-burst{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}footer{color:#514a3e}body[data-theme=kraft]{background-color:#a68658;background-image:linear-gradient(#ad8c5bbb,#ad8c5bbb),url('../assets/riso-fiber-v2.webp')}body[data-theme=kraft] .card{background-color:#d4bc8b}body[data-theme=kraft] .material-samples .section-sample{background-color:#ad8c5b}body[data-theme=kraft] .material-samples .card-sample{background-color:#d4bc8b}body[data-theme=kraft] .material-samples .table-sample{background-color:#31483d}body[data-theme=poster]{background-color:#9b9a8c;background-image:linear-gradient(#a4a595bd,#a4a595bd),url('../assets/riso-fiber-v2.webp')}body[data-theme=poster] .merge{background-color:#c1adca}body[data-theme=poster] .stack{background-color:#dcc568}body[data-theme=poster] .run{background-color:#b4c0a0}body[data-theme=poster] .card{border-bottom:5px dashed #eee2c566}body[data-theme=poster] .material-samples .section-sample{background-color:#a4a595}body[data-theme=poster] .material-samples .card-sample{background-color:#c1adca}body[data-theme=poster] .material-samples .table-sample{background-color:#504841}@media(max-width:600px){.material-samples{grid-template-columns:1fr;gap:15px}.material-samples>div{min-height:95px}.keyboard-bar{gap:8px}.active-game{outline-offset:4px}}@media(prefers-reduced-motion:reduce){#confetti i{animation:none;display:none}}

/* Approved material 3: fresh Risograph paper, without age stains. */
body,body[data-theme=news]{--sheet:#f3eedc;--card-a:#efb49a;--card-b:#eed56b;--card-c:#b7c8aa;--dark:#263d32;--accent:#d94f31;background-color:var(--sheet);background-image:url('../assets/riso-fiber-v2.webp');background-size:240px;color:var(--dark)}
body[data-theme=kraft]{--sheet:#e0e9eb;--card-a:#aecaDC;--card-b:#f0db65;--card-c:#c4d4dc;--dark:#292d30;--accent:#375c79;background-color:var(--sheet);background-image:url('../assets/riso-fiber-v2.webp')}
body[data-theme=poster]{--sheet:#eee4de;--card-a:#dbb9c2;--card-b:#c9c6a0;--card-c:#b6c5ad;--dark:#473a32;--accent:#915969;background-color:var(--sheet);background-image:url('../assets/riso-fiber-v2.webp')}
h1,h2{font-family:'PingFang SC','Microsoft YaHei',sans-serif;color:var(--dark);text-shadow:.65px .4px #d94f3125}header a,.lead,footer{color:var(--dark)}.materials{border-color:var(--dark)}
body .card{background-image:url('../assets/riso-fiber-v2.webp');background-blend-mode:multiply;color:var(--dark);border:1px solid #263d3233;box-shadow:3px 5px 0 #263d3217,0 10px 20px #263d3210;border-bottom:1px solid #263d3233}body .merge{background-color:var(--card-a)}body .stack{background-color:var(--card-b)}body .run{background-color:var(--card-c)}.card:before,.card:after,.card-sample:before{display:none}
body .material-samples>div{background-image:url('../assets/riso-fiber-v2.webp');box-shadow:3px 4px 0 #263d3220}body .material-samples .section-sample{background-color:var(--sheet)}body .material-samples .card-sample{background-color:var(--card-a)}body .material-samples .table-sample{background-color:var(--dark);color:var(--sheet)}
button{background:var(--sheet) url('../assets/riso-fiber-v2.webp');color:var(--dark);border-color:var(--dark)}.primary,.theme-buttons button[aria-pressed=true]{background:var(--dark);color:var(--sheet)}.primary:hover{background:var(--accent)}.reset{background:transparent}.active-game{outline-color:var(--accent)}canvas{filter:none;box-shadow:none}#board{background:var(--dark);box-shadow:none}.cell[data-v]{background-image:url('../assets/riso-fiber-v2.webp')}#champion{background:url('../assets/riso-fiber-v2.webp');border-color:var(--dark)}#win-flash{background:var(--sheet);border-color:var(--accent)}
/* Raster pulp and ink density: visible at normal viewing scale. */
body,body[data-theme=news],body[data-theme=kraft],body[data-theme=poster]{background-image:url('../assets/riso-fiber-v2.webp');background-size:680px;background-blend-mode:multiply}
body .card,body .material-samples>div{background-image:url('../assets/riso-fiber-v2.webp');background-size:490px;background-blend-mode:multiply;border-radius:3px;box-shadow:inset 0 1px 1px #fff9,inset 1px 0 1px #fff5,1px 2px 0 #514a3e30,4px 7px 10px #263d3227}
button,.cell[data-v],#champion{background-image:url('../assets/riso-fiber-v2.webp');background-size:490px;background-blend-mode:multiply}
.card h2{color:var(--dark);text-shadow:.7px .5px #d94f3150}
h1,h2{font-family:'Songti SC','STSong','Noto Serif CJK SC',serif;font-weight:900;letter-spacing:-.035em}body{font-family:'PingFang SC','Microsoft YaHei',sans-serif}.hud,.keyboard-bar,button{font-family:'SFMono-Regular','Menlo','PingFang SC',monospace}body .edit{background-color:var(--card-c);transform:rotate(.5deg)}body .maze{background-color:var(--card-a);transform:rotate(-.5deg)}body .beat{background-color:var(--card-b);transform:rotate(.3deg)}
/* Shared victory: turn the entire paper card over, preserving its place. */
.desk>.card{padding:0;perspective:1400px}.card-inner{position:relative;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.card-front{padding:22px;backface-visibility:hidden}.card-back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;transform:rotateY(180deg);backface-visibility:hidden;background:inherit;border-radius:3px;background-color:var(--sheet);background-image:url('../assets/riso-fiber-v2.webp');background-size:490px;background-blend-mode:multiply;text-align:center}.card-back[hidden]{display:none}.rewarded .card-inner{transform:rotateY(180deg)}.reward-stamp{border:2px solid var(--accent);color:var(--accent);padding:7px 14px;font-size:14px;font-weight:800;transform:rotate(-5deg)}.card-back img{width:200px;height:280px;object-fit:contain;margin:20px 0 6px}.reward-author{font-size:11px;letter-spacing:.1em}.card-back blockquote{font-family:'Songti SC','STSong',serif;font-size:25px;line-height:1.5;font-weight:900;margin:8px 0 12px}.reward-source{font-size:12px;color:inherit}.reward-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:24px}.reward-again{background:var(--dark);color:var(--sheet)}#champion{display:none!important}@media(prefers-reduced-motion:reduce){.card-inner{transition:none}}

body{background:transparent!important}header,.materials,main>h1,main>.lead,footer{display:none}main{padding:15px 12px 35px;max-width:none}.keyboard-bar{color:#f3eedc;border-color:#f3eedc55;margin-top:0}.desk{gap:26px}.card-back{min-height:100%}
