/* 01 · 与欢迎舞台共用纸幕和配色，移除旧稻田/枝叶/角色场景。 */
body[data-route=verify]{background:#e8e4de;color:#2d4755;overflow-x:hidden;}
body[data-route=verify] :is(.ginkgo-canopy,.ambient,#cursor-glow,#guide,.site-footer){display:none!important;}
body[data-route=verify] #main{max-width:none;padding:0;margin:0;}
body[data-route=verify] .site-header{height:82px;padding:26px 4.5%;max-width:none;background:none;border:0;}
body[data-route=verify] .brand{color:#2d4755;font:400 16px Georgia,serif;letter-spacing:.09em;}
body[data-route=verify] .quiet-button{color:#817971;}
body[data-route=verify] .site-header .nav-link{display:none;}
.paper-verification{position:relative;display:block;width:100%;max-width:none;margin:0;isolation:isolate;min-height:calc(100svh - 82px);padding:26px 5% 35px!important;background:radial-gradient(ellipse at 54% 55%,#f9f6ed,#e8e4de 78%);color:#2d4755;overflow:hidden;}
.paper-verification:before{display:none;}
.paper-verification .tarot-backdrop{position:absolute;inset:-82px 0 0;}
.paper-verification .tarot-paper-platform{opacity:.28;transform:translateY(55px);}
.paper-verification .tarot-paper-wings{opacity:.55;}
.paper-verification .tarot-paper-scrap{animation-duration:35s;}
.paper-verification .back-link{position:relative;z-index:2;font:11px/1.7 "Noto Serif SC",serif;color:#8a7969;letter-spacing:.09em;}
.paper-verify-intro{text-align:center;margin:24px 0 43px;}
.paper-verify-intro>span{font:9px/1.8 Georgia,serif;letter-spacing:.2em;color:#977d69;}
.paper-verify-intro h1{font:400 clamp(25px,3vw,38px)/1.7 "Noto Serif SC",serif;letter-spacing:.08em;margin:12px 0 7px;}
.paper-verify-intro>p{font:11px/1.9 "Noto Serif SC",serif;letter-spacing:.15em;color:#9c8c7c;margin:0;}
/* 02 · 大纸票左右分区，虚线折痕和齿孔属于票面，内容不随边角裁切。 */
.paper-ticket{position:relative;display:grid;width:100%;grid-template-columns:26% minmax(0,1fr);max-width:1040px;margin:0 auto;isolation:isolate;background:linear-gradient(112deg,#f7f2e6,#eee7d8);border:1px solid #bcaf99;box-shadow:5px 7px 0 #d5cbbb,0 24px 50px #5d503c18;}
.paper-ticket:before{content:'';position:absolute;inset:7px;border:1px solid #c7bca955;pointer-events:none;z-index:-1;}
.paper-ticket:after{content:'';position:absolute;left:26%;top:0;bottom:0;border-left:1px dashed #b9ab9399;pointer-events:none;}
.paper-ticket-stub{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 22px 30px;background:linear-gradient(130deg,#e8dfce55,#dcd3be33);}
.paper-ticket-stub:before,.paper-ticket-stub:after{content:'';position:absolute;right:-10px;width:20px;height:20px;border:1px solid #bcae97;border-radius:50%;background:#ebe6dc;z-index:2;}
.paper-ticket-stub:before{top:-11px;clip-path:inset(50% 0 0);}.paper-ticket-stub:after{bottom:-11px;clip-path:inset(0 0 50%);}
.stub-edition{font:9px/1.8 Georgia,serif;letter-spacing:.16em;color:#9d8471;}
.stub-picture{width:158px;height:180px;margin:22px 0 5px;}
.stub-picture svg{width:100%;height:100%;}
.paper-ticket-stub h2{font:400 27px/1.6 "Noto Serif SC",serif;letter-spacing:.2em;margin:6px 0;}
.paper-ticket-stub p{font:10px/2 "Noto Serif SC",serif;letter-spacing:.1em;color:#a18a73;margin:0;}
.stub-seal{display:grid;place-items:center;width:34px;height:34px;margin:24px 0;background:#86534d;color:#ecdcc6;border:1px solid #a47a64;transform:rotate(-7deg);font:28px Georgia,serif;}
.stub-serial{margin-top:auto;padding-top:17px;color:#9c8972;letter-spacing:3px;font:20px/1.4 Georgia,serif;}
.stub-serial small{display:block;font:7px/2 Georgia,serif;letter-spacing:.12em;}
/* 03 · 右侧以索引签切换两种凭证，小纸页在票面内部展开。 */
.paper-ticket .paper-ticket-form{position:relative;z-index:1;min-width:0;max-width:none;margin:0;padding:32px 48px 27px;border:0;border-radius:0;background:none;box-shadow:none;transform:none;}
.paper-ticket-form:before{display:none;}
.paper-form-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.paper-section-number{font:9px/1.8 "Noto Serif SC",serif;letter-spacing:.1em;color:#9f8770;}
.paper-ticket-form .demo-badge{font-size:8px;border:1px solid #c5b7a1;color:#a28c73;background:none;border-radius:0;padding:3px 6px;}
.paper-ticket-form>h2{font:400 25px/1.7 "Noto Serif SC",serif;letter-spacing:.08em;margin:15px 0 4px;color:#2d4755;}
.paper-form-caption{font:11px/1.8 "Noto Serif SC",serif;color:#9b8c7b;margin:0 0 25px;}
.credential-tabs{display:flex;gap:8px;border-bottom:1px solid #c6b9a1;margin-bottom:0;padding-right:20px;}
.credential-tabs button{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#ded6c6;border:1px solid #c6b9a1;border-bottom:0;color:#96836d;position:relative;top:1px;font:12px/1.6 "Noto Serif SC",serif;cursor:pointer;clip-path:polygon(0 0,90% 0,100% 23%,100% 100%,0 100%);}
.credential-tabs button small{font:8px Georgia,serif;opacity:.6;margin-left:6px;}
.credential-tabs button[aria-selected=true]{background:#faf6ec;color:#2d4755;padding-bottom:14px;}
.credential-tabs button:focus-visible{outline:2px solid #8f6653;outline-offset:-4px;}
.credential-pages{background:#faf6ec99;border-bottom:1px solid #d2c6b355;min-height:210px;}
.credential-page{padding:24px 22px 18px;animation:credential-page-in .45s both;}
.credential-page[hidden]{display:none;}
.credential-page label{font:11px/1.7 "Noto Serif SC",serif;color:#8e7963;margin:0;display:block;}
.paper-ticket-form .code-field{margin:10px 0 0;display:flex;align-items:center;gap:12px;background:none;border:0;border-bottom:1px solid #c1b29a;box-shadow:none;padding:7px 0 11px;border-radius:0;}
.paper-ticket-form .code-field>span{color:#b19877;font-size:23px;}
.paper-ticket-form .code-field input{width:100%;min-width:0;padding:0;background:none;border:0;color:#2d4755;font:17px/1.8 Georgia,serif;letter-spacing:.08em;outline:none;}
.paper-ticket-form .code-field input::placeholder{color:#b5aa97;font-size:13px;letter-spacing:.04em;}
.paper-ticket-form .code-field:focus-within{border-bottom-color:#86534d;box-shadow:0 2px 0 #9e715b16;}
.paper-ticket-form .demo-help{font:9px/1.9 "Noto Serif SC",serif;color:#a08d76;margin:15px 0 0;}
.paper-ticket-form .demo-help button{font:10px Georgia,serif;color:#86534d;border:0;border-bottom:1px solid #b79c7a77;background:none;padding:4px;cursor:pointer;}
.paper-ticket-form .demo-help button span{font:8px "Noto Serif SC",serif;}
.paper-ticket-form .upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;border:1px dashed #bfae93;background:#f0eadf;gap:5px;border-radius:0;padding:10px;}
.paper-ticket-form .upload-zone input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;}
.paper-ticket-form .upload-zone:focus-within{outline:2px solid #94675c;outline-offset:3px;}
.paper-file-icon{font:33px/1 Georgia,serif;color:#a17d61;transform:rotate(-12deg);}
.paper-ticket-form .upload-zone strong{font:12px/1.7 "Noto Serif SC",serif;color:#536770;max-width:100%;overflow-wrap:anywhere;}
.paper-ticket-form .upload-zone>span:not(.paper-file-icon){font-size:10px;color:#9b8771;}
.paper-ticket-form .upload-zone small{font-size:8px;color:#aa9b88;}
.paper-ticket-form .upload-zone:is(.dragging,.has-file){background:#e7e6d9;border-color:#8d9d96;}
.paper-ticket-form .file-row{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:9px;line-height:1.7;color:#9c8b75;}
.paper-ticket-form .file-row button{color:#86534d;border:0;background:none;font-size:9px;cursor:pointer;}
.paper-ticket-form .form-error{font:11px/1.8 "Noto Serif SC",serif;color:#95594c;margin:9px 0 0;min-height:0;}
.paper-ticket-form .form-error:empty{display:none;}
.paper-verification-status{font:10px/1.8 "Noto Serif SC",serif;color:#9e8a73;min-height:18px;margin:13px 0;}
/* 04 · 纸扣和提交纸签延续欢迎页按钮；印章和光丝只在递交阶段出现。 */
.paper-ticket-submit{display:flex;align-items:center;gap:14px;width:100%;padding:13px 19px;border:1px solid #bba68c;background:#eee5d4;color:#2d4755;box-shadow:2px 3px 0 #d0c2ab;text-align:left;cursor:pointer;}
.submit-paper-seal{display:grid;place-items:center;flex-shrink:0;width:33px;height:33px;background:#86534d;color:#edddc6;transform:rotate(-7deg);font:27px Georgia,serif;}
.paper-ticket-submit>span:nth-child(2){display:flex;flex-direction:column;gap:4px;}
.paper-ticket-submit small{font:8px/1.4 "Noto Serif SC",serif;letter-spacing:.1em;color:#a08a6f;}
.paper-ticket-submit strong{font:400 14px/1.6 "Noto Serif SC",serif;letter-spacing:.13em;}
.paper-ticket-submit i{margin-left:auto;font:22px Georgia,serif;color:#996e57;}
.paper-ticket-submit:hover:not(:disabled){background:#e6dbc5;transform:translateY(-1px);}
.paper-ticket-submit:focus-visible{outline:2px solid #94675c;outline-offset:4px;}
.paper-ticket-submit:disabled{cursor:default;opacity:.6;}
.paper-demo-note{font:8px/1.9 "Noto Serif SC",serif;color:#a89985;margin:15px 0 0;}
.paper-verify-footnote{text-align:center;font:9px/1.9 "Noto Serif SC",serif;letter-spacing:.13em;color:#a69984;margin:30px 0 0;}
.paper-verification-thread{position:absolute;z-index:3;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;opacity:0;fill:none;stroke:#b18a61;stroke-width:1;}
.paper-verification-thread path{stroke-dasharray:6 9;animation:paper-verify-energy 1.6s linear infinite;}
.paper-verification-thread circle{fill:#d7b478;stroke:none;offset-path:path('M500 -90C330 -15 420 105 625 230');animation:paper-verify-packet 1.2s ease-in-out infinite;}
.paper-verification-thread :is(path,circle){animation-play-state:paused;}
.paper-verification[data-ticket-phase=checking] .paper-verification-thread :is(path,circle){animation-play-state:running;}
.paper-verification[data-backdrop-motion=paused] :is(.tarot-paper-scrap,.paper-verification-thread path,.paper-verification-thread circle){animation-play-state:paused;}
.paper-admit-stamp{position:absolute;z-index:4;left:62%;top:39%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:170px;height:170px;border:3px double #95584d;border-radius:50%;color:#95584d;background:#f2e8d9df;opacity:0;pointer-events:none;transform:translate(-50%,-50%) rotate(-16deg) scale(1.5);}
.paper-admit-stamp strong{font:400 23px/1.7 "Noto Serif SC",serif;letter-spacing:.15em;border-top:1px solid #95584d77;border-bottom:1px solid #95584d77;margin:8px 0;}
.paper-admit-stamp small,.paper-admit-stamp>span{font:7px/1.7 Georgia,serif;letter-spacing:.1em;}
.paper-verification[data-ticket-phase=checking] .paper-verification-thread{opacity:.8;}
.paper-verification[data-ticket-phase=checking] .credential-pages{transform:translateY(-7px) rotate(-.4deg);box-shadow:0 14px 20px #63533b15;transition:transform .7s,box-shadow .7s;}
.paper-verification[data-ticket-phase=accepted] .paper-admit-stamp{animation:paper-verify-stamp .6s both;}
.paper-verification[data-ticket-phase=rejected] .credential-pages{animation:paper-verify-shake .45s both;}
@keyframes credential-page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes paper-verify-energy{to{stroke-dashoffset:-90}}
@keyframes paper-verify-packet{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes paper-verify-stamp{0%{opacity:0;transform:translate(-50%,-50%) rotate(-16deg) scale(1.5)}60%{opacity:.9;transform:translate(-50%,-50%) rotate(-16deg) scale(.96)}100%{opacity:.86;transform:translate(-50%,-50%) rotate(-16deg) scale(1)}}
@keyframes paper-verify-shake{0%,100%{transform:none}25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}
/* 手机把票根折到上沿，仍是一张完整凭证，输入区保留足够空间。 */
@media(max-width:700px){
 body[data-route=verify] .site-header{height:64px;padding:18px 5%;}body[data-route=verify] .brand{font-size:13px;}
 .paper-verification{min-height:calc(100svh - 64px);padding:18px 5% 28px!important;}
 .paper-verify-intro{margin:24px 0 27px;}.paper-verify-intro>span{font-size:7px;}.paper-verify-intro h1{font-size:23px;}.paper-verify-intro>p{font-size:9px;}
 .paper-ticket{display:block;max-width:470px;}.paper-ticket:after{display:none;}
 .paper-ticket-stub{display:grid;grid-template-columns:65px 1fr auto;grid-template-rows:auto auto;padding:20px 22px;gap:0 15px;text-align:left;border-bottom:1px dashed #b9ab9399;}
 .stub-picture{grid-column:1;grid-row:1/3;width:65px;height:75px;margin:0;}.stub-edition{grid-column:2;grid-row:1;font-size:8px;align-self:end;}
 .paper-ticket-stub h2{grid-column:2;grid-row:2;font-size:22px;margin:0;align-self:start;}.paper-ticket-stub p,.stub-serial{display:none;}
 .stub-seal{grid-column:3;grid-row:1/3;margin:0;width:29px;height:29px;font-size:24px;}
 .paper-ticket-stub:before,.paper-ticket-stub:after{top:auto;bottom:-10px;width:18px;height:18px;clip-path:none;}
 .paper-ticket-stub:before{left:-10px;right:auto;clip-path:inset(0 0 0 50%);}.paper-ticket-stub:after{right:-10px;clip-path:inset(0 50% 0 0);}
 .paper-ticket .paper-ticket-form{padding:23px 22px 23px;}.paper-ticket-form>h2{font-size:22px;margin-top:11px;}.paper-form-caption{font-size:10px;margin-bottom:20px;}
 .credential-tabs{gap:5px;padding-right:0;}.credential-tabs button{flex:1;gap:5px;padding:10px 8px;font-size:10px;white-space:nowrap;}.credential-tabs button small{margin-left:auto;font-size:7px;}
 .credential-page{padding:19px 13px 17px;}.credential-pages{min-height:170px;}.paper-ticket-form .demo-help button{display:inline-block;margin-top:3px;}
 .paper-ticket-submit{padding:12px;gap:11px;}.paper-ticket-submit strong{font-size:13px;}.paper-demo-note{font-size:8px;}
 .paper-admit-stamp{left:55%;top:60%;width:145px;height:145px;}.paper-admit-stamp strong{font-size:20px;}
 .paper-verify-footnote{font-size:8px;margin-top:24px;}
}
/* 全局与页面开关一致；减少动画保留反馈状态，去掉移动和盖章缩放。 */
.paper-verification[data-motion=off] *{animation:none!important;transition:none!important;}
.paper-verification[data-motion=off][data-ticket-phase=accepted] .paper-admit-stamp{opacity:.86;transform:translate(-50%,-50%) rotate(-16deg);}
@media(prefers-reduced-motion:reduce){.paper-verification *{animation:none!important;transition:none!important;}}
