/* Free-tattoo signup page. Uses the brand tokens from theme.css (ink ground, rice text, gold accents). */
.ft-hero figure img{object-fit:cover}
.ft-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:30px 0 14px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold-line)}
.ft-facts div{padding:14px 10px 14px 0;min-width:0}
.ft-facts dt{font-size:12px;letter-spacing:.12em;color:var(--rice-dark)}
.ft-facts dd{margin:4px 0 0;font:400 clamp(22px,3vw,30px)/1.2 'Cinzel','Noto Serif SC',serif;color:var(--gold);font-variant-numeric:tabular-nums}
.ft-scope{font-size:15px;margin-bottom:28px}

.ft-steps{list-style:none;padding:0;margin:30px 0 50px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;counter-reset:step}
.ft-steps li{counter-increment:step;border-top:1px solid var(--gold-line);padding-top:18px;min-width:0}
.ft-steps li::before{content:counter(step,decimal-leading-zero);display:block;font:400 13px/1 'Cinzel',serif;color:var(--gold);letter-spacing:.2em;margin-bottom:14px}
.ft-steps b{display:block;font:400 21px/1.3 'Noto Serif SC',serif;color:var(--rice);margin-bottom:10px}
.ft-steps p{font-size:15px!important;line-height:1.7!important;margin:0}
.ft-how h3{font-size:22px;margin-bottom:14px}
.ft-rules{margin:0;padding-left:1.2em;display:grid;gap:8px;color:var(--rice-dark);max-width:760px}

.ft-signup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:6%;align-items:start}
.ft-aside{position:sticky;top:110px}
.ft-aside p{max-width:380px}
.ft-signup fieldset{border:1px solid var(--gold-line);background:rgba(15,8,2,.45);margin:0;padding:24px;display:grid;gap:18px;min-width:0}
.ft-signup legend{font:400 19px/1 'Noto Serif SC',serif;color:var(--gold);padding:0 8px;letter-spacing:.06em}
.ft-signup label em,.ft-check em{font-style:normal;font-size:12px;color:var(--gold);margin-left:4px}
.ft-field{display:grid;gap:10px;font-size:14px;color:#e0d8c9}
.ft-chips{display:flex;flex-wrap:wrap;gap:8px}
.ft-chip{position:relative;display:block}
.ft-chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%}
.ft-chip span{display:inline-block;padding:8px 15px;border:1px solid rgba(212,175,55,.3);font-size:14px;color:var(--rice-dark);background:rgba(24,16,8,.7);transition:background .25s,color .25s,border-color .25s;user-select:none}
.ft-chip input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.ft-chip input:focus-visible+span{outline:2px solid #edcd8a;outline-offset:3px}
.ft-designs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ft-design{position:relative;display:grid;gap:8px;cursor:pointer;min-width:0}
.ft-design input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.ft-design-img{display:block;aspect-ratio:3/4;background:#fff;border:2px solid transparent;outline:1px solid rgba(212,175,55,.3);transition:border-color .25s,outline-color .25s;position:relative}
.ft-design-img img{width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box;display:block}
.ft-design-name{font-size:14px;color:var(--rice-dark);line-height:1.4}
.ft-design-name b{font:600 13px/1 'Cinzel',serif;color:var(--gold);letter-spacing:.1em;margin-right:6px}
.ft-design input:checked+.ft-design-img{border-color:var(--gold);outline-color:var(--gold)}
.ft-design input:checked+.ft-design-img::after{content:'✓ 已选';position:absolute;top:6px;right:6px;background:var(--gold);color:var(--ink);font-size:12px;padding:3px 8px;font-weight:600}
.ft-design input:checked~.ft-design-name{color:var(--rice)}
.ft-design input:focus-visible+.ft-design-img{outline:2px solid #edcd8a;outline-offset:3px}
.ft-upload{position:relative;display:inline-block;justify-self:start;cursor:pointer}
.ft-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.ft-upload .button{display:inline-block;pointer-events:none}
.ft-upload input:focus-visible+.button{outline:2px solid #edcd8a;outline-offset:3px}
.ft-thumbs{display:flex;flex-wrap:wrap;gap:10px}
.ft-thumbs:empty{display:none}
.ft-thumb{position:relative;width:96px;height:96px;border:1px solid var(--gold-line);background:#111}
.ft-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ft-thumb button{position:absolute;top:2px;right:2px;width:26px;height:26px;border:0;border-radius:50%;background:rgba(0,0,0,.75);color:#fff;font-size:16px;line-height:26px;cursor:pointer;padding:0}
.ft-check{grid-template-columns:20px 1fr;align-items:start;gap:12px;font-size:15px;line-height:1.6}
.ft-check input{width:18px;height:18px;margin:3px 0 0;padding:0;accent-color:var(--gold)}
.ft-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ft-error{color:#ffb4a8;margin:0;min-height:1.4em;font-size:15px}
.ft-signup form .button{justify-self:start;min-width:220px}
.ft-done{border:1px solid var(--gold);background:rgba(15,8,2,.6);padding:40px 32px}
.ft-done h2{margin-bottom:14px}
.ft-flow{display:grid;gap:28px;min-width:0}
.ft-wechat{margin-top:22px;padding:20px;border:1px solid var(--gold);background:rgba(212,175,55,.08);display:grid;gap:12px}
.ft-noadd summary{cursor:pointer;color:var(--rice-dark);font-size:14px}
.ft-noadd p{font-size:14px;margin:10px 0 0}
.ft-wechat .link{background:none;border:0;color:var(--gold);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
.ft-wechat b{color:var(--gold);font-weight:600}
.ft-qr{width:200px;height:200px;background:#fff;padding:8px;justify-self:start}
.ft-share{margin-top:26px;padding-top:22px;border-top:1px solid var(--gold-line);display:grid;gap:12px}
.ft-share-row{display:flex;flex-wrap:wrap;gap:8px}
.ft-share-row input{font-size:15px;min-width:0}
.ft-share .button{min-width:0}
.ft-share-native{justify-self:start}
.ft-extra-head{border-top:1px solid var(--gold);padding-top:22px;display:grid;gap:8px}
.ft-extra-head h3{font-size:24px;margin:0}
.ft-extra-head .eyebrow,.ft-extra-head p{margin:0}
.ft-ticket{font:600 26px/1.2 'Cinzel',serif;letter-spacing:.14em;color:var(--gold)!important}

@media(max-width:960px){.ft-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-signup{grid-template-columns:1fr;gap:30px}.ft-aside{position:static}}
@media(max-width:540px){.ft-steps{grid-template-columns:1fr}.ft-designs{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-signup fieldset{padding:18px 14px}.ft-signup form .button{width:100%}.ft-facts dd{font-size:21px}}
@media(prefers-reduced-motion:reduce){.ft-chip span,.ft-design-img{transition:none}}
