@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#322b3b;--muted:#8b8590;--purple:#705389;--robe:#544166;--paper:#faf8f3;--border:#e8e2da}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px Manrope,system-ui,sans-serif}button,select{font:inherit;color:inherit}button,select{cursor:pointer}button{transition:.2s}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ba9363;outline-offset:4px}header{height:94px;max-width:1280px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:12px;font-size:21px;font-weight:800;letter-spacing:-.7px}.brand-icon{background:var(--purple);color:#fff3d8;width:37px;height:37px;border-radius:12px;display:grid;place-items:center;font-size:29px}.beta{font-size:9px;letter-spacing:1px;border:1px solid #ddd2e3;border-radius:5px;padding:4px 5px;color:var(--purple);align-self:flex-start;margin-top:4px}.tools{display:flex;gap:19px;align-items:center}.tools button,.tools select{border:0;background:none;font-size:12px}.tools button{color:var(--muted)}main{max-width:1110px;margin:auto;padding:44px 30px 0}.intro{text-align:center}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:800;color:#a17b43;text-transform:uppercase}h1{font-size:46px;font-weight:800;letter-spacing:-2.2px;line-height:1.18;margin:17px 0 14px}h1 em{font-style:normal;color:var(--purple)}.intro p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}.workspace{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:42px;align-items:start}.sanctuary{text-align:center}.tradition{display:inline-flex;gap:11px;align-items:center;font-size:11px;color:var(--muted)}.tradition select{background:#f1ece5;border:0;border-radius:18px;padding:9px 13px;font-size:11px;font-weight:700;color:#63516e;max-width:210px}.scene{height:380px;position:relative;margin:12px auto 0;max-width:410px}.arch{position:absolute;width:290px;height:330px;left:50%;bottom:0;transform:translateX(-50%);background:linear-gradient(#eee6f1,#f0e9df);border-radius:170px 170px 22px 22px;border:1px solid #e2d7e7}.orbit{position:absolute;inset:13px;border:1px solid #fff9;border-radius:inherit}.star,.code{position:absolute;color:#a18cac}.s1{left:30px;top:105px;font-size:28px}.s2{right:27px;top:160px;font-size:18px;color:#c49c59}.s3{right:46px;top:80px}.code{font:16px monospace;opacity:.6}.c1{left:30px;top:210px}.c2{right:16px;top:234px}.bubble{position:absolute;z-index:2;top:14px;left:50%;transform:translateX(-50%) rotate(-3deg);white-space:nowrap;background:white;padding:12px 21px;border:1px solid var(--border);border-radius:15px;font-size:12px;box-shadow:0 5px 16px #51405d07}.bubble:after{content:'';position:absolute;bottom:-7px;left:48%;width:12px;height:12px;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}#character{position:absolute;height:310px;bottom:4px;left:50%;transform:translateX(-50%);overflow:visible}.person{transform-origin:160px 340px;animation:breathe 4s ease-in-out infinite}.arm{transform-origin:224px 230px;animation:wave 4s ease-in-out infinite}.companion{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:15px;font-size:13px;font-weight:800}.online{width:6px;height:6px;border-radius:50%;background:#9ba986}.scene-caption{font-size:11px;color:var(--muted);margin:8px}.panel{background:#fffdf9;border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:0 12px 40px #45343304;min-height:475px}.steps{display:flex;align-items:center;gap:10px;font-size:10px;color:#aba3ad;margin-bottom:30px}.steps span.active{color:var(--purple);font-weight:800}.steps i{flex:1;height:1px;background:var(--border)}.section-label{color:#aa895a;text-transform:uppercase;letter-spacing:1.8px;font-size:9px;font-weight:800}h2{font-size:24px;letter-spacing:-.9px;margin:11px 0}.hint{color:var(--muted);font-size:11px;margin:0 0 22px;line-height:1.7}.choices{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:23px}.choice{padding:13px 10px;display:flex;gap:9px;align-items:center;text-align:left;min-height:48px;border:1px solid var(--border);border-radius:10px;background:transparent;font-size:11px;font-weight:600}.choice .icon{font-size:17px;min-width:20px;color:#9b8ca6}.choice:hover{background:#f7f2f8;border-color:#c7b5d3}.choice.selected{background:#f0e8f5;border-color:#997cad;color:#65437e;box-shadow:0 0 0 1px #997cad22}.primary{background:var(--purple);color:white;border:0;border-radius:10px;padding:15px;width:100%;font-size:12px;font-weight:700;box-shadow:0 4px 7px #70538915}.primary:hover{background:#5b3e73;transform:translateY(-1px)}.back{display:block;margin:12px auto 0;border:0;background:none;color:var(--muted);font-size:10px;padding:4px}.verse{font-size:18px;line-height:1.8;white-space:pre-line;background:#f2ecf5;border-radius:12px;padding:20px;color:#634a78;margin:23px 0}.practical{display:flex;gap:12px;background:#f4f1e9;border-radius:10px;padding:12px;align-items:center}.practical span{font-size:24px;color:#a28b64}.practical p{font-size:11px;line-height:1.7;margin:0}.result-actions{display:flex;gap:8px;margin-top:24px}.secondary{border:1px solid var(--border);border-radius:10px;background:transparent;padding:10px 15px;white-space:nowrap;font-size:11px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--border);margin-top:45px;padding:22px 0;color:#aaa2a5;font-size:10px}footer>span:last-child{font-family:monospace}.tiny-star{color:#ad8c55;margin-left:12px}.candles{position:absolute;bottom:17px;left:39px;display:flex;gap:8px;align-items:end}.candles i{width:13px;height:36px;background:#e2bf81;border-radius:3px;position:relative;box-shadow:inset -4px 0 #cba66b33}.candles i:nth-child(2){height:51px}.candles i:before{content:'';position:absolute;width:8px;height:15px;background:#ffc865;top:-19px;left:3px;border-radius:90% 0 70% 50%;transform:rotate(-20deg);opacity:0}.celebrate .candles i:before{opacity:1;animation:flame .5s infinite alternate;box-shadow:0 0 20px 8px #ffcc7760}.celebrate .person{animation:dance .65s ease-in-out infinite alternate}.music-note{display:none;position:absolute;color:#a184b3;font-size:28px;top:140px}.n1{left:37px}.n2{right:23px;top:200px}.celebrate .music-note{display:block;animation:float 2s ease-in-out infinite}.celebrate .arm{animation:wave .5s infinite alternate}@keyframes breathe{50%{transform:translateY(-5px)}}@keyframes wave{50%{transform:rotate(-6deg)}}@keyframes dance{from{transform:rotate(-5deg) translateY(-3px)}to{transform:rotate(5deg) translateY(-9px)}}@keyframes flame{to{transform:rotate(-8deg) scale(.8,1.15)}}@keyframes float{50%{transform:translateY(-15px) rotate(12deg)}}[hidden]{display:none!important}@media(max-width:760px){header{padding:0 20px;height:75px}.brand{font-size:18px}.tools{gap:8px}.tools button span{display:none}main{padding:30px 20px 0}h1{font-size:34px;letter-spacing:-1.6px}.intro p{font-size:12px}.workspace{grid-template-columns:1fr;gap:23px;margin-top:28px}.scene{height:310px}.arch{height:270px;width:260px}#character{height:265px}.bubble{top:0}.panel{padding:24px;min-height:0}.sanctuary{max-width:400px;width:100%;margin:auto}footer{margin-top:28px;line-height:1.8}.scene-caption{margin-bottom:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Articulated dance: one complete phrase lasts four beats. */
.hand-left{transform-origin:111px 219px}.hand-right{transform-origin:209px 218px}.head{transform-origin:160px 204px}.foot-left{transform-origin:135px 326px}.foot-right{transform-origin:188px 326px}.hand-right{animation:greeting 4s ease-in-out infinite}.celebrate .person{animation:groove calc(var(--beat,.5s)*4) ease-in-out infinite}.celebrate .hand-left{animation:left-groove calc(var(--beat,.5s)*2) ease-in-out infinite}.celebrate .hand-right{animation:right-groove calc(var(--beat,.5s)*2) ease-in-out infinite}.celebrate .head{animation:nod var(--beat,.5s) ease-in-out infinite}.celebrate .foot-left{animation:step-left calc(var(--beat,.5s)*2) ease-in-out infinite}.celebrate .foot-right{animation:step-left calc(var(--beat,.5s)*2) ease-in-out infinite;animation-delay:calc(var(--beat,.5s)*-1)}.celebrate .ground-shadow{animation:shadow-beat var(--beat,.5s) ease-in-out infinite;transform-origin:160px 355px}.speaking .mouth{animation:mouth-talk .22s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.verse-line{display:block;border-radius:5px;transition:background .25s,color .25s,transform .25s}.verse-line.current{background:#e3d4ed;color:#4d2869;transform:translateX(4px)}.celebrate .puppet-2{animation:monk-sway calc(var(--beat,.5s)*4) ease-in-out infinite}.celebrate .puppet-3 .hand-left{animation:left-groove var(--beat,.5s) ease-in-out infinite}
@keyframes groove{0%,100%{transform:translate(-11px,-1px) rotate(-7deg)}25%{transform:translate(0,-16px) rotate(2deg) scale(1.02,.98)}50%{transform:translate(11px,-1px) rotate(7deg)}75%{transform:translate(0,-13px) rotate(-2deg)}}@keyframes left-groove{0%,100%{transform:rotate(12deg)}50%{transform:rotate(65deg)}}@keyframes right-groove{0%,100%{transform:rotate(-24deg)}50%{transform:rotate(28deg)}}@keyframes nod{0%,100%{transform:rotate(-4deg)}50%{transform:translateY(3px) rotate(5deg)}}@keyframes step-left{0%,100%{transform:rotate(0)}25%,55%{transform:translateY(-8px) rotate(24deg)}}@keyframes shadow-beat{50%{transform:scaleX(.82);opacity:.08}}@keyframes mouth-talk{50%{transform:scaleY(2.6)}}@keyframes greeting{50%{transform:rotate(-8deg)}}@keyframes monk-sway{0%,100%{transform:rotate(-9deg) translateX(-9px)}50%{transform:rotate(9deg) translateX(9px) translateY(-10px)}}@media(prefers-reduced-motion:reduce){.person,.hand-left,.hand-right,.head,.foot,.mouth,.ground-shadow{animation:none!important}.verse-line.current{transform:none}}

#stackSection{border-top:1px solid var(--border);padding-top:16px;margin:0 0 22px}#stackLabel{font-size:12px;margin:0 0 6px}#stackHint{font-size:10px;margin-bottom:12px}.stack-choices{display:flex;flex-wrap:wrap;gap:7px}.stack-chip{border:1px solid var(--border);border-radius:20px;background:#faf8f3;padding:9px 13px;font-size:11px}.stack-chip[aria-pressed="true"]{background:#705389;color:white;border-color:#705389}.selection-context{font-size:10px;color:#876b9c;line-height:1.8;margin:0 0 18px}.verse{font-size:16px}.verse-line{line-height:1.8}#ritualContext{margin-top:12px;margin-bottom:0}

.release-choice{grid-column:1/-1;background:#fff3d8;border-color:#dfbf7e;font-size:13px;padding:18px}.release-choice.selected{background:#ffedc5;border-color:#c49138;color:#725022}#releaseDialog{width:min(680px,calc(100% - 24px));max-height:95dvh;border:1px solid #dfcba5;border-radius:26px;background:#fcf7ec;color:var(--ink);padding:26px 32px;text-align:center;overflow:auto;box-shadow:0 24px 100px #21172e66}#releaseDialog::backdrop{background:#21172edb;backdrop-filter:blur(7px)}.release-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;letter-spacing:2px;color:#a17b43}.release-top button{background:none;border:0;letter-spacing:0;color:#78697e;font-size:11px;padding:9px}#releaseTitle{font-size:30px;margin:20px 0 8px}#releaseSub{font-size:12px;color:#8b7b87}#releaseContext{font-size:10px;color:#9a879f}#releaseStage .scene{height:350px;max-width:430px;margin-top:4px}#releaseCaption{font-size:19px;margin:16px 0 8px;color:#79532e}#releaseLyric{min-height:48px;font-size:18px;line-height:1.6;color:#705389;margin:0 0 18px}.release-controls{display:flex;gap:10px;max-width:420px;margin:auto}.release-controls .primary{flex:1}.release-scene .candles{left:50%;transform:translateX(-50%);bottom:0;gap:57px;z-index:3;align-items:end}.release-scene .candles i{height:58px;width:19px;background:linear-gradient(90deg,#d4a752,#f7d893,#deb56a);box-shadow:0 5px 0 3px #b99a59}.release-scene .candles i:nth-child(2){height:72px}.release-scene .candles i:after{content:attr(data-label);position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);white-space:nowrap;font:9px Manrope,system-ui;color:#876d44}.release-scene .candles i:before{opacity:0!important;left:5px;width:10px;height:20px;top:-23px}.release-scene .candles i.lit:before{opacity:1!important;box-shadow:0 0 28px 12px #ffd16c88;animation:flame .5s infinite alternate}.release-scene #character{bottom:24px;height:285px}.release-scene .arch{height:295px;background:radial-gradient(ellipse at bottom,#fce4a9,#eee5ee 75%)}.release-scene .music-note{display:none}.release-scene[data-act="0"] .person,.release-scene[data-act="1"] .person,.release-scene[data-act="2"] .person{animation:light-candle 2s ease-in-out infinite}.release-scene[data-act="0"] .hand-left,.release-scene[data-act="1"] .hand-left,.release-scene[data-act="2"] .hand-left{animation:reach-candle 2s ease-in-out infinite}.release-scene .hand-left:after{content:''}.release-scene[data-act="3"] .person{animation:panic .3s ease-in-out 5}.release-scene[data-act="3"] .bubble{background:#fff0dc;border-color:#d2a66b}.release-scene[data-act="4"] .music-note{display:block}.release-scene[data-act="4"] .arch{background:radial-gradient(ellipse at bottom,#d9ecc9,#eee5ee 75%)}.release-scene[data-act="4"] .person{animation:groove calc(var(--beat,.5s)*4) ease-in-out infinite}.release-scene .bubble{white-space:normal;width:90%;font-size:12px;top:3px}#releaseStage{padding-bottom:18px}@keyframes light-candle{0%,100%{transform:translateX(-8px) rotate(-7deg)}50%{transform:translateY(12px) rotate(-14deg)}}@keyframes reach-candle{50%{transform:rotate(-35deg) translateY(15px)}}@keyframes panic{25%{transform:translateX(-7px) rotate(-4deg)}75%{transform:translateX(7px) rotate(4deg)}}@media(max-width:500px){#releaseDialog{padding:18px}#releaseTitle{font-size:25px}#releaseStage .scene{height:310px}.release-scene #character{height:250px}.release-scene .arch{height:260px}#releaseLyric{font-size:16px}.release-controls .secondary{font-size:10px;padding:8px}#releaseCaption{font-size:16px}}@media(prefers-reduced-motion:reduce){.release-scene .person,.release-scene .hand-left{animation:none!important}}

.stack-group-label{flex-basis:100%;font-size:10px;color:#8b7895;font-weight:700;letter-spacing:.4px;margin:7px 0 3px}.stack-chip{white-space:normal;text-align:left}

#directionSection{margin-top:24px}#directionLabel{font-size:14px;margin-bottom:12px}#directionChoices{gap:8px}#directionChoices .stack-chip{white-space:normal;text-align:left;line-height:1.4}
