/* White surfaces; the words, illustrations and fleeting celebrations carry colour. */
.reaction-art{display:block;width:1em;height:1em;max-width:none;object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 1px #4529381a)}
.praise-topbar,.praise-feed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.praise-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.praise-tabs [aria-current=page],.praise-tabs [aria-pressed=true]{outline:1px solid #a5a5a5;outline-offset:2px}
.praise-reactions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.praise-reactions .praise-reaction{margin:0;min-width:44px;min-height:40px;display:inline-flex;gap:5px;align-items:center;justify-content:center;border:1px solid #e5e5e5;background:#fff;transition:background .2s,transform .2s;font-size:11px}
.praise-reaction>span:first-child{font-size:28px;line-height:1}
.praise-reaction:hover{background:#f2f2f2;transform:translateY(-2px)}
.praise-reactions .praise-reaction[aria-pressed=true]{background:#ededed;border-color:#b5b5b5}
.praise-recipient{display:block;font-size:11px;color:var(--muted);margin:4px 0 9px}
.conversation .message.highlight{outline-color:#d4d4d4}
.praise-composer-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.praise-emoji-picker{position:relative}
.praise-emoji-picker summary{list-style:none;cursor:pointer}
.praise-emoji-picker summary::-webkit-details-marker{display:none}
.praise-emoji-options{position:absolute;bottom:calc(100% + 10px);left:0;display:flex;padding:8px;gap:2px;border:1px solid #ddd;background:#fff;border-radius:18px;box-shadow:0 10px 35px #00000014;z-index:5;width:max-content}
.praise-emoji{font-size:23px;width:39px;height:42px;border-radius:12px;cursor:pointer}
.praise-emoji .reaction-art{width:30px;height:30px;margin:auto}
.praise-emoji:hover{background:#eee}
html[data-surface] .panel.praise-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:36px 40px;min-height:244px;margin-bottom:24px;background:radial-gradient(ellipse at 91% 90%,#7faeaa25,transparent 48%),radial-gradient(ellipse at 82% 35%,#a598cf28,transparent 45%),radial-gradient(ellipse at 95% 10%,#d792b228,transparent 45%),#fff}
.praise-hero h1{font-family:'Founders Grotesk',sans-serif;font-size:clamp(42px,4.7vw,66px);font-weight:500;line-height:1.05;letter-spacing:-1.2px;margin:12px 0 14px;color:#411724}
.praise-hero h1>span{color:#8a73b2;font-size:.65em;vertical-align:middle}
.praise-hero p{font-size:13px;line-height:1.8;color:#635e66}
.praise-hero .btn{margin-top:22px}
.praise-hero-art{position:relative;flex:0 0 210px;height:180px;margin-right:40px}
.praise-hero-art span{position:absolute;font-size:150px;line-height:1;color:#8a73b2;left:0;top:0;transform:rotate(-10deg)}
.praise-hero-art span:nth-child(2){font-size:88px;color:#659d98;left:120px;top:92px;transform:rotate(12deg)}
.praise-hero-art span:nth-child(3){font-size:68px;color:#a25980;left:140px;top:6px;transform:rotate(18deg)}
.praise-feed-panel{padding:26px}
.praise-feed-toolbar{margin-bottom:16px}
.praise-project-filter{max-width:280px;min-width:180px}
.praise-project-filter select{font-size:12px;background:#fff;border:1px solid #d4d4d4;border-radius:999px}
.praise-feed-count{font-size:11px;color:var(--muted);margin-bottom:20px}
.praise-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.praise-feed-card{padding:24px;border:1px solid #e4e4e4;border-radius:20px;background:#fff;box-shadow:0 4px 18px #00000004;min-width:0}
.praise-card-byline{display:flex;align-items:baseline;gap:5px 9px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.praise-person{font-weight:600;color:var(--ink)}
.praise-card-byline time{margin-left:auto;font-size:10px}
.praise-card-footer{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid #eee;margin-top:20px;padding-top:13px}
.praise-card-footer button:first-child{text-align:left;overflow-wrap:anywhere}
.praise-card-footer button:last-child{flex-shrink:0}
.praise-more{display:flex;margin:24px auto 0}
.praise-empty{grid-column:1/-1;text-align:center;padding:48px 20px 60px}
.praise-empty>span{color:#82739b;font-size:60px;line-height:1}
.praise-empty h2{font-size:30px;font-weight:500;margin:14px 0 8px}
.praise-empty p{font-size:13px;color:var(--muted)}
.praise-sticker{--praise-ink:#725499;position:relative;display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;padding:20px 7px 18px 0;margin:3px 0 8px;isolation:isolate}
.praise-sticker strong{font-family:'Founders Grotesk',sans-serif;font-weight:500;font-size:clamp(29px,2.8vw,42px);line-height:1.02;letter-spacing:-.7px;color:var(--praise-ink);max-width:330px;text-wrap:balance;transform-origin:20% 70%}
.praise-sticker-icon{font-size:34px;line-height:1;flex-shrink:0}
.praise-spark{font-size:27px;color:#759d9d;align-self:flex-start;margin-top:-4px;flex-shrink:0}
.praise-smashed{--praise-ink:#8255a3;transform:rotate(-2deg)}
.praise-team{--praise-ink:#a04d70}.praise-team .praise-spark{color:#aa873e}
.praise-together{--praise-ink:#387b79}.praise-together strong{font-style:italic}
.praise-beyond{--praise-ink:#7263a0}.praise-beyond .praise-spark{color:#b17d37}
.praise-thinking{--praise-ink:#996526}.praise-thinking strong{text-decoration:underline;text-decoration-color:#b795c1;text-underline-offset:6px;text-decoration-thickness:2px}
.praise-thanks{--praise-ink:#995675}.praise-thanks strong{font-size:clamp(26px,2.5vw,36px);max-width:270px}
.praise-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0 0 24px;min-width:0}
.praise-choice{position:relative;cursor:pointer;min-width:0}
.praise-choice>input{position:absolute;width:1px;height:1px;opacity:0}
.praise-choice>span{margin:0;display:flex;flex-direction:column;justify-content:center;height:100%;min-height:106px;padding:10px 12px;border:1px solid #e3e3e3;border-radius:16px;background:#fff;transition:border-color .2s,background .2s}
.praise-choice>input:checked+span{border-color:#8b8b8b;box-shadow:0 0 0 1px #8b8b8b;background:#fafafa}
.praise-choice>input:focus-visible+span{outline:3px solid #79546b;outline-offset:3px}
.praise-choice:hover>span{background:#f5f5f5}
.praise-choice .praise-sticker{margin:0;padding:8px 0 14px;gap:8px}
.praise-choice .praise-sticker strong{font-size:27px;letter-spacing:-.3px}
.praise-choice .praise-sticker-icon{font-size:30px}
.praise-choice .praise-spark{font-size:16px}
.praise-choice small{display:block;font-size:10px;color:var(--muted);font-weight:400}
.praise-compose-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.praise-compose-wide{grid-column:1/-1}
.praise-compose-fields textarea{min-height:80px}
.praise-big-choice{display:flex;align-items:center;gap:12px;margin-top:18px}
.praise-big-choice>span{margin:0;font-size:12px}
.praise-big-choice small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:3px}
#praise-form .dialog-actions{position:sticky;bottom:-30px;z-index:2;padding:15px 0;margin-top:20px;border-top:1px solid #e6e6e6;background:#fff}
.praise-flight{position:fixed;inset:0;overflow:hidden;z-index:120;pointer-events:none;contain:strict}
.praise-particle{position:absolute;font-size:44px;line-height:1;color:var(--particle-color);opacity:0;animation:praise-float 2.2s var(--delay) cubic-bezier(.18,.62,.28,1) both}
.praise-particle-clap{animation-name:praise-clap}
.praise-particle-fire{animation-name:praise-flame}
.praise-particle-sparkles{animation-name:praise-twinkle}
.praise-flight-big .praise-particle{font-size:50px;animation-duration:2.5s}
.praise-flight-title{position:absolute;left:50%;top:38%;width:max-content;max-width:calc(100vw - 40px);transform:translate(-50%,-50%);animation:praise-title 2.2s ease both;background:#fffffff5;border:1px solid #e4e4e4;box-shadow:0 18px 60px #00000012;border-radius:28px;padding:10px 26px}
.praise-playing strong{animation:praise-pop .8s cubic-bezier(.2,1.6,.35,1) both}
.praise-team.praise-playing strong{animation-name:praise-gather}
.praise-together.praise-playing strong{animation-name:praise-gather}
.praise-beyond.praise-playing strong{animation-name:praise-rise}
.praise-thinking.praise-playing strong{animation-name:praise-tilt}
.praise-thanks.praise-playing strong{animation-name:praise-heartbeat}
.praise-playing .praise-spark{animation:praise-spin 1s ease both}
.praise-playing .praise-sticker-icon{animation:praise-pop .7s .08s cubic-bezier(.2,1.6,.35,1) both}
@keyframes praise-float{0%{opacity:0;transform:translate(-50%,0) scale(.55)}12%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(-1 * var(--rise))) rotate(var(--spin)) scale(.9)}}
@keyframes praise-clap{0%{opacity:0;transform:translate(-50%,0) scale(.55)}18%{opacity:1;transform:translate(calc(-50% + var(--drift) / 6),calc(var(--rise) / -6)) scale(1.15) rotate(-16deg)}40%{transform:translate(calc(-50% + var(--drift) / 2.5),calc(var(--rise) / -2.5)) scale(.95) rotate(12deg)}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(-1 * var(--rise))) rotate(-10deg) scale(.85)}}
@keyframes praise-flame{0%{opacity:0;transform:translate(-50%,0) scale(.55)}15%{opacity:1}45%{transform:translate(calc(-50% + var(--drift) / 2),calc(var(--rise) / -2)) rotate(-8deg)}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(-1 * var(--rise))) rotate(10deg) scale(.8)}}
@keyframes praise-twinkle{0%{opacity:0;transform:translate(-50%,0) scale(.3)}18%{opacity:1;transform:translate(calc(-50% + var(--drift) / 6),calc(var(--rise) / -6)) scale(1.2) rotate(20deg)}50%{transform:translate(calc(-50% + var(--drift) / 2),calc(var(--rise) / -2)) scale(.85) rotate(60deg)}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(-1 * var(--rise))) scale(.4) rotate(130deg)}}
@keyframes praise-title{0%{opacity:0;transform:translate(-50%,-35%) scale(.65) rotate(-5deg)}18%,75%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}100%{opacity:0;transform:translate(-50%,-65%) scale(1.02)}}
@keyframes praise-pop{from{opacity:0;transform:scale(.7) rotate(-7deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes praise-gather{from{opacity:0;transform:translateX(20px);letter-spacing:2px}to{opacity:1;transform:translateX(0)}}
@keyframes praise-rise{from{opacity:0;transform:translate(-15px,25px) rotate(-7deg)}to{opacity:1;transform:none}}
@keyframes praise-tilt{0%{opacity:0;transform:rotate(-8deg) scale(.9)}60%{opacity:1;transform:rotate(3deg)}100%{transform:none}}
@keyframes praise-heartbeat{0%{transform:scale(.8);opacity:0}40%{transform:scale(1.06);opacity:1}65%{transform:scale(.98)}100%{transform:scale(1)}}
@keyframes praise-spin{from{transform:scale(0) rotate(-100deg)}to{transform:scale(1) rotate(0)}}
@media(max-width:900px){.praise-hero-art{flex-basis:145px;margin-right:20px;transform:scale(.8)}.praise-feed{grid-template-columns:1fr}.praise-sticker strong{font-size:36px}.praise-thanks strong{font-size:32px}}
@media(max-width:650px){.praise-topbar{gap:14px;margin-bottom:20px}.praise-topbar>.btn{font-size:10px}.praise-hero{padding:26px 22px;min-height:0}.praise-hero h1{font-size:43px;letter-spacing:-.8px}.praise-hero-art{display:none}.praise-hero p br{display:none}.praise-feed-panel{padding:18px 14px}.praise-feed-card{padding:18px 16px}.praise-feed-toolbar{gap:18px}.praise-project-filter{width:100%;max-width:none}.praise-tabs .btn{padding:8px 11px}.praise-choices{gap:8px}.praise-choice>span{padding:8px;min-height:135px}.praise-choice .praise-sticker{flex-wrap:wrap;gap:5px}.praise-choice .praise-sticker strong{font-size:25px;order:2;width:100%}.praise-choice .praise-spark{font-size:15px}.praise-choice .praise-sticker-icon{font-size:21px}.praise-choice small{font-size:9px}.praise-compose-fields{grid-template-columns:1fr}.praise-composer-tools{gap:6px}.composer-bottom>.row{flex-wrap:wrap;gap:10px}.praise-sticker strong{font-size:31px}.praise-thanks strong{font-size:28px}.praise-sticker-icon{font-size:28px}.praise-spark{font-size:21px}.praise-card-footer{gap:10px}.praise-flight-title{padding:10px 18px}}
@media(prefers-reduced-motion:reduce){.praise-flight{display:none}.praise-playing strong,.praise-playing .praise-spark,.praise-playing .praise-sticker-icon{animation:none!important}.praise-reaction{transition:none!important}.praise-reaction:hover{transform:none}}
.motion-paused .praise-flight,.tab-hidden .praise-flight{display:none}
.motion-paused .praise-playing *,.tab-hidden .praise-playing *{animation:none!important}
@media(max-width:650px){.praise-reactions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;max-width:310px}.praise-reactions .praise-reaction{min-width:0;min-height:38px;padding:4px 2px;gap:2px;flex-wrap:wrap;font-size:10px}.praise-reaction>span:first-child{font-size:24px}.praise-choice .praise-sticker-icon{font-size:27px}.praise-particle{font-size:38px}.praise-flight-big .praise-particle{font-size:44px}#praise-form .dialog-actions{bottom:-23px}}
@media print{.praise-topbar,.praise-reactions,.praise-card-footer,.praise-flight,.praise-feed-toolbar,.praise-hero button{display:none}.praise-feed{display:block}.praise-feed-card{break-inside:avoid;margin-bottom:20px}}

/* Header praise menu, paired with the messages bell. */
.praise-menu{position:relative}
.praise-menu-trigger{position:relative}
.praise-menu[open]>.praise-menu-trigger{outline:1px solid #a5a5a5;outline-offset:2px}
.praise-menu-panel.nav-dropdown{display:flex;flex-direction:column;width:440px;max-width:calc(100vw - 44px);max-height:calc(100dvh - 120px);padding:0;overflow:hidden;background:#fff;border-color:#e4e4e4;box-shadow:0 20px 60px #2424241f,0 4px 14px #2424240f}
.praise-menu-head{flex-shrink:0;padding:18px 20px 14px;border-bottom:1px solid #eee}
.praise-menu-head h2{font-size:20px;line-height:1.1;margin:0}.praise-menu-head p{font-size:11px;color:var(--muted);margin:7px 0 0}
.praise-menu-list{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 20px}
.praise-menu-card{display:flex;flex-direction:column;min-width:0;padding:18px 0;border-bottom:1px solid #e4e4e4;background:#fff}.praise-menu-card:last-child{border:0}
.praise-menu-byline{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;font-size:11px;overflow-wrap:anywhere}
.praise-menu-byline strong{font-weight:600}.praise-menu-byline :is(time,span){color:var(--muted);font-size:10px}
.praise-menu-recipient{margin-top:5px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.praise-menu .praise-sticker{gap:9px;margin:5px 0 4px;padding:9px 0}
.praise-menu .praise-sticker strong{font-size:28px;letter-spacing:-.5px}
.praise-menu .praise-sticker-icon{font-size:34px}.praise-menu .praise-spark{font-size:18px}
.praise-menu-note{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;color:#534e54;font-size:12px;line-height:1.65;margin:0 0 2px}
.praise-menu-source{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:12px;padding-top:10px;border-top:1px solid #eee;text-align:left;font-size:11px;line-height:1.5;overflow-wrap:anywhere;cursor:pointer}
.praise-menu-source span{min-width:0}.praise-menu-source small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:400}
.praise-menu-source svg{width:15px;height:15px;flex-shrink:0}.praise-menu-empty{padding:24px 0;font-size:14px;color:#513242}.praise-menu-empty span{display:block;font-size:12px;color:var(--muted);margin-top:8px}
.praise-menu-all{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:14px 20px;border-top:1px solid #eee;font-size:12px}.praise-menu-all svg{width:16px;height:16px}.praise-menu-all:hover{background:#f7f7f7}
.praise-menu[open] .praise-menu-reveal{animation:inbox-rise var(--pour-length,300ms) var(--pour-delay,0ms) ease-out both}
.praise-menu.closing .praise-menu-reveal{animation:none}
@media(prefers-reduced-motion:reduce){.praise-menu[open] .praise-menu-reveal{animation:none}}
@media(max-width:600px){.praise-menu-list{padding:0 16px}.praise-menu-head{padding:16px}.praise-menu-all{padding:12px 16px}}
@media(max-width:640px){.praise-menu{position:static}.praise-menu-panel.nav-dropdown{top:calc(100% + 6px);left:12px;right:12px;width:auto;max-width:none}}
@media(max-width:420px){.app-header.has-jump:has(.praise-menu){grid-template-columns:minmax(0,1fr) auto auto}}
