/* Gold Eddie rewards are derived from the current student's module attempts. */
.ss-trophy-shelf { margin:18px 0; color:#f8ecd0; background:#173b31; border:1px solid #bd985b; border-radius:18px; overflow:hidden; box-shadow:0 9px 24px #213c3014; }
/* Movement has priority over decorative GPU work. Off-screen trophies do not
   create animated masked layers, and the room suspends the map behind it. */
.ss-map-trophy:not([data-effects-visible=true]) .ss-trophy-sparkles,
.ss-map-trophy:not([data-effects-visible=true]) .ss-trophy-sheen,
[data-walking=true] .ss-map-trophy .ss-trophy-sparkles,
[data-walking=true] .ss-map-trophy .ss-trophy-sheen,
body[data-closet-open=true] .expression-map .ss-trophy-sparkles,
body[data-closet-open=true] .expression-map .ss-trophy-sheen { display:none!important; }
.ss-map-trophy[data-individually-hidden=true] { display:none!important; }
body[data-closet-open=true] .expression-map * { animation-play-state:paused!important; }
.ss-trophy-date { font:500 12px/1.5 system-ui!important; margin:7px 0!important; color:inherit; }
.ss-trophy-individual { margin:8px 0; border:1px solid #b28a4d; border-radius:7px; padding:6px 10px; background:#fff6df; color:#634b2a; font:600 12px/1.3 system-ui; cursor:pointer; }
.ss-trophy-details { padding-top:7px; color:#66502f; }
.ss-trophy-details strong { font-size:13px; }
[data-trophy-tier=bronze] .ss-trophy-sculpture img { filter:sepia(.42) saturate(1.18) hue-rotate(345deg) brightness(1.05) contrast(1.04) drop-shadow(0 0 3px #ffc18ba0); }
[data-trophy-tier=bronze] .ss-trophy-engraving { color:#4b2f1c; text-shadow:0 1px #dfb48a; }
[data-trophy-tier=bronze] .ss-trophy-status { color:#edb583; }
[data-trophy-tier=bronze] .ss-trophy-sparkles i { background:#ffdec0; }
[data-walking=true] .ss-map-trophy .ss-trophy-sculpture img { filter:none; }
[data-walking=true] .ss-map-trophy[data-trophy-tier=silver] .ss-trophy-sculpture img { filter:grayscale(1) brightness(1.22) contrast(.92); }
[data-walking=true] .ss-map-trophy[data-trophy-tier=bronze] .ss-trophy-sculpture img { filter:sepia(.42) saturate(1.18) hue-rotate(345deg) brightness(1.05) contrast(1.04); }
.ss-trophy-summary { list-style:none; display:flex; align-items:center; gap:16px; padding:12px 22px; cursor:pointer; background:linear-gradient(115deg,#183d32,#244f40 60%,#183c31); }
.ss-trophy-summary::-webkit-details-marker { display:none; }
.ss-trophy-summary>img { flex:0 0 72px; object-fit:contain; filter:drop-shadow(0 3px 5px #0005); }
.ss-trophy-summary>span { flex:1; display:flex; flex-direction:column; gap:4px; }
.ss-trophy-summary small { font:600 10px/1.4 system-ui; letter-spacing:.15em; color:#e9cb8c; }
.ss-trophy-summary strong { font:700 24px/1.3 Georgia,'Noto Serif TC',serif; }
.ss-trophy-summary>span>span { font-size:13px; color:#e5e2cc; }
.ss-trophy-summary>b { font:600 24px/1.2 Georgia,serif; text-align:center; white-space:nowrap; color:#ffe4a6; }
.ss-trophy-summary>b small { display:block; margin-top:6px; font-size:11px; letter-spacing:0; }
.ss-trophy-summary>i { font-size:24px; font-style:normal; transition:transform .2s; }
.ss-trophy-shelf[open] .ss-trophy-summary>i { transform:rotate(180deg); }
.ss-trophy-summary:focus-visible,.ss-trophy-action:focus-visible { outline:3px solid #f5cb63; outline-offset:-4px; }
.ss-trophy-cabinet { padding:22px; border-top:1px solid #cda96770; background:radial-gradient(ellipse at 50% 0,#49614433,transparent 65%),#102d25; }
.ss-trophy-cabinet-heading h2 { margin:0 0 6px; font:600 25px/1.3 Georgia,'Noto Serif TC',serif; color:#fbe7ba; }
.ss-trophy-cabinet-heading p { color:#d7dcc9; font-size:14px; margin:0 0 22px; }
.ss-trophy-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; align-items:stretch; }
.ss-trophy-display { position:relative; max-width:340px; width:100%; justify-self:center; box-sizing:border-box; padding:18px 18px 16px; display:flex; flex-direction:column; align-items:center; border:1px solid #b899604f; border-radius:12px; background:radial-gradient(ellipse at 50% 30%,#c6a45530,transparent 68%),linear-gradient(#244a3c,#17372d); box-shadow:inset 0 1px 0 #fff0b312,0 10px 15px #05191040; }
.ss-trophy-display::after { content:''; height:5px; position:absolute; left:6px; right:6px; bottom:-5px; border-radius:0 0 6px 6px; background:linear-gradient(#e1c584,#96703c); }
.ss-trophy-status { color:#edcf88; font:650 10px/1.4 system-ui; letter-spacing:.08em; }
.ss-trophy-figure { position:relative; width:250px; max-width:100%; margin:0 auto; isolation:isolate; }
.ss-trophy-figure img { display:block; width:100%; height:auto; object-fit:contain; filter:drop-shadow(0 9px 8px #05191070); user-select:none; -webkit-user-drag:none; }
.ss-trophy-engraving { position:absolute; left:37%; width:26%; top:88.9%; transform:translateY(-50%); text-align:center; color:#69410b; font:700 11px/1 Georgia,serif; text-shadow:0 1px #ffe18b; pointer-events:none; }
.ss-trophy-figure.is-preview { opacity:.35; filter:saturate(.6); }
.ss-trophy-nameplate { align-self:stretch; text-align:center; padding:12px 7px; border:1px solid #bb9b5b70; border-radius:6px; background:linear-gradient(115deg,#1a3228,#10271f); box-shadow:inset 0 1px #fff4c214; }
.ss-trophy-nameplate small { color:#d9b875; font-size:10px; letter-spacing:.15em; }
.ss-trophy-nameplate h3 { color:#fff0c9; font:600 21px/1.25 Georgia,serif; margin:6px 0; overflow-wrap:anywhere; }
.ss-trophy-nameplate p { color:#dce1ce; font:12px/1.4 system-ui; margin:0 0 8px; }
.ss-trophy-nameplate>span { display:inline-block; border-radius:20px; padding:4px 10px; background:#e7d19c; color:#334032; font:650 11px/1.2 system-ui; }
.ss-trophy-action { margin-top:auto; padding:15px 5px 0; display:flex; justify-content:space-between; width:100%; border:0; background:transparent; color:#efdab0; font:650 13px/1.3 system-ui; cursor:pointer; }
.ss-trophy-action:hover { color:#fff4cf; }
.ss-trophy-celebration { position:relative; padding:26px!important; border:1px solid #bd985b!important; border-radius:16px; color:#fff0cb; background:radial-gradient(ellipse at 50% 27%,#bf963940,transparent 58%),linear-gradient(125deg,#153b2e,#254e3c)!important; text-align:center; overflow:hidden; }
.ss-trophy-celebration .ss-trophy-figure { width:310px; }
.ss-trophy-celebration .ss-trophy-engraving { font-size:14px; }
.ss-trophy-celebration h3 { color:#ffe5a5; font:700 30px/1.3 Georgia,'Noto Serif TC',serif; margin:6px 0 10px; }
.ss-trophy-celebration p { color:#f0e4c7; }
.ss-trophy-celebration .eyebrow { color:#e6c985; margin:0; }
.ss-trophy-celebration .primary-button { background:linear-gradient(#f6dfa5,#dfb467); border:1px solid #f8e5b8; color:#3c3019; }
.ss-trophy-celebration .ss-trophy-figure { animation:ss-trophy-reveal .7s ease-out both; }
@keyframes ss-trophy-reveal { from { opacity:0; transform:translateY(12px) scale(.95); } to { opacity:1; transform:none; } }
.lesson-choice-complete .ss-trophy-list-icon { width:38px; height:38px; object-fit:contain; vertical-align:middle; margin-right:5px; }
@media(max-width:650px) {
 .ss-trophy-summary { padding:12px; gap:9px; }
 .ss-trophy-summary>img { width:52px; height:64px; flex-basis:52px; }
 .ss-trophy-summary strong { font-size:18px; }
 .ss-trophy-summary>span>span { font-size:11px; }
 .ss-trophy-summary small { font-size:8px; letter-spacing:.06em; }
 .ss-trophy-summary>b { font-size:18px; }
 .ss-trophy-summary>b small { font-size:9px; }
 .ss-trophy-summary>i { display:none; }
 .ss-trophy-cabinet { padding:16px 12px 22px; }
 .ss-trophy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .ss-trophy-display { padding:12px 7px; }
 .ss-trophy-engraving { font-size:8px; }
 .ss-trophy-nameplate { padding:10px 4px; }
 .ss-trophy-nameplate h3 { font-size:17px; }
 .ss-trophy-nameplate p { font-size:11px; }
 .ss-trophy-status { font-size:8px; letter-spacing:0; }
 .ss-trophy-celebration { padding:20px 12px!important; }
 .ss-trophy-celebration h3 { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) { .ss-trophy-celebration .ss-trophy-figure { animation:none; } .ss-trophy-summary>i { transition:none; } }

:is([data-sentence-map],[data-horsey-map]):not([data-trophies-hidden=true]) .expression-map-stone[data-trophy-tier]:not([data-trophy-tier=none]):not([data-hotel]) .expression-map-stone-number { z-index:6; width:auto; left:50%; top:42px; transform:translateX(-50%); padding:2px 7px; border:1px solid #b99753; border-radius:12px; color:#554023; background:#fff2c9; font-size:15px; line-height:1.2; text-shadow:none; }

.ss-trophy-shelf { scroll-margin-top:100px; }
.ss-trophy-celebration p strong { color:#ffe4a3; }
.ss-trophy-celebration .round-summary-actions { justify-content:center; }

/* Account-scoped collection total at the upper left of the map panel. */
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-heading { display:flex; align-items:center; gap:18px; }
.ss-trophy-journey-copy { min-width:0; }
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-counter { display:flex; flex:none; align-items:center; gap:7px; padding:2px 14px 2px 3px; border:1px solid #c8a76580; border-radius:13px; color:#674715; background:linear-gradient(120deg,#fffbeb,#f5e7be); box-shadow:inset 0 1px #fffefa,0 3px 9px #88622210; cursor:pointer; text-align:left; user-select:none; }
.ss-trophy-counter img { display:block; width:64px; height:72px; object-fit:contain; -webkit-user-drag:none; filter:drop-shadow(0 2px 2px #87602030); }
.ss-trophy-counter>span { display:flex; flex-direction:column; gap:4px; }
.ss-trophy-counter strong { font:700 25px/1.1 Georgia,serif; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ss-trophy-counter small { font:650 10px/1.3 system-ui; color:#84632e; letter-spacing:.08em; }
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-counter:hover { background:linear-gradient(120deg,#fff9db,#f0db9f); border-color:#a88441; }
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-counter:focus-visible { outline:3px solid #987023; outline-offset:3px; }
@media(max-width:650px) {
 :is([data-sentence-map],[data-horsey-map]) .ss-trophy-heading { gap:12px; }
 :is([data-sentence-map],[data-horsey-map]) .ss-trophy-counter { gap:3px; padding-right:9px; }
 .ss-trophy-counter img { width:46px; height:58px; }
 .ss-trophy-counter strong { font-size:21px; }
 .ss-trophy-counter small { font-size:9px; }
 :is([data-sentence-map],[data-horsey-map]) .ss-trophy-journey-copy p { font-size:9px; letter-spacing:.12em; line-height:1.5; }
 :is([data-sentence-map],[data-horsey-map]) .ss-trophy-journey-copy h2 small { display:block; margin-left:0; font-size:11px; }
}

/* Live metal finish: gold and silver use the same crisp Eddie silhouette. */
.ss-trophy-interactive { position:relative; display:block; width:100%; padding:0; border:0; color:inherit; background:none; cursor:pointer; user-select:none; -webkit-tap-highlight-color:transparent; }
.ss-trophy-interactive:focus-visible { outline:2px solid #d3aa54; outline-offset:3px; border-radius:15px; }
.ss-trophy-sculpture { position:relative; display:block; width:100%; height:100%; transform-origin:50% 88%; }
.ss-trophy-sculpture img { display:block; width:100%; height:auto; object-fit:contain; pointer-events:none; user-select:none; -webkit-user-drag:none; filter:drop-shadow(0 0 1px #fff3b6) drop-shadow(0 0 5px #ffd2538c) drop-shadow(0 3px 3px #66431b50); }
[data-trophy-tier=silver] .ss-trophy-sculpture img { filter:grayscale(1) brightness(1.22) contrast(.92) drop-shadow(0 0 1px #fff) drop-shadow(0 0 5px #d8e9ff9c) drop-shadow(0 3px 3px #343e5150); }
[data-trophy-tier=silver] .ss-trophy-engraving { color:#414954; text-shadow:0 1px #f3f8ff; }
.ss-trophy-display.is-silver { border-color:#c4d3dd80; }
.ss-trophy-display.is-silver .ss-trophy-status { color:#e4eff8; }
.ss-trophy-preview { display:block; }
.ss-trophy-figure.is-preview .ss-trophy-sculpture img { filter:drop-shadow(0 3px 3px #10271f50); }
:is([data-sentence-map],[data-horsey-map]) .ss-map-trophy { position:absolute; z-index:5; margin:0; overflow:visible; touch-action:pan-x pan-y; }
:is([data-sentence-map],[data-horsey-map]) .ss-map-trophy.is-bouncing { z-index:8; }
:is([data-sentence-map],[data-horsey-map]) .ss-map-trophy .ss-trophy-marker { width:100%; height:100%; }
:is([data-sentence-map],[data-horsey-map])[data-trophies-hidden=true] .ss-map-trophy { display:none; }
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-visibility { margin-left:auto; flex:none; padding:9px 12px; border:1px solid #c4b085; border-radius:9px; color:#654e27; background:#fffaf0; font:650 12px/1.3 system-ui; white-space:nowrap; }
:is([data-sentence-map],[data-horsey-map]) .ss-trophy-visibility[aria-pressed=true] { color:#3a5b48; border-color:#9dae98; background:#edf3e7; }
.ss-trophy-sheen { position:absolute; inset:0; z-index:2; pointer-events:none; mask-image:var(--trophy-art); -webkit-mask-image:var(--trophy-art); mask-size:100% 100%; -webkit-mask-size:100% 100%; mask-repeat:no-repeat; -webkit-mask-repeat:no-repeat; }
.ss-trophy-sheen::before { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 25%,#fffcec45 39%,#fffdf3ee 49%,#fffcec55 59%,transparent 72%); transform:translateX(-110%); opacity:0; animation:ss-trophy-sheen 5.8s ease-in-out var(--sheen-delay,0s) infinite; }
[data-trophy-tier=silver] .ss-trophy-sheen::before { background:linear-gradient(105deg,transparent 25%,#e7f3ff55 39%,#ffffffed 49%,#e7f3ff55 59%,transparent 72%); }
@keyframes ss-trophy-sheen { 0%,56% { transform:translateX(-110%); opacity:0; } 61% { opacity:.9; } 80% { opacity:.9; } 86%,100% { transform:translateX(110%); opacity:0; } }
/* Larger stars stay bright longer so they read at the map's normal scale. */
.ss-trophy-sparkles { position:absolute; inset:0; pointer-events:none; z-index:7; }
.ss-trophy-sparkles i { --drift:12px; --rise:-30px; position:absolute; width:13px; height:13px; left:13%; top:56%; opacity:0; background:#fff6cd; clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%); filter:drop-shadow(0 0 2px #fff9dd) drop-shadow(0 0 5px #ffcc43); animation:ss-golden-sparkle 2.8s ease-in-out -1.4s infinite; }
.ss-trophy-sparkles i:nth-child(2) { left:81%; top:31%; width:11px; height:11px; --drift:-9px; animation-duration:3.1s; animation-delay:-2.6s; }
.ss-trophy-sparkles i:nth-child(3) { left:24%; top:20%; width:9px; height:9px; --drift:-8px; animation-duration:3.5s; animation-delay:-.5s; }
.ss-trophy-sparkles i:nth-child(4) { left:85%; top:75%; width:6px; height:6px; border-radius:50%; clip-path:none; --drift:9px; animation-duration:2.7s; animation-delay:-2s; }
.ss-trophy-sparkles i:nth-child(5) { left:67%; top:15%; width:12px; height:12px; --drift:6px; --rise:-22px; animation-duration:3.2s; animation-delay:-2.8s; }
.ss-trophy-sparkles i:nth-child(6) { left:18%; top:82%; width:6px; height:6px; border-radius:50%; clip-path:none; --drift:-10px; animation-duration:2.9s; animation-delay:-.2s; }
.ss-trophy-sparkles i:nth-child(7) { left:72%; top:65%; width:10px; height:10px; --drift:14px; animation-duration:3.4s; animation-delay:-1.1s; }
.ss-trophy-sparkles i:nth-child(8) { left:34%; top:88%; width:11px; height:11px; --drift:-13px; animation-duration:3.6s; animation-delay:-2.3s; }
.ss-trophy-sparkles i:nth-child(9) { left:47%; top:10%; width:8px; height:8px; --drift:10px; animation-duration:3s; animation-delay:-1.8s; }
.ss-trophy-sparkles i:nth-child(10) { left:7%; top:37%; width:9px; height:9px; --drift:-7px; animation-duration:3.3s; animation-delay:-.8s; }
[data-trophy-tier=silver] .ss-trophy-sparkles i { background:#fff; filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px #a2d9ff); }
@keyframes ss-golden-sparkle { 0%,6% { opacity:0; transform:translate(0,8px) scale(.25); } 24%,44% { opacity:1; transform:translate(0,0) scale(1); } 70% { opacity:.85; } 94%,100% { opacity:0; transform:translate(var(--drift),var(--rise)) scale(.4); } }
.ss-trophy-shelf:not([open]) .ss-trophy-sparkles i,.ss-trophy-shelf:not([open]) .ss-trophy-sheen::before,:is([data-sentence-map],[data-horsey-map])[data-animating=false] .ss-trophy-sheen::before { animation-play-state:paused; }
:is([data-sentence-map],[data-horsey-map]) [data-hotel-trophy=true] .ss-trophy-sparkles i { width:6px; height:6px; --rise:-12px; }
.ss-trophy-interactive.is-bouncing .ss-trophy-sculpture { animation:ss-trophy-wiggle 1.3s ease-in-out both; }
@keyframes ss-trophy-wiggle { 0%,100% { transform:translateY(0) rotate(0); } 16% { transform:translateY(-17px) rotate(0); } 28% { transform:translateY(-22px) rotate(-9deg); } 40% { transform:translateY(-22px) rotate(9deg); } 52% { transform:translateY(-20px) rotate(-7deg); } 64% { transform:translateY(-18px) rotate(7deg); } 75% { transform:translateY(-15px) rotate(-4deg); } 85% { transform:translateY(-11px) rotate(4deg); } 94% { transform:translateY(1px) rotate(0); } }
@media(max-width:650px) {
 :is([data-sentence-map],[data-horsey-map]) .expression-map-tools { flex-wrap:wrap; }
 :is([data-sentence-map],[data-horsey-map]) .expression-map-picker { flex-basis:100%; }
 :is([data-sentence-map],[data-horsey-map]) .ss-trophy-visibility { margin-left:0; }
 :is([data-sentence-map],[data-horsey-map]) .expression-map-zoom { margin-left:auto; }
}
@media(prefers-reduced-motion:reduce) {
 .ss-trophy-sparkles,.ss-trophy-sheen { display:none!important; }
 .ss-trophy-interactive.is-bouncing .ss-trophy-sculpture { animation:none!important; }
}

/* Companion finishes are baked into their transparent sprites; avoid recoloring twice. */
.ss-trophy-sculpture img[data-trophy-material=silver] { filter:drop-shadow(0 0 3px #e3f4ff80); }
.ss-trophy-sculpture img[data-trophy-material=bronze] { filter:drop-shadow(0 0 3px #ffc18b90); }
[data-walking=true] .ss-map-trophy .ss-trophy-sculpture img[data-trophy-material] { filter:none; }
