:root{--paper:#f7f3ec;--ink:#302b3e;--purple:#645185;--rust:#a4493d;--muted:#857b86;--line:#dfd5c8;--serif:'Songti SC','STSong','Noto Serif CJK SC',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;font-size:16px;line-height:1.75}body:before{content:'';position:fixed;inset:0;z-index:-1;opacity:.3;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='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.18' filter='url(%23n)'/%3E%3C/svg%3E")}button,input,a{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #a897c0;outline-offset:4px}button:disabled{opacity:.45;cursor:default}button{border:0}a{color:var(--purple)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:600}h1{line-height:1.35}button.primary,.download{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:56px;padding:13px 30px;border-radius:12px;background:var(--purple);color:#fffaf0;letter-spacing:2px;text-decoration:none;box-shadow:0 8px 22px #6451851a}.secondary{min-height:48px;background:transparent;color:var(--purple);padding:10px 18px;border:1px solid var(--line);border-radius:10px}.text-btn{min-height:48px;background:none;color:var(--purple);padding:8px 12px}.brand{font-family:var(--serif);font-size:17px;letter-spacing:4px;display:flex;align-items:center;justify-content:center;gap:18px;color:var(--purple)}.brand:before,.brand:after{content:'✤';color:var(--rust);font-size:12px}.home{max-width:900px;margin:auto;text-align:center;padding:36px 24px 24px;position:relative}.edition{font-size:10px;letter-spacing:4px;color:#948879;margin:10px 0 26px}.home h1{font-size:clamp(36px,4.7vw,58px);letter-spacing:5px;margin-bottom:18px;color:#55405e}.flower{color:var(--rust);display:flex;align-items:center;justify-content:center;gap:17px;margin:13px 0}.flower:before,.flower:after{content:'';width:55px;height:1px;background:#c89a83}.sub{font-family:var(--serif);color:#736377;font-size:18px;letter-spacing:1px}.portraits{height:340px;max-width:660px;margin:34px auto 24px;position:relative}.portrait{position:absolute;top:25px;width:34%;margin:0;padding:8px 8px 0;background:#fff9ec;border:1px solid #decdb7;border-radius:15px;box-shadow:0 12px 20px #4d352725;overflow:hidden}.portrait img{display:block;width:100%;height:252px;object-fit:cover;object-position:center 20%;border-radius:9px 9px 0 0}.portrait figcaption{font-family:var(--serif);font-size:23px;line-height:47px;color:#55405e;letter-spacing:4px}.portrait figcaption:before,.portrait figcaption:after{content:'✤';color:var(--rust);font-size:11px;margin:0 9px}.portrait.left{left:3%;transform:rotate(-6deg)}.portrait.right{right:3%;transform:rotate(6deg)}.portrait.center{left:31%;width:38%;top:0;z-index:2}.portrait.center img{height:277px}.home .primary{width:360px;max-width:100%;font-family:var(--serif);font-size:23px}.meta{font-size:14px;color:#817286;letter-spacing:2px;margin:16px 0 8px}.footer{max-width:840px;margin:30px auto 0;padding:20px;text-align:center;border-top:1px solid var(--line);font-size:11px;color:#938b8b;letter-spacing:.5px}.footer button{font-size:12px}.shell{max-width:760px;margin:0 auto;padding:25px 26px 60px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.topbar .brand{font-size:14px;letter-spacing:2px}.eyebrow{color:var(--rust);font-size:12px;letter-spacing:3px;margin:10px 0 16px}.chapter{display:flex;justify-content:space-between;font-size:12px;letter-spacing:2px;color:var(--muted)}progress{width:100%;height:4px;appearance:none;border:0;margin:13px 0 36px;background:#e4dcd1}progress::-webkit-progress-bar{background:#e4dcd1}progress::-webkit-progress-value{background:var(--purple)}.quiz h1{font-size:29px;line-height:1.65;margin-bottom:30px}.options{display:grid;gap:13px}.option{display:flex;text-align:left;align-items:center;gap:20px;width:100%;min-height:70px;border:1px solid #dcd2c6;background:#fffdf8;border-radius:12px;color:var(--ink);padding:16px 20px}.option span{font:19px var(--serif);color:#8e7e99;border-right:1px solid var(--line);padding-right:20px}.option[aria-checked=true]{border-color:var(--purple);background:#eee7f2;box-shadow:0 0 0 1px var(--purple)}.quiz-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:26px}.hint{font-size:12px;color:var(--muted)}.access{max-width:440px;margin:60px auto;background:#fffdf8;border:1px solid var(--line);padding:32px;border-radius:18px;text-align:center}.access h1{font-size:32px}.access input{width:100%;height:62px;border:1px solid var(--line);border-radius:10px;text-align:center;font-size:26px;letter-spacing:8px;margin:15px 0}.access .primary{width:100%}.error{color:var(--rust);font-size:14px;margin:10px 0}.notice{font-size:13px;color:#8c5848;padding:10px 20px;background:#f5e8d9;text-align:center}.result-head{text-align:center}.result-head .eyebrow{margin-top:20px}.result-portrait{width:100%;max-width:440px;display:block;margin:18px auto 25px;border:9px solid #fffaf1;box-shadow:0 12px 35px #4d35271c;border-radius:9px}.result h1{font-size:44px;margin-bottom:0;letter-spacing:8px}.result .title{font-family:var(--serif);color:var(--muted);letter-spacing:4px}.tagline{font:23px/1.6 var(--serif);color:var(--purple);margin:20px 0}.reading{padding:28px 0;border-bottom:1px solid var(--line)}.reading h2{font-size:23px;letter-spacing:2px;color:#5e496c}.reading h2 small{font:11px sans-serif;color:var(--rust);margin-right:14px}.reading p{margin-bottom:12px;line-height:2}.evidence{border-left:2px solid #b1a0bd;padding-left:18px;margin:20px 0}.evidence small{color:var(--muted)}.evidence p{font-family:var(--serif);font-size:18px;margin:6px 0}.close{padding:22px;border:1px solid var(--line);border-radius:12px;margin:20px 0;color:#705b7e}.close img{width:70px;float:left;margin-right:18px;border-radius:5px}.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:30px 0}.actions .primary{flex:1}.future{font-family:var(--serif);font-size:21px}.modal{position:fixed;inset:0;background:#302b3e99;z-index:10;display:grid;place-items:center;padding:20px}.dialog{max-width:540px;width:100%;max-height:90dvh;overflow:auto;padding:25px;border-radius:16px;background:var(--paper);text-align:center}.dialog img{max-width:100%;max-height:60vh;display:block;margin:0 auto 20px}.loading{text-align:center;padding:80px 20px}.reveal{animation:appear .6s ease-out}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(min-width:900px){.home{padding-top:32px}.result{max-width:1000px}.result-layout{display:grid;grid-template-columns:42% 1fr;gap:50px;align-items:start}.result-head{position:sticky;top:20px}.result-portrait{max-height:550px;object-fit:cover}.result .topbar{margin-bottom:35px}}@media(max-width:480px){.home{padding:27px 16px 12px}.brand{font-size:14px;letter-spacing:2px;gap:12px}.edition{margin-bottom:22px}.home h1{font-size:34px;letter-spacing:2px}.sub{font-size:14px;letter-spacing:0}.portraits{height:277px;margin:30px auto 24px}.portrait{width:36%;padding:5px 5px 0;top:20px;border-radius:11px}.portrait.left{left:0}.portrait.right{right:0}.portrait.center{left:29%;width:42%}.portrait img{height:211px}.portrait.center img{height:235px}.portrait figcaption{font-size:19px;line-height:37px;letter-spacing:2px}.portrait figcaption:before,.portrait figcaption:after{font-size:8px;margin:0 3px}.home .primary{font-size:21px;width:100%}.shell{padding:20px 20px 45px}.quiz h1{font-size:25px}.topbar .brand{font-size:12px}.topbar .brand:after,.topbar .brand:before{display:none}.access{margin:22px 0;padding:25px}.result h1{font-size:38px}.footer{margin-top:20px}.actions .primary{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.portrait.left figcaption{text-align:left;padding-left:6px;font-size:20px;letter-spacing:1px}.portrait.right figcaption{text-align:right;padding-right:6px;font-size:20px;letter-spacing:1px}.portrait.left figcaption:before,.portrait.left figcaption:after,.portrait.right figcaption:before,.portrait.right figcaption:after{display:none}@media(max-width:480px){.portrait.left figcaption,.portrait.right figcaption{font-size:18px;letter-spacing:0}}
