:root{font-family:"Noto Serif TC","Songti TC","Noto Serif CJK TC",serif;color:#393631;background:#dedbd3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #9c5948;outline-offset:3px}.hidden{display:none!important}.app-shell{min-height:100vh;display:grid;place-items:center;padding:22px}.atelier{width:min(100%,540px);height:min(960px,calc(100vh - 44px));min-height:680px;position:relative;overflow:hidden;background:linear-gradient(155deg,#fbfaf5 0%,#f2f0e8 60%,#eae6da 100%);box-shadow:0 24px 90px #29282130,0 0 0 1px #b9b4a6;isolation:isolate}.paper-grain{position:absolute;inset:0;opacity:.29;pointer-events:none;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}.masthead{position:absolute;z-index:4;top:25px;left:26px;right:26px;display:flex;justify-content:space-between;pointer-events:none}.brand{pointer-events:auto}.brand h1{margin:0;font-size:37px;font-weight:700;letter-spacing:3px;line-height:1.15;writing-mode:vertical-rl;color:#333d42;text-shadow:1px 2px #f8f5ec}.brand h1 em{font-style:normal;background:linear-gradient(160deg,#345d8d,#96acaf 50%,#a36a50);color:transparent;background-clip:text}.seal{width:27px;height:35px;margin-top:17px;border:2px solid #9c5b4b;color:#9c5b4b;font-size:12px;font-weight:700;line-height:14px;text-align:center;transform:rotate(-5deg)}.brand-rule{height:1px;width:45px;background:#88847b;margin:20px 0 13px}.brand p{font-size:11px;line-height:2.1;letter-spacing:3px;margin:0;color:#57544d}.top-actions{display:flex;align-items:flex-start;gap:11px;pointer-events:auto}.stage-number{font-size:11px;letter-spacing:2px;color:#8c877d;padding-top:9px}.icon-button{border:1px solid #c7c1b5;background:#f8f6efad;border-radius:50%;width:38px;height:38px;color:#777168;font-size:25px;line-height:30px}.icon-button:hover{background:#fff}.scene-wrap{position:absolute;inset:0 0 27%;overflow:hidden;touch-action:none}.scene-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.stage-caption{position:absolute;bottom:5px;left:0;right:0;text-align:center;color:#8d897d;letter-spacing:3px;font-size:11px;pointer-events:none}.control-panel{position:absolute;bottom:34px;left:0;right:0;z-index:3;min-height:225px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 24px}.step-heading{display:flex;align-items:center;gap:14px;margin-bottom:14px;color:#555048}.step-heading h2{font-size:15px;font-weight:500;letter-spacing:7px;margin:0}.diamond{font-size:8px;color:#898377}.controls-group{width:100%;min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.shape-options,.paint-tools,.fire-options{display:flex;justify-content:center;gap:7px;width:100%}.shape-choice,.tool-choice,.pill-button{border:1px solid #c8c0b4;color:#6a665d;background:#f8f7f0b8;border-radius:30px;padding:9px 13px;font-size:12px;white-space:nowrap;transition:.2s}.shape-choice:hover,.tool-choice:hover,.pill-button:hover{border-color:#a86b5b;transform:translateY(-1px)}.shape-choice.active,.tool-choice.active{color:#9d5148;border-color:#b6877f;background:#f9eeee}.help-text{font-size:10px;color:#a39d90;letter-spacing:2px;margin:11px 0 0;text-align:center}.navigation{width:100%;height:47px;display:flex;align-items:center;justify-content:space-between;position:relative;margin-top:4px}.nav-back{border:0;background:transparent;color:#736b5f;font-size:17px;padding:9px}.nav-back span{font-size:11px}.nav-next{border:1px solid #d4c8b5;background:#f9f7ef;color:#995a4a;border-radius:50%;width:46px;height:46px;font-size:23px;box-shadow:0 3px 12px #6d5d4b12;margin-left:auto}.nav-next:hover{background:#ac6655;color:white}.progress-dots{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:8px}.progress-dots span{width:5px;height:5px;background:#cfc6ba;border-radius:50%}.progress-dots span.current{background:#965847;transform:scale(1.45)}.swatches{display:flex;gap:12px;align-items:center;margin:14px 0 7px}.swatch{width:25px;height:25px;border-radius:50%;border:2px solid #f7f6f0;background:var(--swatch);box-shadow:0 0 0 1px #c8bfb4}.swatch.active{box-shadow:0 0 0 2px #78594d;transform:scale(1.08)}.brush-size{font-size:11px;color:#777268;display:flex;align-items:center;gap:9px}.brush-size input{width:103px;accent-color:#9b6a5e}.fire-options{gap:12px}.fire-choice{width:99px;height:94px;border:1px solid #c7c0b2;border-radius:49% 49% 6px 6px;background:#f8f6f0b8;color:#69645c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.fire-choice.active{border-color:#ae715c;color:#9b5344;background:#fbf1e8;box-shadow:0 5px 16px #a05b3723}.fire-icon{font-size:24px;line-height:1}.fire-choice strong{font-size:12px;font-weight:500;letter-spacing:2px}.fire-choice small{font-size:9px;color:#a8a096}.result-verse{font-size:14px;letter-spacing:5px;color:#514e48;margin:5px 0 2px}.signature-label{font-size:11px;color:#847d72;display:flex;align-items:center;gap:10px;margin:12px 0 9px}.signature-label input{width:75px;border:0;border-bottom:1px solid #a39786;background:transparent;text-align:center;color:#944e43;padding:3px;outline:none}.result-actions{display:flex;gap:11px}.result-actions .pill-button:first-child{background:#9d5a4c;color:white;border-color:#9d5a4c}.footer-line{position:absolute;bottom:11px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:4px;color:#b2aa9e}.kiln-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .45s;background:radial-gradient(ellipse at 50% 70%,#b95f28b3,#321a13d9 70%);z-index:5}.kiln-overlay.active{opacity:1}.kiln-arch{position:absolute;width:72%;height:67%;bottom:1%;border:22px solid #3c261c;border-bottom:0;border-radius:50% 50% 0 0;box-shadow:inset 0 0 40px 15px #1c100c,0 0 30px #ac6b33}.fire-glow{position:absolute;width:52%;height:66%;bottom:3%;background:radial-gradient(ellipse at bottom,#ffdd88,#ed762f 37%,#ab3e20a6 72%,transparent);filter:blur(19px);animation:flame 1.1s infinite alternate}.fire-text{z-index:2;color:#f7e8ca;display:flex;flex-direction:column;align-items:center;gap:10px;letter-spacing:6px;text-shadow:0 2px 10px #4b180e}.fire-text span{font-size:22px}.fire-text small{font-size:11px;letter-spacing:3px}.ember{position:absolute;width:5px;height:5px;background:#ffe8a2;border-radius:50%;bottom:20%;animation:rise 2s infinite}.ember-one{left:35%}.ember-two{left:57%;animation-delay:.7s}.ember-three{left:48%;animation-delay:1.3s}@keyframes flame{to{transform:scale(1.15) translateY(-3%);filter:blur(28px)}}@keyframes rise{to{transform:translate(35px,-320px);opacity:0}}.poster-dialog{border:0;background:#f5f2e9;padding:14px;max-height:94vh;width:min(94vw,520px);box-shadow:0 20px 80px #0006}.poster-dialog::backdrop{background:#211c18bb}.dialog-top,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#5b5147}.dialog-top{font-size:14px;letter-spacing:3px;margin-bottom:8px}.dialog-top button{border:0;background:none;font-size:28px;color:#806b5c}.poster-dialog canvas{width:100%;height:auto;max-height:72vh;object-fit:contain;background:#f7f5ee}.dialog-actions{margin-top:9px}.dialog-actions button{flex:1;border:1px solid #a68b7a;padding:9px;background:#faf8f0;color:#855343}.dialog-actions button:first-child{background:#9d5a4c;color:white}@media(max-width:550px){.app-shell{padding:0}.atelier{width:100%;height:100dvh;min-height:600px;box-shadow:none}.masthead{top:22px;left:23px;right:20px}.brand h1{font-size:32px}.control-panel{bottom:28px;min-height:214px;padding:0 15px}.shape-choice{font-size:11px;padding:8px 9px}.scene-wrap{bottom:27%}}@media(max-height:730px){.scene-wrap{bottom:31%}.control-panel{min-height:195px;bottom:23px}.brand p{display:none}.brand-rule{display:none}.seal{margin-top:11px}}
:root .stage-caption{display:none}
