/* 炼金术士-yl，向剧本杀同好问好 */
/* 原创作品：炼金术士 (The Alchemist)，未经授权请勿转载或再发布 */
@font-face{font-family:LiufangSerif;src:url("fonts/liufang-serif.woff2") format("woff2");font-display:swap;font-weight:300 900}@font-face{font-family:LiufangSans;src:url("fonts/liufang-sans.woff2") format("woff2");font-display:swap;font-weight:300 700}
:root{--ink-950:#080b0a;--ink-900:#0d1210;--ink-850:#131a17;--ink-800:#18211d;--ink-700:#26332d;--paper-50:#fdfaf3;--paper-100:#f6eddd;--paper-200:#ecdec6;--paper-300:#dbc7a6;--paper-500:#9d8563;--jade-300:#a9b9a8;--jade-400:#81947f;--jade-500:#5f765f;--jade-700:#32483a;--cinnabar:#9d312d;--cinnabar-bright:#be5046;--gold-300:#e0c998;--gold-400:#ccb176;--gold-500:#ae8e50;--shadow-soft:0 28px 80px rgba(0,0,0,.28);--serif:"LiufangSerif","Noto Serif SC","STSong","SimSun",serif;--sans:"LiufangSans","Noto Sans SC","Microsoft YaHei",sans-serif;--ease-slow:cubic-bezier(.2,.76,.23,1)}
*{box-sizing:border-box;margin:0;padding:0}html{background:var(--ink-950);overflow-x:hidden;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-width:320px;min-height:100vh;min-height:100svh;overflow-x:hidden;color:var(--paper-100);background:radial-gradient(circle at 50% -15%,rgba(63,92,73,.24),transparent 42%),linear-gradient(180deg,var(--ink-900),var(--ink-950));font-family:var(--serif);line-height:1.7;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold-300);outline-offset:3px}::selection{color:var(--paper-50);background:rgba(157,49,45,.82)}
#mist,.paper-grain,.vignette{position:fixed;inset:0;pointer-events:none}#mist{width:100%;height:100%;opacity:.62;z-index:0}.paper-grain{z-index:1;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.46'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.vignette{z-index:2;background:linear-gradient(180deg,rgba(4,9,7,.22),transparent 24%,transparent 72%,rgba(4,8,6,.42)),radial-gradient(circle at center,transparent 42%,rgba(2,5,4,.38) 120%)}.app{position:relative;z-index:3;min-height:100vh;min-height:100svh}.scene{position:relative;min-height:100vh;min-height:100svh;width:100%}.scene[hidden]{display:none}.scene.is-entering{animation:scene-enter .9s var(--ease-slow) both}.scene.is-leaving{animation:scene-leave .45s ease both}@keyframes scene-enter{from{opacity:0;transform:translateY(18px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes scene-leave{to{opacity:0;transform:translateY(-12px);filter:blur(6px)}}.reveal{opacity:0;transform:translateY(14px);animation:reveal-up 1s var(--ease-slow) forwards;animation-delay:var(--delay,0s)}@keyframes reveal-up{to{opacity:1;transform:none}}
.cover-scene{isolation:isolate;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 28%,rgba(162,180,164,.13),transparent 28%),radial-gradient(circle at 50% 65%,rgba(119,143,125,.11),transparent 45%)}.cover-sky{position:absolute;inset:0;z-index:-1;overflow:hidden}.moon{position:absolute;top:8vh;left:50%;width:min(26vw,220px);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 38% 35%,rgba(255,251,225,.96) 0 8%,transparent 9%),radial-gradient(circle at 63% 60%,rgba(211,210,184,.28) 0 7%,transparent 8%),radial-gradient(circle at 52% 52%,#f2eacb,#c9c8a8 72%,#a3aa94);box-shadow:0 0 24px rgba(247,239,196,.38),0 0 90px rgba(187,203,181,.18),0 0 180px rgba(125,163,137,.12);opacity:.9;animation:moon-breathe 7s ease-in-out infinite}.moon::after{content:"";position:absolute;inset:-30%;border-radius:50%;background:radial-gradient(circle,rgba(224,230,199,.14),transparent 64%)}@keyframes moon-breathe{50%{transform:translateX(-50%) scale(1.025);filter:brightness(1.08)}}.mountains{position:absolute;left:-3%;width:106%;height:78%;bottom:0}.mountains path{vector-effect:non-scaling-stroke}.mountains-back{fill:rgba(46,65,56,.46);filter:blur(2px)}.mountains-mid{fill:rgba(25,40,33,.72);filter:blur(.5px)}.mountains-front{fill:rgba(9,17,14,.96)}.cloud{position:absolute;width:42vw;height:7vw;min-height:44px;border-radius:50%;background:radial-gradient(ellipse,rgba(203,216,205,.16),rgba(203,216,205,0) 68%);filter:blur(7px);animation:cloud-drift 22s ease-in-out infinite alternate}.cloud-a{top:34%;left:-8%}.cloud-b{top:47%;right:-12%;animation-duration:28s;animation-direction:alternate-reverse}@keyframes cloud-drift{from{transform:translateX(-4%) scale(.9)}to{transform:translateX(11%) scale(1.08)}}.mist-band{position:absolute;left:-10%;width:120%;height:120px;border-radius:50%;background:radial-gradient(ellipse,rgba(160,181,168,.17),transparent 68%);filter:blur(12px);animation:mist-drift 18s linear infinite alternate}.mist-a{bottom:22%}.mist-b{bottom:8%;animation-duration:24s;animation-direction:alternate-reverse}@keyframes mist-drift{from{transform:translateX(-4%)}to{transform:translateX(8%)}}
.cover-content{width:min(760px,calc(100% - 40px));padding:5vh 20px 9vh;text-align:center;display:flex;flex-direction:column;align-items:center}.cover-kicker{color:var(--gold-300);font-family:var(--sans);font-size:12px;letter-spacing:.38em;text-indent:.38em}.cover-seal{position:relative;width:96px;aspect-ratio:1;display:grid;place-items:center;margin:4vh 0 3vh;color:#c65b4f;border:1px solid rgba(198,91,79,.52);border-radius:50%;box-shadow:inset 0 0 0 7px rgba(157,49,45,.06),0 0 45px rgba(157,49,45,.12);transform:rotate(-5deg)}.cover-seal::before{content:"";position:absolute;inset:8px;border:1px dashed rgba(198,91,79,.36);border-radius:50%}.cover-seal::after{content:"";position:absolute;inset:-8px 36px;border-left:1px solid rgba(224,201,152,.22);border-right:1px solid rgba(224,201,152,.22)}.cover-seal span{font-size:46px;line-height:1}.cover-seal i{position:absolute;width:2px;height:20px;bottom:-11px;background:var(--cinnabar)}.cover-title{margin:0;font-size:clamp(42px,8vw,86px);font-weight:560;line-height:1.05;letter-spacing:.08em;text-shadow:0 12px 45px rgba(0,0,0,.48)}.cover-subtitle{margin-top:18px;color:var(--jade-300);font-size:clamp(15px,2vw,19px);letter-spacing:.28em;text-indent:.28em}.cover-intro{max-width:520px;margin-top:34px;color:rgba(239,232,215,.66);font-size:15px;line-height:2.05}.primary-ritual{position:relative;min-width:230px;margin-top:44px;padding:16px 56px 16px 34px;overflow:hidden;border:1px solid rgba(224,201,152,.48);border-radius:2px;color:var(--paper-50);background:rgba(17,27,22,.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 15px 45px rgba(0,0,0,.22);backdrop-filter:blur(10px);cursor:pointer;letter-spacing:.18em;transition:.4s var(--ease-slow)}.primary-ritual:hover{transform:translateY(-2px);border-color:rgba(224,201,152,.9);background:rgba(35,49,40,.66)}.button-ink{position:absolute;inset:0;transform:translateX(-101%);background:linear-gradient(90deg,rgba(157,49,45,.6),rgba(98,125,103,.38));transition:transform .7s var(--ease-slow)}.primary-ritual:hover .button-ink{transform:none}.button-label,.button-arrow{position:relative;z-index:1}.button-arrow{position:absolute;right:20px;top:50%;width:26px;height:26px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid rgba(224,201,152,.38);border-radius:50%;color:var(--gold-300);font-size:11px}.sound-toggle{display:inline-flex;align-items:center;gap:8px;margin-top:18px;border:0;color:rgba(231,225,209,.52);background:transparent;cursor:pointer;font-family:var(--sans);font-size:11px;letter-spacing:.14em}.sound-icon{position:relative;width:14px;height:14px;border:1px solid currentColor;border-radius:50%}.sound-icon::after{content:"";position:absolute;left:5px;top:3px;width:2px;height:6px;background:currentColor;transform:rotate(45deg)}.sound-toggle[aria-pressed=true]{color:var(--gold-300)}.cover-footer{position:absolute;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);white-space:nowrap;color:rgba(214,208,190,.36);font-size:11px;letter-spacing:.18em}
.form-scene{display:grid;place-items:center;padding:38px 20px 60px;color:var(--ink-800);background:radial-gradient(circle at 12% 12%,rgba(126,151,130,.13),transparent 26%),radial-gradient(circle at 90% 85%,rgba(170,130,81,.13),transparent 28%),var(--paper-100)}.form-scene::before{content:"";position:fixed;inset:0;z-index:-1;background-image:linear-gradient(rgba(133,107,75,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(133,107,75,.04) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(circle,black,transparent 80%)}.form-shell{position:relative;width:min(920px,100%);padding:clamp(26px,5vw,58px);border:1px solid rgba(98,77,51,.22);background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(255,255,255,.08)),var(--paper-50);box-shadow:var(--shadow-soft)}.form-shell::before,.form-shell::after{content:"";position:absolute;pointer-events:none}.form-shell::before{inset:10px;border:1px solid rgba(119,91,54,.1)}.form-shell::after{width:90px;height:90px;right:-1px;bottom:-1px;border-right:2px solid rgba(157,49,45,.42);border-bottom:2px solid rgba(157,49,45,.42)}.scene-header,.result-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.back-button,.ghost-button{position:relative;z-index:2;padding:8px 0;border:0;color:inherit;background:transparent;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:.12em}.back-button::before{content:"←";display:inline-block;margin-right:8px;transition:transform .3s}.back-button:hover::before{transform:translateX(-4px)}.step-mark{display:flex;align-items:center;gap:12px;color:var(--paper-500);font-size:11px;letter-spacing:.12em}.step-mark i{width:56px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent)}.mini-seal{width:34px;height:34px;display:grid;place-items:center;color:var(--cinnabar);border:1px solid rgba(157,49,45,.52);font-size:16px;transform:rotate(3deg)}.form-heading{width:min(650px,100%);margin:clamp(38px,6vw,72px) 0 42px}.eyebrow{color:var(--jade-500)!important;font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase}.form-heading h2{margin-top:10px;font-size:clamp(30px,5vw,52px);font-weight:520;line-height:1.22}.form-heading h2 em{position:relative;color:var(--cinnabar);font-style:normal}.form-heading h2 em::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:6px;background:rgba(157,49,45,.13);z-index:-1}.form-heading>p:last-child{max-width:620px;margin-top:18px;color:#726453;font-size:14px;line-height:1.9}.fate-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 34px}.field{position:relative}.field-wide{grid-column:1/-1}.field label,.gender-field legend{display:block;margin-bottom:9px;color:#6d5e4d;font-family:var(--sans);font-size:12px;letter-spacing:.08em}.field label span{color:#a99a86;font-size:10px}.field input{width:100%;height:52px;padding:0 4px;border:0;border-bottom:1px solid rgba(101,80,54,.24);border-radius:0;color:var(--ink-800);background:transparent;font-size:17px;transition:border-color .3s;color-scheme:light}.field input::placeholder{color:#b1a593}.field input:focus{outline:0;border-color:var(--cinnabar)}.input-line{position:relative}.field-brush{position:absolute;left:0;bottom:-1px;width:0;height:2px;background:linear-gradient(90deg,var(--cinnabar),var(--gold-500));transition:width .5s var(--ease-slow)}.field input:focus+.field-brush{width:100%}.name-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.name-quick button{padding:5px 12px;border:1px solid rgba(111,88,58,.18);border-radius:2px;color:#7a6b5b;background:rgba(255,255,255,.32);cursor:pointer;font-size:11px;transition:.25s}.name-quick button:hover,.name-quick button.is-active{color:var(--paper-50);border-color:var(--jade-500);background:var(--jade-500)}.gender-field{padding:0;border:0}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:2px}.segmented label{margin:0}.segmented input{position:absolute;width:1px;height:1px;opacity:0}.segmented span{height:52px;display:grid;place-items:center;border:1px solid rgba(102,80,54,.2);color:#766858;background:rgba(255,255,255,.22);cursor:pointer;transition:.3s}.segmented input:checked+span{color:var(--paper-50);border-color:var(--jade-700);background:var(--jade-700);box-shadow:0 9px 22px rgba(50,72,58,.18)}.form-note{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start;padding:18px 20px;border-left:2px solid rgba(157,49,45,.4);background:rgba(122,104,80,.055)}.note-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(157,49,45,.35);color:var(--cinnabar);font-size:15px}.form-note p{color:#806f5d;font-size:12px;line-height:1.85}.submit-ritual{position:relative;min-height:62px;overflow:hidden;border:1px solid var(--jade-700);color:var(--paper-50);background:var(--jade-700);box-shadow:0 18px 35px rgba(50,72,58,.2);cursor:pointer;font-size:15px;letter-spacing:.18em;transition:.35s var(--ease-slow)}.submit-ritual:hover{transform:translateY(-2px);box-shadow:0 24px 45px rgba(50,72,58,.28)}.submit-ritual:disabled{cursor:wait;opacity:.68}.submit-lines{position:absolute;inset:0;opacity:.22;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.24) 45%,transparent 64%),repeating-linear-gradient(90deg,transparent 0 10px,rgba(255,255,255,.04) 10px 11px);transform:translateX(-100%);transition:transform 1.1s var(--ease-slow)}.submit-ritual:hover .submit-lines{transform:translateX(100%)}
.loading-scene{display:grid;place-items:center;align-content:center;padding:30px;text-align:center;background:radial-gradient(circle at center,rgba(79,105,86,.28),transparent 34%),linear-gradient(180deg,#0b110e,#080b0a)}.loading-orbit{position:relative;width:min(62vw,330px);aspect-ratio:1;display:grid;place-items:center;margin-bottom:52px}.orbit-ring{position:absolute;border:1px solid rgba(224,201,152,.18);border-radius:50%}.ring-one{inset:2%;border-style:dashed;animation:spin 18s linear infinite}.ring-two{inset:16%;border-color:rgba(129,148,127,.28);animation:spin-reverse 13s linear infinite}.ring-three{inset:30%;border-color:rgba(157,49,45,.3);animation:spin 9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-reverse{to{transform:rotate(-360deg)}}.loading-core{width:112px;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(224,201,152,.52);border-radius:50%;color:var(--gold-300);background:radial-gradient(circle,rgba(62,84,69,.38),rgba(11,17,14,.86));box-shadow:0 0 70px rgba(109,150,119,.22);font-size:55px}.coin{position:absolute;width:46px;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(224,201,152,.62);border-radius:50%;color:var(--gold-300);background:rgba(10,16,13,.86);box-shadow:inset 0 0 0 4px rgba(224,201,152,.05);font-size:13px}.coin-one{top:1%;left:50%;transform:translateX(-50%)}.coin-two{right:3%;bottom:18%}.coin-three{left:7%;bottom:14%}.loading-scene h2{font-size:clamp(26px,5vw,42px);font-weight:480;letter-spacing:.14em}.loading-scene p{margin-top:14px;color:var(--jade-300);font-family:var(--sans);font-size:12px;letter-spacing:.32em}.loading-rule{width:180px;height:1px;margin-top:28px;overflow:hidden;background:rgba(224,201,152,.14)}.loading-rule i{display:block;width:40%;height:100%;background:linear-gradient(90deg,transparent,var(--gold-300),transparent);animation:loading-sweep 1.35s ease-in-out infinite}@keyframes loading-sweep{from{transform:translateX(-120%)}to{transform:translateX(320%)}}
.result-scene{padding:0 0 90px;color:var(--ink-800);background:#d9d0c2}.result-backdrop{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,12,10,.96) 0,rgba(17,25,21,.94) 260px,rgba(225,215,198,.98) 261px),var(--paper-100)}.result-shell{width:min(1360px,100%);margin:0 auto;padding:0 22px}.result-topbar{position:sticky;top:0;z-index:30;height:72px;color:var(--paper-100);background:rgba(10,15,13,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(224,201,152,.1)}.result-brand{display:flex;align-items:center;gap:11px;color:var(--gold-300);font-size:12px;letter-spacing:.28em}.result-brand i{width:42px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-400),transparent)}.ghost-button{padding:8px 14px;border:1px solid rgba(224,201,152,.28);color:var(--gold-300)}.result-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:34px;align-items:start;padding-top:44px}.chapter-nav{position:sticky;top:104px;padding:22px 0;color:var(--paper-200)}.nav-title{padding:0 16px 14px;border-bottom:1px solid rgba(224,201,152,.16);color:rgba(224,201,152,.62);font-family:var(--sans);font-size:10px;letter-spacing:.24em}.nav-list{display:flex;flex-direction:column;padding-top:12px}.nav-list a{position:relative;display:block;padding:8px 16px;color:rgba(239,231,214,.54);text-decoration:none;font-size:12px;transition:.3s}.nav-list a::before{content:"";position:absolute;left:2px;top:50%;width:0;height:1px;background:var(--gold-300);transition:width .3s}.nav-list a:hover,.nav-list a.is-active{color:var(--gold-300);transform:translateX(5px)}.nav-list a.is-active::before{width:7px}.fate-book{overflow:hidden;border:1px solid rgba(112,89,61,.18);background:linear-gradient(135deg,rgba(255,255,255,.54),rgba(255,255,255,.08)),var(--paper-50);box-shadow:0 38px 100px rgba(28,20,13,.26)}
.result-hero{position:relative;overflow:hidden;padding:clamp(78px,11vw,142px) clamp(28px,7vw,92px) clamp(70px,8vw,100px);color:var(--paper-100);background:radial-gradient(circle at 75% 25%,rgba(129,148,127,.24),transparent 30%),linear-gradient(140deg,#151f1a,#0a0e0c 72%);text-align:center}.result-hero::before,.result-hero::after{content:"";position:absolute;border:1px solid rgba(224,201,152,.12);transform:rotate(45deg)}.result-hero::before{width:360px;height:360px;right:-210px;top:-160px}.result-hero::after{width:250px;height:250px;left:-170px;bottom:-120px}.hero-ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:22px}.hero-ornament span{width:56px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500))}.hero-ornament span:last-child{transform:scaleX(-1)}.hero-ornament i{width:7px;height:7px;border:1px solid var(--cinnabar-bright);transform:rotate(45deg)}.hero-overline{color:rgba(224,201,152,.64);font-family:var(--sans);font-size:10px;letter-spacing:.36em;text-indent:.36em}.result-hero h1{margin-top:20px;font-size:clamp(42px,8vw,80px);font-weight:520;letter-spacing:.08em;line-height:1.12}.result-hero h1 em{display:block;margin-top:8px;color:var(--gold-300);font-size:.32em;font-style:normal;letter-spacing:.34em;text-indent:.34em}.hero-date{margin-top:18px;color:rgba(235,229,216,.54);font-size:12px}.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:48px}.pillar{position:relative;padding:20px 8px 16px;border-top:1px solid rgba(224,201,152,.24);border-bottom:1px solid rgba(224,201,152,.1);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent)}.pillar-label{color:rgba(224,201,152,.54);font-family:var(--sans);font-size:10px;letter-spacing:.2em}.pillar-glyphs{display:flex;justify-content:center;gap:7px;margin:14px 0 10px;color:var(--paper-50);font-size:clamp(30px,5vw,48px);line-height:1}.pillar-nayin{color:rgba(204,177,118,.68);font-size:10px}.hero-seal{position:absolute;right:clamp(22px,4vw,56px);bottom:clamp(22px,4vw,48px);width:70px;aspect-ratio:1;display:grid;place-items:center;border:2px solid rgba(190,80,70,.62);color:rgba(190,80,70,.78);transform:rotate(-7deg)}.hero-seal span{font-size:32px}.hero-seal i{position:absolute;inset:5px;border:1px solid rgba(190,80,70,.38)}
.overview-section,.letter-section,.chapters{padding:clamp(46px,7vw,82px) clamp(24px,7vw,82px)}.section-heading{display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:center;margin-bottom:34px}.section-heading>span{width:46px;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(112,88,58,.28);color:var(--cinnabar);font-size:17px;transform:none}.section-heading p{color:var(--jade-500);font-family:var(--sans);font-size:10px;letter-spacing:.24em}.section-heading h2{margin-top:2px;color:var(--ink-800);font-size:clamp(24px,4vw,34px);font-weight:520}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(112,88,58,.16);border-left:1px solid rgba(112,88,58,.16)}.overview-card{min-height:122px;padding:20px 18px;border-right:1px solid rgba(112,88,58,.16);border-bottom:1px solid rgba(112,88,58,.16);background:rgba(255,255,255,.22)}.overview-card span{color:#938571;font-family:var(--sans);font-size:10px;letter-spacing:.16em}.overview-card strong{display:block;margin-top:15px;color:var(--jade-700);font-size:clamp(20px,3vw,29px);font-weight:520;line-height:1.25}.overview-card small{display:block;margin-top:7px;color:#938571;font-size:10px}.element-chart{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:13px;min-height:220px;margin-top:38px;padding:30px 20px 0;border-bottom:1px solid rgba(112,88,58,.2);background:repeating-linear-gradient(0deg,transparent 0 44px,rgba(112,88,58,.07) 44px 45px)}.element-item{display:grid;grid-template-rows:1fr auto auto;align-content:end;height:190px;text-align:center}.element-bar-wrap{position:relative;width:min(46px,68%);height:100%;margin:0 auto;display:flex;align-items:flex-end}.element-bar{width:100%;height:var(--height,12%);min-height:8px;border:1px solid rgba(112,88,58,.18);background:linear-gradient(180deg,var(--bar-color,var(--jade-400)),var(--bar-dark,var(--jade-700)));box-shadow:inset 0 0 14px rgba(255,255,255,.18);transform-origin:bottom;animation:bar-grow 1.1s var(--ease-slow) both}@keyframes bar-grow{from{transform:scaleY(.04);opacity:.2}}.element-item strong{margin-top:12px;color:var(--ink-800);font-size:17px;font-weight:520}.element-item span{color:#9a8a75;font-family:var(--sans);font-size:10px}
.letter-section{border-top:1px solid rgba(112,88,58,.13);border-bottom:1px solid rgba(112,88,58,.13);background:radial-gradient(circle at 80% 20%,rgba(172,139,83,.1),transparent 28%),rgba(232,220,198,.44)}.letter-paper{position:relative;width:min(760px,100%);margin:0 auto;padding:clamp(34px,6vw,62px);border:1px solid rgba(113,82,48,.22);background:linear-gradient(90deg,rgba(99,71,43,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(99,71,43,.028) 1px,transparent 1px),#fbf5e8;background-size:30px 30px;box-shadow:0 25px 60px rgba(57,42,27,.12)}.letter-paper::before{content:"";position:absolute;inset:10px;border:1px solid rgba(113,82,48,.09);pointer-events:none}.letter-paper p{position:relative;z-index:1;color:#514432;font-size:clamp(15px,2vw,18px);line-height:2.15;white-space:pre-line}.letter-sign{width:fit-content;margin:34px 0 0 auto;color:var(--cinnabar);font-size:12px;letter-spacing:.12em}.letter-corner{position:absolute;width:20px;height:20px;border-color:rgba(157,49,45,.48)}.top-left{top:10px;left:10px;border-top:1px solid;border-left:1px solid}.top-right{top:10px;right:10px;border-top:1px solid;border-right:1px solid}.bottom-left{bottom:10px;left:10px;border-bottom:1px solid;border-left:1px solid}.bottom-right{bottom:10px;right:10px;border-bottom:1px solid;border-right:1px solid}
.chapters{display:flex;flex-direction:column;gap:24px}.chapter{position:relative;padding:clamp(26px,4vw,42px);border:1px solid rgba(112,88,58,.16);background:rgba(255,255,255,.24);scroll-margin-top:100px;transition:.4s}.chapter:hover,.chapter.is-visible{border-color:rgba(112,88,58,.3);background:rgba(255,255,255,.4);box-shadow:0 18px 42px rgba(70,53,35,.07)}.chapter-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(112,88,58,.13)}.chapter-head h2{font-size:clamp(22px,3.5vw,30px);font-weight:530}.chapter-number{color:var(--cinnabar);font-family:var(--sans);font-size:10px;letter-spacing:.18em}.chapter-body{padding-top:22px;color:#5c5041;font-size:14px;line-height:2.05}.chapter-line{position:relative;padding-left:18px;margin:8px 0}.chapter-line.is-note{color:#806f59}.chapter-line.is-star{color:var(--jade-700)}.chapter-line::before{content:"";position:absolute;left:1px;top:.83em;width:5px;height:5px;border:1px solid rgba(157,49,45,.5);transform:rotate(45deg)}.chapter-line.is-plain{padding-left:0}.chapter-line.is-plain::before{display:none}.chapter-line strong{color:var(--ink-800);font-weight:560}.book-footer{display:grid;justify-items:center;gap:10px;padding:58px 24px 70px;color:#8e806d;background:#f6efe2;border-top:1px solid rgba(112,88,58,.14);text-align:center}.footer-seal{width:48px;aspect-ratio:1;display:grid;place-items:center;margin-bottom:8px;border:1px solid rgba(157,49,45,.54);color:var(--cinnabar);font-size:22px;transform:rotate(-3deg)}.book-footer p{color:#675947;font-size:16px;letter-spacing:.12em}.book-footer span{font-family:var(--sans);font-size:9px;letter-spacing:.26em}.result-actions{position:fixed;right:22px;bottom:max(18px,env(safe-area-inset-bottom));z-index:35;display:flex;gap:8px}.result-actions button{min-height:42px;padding:0 16px;border:1px solid rgba(224,201,152,.24);color:var(--paper-100);background:rgba(10,15,13,.84);backdrop-filter:blur(12px);cursor:pointer;font-family:var(--sans);font-size:11px;letter-spacing:.1em}
.share-dialog{width:min(920px,calc(100% - 28px));max-height:calc(100svh - 30px);padding:0;overflow:hidden;border:1px solid rgba(224,201,152,.2);color:var(--ink-800);background:var(--paper-100);box-shadow:0 40px 120px rgba(0,0,0,.5)}.share-dialog::backdrop{background:rgba(3,7,5,.82);backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(112,88,58,.16)}.dialog-head p{color:var(--jade-500);font-family:var(--sans);font-size:10px;letter-spacing:.18em}.dialog-head h2{margin-top:3px;font-size:20px;font-weight:520}.dialog-head button{width:36px;height:36px;border:1px solid rgba(112,88,58,.2);color:var(--ink-700);background:transparent;cursor:pointer;font-size:22px}.share-preview{max-height:calc(100svh - 250px);padding:22px;overflow:auto;background:#171d1a;text-align:center}.share-preview canvas{width:min(320px,100%);height:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 22px 22px}.dialog-actions button{min-height:46px;border:1px solid var(--jade-700);color:var(--jade-700);background:transparent;cursor:pointer;letter-spacing:.12em}.dialog-actions button:first-child{color:var(--paper-50);background:var(--jade-700)}.toast{position:fixed;left:50%;bottom:28px;z-index:100;padding:10px 18px;transform:translate(-50%,20px);border:1px solid rgba(224,201,152,.2);color:var(--paper-100);background:rgba(9,14,11,.92);opacity:0;pointer-events:none;transition:.35s;font-family:var(--sans);font-size:12px}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:980px){.result-layout{grid-template-columns:1fr;gap:0}.chapter-nav{position:sticky;top:72px;z-index:25;padding:0 0 10px;color:var(--ink-700);background:rgba(246,237,221,.94);backdrop-filter:blur(14px)}.nav-title{display:none}.nav-list{flex-direction:row;gap:4px;padding:10px 4px 0;overflow-x:auto;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.nav-list a{flex:0 0 auto;padding:8px 12px;color:#746453;border:1px solid rgba(112,88,58,.14)}.nav-list a::before{display:none}.nav-list a:hover,.nav-list a.is-active{color:var(--paper-50);background:var(--jade-700);transform:none}.overview-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.cover-content{padding-top:3vh}.cover-seal{width:78px;margin:3vh 0 2vh}.cover-seal span{font-size:38px}.cover-subtitle{line-height:1.8}.cover-intro{margin-top:24px;font-size:13px}.primary-ritual{margin-top:30px}.cover-footer{max-width:86%;white-space:normal;text-align:center}.form-scene{display:block;padding:26px 12px 48px}.form-shell{padding:25px 20px 34px}.step-mark{display:none}.form-heading{margin:36px 0 32px}.fate-form{grid-template-columns:1fr;gap:24px}.field-wide{grid-column:1}.field input{font-size:16px}.form-note{grid-template-columns:36px 1fr;padding:15px}.result-shell{padding:0 10px}.result-topbar{height:62px;padding:0 12px}.result-brand{display:none}.result-layout{padding-top:18px}.chapter-nav{top:62px;margin:0 -10px;padding:0 10px 10px}.fate-book{border-left:0;border-right:0}.result-hero{padding:76px 18px}.pillars{gap:4px;margin-top:38px}.pillar{padding:15px 2px 13px}.pillar-glyphs{gap:3px}.hero-seal{width:52px;right:18px;bottom:18px}.hero-seal span{font-size:24px}.overview-section,.letter-section,.chapters{padding:44px 20px}.section-heading{grid-template-columns:44px 1fr;gap:12px;margin-bottom:26px}.section-heading>span{width:38px}.overview-card{min-height:108px;padding:17px 12px}.element-chart{gap:5px;min-height:185px;padding:22px 5px 0}.element-item{height:160px}.letter-paper{padding:34px 24px}.chapter{padding:24px 20px}.chapter-head{align-items:flex-start;flex-direction:column-reverse;gap:5px}.chapter-body{font-size:13px;line-height:2}.result-actions{left:12px;right:12px;justify-content:center}.result-actions button{flex:1}.dialog-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{body{color:#111;background:#fff}#mist,.paper-grain,.vignette,.result-topbar,.chapter-nav,.result-actions,.share-dialog{display:none!important}.scene:not([data-scene=result]){display:none!important}.result-scene{padding:0;background:#fff}.result-backdrop{display:none}.result-shell{width:100%;padding:0}.result-layout{display:block}.fate-book{border:0;box-shadow:none}.result-hero{color:#111;background:#f2ede3}.result-hero h1 em{color:#7a5d29}.chapter{break-inside:avoid}}
.scene:not(.is-active){display:none}.result-layout,.fate-book,.chapter-nav,.nav-list{min-width:0}.chapter-nav,.nav-list{max-width:100%}.nav-list{width:100%}
@media(max-width:680px){.moon{top:5vh;left:82%;width:30vw}.cover-kicker{color:#e6b85f;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 14px rgba(0,0,0,.72)}}


/* 原创作品：炼金术士 (The Alchemist)，未经授权请勿转载或再发布 */
.author-watermark{position:fixed;z-index:70;pointer-events:none;user-select:none;color:rgba(224,201,152,.5);font-family:var(--sans);font-size:10px;line-height:1;letter-spacing:.18em;text-shadow:0 1px 4px rgba(0,0,0,.7);opacity:0;transition:opacity .35s ease;white-space:nowrap}
.author-watermark.is-ready{opacity:.48}
.author-watermark.is-fallback{opacity:.3}
.author-watermark.is-bottom-left{left:14px;bottom:max(12px,env(safe-area-inset-bottom))}
.author-watermark.is-bottom-right{right:14px;bottom:max(12px,env(safe-area-inset-bottom))}
.author-watermark.is-top-right{right:14px;top:max(12px,env(safe-area-inset-top))}
.author-watermark.is-top-left{left:14px;top:max(12px,env(safe-area-inset-top))}


/* Windows readability fixes */
@media(min-width:981px){.chapter-nav{color:#5a4b3f}.nav-title{color:#8a725b;border-bottom-color:rgba(112,88,58,.22)}.nav-list a{color:#6d5d4f}.nav-list a:hover,.nav-list a.is-active{color:#1f4436}.nav-list a::before{background:#9d312d}}
.number-grid input{min-width:0;width:100%;height:56px;padding:0 14px;border:1px solid rgba(101,80,54,.28);border-radius:2px;color:#18211d!important;background:#fff!important;color-scheme:light;font-size:18px;appearance:textfield;-moz-appearance:textfield}
.number-grid input::-webkit-outer-spin-button,.number-grid input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.number-grid input:focus{outline:0;border-color:var(--cinnabar);box-shadow:0 0 0 3px rgba(157,49,45,.08)}
.synastry-person .segmented{grid-template-columns:1fr 1fr;margin-top:2px}.synastry-person .segmented span{height:52px}


/* About page */
.about-trigger{position:fixed;right:18px;top:16px;z-index:76;padding:7px 10px;border:1px solid rgba(224,201,152,.28);color:rgba(246,237,221,.76);background:rgba(10,15,13,.74);backdrop-filter:blur(10px);cursor:pointer;font-family:var(--sans);font-size:10px;letter-spacing:.16em;transition:.25s ease}
.about-trigger:hover{color:#17221c;border-color:var(--gold-300);background:var(--gold-300);transform:translateY(-1px)}
.about-dialog{width:min(620px,calc(100% - 28px));max-height:calc(100svh - 30px);padding:0;overflow:auto;border:1px solid rgba(112,88,58,.28);color:var(--ink-800);background:#f7efe0;box-shadow:0 34px 100px rgba(0,0,0,.5)}
.about-dialog::backdrop{background:rgba(3,7,5,.78);backdrop-filter:blur(8px)}
.about-card{position:relative;padding:34px}
.about-kicker{color:var(--cinnabar);font-family:var(--sans);font-size:11px;letter-spacing:.28em}
.about-card h2{margin-top:8px;font-size:38px;font-weight:520;letter-spacing:.12em}
.about-intro{margin-top:14px;color:#776653;font-size:13px;line-height:1.9}
.about-meta{margin-top:24px;border-top:1px solid rgba(112,88,58,.14)}
.about-meta>div{display:grid;grid-template-columns:72px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid rgba(112,88,58,.12)}
.about-meta dt{color:#9a8062;font-family:var(--sans);font-size:11px;letter-spacing:.12em}
.about-meta dd{color:#4f4438;font-size:12px;line-height:1.75;overflow-wrap:anywhere}
.about-third-party{margin-top:18px;padding:12px 14px;border-left:2px solid rgba(74,109,91,.45);color:#6a6257;background:rgba(129,148,127,.08);font-size:11px;line-height:1.75}
.about-done{display:block;min-width:120px;min-height:44px;margin:24px auto 0;border:1px solid var(--jade-700);color:var(--paper-50);background:var(--jade-700);cursor:pointer}
.about-close{position:absolute;right:18px;top:14px;width:34px;height:34px;border:0;color:#806f5d;background:transparent;cursor:pointer;font-size:24px;line-height:1}
@media(max-width:680px){.about-trigger{right:max(10px,calc(env(safe-area-inset-right) + 10px));top:max(10px,calc(env(safe-area-inset-top) + 10px));padding:6px 9px}.about-card{padding:28px 20px 24px}.about-meta>div{grid-template-columns:1fr;gap:4px}.about-card h2{font-size:32px}}
\n.about-greeting{margin:16px 0 0;color:#6d5b48;font-size:12px;letter-spacing:.12em}\n\n.about-intro span{display:block;margin-top:3px;color:#9d312d;font-size:14px;letter-spacing:.24em}\n