:root{--ink:#29433e;--cream:#fff9e8;--purple:#72549e;--gold:#f1c95e;--good:#407d57;--warn:#9b434b}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:"Trebuchet MS","Arial Rounded MT Bold",system-ui,sans-serif;background:#69c5e5;color:var(--ink)}button,a{font:inherit}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}.wind-shell,.wind-world{width:100%;height:100svh;overflow:hidden}.wind-world{position:relative;background:radial-gradient(circle at 50% 45%,#d4f6fa,#79d2e7 58%,#55b7dc)}.wind-scene{--ratio:1.7777778;position:absolute;left:50%;top:50%;width:min(100%,calc(100svh * var(--ratio)));aspect-ratio:16/9;transform:translate(-50%,-50%);overflow:clip;isolation:isolate}.wind-art{position:absolute;z-index:0;inset:0;background:var(--pw-wind-workshop-bg,url('/wind-workshop-storybook.webp')) center/100% 100% no-repeat;transform:scale(1.006)}
.wind-equation[hidden],.profit-pouches[hidden],.payment-pouch[hidden],.reserve-jars[hidden]{display:none!important}
.wind-back,.wind-wallet{position:absolute;z-index:30;top:2.1%;height:50px;display:flex;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(255,249,226,.97);box-shadow:0 5px 0 rgba(48,71,68,.26),0 13px 25px rgba(32,65,73,.15);color:#355c59;text-decoration:none}.wind-back{left:2%;gap:7px;padding:7px 14px}.wind-back span{font-size:23px}.wind-back b{font-size:12px}.wind-wallet{right:2%;min-width:92px;gap:7px;padding:7px 15px;font-size:21px}.wind-wallet span{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff5ad,#ebc94f 58%,#a67728);color:#624816;font-weight:1000}.wind-prompt{position:absolute;z-index:29;left:50%;top:2%;width:min(54%,690px);min-height:60px;display:grid;place-items:center;padding:12px 25px;border:3px solid #fff4bd;border-radius:26px;background:rgba(46,72,71,.96);box-shadow:0 6px 0 rgba(31,53,53,.28),0 15px 28px rgba(37,70,76,.15);color:#fff;font-size:clamp(20px,1.7vw,27px);font-weight:1000;line-height:1.12;text-align:center;transform:translateX(-50%);cursor:pointer}.wind-prompt.good{background:rgba(49,115,70,.97)}.wind-prompt.error{background:rgba(137,57,65,.97)}.wind-prompt:focus-visible{outline:5px solid #fff0a2;outline-offset:4px}.wind-progress{position:absolute;z-index:29;left:50%;top:11.1%;transform:translateX(-50%)}#wind-round-dots{display:flex;gap:8px}#wind-round-dots i{width:12px;height:12px;border:2px solid white;border-radius:50%;background:rgba(54,79,76,.42);box-shadow:0 2px 4px rgba(26,55,60,.23)}#wind-round-dots i.done{background:#ffe277}#wind-round-dots i.current{background:white;transform:scale(1.35)}
.wind-customer-area{position:absolute;z-index:10;left:2.5%;top:21%;width:22%;height:39%;pointer-events:none}.wind-customer{position:absolute;left:0;bottom:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;touch-action:none;overflow:visible}.wind-customer img{position:absolute;left:50%;bottom:0;width:auto;height:var(--customer-canvas-h,clamp(144px,34.66vmin,275px));max-width:none;object-fit:contain;object-position:center bottom;translate:calc(-50% + var(--character-drag-x,0px)) calc(var(--sprite-foot-gap,11%) + var(--character-drag-y,0px));filter:drop-shadow(0 8px 5px rgba(40,62,55,.28));user-select:none}.wind-customer:focus,.wind-customer:focus-visible{outline:0!important;box-shadow:none!important}.wind-customer:focus-visible img{filter:drop-shadow(0 0 10px #fff1a3) drop-shadow(0 8px 5px rgba(40,62,55,.28))}.wind-order{position:absolute;left:62%;top:-3%;min-width:112px;padding:10px 14px;border:3px solid #fff1c1;border-radius:20px 20px 20px 5px;background:rgba(255,250,232,.97);box-shadow:0 5px 0 rgba(84,70,57,.22);text-align:center}.wind-order strong{font-size:clamp(18px,1.45vw,23px);color:#654c78}
.parts-purse,.wind-meter{position:absolute;z-index:15;top:18%;display:grid;place-items:center;min-width:112px;padding:9px 15px;border:3px solid rgba(255,246,200,.95);border-radius:18px;background:rgba(64,79,72,.92);box-shadow:0 5px 0 rgba(44,55,51,.27);color:#fff}.parts-purse{left:31%}.wind-meter{right:30%}.parts-purse small,.wind-meter small{font-size:12px;letter-spacing:.07em;font-weight:1000}.parts-purse strong,.wind-meter strong{color:#ffe078;font-size:clamp(24px,2vw,31px)}.parts-purse::before{content:"$";position:absolute;left:-19px;bottom:-4px;width:42px;height:42px;display:grid;place-items:center;border:4px double #8e6827;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff7b8,#efc756 55%,#ad782a);box-shadow:8px -5px 0 -2px #ddb04a;color:#614617;font-size:20px;font-weight:1000}.parts-purse.is-over{background:rgba(139,55,61,.96)}
.part-rack{position:absolute;z-index:15;left:2.3%;bottom:4%;width:35%;height:27%}.wind-part{--turn:0deg;position:absolute;width:22%;min-width:74px;min-height:82px;aspect-ratio:1.25;padding:10px 7px 9px;border:4px solid #dbbc83;border-radius:70% 22% 70% 24%;background:linear-gradient(145deg,#b78bd0,#6f4d9c 72%);box-shadow:inset 0 0 0 3px rgba(255,255,255,.14),0 7px 0 #543d73,0 12px 18px rgba(43,53,46,.22);color:white;cursor:pointer;touch-action:none;transform:rotate(var(--turn));transition:filter .18s,transform .18s,opacity .18s}.wind-part:nth-child(1){left:0;top:14%;--turn:-8deg}.wind-part:nth-child(2){left:22%;top:34%;--turn:5deg}.wind-part:nth-child(3){left:45%;top:8%;--turn:-3deg}.wind-part:nth-child(4){left:68%;top:31%;--turn:8deg}.wind-part:nth-child(5){left:80%;top:-7%;--turn:-5deg}.wind-part::after{content:"";position:absolute;left:12%;right:18%;top:43%;height:4px;border-radius:5px;background:rgba(255,239,173,.7);box-shadow:0 -11px 0 -1px rgba(255,255,255,.23)}.wind-part small,.wind-part strong{position:relative;z-index:1;display:block;text-shadow:0 2px 2px rgba(46,33,66,.5)}.wind-part small{font-size:clamp(11px,.9vw,14px);font-weight:1000}.wind-part strong{color:#fff0a4;font-size:clamp(19px,1.55vw,26px)}.wind-part:hover,.wind-part:focus-visible{filter:brightness(1.12);transform:translateY(-5px) rotate(0)}.wind-part[aria-pressed="true"]{opacity:.42;filter:saturate(.6);transform:translateY(5px) scale(.94) rotate(0)}.wind-part:focus-visible,.sail-token:focus-visible,.wind-wheel:focus-visible,.reserve-jar:focus-visible,.payment-pouch:focus-visible,.profit-pouch:focus-visible{outline:4px solid #fff1a0;outline-offset:4px}
.sail-cradle{position:absolute;z-index:9;left:35%;top:27%;width:34%;height:39%;border-radius:45%;pointer-events:none}.sail-cloth{position:absolute;left:20%;top:8%;width:60%;height:68%;border:5px solid rgba(236,219,181,.82);border-radius:55% 20% 56% 18%;background:linear-gradient(145deg,rgba(255,247,213,.74),rgba(173,216,211,.55));clip-path:polygon(0 0,100% 10%,70% 100%,15% 80%);transform:rotate(2deg);transition:.35s}.sail-selection{position:absolute;z-index:3;left:7%;right:8%;bottom:13%;height:34%;display:flex;align-items:flex-end;justify-content:center;gap:2%;pointer-events:auto}.sail-token{width:21%;min-width:56px;min-height:65px;padding:7px 4px;border:3px solid #e2c68e;border-radius:70% 23% 70% 24%;background:linear-gradient(145deg,#9870b4,#654888);box-shadow:0 5px 0 #4c3768;color:#fff;font-size:11px;font-weight:1000;cursor:pointer}.sail-token small,.sail-token strong{display:block}.sail-token strong{color:#fff0a1;font-size:17px}.sail-ribbon{position:absolute;z-index:4;right:-10%;top:35%;width:34%;height:8%;border-radius:50%;background:#dc6f88;transform-origin:0 50%;opacity:.55}.sail-ribbon.r2{top:49%;width:29%;background:#f1c85b}.wind-scene.is-flying .sail-cloth{transform:rotate(-4deg) scale(1.08);filter:brightness(1.18) drop-shadow(0 0 18px rgba(255,241,141,.8))}.wind-scene.is-flying .sail-ribbon{animation:ribbonWave .28s ease-in-out infinite alternate}
.wind-wheel{position:absolute;z-index:14;right:8%;top:22%;width:15%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;touch-action:manipulation}.wind-wheel[data-ready="true"]{filter:drop-shadow(0 0 14px rgba(255,239,126,.95));animation:wheelReady 1.3s ease-in-out infinite}
.reserve-jars{position:absolute;z-index:20;left:34%;bottom:5%;width:35%;height:18%;display:flex;align-items:flex-end;justify-content:center;gap:6%}.reserve-jar{position:relative;width:23%;min-width:88px;min-height:88px;height:90%;padding:21px 5px 8px;border:4px solid #a68b64;border-radius:20px 20px 38% 38%;background:linear-gradient(145deg,#ddd0ad,#8f7d66);box-shadow:0 7px 0 #67594b;color:white;text-shadow:0 2px 2px #554838;cursor:pointer}.reserve-jar::before{content:"";position:absolute;left:15%;right:15%;top:-10px;height:20px;border:3px solid #aa8c62;border-radius:50%;background:#806c4f}.reserve-jar small{display:block;font-size:11px}.reserve-jar strong{font-size:27px}.reserve-jars.is-kept{left:24%;bottom:2%;width:12%;height:14%;justify-content:flex-start;pointer-events:none}.reserve-jars.is-kept .reserve-jar{width:100%;min-width:78px;min-height:70px}.reserve-jars.is-kept .reserve-jar small{font-size:9px}
.payment-pouch{position:absolute;z-index:19;left:24%;top:auto;bottom:16%;width:102px;height:92px;padding:16px 6px 8px;border:4px solid #ead094;border-radius:44% 44% 31% 31%;background:linear-gradient(145deg,#c89454,#865d35);box-shadow:0 7px 0 #624326;color:white;cursor:pointer;touch-action:none}.payment-pouch::before{content:"";position:absolute;left:29%;right:29%;top:-8px;height:17px;border-radius:50%;background:#dfb56d}.payment-pouch small{display:block;font-size:12px;letter-spacing:.05em}.payment-pouch strong{color:#fff0a1;font-size:27px}.wind-till{position:absolute;z-index:12;right:3%;bottom:8%;width:20%;height:24%;border:0;border-radius:45%;background:transparent;cursor:default}.wind-till span{position:absolute;left:50%;top:50%;width:48px;height:48px;display:grid;place-items:center;border:4px solid #fff0a0;border-radius:50%;background:#efc755;box-shadow:0 5px 0 #97712d;color:#644716;font-size:24px;font-weight:1000;opacity:0;transform:translate(-50%,-50%) scale(.4);transition:.28s}.wind-scene.has-payment .wind-till span{opacity:1;transform:translate(-50%,-50%) scale(1)}.wind-till:not(:disabled){cursor:pointer}
.wind-equation{position:absolute;z-index:20;left:51%;bottom:20%;display:flex;align-items:center;gap:13px;padding:12px 20px;border:4px solid #89633d;border-radius:18px;background:rgba(66,47,34,.95);box-shadow:0 6px 0 #4c3527;color:#fff8d3;transform:translateX(-50%)}.wind-equation span{display:grid;place-items:center;font-size:12px;font-weight:1000}.wind-equation small{font-size:12px}.wind-equation b{font-size:27px;color:#ffe174}.wind-equation i{font-size:27px;font-style:normal}.profit-pouches{position:absolute;z-index:21;left:34%;right:30%;bottom:4.5%;height:15%;display:flex;align-items:flex-end;justify-content:center;gap:7%}.profit-pouch{position:relative;width:26%;min-width:88px;min-height:86px;height:94%;padding:21px 5px 8px;border:4px solid #ead091;border-radius:44% 44% 31% 31%;background:linear-gradient(145deg,#b98550,#765333);box-shadow:0 7px 0 #583d28;color:#fff0a1;font-size:28px;font-weight:1000;cursor:pointer}.profit-pouch::before{content:"";position:absolute;left:29%;right:29%;top:-8px;height:17px;border-radius:50%;background:#ddb576}.profit-pouch:hover,.profit-pouch:focus-visible{transform:translateY(-6px);filter:brightness(1.1)}
.wind-toy{position:absolute;z-index:7;border:0;background:transparent;cursor:pointer;touch-action:manipulation}.chime-toy{left:28%;top:8%;width:8%;height:20%}.vane-toy{right:2%;top:3%;width:13%;height:15%}.wind-scene[data-toy="wind-chime"] .chime-toy{animation:toySwing .45s ease-in-out 3}.wind-scene[data-toy="weather-vane"] .vane-toy{animation:toySpin .8s ease}.wind-scene[data-phase="reserve"] .part-rack,.wind-scene[data-phase="reserve"] .wind-wheel,.wind-scene[data-phase="reserve"] .parts-purse,.wind-scene[data-phase="payment"] .part-rack,.wind-scene[data-phase="payment"] .wind-wheel,.wind-scene[data-phase="payment"] .parts-purse,.wind-scene[data-phase="profit"] .part-rack,.wind-scene[data-phase="profit"] .wind-wheel,.wind-scene[data-phase="profit"] .parts-purse{visibility:hidden;pointer-events:none}.drag-ghost{position:fixed;z-index:999;width:86px;height:72px;display:grid;place-items:center;border:4px solid #e0c184;border-radius:70% 22% 70% 24%;background:#78549f;color:white;font-weight:1000;box-shadow:0 12px 28px rgba(31,41,43,.3);opacity:.92;transform:translate(-50%,-50%);pointer-events:none}
.wind-scene[data-phase="test"] .part-rack,.wind-scene[data-phase="test"] .wind-wheel,.wind-scene[data-phase="test"] .parts-purse{visibility:hidden;pointer-events:none}
@keyframes ribbonWave{to{transform:rotate(12deg) scaleX(1.1)}}@keyframes wheelReady{50%{transform:scale(1.04) rotate(4deg)}}@keyframes wheelSpin{to{transform:rotate(360deg)}}@keyframes toySwing{50%{transform:rotate(12deg)}}@keyframes toySpin{to{transform:rotate(360deg)}}
@media(orientation:portrait){.wind-scene{left:0;top:0;width:100%;height:100svh;aspect-ratio:auto;transform:none}.wind-art{background-size:100% auto;background-position:center 15%;transform:none}.wind-back{left:14px;top:calc(env(safe-area-inset-top) + 10px)}.wind-wallet{right:14px;top:calc(env(safe-area-inset-top) + 10px)}.wind-prompt{top:calc(env(safe-area-inset-top) + 9px);width:55%;font-size:clamp(20px,2.6vw,25px)}.wind-progress{top:8%}.wind-customer-area{left:1%;top:14%;width:31%;height:25%}.wind-order{left:58%;top:0}.parts-purse{left:32%;top:17%}.wind-meter{right:28%;top:17%}.part-rack{left:2%;top:40%;bottom:auto;width:48%;height:17%}.sail-cradle{left:35%;top:18%;width:48%;height:24%}.wind-wheel{right:1%;top:19%;width:21%}.reserve-jars{left:10%;top:42%;bottom:auto;width:80%;height:10%}.reserve-jars.is-kept{left:24%;top:38%;bottom:auto;width:14%;height:9%}.payment-pouch{left:34%;top:43%;bottom:auto}.wind-till{right:0;top:25%;bottom:auto;width:35%;height:14%}.wind-equation{top:40%;bottom:auto;white-space:nowrap}.profit-pouches{left:10%;right:10%;top:45%;bottom:auto;height:10%}}
@media(max-width:760px) and (orientation:landscape){.wind-back,.wind-wallet{height:43px}.wind-back b{display:none}.wind-prompt{min-height:51px;font-size:18px}.wind-part{min-width:58px;min-height:68px}.wind-equation{transform:translateX(-50%) scale(.92)}}
@media(prefers-reduced-motion:reduce){.wind-part,.wind-till span{transition:none}.wind-wheel[data-ready="true"],.wind-scene.is-testing .wind-wheel-art,.wind-scene.is-flying .sail-ribbon,.wind-scene[data-toy] .wind-toy{animation:none}}html[data-motion="reduced"] .wind-wheel[data-ready="true"],html[data-motion="reduced"] .wind-scene.is-testing .wind-wheel-art,html[data-motion="reduced"] .wind-scene.is-flying .sail-ribbon{animation:none}
.wind-part:nth-child(6){left:78%;top:55%;--turn:4deg}
.wind-part small{font-size:clamp(14px,1vw,16px)}
@media(orientation:portrait){.wind-scene{left:50%;top:0;width:calc(100svh * var(--ratio));height:100svh;max-width:none;aspect-ratio:auto;transform:translateX(-50%)}.wind-art{background-size:100% 100%;background-position:center;transform:scale(1.006)}.wind-back{left:calc((100% - 100vw)/2 + 14px)}.wind-wallet{right:calc((100% - 100vw)/2 + 14px)}.wind-prompt{width:min(34%,650px)}.wind-customer-area{left:30%;top:21%;width:14%;height:39%}.wind-order{left:62%;top:-3%}.parts-purse{left:47%;top:18%}.wind-meter{right:31%;top:18%}.part-rack{left:30%;top:auto;bottom:4%;width:41%;height:27%}.sail-cradle{left:35%;top:27%;width:34%;height:39%}.wind-wheel{right:30%;top:22%;width:10%}.reserve-jars{left:34%;top:auto;bottom:5%;width:35%;height:18%}.reserve-jars.is-kept{left:31%;top:auto;bottom:2%;width:8%;height:14%}.payment-pouch{left:32%;top:auto;bottom:16%}.wind-till{right:29%;top:auto;bottom:8%;width:12%;height:24%}.wind-equation{top:auto;bottom:20%}.profit-pouches{left:34%;right:30%;top:auto;bottom:4.5%;height:15%}}
@media(orientation:landscape) and (max-aspect-ratio:5/3){.wind-scene{width:calc(100svh * var(--ratio));height:100svh;max-width:none;aspect-ratio:auto}.wind-back{left:calc((100% - 100vw)/2 + 14px)}.wind-wallet{right:calc((100% - 100vw)/2 + 14px)}.wind-customer-area{left:13%;width:18%}.parts-purse{left:35%}.part-rack{left:14%;width:35%}.wind-wheel{right:13%;width:13%}.wind-till{right:12%;width:20%}.vane-toy{right:13%}}
.stage-two-unlock{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;width:min(470px,100%);margin:16px auto 18px;border:4px solid #f5cd65;border-radius:24px;background:linear-gradient(135deg,#fff8cd,#e4f6d6);padding:14px 17px;box-shadow:0 7px 0 rgba(95,75,42,.18);text-align:left}.stage-two-unlock[hidden]{display:none}.stage-two-unlock-badge{display:grid;place-items:center;width:70px;height:70px;border:4px solid white;border-radius:50%;background:#6f9b77;box-shadow:0 5px 0 rgba(56,82,61,.22);font-size:36px;animation:skillBadgePop .7s cubic-bezier(.2,.85,.25,1.25)}.stage-two-unlock small,.stage-two-unlock h3,.stage-two-unlock p{display:block;margin:0}.stage-two-unlock small{color:#667548;font-size:12px;font-weight:1000;letter-spacing:.1em}.stage-two-unlock h3{margin:2px 0 3px;color:#3e543f;font-size:clamp(24px,3vw,31px);line-height:1}.stage-two-unlock p{font-size:clamp(16px,2vw,20px);font-weight:850;line-height:1.25}@keyframes skillBadgePop{0%{opacity:0;transform:scale(.3) rotate(-18deg)}70%{transform:scale(1.14) rotate(6deg)}100%{opacity:1;transform:none}}@media(max-width:560px){.stage-two-unlock{grid-template-columns:58px 1fr;padding:12px}.stage-two-unlock-badge{width:56px;height:56px;font-size:30px}}

/* Illustrated workshop pass: the crate and sail are the controls, not extra panels. */
.part-rack{left:5.5%;top:73%;bottom:auto;width:42%;height:13%;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(0,1fr);align-items:end;gap:1% 2%;padding:0;background:none;filter:none}
.part-rack:has(.wind-part:nth-child(4)){top:69.5%;width:44%;height:17%}
.wind-part{position:relative;left:auto!important;top:auto!important;width:100%;min-width:0;min-height:0;height:100%;aspect-ratio:auto;padding:16% 4% 5%;border:0;border-radius:16%;background:var(--pw-wind-crate,url('/wind-parts-crate.webp')) center/contain no-repeat;box-shadow:none;color:#fff;transform:rotate(var(--turn));text-shadow:0 2px 3px #382718;filter:drop-shadow(0 5px 3px rgba(43,44,37,.28))}
.wind-part:nth-child(1){--turn:-2deg}.wind-part:nth-child(2){--turn:1deg}.wind-part:nth-child(3){--turn:-1deg}.wind-part:nth-child(4){--turn:2deg}.wind-part:nth-child(5){--turn:-2deg}.wind-part:nth-child(6){--turn:1deg}
.wind-part::before,.wind-part::after{display:none}
.wind-part small,.wind-part strong{position:absolute;z-index:1;display:block;margin:0;line-height:1;text-shadow:0 2px 3px #382718,0 0 4px rgba(56,39,24,.72)}.wind-part small{left:14%;top:19%;width:48%;display:grid;place-items:center}.wind-part small b{font-size:clamp(21px,1.65vw,28px)}.wind-part small span{margin-top:1px;font-size:clamp(9px,.72vw,12px);line-height:.92}.wind-part strong{right:14%;top:29%;font-size:clamp(22px,1.75vw,29px);color:#fff3a9}
.wind-part:hover,.wind-part:focus-visible{transform:translateY(-4px) rotate(0);filter:brightness(1.12)}
.payment-pouch{width:clamp(96px,9%,134px);height:clamp(90px,10%,128px);padding:0;border:0;border-radius:18%;background:none;box-shadow:none;filter:drop-shadow(0 8px 5px rgba(56,45,35,.34));overflow:visible}.payment-pouch::before{display:none}.payment-pouch img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.payment-pouch strong{position:absolute;left:50%;bottom:8%;min-width:48px;padding:3px 8px;border:2px solid #fff1a8;border-radius:999px;background:rgba(72,48,31,.9);color:#fff2a4;font-size:clamp(19px,1.65vw,27px);line-height:1;transform:translateX(-50%);text-shadow:0 2px 2px #382718}.wallet-drag-ghost{width:104px;height:100px;border:0;border-radius:18%;background:none;box-shadow:none;filter:drop-shadow(0 10px 6px rgba(35,43,39,.38));opacity:.95}.wallet-drag-ghost img{display:block;width:100%;height:100%;object-fit:contain}.wallet-drag-ghost strong{position:absolute;left:50%;bottom:8%;min-width:46px;padding:3px 7px;border:2px solid #fff1a8;border-radius:999px;background:rgba(72,48,31,.9);color:#fff2a4;font-size:22px;line-height:1;transform:translateX(-50%)}
.drag-ghost{border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff5b6,#c99746 55%,#6f4b2a);border-color:#f7dda1}

.sail-cradle{left:35%;top:25%;width:34%;height:42%;border-radius:0}
.sail-art{position:absolute;z-index:1;left:5%;top:-5%;width:90%;height:96%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 5px rgba(45,53,48,.3));transform-origin:31% 88%;pointer-events:none;user-select:none}
.sail-selection{z-index:3;left:14%;right:13%;bottom:8%;height:29%;gap:2%}
.sail-token{width:20%;min-width:50px;min-height:57px;padding:5px 3px;border-radius:50%;background:radial-gradient(circle at 35% 27%,#e9c66a,#93652f 72%);box-shadow:0 4px 0 #5f4229}
.sail-token small,.sail-token strong{position:static}.sail-token small{display:grid;place-items:center}.sail-token small b{font-size:16px}.sail-token small span{font-size:7px}.sail-token strong{font-size:16px}.wind-scene.is-flying .sail-art{animation:sailCatchWind 1.12s cubic-bezier(.18,.72,.25,1) both}



.wind-scene.is-wheel-turning .wind-wheel{filter:drop-shadow(0 0 15px rgba(255,237,124,.82))}
@keyframes sailCatchWind{0%{transform:rotate(0) scale(.98)}32%{transform:rotate(-5deg) scale(1.06)}61%{transform:rotate(3deg) scale(1.02)}100%{transform:rotate(0) scale(1)}}
@keyframes wheelTurnPhysical{0%{transform:rotate(0)}72%{transform:rotate(790deg)}100%{transform:rotate(720deg)}}
@media(orientation:portrait){.part-rack{left:29%;bottom:1%;width:43%;height:29%}.sail-cradle{left:42%;top:25%;width:25%;height:42%}.wind-wheel{right:29%;width:12%}}
@media(prefers-reduced-motion:reduce){.wind-scene.is-wheel-turning .wind-wheel-art,.wind-scene.is-testing .wind-wheel-art,.wind-scene.is-flying .sail-art{animation:none}}

/* Portrait iPads keep the full workshop and its built-in counter trays visible. */
@media(orientation:portrait){
  .wind-scene{left:0;top:0;width:100vw;height:100svh;max-width:none;aspect-ratio:auto;transform:none}
  .wind-art{background-size:100% auto;background-position:center top;background-repeat:no-repeat;transform:none}
  .wind-back{left:14px;top:calc(env(safe-area-inset-top) + 10px)}.wind-wallet{right:14px;top:calc(env(safe-area-inset-top) + 10px)}
  .wind-prompt{top:calc(env(safe-area-inset-top) + 9px);width:55%;font-size:clamp(19px,2.6vw,25px)}.wind-progress{top:7vw}
  .wind-customer-area{left:1%;top:10vw;width:25%;height:25vw}.wind-order{left:62%;top:0}
  .parts-purse{left:3%;top:36vw}.part-rack{left:4%;top:40vw;bottom:auto;width:48%;height:15vw}.part-rack:has(.wind-part:nth-child(4)){left:3%;top:31vw;width:52%;height:24vw}
  .sail-cradle{left:35%;top:15vw;width:34%;height:24vw}.wind-wheel{right:6%;top:12vw;width:15%;height:auto}
  .reserve-jars{left:11%;top:60vw;bottom:auto;width:78%;height:10vw}.reserve-jars.is-kept{left:24%;top:39vw;bottom:auto;width:15%;height:9vw}
  .payment-pouch{left:24%;top:28vw;bottom:auto}.wind-till{right:1%;top:22vw;bottom:auto;width:31%;height:13vw}
  .wind-equation{top:60vw;bottom:auto;white-space:nowrap}.profit-pouches{left:10%;right:10%;top:72vw;bottom:auto;height:11vw}
}

/* The painted crystal chime has a visible swing and trailing clapper. */
.wind-wheel-art{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 50%;pointer-events:none;user-select:none;filter:drop-shadow(0 7px 5px rgba(52,49,40,.27))}
.wind-scene.is-wheel-turning .wind-wheel-art,.wind-scene.is-testing .wind-wheel-art{animation:wheelTurnPhysical 1.05s cubic-bezier(.12,.74,.21,1) both}
@media(prefers-reduced-motion:reduce){.wind-scene.is-wheel-turning .wind-wheel-art,.wind-scene.is-testing .wind-wheel-art{animation:none}}
html[data-motion="reduced"] .wind-scene.is-wheel-turning .wind-wheel-art,html[data-motion="reduced"] .wind-scene.is-testing .wind-wheel-art{animation:none}

.chime-toy{left:18%;top:8%;width:9%;height:22%;transform-origin:50% 4%;overflow:visible}
.chime-toy::before{content:"";position:absolute;left:47%;top:0;width:6%;height:43%;border-radius:5px;background:linear-gradient(90deg,#76542d,#e3bd63,#6b4827);box-shadow:0 1px 2px rgba(52,39,27,.35)}
.chime-toy::after{content:"";position:absolute;left:25%;top:34%;width:50%;height:38%;border:4px solid #9a6c30;border-radius:47% 47% 58% 58%;background:radial-gradient(circle at 38% 30%,#fff 0 7%,#b8ecff 9%,#8869d4 48%,#51358c 78%);clip-path:polygon(50% 0,90% 25%,79% 78%,50% 100%,21% 78%,10% 25%);filter:drop-shadow(0 4px 3px rgba(42,43,46,.35))}
.wind-scene[data-toy="wind-chime"] .chime-toy{animation:workshopChimeBody 1.3s cubic-bezier(.2,.7,.2,1)}
.wind-scene[data-toy="wind-chime"] .chime-toy::after{animation:workshopChimeCrystal 1.3s ease-in-out}
@keyframes workshopChimeBody{0%,100%{transform:rotate(0)}22%{transform:rotate(10deg)}46%{transform:rotate(-8deg)}68%{transform:rotate(5deg)}86%{transform:rotate(-2deg)}}
@keyframes workshopChimeCrystal{0%,100%{filter:drop-shadow(0 4px 3px rgba(42,43,46,.35))}35%,70%{filter:brightness(1.35) drop-shadow(0 0 13px #fff3a1);transform:scale(1.08)}}
@media(orientation:portrait){.chime-toy{left:18%;top:4.5vw;width:9%;height:13vw}}
@media(prefers-reduced-motion:reduce){.wind-scene[data-toy="wind-chime"] .chime-toy,.wind-scene[data-toy="wind-chime"] .chime-toy::after{animation:none}}
@media(orientation:landscape) and (max-aspect-ratio:5/3){.part-rack,.part-rack:has(.wind-part:nth-child(4)){left:13%;width:52%}.part-rack:has(.wind-part:nth-child(4)):not(:has(.wind-part:nth-child(5))){top:73%;height:13%;grid-template-columns:repeat(4,1fr)}}
/* Keep the complete till hit area on a 4:3 landscape tablet. */
@media(orientation:landscape) and (max-aspect-ratio:5/3){.wind-till{right:max(12%,calc((100% - 100vw)/2 + 12px))}}
