:root{--paper:#f4ead7;--paper-2:#ead6b3;--red:#9f2f2a;--red-dark:#681d1b;--gold:#c59645;--jade:#2d6f62;--ink:#25201b;--muted:#796b5e;--radius:22px;--radius-sm:14px;--shadow:0 18px 50px #4a251424;--sans:"PingFang SC","Microsoft YaHei",sans-serif;--serif:"STSong","Songti SC",serif}*{box-sizing:border-box}html{background:#2a211c}body{color:var(--ink);font-family:var(--sans);background:var(--paper);overscroll-behavior:none;margin:0}button{font:inherit}img{max-width:100%;display:block}.page{background:linear-gradient(145deg,#fffaf0 0%,var(--paper) 52%,#f1dfbd 100%);max-width:600px;min-height:100dvh;padding:env(safe-area-inset-top) 18px calc(28px + env(safe-area-inset-bottom));margin:auto;position:relative;overflow:hidden}.pattern-bg{opacity:.72;pointer-events:none;background:linear-gradient(90deg,#0000 8%,#875b380b 8.2%,#0000 8.4% 91.6%,#875b380b 91.8%,#0000 92%),radial-gradient(circle at 82% 12%,#c4913721,#0000 22%),repeating-linear-gradient(120deg,#0000 0 58px,#57301e09 59px 60px);position:absolute;top:0;bottom:0;left:0;right:0}.brand-header{z-index:5;min-height:76px;color:var(--ink);align-items:center;gap:10px;display:flex;position:relative}.brand-mark{background:url(/assets/brand/brand-mark.png) 50%/contain no-repeat;flex:0 0 43px;width:43px;height:43px;display:block}.brand-copy{gap:2px;line-height:1;display:grid}.brand-wordmark{object-fit:contain;object-position:left center;width:112px;height:30px}.brand-copy small{letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:8px}.icon-btn{width:38px;height:38px;color:var(--ink);font:23px/1 var(--sans);cursor:pointer;background:#fff9;border:1px solid #54362321;border-radius:50%;flex:0 0 38px}.eyebrow{color:var(--red);letter-spacing:2.2px;margin:0;font-size:10px;font-weight:700}.btn{border:1px solid var(--red);letter-spacing:.8px;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:54px;margin-top:12px;padding:13px 20px;font-weight:700;transition:transform .2s,box-shadow .2s;display:flex}.btn:active{transform:scale(.985)}.primary{color:#fff;background:linear-gradient(100deg,#a22f2b,#7c211e);box-shadow:0 12px 28px #78231e3b}.primary:disabled{opacity:.38;box-shadow:none;cursor:not-allowed}.secondary{color:var(--red);background:#fffdf761}.home{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:linear-gradient(#f5e7d4 0%,#fbf5e9 72%,#f8efe1 100%)}.landing{z-index:1;min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));text-align:center;grid-template-rows:auto 1fr auto;padding:clamp(28px,6.5dvh,58px) 4px clamp(14px,2.8dvh,26px);display:grid;position:relative}.landing:before{content:"SHENWEN · 01";color:#4e392a57;font:8px/1 var(--sans);letter-spacing:2.1px;writing-mode:vertical-rl;position:absolute;top:26px;left:-1px}.landing:after{content:"";background:linear-gradient(90deg,var(--gold),transparent);width:28px;height:1px;position:absolute;top:clamp(24px,6dvh,56px);right:2px}.landing-brand{align-content:start;justify-items:center;width:min(100%,330px);margin:0 auto;padding:21px 20px 23px;display:grid;position:relative}.landing-brand:before,.landing-brand:after{content:"";z-index:-1;background:#fff9ef38;border:1px solid #7c573313;position:absolute;top:0;bottom:0;left:0;right:0}.landing-brand:before{transform:translate(-10px,10px)}.landing-brand:after{background:0 0;transform:translate(9px,-8px)}.landing-mark{place-items:center;width:88px;height:82px;display:grid}.landing-brand .brand-mark{flex-basis:88px;width:88px;height:82px}.landing-brand>img{object-fit:contain;width:min(68vw,265px);height:64px;margin-top:13px}.landing-slogan{text-align:left;min-width:126px;color:var(--ink);font:700 clamp(24px,7.3vw,30px)/1.2 var(--serif);letter-spacing:4px;place-self:center;gap:1px;padding:18px 12px;display:grid}.landing-slogan:before{content:"";background:var(--red);width:26px;height:2px;margin:0 0 12px 2px}.landing-slogan span{white-space:nowrap;display:block}.landing-action{align-self:end;width:100%;margin:0 auto}.landing-action .btn{min-height:58px;margin-top:0;box-shadow:0 16px 36px #82271f3d}.landing-action>p{color:#5b4c3fa8;letter-spacing:.2px;margin:13px 0 0;font-size:10px}.intro{text-align:center;padding:22px 4px 18px}.seal{color:#fff;background:var(--red);width:38px;height:38px;font-family:var(--serif);place-items:center;margin:2px auto 12px;display:grid;box-shadow:5px 5px #e2c68e}.intro h1,.source h1{font:700 clamp(40px,12vw,64px)/1.08 var(--serif);letter-spacing:2px;margin:7px 0 16px}.blessing{font:23px/1.65 var(--serif);margin:0}.portrait{height:325px;box-shadow:var(--shadow);background:linear-gradient(145deg,#a3302b,#e7bd77);border-radius:168px 168px 24px 24px;margin:23px 0 19px;overflow:hidden}.portrait img{object-fit:contain;width:100%;height:100%}.intro>p:last-of-type{color:var(--muted);margin:0;font-size:14px;line-height:1.85}.dark{color:#f8edda;background:radial-gradient(circle at 88% 8%,#6b3520 0,#0000 25%),linear-gradient(145deg,#171715,#242019)}.dark .brand-header{padding:env(safe-area-inset-top) 18px 0;color:var(--ink);background:#fff9edf5;margin:0 -18px;box-shadow:0 8px 24px #0003}.dark .brand-copy small{color:var(--muted)}.dark .icon-btn{color:var(--ink);background:#fff;border-color:#6e493124}.dark .eyebrow{color:#e7b968}.scanner{text-align:center;max-width:410px;margin:auto;padding:24px 0 12px}.scanner h1{font:700 clamp(32px,9.5vw,40px)/1.18 var(--serif);text-wrap:balance;max-width:350px;margin:8px auto 10px}.scanner-lead{color:#d9cbbb;max-width:310px;margin:0 auto 20px;font-size:13px;line-height:1.7;display:grid}.camera-frame{aspect-ratio:4/5;background:radial-gradient(circle,#25251f,#090a09);border:1px solid #e7b96888;border-radius:24px;position:relative;overflow:hidden;box-shadow:0 16px 38px #0008}.camera-frame:before,.camera-frame:after{content:"";z-index:3;border-color:#efc66e;width:24px;height:24px;position:absolute}.camera-frame:before{border-top:2px solid;border-left:2px solid;top:15px;left:15px}.camera-frame:after{border-bottom:2px solid;border-right:2px solid;bottom:15px;right:15px}.camera-frame video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.camera-frame .guide{z-index:1;object-fit:contain;opacity:.18;mix-blend-mode:screen;pointer-events:none;width:82%;height:82%;position:absolute;top:9%;bottom:9%;left:9%;right:9%}.frame-label{z-index:3;color:#f4ddad;white-space:nowrap;background:#15130dbd;border-radius:99px;padding:6px 10px;font-size:10px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.scan-line{z-index:2;background:#f5ca6c;height:1px;animation:2.4s ease-in-out infinite alternate scan;position:absolute;top:18%;left:10%;right:10%;box-shadow:0 0 16px #f5ca6c}.recognition-status{color:#ebd9be;justify-content:center;align-items:center;min-height:52px;padding:12px 16px;font-size:13px;display:flex}.recognition-status:before{content:"✦";color:#e7b968;margin-right:8px}.file-btn{color:#f2d5a2;background:0 0;border-color:#d5b574;display:flex}.file-btn input{opacity:0;pointer-events:none;position:absolute}.scan-tips{flex-wrap:wrap;justify-content:center;gap:7px;margin:14px 0 0;padding:0;list-style:none;display:flex}.scan-tips li{color:#bfb19f;border:1px solid #f5d89a2e;border-radius:99px;padding:5px 8px;font-size:10px}.switch-prompt{text-align:left;background:#fff1;border:1px solid #e5b85c66;border-radius:16px;margin:0 0 14px;padding:16px}.switch-prompt b{color:#f2cb7e}.switch-prompt p{color:#dfd2c0;margin:7px 0 12px;font-size:12px;line-height:1.65}.switch-prompt .btn{min-height:46px;margin-top:8px;font-size:12px}.debug-targets{border-top:1px dashed #fff2;margin-top:16px;padding-top:8px}.debug-targets .btn{min-height:44px;margin-top:7px;font-size:11px}.privacy{color:#b4a696;max-width:310px;margin:18px auto 0;font-size:11px;line-height:1.7}.notice{color:inherit;text-align:left;background:#fff2;border-radius:14px;flex-direction:column;gap:6px;margin:0 0 12px;padding:14px;display:flex}.notice.error{color:#ffe1dd;background:#9f2f2a42}.notice b{font-size:13px}.craft{padding-bottom:36px}.craft .brand-header{border-bottom:1px solid #5436231f}.craft-head{text-align:center;padding:25px 0 11px}.craft-head span{color:var(--red);letter-spacing:1px;background:#ead9bd;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700;display:inline-block}.craft-head h1{font:34px/1.2 var(--serif);margin:9px 0 6px}.craft-head p{color:var(--muted);margin:0;font-size:13px}.progress{max-width:390px;margin:0 auto}.progress>div{justify-content:space-between;font-size:12px;display:flex}.progress i{background:#d8c7ac;border-radius:9px;height:5px;margin:8px 0 14px;display:block;overflow:hidden}.progress em{background:linear-gradient(90deg,var(--red),#d2914d);height:100%;transition:width .3s;display:block}.wood-stage{aspect-ratio:557/800;width:min(100%,360px);box-shadow:var(--shadow);touch-action:none;background:#b17b4c;border-radius:18px;margin:0 auto 18px;position:relative;overflow:hidden}.wood-stage>img:first-child{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.ink,.reveal-color{object-fit:contain;mix-blend-mode:multiply;width:92%;height:92%;position:absolute;top:4%;bottom:4%;left:4%;right:4%}.faint{opacity:.32}.reveal-color{z-index:1;mix-blend-mode:normal;transition:opacity .4s}.paper,.peel{z-index:2;color:var(--red);background:linear-gradient(90deg,#f7edd7f0,#fffaedfa);place-items:center;font-weight:700;transition:opacity .15s,width .15s;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.peel{left:auto;box-shadow:-10px 0 20px #5e3c2233}.chisel{z-index:3;color:#fff;background:var(--red);box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:99px;padding:13px 22px;position:absolute;bottom:7%;left:50%;transform:translate(-50%)}.carve-highlight{z-index:2;border:2px solid var(--gold);pointer-events:none;border-radius:50%;width:40%;height:15%;animation:1.2s infinite pulse;position:absolute;box-shadow:0 0 0 8px #e9bd5f25,0 0 24px #e9bd5f88}.regions{z-index:2;position:absolute;top:4%;bottom:4%;left:4%;right:4%}.regions button{opacity:.6;background:0 0;border:1px dashed #9f2f2a59;border-radius:38%;position:absolute}.regions button.current{border:2px solid var(--gold);animation:1.2s infinite pulse;box-shadow:0 0 0 4px #c596453d}.regions button.filled{opacity:.16;border-color:#0000}.palette{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.palette button{cursor:pointer;border:2px solid #0000;border-radius:12px;height:44px;font-size:12px;font-weight:700}.palette button.selected{border-color:var(--gold);box-shadow:0 0 0 2px white,0 0 0 4px var(--gold)}.try{color:var(--red);text-align:center;font-size:13px}.completion{text-align:center;padding:25px 0 6px;position:relative}.completion>img{z-index:1;object-fit:contain;width:100%;height:448px;box-shadow:var(--shadow);background:linear-gradient(145deg,#ecd3a3,#fff7e8);border-radius:176px 176px 26px 26px;animation:1.2s both reveal;position:relative}.completion .eyebrow,.completion h1,.completion .blessing{z-index:2;position:relative}.completion h1{font:52px/1 var(--serif);margin:0}.aura{z-index:0;background:radial-gradient(circle,#f3c96c66,#0000 67%);border-radius:50%;height:390px;animation:3s ease-in-out breathe;position:absolute;top:8%;left:9%;right:9%}.spark{background:var(--gold);z-index:3;width:8px;height:8px;box-shadow:0 0 14px var(--gold);border-radius:50%;animation:2s 2 float;position:absolute}.s1{top:25%;left:18%}.s2{animation-delay:.7s;top:45%;right:16%}.anim-guard .aura{animation:3s ease-in-out guard;box-shadow:inset 0 0 0 2px #d9a94466}.anim-harmony .aura{background:radial-gradient(circle,#efba9866,#0000 68%);animation:3.4s ease-in-out breathe}.anim-progress>img{animation:1.2s both reveal,3s progress-edge}.bottom-bar{display:grid}.text-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:18px}.source{text-align:center;padding-top:23px}.source>p{color:var(--muted)}.source-tabs{background:#e5d3b6;border-radius:99px;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 12px;padding:5px;display:grid}.source-tabs button{color:var(--muted);background:0 0;border:0;border-radius:99px;padding:10px;font-weight:700}.source-tabs button.active{color:var(--red);background:#fffaf1;box-shadow:0 3px 12px #6331191f}.culture-card{text-align:left;box-shadow:var(--shadow);background:#fffaf1;border:1px solid #e9d5b3;border-radius:18px;padding:10px}.culture-card img{object-fit:contain;background:#eadabf;border-radius:12px;width:100%;height:390px}.culture-card div{padding:8px 8px 4px}.culture-card h2{font:24px var(--serif);margin:8px 0}.culture-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.8}.source-placeholder{height:390px;color:var(--muted);background:#e8dac1;border-radius:12px;place-items:center;display:grid}.source-placeholder.small{height:190px}.compare{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;display:grid}.compare figure{background:#fffaf1;border:1px solid #ead7b9;border-radius:14px;margin:0;padding:8px}.compare img{object-fit:contain;width:100%;height:190px}.compare figcaption{padding:8px 3px 1px;font-size:12px;font-weight:700}.source blockquote{font:22px/1.6 var(--serif);color:var(--red);margin:28px 0}@keyframes scan{to{top:80%}}@keyframes pulse{50%{transform:scale(1.03)}}@keyframes reveal{0%{opacity:0;filter:grayscale();transform:scale(.95)}}@keyframes float{50%{transform:translateY(-16px)}}@keyframes breathe{50%{opacity:.7;transform:scale(1.06)}}@keyframes guard{50%{transform:scale(1.04);box-shadow:inset 0 0 0 7px #d9a94422}}@keyframes progress-edge{50%{filter:drop-shadow(0 0 12px #dba43b)}}@media (min-width:601px){body{padding:30px}.page{border-radius:28px;box-shadow:0 30px 100px #0006}}@media (max-width:360px){.page{padding-left:14px;padding-right:14px}.themes{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.scanner h1{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important}}
