:root{--paper:#f5efe6;--card:#fffdf9;--ink:#2c201b;--muted:#817166;--red:#8d3029;--red-dark:#68211d;--gold:#b98a53;--line:#e2d6c9}*{box-sizing:border-box}html{background:#28201c}body{color:var(--ink);background:#28201c;margin:0;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}button{font:inherit}.app-shell{background:radial-gradient(circle at 20% 0,#5b332b 0,#0000 38%),#28201c;min-height:100vh}.phone-canvas{background:var(--paper);width:min(100%,520px);min-height:100vh;margin:0 auto;box-shadow:0 0 80px #00000052}.topbar{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5efe6eb;border-bottom:1px solid #6e52401f;justify-content:space-between;align-items:center;height:68px;padding:0 18px;display:flex;position:sticky;top:0}.brand{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.brand-mark{color:#fff7ec;background:linear-gradient(145deg,#a14137,#6d211d);border-radius:10px 10px 14px;place-items:center;width:37px;height:37px;font:700 21px STKaiti,KaiTi,serif;display:grid;transform:rotate(-2deg);box-shadow:0 5px 14px #66221c33}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.12em;font:700 19px/18px STKaiti,KaiTi,serif}.brand small{color:#8b7a6e;letter-spacing:.13em;margin-top:2px;font-size:9px}.library-pill{color:var(--red);background:#fff9f1;border:1px solid #d8bcb0;border-radius:999px;padding:5px 9px;font-size:9px}.home-page{padding:38px 18px 30px}.hero-simple{padding:0 4px 26px}.eyebrow{color:var(--red);letter-spacing:.15em;margin:0;font-size:11px;font-weight:700}.hero-simple h1{letter-spacing:-.04em;margin:10px 0 13px;font:700 clamp(39px,11vw,51px)/1.12 STKaiti,KaiTi,serif}.hero-simple h1 em{color:var(--red);font-style:normal}.hero-simple>p:last-child{max-width:430px;color:var(--muted);margin:0;font-size:14px;line-height:1.8}.camera-card{width:100%;min-height:255px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:linear-gradient(145deg,#fffdf9,#eee0d0);border:1px solid #d7c1ad;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex;box-shadow:0 18px 42px #462a1b1a}.camera-card:active{transform:scale(.99)}.camera-card strong{margin-top:9px;font:700 22px STKaiti,KaiTi,serif}.camera-card small{color:#927f70;font-size:11px}.camera-orb{background:linear-gradient(145deg,#a7473d,#74251f);border-radius:50%;place-items:center;width:82px;height:82px;display:grid;position:relative;box-shadow:0 13px 28px #75251f47,inset 0 0 0 1px #fff3}.camera-orb:before{content:"";border:2px solid #fff7ed;border-radius:8px;width:39px;height:29px;position:absolute}.camera-orb:after{content:"";border:2px solid #fff7ed;border-radius:50%;width:13px;height:13px;position:absolute}.camera-orb i{border:2px solid #fff7ed;border-bottom:0;border-radius:5px 5px 0 0;width:17px;height:7px;position:absolute;top:22px;left:21px}.photo-tip{border:1px solid var(--line);background:#fffdf9a8;border-radius:16px;gap:12px;margin-top:18px;padding:14px;display:flex}.tip-number{color:#fff;background:#7a4a37;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font:700 12px Georgia,serif;display:grid}.photo-tip strong{font-size:12px}.photo-tip p{color:var(--muted);margin:4px 0 0;font-size:11px;line-height:1.6}.trust-line{color:#766358;justify-content:center;align-items:center;gap:9px;margin-top:23px;font-size:10px;display:flex}.trust-line i{background:#cdbbac;width:18px;height:1px}.privacy{color:#a09186;text-align:center;margin:14px 0 0;font-size:9px}.reading-page{text-align:center;min-height:calc(100vh - 68px);padding:34px 23px}.reading-photo{aspect-ratio:4/5;background:#d9cec3;border-radius:24px;position:relative;overflow:hidden;box-shadow:0 18px 46px #301e1529}.reading-photo img{object-fit:cover;width:100%;height:100%}.reading-photo:after{content:"";background:linear-gradient(#0000 45%,#491c1733);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #fff3}.scan-line{z-index:2;background:linear-gradient(90deg,#0000,#fff5df,#0000);height:2px;animation:2.2s ease-in-out infinite scan;position:absolute;top:14%;left:6%;right:6%;box-shadow:0 0 16px #f6d5a9}@keyframes scan{0%,to{top:12%}50%{top:84%}}.reading-page h1{margin:26px 0 16px;font:700 29px STKaiti,KaiTi,serif}.reading-steps{text-align:left;width:250px;margin:0 auto}.reading-steps p{color:#a29489;align-items:center;gap:10px;margin:11px 0;font-size:12px;display:flex}.reading-steps p:nth-child(2){color:var(--ink);font-weight:700}.reading-steps span{border:1px solid #d7c8bb;border-radius:50%;place-items:center;width:22px;height:22px;font-size:9px;display:grid}.reading-steps .done{color:#6c8260}.reading-steps .done span{color:#fff;background:#718963;border-color:#718963}.loader-dot{animation:.8s linear infinite spin;border:3px solid #eadfd5!important;border-top-color:var(--red)!important}@keyframes spin{to{transform:rotate(360deg)}}.reading-page>small{color:#95867b;margin-top:20px;font-size:10px;display:block}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 68px);padding:30px;display:flex}.error-page>span{width:48px;height:48px;color:var(--red);border:1px solid #ca9a8e;border-radius:50%;place-items:center;font:700 24px Georgia,serif;display:grid}.error-page h1{margin:17px 0 7px;font:700 28px STKaiti,KaiTi,serif}.error-page p{color:var(--muted);margin:0 0 22px;font-size:13px}.main-button{box-shadow:0 9px 20px #6d251f33;color:#fff9f0!important;background:linear-gradient(135deg,#9b3a31,#71231e)!important;border:0!important}.error-page .main-button{border-radius:13px;min-width:190px;min-height:49px}.result-page{padding:18px 15px 105px}.photo-summary{border:1px solid var(--line);background:#fffdf9c7;border-radius:17px;grid-template-columns:92px 1fr;align-items:center;gap:12px;padding:10px;display:grid}.photo-summary img{object-fit:cover;border-radius:11px;width:92px;height:86px}.photo-summary small,.photo-summary strong{display:block}.photo-summary small{color:var(--red);letter-spacing:.12em;font-size:8px}.photo-summary strong{margin-top:4px;font:700 16px STKaiti,KaiTi,serif}.photo-summary p{color:var(--muted);margin:5px 0 0;font-size:9px;line-height:1.5}.demo-banner{background:#fff5df;border:1px solid #dcc499;border-radius:13px;margin-top:11px;padding:11px 12px}.demo-banner strong{color:#765328;font-size:10px}.demo-banner p{color:#8d7658;margin:3px 0 0;font-size:9px;line-height:1.5}.result-intro{padding:25px 3px 18px}.result-intro>span{color:#fff;background:#7b4936;border-radius:999px;padding:5px 9px;font-size:9px}.result-intro h1{margin:13px 0 7px;font:700 29px/1.35 STKaiti,KaiTi,serif}.result-intro p{color:#8d7d72;margin:0;font-size:9px}.opening-card,.script-card,.posting-card{border:1px solid var(--line);background:var(--card);border-radius:18px;margin-bottom:12px;box-shadow:0 7px 22px #43291b0a}.opening-card{background:linear-gradient(145deg,#fffaf5,#f8e9e3);border-color:#d5b9ae;padding:16px}.opening-card>div,.posting-card>div{justify-content:space-between;align-items:center;display:flex}.opening-card small{color:var(--red);letter-spacing:.1em;font-size:9px;font-weight:700}.opening-card button,.posting-card button{color:#765b4c;background:#fffaf3;border:1px solid #d8c7b8;border-radius:8px;padding:5px 9px;font-size:9px}.opening-card>p{margin:13px 0 2px;font:700 20px/1.7 STKaiti,KaiTi,serif}.script-card{padding:17px}.card-title{border-bottom:1px solid #eee5dc;align-items:center;gap:9px;padding-bottom:13px;display:flex}.card-title>span{color:#fff;background:var(--red);border-radius:9px;place-items:center;width:31px;height:31px;font:700 17px STKaiti,KaiTi,serif;display:grid}.card-title strong,.card-title small{display:block}.card-title strong{font-size:12px}.card-title small{color:#928378;margin-top:2px;font-size:8px}.script-text{white-space:pre-line;padding:16px 2px;font:400 17px/2 STKaiti,KaiTi,serif}.copy-button{color:#fff;background:#7c302a;border:0;border-radius:12px;width:100%;min-height:46px;font-weight:700}.shots-section{margin:18px 0 12px}.section-title{justify-content:space-between;align-items:center;margin:0 2px 10px;display:flex}.section-title strong{font:700 18px STKaiti,KaiTi,serif}.section-title small{color:#94857a;font-size:9px}.shot-row{border-top:1px solid #ded2c6;grid-template-columns:30px 1fr;gap:10px;padding:13px 10px;display:grid}.shot-index{color:#fff;background:#7a4a37;border-radius:50%;place-items:center;width:26px;height:26px;font:700 10px Georgia,serif;display:grid}.shot-row small{color:#917e70;font-size:9px;line-height:1.5}.shot-row p{margin:5px 0 0;font:400 14px/1.65 STKaiti,KaiTi,serif}.posting-card{padding:15px}.posting-card strong{font-size:11px}.posting-card>p{white-space:pre-line;color:#6e5b50;margin:12px 0 0;font-size:11px;line-height:1.75}.caution{color:#78665a;background:#ece2d6;border-radius:12px;gap:9px;padding:11px;display:flex}.caution>span{color:#76543f;background:#ddcbb9;border-radius:7px;flex:none;place-items:center;width:25px;height:25px;font:700 13px STKaiti,KaiTi,serif;display:grid}.caution p{margin:1px 0 0;font-size:9px;line-height:1.6}.sticky-actions{z-index:25;width:min(100%,520px);padding:12px 15px calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5efe6f0;border-top:1px solid #6e524021;grid-template-columns:105px 1fr;gap:9px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.sticky-actions button{color:#725d50;background:#fffaf4;border:1px solid #d6c6b8;border-radius:13px;min-height:50px;font-weight:700}.sticky-actions button:disabled{opacity:.65}.toast{z-index:100;color:#fff;background:#2a1d17f0;border-radius:999px;width:max-content;max-width:calc(100% - 34px);padding:10px 14px;font-size:11px;position:fixed;bottom:84px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000038}@media (min-width:700px){.phone-canvas{border-radius:27px;min-height:calc(100vh - 40px);margin-block:20px;overflow:clip}.topbar{border-radius:27px 27px 0 0}}@media (max-width:365px){.home-page{padding-inline:13px}.result-page{padding-inline:12px}.hero-simple h1{font-size:39px}.camera-card{min-height:225px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important}}
