/* Same tools; a warmer, playful gym floor when explicitly enabled. */
:root[data-experience="fun"]{--page:#f8f5eb;--surface:#fffdf7;--ink:#29281f;--muted:#666454;--line:#dfdccd;--accent:#6a421e;--accent-hover:#4c2d12;--soft:#f2e6c9}
.experience-top-button{min-height:44px;padding:8px 12px;color:var(--accent);font-size:13px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface)}
.topright{display:flex;align-items:center;gap:12px}.experience-switcher{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;margin-bottom:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.experience-switcher h2{font-size:19px;margin:4px 0}.experience-switcher p{font-size:13px;margin:0}.experience-options{display:flex;flex-shrink:0;background:var(--page);padding:4px;border:1px solid var(--line);border-radius:12px;gap:4px}.experience-options button{min-height:44px;padding:10px 20px;font-size:14px;border-radius:8px;color:var(--muted);border:1px solid transparent}.experience-options button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.experience-options button span{margin-left:8px}
.iron-daily{position:relative;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 28px;border-left:5px solid var(--accent);background:var(--soft);margin:0 0 20px;border-radius:0 12px 12px 0}.iron-daily h2{font-size:24px;line-height:1.5;margin:10px 0;max-width:720px}.iron-daily p{font-size:12px;margin:0}.iron-daily-copy{flex:1;min-width:0}.iron-daily-meme{display:block;flex:0 0 144px;width:144px;height:176px;object-fit:contain;border-radius:8px}.iron-daily-meme[hidden]{display:none}.iron-warning{background:var(--soft);padding:24px;margin:16px 0;border-radius:12px}.iron-warning h3{font-size:30px;margin:12px 0}.iron-warning p{margin:16px 0}.iron-warning>strong{color:var(--accent)}
.rank-panel{margin:20px 0}.rank-summary{display:flex;align-items:center;gap:20px}.rank-summary h2{margin:6px 0;font-size:26px}.rank-summary p{margin:0}.rank-emblem{--frame:#817d70;position:relative;display:grid;place-items:center;flex-shrink:0;width:80px;height:80px;padding:5px;border:3px solid var(--frame);border-radius:24px;background:var(--surface);box-shadow:0 0 0 3px var(--soft)}.rank-emblem img,.rank-emblem>span{width:100%;height:100%;object-fit:cover;border-radius:16px;background:var(--soft);display:grid;place-items:center;font-size:26px;color:var(--ink)}.rank-emblem b{position:absolute;bottom:-10px;left:25%;right:25%;background:var(--frame);color:#fff;font-size:11px;text-align:center;border-radius:4px;letter-spacing:2px}.frame-bronze{--frame:#95613b}.frame-silver{--frame:#667888}.frame-gold{--frame:#8d681a}.frame-jade{--frame:#276c55}.frame-legend{--frame:#754d88;border-style:double;border-width:5px}.rank-score{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:28px;margin-bottom:12px}.rank-score strong{font-size:26px;color:var(--accent)}.rank-score small{font-size:12px;font-weight:400;color:var(--muted)}.rank-score>span{font-size:12px;color:var(--muted)}.rank-progress{display:block;appearance:none;width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;background:var(--soft);accent-color:var(--accent)}.rank-progress::-webkit-progress-bar{background:var(--soft)}.rank-progress::-webkit-progress-value{background:var(--accent);border-radius:8px}.rank-progress::-moz-progress-bar{background:var(--accent)}.rank-rules{margin-top:16px}.rank-rules summary{cursor:pointer;color:var(--accent);font-size:13px;min-height:44px;align-content:center}.rank-rules p{font-size:12px;margin:8px 0}.rank-rules ol{padding:0;margin:16px 0 0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rank-rules li{padding:12px;border:1px solid var(--line);border-radius:8px;font-size:13px;display:grid;gap:4px}.rank-rules li span{font-size:12px;color:var(--muted)}.rank-rules li[aria-current]{background:var(--soft);border-color:var(--accent)}
.experience-settings{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.experience-settings p{margin:6px 0 0;font-size:13px}.experience-check{display:flex;align-items:center;gap:12px;margin:20px 0;min-height:44px;font-size:14px}.experience-check input{width:18px;height:18px}.modal .experience-switcher{margin-top:24px;padding:16px;flex-wrap:wrap}.achievement-list{display:grid;gap:12px;margin-top:20px}.achievement{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:20px;border:1px dashed var(--line);border-radius:12px;background:var(--page)}.achievement h3{font-size:17px;margin:6px 0}.achievement p{font-size:12px;margin:0}.achievement.unlocked{background:var(--soft);border-style:solid;border-color:var(--accent)}.achievement .btn{flex-shrink:0}.demo-first-options{display:grid;gap:12px;margin:24px 0}.demo-first-options button{min-height:64px;text-align:left;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.demo-first-options button:hover{border-color:var(--accent);background:var(--soft)}
.training-iron{padding:12px 16px;background:var(--soft);border-left:3px solid var(--accent);margin:12px 0 20px;border-radius:0 8px 8px 0}.training-iron>span{font-size:10px;color:var(--accent);letter-spacing:1px}.training-iron p{margin:4px 0;font-size:14px;color:var(--ink)}.iron-finish{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:center;margin:24px 0}.iron-finish img{width:160px;height:214px;object-fit:contain;border-radius:10px;background:var(--soft);}.iron-finish h3{font-size:24px;margin:8px 0}.iron-earned{font-size:13px;color:var(--accent);font-weight:650;margin:8px 0}
[data-experience="fun"] .page-library .hero{border:1px solid var(--line);background:var(--soft)}[data-experience="fun"] .page-library .herotext h2{font-weight:850}[data-experience="fun"] .sidebottom:before{content:'正事照练，铁话照讲。';display:block;color:var(--accent);font-weight:650;margin-bottom:12px}
@keyframes iron-arrival{from{opacity:0;transform:translateY(10px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:767px){.experience-switcher{padding:16px;align-items:stretch;flex-direction:column;gap:12px}.experience-options button{flex:1}.experience-options{width:100%}.experience-top-button{font-size:12px;padding:8px}.iron-daily{padding:20px 16px;gap:12px}.iron-daily h2{font-size:20px}.iron-daily-meme{flex-basis:104px;width:104px;height:144px}.rank-summary{gap:16px;flex-wrap:wrap}.rank-summary .grow{min-width:120px}.rank-summary>.btn{width:100%;margin-top:8px}.rank-score{align-items:start;flex-direction:column;gap:4px}.rank-rules ol{grid-template-columns:repeat(2,minmax(0,1fr))}.iron-finish{grid-template-columns:110px minmax(0,1fr);gap:16px}.iron-finish img{width:110px;height:147px}.iron-finish h3{font-size:20px}.achievement{padding:16px;gap:8px}.achievement h3{font-size:15px}.achievement .btn{padding:8px 12px}.experience-settings{flex-wrap:wrap}.topbar .topright{gap:8px}}
@media(prefers-reduced-motion:reduce){.iron-finish img{animation:none}}
@media(max-width:380px){.profile{flex-wrap:wrap;gap:16px}.profile>.grow{min-width:140px;flex:1}.profile>.btn{width:100%}.iron-finish{grid-template-columns:1fr}.iron-finish img{width:120px;height:160px;margin:auto}.rank-emblem{width:64px;height:64px;border-radius:20px}.rank-summary h2{font-size:22px}}
html[data-frame=stone]{--rank-frame:#817d70}html[data-frame=bronze]{--rank-frame:#95613b}html[data-frame=silver]{--rank-frame:#667888}html[data-frame=gold]{--rank-frame:#8d681a}html[data-frame=jade]{--rank-frame:#276c55}html[data-frame=legend]{--rank-frame:#754d88}.topright>.avatar,.profile>.avatar{outline:2px solid var(--rank-frame,var(--line));outline-offset:3px}html[data-frame=legend] .topright>.avatar{outline-style:double;outline-width:4px}
/* Collectible equipment: a frame can be worn independently of the current rank. */
.rank-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.frame-plate{display:none;position:absolute;top:28%;height:44%;width:7px;border:2px solid var(--frame);background:var(--surface);border-radius:3px}.plate-left{left:-9px}.plate-right{right:-9px}.frame-bronze .frame-plate,.frame-silver .frame-plate,.frame-gold .frame-plate,.frame-jade .frame-plate,.frame-legend .frame-plate{display:block}.frame-bronze{border-radius:50%}.frame-bronze>span,.frame-bronze>img{border-radius:50%}.frame-silver{border-style:double;border-width:5px}.frame-gold{border-radius:20px 20px 28px 28px;border-top-width:7px}.frame-gold .frame-plate{height:60%;top:20%;width:9px}.frame-jade{border-radius:12px;transform:rotate(-3deg)}.frame-jade>img,.frame-jade>span{transform:rotate(3deg)}.frame-legend{border-radius:50%;outline:1px dashed var(--frame);outline-offset:5px}.frame-legend>span,.frame-legend>img{border-radius:50%}.frame-pointy{--frame:#946237;border-radius:20px}.frame-pointy:before{content:'';position:absolute;top:-22px;border-left:19px solid transparent;border-right:19px solid transparent;border-bottom:23px solid var(--frame)}
html[data-frame=pointy]{--rank-frame:#946237}html[data-frame=pointy] .topright>.avatar:after,html[data-frame=pointy] .profile>.avatar:after{content:'';position:absolute;left:calc(50% - 8px);top:-13px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:10px solid var(--rank-frame)}.topright>.avatar,.profile>.avatar{position:relative}
.wardrobe-controls{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.wardrobe-controls [aria-pressed=true]{background:var(--soft);border-color:var(--accent)}.frame-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.frame-tile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 16px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);gap:16px}.frame-tile h3{font-size:16px;margin:4px 0 0}.frame-tile p{font-size:12px;margin:0;flex:1}.frame-tile .btn{width:100%}.frame-tile [aria-pressed=true]{background:var(--soft);border-color:var(--accent)}.frame-locked .rank-emblem{filter:grayscale(1);opacity:.55}.frame-locked{background:var(--page)}
.iron-plan-entry{display:flex;align-items:center;gap:24px;padding:28px;margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.iron-plan-entry>div:last-child{min-width:0}.iron-plan-entry h3{font-size:18px;margin:6px 0}.iron-plan-entry p{font-size:12px;margin:0}.iron-enter .rank-emblem{animation:iron-plate-arrive .65s ease-out both}.iron-enter>div:last-child{animation:iron-arrival .4s ease-out both}
.rank-celebration{text-align:center;background:var(--soft);padding:24px 20px;border:1px solid var(--line);border-radius:16px;margin:20px 0}.rank-celebration h3{font-size:30px;margin:8px 0}.rank-celebration p{font-size:13px;margin:8px 0}.promotion-art{position:relative;display:grid;place-items:center;width:156px;height:156px;margin:0 auto 16px}.promotion-art>.rank-emblem{z-index:1}.promotion-art>i{position:absolute;width:18px;height:30px;border:4px double var(--accent);border-radius:5px;background:var(--surface)}.promotion-art>i:nth-child(1){top:8px;left:16px;transform:rotate(-24deg)}.promotion-art>i:nth-child(2){top:8px;right:16px;transform:rotate(24deg)}.promotion-art>i:nth-child(3){bottom:8px;left:16px;transform:rotate(24deg)}.promotion-art>i:nth-child(4){bottom:8px;right:16px;transform:rotate(-24deg)}.iron-animate .promotion-art>.rank-emblem{animation:iron-plate-arrive .6s ease-out both}.iron-animate .promotion-art>i{animation:iron-plate-pop .65s ease-out both}.iron-finish.iron-animate img{animation:iron-arrival .35s ease-out}.achievement-empty{padding:20px;background:var(--soft);border-radius:10px}
@keyframes iron-plate-arrive{0%{opacity:0;transform:translateY(14px) scale(.8) rotate(-12deg)}70%{opacity:1;transform:translateY(-3px) scale(1.04) rotate(3deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes iron-plate-pop{0%{opacity:0;scale:.4}75%{opacity:1;scale:1.15}100%{opacity:1;scale:1}}
html[data-motion=off] .iron-finish img,html[data-motion=off] .iron-enter *,html[data-motion=off] .iron-animate *{animation:none!important}
@media(max-width:767px){.rank-actions{width:100%;justify-content:flex-start;margin-top:8px}.rank-actions>.btn{flex:1}.frame-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.iron-plan-entry{padding:24px 20px;gap:20px}.iron-plan-entry .rank-emblem{width:64px;height:64px}.iron-plan-entry h3{font-size:16px}.rank-celebration h3{font-size:25px}}
@media(max-width:380px){.frame-gallery{grid-template-columns:1fr}.rank-actions{flex-direction:column}.iron-plan-entry{gap:16px;padding:20px 16px}.iron-plan-entry .rank-emblem{width:52px;height:52px;border-radius:16px}.iron-plan-entry .rank-emblem>span{font-size:20px}.iron-plan-entry h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){.iron-finish img,.iron-enter *,.iron-animate *{animation:none!important}}
.admin-preview-entry{margin-top:16px;width:100%}.admin-preview-note{padding:12px 16px;background:var(--soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:12px}.admin-frame-choices,.admin-view-choices{margin:16px 0;gap:8px;flex-wrap:wrap}.admin-preview-stage{min-height:260px;border:1px solid var(--line);border-radius:12px;padding:24px;margin-top:20px;background:var(--page)}.admin-frame-stage{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding:24px 0}.admin-frame-stage .rank-emblem{width:104px;height:104px}.admin-frame-stage h3{font-size:24px;margin:0}.admin-frame-stage p{font-size:13px;margin:0}.admin-preview-stage .rank-celebration{margin:0}.admin-preview-stage .iron-plan-entry{margin:0}.admin-preview-stage .iron-plan-entry h3{overflow-wrap:anywhere}@media(max-width:380px){.admin-preview-stage{padding:16px}.admin-frame-choices .chip{font-size:12px;padding:8px 10px}}
/* Approved rank identity art: portrait opening is centered at 50% / 50%. */
.rank-emblem.has-frame-art{padding:0;border:0!important;background:none!important;box-shadow:none!important;outline:0!important;border-radius:0!important;transform:none!important;width:96px;height:96px;isolation:isolate}.rank-emblem.has-frame-art:before,.rank-emblem.has-frame-art:after{display:none!important}.rank-emblem.has-frame-art>.frame-portrait{position:absolute;left:25.6%;top:25.6%;width:48.8%;height:48.8%;border-radius:50%;object-fit:cover;background:var(--soft);z-index:0;transform:none!important;font-size:22px;color:var(--ink);display:grid;place-items:center}.rank-emblem.has-frame-art>.frame-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;background:none;border-radius:0;z-index:1;pointer-events:none;transform:none!important}.rank-emblem.has-frame-art>.frame-art[hidden]{display:none}.rank-emblem.has-frame-art.art-unavailable{border:2px solid var(--line)!important;border-radius:50%!important}.frame-tile .rank-emblem.has-frame-art{width:148px;height:148px}.frame-tile .has-frame-art>.frame-monogram{font-size:28px}.admin-frame-stage .rank-emblem.has-frame-art{width:min(288px,70vw);height:auto;aspect-ratio:1}.admin-frame-stage .has-frame-art>.frame-monogram{font-size:52px}.promotion-art>.rank-emblem.has-frame-art{width:140px;height:140px}.iron-plan-entry .rank-emblem.has-frame-art{width:88px;height:88px}.frame-locked .has-frame-art{filter:grayscale(.7);opacity:.6}.admin-frame-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}.admin-frame-collection article{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;min-width:0}.admin-frame-collection .rank-emblem.has-frame-art{width:min(100%,180px);height:auto;aspect-ratio:1}.admin-frame-collection h3{font-size:16px;margin:0}.admin-frame-collection p{font-size:12px;margin:0;flex:1}.admin-frame-collection .btn{font-size:12px}.admin-preview-stage:has(.admin-frame-collection){padding:20px 12px}.rank-summary .has-frame-art{flex-shrink:0}
@media(max-width:767px){.admin-frame-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.frame-tile .rank-emblem.has-frame-art{width:136px;height:136px}.rank-summary .rank-emblem.has-frame-art{width:88px;height:88px}.iron-plan-entry .rank-emblem.has-frame-art{width:76px;height:76px}}
@media(max-width:380px){.admin-frame-collection{grid-template-columns:1fr}.frame-tile .rank-emblem.has-frame-art{width:160px;height:160px}.admin-frame-stage .rank-emblem.has-frame-art{width:208px;height:208px}.iron-plan-entry .rank-emblem.has-frame-art{width:64px;height:64px}}
.rank-emblem.has-frame-art>.frame-portrait{left:var(--portrait-left,25.6%);top:var(--portrait-top,25.6%);width:var(--portrait-width,48.8%);height:var(--portrait-height,48.8%)}
/* Normalize each measured opening to the same portrait area without changing source pixels. */
.rank-emblem.has-frame-art>.frame-art{inset:auto;left:var(--art-left,0%);top:var(--art-top,0%);width:var(--art-width,100%);height:var(--art-height,100%)}
.admin-frame-picker{display:none}.admin-frame-picker select{width:100%;min-height:44px;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
@media(max-width:767px){.admin-frame-picker{display:block;margin:16px 0;font-size:12px;color:var(--muted)}.admin-frame-choices{display:none}.admin-preview-note{padding:10px 12px}.admin-view-choices{gap:6px}.admin-view-choices .chip{font-size:12px;padding:8px 10px}.admin-frame-stage{padding:12px 0}}
.topright>.avatar.framed-avatar{width:52px;height:52px;padding:0;background:none;border-radius:0;outline:0!important;overflow:visible}.topright>.framed-avatar>.rank-emblem,.topright>.framed-avatar>.rank-emblem.has-frame-art{width:52px;height:52px}.topright>.framed-avatar .frame-monogram{font-size:15px}.profile>.avatar.profile-avatar-framed{width:80px;height:80px;padding:0;background:none;border-radius:0;outline:0!important;overflow:visible}.profile-avatar-framed>.rank-emblem,.profile-avatar-framed>.rank-emblem.has-frame-art{width:80px;height:80px}.topright>.framed-avatar:after,.profile>.profile-avatar-framed:after{display:none!important}.topright>.framed-avatar>.rank-emblem:not(.has-frame-art){width:36px;height:36px;margin:8px}.profile-avatar-framed>.rank-emblem:not(.has-frame-art){width:64px;height:64px;margin:8px}
.admin-frame-collection .rank-emblem.has-frame-art{width:min(100%,144px)}.admin-frame-collection{row-gap:20px}

@media(max-width:479px){.iron-daily{flex-wrap:wrap}.iron-daily-copy{flex-basis:100%}.iron-daily-meme{margin-left:auto;width:112px;height:144px;flex-basis:112px}}

.iron-quiz{padding:20px 0 8px}.iron-quiz h3{font-size:28px;line-height:1.5;margin:16px 0}.iron-quiz-options{display:grid;gap:12px;margin:24px 0}.iron-quiz-option{display:flex;align-items:center;justify-content:flex-start;gap:16px;text-align:left;white-space:normal;min-height:60px;width:100%;line-height:1.6}.iron-quiz-option>span{font-weight:800;color:var(--accent)}.iron-quiz-option small{margin-left:auto;flex-shrink:0}.iron-quiz-option.is-wrong{opacity:.6;text-decoration:line-through}.iron-quiz-feedback{min-height:72px;line-height:1.7}.iron-quiz-feedback p{margin:8px 0}.iron-quiz-feedback strong{color:var(--accent)}
@media(max-width:479px){.experience-options button{white-space:normal}.iron-quiz h3{font-size:22px}.iron-quiz-option{padding:12px;gap:12px}}

.iron-daily-admin{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}.iron-daily-admin .btn{font-size:12px;padding:8px 12px}.iron-daily-admin>span{font-size:11px;color:var(--muted)}.experience-top-button{white-space:normal;text-align:center;max-width:160px}
