:root{--chat-send-size:44px;--chat-send-inset:10px;--review-cover-height:200px;--review-preview-lines:3;--review-list-cover:160px}
#app[data-view=chat] .chat-entry{position:relative;display:block}
#app[data-view=chat] .chat-entry textarea{display:block;width:100%;box-sizing:border-box;padding:16px calc(var(--chat-send-size) + var(--chat-send-inset)*2) 16px 16px;min-height:76px;border-radius:20px}
#app[data-view=chat] .chat-entry .chat-send{position:absolute;right:var(--chat-send-inset);bottom:var(--chat-send-inset);width:var(--chat-send-size);height:var(--chat-send-size);min-height:var(--chat-send-size);padding:0;border-radius:50%;display:grid;place-items:center}
.chat-send .ui-symbol{width:24px;height:24px}
.composer-visibility{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.composer-visibility .public-choice{min-height:106px;border-color:var(--teal);background:var(--mint)}
.composer-visibility .public-choice strong{font-size:16px}
.composer-visibility .private-choice{align-self:center;min-height:72px;padding:12px}
.review-view-switch{display:flex;gap:4px;justify-content:flex-end;margin-bottom:14px;flex-wrap:wrap}
.review-view-switch .button{display:flex;align-items:center;gap:8px;border:1px solid transparent}
.review-view-switch [aria-pressed=true]{background:var(--mint);color:var(--teal);border-color:var(--line)}
.review-view-album{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.review-preview-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}
.review-cover{position:relative;display:block;border:0;border-bottom:1px solid var(--line);width:100%;height:var(--review-cover-height);padding:0;background:linear-gradient(135deg,var(--mint),var(--canvas));cursor:pointer;overflow:hidden;color:var(--teal-dark)}
.review-cover img,.review-cover video{width:100%;height:100%;object-fit:cover;display:block}
.review-cover-product{font-size:28px;font-weight:750;letter-spacing:-.04em}.review-cover>.badge{position:absolute;bottom:12px;left:12px;background:var(--surface)}
.review-preview-copy{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.review-preview-copy h3{margin:0;font-size:17px;overflow-wrap:anywhere}
.review-preview-copy h3 button,.review-board button{border:0;background:transparent;text-align:left;cursor:pointer;padding:0;color:var(--ink);font:inherit;font-weight:650;line-height:1.5}
.review-excerpt{display:-webkit-box;-webkit-line-clamp:var(--review-preview-lines);-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;font-size:14px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.review-preview-copy .review-meta{gap:8px;flex-wrap:wrap}.review-preview-copy time{margin:0;font-size:11px}
.review-preview-copy .review-actions{margin-top:auto;padding-top:8px}.review-preview-copy .review-actions .button{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px}
.review-preview-copy .review-author{margin:0;font-size:12px}
.review-view-list .review-preview-card{flex-direction:row;align-items:stretch}.review-view-list .review-cover{width:var(--review-list-cover);height:auto;min-height:180px;flex:none;border-bottom:0;border-right:1px solid var(--line)}
.review-view-list .review-preview-copy{padding:18px}.review-view-list .review-actions .button{width:auto;gap:12px}
.review-view-board{display:block}.review-board{border:1px solid var(--line);border-radius:14px;background:var(--surface)}.review-board table{min-width:640px}.review-board td:first-child{min-width:260px}.review-board td:first-child .badge{margin-right:10px}.review-board .review-author{margin:0}.review-board time{white-space:nowrap;font-size:12px}
@media(max-width:1199px){.review-view-album{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.review-view-album{grid-template-columns:minmax(0,1fr)}.review-view-switch{justify-content:flex-start}.review-view-switch .button{padding:8px;font-size:12px}.review-view-list .review-cover{width:100px;min-height:150px}.review-view-list .review-preview-copy{padding:12px}.review-view-list .review-cover-product{font-size:17px}.composer-visibility{grid-template-columns:1fr}.composer-visibility .private-choice{min-height:60px}.review-view-album .review-cover{height:220px}.review-excerpt{-webkit-line-clamp:2}}
:root{--challenge-spirit-size:164px;--challenge-guide-duration:9s;--challenge-guide-paper:#fff7e4;--challenge-guide-ink:#354c27}
.challenge-guide{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-start;gap:20px;background:var(--challenge-guide-paper);border:1px solid #e5ddc2;border-radius:22px;padding:4px 24px 4px 4px;color:var(--challenge-guide-ink)}
.challenge-spirit{width:var(--challenge-spirit-size);height:var(--challenge-spirit-size);flex:none;border-radius:20px;background-image:url('/assets/challenge-guide.png');background-size:300% 200%;background-position:0 0;animation:challenge-gestures var(--challenge-guide-duration) steps(1,end) infinite}
.challenge-speech{position:relative;background:#fffdf6;border:1px solid #e4dcc4;border-radius:18px;padding:18px 22px;max-width:620px;box-shadow:0 4px 18px #5c693908;flex:1}
.challenge-speech::before{content:'';position:absolute;top:calc(50% - 8px);left:-9px;width:16px;height:16px;background:#fffdf6;border-left:1px solid #e4dcc4;border-bottom:1px solid #e4dcc4;transform:rotate(45deg)}
.challenge-speech strong{font-size:17px;line-height:1.6;overflow-wrap:anywhere}.challenge-speech p{font-size:14px;line-height:1.7;margin-top:6px;min-height:48px;overflow-wrap:anywhere}
@keyframes challenge-gestures{0%,100%{background-position:0 0}16%{background-position:50% 0}24%{background-position:100% 0}32%{background-position:50% 0}40%{background-position:100% 0}48%{background-position:0 100%}63%{background-position:50% 100%}78%{background-position:100% 100%}93%{background-position:0 0}}
@media(max-width:767px){:root{--challenge-spirit-size:100px}.challenge-guide{gap:10px;padding:10px;align-items:center}.challenge-speech{padding:12px}.challenge-speech strong{font-size:14px}.challenge-speech p{font-size:12px;min-height:62px}}
@media(prefers-reduced-motion:reduce){.challenge-spirit{animation:none}}

.review-cover-error{display:block;padding:18px;font-size:12px;line-height:1.7;color:var(--muted)}
.review-cover img[hidden]{display:none}

/* Account rewards: one earned receipt and one clearly separate next action. */
:root{--point-celebration-gap:16px;--point-reward-badge-size:30px}
.point-celebration{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:var(--point-celebration-gap);background:var(--surface);padding:16px 18px;overflow:hidden}
.point-celebration:not(:has(.point-next)){grid-template-columns:1fr}
.point-receipt-content{min-width:0}.point-receipt-heading,.point-next-top{display:flex;align-items:center;gap:8px}
.point-receipt-heading>strong{font-size:13px}.point-receipt-heading .button{margin-left:auto;padding:4px 8px;font-size:12px}
.point-reward-badge,.point-next-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--point-reward-badge-size);height:var(--point-reward-badge-size);border-radius:10px;background:var(--mint);color:var(--ink)}
.point-earned-amount{display:block;font-size:18px;line-height:1.45;margin:8px 0 2px;overflow-wrap:anywhere}
.point-receipt-message{font-size:12px;color:var(--muted);margin:5px 0 0}
.point-next{min-width:0;border-left:1px solid var(--line);padding-left:var(--point-celebration-gap)}
.point-next-top>strong{font-size:12px}.point-next-amount{margin-left:auto;font-size:16px;font-weight:800;color:var(--accent)}
.point-next p{font-size:12px;line-height:1.5;margin:6px 0}.point-next-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--accent)}
.point-next-link .ui-symbol{width:16px;height:16px}.point-other-actions{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px}.point-other-actions a{font-size:11px;color:var(--muted)}
.point-receipt-details{margin-top:6px;font-size:12px}.point-receipt-details summary{cursor:pointer;color:var(--accent)}
#app[data-view="chat"] .point-celebration{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:12px;padding:10px 14px}
#app[data-view="chat"] .point-celebration:not(:has(.point-next)){grid-template-columns:1fr}
#app[data-view="chat"] .point-earned-amount{font-size:15px;margin-top:3px}
#app[data-view="chat"] .point-celebration .point-receipt-details ul{max-height:90px}
@media(max-width:767px){.point-celebration,#app[data-view="chat"] .point-celebration{grid-template-columns:1fr;padding:12px;gap:10px}.point-next{border-left:0;border-top:1px solid var(--line);padding:10px 0 0}.point-earned-amount{font-size:16px}.point-other-actions{margin-top:6px}#app[data-view="chat"] .point-receipt-message{display:none}#app[data-view="chat"] .point-next p{margin:4px 0}}
@media(max-width:767px){
  #app[data-view="chat"] .point-celebration{padding:8px 10px;gap:6px}
  #app[data-view="chat"] .point-receipt-heading{gap:6px}
  #app[data-view="chat"] .point-reward-badge,#app[data-view="chat"] .point-next-icon{width:22px;height:22px;border-radius:7px}
  #app[data-view="chat"] .point-receipt-heading>strong{font-size:11px}
  #app[data-view="chat"] .point-earned-amount{font-size:13px;margin:2px 0}
  #app[data-view="chat"] .point-receipt-content>.micro,#app[data-view="chat"] .point-next p{display:none}
  #app[data-view="chat"] .point-next{padding-top:6px}
  #app[data-view="chat"] .point-next-top{display:inline-flex;gap:5px;vertical-align:middle}
  #app[data-view="chat"] .point-next-top>strong{font-size:11px}
  #app[data-view="chat"] .point-next-amount{font-size:13px;margin-left:3px}
  #app[data-view="chat"] .point-next-link{font-size:11px;float:right;margin-top:4px;gap:3px}
  #app[data-view="chat"] .point-other-actions{clear:both;margin-top:4px}
}

:root{--challenge-index-size:36px;--challenge-mission-gap:16px}
.challenge-missions .mission-index{width:var(--challenge-index-size);min-width:var(--challenge-index-size);height:var(--challenge-index-size);flex:0 0 var(--challenge-index-size)}
.challenge-mission,.quiz-heading{align-items:flex-start;gap:var(--challenge-mission-gap)}
.challenge-mission input{margin-top:7px}
.challenge-quiz{padding:20px 0 0;min-width:0}
.quiz-heading{display:flex;gap:var(--challenge-mission-gap);align-items:flex-start}.quiz-heading>div{min-width:0}.quiz-heading h3{font-size:16px;line-height:1.55;margin:3px 0 10px;overflow-wrap:anywhere}
.challenge-quiz fieldset{border:0;margin:12px 0;padding:0;min-width:0}.quiz-options{display:grid;gap:8px}
.quiz-option{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;line-height:1.5;font-weight:500;overflow-wrap:anywhere}
.quiz-option input{width:17px;height:17px;min-height:0;padding:0;flex:none;margin:0}.quiz-option-number{font-size:12px;opacity:.65;flex:none}
.quiz-option:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.quiz-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.quiz-option.wrong{opacity:.5}.quiz-option.correct{border-color:var(--teal);background:var(--mint)}.quiz-option:has(input:disabled){cursor:default}
.quiz-actions,.quiz-hint{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.quiz-actions{margin-top:14px}.quiz-hint{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted)}.quiz-hint small{font-size:12px}.quiz-hint button{font-size:12px;min-height:36px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--teal);font-weight:600}.quiz-hint button:hover{background:var(--mint)}
.quiz-result{font-size:13px;line-height:1.65;margin-top:12px;overflow-wrap:anywhere}.quiz-result:empty{display:none}.quiz-result p{margin:6px 0 0}.quiz-result.failed,.quiz-failed-note{color:var(--ink)}
.challenge-spirit{background-color:#f8f4ea}.challenge-quiz form{margin:0}
@media(max-width:900px){:root{--challenge-mission-gap:12px}}
@media(max-width:480px){.challenge-quiz{padding:14px 0 0}.quiz-option{padding:10px}.quiz-actions .button{min-height:44px}.quiz-heading h3{font-size:15px}}

.challenge-spirit[data-character="olive"]{background-image:url("/assets/challenge-characters/olive.webp")}

.challenge-spirit[data-character="gardener"]{background-image:url("/assets/challenge-characters/gardener.webp")}

.challenge-spirit[data-character="explorer"]{background-image:url("/assets/challenge-characters/explorer.webp")}

.challenge-spirit[data-character="dog"]{background-image:url("/assets/challenge-characters/dog.webp")}

.challenge-spirit[data-character="cat"]{background-image:url("/assets/challenge-characters/cat.webp")}

.challenge-spirit[data-character="rabbit"]{background-image:url("/assets/challenge-characters/rabbit.webp")}

.challenge-spirit[data-character="fox"]{background-image:url("/assets/challenge-characters/fox.webp")}

.challenge-spirit[data-character="bear"]{background-image:url("/assets/challenge-characters/bear.webp")}

.challenge-spirit[data-character="panda"]{background-image:url("/assets/challenge-characters/panda.webp")}

.challenge-spirit[data-character="otter"]{background-image:url("/assets/challenge-characters/otter.webp")}

.challenge-spirit[data-character="owl"]{background-image:url("/assets/challenge-characters/owl.webp")}

.challenge-spirit[data-character="penguin"]{background-image:url("/assets/challenge-characters/penguin.webp")}

.challenge-spirit[data-character="deer"]{background-image:url("/assets/challenge-characters/deer.webp")}

.challenge-spirit[data-character="turtle"]{background-image:url("/assets/challenge-characters/turtle.webp")}

.challenge-spirit[data-character="robot"]{background-image:url("/assets/challenge-characters/robot.webp")}
