:root{font-family:Georgia,Times New Roman,serif;color:#ede3d7;background:#1a1720;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% 35%,#3a29494d,transparent 65%),radial-gradient(circle at 12% 70%,#74513b12,transparent 35%),#1a1720}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d8b3fa;outline-offset:5px}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}.site-header{max-width:1320px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b59b7620}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:#d9c3a5;font-size:12px;letter-spacing:2px}.brand b{display:block;font-size:9px;font-weight:400;letter-spacing:3.4px;margin-top:4px}.brand-mark{font-size:37px}.header-note,.eyebrow,.page-top,.chapter-nav>span{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2.5px;color:#a79aac}.dust{padding:10px 16px;border:1px solid #af8e5940;border-radius:30px;color:#e0bd78;font-size:17px;background:#31263755}.dust small{font:11px Arial,sans-serif;color:#c7b8cb;margin-left:5px}main{max-width:1100px;margin:auto;padding:0 28px}.introduction{text-align:center;padding:34px 0 30px}.eyebrow{color:#b69a7a;font-size:9px}h1{font-weight:400;font-size:clamp(34px,5vw,53px);letter-spacing:-1.8px;margin:12px 0}h1 em{font-weight:400;color:#c5abd8}.introduction p{color:#a69aa9;font-size:14px;margin:10px 0}.book{display:grid;grid-template-columns:1fr 1fr;position:relative;border:7px solid #3b2b3e;border-radius:15px 22px 22px 15px;box-shadow:0 0 0 1px #95754c66,0 24px 65px #0007,0 4px 0 3px #251c2a;min-height:574px}.book:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:24px;transform:translate(-50%);background:linear-gradient(90deg,#0000,#3f2b3826,#0000);pointer-events:none}.page{position:relative;padding:26px 38px;background-color:#e4d4b5;color:#48394c;background-image:radial-gradient(ellipse at 50% 40%,#fff4d57a,transparent 80%),repeating-linear-gradient(0deg,#7d583804 0px,#7d583804 1px,transparent 1px,transparent 4px)}.puzzle-page{border-radius:7px 0 0 7px;border-right:1px solid #a38d6a55}.spell-page{border-radius:0 12px 12px 0;background-color:#ddcdaf}.page-top{display:flex;justify-content:space-between;color:#8a735a;font-size:9px;letter-spacing:1.8px}.chapter-ornament{text-align:center;color:#92734c;margin:27px 0 13px;font-size:18px}.chapter{text-align:center;text-transform:uppercase;font:9px Arial,sans-serif;letter-spacing:2px;color:#8c7163;margin:0 0 10px}h2{text-align:center;font-size:27px;font-weight:400;margin:0;letter-spacing:-.5px}.lore{font-style:italic;text-align:center;font-size:12px;line-height:1.6;color:#8c7967;max-width:260px;margin:13px auto 23px}.board{display:flex;flex-direction:column;align-items:center;gap:9px;min-height:228px;justify-content:center}.word-row{display:flex;gap:7px}.tile{width:37px;height:38px;display:grid;place-items:center;border:1px solid #ad967450;border-bottom:2px solid #b49b78;border-radius:5px;background:#fff7df45;box-shadow:inset 0 1px 3px #7d583809;font-size:18px;color:#624b70;transition:background .3s}.solved .tile{background:#76608419;border-color:#9c85aa70;box-shadow:0 0 14px #b896ce18}.puzzle-progress{text-align:center;margin:25px auto 0;font:10px Arial,sans-serif;color:#8a7661}.progress-track{width:145px;height:3px;background:#b7a18455;margin:12px auto;border-radius:3px;overflow:hidden}#progress-fill{background:#8b709b;height:100%;transition:width .4s}.page-flourish{text-align:center;color:#9c8161;font-size:27px;margin-top:12px}.wheel-instruction{text-align:center;font-style:italic;color:#8a7564;font-size:13px;margin:25px 0 9px}.word-preview{height:34px;text-align:center;font-size:23px;letter-spacing:6px;color:#745383}.wheel{position:relative;width:280px;height:280px;max-width:100%;margin:0 auto;border:1px solid #ad93624d;border-radius:50%;background:radial-gradient(circle,#e9dfcf22 20%,#9d86aa15 66%,transparent 67%);touch-action:none;-webkit-user-select:none;user-select:none}.wheel:before{content:"";position:absolute;inset:25px;border:1px dashed #a48a6740;border-radius:50%;pointer-events:none}.connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.connections polyline{fill:none;stroke:#a485b5;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.letter{position:absolute;width:52px;height:52px;transform:translate(-50%,-50%);border:1px solid #a78a6155;border-radius:50%;background:#f0e4cc;color:#493951;font-size:27px;box-shadow:0 3px 8px #49302a15;z-index:1;transition:background .15s,box-shadow .15s}.letter:hover{background:#f7ecd7}.letter.selected{color:#fff5e6;background:#796087;border-color:#a88ab9;box-shadow:0 0 20px #a383b780}.shuffle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:transparent;border:0;color:#967e9c;font-size:34px;padding:10px}.word-actions{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:10px}.text-button{background:none;border:0;color:#8a7564;font-size:12px;padding:10px}.cast-button{background:#5c4569;border:1px solid #785887;border-radius:6px;color:#f3e8d7;padding:12px 25px;font-size:13px;box-shadow:0 3px 9px #50335825}.cast-button:hover{background:#6e517e}.cast-button span{margin-left:15px;color:#d4b8e2}.message{font:11px/1.5 Arial,sans-serif;text-align:center;color:#7d687e;min-height:33px;max-width:300px;margin:13px auto 8px}.hint-button{display:block;margin:auto;background:transparent;border:1px solid #a18c7060;border-radius:5px;padding:9px 16px;font-size:12px;color:#6c566d}.hint-button span{margin-left:18px;font:10px Arial,sans-serif;color:#8b704b}.familiar{border-top:1px solid #a28b6830;display:flex;align-items:center;justify-content:center;gap:12px;margin:20px auto 0;padding-top:14px}.familiar-moon{font-size:34px;color:#9b849e}.familiar strong,.familiar div span{display:block;font-weight:400;font-size:11px;color:#816c7e}.familiar div span{font-size:10px;color:#9a866e;margin-top:5px}.chapter-nav{display:flex;justify-content:center;align-items:center;gap:24px;margin:28px 0;flex-wrap:wrap}.chapter-nav>span{font-size:9px}.chapter-nav>div{display:flex;align-items:center}.chapter-button{width:33px;height:33px;border:1px solid #78628155;color:#a293aa;background:#27202e;border-radius:50%;font:10px Arial,sans-serif}.chapter-button.active{background:#594265;border-color:#b091bf;color:#ead9ec;box-shadow:0 0 15px #aa80ce20}.chapter-line{width:22px;height:1px;background:#76618044}.next-button{background:none;color:#cfb8dc;border:0;font-size:13px}footer{display:flex;justify-content:space-between;color:#817586;font:10px/1.6 Arial,sans-serif;padding:3px 0 24px;gap:16px}button{transition:background .15s}@media(min-width:800px){.book{max-width:960px;margin:auto}.page{padding-bottom:23px}}@media(max-width:700px){.header-note{display:none}.site-header{padding:18px 22px}.dust{font-size:15px;padding:9px 12px}.dust small{font-size:9px}main{padding:0 14px}.introduction{padding:28px 0 24px}.introduction p{font-size:12px}.book{grid-template-columns:1fr;border-width:5px;max-width:440px;margin:auto}.book:after{display:none}.page{padding:22px 23px}.puzzle-page{border-radius:7px 7px 0 0;border-right:0;border-bottom:1px solid #ac926b66}.spell-page{border-radius:0 0 8px 8px}.chapter-ornament{margin-top:19px}h2{font-size:25px}.lore{margin-bottom:16px}.board{min-height:0;gap:7px}.tile{width:34px;height:34px}.puzzle-progress{margin-top:20px}.page-flourish{display:none}.wheel-instruction{margin-top:20px}.wheel{width:270px;height:270px}.chapter-nav{gap:15px;margin:24px 0}footer{flex-direction:column;align-items:center;gap:5px;text-align:center}.familiar{margin-top:18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.board{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));width:min(100%,calc(var(--columns)*40px));aspect-ratio:var(--columns)/var(--rows);min-height:0;gap:4px;margin:0 auto;align-items:stretch;justify-content:normal}.board .tile{width:100%;height:100%;min-width:0;border-radius:4px;font-size:clamp(14px,2.2vw,19px)}.tile.revealed{background:#76608419;border-color:#9c85aa70;box-shadow:0 0 14px #b896ce18}.connections polyline{filter:drop-shadow(0 0 4px #b183ce);stroke-width:7;opacity:.6}.wheel{height:auto;aspect-ratio:1}.hint-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.hint-actions .hint-button{margin:0;padding:10px;font-size:11px}.hint-actions .hint-button span{margin-left:7px}#bonus-found{display:block;line-height:1.6;max-width:300px;margin:auto;overflow-wrap:anywhere}.mute-button{border:1px solid #af8e5940;background:#31263755;border-radius:20px;color:#c7b8cb;font:11px Arial,sans-serif;padding:10px 12px}.site-header{gap:10px}.completion{text-align:center;border-top:1px solid #a28b6840;margin-top:18px;padding-top:12px;color:#70527c}.completion strong{display:block;font-weight:400;font-size:20px}.completion p{font:11px/1.6 Arial,sans-serif;margin:8px 0}.completion-stars{display:block;letter-spacing:12px;color:#98743c;margin:0 0 6px 12px}.celebrate .completion-stars{animation:enchant 1.2s ease-out both}@keyframes enchant{0%{opacity:.3;transform:scale(.8);text-shadow:0 0 0 #aa7bcb}45%{opacity:1;transform:scale(1.15);text-shadow:0 0 16px #aa7bcb}to{opacity:1;transform:scale(1);text-shadow:0 0 0 #aa7bcb}}.chapter-button{min-width:36px;min-height:36px}.chapter-line{width:18px}@media(max-width:380px){.site-header{padding:18px 14px;gap:7px}.brand{font-size:10px;letter-spacing:1px;gap:6px}.brand b{font-size:8px;letter-spacing:2px}.brand-mark{font-size:28px}.dust{font-size:14px;padding:8px}.dust small{display:none}.mute-button{font-size:10px;padding:10px}.page{padding:22px 18px}.letter{width:46px;height:46px}.hint-actions .hint-button{font-size:10px;padding:10px 8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}.page{min-width:0}.word-preview{overflow-wrap:anywhere;height:auto;min-height:34px;letter-spacing:4px}.text-button,.next-button,.hint-button,.mute-button{min-height:44px}.chapter-button{width:44px;height:44px}.completion .next-button{display:block;margin:12px auto 0;border:1px solid #785887;border-radius:6px;background:#5c4569;color:#f3e8d7;padding:10px 18px}@media(max-width:700px){.site-header{padding-top:12px;padding-bottom:12px}.introduction{padding:18px 0}h1{margin:8px 0}.introduction p{margin:6px 0}.page{padding:16px 20px}.chapter-ornament{margin:12px 0 8px}.chapter{margin-bottom:7px}.lore{margin:8px auto 12px}.board{width:min(100%,calc(var(--columns)*34px));gap:3px}.puzzle-progress{margin-top:12px}.progress-track{margin:8px auto}.wheel-instruction{margin:12px 0 6px}.wheel{width:250px}.word-actions{margin-top:6px}.message{margin:8px auto;min-height:33px}.familiar{margin-top:12px;padding-top:10px}.chapter-nav{gap:12px;margin:18px 0}.chapter-line{width:14px}}@media(max-width:380px){main{padding:0 10px}.page{padding:14px}.wheel{width:240px}.chapter-nav>span{flex-basis:100%;text-align:center}}.word-list{display:grid;gap:10px;margin:14px auto 0;max-width:360px}.word-group h3{font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:1.4px;color:#806950;margin:0 0 5px}.long-words .word-group-rows{grid-template-columns:1fr}.word-group-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}.word-entry{display:flex;align-items:center;gap:4px;min-width:0}.word-slots{display:flex;gap:3px}.word-letter{display:grid;place-items:center;width:21px;height:26px;border-bottom:1px solid #9e8665;color:#9c8971;font-size:17px;background:#fff7df33;border-radius:3px 3px 0 0}.word-letter.revealed{color:#624b70}.found-word .word-letter{background:#76608419;border-color:#9c85aa70}.word-check{color:#766084;font-size:12px;min-width:10px}@media(max-width:700px){.site-header{padding:6px 14px}.introduction{padding:8px 0}.introduction .eyebrow,.introduction p,.chapter-ornament,.chapter,.lore,.spell-page .page-top,.wheel-instruction,.familiar{display:none}h1{font-size:29px;margin:4px 0;letter-spacing:-1px}.book{min-height:0}.page{padding:10px 14px}.puzzle-page .page-top{font-size:8px;margin-bottom:5px}h2{font-size:21px;margin-bottom:8px}.board{width:min(100%,calc(var(--columns)*28px));gap:3px}.puzzle-progress{margin-top:8px}.progress-track{margin:5px auto;height:2px}.spell-page{padding-top:6px}.word-preview{font-size:20px;min-height:26px;line-height:26px}.wheel{width:220px}.letter{width:46px;height:46px;font-size:25px}.word-actions{margin-top:2px;gap:14px}.cast-button{padding:10px 22px;min-height:44px}.message{margin:4px auto;min-height:0;font-size:10px;line-height:1.4}.hint-actions{gap:6px}.hint-actions .hint-button{padding:8px;font-size:10px}.chapter-nav{gap:8px;margin:10px 0}#chapters{display:grid;grid-template-columns:repeat(4,44px);gap:6px}#chapters .chapter-line{display:none}.chapter-nav>span{display:none}.completion{margin-top:8px;padding-top:8px}footer{padding-bottom:12px;font-size:9px}.word-list{margin-top:0;gap:7px}.word-group-rows{gap:3px 8px}.word-letter{width:20px;height:23px;font-size:15px}}@media(max-width:380px){.word-letter{width:18px}.word-slots{gap:2px}.word-group-rows{column-gap:5px}}#dust-skull{display:inline-block;color:#e0bd78;font-size:22px}.bonus-spark{position:fixed;z-index:1000;pointer-events:none;color:#f5d481;font:700 24px Georgia;text-shadow:0 0 12px #dfb65e,0 0 24px #bd85ed;white-space:nowrap}.bonus-vault{display:flex;flex-direction:column;align-items:center;color:#745383;font:9px Arial,sans-serif;gap:2px;min-width:38px}.bonus-vault b{font-weight:400}.header-skull{color:#e0bd78}@media(max-width:700px){.puzzle-page{padding-bottom:0;border-bottom:0}.spell-page{padding-top:2px;background-color:#e4d4b5}.word-list{gap:4px}.word-group h3{margin-bottom:3px}.word-group-rows{row-gap:2px}.word-letter{height:21px}.word-preview{min-height:22px;line-height:22px}.puzzle-progress{margin-top:8px;border-top:1px solid #a28b6830;padding-top:6px}#bonus-found{max-height:30px;overflow-y:auto}}@media(min-width:390px)and (max-width:700px){.word-group:first-child .word-group-rows{grid-template-columns:repeat(3,minmax(0,1fr))}.word-group:first-child.long-words .word-group-rows{grid-template-columns:1fr}}
