
/* Treasure Vault: age-appropriate, permanent achievement collections */
.tv-preview,.tv-page{color:#393e63}
.tv-preview{margin:17px auto 20px;padding:17px 20px 20px;border-radius:25px;border:2px solid #e3c894;background:linear-gradient(125deg,#fffaf0,#fff0d7 54%,#f4efff);box-shadow:0 10px 28px #a57e4c15;max-width:900px}
.tv-preview-top{display:flex;gap:16px;align-items:center;justify-content:space-between}
.tv-eyebrow{display:block;font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:900;color:#79619b}
.tv-preview h3{font-size:clamp(23px,4vw,30px);margin:5px 0 6px;color:#664582}
.tv-preview p{margin:0;line-height:1.5;font-size:15px;max-width:550px;color:#64546f}
.tv-preview-prize{display:flex;gap:3px;align-items:center;flex-direction:column;justify-content:center;min-width:88px;background:#fff9;border:1px solid #eadbc4;border-radius:18px;padding:7px 12px}
.tv-preview-prize>span{font-size:43px;line-height:1.2}.tv-preview-prize strong{font-weight:950;color:#6c4e82;font-size:17px}
.tv-mini-stars{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0;align-items:center}
.tv-mini-star{font-weight:900;color:#c0b3c5;font-size:26px;line-height:1.2}
.tv-mini-star.tv-mini-earned{color:#eaa327;text-shadow:0 1px 1px #fff,0 3px 9px #eaa3276b}
.tv-open{min-height:54px;font-size:18px!important;padding:12px 20px!important}
.tv-profile-label{display:inline-flex;gap:4px;align-items:center;font-size:13px;font-weight:850;color:#70538a;background:#fcf5e9;border:1px solid #ecd3a8;border-radius:999px;padding:6px 12px}
.tv-page{max-width:980px;margin:0 auto 35px;padding:5px 2px}
.tv-hero{border-radius:29px;padding:24px 20px 25px;text-align:center;background:radial-gradient(circle at 9% 8%,#ffffffc9,transparent 38%),linear-gradient(135deg,#e8e5ff,#fff0dc 65%,#e9f9f7);border:2px solid #d9d2f0;box-shadow:0 10px 30px #a0a0c01a}
.tv-hero h2{color:#564078;font-size:clamp(28px,5vw,41px);line-height:1.16;margin:8px 0 10px}
.tv-hero>p{line-height:1.5;font-size:16px;color:#655e79;max-width:680px;margin:5px auto 19px}
.tv-current-gem{display:flex;align-items:center;justify-content:center;gap:15px;max-width:540px;margin:12px auto 18px;background:#fff9;border:2px solid var(--tv-gem);border-radius:23px;padding:14px 18px;text-align:left;box-shadow:0 8px 18px #5d517815}
.tv-current-gem>span{font-size:clamp(49px,8vw,78px);line-height:1.2;filter:drop-shadow(0 5px 4px #6e6b8424);flex:0 0 87px;text-align:center}
.tv-current-gem>div{display:flex;flex-direction:column;gap:3px}
.tv-current-gem small{font-weight:850;color:#74617e;font-size:12px}
.tv-current-gem strong{font-size:clamp(22px,3.7vw,27px);color:#463860}
.tv-current-gem p{margin:2px 0 0;font-weight:750;font-size:14px;color:#6f6082}
.tv-progress-track{height:17px;border-radius:100px;max-width:550px;margin:8px auto 0;background:#ffffffeb;border:1px solid #d5c5df;overflow:hidden;box-shadow:inset 0 2px 5px #745e7a20}
.tv-progress-track>div{height:100%;border-radius:100px;background:linear-gradient(90deg,#f4bd50,#d990bd,#917be0);transition:width .3s ease}
.tv-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:19px auto}
.tv-category{display:flex;flex-direction:column;gap:14px;background:#fff;border:2px solid #e1dded;border-radius:22px;padding:15px 17px;box-shadow:0 4px 17px #5049770d}
.tv-category.tv-category-earned{background:linear-gradient(155deg,#fffef7,#effbee);border-color:#88c99c}
.tv-category-heading{display:flex;align-items:center;gap:12px;min-width:0}
.tv-category-icon{display:grid;place-items:center;background:#f5f2ff;border-radius:14px;width:55px;height:55px;flex:0 0 55px;font-size:32px}
.tv-category-heading>div{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.tv-category-heading strong{font-size:17px;line-height:1.25;color:#443958}
.tv-category-heading small{font-size:13px;line-height:1.35;color:#716d7f}
.tv-category-mark{font-size:30px;font-weight:850;color:#c8bed2}
.tv-category-earned .tv-category-mark{color:#e7ac32;text-shadow:0 2px 8px #d59a3080}
.tv-cat-foot{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:auto;border-top:1px solid #eeeaf3;padding-top:12px}
.tv-cat-foot span{font-size:13px;font-weight:850;color:#716181;white-space:nowrap}
.tv-category-earned .tv-cat-foot span{color:#36825b}
.tv-cat-foot button{border:1px solid #c4b0e4;background:#f7f1ff;color:#5c4183;border-radius:12px;padding:10px 13px;font-family:inherit;font-size:14px;font-weight:850;cursor:pointer;min-height:44px;touch-action:manipulation}
.tv-cat-foot button:active{transform:scale(.97)}
.tv-cat-foot button:focus-visible,.tv-convert:focus-visible,.tv-show-more:focus-visible{outline:4px solid #7861af;outline-offset:3px}
.tv-complete-action{text-align:center;margin:15px auto 25px}
.tv-complete-action>p{color:#6a5d7e;font-size:16px;line-height:1.4}
.tv-convert{padding:16px 26px!important;min-height:66px;font-weight:900!important;font-size:19px!important}
.tv-confirm{border:3px solid #f0c56d;background:#fffaf0;border-radius:22px;padding:20px 15px;margin:18px auto 24px;text-align:center;max-width:660px}
.tv-confirm strong{font-size:21px;color:#63477c}
.tv-confirm p{font-size:15px;color:#675e74;line-height:1.55;margin:11px auto 17px}
.tv-confirm-buttons{display:flex;gap:11px;justify-content:center;flex-wrap:wrap}
.tv-confirm-buttons .button{min-height:52px;font-size:17px}
.tv-gallery{padding:20px 16px 24px;border:2px solid #ded4eb;background:linear-gradient(160deg,#fbf7ff,#f8fbff);border-radius:25px;text-align:center;margin:25px 0}
.tv-gallery h3{font-size:clamp(23px,3.8vw,30px);color:#564376;margin:2px 0 7px}
.tv-gallery>p{font-size:15px;color:#6b6580;line-height:1.5;margin:0 0 17px}
.tv-empty{font-size:15px;color:#706880;margin:15px auto!important}
.tv-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tv-trophy{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:7px;border:2px solid var(--tv-gem);background:linear-gradient(145deg,#ffffffdf,#f6ecff);border-radius:19px;min-height:154px;padding:15px 8px;box-shadow:0 5px 15px #78668a12}
.tv-gem{font-size:47px;filter:drop-shadow(0 3px 5px #5d537424)}
.tv-trophy strong{font-size:15px;color:#54416f}
.tv-trophy small{font-size:12px;color:#766a83}
.tv-show-more{margin-top:17px;background:#fff;border:1px solid #cab8e3;border-radius:12px;padding:12px 17px;color:#5a4d7e;font:850 14px inherit;cursor:pointer}
.tv-note{max-width:720px;text-align:center;margin:20px auto!important;color:#737086;font-size:13px;line-height:1.6}
.tv-return{display:block;margin:5px auto 0;min-height:49px}
.tv-toast{position:relative;margin:9px auto 14px;max-width:800px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;background:linear-gradient(105deg,#fff8db,#f5edff);border:2px solid #e9cb77;border-radius:15px;padding:11px 14px;text-align:center;color:#61497b;font-size:15px;box-shadow:0 4px 13px #ae965018}
.tv-toast>span{font-size:23px}.tv-toast strong{font-weight:850}.tv-toast small{color:#796c85;font-size:13px}
@media(max-width:650px){.tv-preview{padding:14px 13px 18px}.tv-preview-prize{min-width:67px}.tv-preview-prize>span{font-size:37px}.tv-preview h3{font-size:24px}.tv-preview p{font-size:13px}.tv-mini-star{font-size:21px}.tv-categories{gap:9px}.tv-category{padding:10px 8px;border-radius:16px;gap:9px}.tv-category-icon{width:42px;height:42px;flex-basis:42px;font-size:26px;border-radius:11px}.tv-category-heading{gap:6px}.tv-category-heading strong{font-size:14px}.tv-category-heading small{font-size:11px}.tv-category-mark{font-size:23px}.tv-cat-foot{flex-direction:column;align-items:stretch;gap:7px}.tv-cat-foot span{font-size:12px}.tv-cat-foot button{font-size:12px;padding:9px 8px}.tv-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-hero{padding:16px 10px}.tv-current-gem{padding:10px}.tv-current-gem>span{font-size:48px;flex-basis:56px}.tv-gallery{padding:17px 10px}}
@media(prefers-reduced-motion:reduce){.tv-progress-track>div{transition:none}}
