:root{--tc-stone-width:min(560px,calc(100vw - 56px));--tc-stone-bottom:24px;--tc-stone-right:28px}.stone-launch{position:fixed;right:var(--tc-stone-right);bottom:var(--tc-stone-bottom);width:var(--tc-stone-width);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;z-index:900}.stone-launch>span{display:none}.stone-art,.stone-canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;filter:drop-shadow(0 8px 5px #0002)}#stone-message{position:fixed;right:var(--tc-stone-right);bottom:calc(var(--tc-stone-bottom) + var(--tc-stone-width)*.75 + 12px);width:min(280px,calc(100vw - 40px));z-index:901;pointer-events:none;color:#fff;background:transparent;border:0;padding:0;text-align:right;text-shadow:0 1px 6px #000b}#stone-message-text{color:#fff!important;font-size:16px;line-height:1.2!important;font-weight:500;margin:0;white-space:pre-line}.stone-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#stone-message[hidden]{display:none!important}.tc-stone-preview{margin:0;background:#fff;color:#000;font-family:Arial,sans-serif}.tc-stone-preview header{padding:18px 22px;display:flex;justify-content:space-between}.tc-stone-preview main{padding:9vh 22px}.tc-stone-preview h1{font-size:clamp(64px,10vw,160px);line-height:.95;margin:0 0 35px;letter-spacing:-.06em}.stone-intro{font-size:24px}.stone-hint{font-size:15px}@media(max-width:600px){:root{--tc-stone-width:min(420px,calc(100vw - 30px));--tc-stone-bottom:20px;--tc-stone-right:15px}#stone-message{width:min(250px,calc(100vw - 30px))}}

#stone-message-text{transform:rotate(-1deg);transform-origin:bottom right}

#stone-message.is-sleeping{animation:pierre-snore 3.6s ease-in-out infinite}
@keyframes pierre-snore{0%,100%{opacity:.4}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){#stone-message.is-sleeping{animation:none}}

.stone-launch{aspect-ratio:4/3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 700ms ease-out}
.stone-launch[data-model-state="ready"]{opacity:1;visibility:visible;pointer-events:auto}
@media(prefers-reduced-motion:reduce){.stone-launch{transition:none}}

#stone-message{right:calc(var(--tc-stone-right) + var(--tc-stone-width)*.5);transform:translateX(50%);text-align:center;width:min(330px,calc(100vw - 40px))}
#stone-message-text{transform:rotate(-2deg);transform-origin:bottom center}
#stone-message.is-thinking #stone-message-text{font-size:24px;animation:pierre-thinking 1s ease-in-out infinite}
@keyframes pierre-thinking{0%,100%{opacity:.55;transform:rotate(-2deg) translateY(0) scale(.96)}50%{opacity:1;transform:rotate(-2deg) translateY(-3px) scale(1.04)}}
@media(prefers-reduced-motion:reduce){#stone-message.is-thinking #stone-message-text{animation:none}}

/* Crop transparent canvas margins so only the rock occupies the corner. */
.stone-launch{width:calc(var(--tc-stone-width)*.5);height:calc(var(--tc-stone-width)*.65);aspect-ratio:auto;overflow:hidden}
.stone-launch .stone-canvas{position:absolute;left:-50%;top:calc(var(--tc-stone-width)*-.04);width:200%;height:auto;max-width:none}
#stone-message{right:calc(var(--tc-stone-right) + var(--tc-stone-width)*.25);bottom:calc(var(--tc-stone-bottom) + var(--tc-stone-width)*.65 + 12px);width:min(330px,calc(var(--tc-stone-width)*.5 + var(--tc-stone-right)*2 - 16px))}

#stone-message:not(.is-sleeping):not(.is-thinking) #stone-message-text{box-sizing:border-box;background:#000;border-radius:12px;padding:10px 14px;text-shadow:none}
.stone-launch{touch-action:none;user-select:none;-webkit-user-select:none}
@media(max-width:600px){.stone-launch{cursor:grab}.stone-launch:active{cursor:grabbing}}

#stone-message-text{font-family:Pantasia,serif!important;font-weight:400!important}
