.cp-page,.cp-group{--cp-line:#d8d1c6;--cp-muted:#70695f;--cp-accent:#a72e2a;--cp-bright:#fbf9f4;color:#181919;font-size:1rem;line-height:1.6;min-width:0}
.cp-page *,.cp-group *,.cp-group::before,.cp-group::after{box-sizing:border-box}
.cp-page :where(h1,h2,h3,p,figure,dl,dd),.cp-group :where(h1,h2,h3,p,figure){margin:0}
.cp-page h1{font-size:1.625rem;line-height:1.3;font-weight:600;letter-spacing:-.01em;text-wrap:balance}
.cp-page h2{font-size:1.375rem;line-height:1.35;font-weight:600;letter-spacing:-.01em;text-wrap:balance}
.cp-page :where(p,span),.cp-group :where(p,span){overflow-wrap:break-word}
.cp-page p,.cp-group p{text-wrap:pretty}
.cp-page :where(button,input,textarea),.cp-group :where(button,input,textarea){font:inherit;color:inherit}
.cp-page :where(button,summary),.cp-group :where(button,summary){cursor:pointer}
.cp-page :where(button,input,textarea,summary):focus-visible,.cp-group :where(button,input,textarea,summary):focus-visible{outline:2px solid var(--cp-accent);outline-offset:4px}
.cp-page button:disabled,.cp-group button:disabled{cursor:default;opacity:1}
.cp-page .btn,.cp-group .btn{text-align:center;min-height:44px;white-space:normal;transition:box-shadow .2s,transform .18s var(--ease)}
.cp-page .btn-primary,.cp-group .btn-primary{color:#f2eee5;background:#181919;box-shadow:0 5px 12px #23201c12,inset 0 1px #ffffff12}
.cp-page .btn-primary:hover,.cp-group .btn-primary:hover{color:#f2eee5;background:#343634}
.cp-page .btn-primary:active,.cp-group .btn-primary:active{color:#f2eee5;background:#181919}
.cp-page .btn-quiet,.cp-group .btn-quiet{color:#181919;background:#e8e1d5}
.cp-page .btn-quiet:hover,.cp-group .btn-quiet:hover{color:#181919;background:#ddd3c3}
.cp-page .btn-quiet:active,.cp-group .btn-quiet:active{color:#181919;background:#d8d1c6}
.cp-page .btn:disabled,.cp-page .btn:disabled:hover,.cp-group .btn:disabled,.cp-group .btn:disabled:hover{color:#181919;background:#d8d1c6;box-shadow:none;transform:none;opacity:1}
.cp-page .btn[aria-busy=true],.cp-group .btn[aria-busy=true]{color:#f2eee5;background:#181919;opacity:1}
.cp-page strong,.cp-group strong{font-weight:600}
.cp-page ::selection,.cp-group ::selection{color:#fbf9f4;background:#a72e2a}
.cp-page :where(input,textarea),.cp-group :where(input,textarea){caret-color:var(--cp-accent)}
.cp-page :where(input,textarea)::placeholder,.cp-group :where(input,textarea)::placeholder{color:var(--cp-muted);opacity:1}
.cp-muted{color:var(--cp-muted);font-size:.875rem;line-height:1.6}
.cp-accent,.cp-credit{color:var(--cp-accent)}
.cp-number,.cp-wallet,.cp-price,.cp-directory-price,.cp-supply-price,.cp-reward-row strong,.cp-care-status b,.cp-care-stats dd,.cp-ledger-total,.cp-chat-count,.cp-chat-status,.cp-memory-count{font-variant-numeric:tabular-nums}
.cp-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}
.cp-wallet{display:flex;align-items:center;gap:9px;min-height:36px;white-space:nowrap}
.cp-wallet svg{color:var(--cp-accent);flex-shrink:0}
.cp-wallet strong{font-size:1.125rem}
.cp-error{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin:0 0 24px}
.cp-error p,.cp-error-text{color:var(--cp-accent);font-size:.9375rem;line-height:1.6}
.cp-error p{flex:1 1 15rem;max-width:65ch}
.cp-shop-main,.cp-shop-lower{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(17rem,1fr);gap:clamp(32px,5vw,80px);border-top:1px solid var(--cp-line)}
.cp-feature{min-width:0;padding-bottom:24px}
.cp-feature-image{min-height:280px;display:flex;align-items:center;justify-content:center}
.cp-feature-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.cp-feature-heading h2{font-size:1.625rem}
.cp-price{white-space:nowrap;color:var(--cp-muted)}
.cp-price strong{font-size:1.375rem;color:#181919}
.cp-feature-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 20px;margin-top:9px;color:var(--cp-muted)}
.cp-feature .cp-role-line{margin-top:18px;min-height:28px;font-size:1.0625rem;line-height:1.65;max-width:65ch}
.cp-feature-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:24px}
.cp-directory{padding-top:26px;min-width:0}
.cp-directory>h2{margin-bottom:13px}
.cp-directory-row{display:grid;grid-template-columns:67px minmax(0,1fr) auto 17px;gap:11px;align-items:center;width:100%;min-height:84px;padding:7px 0;border:0;border-bottom:1px solid var(--cp-line);background:transparent;text-align:start}
.cp-directory-copy{display:grid;min-width:0;gap:4px}
.cp-directory-copy>strong{font-size:1.0625rem}
.cp-directory-copy>span{font-size:.875rem;color:var(--cp-muted);line-height:1.5}
.cp-directory-state{margin-left:11px}
.cp-directory-price{display:grid;justify-items:end;line-height:1.4}
.cp-directory-price>span{font-size:.875rem;color:var(--cp-muted)}
.cp-directory-arrow{display:flex;color:var(--cp-muted)}
.cp-is-selected{border-bottom-color:var(--cp-accent)}
.cp-is-selected .cp-directory-copy>strong,.cp-is-selected .cp-directory-arrow,.cp-directory-row:hover .cp-directory-copy>strong{color:var(--cp-accent)}
.cp-shop-lower{margin-top:26px;padding-top:27px}
.cp-shop-lower h2{margin-bottom:16px}
.cp-supply-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 0}
.cp-supply-row+.cp-supply-row{border-top:1px solid var(--cp-line)}
.cp-supply-icon{color:var(--cp-muted)}
.cp-supply-row>div{display:grid;gap:2px}
.cp-supply-row>div>span{font-size:.875rem;line-height:1.5;color:var(--cp-muted)}
.cp-supply-price{white-space:nowrap}
.cp-supply-row .btn{padding:8px 16px}
.cp-reward-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:6px 0}
.cp-reward-row strong{color:var(--cp-accent)}
.cp-reward-limit{margin-top:10px!important;color:var(--cp-muted);font-size:.875rem;line-height:1.6;max-width:65ch}
.cp-ledger{margin-top:16px}
.cp-ledger>summary,.cp-memories>summary{display:flex;align-items:center;gap:12px;list-style:none;min-height:44px;color:var(--cp-muted)}
.cp-ledger>summary{justify-content:space-between}
.cp-ledger>summary::-webkit-details-marker,.cp-memories>summary::-webkit-details-marker{display:none}
.cp-ledger[open]>summary{margin-bottom:16px;color:#181919}
.cp-ledger[open]>summary svg,.cp-memories[open]>summary svg{transform:rotate(90deg)}
.cp-ledger-lines>.btn{margin-top:14px}
.cp-ledger-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:11px 0;border-bottom:1px solid var(--cp-line)}
.cp-ledger-row>div{display:grid;gap:3px;min-width:0}
.cp-ledger-row time{color:var(--cp-muted);font-size:.8125rem;line-height:1.6}
.cp-ledger-row>strong{white-space:nowrap}
.cp-ledger-total{display:flex;justify-content:space-between;gap:20px;padding:17px 0 8px}
.cp-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}
.cp-section-heading>span{font-size:.875rem;color:var(--cp-muted);white-space:nowrap}
.cp-collection{border-top:1px solid var(--cp-line);padding-top:25px}
.cp-collection-rail{display:flex;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-color:#b9aea0 transparent;scrollbar-width:thin;margin-top:13px;padding-bottom:20px}
.cp-collection-leaf{display:flex;align-items:center;flex:0 0 296px;gap:17px;scroll-snap-align:start;min-height:142px;border:0;border-bottom:1px solid var(--cp-line);background:transparent;text-align:start;padding:5px 21px 13px 0}
.cp-collection-leaf+.cp-collection-leaf{padding-left:21px;border-left:1px solid var(--cp-line)}
.cp-collection-copy{display:grid;justify-items:start;gap:4px;min-width:0}
.cp-collection-copy>strong{font-size:1.125rem}
.cp-collection-copy>span{color:var(--cp-muted)}
.cp-collection-copy .cp-equip-label{display:flex;align-items:center;gap:5px;margin-top:9px;font-size:.875rem}
.cp-is-current{border-bottom-color:var(--cp-accent)}
.cp-is-current .cp-equip-label,.cp-collection-leaf:hover .cp-equip-label{color:var(--cp-accent)}
.cp-album-spread{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);gap:40px;margin-top:19px}
.cp-album-spread>section{min-width:0}
.cp-bag-ledger{border-left:1px solid var(--cp-line);padding-left:40px}
.cp-bag-ledger>.cp-ledger-lines{margin-top:16px}
.cp-companion-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-top:16px}
.cp-care-content{margin-top:23px}
.cp-care-status{display:flex;align-items:center;gap:14px}
.cp-care-status>div{display:grid;gap:3px}
.cp-care-status>div>strong{font-size:1.0625rem}
.cp-care-status>div>span{font-size:.9375rem}
.cp-care-guidance{margin-top:12px!important;max-width:65ch}
.cp-care-stats{display:flex;gap:32px;margin-top:22px!important}
.cp-care-stats>div{display:grid;gap:4px}
.cp-care-stats dt{display:flex;align-items:center;gap:7px;color:var(--cp-muted);font-size:.875rem}
.cp-care-stats dd{margin:0;font-size:1.0625rem}
.cp-care-actions{display:flex;flex-wrap:wrap;gap:18px 24px;margin-top:24px}
.cp-care-actions>div{display:grid;justify-items:start;gap:7px}
.cp-care-actions>div>span{font-size:.875rem;color:var(--cp-muted)}
.cp-care-buy{margin-top:25px;padding-top:20px;border-top:1px solid var(--cp-line)}
.cp-care-buy>span{display:block;color:var(--cp-muted);font-size:.875rem;margin-bottom:10px}
.cp-care-buy>div{display:flex;gap:10px;flex-wrap:wrap}
.cp-care-rule{font-size:.875rem;color:var(--cp-muted);line-height:1.6;max-width:65ch;margin-top:20px!important}
.cp-pet{display:block;position:relative;flex:0 0 auto;max-width:100%;width:var(--cp-pet-size);height:var(--cp-pet-size);background-image:url('./assets/companions-atlas.png');background-size:500% 400%;background-position:var(--cp-pet-x) var(--cp-pet-y);background-repeat:no-repeat}
.cp-condition{position:absolute;top:8%;right:4%;display:grid;place-items:center;width:31px;height:31px;background:var(--cp-bright);color:var(--cp-accent);border-radius:7px}
.cp-is-sick{filter:saturate(.5)}
.cp-group{--cp-dock-size:132px;position:fixed;z-index:32;right:24px;bottom:26px;width:var(--cp-dock-size)}
.cp-dock{position:relative;width:var(--cp-dock-size);height:var(--cp-dock-size);background:transparent}
.cp-icon-button{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:transparent}
.cp-group .cp-icon-button{color:#181919;background:#fbf9f4}
.cp-group .cp-icon-button:hover{color:#181919;background:#e8dfd2}
.cp-dock-pet{display:block;width:var(--cp-dock-size);height:var(--cp-dock-size);margin:0;padding:0;border:0;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab!important}
.cp-group[data-dragging=true] .cp-dock-pet{cursor:grabbing!important}
.cp-dock-pet .cp-pet{--cp-pet-size:var(--cp-dock-size)!important;margin:0;pointer-events:none}
.cp-pet-follow,.cp-pet-idle,.cp-pet-reaction{display:block;width:100%;height:100%;pointer-events:none;transform-origin:50% 86%}
.cp-pet-follow{transform:translate(var(--cp-look-x,0px),var(--cp-look-y,0px)) rotate(var(--cp-look-tilt,0deg));transition:transform 180ms cubic-bezier(.16,1,.3,1)}
.cp-group[data-motion=on] .cp-pet-idle{animation:cp-pet-breathe 5.8s ease-in-out infinite}
.cp-group[data-attentive=true] .cp-pet-idle{animation-play-state:paused}
.cp-group[data-reaction=pat] .cp-pet-reaction{animation:cp-pet-pat 420ms cubic-bezier(.16,1,.3,1)}
.cp-group[data-reaction=hop] .cp-pet-reaction{animation:cp-pet-hop 620ms cubic-bezier(.16,1,.3,1)}
.cp-group[data-dragging=true] .cp-pet-idle,.cp-group[data-motion=off] .cp-pet-idle,.cp-group[data-motion=off] .cp-pet-reaction{animation:none}
.cp-group[data-motion=off] .cp-pet-follow{transform:none;transition:none}
.cp-group.cp-collapsed{--cp-dock-size:76px}
.cp-chat-bubble{position:absolute;right:0;bottom:calc(100% + 14px);width:300px;max-width:calc(100vw - 24px);padding:14px;border-radius:12px;background:var(--cp-bright);box-shadow:0 10px 34px #4b362526;animation:cp-bubble-open 150ms ease-out}
.cp-chat-bubble::after{content:'';position:absolute;z-index:-1;left:var(--cp-tail,68%);bottom:-7px;width:14px;height:14px;border-radius:2px;background:var(--cp-bright);transform:rotate(45deg)}
.cp-chat-bubble[data-placement=below]::after,.cp-chat-bubble[data-placement=flow]::after{top:-7px;bottom:auto}
.cp-chat-bubble[data-placement=right]::after{left:-7px;top:var(--cp-tail,50%);bottom:auto}
.cp-chat-bubble[data-placement=left]::after{left:auto;right:-7px;top:var(--cp-tail,50%);bottom:auto}
.cp-bubble-heading{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cp-bubble-heading h2{font-size:1rem;line-height:1.5;font-weight:600;letter-spacing:0}
.cp-bubble-heading>.cp-icon-button{margin:-4px -4px -4px auto}
.cp-bubble-content{max-height:min(355px,var(--cp-bubble-max,calc(100dvh - 160px)));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9aea0 transparent;padding:4px}
.cp-group .cp-dialogue-surface{display:block;position:relative;width:100%;min-height:62px;padding:3px 2px 1px;border:0;background:transparent;color:#181919;text-align:start;font-size:1rem;line-height:1.75;cursor:pointer}
.cp-group .cp-dialogue-surface[data-phase=waiting]{cursor:default}
.cp-dialogue-copy{display:grid;overflow-wrap:anywhere;white-space:pre-wrap}
.cp-dialogue-reserve,.cp-dialogue-text{grid-area:1 / 1;min-width:0}
.cp-dialogue-reserve{visibility:hidden;user-select:none}
.cp-dialogue-next{display:flex;justify-content:flex-end;align-items:center;height:24px;margin-top:5px;color:#a72e2a}
.cp-dialogue-next[hidden]{display:flex;visibility:hidden}
.cp-dialogue-wait{display:flex;align-items:center;gap:7px;min-height:52px;padding-left:3px}
.cp-dialogue-wait i{width:5px;height:5px;border-radius:50%;background:#181919;animation:cp-dialogue-wait 1.2s ease-in-out infinite}
.cp-dialogue-wait i:nth-child(2){animation-delay:140ms}
.cp-dialogue-wait i:nth-child(3){animation-delay:280ms}
.cp-group[data-motion=off] .cp-dialogue-wait i{animation:none}
.cp-chat-compose{padding:9px 10px;background:#f2eee5;border:1px solid #d8d1c6;border-radius:8px}
.cp-chat-compose:focus-within{border-color:var(--cp-accent)}
.cp-chat-compose textarea{display:block;width:100%;min-height:36px;max-height:110px;padding:0;resize:vertical;border:0;outline:0;background:transparent;font-size:1rem;line-height:1.6;scroll-margin-block:30px;overflow-wrap:anywhere}
.cp-chat-compose textarea:focus-visible{outline:0}
.cp-compose-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.cp-chat-count{font-size:.8125rem;color:var(--cp-muted)}
.cp-chat-count.cp-accent{color:var(--cp-accent)}
.cp-compose-bottom .btn{padding:7px 14px;min-height:40px;font-size:.875rem}
.cp-chat-status{margin-top:9px!important;font-size:.875rem;line-height:1.6;color:var(--cp-accent)}
.cp-chat-status:empty{display:none}
.cp-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cp-group[data-flow=true]{position:relative;right:auto;bottom:auto;width:300px;max-width:calc(100% - var(--sidebar,0px) - 56px);margin:0 28px 34px auto;transform:none!important}
.cp-group[data-flow=true] .cp-dock{margin-left:auto}
.cp-group[data-flow=true] .cp-chat-bubble{position:relative;left:auto!important;top:auto!important;right:auto;bottom:auto;width:100%;margin-top:14px}
@keyframes cp-bubble-open{from{opacity:.65}to{opacity:1}}
@keyframes cp-dialogue-wait{0%,70%,100%{opacity:.35}35%{opacity:1}}
@keyframes cp-pet-breathe{0%,65%,100%{transform:translateY(0) rotate(0deg)}32%{transform:translateY(-3px) rotate(-1deg)}48%{transform:translateY(-1px) rotate(1deg)}}
@keyframes cp-pet-pat{0%,100%{transform:scale(1)}25%{transform:translateY(3px) scale(1.035,.955)}58%{transform:translateY(-2px) scale(.985,1.025)}}
@keyframes cp-pet-hop{0%,100%{transform:translateY(0) rotate(0deg)}18%{transform:translateY(2px) scale(1.03,.97)}44%{transform:translateY(-10px) rotate(-4deg)}70%{transform:translateY(0) rotate(2deg)}85%{transform:translateY(-2px) rotate(-1deg)}}
@media(max-width:1180px){.cp-shop-main,.cp-shop-lower{gap:32px;grid-template-columns:minmax(0,1fr) minmax(17rem,1fr)}.cp-directory-row{grid-template-columns:58px minmax(0,1fr) auto;gap:9px}.cp-directory-row .cp-pet{--cp-pet-size:58px!important}.cp-directory-arrow{display:none}.cp-directory-state{display:block;margin-left:0}.cp-supply-row{gap:10px}.cp-supply-row .btn{padding-inline:12px}.cp-album-spread{gap:28px}.cp-bag-ledger{padding-left:28px}}
@media(max-width:1100px){.cp-group{right:18px}.cp-bubble-content{max-height:min(380px,var(--cp-bubble-max,calc(100dvh - 160px)))}}
@media(max-width:800px){.cp-page-heading{margin-bottom:24px;gap:14px}.cp-wallet{gap:6px;min-height:34px}.cp-wallet svg{width:18px}.cp-shop-main,.cp-shop-lower{grid-template-columns:minmax(0,1fr);gap:26px}.cp-feature{padding-bottom:0}.cp-feature-image{min-height:230px}.cp-feature-image .cp-pet{--cp-pet-size:230px!important}.cp-feature-actions{margin-top:20px}.cp-directory{padding-top:23px;border-top:1px solid var(--cp-line)}.cp-directory-row{grid-template-columns:67px minmax(0,1fr) auto 17px;gap:11px}.cp-directory-row .cp-pet{--cp-pet-size:67px!important}.cp-directory-arrow{display:flex}.cp-directory-state{display:inline;margin-left:10px}.cp-shop-lower{margin-top:25px;padding-top:25px;gap:32px}.cp-supply-row{grid-template-columns:26px minmax(0,1fr) auto auto;gap:10px}.cp-supply-row .btn{padding-inline:13px}.cp-album-spread{grid-template-columns:minmax(0,1fr);gap:32px;margin-top:18px}.cp-bag-ledger{padding:26px 0 0;border-left:0;border-top:1px solid var(--cp-line)}.cp-collection-leaf{flex-basis:276px;gap:12px}.cp-collection-leaf+.cp-collection-leaf{padding-left:18px}.cp-group{--cp-dock-size:96px;right:14px;bottom:calc(90px + env(safe-area-inset-bottom))}.cp-group[data-flow=true]{max-width:calc(100% - 44px);margin:0 22px calc(104px + env(safe-area-inset-bottom)) auto}.cp-page{padding-bottom:20px}}
@media(max-width:360px){.cp-page-heading{flex-wrap:wrap;gap:10px}.cp-wallet{margin-left:auto}.cp-directory-row{grid-template-columns:58px minmax(0,1fr) auto;gap:9px}.cp-directory-arrow{display:none}.cp-directory-state{display:block;margin-left:0}.cp-supply-icon{display:none}.cp-supply-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.cp-supply-row .btn{padding-inline:10px}.cp-collection-leaf{flex-basis:250px}.cp-feature-meta{gap:5px 14px}}
@media(prefers-reduced-motion:reduce){.cp-page *,.cp-group *,.cp-group::before,.cp-group::after{scroll-behavior:auto;transition:none;animation:none}.cp-group[data-cp-group] .cp-pet-idle,.cp-group[data-cp-group] .cp-pet-reaction,.cp-group .cp-dialogue-wait i{animation:none}.cp-group[data-cp-group] .cp-pet-follow{transform:none;transition:none}}
