/* A: tactile desk. All controls and typography are live HTML. */
:root{--primary:#765378;--muted:#686476;--line:#d8d2db;color:#342f48;background:#e4e4ed}
body{background:linear-gradient(#eeedf230,#e3e2ed60),url('../assets/workshop/desk.png') center top/cover fixed;min-height:100vh}
.brand{max-width:1050px;padding:18px 28px 10px}.brand a{color:#443956}.brand #connection{background:#fffaf1df;padding:4px 10px;border-radius:4px;color:#575065}
main{max-width:700px;margin:24px auto 140px;padding:38px 40px 46px;min-height:65vh;background:#fffcf4;border:1px solid #d4ced5;border-radius:4px 14px 14px 4px;box-shadow:-7px 0 0 #aaa0bb,0 6px 0 -2px #e9e3d9,0 10px 0 -3px #bdb8bd,14px 20px 25px #45415b25;position:relative}
main:not(.workbench):before{content:'';position:absolute;left:20px;top:0;bottom:0;border-left:1px solid #d3a8b340;pointer-events:none}
.heading h1{color:#39314f}.heading p{font-size:.95rem}.eyebrow,.text-button,summary{color:#6f4e73}.primary{background:#805774;box-shadow:0 4px 0 #593b58;border:1px solid #724768;border-radius:7px}.primary:hover:not(:disabled){background:#704566}.secondary,.choice{background:linear-gradient(#fffefa,#eee9e3);border:1px solid #c9c1c8;box-shadow:0 3px 0 #c5bbc7;border-radius:7px}.choice[aria-pressed=true]{background:#e5d9e9;border-color:#85628e;color:#4a3159;box-shadow:inset 0 2px 4px #5b396b20}.primary:active,.secondary:active,.choice:active{transform:translateY(2px);box-shadow:none}
.today{background:#ece4f1;border:1px solid #c9bdd5;border-radius:3px 12px 12px 3px;box-shadow:-5px 0 #a698b6,0 5px #d6cdd9}.node{background:#e9deed;color:#64446c}.destination>svg{color:#765378}.destination:hover strong,.lesson-row:hover strong{color:#805774}.destination,.lesson-row{border-bottom-style:dashed}.step-track [aria-current]{color:#64446c}.transcript{background:repeating-linear-gradient(transparent 0 33px,#ccc7d330 33px 34px);border-radius:0;padding:16px 8px;line-height:2.05}.study-card{border-radius:9px;background:#fffdf7;box-shadow:0 5px 0 #d8cbdc,0 10px 0 -2px #fcf7ee,8px 16px 22px #52446423;border-color:#c7bdcb}.feedback{background:#ece3ed;border-radius:5px}.completion-mark{background:#eaddec}.plot canvas{border:8px solid #b7aebf;border-radius:6px;box-shadow:0 4px 0 #8b8197,5px 10px 18px #44355420}.slider-control{padding:12px 16px;background:#eee7ec;border:1px solid #d4c8d7;border-radius:6px}.setting input{appearance:none;width:52px;height:30px;border-radius:20px;background:#aaa2af;border:2px solid #8e8596;position:relative;box-shadow:inset 0 2px 3px #42394e40;cursor:pointer}.setting input:before{content:'';position:absolute;left:2px;top:2px;width:22px;height:22px;border-radius:50%;background:linear-gradient(#fffef8,#ded7d9);box-shadow:0 2px 3px #42394e50;transition:transform .16s}.setting input:checked{background:#856087;border-color:#765078}.setting input:checked:before{transform:translateX(22px)}
nav{bottom:14px;width:min(calc(100% - 24px),660px);border:2px solid #fdfaf4;border-radius:20px;background:linear-gradient(#dbd5df,#c6bfce);box-shadow:inset 0 3px 6px #74698135,0 6px 0 #a9a0b3,8px 14px 20px #50405c25;padding:7px 9px calc(7px + env(safe-area-inset-bottom));gap:4px}nav a{border-radius:11px;min-height:67px;color:#51495f}nav a[aria-current]{color:#664168;background:linear-gradient(#fffcf4,#eae2e8);box-shadow:0 3px 0 #a79cac}nav a[aria-current]:after{background:#a14d86}nav svg{filter:drop-shadow(1px 2px 0 #ffffff90)}
main.workbench{max-width:940px;background:none;border:0;box-shadow:none;margin:8px auto 110px;padding:16px 34px 40px;gap:24px}.desk-greeting{margin:0 0 6px 12px}.desk-greeting .heading h1{font-size:clamp(1.7rem,4vw,2.3rem)}.desk-greeting .eyebrow{letter-spacing:.16em;font-size:.75rem;margin-bottom:8px}.desk-objects{display:grid;grid-template-columns:1fr 1.6fr;gap:30px 42px;align-items:center;padding:8px 12px}.desk-objects>a,.desk-book{position:relative;transition:transform .18s,filter .18s}.desk-objects>a:hover,.desk-book:hover{filter:brightness(1.025);transform:translateY(-3px) rotate(0deg)}.desk-objects>a:active,.desk-book:active{transform:translateY(2px)}.desk-book{grid-column:2;grid-row:1 / 3;min-height:410px;padding:30px 32px 30px 44px;border:1px solid #9185ab;border-left:14px solid #9182a7;border-radius:7px 18px 18px 7px;background:repeating-linear-gradient(90deg,#ffffff04 0 1px,#69567804 1px 3px),linear-gradient(115deg,#c2b9db,#b3a5cd);box-shadow:inset 3px 0 4px #f1eafb90,inset -2px 0 3px #82739350,0 5px 0 #e8e0d6,0 8px 0 #c7bfb5,0 12px 0 #877795,12px 23px 21px #53527035;color:#342747;display:flex;flex-direction:column;align-items:center;text-align:center;gap:23px;transform:rotate(2deg)}.book-label{font-size:.86rem;border-bottom:1px solid #756586;padding:0 15px 12px}.desk-book strong{font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:-.04em}.book-description{font-size:.86rem;line-height:1.8}.book-open{font-size:.98rem;font-weight:700;border-top:1px solid #8c7d9f;padding-top:16px;width:100%}.ribbon{position:absolute;left:32px;bottom:-39px;width:20px;height:35px;background:#ad568b;clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%)}.book-diagram{height:100px;width:175px;display:block;position:relative}.book-diagram i{position:absolute;top:0;left:20px;width:72px;height:72px;border:1.5px solid #705e86;border-radius:50%}.book-diagram i+i{left:70px;background:repeating-linear-gradient(135deg,transparent 0 6px,#705e8635 6px 7px)}.book-diagram b{position:absolute;bottom:0;left:30px;font-weight:400;font-family:Georgia,serif;letter-spacing:3px}.desk-cards{grid-column:1;grid-row:1;background:#fffaf0;border:1px solid #cbc2cc;border-radius:7px;padding:30px 20px 20px;display:flex;align-items:center;flex-direction:column;gap:10px;box-shadow:0 5px #dbd1dc,0 9px #fffaf0,0 13px #a58bad,7px 20px 20px #4d46562b;transform:rotate(-4deg);margin:10px 12px}.desk-cards strong{font-size:1.45rem}.card-ring{position:absolute;top:-18px;left:23px;border:5px solid #8e8a98;border-right-color:#dcd9df;width:19px;height:39px;border-radius:50%;box-shadow:1px 1px 1px #514958}.clock-face{height:58px;width:58px;border:4px solid #84708e;border-radius:50%;position:relative;margin:8px}.clock-face:before,.clock-face:after{content:'';position:absolute;left:24px;bottom:24px;width:2px;height:18px;background:#84708e;transform-origin:bottom}.clock-face:after{transform:rotate(60deg);height:14px;background:#af568c}.desk-game{grid-column:1;grid-row:2;border:8px solid #8d7892;border-top-color:#ac99b0;border-bottom-color:#6f5d77;border-radius:12px;background:#4a3b56;padding:20px;display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 3px 8px #241c36,0 5px #685773,8px 16px 18px #4d465634;transform:rotate(-2deg);color:#fffaf3}.desk-game small{color:#ddd0e0}.tile-pieces{display:flex;gap:8px;margin-bottom:7px}.tile-pieces i{width:42px;height:42px;background:#fff7ed;color:#694d73;border-radius:4px;box-shadow:0 4px #b3a6b4;display:grid;place-items:center;font-size:23px;font-style:normal}.tile-pieces i:nth-child(2){background:#bd80a4;color:white;transform:rotate(8deg)}.desk-record{grid-column:2;background:repeating-linear-gradient(transparent 0 27px,#bbb3ce35 27px 28px),#fffdf3;padding:22px 24px;display:flex;flex-direction:column;gap:8px;box-shadow:3px 7px 12px #4d465624;transform:rotate(1deg);border:1px solid #d7d0d2}.desk-record strong{font-size:1.1rem}.desk-record>span:not(.eyebrow){font-size:.88rem}.challenge-tag{grid-column:1;grid-row:3;background:#e8d9e9;border:1px solid #cbb8ce;padding:16px;display:flex;gap:10px;align-items:center;border-radius:4px;box-shadow:0 4px #b7a3bd}.challenge-tag span:first-of-type{flex:1}.desk-caption{font-size:.75rem;color:#666071;text-align:center}
@media(max-width:650px){body{background-size:auto 1100px}.brand{padding:10px 20px 0}.brand #connection{font-size:.65rem}main{margin:18px 18px 130px;padding:28px 24px 34px;min-height:65vh}main:not(.workbench):before{left:12px}main.workbench{padding:12px 22px 30px;margin:6px auto 110px}.desk-greeting{margin:0 0 8px}.desk-greeting .heading p{font-size:.82rem}.desk-objects{grid-template-columns:1fr 1fr;gap:30px 20px;padding:0}.desk-book{grid-column:1 / -1;grid-row:1;min-height:355px;width:88%;justify-self:center;gap:18px;padding:25px 25px 25px 35px;transform:rotate(-2deg)}.desk-book strong{font-size:1.8rem}.book-diagram{height:90px}.desk-cards{grid-row:2;grid-column:1;margin:8px 0;padding:26px 10px 18px}.desk-cards strong{font-size:1.25rem}.desk-cards small,.desk-game small{font-size:.72rem}.desk-game{grid-row:2;grid-column:2;padding:18px 10px;border-width:6px}.tile-pieces{gap:5px}.tile-pieces i{width:30px;height:33px;font-size:20px}.desk-game strong{font-size:1rem}.desk-record{grid-column:1 / -1;grid-row:3}.challenge-tag{grid-column:1 / -1;grid-row:4}.desk-record{transform:rotate(-1deg)}nav a{font-size:.72rem}nav{bottom:10px}.setting{gap:10px}.setting input{min-width:52px}}
@media(prefers-reduced-motion:no-preference){main:not(.workbench){animation:paper-open .22s ease-out}@keyframes paper-open{from{opacity:.7;transform:translateY(7px)}to{opacity:1;transform:none}}}
@media(max-width:360px){main{padding:24px 18px}.desk-book{width:94%;padding-left:22px}.desk-objects{gap:26px 14px}.desk-game{padding:14px 7px}.tile-pieces i{width:26px}.book-description{font-size:.8rem}.brand{padding-inline:16px}}
main[data-page=games] .destination{padding:22px;background:linear-gradient(135deg,#eee5ef,#d9cfdf);border:1px solid #b9acbf;border-radius:6px;box-shadow:0 4px #b4a5bd,4px 8px 10px #52446015}
main[data-page=games] .destination>svg{width:38px;height:38px;padding:7px;background:#fff9ed;border-radius:5px;box-shadow:0 3px #c7bccc}
main[data-page=full] .lesson-row,main[data-page=quick] .lesson-row{padding-inline:12px;background:linear-gradient(90deg,#ebe0eb55,transparent)}
main[data-page=records]{background:repeating-linear-gradient(transparent 0 31px,#c9c0d52b 31px 32px),#fffcf4}
.brand a{background:#fffaf0e8;padding:0 12px;border-radius:4px;box-shadow:2px 3px 8px #51415b12}
.desk-greeting{align-self:flex-start;padding:14px 20px;background:#fffaf0e6;box-shadow:3px 5px 12px #51415b12;transform:rotate(-1deg)}
@media(max-width:650px){.desk-greeting{padding:12px 14px}}
