body.subject-bosco{--bg-1: #dff0e2;--bg-2: #eaf3e0;--bg-3: #fff8da;--card-bg: #fffdf7;--text-main: #1f2d3d;--bosco-ground: #e8d7b4;--bosco-clearing: #f4e8cd;--bosco-leaf-dark: #00543d;--bosco-leaf-light: #009E73;--bosco-trunk: #6b4a2a;--bosco-water: #56B4E9;--bosco-water-edge: #a5d9f4;--bosco-wood: #a06f00;--bosco-tile: #fffdf7;--bosco-ink: #1f2d3d;--bosco-glow: #E69F00;--bosco-accent: #D55E00;--bosco-hero-hood: #E69F00;--bosco-hero-body: #0072B2;--bosco-hero-skin: #f4c58a}html:not([data-palette=okabe-ito]) body.subject-bosco{--accent-1: var(--subj-bosco-a);--accent-2: var(--subj-bosco-b);--accent-3: var(--subj-bosco-dec);--bg-1: #dcebcf;--bg-2: var(--ws-olive-buff);--bg-3: var(--ws-cartridge-buff);--card-bg: var(--ws-ivory);--text-main: var(--ws-slate-black);--bosco-ground: #dda96b;--bosco-clearing: #f0be83;--bosco-leaf-dark: #164c45;--bosco-leaf-light: #94b24c;--bosco-trunk: #614d2d;--bosco-water: #ae99c0;--bosco-water-edge: #deb6c2;--bosco-wood: #ad773c;--bosco-tile: #ffe8ac;--bosco-ink: #49331e;--bosco-glow: #ffc76c;--bosco-accent: var(--ws-terracotta);--bosco-hero-hood: #edb33e;--bosco-hero-body: #29887a;--bosco-hero-skin: #f4c58a}.bosco-stage{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;position:relative}.bosco-scene{position:relative;width:min(100%,860px,136vh);display:flex}.bosco-canvas{width:100%;height:auto;aspect-ratio:8 / 5;display:block;border:4px solid var(--accent-1);border-radius:20px;background:var(--bosco-ground);box-shadow:0 14px 34px #0000002e;touch-action:none;image-rendering:pixelated}.bosco-canvas:focus-visible{outline:4px solid var(--accent-3);outline-offset:3px}.bosco-btn.bosco-onstage{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:4;font-size:1.05rem;padding:14px 26px;background:var(--accent-1);color:#fff;border-color:var(--accent-1);box-shadow:0 10px 24px #0000004d}.bosco-btn.bosco-onstage:hover{background:var(--accent-2);border-color:var(--accent-2)}@media (max-width: 540px){.bosco-btn.bosco-onstage{bottom:10px;font-size:.95rem;padding:12px 18px}}.bosco-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.bosco-btn{padding:10px 18px;border:3px solid var(--accent-1);background:var(--card-bg);color:var(--text-main);border-radius:50px;font-family:inherit;font-size:.95rem;font-weight:800;cursor:pointer;transition:background .15s,color .15s}.bosco-btn:hover{background:var(--accent-1);color:#fff}.bosco-btn[disabled]{opacity:.45;cursor:default}.bosco-btn[disabled]:hover{background:var(--card-bg);color:var(--text-main)}.bosco-hint{display:none;font-size:.85rem;font-weight:700;opacity:.75;text-align:center}@media (hover: none){.bosco-hint{display:block}}.bosco-activity{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:4px;padding:16px 20px;background:var(--card-bg);border:3px solid var(--accent-1);border-radius:var(--radius-lg, 28px)}.bosco-prompt{display:flex;flex-direction:column;gap:4px;min-width:0}.bosco-label{font-size:.8rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-1)}.bosco-word{display:flex;gap:8px;font-family:Fredoka One,Fredoka One Fallback,cursive;font-size:clamp(1.6rem,6vw,2.3rem);line-height:1.1;color:var(--text-main)}.bosco-word .missing{color:var(--accent-3)}.bosco-note{font-size:.9rem;font-weight:700;opacity:.8}.bosco-choices{display:flex;gap:10px;flex-wrap:wrap}.bosco-choices button{min-width:64px;padding:0 14px;height:64px;border:3px solid var(--accent-1);border-radius:18px;background:var(--bg-3, #fff8da);color:var(--text-main);font-family:Fredoka One,Fredoka One Fallback,cursive;font-size:1.7rem;cursor:pointer;transition:background .15s,color .15s,transform .15s}.bosco-choices button:hover{background:var(--accent-1);color:#fff}.bosco-choices button:active{transform:translateY(2px)}.bosco-choices button[disabled]{opacity:.45;cursor:default}.bosco-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.bosco-classe{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.bosco-classe-label{font-size:.85rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #6e6357)}.bosco-classe .icon-btn[aria-pressed=true],.bosco-classe .icon-btn[data-modalita][aria-pressed=true]{background:var(--accent-1);border-color:var(--accent-1);color:#fff}.bosco-ripasso{margin-top:6px;font-size:.88rem;font-weight:700;color:var(--muted, #6e6357)}.bosco-owl{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 18px;background:var(--bg-3, #fff8da);border:3px solid var(--accent-3);border-radius:var(--radius-md, 18px)}.bosco-owl-face{font-size:1.8rem;line-height:1}.bosco-owl-text{font-size:.98rem;font-weight:700;line-height:1.45}.bosco-journey{display:flex;gap:8px;align-items:center}.bosco-step{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:3px solid var(--accent-1);background:var(--card-bg);color:var(--accent-1);font-family:Fredoka One,Fredoka One Fallback,cursive;font-size:1rem}.bosco-step.current{background:var(--accent-3);border-color:var(--accent-3);color:#fff}.bosco-step.finished{background:var(--accent-1);border-color:var(--accent-1);color:#fff}.bosco-overlay{position:absolute;inset:0;display:none;place-items:center;padding:16px;border-radius:20px;background:#1f2d3d8c;z-index:5}.bosco-overlay.open{display:grid}.bosco-overlay-card{max-width:460px;max-height:100%;overflow-y:auto;padding:22px 24px;text-align:center;background:var(--card-bg);border:4px solid var(--accent-1);border-radius:var(--radius-lg, 28px);box-shadow:var(--shadow-card, 0 14px 34px rgba(0, 0, 0, .2))}.bosco-overlay-card h2{margin-bottom:10px;font-family:Fredoka One,Fredoka One Fallback,cursive;font-size:1.5rem;color:var(--accent-1)}.bosco-overlay-card p{margin-bottom:10px;font-size:.98rem;line-height:1.5}.bosco-overlay-card p:last-of-type{margin-bottom:16px}.bosco-overlay-card .btn-replay{margin:0 auto}@media (max-width: 640px){.bosco-activity{flex-direction:column;align-items:stretch;padding:14px}.bosco-choices,.bosco-actions{justify-content:center}.bosco-choices button{min-width:72px;height:72px}}
