/* Shared greenhouse component geometry, scoped to astronomy activities. */
.observatory-level .feeding-stage{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:30px;max-width:900px;width:100%;margin:auto}
.observatory-level .plant-food{display:flex;flex-direction:column;align-items:center;gap:24px;min-height:250px;justify-content:center}
.observatory-level .food-word{padding:16px 25px;min-width:160px;min-height:60px;border:2px solid #ecd094;border-radius:18px;background:linear-gradient(130deg,#fff6dc,#efdaa3);color:#294633;font-size:calc(var(--reading) + 7px);font-weight:bold;box-shadow:0 5px 0 #927247,0 8px 18px #08233344;touch-action:none;user-select:none;cursor:grab}
.observatory-level .food-word:focus-visible{outline:3px solid #fff9cd;outline-offset:5px}
.observatory-level .food-word[hidden]{display:none}
@media(max-width:700px){.observatory-level .feeding-stage{gap:8px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.observatory-level .food-word{min-width:0;width:100%;padding:12px 5px;font-size:calc(var(--reading) + 1px);min-height:55px}
.observatory-level .plant-food{gap:20px}}
.observatory-level .letter-picture{width:160px;background:radial-gradient(ellipse,#fff1b94d,transparent 70%);filter:drop-shadow(0 5px 10px #0a223855)}
.observatory-level .caught-word{display:flex;justify-content:center;gap:8px;width:100%;margin:18px 0}
.observatory-level .caught-slot{width:58px;height:62px;display:grid;place-items:center;border:2px solid #ddc48e;border-radius:13px;background:#fff5dfed;color:#2e4636;font-size:32px;font-weight:bold;box-shadow:0 4px 0 #715c39}
.observatory-level .caught-slot.filled{background:#eaf5cf;border-color:#b5d190}
.observatory-level .flying-letter-field{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;width:min(100%,830px);padding:18px 8px;margin-top:14px}
.observatory-level .letter-flight-lane{height:104px;display:grid;place-items:center;min-width:0}
.observatory-level .flying-letter{width:68px;height:68px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;border:2px solid #f4dda7;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff7d8,#e2b869);color:#273f37;font-size:34px;font-weight:bold;box-shadow:0 5px 15px #051b3f88,0 0 18px #a9def544;animation:letter-drift var(--duration,5s) ease-in-out var(--delay,0s) infinite;touch-action:manipulation}
.observatory-level .flying-letter:hover,.observatory-level .flying-letter:focus-visible{animation-play-state:paused;outline:3px solid #e1f9ff;outline-offset:3px}
.observatory-level .flying-letter:disabled{animation:none;opacity:.7}
.observatory-level .no-motion .flying-letter{animation:none}
@media(prefers-reduced-motion:reduce){.observatory-level .flying-letter{animation:none}}
@media(max-width:700px){.observatory-level .letter-picture{width:135px}
.observatory-level .caught-word{gap:5px}
.observatory-level .caught-slot{width:36px;height:46px;font-size:25px}
.observatory-level .flying-letter-field{gap:4px;padding:16px 0}
.observatory-level .flying-letter{width:44px;height:48px;font-size:27px}
.observatory-level .letter-flight-lane{height:90px}}
.observatory-level .letter-picture>.pick-leaf,.observatory-level .letter-picture>.sprite{width:100%;max-width:none}
.observatory-level .fire-word{background:#fff7e5ed;color:#294632;border:2px solid #dfbd7e;border-radius:22px;text-align:center;padding:12px 30px;max-width:100%;box-shadow:0 7px 20px #17332444}
.observatory-level .fire-word-label{display:block;font-size:14px}
.observatory-level .fire-word strong{display:block;font-size:clamp(28px,4vw,42px);letter-spacing:.06em}
.observatory-level .fire-slots{display:flex;gap:8px;justify-content:center;margin-top:8px}
.observatory-level .fire-slot{font-size:calc(var(--reading) + 2px);min-width:55px;border-bottom:3px solid #a59b7c;color:#6e705c;padding:0 5px}
.observatory-level .fire-slot.filled{color:#24522e;border-color:#5a8a4b}
.observatory-level .fire-arena{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:15%;width:100%;max-width:900px;flex:1;min-height:390px}
.observatory-level .fire-dragon{position:relative;width:100%;max-width:290px;justify-self:center;filter:drop-shadow(0 10px 10px #122d3144)}
.observatory-level .fire-dragon>.sprite{width:100%}
.observatory-level .fire-stones{display:flex;flex-direction:column;align-items:center;gap:12px}
.observatory-level .syllable-stone{position:relative;width:210px;max-width:100%;aspect-ratio:1.8;border:0;color:#293b27;font-size:calc(var(--reading) + 12px);font-weight:bold;padding:18px;filter:drop-shadow(0 7px 5px #142e3244);transition:filter .2s}
.observatory-level .syllable-stone:hover,.observatory-level .syllable-stone.lit{filter:drop-shadow(0 0 13px #ffd77e)}
.observatory-level .syllable-stone:focus-visible{outline:3px solid #ffe9a4;outline-offset:4px;border-radius:28%}
.observatory-level .syllable-stone.try-again{filter:drop-shadow(0 0 6px #e8ba73)}
@media(max-width:700px){.observatory-level .fire-word{padding:10px 15px}
.observatory-level .fire-arena{gap:8%;grid-template-columns:1fr 1fr;min-height:340px}
.observatory-level .fire-stones{gap:16px;width:100%}
.observatory-level .syllable-stone{font-size:calc(var(--reading) + 4px);padding:12px 8px;min-height:74px}
.observatory-level .fire-slot{min-width:42px}
.observatory-level .fire-dragon{width:115%;max-width:210px}}
@media(prefers-reduced-motion:reduce){.observatory-level .syllable-stone{transition:none}}
.observatory-level .feeding-stage{max-width:1020px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);margin:auto auto 0;align-items:center}
@media(max-width:700px){.observatory-level .feeding-stage{grid-template-columns:minmax(0,1fr);gap:18px}
.observatory-level .feeding-stage>.plant-table-stage{grid-row:2;width:min(100%,340px)}
.observatory-level .feeding-stage>.plant-food{grid-row:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:66px;gap:8px;width:100%;max-width:450px;justify-self:center}
.observatory-level .feeding-stage .food-word{font-size:var(--reading);padding:10px 4px;overflow-wrap:anywhere}}
.observatory-level .symbol-paper{width:min(100%,780px);margin:auto;padding:30px 36px;border:2px solid #dfc898;border-radius:24px;background:#fff9eaf5;color:#294632;box-shadow:0 14px 35px #142e3344}
.observatory-level .symbol-key{display:flex;justify-content:center;gap:30px;flex-wrap:wrap}
.observatory-level .symbol-key>span{display:flex;align-items:center;gap:8px;border:1px solid #b8c9ac;border-radius:14px;padding:8px 16px;font-size:28px;background:#f2f4df}
.observatory-level .encoded-word{display:flex;justify-content:center;align-items:center;gap:6px;min-height:130px;margin:28px 0;font-size:clamp(30px,5vw,54px);font-weight:bold;letter-spacing:.02em}
.observatory-level .symbol-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.observatory-level .symbol-options .answer{text-align:center;padding:16px 8px;font-size:calc(var(--reading) + 2px)}
.observatory-level .symbol-options .answer:before{display:none}
.observatory-level .symbol-paper .feedback{margin:16px 0 0;font-size:16px;text-align:center}
.observatory-level .symbol-paper .feedback:empty{display:none}
@media(max-width:700px){.observatory-level .symbol-paper{padding:22px 12px}
.observatory-level .symbol-key{gap:10px}
.observatory-level .symbol-key>span{padding:8px 12px;font-size:24px}
.observatory-level .encoded-word{gap:2px;font-size:clamp(25px,7vw,44px);min-height:100px;margin:20px 0}
.observatory-level .symbol-options{grid-template-columns:minmax(0,1fr);gap:10px}
.observatory-level .symbol-options .answer{min-height:56px;padding:10px}
.observatory-level .symbol-paper .feedback{font-size:14px}}
.observatory-level .trace-panels{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:35px;align-items:center;width:min(100%,850px);margin:auto}
.observatory-level .trace-guide,.observatory-level .trace-letter-panel{padding:18px;border:1px solid #dbc797;border-radius:20px;background:#fff9eaf5;color:#294533;min-width:0}
.observatory-level .trace-panels h3{text-align:center;font-size:18px;margin:0 0 12px}
.observatory-level .trace-guide svg{display:block;width:100%;aspect-ratio:1;border:1px solid #b1b79c;border-radius:6px;background:#fffdf5}
.observatory-level .trace-board{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));aspect-ratio:1;touch-action:none;user-select:none;border:1px solid #9ba98f;background:#fffdf5}
.observatory-level .trace-cell{position:relative;z-index:1;display:grid;place-items:center;min-width:0;padding:0;border:1px solid #bac4ac;background:transparent;color:#294533;font-size:clamp(22px,3vw,36px);font-weight:bold;touch-action:none;border-radius:0}
.observatory-level .trace-cell.traced{color:#234b36;background:#a4c98e33}
.observatory-level .trace-cell:disabled{opacity:1}
.observatory-level .trace-cell:focus-visible{outline-offset:-4px}
.observatory-level .trace-board>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.observatory-level .trace-board polyline{fill:none;stroke:#e8ad62;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}
.observatory-level .trace-word{min-height:54px;margin:18px 0 0;padding:8px 20px;background:#fff9eaf0;color:#25472d;border-radius:14px;font-size:clamp(24px,4vw,34px);font-weight:bold;letter-spacing:.08em}
.observatory-level .trace-word>span{color:#81876f}
@media(max-width:700px){.observatory-level .trace-panels{grid-template-columns:minmax(0,1fr);gap:14px;max-width:340px}
.observatory-level .trace-guide{width:150px;justify-self:center;padding:8px}
.observatory-level .trace-panels h3{font-size:14px;margin-bottom:6px}
.observatory-level .trace-guide svg{width:110px;margin:auto}
.observatory-level .trace-letter-panel{padding:10px}
.observatory-level .trace-board{max-width:280px;margin:auto}
.observatory-level .trace-cell{font-size:26px;min-height:44px}
.observatory-level .trace-word{font-size:24px;margin-top:12px}}
.observatory-level .picture-syllable-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:24px;padding:16px 22px;background:#fff9eaf5;border:1px solid #dcc697;border-radius:22px;color:#294533;flex-shrink:0}
.observatory-level .picture-syllable-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 8px}
.observatory-level .picture-syllable{min-width:0;min-height:48px;padding:6px 2px;border:0;border-radius:8px;background:transparent;color:#294533;font-weight:bold;font-size:calc(var(--reading) + 2px)}
.observatory-level .picture-syllable.underlined{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px;background:#dcebcba3;color:#275734}
.observatory-level .picture-syllable:disabled{opacity:1}
.observatory-level .picture-syllable:focus-visible{outline:3px solid #b78a43;outline-offset:1px}
@media(max-width:700px){.observatory-level .picture-syllable-row{grid-template-columns:70px minmax(0,1fr);padding:12px 8px;gap:8px}
.observatory-level .picture-syllable-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.observatory-level .picture-syllable{font-size:var(--reading);min-height:44px;padding:5px 0}}
.observatory-level .picture-syllable-row.completed{filter:grayscale(1);background:#e8e8e5f5;border-color:#b8b8b3}
.observatory-level .picture-syllable-row.completed .picture-syllable-art{opacity:.55}
.observatory-level .picture-syllable-row.completed :is(.picture-syllable,.picture-syllable-word){color:#737373}
.observatory-level .picture-syllable-row.completed .picture-syllable{cursor:default}
.observatory-level .picture-syllable-row.completed .picture-syllable.underlined{background:#d5d5d2}
.observatory-level .matching-board{position:relative;width:100%;flex:1;min-height:520px;--picture-size:clamp(44px,7vw,85px)}
.observatory-level .matching-tile{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:calc(var(--picture-size) + 12px);height:calc(var(--picture-size) + 12px);min-width:44px;min-height:44px;padding:6px;border:0;border-radius:50%;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation}
.observatory-level .matching-tile:hover{background:#fff4cc45}
.observatory-level .matching-tile.selected{outline:3px solid #ffe3a3;background:#ffedb857}
.observatory-level .matching-tile.matched{outline:3px solid #c1f3a3;background:#45834c70}
.observatory-level .matching-tile:disabled{opacity:1;cursor:default}
.observatory-level .matching-tile:focus-visible{outline:3px solid #fff5c9;outline-offset:4px}
@media(max-width:700px){.observatory-level .matching-board{--picture-size:clamp(44px,12vw,54px);min-height:520px}
.observatory-level .matching-tile{left:var(--mx);top:var(--my)}}
.observatory-level .matching-tile.matched .matching-art{filter:grayscale(1);opacity:.48}
.observatory-level .dobble-cards{display:grid;grid-template-columns:1fr 1fr;gap:28px;width:min(100%,940px);flex-shrink:0}
.observatory-level .dobble-card{position:relative;aspect-ratio:1;border:3px solid #b79a59;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fffef9,#fff6db);box-shadow:inset 0 0 0 7px #f0dfad66,0 12px 24px #14362e55;container-type:inline-size}
.observatory-level .dobble-word{position:absolute;transform:translate(-50%,-50%) rotate(var(--word-angle));font-size:calc(9cqw * var(--word-scale));font-weight:800;line-height:1.15;min-height:44px;padding:5px 7px;border:2px solid transparent;border-radius:12px;background:transparent;white-space:nowrap;touch-action:manipulation}
.observatory-level .dobble-word.selected{border-color:#aa8540;background:#ffebaa88}
.observatory-level .dobble-word.matched{border-color:#44824b;background:#daefc9}
.observatory-level .dobble-word:focus-visible{outline:3px solid #486c60;outline-offset:3px}
.observatory-level .dobble-word:disabled{opacity:1}
@media(max-width:700px){.observatory-level .dobble-cards{grid-template-columns:1fr;max-width:280px;gap:14px}
.observatory-level .dobble-card{border-width:2px}
.observatory-level .dobble-word{padding:3px 5px}}
.observatory-level .underline-row{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:20px;padding:18px 22px;border:2px solid #bfa66c;border-radius:22px;background:#fff9eaf5;flex-shrink:0;color:#2b4939}
.observatory-level .underline-letters{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px}
.observatory-level .underline-letter{display:inline-grid;place-items:center;min-width:44px;min-height:52px;padding:4px 6px;border:2px solid transparent;border-radius:9px;background:transparent;color:#273b32;font:700 clamp(24px,2.6vw,34px)/1.3 Verdana,sans-serif;touch-action:manipulation}
.observatory-level .underline-letter.picked{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:7px;color:#2b6745;background:#dcedd4}
.observatory-level .underline-letter:disabled{opacity:1}
.observatory-level .underline-letter:focus-visible{outline:3px solid #b48a39;outline-offset:2px}
.observatory-level .underline-row.completed{filter:grayscale(1);background:#e7e8e1ef;border-color:#aeb4a5}
.observatory-level .underline-row.completed .underline-art{opacity:.5}
.observatory-level .underline-row.completed .underline-letter{color:#777}
@media(max-width:700px){.observatory-level .underline-row{grid-template-columns:78px minmax(0,1fr);gap:8px;padding:12px 8px}
.observatory-level .underline-letter{min-width:44px;min-height:48px;font-size:23px;padding:2px}
.observatory-level .underline-letters{gap:2px;justify-content:flex-start}}
.observatory-level .phrase-board{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 130px;column-gap:160px;width:min(100%,820px);padding:12px 28px;border:1px solid #dbc28c;border-radius:24px;background:#fff9eaf5;flex-shrink:0}
.observatory-level .phrase-words,.observatory-level .phrase-pictures{position:relative;z-index:1;display:grid;grid-template-rows:repeat(6,94px)}
.observatory-level .phrase-slot{display:flex;align-items:center}
.observatory-level .phrase-words .phrase-slot{justify-content:flex-start}
.observatory-level .phrase-pictures .phrase-slot{justify-content:center}
.observatory-level .phrase-word{position:relative;min-height:48px;width:100%;padding:9px 12px;border:2px solid transparent;border-radius:12px;background:#fff9ec;color:#294534;text-align:left;font-size:calc(var(--reading) + 2px);font-weight:bold;touch-action:none}
.observatory-level .phrase-word:after,.observatory-level .phrase-picture:before{content:'';position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:#967d42;transform:translateY(-50%)}
.observatory-level .phrase-word:after{right:-11px}
.observatory-level .phrase-picture:before{left:-11px}
.observatory-level .phrase-word.selected{border-color:#bd913c;background:#fff0bf}
.observatory-level .phrase-word.matched{color:#6d7b6b;background:#e1ebd5}
.observatory-level .phrase-picture{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:90px;min-height:80px;padding:0;border:0;border-radius:12px;background:transparent;color:#45633d}
.observatory-level .phrase-picture.matched .phrase-art{opacity:.55;filter:grayscale(.7)}
.observatory-level .phrase-word:disabled,.observatory-level .phrase-picture:disabled{opacity:1}
.observatory-level .phrase-word:focus-visible,.observatory-level .phrase-picture:focus-visible{outline:3px solid #b68d3e;outline-offset:3px}
.observatory-level .phrase-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.observatory-level .phrase-lines path{fill:none;stroke:#548762;stroke-width:3;stroke-linecap:round}
.observatory-level .phrase-lines .drawing{stroke:#be933c;stroke-dasharray:7 5}
@media(max-width:700px){.observatory-level .phrase-board{grid-template-columns:minmax(0,1fr) 76px;column-gap:44px;padding:8px 14px}
.observatory-level .phrase-words,.observatory-level .phrase-pictures{grid-template-rows:repeat(6,86px)}
.observatory-level .phrase-word{padding:7px 3px;font-size:16px;overflow-wrap:anywhere}
.observatory-level .phrase-picture{width:70px;min-height:74px}}
/* Same scene frame, typography, and control footprint throughout both rooms. */
.observatory-level .obs-scene{height:var(--task-scene-height);min-height:var(--task-scene-height);overflow:auto;border-radius:26px;justify-content:safe center}
.observatory-level .obs-scene>*{flex-shrink:0}
.observatory-level .action-head{max-width:760px;margin:0 auto 28px}
.observatory-level .action-head p{max-width:none;margin:0;line-height:1.8}
.observatory-level .obs-progress{font-size:16px;padding:8px 18px;border-radius:22px;background:#fff6dfed;color:#315343}
.observatory-level .obs-button{min-height:48px;font-size:var(--reading)}
.observatory-level .obs-feeding{margin:auto;max-width:900px}
.observatory-level #obsDragon{width:100%;align-self:end}
.observatory-level #obsDragon>.obs-prop{width:100%;height:auto;aspect-ratio:1}
.observatory-level .obs-foods{width:auto}
.observatory-level .food-word{font-size:calc(var(--reading) + 7px);min-height:60px}
.observatory-level .obs-task-letters .obs-scene{padding:28px 24px;justify-content:flex-start;gap:0}
.observatory-level .letter-picture .obs-art{width:160px;height:160px}
.observatory-level .obs-task-fire .obs-scene{justify-content:flex-start;padding:24px 30px;gap:0}
.observatory-level .obs-fire-stage{display:grid;width:min(100%,900px)}
.observatory-level .obs-fire-stage .obs-prop{width:100%;height:auto;aspect-ratio:1}
.observatory-level .obs-stone{width:100%;height:auto;display:grid;place-items:center;background:none;border:0;box-shadow:none;position:relative}
.observatory-level .obs-stone .obs-art{inset:0;width:100%;height:100%}
.observatory-level .obs-stone strong{font-size:inherit}
.observatory-level .obs-task-symbols .obs-scene{padding:24px 30px}
.observatory-level .obs-legend{background:transparent;color:#294632}
.observatory-level .obs-coded{background:transparent;padding:0;letter-spacing:inherit}
.observatory-level .symbol-options .obs-button{text-align:center;font-size:calc(var(--reading) + 2px);padding:16px 8px}
.observatory-level .symbol-options .answer:before{display:none}
.observatory-level .obs-trace-layout{flex-direction:initial;flex:none}
.observatory-level .obs-trace-board{gap:0;flex:none;width:100%}
.observatory-level .obs-trace-board button{border-radius:0;box-shadow:none;font-size:clamp(22px,3vw,36px)}
.observatory-level .obs-route{padding:0}
.observatory-level .obs-task-trace .obs-scene{padding:24px;justify-content:flex-start}
.observatory-level .obs-task-syllables .obs-scene{padding:32px;gap:18px}
.observatory-level .obs-task-underline .obs-scene{padding:30px;gap:20px}
.observatory-level .obs-word-rows{gap:18px}
.observatory-level .obs-word-row{min-height:0;opacity:1}
.observatory-level .obs-row-picture{width:100%;min-width:0}
.observatory-level .obs-row-picture .obs-art{width:130px;height:auto;aspect-ratio:1;max-width:100%}
.observatory-level .obs-task-underline .obs-row-picture .obs-art{width:145px}
.observatory-level .obs-row-picture strong{font-size:16px;min-height:24px}
.observatory-level .obs-word-row .obs-button{box-shadow:none}
.observatory-level .obs-task-syllables .obs-letter-tray{display:grid;justify-content:initial}
.observatory-level .obs-task-phrases .obs-scene{padding:22px;gap:12px;justify-content:flex-start}
.observatory-level .obs-phrase-slot{height:auto}
.observatory-level .obs-adj{box-shadow:none}
.observatory-level .obs-noun{height:auto;box-shadow:none}
.observatory-level .obs-noun .obs-art{width:74px;height:74px}
.observatory-level .obs-noun small{position:static;background:transparent}
.observatory-level .obs-phrase-board>svg{z-index:0}
.observatory-level .obs-task-pairs .obs-scene{padding:16px;justify-content:flex-start;gap:0}
.observatory-level .obs-pairs{height:auto;flex:1;flex-shrink:1}
.observatory-level .obs-pair{box-shadow:none}
.observatory-level .obs-task-dobble .obs-scene{padding:28px 22px;gap:22px}
.observatory-level .obs-dobble-card{width:auto}
.observatory-level .obs-dobble-word{box-shadow:none;font-size:calc(9cqw * var(--word-scale));min-height:44px}
.observatory-level .obs-dobble-word:hover:not(:disabled){transform:translate(-50%,-50%) rotate(var(--word-angle))}
.observatory-level .obs-task-gap .obs-reading{width:min(100%,760px)}
.observatory-level .obs-task-gap .obs-options{display:grid;grid-template-columns:1fr;gap:14px}
.observatory-level .obs-task-gap .obs-options .obs-button{min-height:72px;border:1px solid #d4ccb3;border-radius:16px;background:#fffefa;box-shadow:0 4px 0 #ddd2b370;padding:20px 24px;font-size:var(--reading)}
.observatory-level .obs-task-scratch .obs-scene{gap:22px}
.observatory-level .obs-hidden-field{min-height:500px;flex:1}
.observatory-level .obs-hidden{width:90px;height:90px}
.observatory-level .obs-puzzle{width:min(100%,740px);justify-content:center}
.observatory-level .obs-brew-pair{width:min(100%,900px);gap:30px}
.observatory-level .obs-brew-source,.observatory-level .obs-brew-pair>.obs-large-picture{width:360px;height:auto;aspect-ratio:1}
.observatory-level .obs-brew-pair>.obs-large-picture .obs-prop{width:100%;height:100%}
.observatory-level .obs-hued.obs-large-picture{width:400px;height:400px}
@media(max-width:700px){
 .observatory-level .obs-scene{border-radius:26px}
 .observatory-level .action-head{margin-bottom:22px}
 .observatory-level .action-head p{font-size:17px}
 .observatory-level .obs-task-letters .obs-scene{padding:20px 12px}
 .observatory-level .obs-task-fire .obs-scene{padding:18px 12px}
 .observatory-level .obs-task-symbols .obs-scene{padding:18px 10px}
 .observatory-level .symbol-options .obs-button{min-height:56px;padding:10px}
 .observatory-level .obs-task-trace .obs-scene{padding:16px 10px}
 .observatory-level .obs-trace-board button{font-size:26px;min-height:44px}
 .observatory-level .obs-task-syllables .obs-scene,.observatory-level .obs-task-underline .obs-scene{padding:16px 10px;gap:12px;justify-content:flex-start}
 .observatory-level .obs-row-picture .obs-art{width:78px;height:auto}
 .observatory-level .obs-row-picture strong{font-size:12px;overflow-wrap:anywhere}
 .observatory-level .obs-task-phrases .obs-scene{padding:14px 8px;gap:10px}
 .observatory-level .obs-noun .obs-art{width:64px;height:64px}
 .observatory-level .obs-task-dobble .obs-scene{padding:16px 10px;gap:12px;justify-content:flex-start}
 .observatory-level .obs-dobble{display:grid}
 .observatory-level .obs-puzzle{gap:20px}
 .observatory-level .obs-brew-pair{gap:4px}
 .observatory-level .obs-brew-source,.observatory-level .obs-brew-pair>.obs-large-picture{width:48%;height:auto}
 .observatory-level .obs-hued.obs-large-picture{width:280px;height:280px}
 .observatory-level .obs-task-gap .obs-options .obs-button{min-height:66px;padding:16px 14px}
}
.observatory-level .obs-grinding{width:min(100%,620px);display:flex;align-items:center;justify-content:center;gap:24px}
.observatory-level .obs-grinding #obsGrindSource{width:150px;height:150px;flex-shrink:0;background:transparent;border:0;box-shadow:none}
.observatory-level .obs-grinding #obsGrindSource .obs-art{width:150px;height:150px}
.observatory-level .obs-grinding .grind-area{width:300px;max-width:100%;height:300px;padding:0;border:0;background:transparent;box-shadow:none}
.observatory-level .obs-grinding .mortar-picture{width:100%;height:100%;filter:hue-rotate(155deg)}
@media(max-width:700px){.observatory-level .obs-grinding{gap:4px}.observatory-level .obs-grinding #obsGrindSource,.observatory-level .obs-grinding #obsGrindSource .obs-art{width:100px;height:100px}.observatory-level .obs-grinding .grind-area{width:210px;height:210px}}
.observatory-level .obs-task-crystal .obs-scene{padding:32px 20px}
.observatory-level .obs-task-key .obs-scene{padding:30px 22px}
.observatory-level .obs-puzzle{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:35px;width:min(100%,800px);max-width:800px}
.observatory-level .obs-task-key .obs-puzzle{max-width:740px}
.observatory-level .obs-piece-tray{min-height:250px;align-content:center;gap:16px}
.observatory-level .obs-piece-tray button{width:100%;height:auto;aspect-ratio:1;border:2px solid #ceebea66;border-radius:18px;background:#123b3ddd}
.observatory-level .obs-piece-tray button.selected{border-color:#ffda7a;background:#315855}
.observatory-level .obs-puzzle-target{width:100%;height:auto;aspect-ratio:1;border:2px solid #b8f1e8aa;border-radius:18px;background:#122f39bd;overflow:hidden}
.observatory-level .obs-puzzle-slots{position:absolute;inset:0;grid-template-rows:1fr 1fr}
.observatory-level .obs-puzzle-slots button{width:100%;height:100%;border:1px dashed #d6f7f28c;background:transparent;border-radius:0;box-shadow:none}
.observatory-level .obs-puzzle-slots button:disabled{opacity:1;border-color:transparent}
.observatory-level .obs-bottle-result .potion-display{--size:300px}
.observatory-level .obs-task-brew .obs-ingredients,.observatory-level .obs-task-key .obs-ingredients{position:absolute;left:54%;top:48%;width:34%;height:20%;gap:0;align-items:center}
.observatory-level .obs-ingredients .obs-button{width:33%;height:auto;min-height:44px;background:transparent;border:0;box-shadow:none}
.observatory-level .obs-ingredients .obs-picture .obs-art{width:100%;height:auto;aspect-ratio:1;clip-path:inset(0 0 8% 0)}
.observatory-level .obs-ingredients .obs-button:disabled{visibility:hidden}
.no-motion .observatory-level .flying-letter{animation:none}
@media(prefers-reduced-motion:reduce){.observatory-level .flying-letter{animation:none}}
@media(max-width:700px){
 .observatory-level .obs-task-crystal .obs-scene{padding:24px 12px}
 .observatory-level .obs-task-key .obs-scene{padding:22px 12px}
 .observatory-level .obs-puzzle{gap:12px;grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
 .observatory-level .obs-piece-tray{min-height:150px;gap:8px}
 .observatory-level .obs-piece-tray button{border-radius:10px;min-height:44px}
 .observatory-level .obs-bottle-result .potion-display{--size:220px}
 .observatory-level .obs-task-feed .food-word{font-size:calc(var(--reading) + 1px);min-height:55px;padding:12px 5px}
 .observatory-level .letter-picture,.observatory-level .letter-picture .obs-art{width:135px;height:135px}
}
.observatory-level .obs-gather-ready #obsBowl{left:30%;bottom:70px;cursor:grab;touch-action:none}
.observatory-level .obs-gather-ready #obsBowl.selected,.observatory-level .obs-gather-ready #obsBowl:focus-visible{outline:3px solid #ffdf91;outline-offset:5px;border-radius:24px}
.observatory-level .obs-gather-ready #obsAdd{left:72%;bottom:70px;width:280px;padding:0;min-height:0;border:0;background:transparent;box-shadow:none;white-space:normal}
.observatory-level .obs-gather-ready #obsAdd .obs-prop{width:100%;height:auto;aspect-ratio:1}
.observatory-level .obs-gather-ready #obsAdd small{display:block;color:#fff0c4;font-size:15px}
@media(max-width:700px){.observatory-level .obs-gather-ready #obsBowl,.observatory-level .obs-gather-ready #obsBowl .obs-prop{width:145px;height:145px}.observatory-level .obs-gather-ready #obsBowl{left:25%;bottom:115px}.observatory-level .obs-gather-ready #obsAdd{left:75%;bottom:92px;width:145px}}
.observatory-level .obs-route .trace-grid-lines{stroke:#b9c3ab;stroke-width:.5;fill:none}
.observatory-level .obs-route .trace-guide-line{fill:none;stroke:#c15b29;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.observatory-level .obs-route .trace-start{fill:#b94822}
.observatory-level .obs-route .trace-arrow{fill:none;stroke:#b94822;stroke-width:2.5;stroke-linecap:round}
.observatory-level .obs-row-picture .obs-art{clip-path:inset(3% 7% 10% 3%)}

.observatory-level .obs-gather-ready:has(#obsAdd:disabled) .obs-bowl-contents{visibility:hidden}

/* A stable reading-confirmation position before and after erasing a card. */
.level-page .scratch-scene,.observatory-level .obs-task-scratch .obs-scene{position:relative;padding-bottom:110px}
.level-page .scratch-game #advance,.level-page .obs-task-scratch #obsReadNext{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);width:min(90%,360px);min-height:60px;margin:0;z-index:2}
.level-page .scratch-game #advance:hover,.level-page .scratch-game #advance:active,.level-page .obs-task-scratch #obsReadNext:hover,.level-page .obs-task-scratch #obsReadNext:active{transform:translateX(-50%)}

.obs-crystal-ingredient .obs-art,.observatory-level .obs-ingredients .obs-crystal-ingredient .obs-art{clip-path:inset(0 5% 12% 3%)}
/* Cauldrons keep their illustrated silhouette in every interaction state. */
.observatory-level :is(#obsBottle,#obsAdd,#obsCauldron),
.observatory-level :is(#obsBottle,#obsAdd,#obsCauldron):hover,
.observatory-level :is(#obsBottle,#obsAdd,#obsCauldron):active,
.observatory-level :is(#obsBottle,#obsAdd,#obsCauldron):focus-visible{background:transparent;border:0;box-shadow:none;outline:none;-webkit-tap-highlight-color:transparent}
.observatory-level :is(#obsBottle,#obsAdd,#obsCauldron):focus-visible>.obs-prop{filter:drop-shadow(0 0 10px #ffe59b)}

.observatory-level [data-brew-spark]:disabled{visibility:hidden}

.observatory-level .obs-eating-dragon{position:relative;aspect-ratio:1}
.observatory-level .obs-eating-dragon>img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 10px 12px #07182f55);transform-origin:60% 90%}
#obsDragonMouth{position:absolute;left:64%;top:25%;width:12%;height:12%;pointer-events:none}
.observatory-level .obs-eating-dragon.just-fed>img{animation:obs-dragon-nibble .35s ease-out}
@keyframes obs-dragon-nibble{0%,100%{transform:scale(1)}45%{transform:scale(1.025,.975)}}
.no-motion .observatory-level .obs-eating-dragon>img{animation:none}
@media(prefers-reduced-motion:reduce){.observatory-level .obs-eating-dragon>img{animation:none}}

/* Open for the incoming word, close again when it has been eaten. */
.observatory-level .obs-eating-dragon>.obs-mouth-open{position:absolute;inset:0;opacity:0}
.observatory-level .obs-eating-dragon.mouth-open>.obs-mouth-open{opacity:1}
.observatory-level .obs-eating-dragon.mouth-open>.obs-mouth-closed{opacity:0}

/* Hide the neighboring atlas fragment beneath the grinding crystal. */
.observatory-level .obs-grinding #obsGrindSource .obs-art,.obs-drag-ghost .obs-grind-crystal{clip-path:inset(0 5% 12% 3%)}

/* Crystals rest inside the empty mortar, behind its front rim. */
.obs-mortar-crystals{position:absolute;left:14%;top:23%;width:72%;height:30%;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 69%,90% 84%,72% 96%,50% 100%,28% 96%,10% 84%,0 69%)}
.obs-mortar-crystals .obs-mortar-crystal{position:absolute;left:0;top:8%;width:43%;height:auto;aspect-ratio:1;clip-path:inset(0 5% 12% 3%);transform:rotate(-18deg)}
.obs-mortar-crystals .obs-mortar-crystal-1{left:29%;top:2%;width:39%;transform:rotate(5deg)}
.obs-mortar-crystals .obs-mortar-crystal-2{left:57%;top:12%;transform:rotate(23deg)}

/* The telescope extends above its nominal atlas row: include its entire lens and tripod. */
.obs-art.obs-telescope{background-size:400% 480%;background-position:0 23.5%!important}

/* Crystal fragments remain visible in the potion through the final brewing stages. */
#obsCauldron,#obsBottle{position:relative}
.obs-pot-contents.obs-crystal-mixture{overflow:visible;background:radial-gradient(ellipse at 45% 40%,#d4faff 0%,#66cff3 38%,#4461bc 72%,#353068 100%);box-shadow:inset 0 0 8px #dcfaff99}
.obs-crystal-mixture .obs-pot-item{width:24%;top:52%}
.obs-crystal-mixture .obs-pot-item-1{top:44%}
.obs-crystal-mixture .obs-pot-item .obs-art{clip-path:inset(0 5% 12% 3%);filter:drop-shadow(0 0 3px #b9faff)}

/* The ring extends to the left of the planet’s nominal atlas cell. */
.obs-art.obs-planet{background-size:350% 500%;background-position:66% 25%!important;clip-path:none}

/* The solid mortar stays visible while grinding and after completion. */
.observatory-level #obsMortar,.observatory-level #obsMortar:disabled{opacity:1}
.observatory-level #obsMortar.grinding>.mortar-art{animation:obs-mortar-grind .18s ease-in-out 3}
.observatory-level #obsMortar.grinding>.obs-mortar-crystals{animation:obs-crystals-crush .55s ease-in forwards;transform-origin:center bottom}
@keyframes obs-mortar-grind{0%,100%{transform:rotate(0)}50%{transform:rotate(-5deg)}}
@keyframes obs-crystals-crush{to{transform:scale(.6,.15);opacity:0}}
@media(prefers-reduced-motion:reduce){.observatory-level #obsMortar.grinding>*{animation:none}}

/* Fit complete illustrations to each syllable card; keep adjacent atlas objects outside the crop. */
.obs-task-syllables .obs-row-picture .obs-art{position:relative;background:none!important;clip-path:none}
.obs-task-syllables .obs-row-picture .obs-art:before{content:"";position:absolute;inset:0;background-image:url("../scene/magic/observatory-objects.png");background-repeat:no-repeat;background-size:var(--picture-size);background-position:var(--picture-position);clip-path:var(--picture-outline)}
.obs-task-syllables [data-obs-art="0"],html[lang|="en"] .obs-task-underline [data-obs-art="0"]{--picture-size:418.6567% 523.1343%;--picture-position:1.9906% 0.3086%;--picture-outline:polygon(79.48% 94.96%,78.73% 95.34%,20.90% 95.71%,19.78% 95.71%,19.03% 95.34%,17.54% 93.84%,17.16% 93.10%,2.99% 41.60%,2.99% 40.11%,5.22% 37.87%,50.00% 4.29%,51.12% 4.29%,94.78% 36.01%,97.01% 38.25%,97.01% 39.74%,81.34% 92.72%,80.97% 93.47%)}
.obs-task-syllables [data-obs-art="1"],html[lang|="en"] .obs-task-underline [data-obs-art="1"]{--picture-size:438.2812% 547.6562%;--picture-position:34.0069% 1.0471%;--picture-outline:polygon(61.91% 6.25%,93.95% 67.97%,93.95% 69.92%,93.55% 71.09%,91.99% 74.22%,91.21% 75.39%,90.04% 76.95%,88.09% 79.30%,82.23% 85.16%,79.88% 87.11%,77.93% 88.67%,74.02% 91.02%,70.12% 92.97%,66.21% 94.53%,63.48% 95.31%,58.79% 96.48%,55.66% 96.88%,45.12% 96.88%,42.38% 96.48%,40.82% 96.09%,33.79% 93.75%,31.84% 92.97%,31.05% 92.58%,26.37% 89.84%,23.24% 87.50%,15.82% 80.08%,13.48% 76.95%,11.91% 74.61%,8.79% 68.36%,8.01% 66.02%,6.84% 61.33%,6.05% 56.64%,6.05% 47.66%,6.45% 44.14%,8.01% 37.89%,9.18% 34.38%,11.91% 28.91%,13.09% 26.95%,16.21% 22.27%,24.41% 14.06%,25.98% 12.89%,28.71% 10.94%,29.88% 10.16%,34.96% 7.42%,36.52% 6.64%,42.77% 4.69%,46.29% 3.91%,48.24% 3.52%,51.37% 3.12%,57.23% 3.12%,59.18% 3.52%)}
.obs-task-syllables [data-obs-art="2"],html[lang|="en"] .obs-task-underline [data-obs-art="2"]{--picture-size:367.8689% 459.6721%;--picture-position:65.7283% -0.5014%;--picture-outline:polygon(20.33% 85.74%,19.67% 85.41%,17.05% 82.79%,16.39% 81.48%,2.62% 52.95%,2.62% 50.66%,14.10% 19.18%,14.43% 18.52%,15.74% 17.21%,47.21% 5.08%,49.18% 5.08%,81.31% 16.23%,83.28% 18.20%,83.93% 19.51%,97.05% 47.70%,97.38% 49.02%,97.05% 50.33%,86.89% 80.16%,86.56% 80.82%,84.59% 82.79%,83.28% 83.44%,53.44% 94.92%,52.13% 94.92%,50.82% 94.59%)}
.obs-task-syllables [data-obs-art="3"],html[lang|="en"] .obs-task-underline [data-obs-art="3"]{--picture-size:397.8723% 497.1631%;--picture-position:98.8095% -0.4464%;--picture-outline:polygon(97.16% 13.83%,97.16% 16.67%,95.74% 27.30%,95.04% 28.72%,86.17% 43.97%,84.75% 45.74%,83.33% 47.16%,59.57% 67.38%,41.49% 79.79%,39.36% 81.21%,31.21% 86.17%,28.37% 87.59%,27.30% 87.94%,23.40% 89.01%,21.28% 89.36%,16.31% 89.36%,14.54% 89.01%,13.12% 88.65%,12.06% 88.30%,10.64% 87.59%,9.22% 86.52%,6.03% 83.33%,4.61% 81.21%,3.90% 79.79%,2.84% 75.53%,2.84% 73.05%,3.55% 69.15%,3.90% 68.09%,5.32% 64.89%,6.38% 62.77%,7.09% 61.70%,8.87% 59.22%,12.77% 54.26%,14.54% 52.48%,21.99% 45.74%,28.01% 41.13%,30.85% 39.36%,32.62% 38.30%,44.33% 31.91%,48.94% 29.43%,93.97% 10.64%,94.33% 10.64%,96.81% 13.12%)}
.obs-task-syllables [data-obs-art="4"]{--picture-size:365.4723% 456.6775%;--picture-position:0.1840% 23.4703%;--picture-outline:polygon(9.93% 45.60%,9.93% 41.69%,10.59% 40.39%,12.87% 38.11%,64.01% 8.14%,68.24% 5.86%,73.45% 3.26%,74.43% 2.93%,75.73% 2.61%,76.71% 2.61%,78.66% 3.26%,81.27% 4.56%,84.53% 7.82%,85.83% 9.45%,86.81% 10.75%,87.46% 11.73%,88.11% 13.03%,88.76% 14.66%,89.41% 16.61%,89.74% 17.92%,90.07% 19.87%,90.07% 24.76%,89.74% 26.06%,70.52% 89.25%,70.20% 89.90%,68.24% 91.86%,67.59% 92.18%,54.23% 97.07%,53.26% 97.39%,51.95% 97.39%,24.27% 93.81%,23.62% 93.49%,21.34% 91.21%,21.01% 90.23%)}
.obs-task-syllables [data-obs-art="5"]{--picture-size:377.7778% 472.0539%;--picture-position:31.1515% 24.4344%;--picture-outline:polygon(15.82% 66.67%,15.82% 63.30%,16.16% 60.94%,16.50% 59.26%,17.51% 55.22%,18.52% 52.53%,19.53% 50.17%,20.54% 48.15%,21.21% 47.14%,22.56% 45.45%,25.25% 42.76%,51.85% 16.50%,54.88% 13.80%,57.24% 12.12%,59.93% 10.44%,61.62% 9.43%,64.65% 7.74%,68.01% 6.06%,71.38% 4.71%,76.43% 3.03%,77.78% 2.69%,79.12% 2.69%,81.82% 5.39%,82.49% 7.07%,83.16% 9.76%,83.84% 13.13%,84.18% 15.82%,84.18% 26.60%,83.84% 29.29%,83.50% 31.31%,77.44% 66.33%,77.10% 67.68%,76.09% 70.71%,75.42% 72.05%,74.07% 74.41%,73.06% 76.09%,70.03% 80.13%,65.99% 84.18%,63.64% 86.20%,62.63% 86.87%,29.29% 97.31%,28.96% 97.31%,27.27% 95.62%)}
.obs-task-syllables [data-obs-art="6"]{--picture-size:341.0334% 426.1398%;--picture-position:66.8348% 22.5536%;--picture-outline:polygon(45.59% 18.24%,53.80% 18.24%,90.58% 24.92%,91.79% 25.23%,92.71% 25.53%,94.53% 26.44%,96.66% 28.57%,97.26% 29.48%,97.57% 31.00%,97.57% 31.31%,97.26% 33.13%,96.66% 34.65%,95.44% 36.78%,76.29% 66.57%,75.38% 67.78%,74.16% 69.30%,68.69% 74.77%,66.87% 76.29%,65.35% 77.20%,62.61% 78.72%,61.40% 79.33%,59.88% 79.94%,57.14% 80.85%,55.93% 81.16%,54.41% 81.46%,52.28% 81.76%,46.50% 81.76%,9.73% 76.60%,7.29% 75.99%,5.47% 75.08%,2.74% 72.34%,2.43% 71.43%,2.43% 68.69%,2.74% 67.48%,3.04% 66.57%,3.65% 65.05%,3.95% 64.44%,24.32% 31.91%,25.23% 30.70%,31.00% 24.92%,32.52% 23.71%,33.43% 23.10%,36.47% 21.28%,39.21% 20.06%,40.73% 19.45%,41.64% 19.15%,43.77% 18.54%)}
.obs-task-syllables [data-obs-art="8"]{--picture-size:417.1004% 521.1896%;--picture-position:0.5862% 48.4554%;--picture-outline:polygon(20.45% 47.96%,21.93% 37.92%,27.14% 30.11%,39.03% 14.13%,44.98% 6.32%,47.58% 3.72%,48.70% 2.97%,49.44% 2.97%,50.56% 3.72%,53.16% 6.32%,63.94% 18.96%,69.14% 25.28%,78.81% 37.17%,79.55% 38.29%,79.93% 40.89%,80.30% 45.72%,81.04% 57.62%,81.04% 63.20%,80.30% 65.06%,76.21% 74.72%,72.86% 81.78%,72.49% 82.53%,69.14% 85.87%,67.66% 86.99%,63.94% 89.59%,57.99% 93.68%,55.76% 95.17%,52.79% 97.03%,51.30% 97.03%,47.58% 95.17%,34.57% 87.73%,30.86% 85.50%,28.62% 83.27%,27.14% 79.93%,21.19% 65.43%,20.45% 63.57%,19.33% 60.22%,18.96% 58.74%,20.07% 50.56%)}
.obs-task-syllables [data-obs-art="9"],html[lang|="en"] .obs-task-underline [data-obs-art="9"]{--picture-size:360.7717% 450.8039%;--picture-position:32.9223% 47.8918%;--picture-outline:polygon(2.57% 24.92%,2.57% 21.70%,3.22% 19.77%,5.14% 16.88%,7.72% 14.31%,8.36% 13.99%,10.93% 13.67%,71.06% 7.56%,71.70% 7.56%,72.67% 7.88%,73.63% 8.52%,75.56% 10.45%,76.21% 11.41%,76.53% 12.06%,97.11% 67.68%,97.43% 68.65%,97.43% 71.86%,97.11% 72.83%,96.46% 74.12%,95.82% 75.08%,94.21% 76.69%,93.57% 77.01%,92.60% 77.33%,27.01% 92.44%,24.12% 92.44%,22.19% 91.48%,19.61% 88.91%,18.97% 87.94%,18.33% 86.66%,18.01% 85.69%)}

/* One full illustration shared by all four puzzle quadrants and the assembled result. */
.obs-art.obs-constellation-puzzle{background-image:url("../scene/magic/observatory-constellation-puzzle.png");background-size:100% 100%;background-position:center;clip-path:none}
#obsUsePuzzle>.obs-constellation-puzzle{border-radius:18px}

/* Tracing is a stationary surface: hover, progress and feedback must not move it. */
.observatory-level .obs-task-trace .trace-board{grid-template-rows:repeat(4,minmax(0,1fr))}
.observatory-level .obs-task-trace .trace-cell,
.observatory-level .obs-task-trace .trace-cell:hover:not(:disabled),
.observatory-level .obs-task-trace .trace-cell:active{transform:none;transition:none;touch-action:none}
.observatory-level .obs-task-trace .trace-panels{margin:0 auto}
.observatory-level .obs-task-trace .trace-word{width:min(100%,850px);text-align:center;flex-shrink:0}
.observatory-level .obs-task-trace #obsFeedback{display:block;min-height:3.5em;width:100%;margin:0;flex-shrink:0}

/* The finished puzzle releases a standalone crystal into the cauldron. */
.obs-art.obs-free-crystal{clip-path:inset(0 15% 11% 10%)}
.obs-crystal-source.obs-button,.obs-crystal-source.obs-button:hover:not(:disabled){background:transparent;border:0;box-shadow:none;transform:none}
.obs-crystal-source:disabled:not(.obs-drag-ghost){visibility:hidden}
.obs-crystal-source.obs-drag-ghost>.obs-art{width:100%;height:100%}
.obs-crystal-kettle{position:relative}
#obsCrystalCatch{position:absolute;left:35%;top:25%;width:30%;height:12%;pointer-events:none}
.obs-crystal-brewing{filter:drop-shadow(0 0 22px #91dfff77)}
.obs-crystal-bubbles{position:absolute;left:27%;top:18%;width:46%;height:28%;pointer-events:none}
.obs-crystal-bubbles i{position:absolute;left:calc(8% + var(--bubble)*19%);bottom:0;width:12px;height:12px;border-radius:50%;background:#c5f6ff;box-shadow:0 0 12px #8c9fff;animation:obs-crystal-bubble .9s calc(var(--bubble)*-.17s) infinite ease-out}
@keyframes obs-crystal-bubble{from{transform:translateY(0) scale(.5);opacity:0}30%{opacity:1}to{transform:translateY(-65px) scale(1.25);opacity:0}}
@media(prefers-reduced-motion:reduce){.obs-crystal-bubbles i{animation:none}}

/* Level 4: tint only the liquid to match the blue constellation crystal. */
.obs-task-crystal .obs-hued,
.potion-display.potion-level-22>.obs-reward-potion{filter:none}
.obs-task-crystal [data-obs-prop="2"],
.potion-display.potion-level-22>.obs-reward-potion{position:relative}
.obs-task-crystal [data-obs-prop="2"]:after,
.potion-display.potion-level-22>.obs-reward-potion:after{content:'';position:absolute;inset:0;background-image:inherit;background-size:inherit;background-position:inherit;background-repeat:no-repeat;filter:hue-rotate(35deg) saturate(1.12);pointer-events:none}
.obs-task-crystal [data-obs-prop="2"]:after{clip-path:ellipse(32% 7.5% at 50% 33%)}
.potion-display.potion-level-22>.obs-reward-potion:after{clip-path:ellipse(36% 29% at 50% 61%)}

/* Sapphire and gold pendants for the constellation potion. */
.charm-art.charms-constellation{background-image:url('../scene/magic/constellation-potion-charms.png');background-size:300% 100%;background-repeat:no-repeat}
.potion-level-22>.potion-charm{width:30%;top:39%}

/* Fit complete illustrations to each syllable card; keep adjacent atlas objects outside the crop. */
.obs-task-underline .obs-row-picture .obs-art{position:relative;background:none!important;clip-path:none}
.obs-task-underline .obs-row-picture .obs-art:before{content:"";position:absolute;inset:0;background-image:url("../scene/magic/observatory-objects.png");background-repeat:no-repeat;background-size:var(--picture-size);background-position:var(--picture-position);clip-path:var(--picture-outline)}
.obs-task-underline [data-obs-art="4"]{--picture-size:365.4723% 456.6775%;--picture-position:0.1840% 23.4703%;--picture-outline:polygon(9.93% 45.60%,9.93% 41.69%,10.59% 40.39%,12.87% 38.11%,64.01% 8.14%,68.24% 5.86%,73.45% 3.26%,74.43% 2.93%,75.73% 2.61%,76.71% 2.61%,78.66% 3.26%,81.27% 4.56%,84.53% 7.82%,85.83% 9.45%,86.81% 10.75%,87.46% 11.73%,88.11% 13.03%,88.76% 14.66%,89.41% 16.61%,89.74% 17.92%,90.07% 19.87%,90.07% 24.76%,89.74% 26.06%,70.52% 89.25%,70.20% 89.90%,68.24% 91.86%,67.59% 92.18%,54.23% 97.07%,53.26% 97.39%,51.95% 97.39%,24.27% 93.81%,23.62% 93.49%,21.34% 91.21%,21.01% 90.23%)}
.obs-task-underline [data-obs-art="5"]{--picture-size:377.7778% 472.0539%;--picture-position:31.1515% 24.4344%;--picture-outline:polygon(15.82% 66.67%,15.82% 63.30%,16.16% 60.94%,16.50% 59.26%,17.51% 55.22%,18.52% 52.53%,19.53% 50.17%,20.54% 48.15%,21.21% 47.14%,22.56% 45.45%,25.25% 42.76%,51.85% 16.50%,54.88% 13.80%,57.24% 12.12%,59.93% 10.44%,61.62% 9.43%,64.65% 7.74%,68.01% 6.06%,71.38% 4.71%,76.43% 3.03%,77.78% 2.69%,79.12% 2.69%,81.82% 5.39%,82.49% 7.07%,83.16% 9.76%,83.84% 13.13%,84.18% 15.82%,84.18% 26.60%,83.84% 29.29%,83.50% 31.31%,77.44% 66.33%,77.10% 67.68%,76.09% 70.71%,75.42% 72.05%,74.07% 74.41%,73.06% 76.09%,70.03% 80.13%,65.99% 84.18%,63.64% 86.20%,62.63% 86.87%,29.29% 97.31%,28.96% 97.31%,27.27% 95.62%)}
.obs-task-underline [data-obs-art="6"]{--picture-size:341.0334% 426.1398%;--picture-position:66.8348% 22.5536%;--picture-outline:polygon(45.59% 18.24%,53.80% 18.24%,90.58% 24.92%,91.79% 25.23%,92.71% 25.53%,94.53% 26.44%,96.66% 28.57%,97.26% 29.48%,97.57% 31.00%,97.57% 31.31%,97.26% 33.13%,96.66% 34.65%,95.44% 36.78%,76.29% 66.57%,75.38% 67.78%,74.16% 69.30%,68.69% 74.77%,66.87% 76.29%,65.35% 77.20%,62.61% 78.72%,61.40% 79.33%,59.88% 79.94%,57.14% 80.85%,55.93% 81.16%,54.41% 81.46%,52.28% 81.76%,46.50% 81.76%,9.73% 76.60%,7.29% 75.99%,5.47% 75.08%,2.74% 72.34%,2.43% 71.43%,2.43% 68.69%,2.74% 67.48%,3.04% 66.57%,3.65% 65.05%,3.95% 64.44%,24.32% 31.91%,25.23% 30.70%,31.00% 24.92%,32.52% 23.71%,33.43% 23.10%,36.47% 21.28%,39.21% 20.06%,40.73% 19.45%,41.64% 19.15%,43.77% 18.54%)}
.obs-task-underline [data-obs-art="8"]{--picture-size:417.1004% 521.1896%;--picture-position:0.5862% 48.4554%;--picture-outline:polygon(20.45% 47.96%,21.93% 37.92%,27.14% 30.11%,39.03% 14.13%,44.98% 6.32%,47.58% 3.72%,48.70% 2.97%,49.44% 2.97%,50.56% 3.72%,53.16% 6.32%,63.94% 18.96%,69.14% 25.28%,78.81% 37.17%,79.55% 38.29%,79.93% 40.89%,80.30% 45.72%,81.04% 57.62%,81.04% 63.20%,80.30% 65.06%,76.21% 74.72%,72.86% 81.78%,72.49% 82.53%,69.14% 85.87%,67.66% 86.99%,63.94% 89.59%,57.99% 93.68%,55.76% 95.17%,52.79% 97.03%,51.30% 97.03%,47.58% 95.17%,34.57% 87.73%,30.86% 85.50%,28.62% 83.27%,27.14% 79.93%,21.19% 65.43%,20.45% 63.57%,19.33% 60.22%,18.96% 58.74%,20.07% 50.56%)}
.obs-task-underline [data-obs-art="13"]{--picture-size:370.2970% 462.7063%;--picture-position:33.4554% 72.1565%;--picture-outline:polygon(19.47% 44.22%,40.92% 7.26%,44.22% 3.96%,45.21% 3.30%,45.87% 2.97%,47.19% 2.64%,51.16% 2.64%,52.15% 2.97%,54.13% 3.96%,57.10% 6.93%,57.76% 7.92%,80.20% 42.57%,80.53% 43.23%,80.53% 43.89%,76.57% 86.80%,76.24% 87.46%,73.60% 90.10%,64.69% 96.70%,64.03% 97.03%,62.38% 97.36%,35.64% 97.36%,34.65% 97.03%,25.08% 90.76%,24.09% 90.10%,22.44% 88.45%,19.47% 45.87%)}
.obs-task-underline [data-obs-art="17"]{--picture-size:436.5759% 545.5253%;--picture-position:33.9306% 96.4192%;--picture-outline:polygon(4.47% 49.42%,11.09% 30.35%,11.48% 29.57%,14.98% 22.96%,15.76% 21.79%,17.32% 19.84%,19.26% 17.90%,20.82% 16.73%,36.77% 5.45%,41.44% 3.11%,44.55% 3.11%,48.83% 3.50%,49.61% 3.89%,51.95% 5.45%,67.12% 15.95%,69.46% 17.90%,85.02% 33.07%,88.13% 36.19%,89.30% 38.52%,95.53% 52.53%,95.53% 55.25%,95.14% 57.20%,91.25% 70.82%,88.13% 79.77%,83.46% 87.55%,80.74% 90.27%,74.51% 95.33%,73.35% 96.11%,72.57% 96.50%,69.84% 96.89%,68.68% 96.89%,65.95% 96.50%,42.61% 92.61%,41.05% 92.22%,39.88% 91.83%,37.94% 90.66%,21.21% 79.38%,18.48% 76.65%,16.15% 73.93%,10.31% 64.98%,5.64% 56.81%,4.86% 55.25%,4.47% 53.31%)}
.obs-task-underline [data-obs-art="7"]{--picture-size:371.5232% 464.2384%;--picture-position:102.3780% 23.8182%;--picture-outline:polygon(83.94% 27.15%,76.99% 85.76%,76.32% 87.09%,74.01% 89.40%,72.02% 90.73%,66.06% 93.71%,64.07% 94.37%,61.42% 95.03%,34.60% 97.35%,31.29% 97.35%,29.64% 97.02%,28.64% 96.69%,26.66% 95.70%,24.34% 93.38%,24.01% 92.05%,18.38% 65.56%,17.38% 60.60%,17.05% 58.61%,16.72% 55.63%,16.06% 35.10%,16.06% 31.46%,16.39% 30.46%,23.68% 15.23%,24.67% 13.58%,25.99% 11.59%,30.96% 6.62%,32.95% 5.30%,35.60% 3.97%,37.58% 3.31%,40.23% 2.65%,46.85% 2.65%,48.51% 2.98%,49.83% 3.31%,50.83% 3.64%,54.80% 5.63%,79.30% 19.87%,80.63% 21.19%,82.62% 23.51%,82.95% 24.17%)}
.obs-task-underline [data-obs-art="10"]{--picture-size:336.9369% 421.0210%;--picture-position:67.8074% 47.6614%;--picture-outline:polygon(26.43% 80.63%,24.62% 78.83%,2.40% 38.59%,2.40% 37.39%,5.11% 32.88%,8.11% 28.08%,12.01% 22.07%,15.62% 16.67%,17.42% 14.86%,18.02% 14.56%,18.32% 14.56%,67.27% 24.77%,67.87% 25.08%,69.37% 26.58%,97.30% 59.91%,97.60% 60.51%,97.60% 61.11%,96.70% 62.91%,94.59% 66.52%,85.59% 80.93%,83.78% 83.63%,81.98% 85.44%,80.78% 85.44%,27.63% 81.23%)}
.obs-task-underline [data-obs-art="18"]{--picture-size:370.2970% 462.7063%;--picture-position:67.1551% 98.1347%;--picture-outline:polygon(18.15% 9.08%,79.54% 8.42%,81.85% 8.42%,95.05% 15.02%,97.36% 17.33%,97.36% 20.30%,94.06% 67.16%,93.73% 71.12%,93.07% 72.11%,91.42% 73.76%,90.76% 74.09%,51.16% 91.25%,49.83% 91.58%,46.53% 91.58%,45.21% 91.25%,10.56% 74.09%,9.90% 73.76%,8.25% 72.11%,7.92% 71.45%,7.59% 69.47%,2.97% 24.59%,2.64% 21.29%,2.64% 18.32%,2.97% 17.66%,4.62% 16.01%)}

/* Keep the whole illustration centered within the picture column at every screen size. */
.observatory-level .obs-task-underline .obs-row-picture .obs-art{display:block;width:min(100%,145px);height:auto;aspect-ratio:1;margin:0 auto;clip-path:none}

/* Fit complete illustrations to each syllable card; keep adjacent atlas objects outside the crop. */
.obs-task-phrases .obs-noun .obs-art{position:relative;background:none!important;clip-path:none}
.obs-task-phrases .obs-noun .obs-art:before{content:"";position:absolute;inset:0;background-image:url("../scene/magic/observatory-objects.png");background-repeat:no-repeat;background-size:var(--picture-size);background-position:var(--picture-position);clip-path:var(--picture-outline)}
.obs-task-phrases [data-obs-art="0"]{--picture-size:418.6567% 523.1343%;--picture-position:1.9906% 0.3086%;--picture-outline:polygon(79.48% 94.96%,78.73% 95.34%,20.90% 95.71%,19.78% 95.71%,19.03% 95.34%,17.54% 93.84%,17.16% 93.10%,2.99% 41.60%,2.99% 40.11%,5.22% 37.87%,50.00% 4.29%,51.12% 4.29%,94.78% 36.01%,97.01% 38.25%,97.01% 39.74%,81.34% 92.72%,80.97% 93.47%)}
.obs-task-phrases [data-obs-art="1"]{--picture-size:438.2812% 547.6562%;--picture-position:34.0069% 1.0471%;--picture-outline:polygon(61.91% 6.25%,93.95% 67.97%,93.95% 69.92%,93.55% 71.09%,91.99% 74.22%,91.21% 75.39%,90.04% 76.95%,88.09% 79.30%,82.23% 85.16%,79.88% 87.11%,77.93% 88.67%,74.02% 91.02%,70.12% 92.97%,66.21% 94.53%,63.48% 95.31%,58.79% 96.48%,55.66% 96.88%,45.12% 96.88%,42.38% 96.48%,40.82% 96.09%,33.79% 93.75%,31.84% 92.97%,31.05% 92.58%,26.37% 89.84%,23.24% 87.50%,15.82% 80.08%,13.48% 76.95%,11.91% 74.61%,8.79% 68.36%,8.01% 66.02%,6.84% 61.33%,6.05% 56.64%,6.05% 47.66%,6.45% 44.14%,8.01% 37.89%,9.18% 34.38%,11.91% 28.91%,13.09% 26.95%,16.21% 22.27%,24.41% 14.06%,25.98% 12.89%,28.71% 10.94%,29.88% 10.16%,34.96% 7.42%,36.52% 6.64%,42.77% 4.69%,46.29% 3.91%,48.24% 3.52%,51.37% 3.12%,57.23% 3.12%,59.18% 3.52%)}
.obs-task-phrases [data-obs-art="2"]{--picture-size:367.8689% 459.6721%;--picture-position:65.7283% -0.5014%;--picture-outline:polygon(20.33% 85.74%,19.67% 85.41%,17.05% 82.79%,16.39% 81.48%,2.62% 52.95%,2.62% 50.66%,14.10% 19.18%,14.43% 18.52%,15.74% 17.21%,47.21% 5.08%,49.18% 5.08%,81.31% 16.23%,83.28% 18.20%,83.93% 19.51%,97.05% 47.70%,97.38% 49.02%,97.05% 50.33%,86.89% 80.16%,86.56% 80.82%,84.59% 82.79%,83.28% 83.44%,53.44% 94.92%,52.13% 94.92%,50.82% 94.59%)}
.obs-task-phrases [data-obs-art="3"]{--picture-size:397.8723% 497.1631%;--picture-position:98.8095% -0.4464%;--picture-outline:polygon(97.16% 13.83%,97.16% 16.67%,95.74% 27.30%,95.04% 28.72%,86.17% 43.97%,84.75% 45.74%,83.33% 47.16%,59.57% 67.38%,41.49% 79.79%,39.36% 81.21%,31.21% 86.17%,28.37% 87.59%,27.30% 87.94%,23.40% 89.01%,21.28% 89.36%,16.31% 89.36%,14.54% 89.01%,13.12% 88.65%,12.06% 88.30%,10.64% 87.59%,9.22% 86.52%,6.03% 83.33%,4.61% 81.21%,3.90% 79.79%,2.84% 75.53%,2.84% 73.05%,3.55% 69.15%,3.90% 68.09%,5.32% 64.89%,6.38% 62.77%,7.09% 61.70%,8.87% 59.22%,12.77% 54.26%,14.54% 52.48%,21.99% 45.74%,28.01% 41.13%,30.85% 39.36%,32.62% 38.30%,44.33% 31.91%,48.94% 29.43%,93.97% 10.64%,94.33% 10.64%,96.81% 13.12%)}
.obs-task-phrases [data-obs-art="4"]{--picture-size:365.4723% 456.6775%;--picture-position:0.1840% 23.4703%;--picture-outline:polygon(9.93% 45.60%,9.93% 41.69%,10.59% 40.39%,12.87% 38.11%,64.01% 8.14%,68.24% 5.86%,73.45% 3.26%,74.43% 2.93%,75.73% 2.61%,76.71% 2.61%,78.66% 3.26%,81.27% 4.56%,84.53% 7.82%,85.83% 9.45%,86.81% 10.75%,87.46% 11.73%,88.11% 13.03%,88.76% 14.66%,89.41% 16.61%,89.74% 17.92%,90.07% 19.87%,90.07% 24.76%,89.74% 26.06%,70.52% 89.25%,70.20% 89.90%,68.24% 91.86%,67.59% 92.18%,54.23% 97.07%,53.26% 97.39%,51.95% 97.39%,24.27% 93.81%,23.62% 93.49%,21.34% 91.21%,21.01% 90.23%)}
.obs-task-phrases [data-obs-art="5"]{--picture-size:377.7778% 472.0539%;--picture-position:31.1515% 24.4344%;--picture-outline:polygon(15.82% 66.67%,15.82% 63.30%,16.16% 60.94%,16.50% 59.26%,17.51% 55.22%,18.52% 52.53%,19.53% 50.17%,20.54% 48.15%,21.21% 47.14%,22.56% 45.45%,25.25% 42.76%,51.85% 16.50%,54.88% 13.80%,57.24% 12.12%,59.93% 10.44%,61.62% 9.43%,64.65% 7.74%,68.01% 6.06%,71.38% 4.71%,76.43% 3.03%,77.78% 2.69%,79.12% 2.69%,81.82% 5.39%,82.49% 7.07%,83.16% 9.76%,83.84% 13.13%,84.18% 15.82%,84.18% 26.60%,83.84% 29.29%,83.50% 31.31%,77.44% 66.33%,77.10% 67.68%,76.09% 70.71%,75.42% 72.05%,74.07% 74.41%,73.06% 76.09%,70.03% 80.13%,65.99% 84.18%,63.64% 86.20%,62.63% 86.87%,29.29% 97.31%,28.96% 97.31%,27.27% 95.62%)}
.obs-task-phrases [data-obs-art="6"]{--picture-size:341.0334% 426.1398%;--picture-position:66.8348% 22.5536%;--picture-outline:polygon(45.59% 18.24%,53.80% 18.24%,90.58% 24.92%,91.79% 25.23%,92.71% 25.53%,94.53% 26.44%,96.66% 28.57%,97.26% 29.48%,97.57% 31.00%,97.57% 31.31%,97.26% 33.13%,96.66% 34.65%,95.44% 36.78%,76.29% 66.57%,75.38% 67.78%,74.16% 69.30%,68.69% 74.77%,66.87% 76.29%,65.35% 77.20%,62.61% 78.72%,61.40% 79.33%,59.88% 79.94%,57.14% 80.85%,55.93% 81.16%,54.41% 81.46%,52.28% 81.76%,46.50% 81.76%,9.73% 76.60%,7.29% 75.99%,5.47% 75.08%,2.74% 72.34%,2.43% 71.43%,2.43% 68.69%,2.74% 67.48%,3.04% 66.57%,3.65% 65.05%,3.95% 64.44%,24.32% 31.91%,25.23% 30.70%,31.00% 24.92%,32.52% 23.71%,33.43% 23.10%,36.47% 21.28%,39.21% 20.06%,40.73% 19.45%,41.64% 19.15%,43.77% 18.54%)}
.obs-task-phrases [data-obs-art="7"]{--picture-size:371.5232% 464.2384%;--picture-position:102.3780% 23.8182%;--picture-outline:polygon(83.94% 27.15%,76.99% 85.76%,76.32% 87.09%,74.01% 89.40%,72.02% 90.73%,66.06% 93.71%,64.07% 94.37%,61.42% 95.03%,34.60% 97.35%,31.29% 97.35%,29.64% 97.02%,28.64% 96.69%,26.66% 95.70%,24.34% 93.38%,24.01% 92.05%,18.38% 65.56%,17.38% 60.60%,17.05% 58.61%,16.72% 55.63%,16.06% 35.10%,16.06% 31.46%,16.39% 30.46%,23.68% 15.23%,24.67% 13.58%,25.99% 11.59%,30.96% 6.62%,32.95% 5.30%,35.60% 3.97%,37.58% 3.31%,40.23% 2.65%,46.85% 2.65%,48.51% 2.98%,49.83% 3.31%,50.83% 3.64%,54.80% 5.63%,79.30% 19.87%,80.63% 21.19%,82.62% 23.51%,82.95% 24.17%)}
.obs-task-phrases [data-obs-art="8"]{--picture-size:417.1004% 521.1896%;--picture-position:0.5862% 48.4554%;--picture-outline:polygon(20.45% 47.96%,21.93% 37.92%,27.14% 30.11%,39.03% 14.13%,44.98% 6.32%,47.58% 3.72%,48.70% 2.97%,49.44% 2.97%,50.56% 3.72%,53.16% 6.32%,63.94% 18.96%,69.14% 25.28%,78.81% 37.17%,79.55% 38.29%,79.93% 40.89%,80.30% 45.72%,81.04% 57.62%,81.04% 63.20%,80.30% 65.06%,76.21% 74.72%,72.86% 81.78%,72.49% 82.53%,69.14% 85.87%,67.66% 86.99%,63.94% 89.59%,57.99% 93.68%,55.76% 95.17%,52.79% 97.03%,51.30% 97.03%,47.58% 95.17%,34.57% 87.73%,30.86% 85.50%,28.62% 83.27%,27.14% 79.93%,21.19% 65.43%,20.45% 63.57%,19.33% 60.22%,18.96% 58.74%,20.07% 50.56%)}
.obs-task-phrases [data-obs-art="9"]{--picture-size:360.7717% 450.8039%;--picture-position:32.9223% 47.8918%;--picture-outline:polygon(2.57% 24.92%,2.57% 21.70%,3.22% 19.77%,5.14% 16.88%,7.72% 14.31%,8.36% 13.99%,10.93% 13.67%,71.06% 7.56%,71.70% 7.56%,72.67% 7.88%,73.63% 8.52%,75.56% 10.45%,76.21% 11.41%,76.53% 12.06%,97.11% 67.68%,97.43% 68.65%,97.43% 71.86%,97.11% 72.83%,96.46% 74.12%,95.82% 75.08%,94.21% 76.69%,93.57% 77.01%,92.60% 77.33%,27.01% 92.44%,24.12% 92.44%,22.19% 91.48%,19.61% 88.91%,18.97% 87.94%,18.33% 86.66%,18.01% 85.69%)}
.obs-task-phrases [data-obs-art="10"]{--picture-size:336.9369% 421.0210%;--picture-position:67.8074% 47.6614%;--picture-outline:polygon(26.43% 80.63%,24.62% 78.83%,2.40% 38.59%,2.40% 37.39%,5.11% 32.88%,8.11% 28.08%,12.01% 22.07%,15.62% 16.67%,17.42% 14.86%,18.02% 14.56%,18.32% 14.56%,67.27% 24.77%,67.87% 25.08%,69.37% 26.58%,97.30% 59.91%,97.60% 60.51%,97.60% 61.11%,96.70% 62.91%,94.59% 66.52%,85.59% 80.93%,83.78% 83.63%,81.98% 85.44%,80.78% 85.44%,27.63% 81.23%)}
.obs-task-phrases [data-obs-art="11"]{--picture-size:450.6024% 563.0522%;--picture-position:98.2818% 48.3955%;--picture-outline:polygon(3.21% 57.03%,3.21% 49.80%,3.61% 46.59%,4.02% 44.98%,5.22% 41.37%,6.43% 38.96%,8.03% 36.14%,9.24% 34.54%,16.47% 27.31%,20.08% 24.90%,23.29% 22.89%,28.92% 20.08%,32.13% 18.88%,38.15% 16.87%,40.96% 16.06%,42.57% 15.66%,46.59% 14.86%,49.00% 14.46%,52.21% 14.06%,56.63% 13.65%,61.45% 13.65%,66.67% 14.06%,71.49% 14.86%,74.70% 15.66%,75.90% 16.06%,77.91% 16.87%,80.32% 18.07%,83.53% 20.08%,84.74% 20.88%,90.76% 26.91%,93.17% 30.52%,94.78% 33.73%,95.58% 35.74%,95.98% 37.35%,96.39% 39.36%,96.79% 41.77%,96.79% 46.99%,96.39% 49.80%,95.58% 53.01%,94.78% 55.42%,93.98% 57.43%,92.77% 59.84%,91.97% 61.04%,89.96% 63.86%,88.35% 65.86%,84.34% 69.88%,80.32% 73.49%,74.30% 77.51%,66.27% 81.53%,60.64% 83.53%,59.44% 83.94%,56.22% 84.74%,52.61% 85.54%,49.80% 85.94%,46.59% 86.35%,39.36% 86.35%,35.74% 85.94%,33.33% 85.54%,29.72% 84.74%,26.10% 83.53%,24.10% 82.73%,19.28% 80.32%,16.87% 78.71%,13.25% 75.50%,9.64% 71.89%,8.43% 70.28%,7.63% 69.08%,6.02% 66.27%,5.62% 65.46%,4.82% 63.45%,4.42% 62.25%,3.61% 59.04%)}
.obs-task-phrases [data-obs-art="12"]{--picture-size:365.4723% 456.6775%;--picture-position:-0.1840% 73.1507%;--picture-outline:polygon(14.17% 44.30%,14.17% 37.79%,14.50% 35.18%,14.82% 33.55%,15.47% 30.94%,16.45% 28.01%,17.10% 26.38%,18.08% 24.43%,19.38% 22.15%,20.36% 20.52%,21.01% 19.54%,31.11% 5.21%,33.39% 2.93%,34.69% 2.61%,35.02% 2.61%,61.73% 8.79%,64.66% 9.77%,67.26% 10.75%,69.87% 12.05%,71.50% 13.03%,72.80% 14.01%,74.76% 15.64%,78.66% 19.54%,79.64% 20.85%,81.27% 23.13%,81.92% 24.10%,84.20% 28.66%,84.53% 29.64%,85.18% 32.25%,85.50% 33.88%,85.83% 36.16%,85.83% 43.32%,85.50% 45.60%,84.85% 48.21%,84.20% 50.16%,70.20% 91.21%,69.87% 91.86%,67.59% 94.14%,66.61% 94.79%,64.33% 95.77%,63.36% 96.09%,62.05% 96.42%,60.42% 96.74%,55.86% 97.39%,42.83% 97.39%,39.90% 97.07%,36.64% 96.42%,34.04% 95.77%,32.08% 95.11%,30.13% 94.14%,27.20% 91.21%,26.87% 90.23%,15.47% 51.79%,14.82% 49.19%,14.50% 47.23%)}
.obs-task-phrases [data-obs-art="13"]{--picture-size:370.2970% 462.7063%;--picture-position:33.4554% 72.1565%;--picture-outline:polygon(19.47% 44.22%,40.92% 7.26%,44.22% 3.96%,45.21% 3.30%,45.87% 2.97%,47.19% 2.64%,51.16% 2.64%,52.15% 2.97%,54.13% 3.96%,57.10% 6.93%,57.76% 7.92%,80.20% 42.57%,80.53% 43.23%,80.53% 43.89%,76.57% 86.80%,76.24% 87.46%,73.60% 90.10%,64.69% 96.70%,64.03% 97.03%,62.38% 97.36%,35.64% 97.36%,34.65% 97.03%,25.08% 90.76%,24.09% 90.10%,22.44% 88.45%,19.47% 45.87%)}
.obs-task-phrases [data-obs-art="14"]{--picture-size:370.2970% 462.7063%;--picture-position:67.5824% 72.0655%;--picture-outline:polygon(17.66% 36.96%,39.11% 8.25%,42.74% 4.62%,43.73% 3.96%,45.05% 3.30%,46.37% 2.97%,48.02% 2.64%,53.30% 2.64%,54.95% 2.97%,55.94% 3.30%,57.92% 4.29%,58.91% 4.95%,61.88% 7.92%,82.01% 36.30%,82.67% 37.29%,84.98% 41.25%,85.64% 42.57%,86.63% 44.88%,87.62% 47.85%,88.28% 50.50%,88.61% 52.15%,88.94% 54.79%,88.94% 62.05%,88.61% 64.69%,88.28% 66.34%,87.62% 68.98%,86.63% 71.95%,85.97% 73.60%,84.32% 76.90%,83.33% 78.55%,81.35% 81.52%,80.03% 83.17%,74.75% 88.45%,73.10% 89.77%,70.13% 91.75%,64.19% 94.72%,60.23% 96.04%,57.59% 96.70%,55.28% 97.03%,52.64% 97.36%,46.04% 97.36%,43.73% 97.03%,41.75% 96.70%,39.11% 96.04%,35.15% 94.72%,30.53% 92.41%,28.88% 91.42%,26.90% 90.10%,25.58% 89.11%,19.31% 82.84%,18.32% 81.52%,16.34% 78.55%,15.35% 76.90%,14.69% 75.58%,13.37% 72.61%,12.71% 70.96%,12.38% 69.97%,11.72% 67.33%,11.06% 63.37%,11.06% 53.80%,11.72% 50.17%,12.38% 47.52%,12.71% 46.53%,14.03% 43.23%,15.02% 41.25%,16.34% 38.94%)}
.obs-task-phrases [data-obs-art="15"]{--picture-size:352.8302% 440.8805%;--picture-position:105.0995% 72.4170%;--picture-outline:polygon(71.70% 33.96%,50.63% 92.14%,48.74% 94.03%,33.65% 97.48%,31.76% 97.48%,30.82% 97.17%,29.87% 96.54%,28.62% 95.28%,27.99% 94.03%,27.67% 93.08%,27.36% 91.51%,27.36% 90.25%,28.30% 23.90%,28.62% 22.33%,29.25% 20.44%,30.82% 17.30%,33.33% 14.78%,35.53% 12.89%,36.48% 12.26%,47.80% 5.35%,48.43% 5.03%,55.66% 2.52%,57.23% 2.52%,57.86% 2.83%,59.75% 4.72%,64.47% 9.75%,65.09% 10.69%,71.38% 22.64%,72.01% 24.53%,72.64% 27.04%,72.64% 30.82%,72.33% 32.08%)}
.obs-task-phrases [data-obs-art="16"]{--picture-size:381.6327% 476.8707%;--picture-position:0.9662% 97.7888%;--picture-outline:polygon(69.73% 9.69%,92.18% 25.34%,93.88% 27.04%,95.24% 29.42%,95.92% 31.12%,96.26% 32.48%,96.94% 35.88%,97.28% 37.93%,97.28% 38.61%,93.88% 62.76%,92.86% 65.48%,91.16% 69.22%,90.82% 69.90%,89.12% 72.96%,87.76% 74.32%,76.87% 84.52%,73.13% 87.59%,68.71% 89.29%,67.69% 89.63%,41.84% 93.37%,39.12% 93.71%,35.03% 93.37%,31.97% 92.35%,31.29% 92.01%,12.59% 81.46%,10.88% 80.44%,6.12% 75.68%,4.76% 73.64%,3.40% 70.92%,2.72% 67.86%,2.72% 64.12%,6.12% 45.41%,7.48% 38.95%,8.16% 37.24%,9.18% 35.20%,9.86% 34.18%,12.59% 31.46%,17.35% 27.38%,41.50% 11.39%,42.18% 11.05%,53.74% 6.63%,56.12% 6.29%,57.48% 6.29%,61.56% 6.97%,63.95% 7.65%)}
.obs-task-phrases [data-obs-art="17"]{--picture-size:436.5759% 545.5253%;--picture-position:33.9306% 96.4192%;--picture-outline:polygon(4.47% 49.42%,11.09% 30.35%,11.48% 29.57%,14.98% 22.96%,15.76% 21.79%,17.32% 19.84%,19.26% 17.90%,20.82% 16.73%,36.77% 5.45%,41.44% 3.11%,44.55% 3.11%,48.83% 3.50%,49.61% 3.89%,51.95% 5.45%,67.12% 15.95%,69.46% 17.90%,85.02% 33.07%,88.13% 36.19%,89.30% 38.52%,95.53% 52.53%,95.53% 55.25%,95.14% 57.20%,91.25% 70.82%,88.13% 79.77%,83.46% 87.55%,80.74% 90.27%,74.51% 95.33%,73.35% 96.11%,72.57% 96.50%,69.84% 96.89%,68.68% 96.89%,65.95% 96.50%,42.61% 92.61%,41.05% 92.22%,39.88% 91.83%,37.94% 90.66%,21.21% 79.38%,18.48% 76.65%,16.15% 73.93%,10.31% 64.98%,5.64% 56.81%,4.86% 55.25%,4.47% 53.31%)}
.obs-task-phrases [data-obs-art="18"]{--picture-size:370.2970% 462.7063%;--picture-position:67.1551% 98.1347%;--picture-outline:polygon(18.15% 9.08%,79.54% 8.42%,81.85% 8.42%,95.05% 15.02%,97.36% 17.33%,97.36% 20.30%,94.06% 67.16%,93.73% 71.12%,93.07% 72.11%,91.42% 73.76%,90.76% 74.09%,51.16% 91.25%,49.83% 91.58%,46.53% 91.58%,45.21% 91.25%,10.56% 74.09%,9.90% 73.76%,8.25% 72.11%,7.92% 71.45%,7.59% 69.47%,2.97% 24.59%,2.64% 21.29%,2.64% 18.32%,2.97% 17.66%,4.62% 16.01%)}
.obs-task-phrases [data-obs-art="19"]{--picture-size:397.8723% 497.1631%;--picture-position:101.2500% 97.2321%;--picture-outline:polygon(9.40% 61.70%,12.94% 20.21%,13.65% 18.44%,15.07% 16.31%,18.26% 13.12%,21.81% 11.35%,53.37% 2.84%,57.98% 2.84%,60.11% 3.55%,60.82% 3.90%,64.36% 7.45%,88.48% 37.59%,89.18% 39.01%,89.89% 40.78%,90.60% 43.62%,90.60% 47.52%,84.93% 66.67%,84.57% 67.73%,83.87% 69.15%,82.45% 70.92%,78.19% 75.18%,76.77% 76.24%,63.30% 85.82%,61.88% 86.52%,60.82% 86.88%,26.06% 97.16%,25.71% 97.16%,15.43% 93.97%,14.01% 92.55%,9.40% 65.96%)}

/* A complete, generously inset star key shared by the puzzle and its result. */
.obs-task-key .obs-scene{background-image:linear-gradient(#101d3522,#101d3533),url('../scene/magic/observatory-key-chamber.png')}
.obs-art.obs-star-key{background-image:url('../scene/magic/observatory-star-key.png');background-size:80% 80%;background-position:center;background-repeat:no-repeat;clip-path:none}
.obs-task-key .obs-puzzle-target{background:#102a43d9;border-color:#c8af76}
.obs-task-key .obs-piece-tray button{background:#102a43dc;border-color:#bba36c}

/* A direct click opens the star doors before the brewing step. */
.obs-star-door.obs-button,.obs-star-door.obs-button:hover:not(:disabled),.obs-star-door.obs-button:disabled{position:relative;background:transparent;border:0;box-shadow:none;transform:none;opacity:1}
.obs-star-door>.obs-door-open{opacity:0;transition:opacity .55s ease}
.obs-star-door>.obs-door-closed{position:absolute;inset:0;transition:opacity .55s ease}
.obs-star-door.is-opening>.obs-door-open,.obs-star-door.is-open>.obs-door-open{opacity:1}
.obs-star-door.is-opening>.obs-door-closed{opacity:0}
@media(prefers-reduced-motion:reduce){.obs-star-door>.obs-prop{transition:none}}

/* The assembled key remains a transparent cutout in every pointer state. */
.obs-task-key #obsUsePuzzle,
.obs-task-key #obsUsePuzzle:hover:not(:disabled),
.obs-task-key #obsUsePuzzle:active,
.obs-task-key #obsUsePuzzle:focus{background:transparent;border:0;box-shadow:none;transform:none;outline:none}
.obs-task-key #obsUsePuzzle:focus-visible>.obs-star-key{filter:drop-shadow(0 0 6px #ffe5a0) drop-shadow(0 0 12px #8bdfff)}

/* Finale potion: sapphire enamel, golden constellations and a luminous galaxy. */
.obs-task-key .obs-hued{filter:none}
.obs-task-key [data-obs-prop="1"],.obs-task-key [data-obs-prop="2"],.potion-display.potion-level-24>.obs-reward-potion{position:relative;background-image:none;filter:none;border-radius:0}
.obs-task-key [data-obs-prop="1"]:after,.obs-task-key [data-obs-prop="2"]:after,.potion-display.potion-level-24>.obs-reward-potion:after{content:"";position:absolute;left:var(--final-left);top:var(--final-top);width:var(--final-width);height:var(--final-height);background-image:url("../scene/magic/observatory-finale-potion.png");background-size:var(--final-size);background-position:var(--final-position);background-repeat:no-repeat;pointer-events:none}
.obs-task-key [data-obs-prop="1"]{--final-left:4.0000%;--final-top:7.3026%;--final-width:92.0000%;--final-height:85.3949%;--final-size:278.4615% 100%;--final-position:0.0000% 0%}
.obs-task-key [data-obs-prop="2"]{--final-left:4.0000%;--final-top:7.3026%;--final-width:92.0000%;--final-height:85.3949%;--final-size:278.4615% 100%;--final-position:56.0345% 0%}
.potion-display.potion-level-24>.obs-reward-potion{--final-left:11.1160%;--final-top:4.0000%;--final-width:77.7680%;--final-height:92.0000%;--final-size:354.9020% 100%;--final-position:100.0000% 0%}

/* Finale jewelry hangs from a navy and gold cord around the crystal neck. */
.charm-art.charms-finale{background-image:url('../scene/magic/observatory-finale-charms.png');background-size:300% 100%;background-repeat:no-repeat}
.potion-level-24>.potion-charm{width:29%;top:40%}
.potion-level-24>.potion-charm>.charms-finale{clip-path:inset(14% 0 0 0)}
