/* Brand palette drawn from the supplied Happi Friends artwork and LINE samples. */
:root{--cream:#fefbf0;--paper:#fefbf0;--ink:#513529;--mocha:#735548;--forest:#513529;--sky:#d4f1ff;--meadow:#d6ec99;--orange:#ff7338;--yellow:#ffe293;--leaf:#496132;--petal:#f9c8d0}
body,header{background:var(--cream);color:var(--ink)}header{background:#fefbf0f2;border-bottom:1px solid #51352914}p,.muted{color:#735548}.eyebrow{color:#735548}.pill,.nav-bag,.close{background:var(--ink);border-color:var(--ink);color:var(--cream)}.pill.light{background:none;color:var(--ink)}.nav-picks{color:var(--ink)}nav a[aria-current=page]{color:#9e411f}.pill:hover{box-shadow:none}.welcome-strip{background:#e1efb5}.welcome-strip:after{background:radial-gradient(circle at 10px 0,#e1efb5 10px,transparent 10.5px) 0 0/20px 20px}.welcome-strip p,.welcome-strip .eyebrow{color:var(--ink)}.hero-shop-link{border-color:#735548}
.mood-world{padding:58px 0 30px;background:var(--cream)}.mood-heading{align-items:end;margin-bottom:24px}.mood-heading h2,.collection .section-head h2{font-size:clamp(2.3rem,4.3vw,3.6rem);line-height:1.08;color:var(--ink);transform:none;letter-spacing:-.035em}.mood-heading h2{position:relative}.heading-flower{display:inline-block;color:var(--orange);font-size:.65em;margin-left:14px;vertical-align:middle;transform:rotate(12deg)}.mood-heading .eyebrow,.collection .section-head .eyebrow{font-size:.875rem;color:#735548}.mood-heading p{font-size:1rem;color:#735548}
.mood-stage{display:grid;grid-template-columns:1.05fr 1fr;gap:0 50px;min-height:0;background:var(--friend-paper);padding:24px 44px 30px;border:0;border-radius:32px;transition:background .4s;overflow:hidden}.mood-stage:before,.mood-orbit{display:none}.mood-choices{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border-bottom:1px solid #51352920;padding-bottom:18px;margin-bottom:22px}.mood-choices button{display:grid;grid-template-columns:54px 1fr;column-gap:8px;align-content:center;align-items:center;border:0;background:transparent;padding:8px;text-align:left;border-radius:18px;font-size:1rem;box-shadow:none!important;transform:none!important;transition:background .2s}.mood-choices button:hover{background:#ffffff66}.mood-choices button[aria-pressed=true]{background:#ffffffb8;border:0;box-shadow:none}.mood-choices button>span{position:static;color:var(--ink);font-size:1rem;line-height:1.2}.mood-choices button>img{grid-row:1/3;width:54px;height:60px;object-fit:contain}.mood-choices small{font-size:.875rem;color:#735548;line-height:1.25}.friend-portrait{min-height:330px;margin:0;padding:0}.portrait-ring{width:310px;height:310px;border:0;border-radius:50%;background:#ffffff6b;transform:none}.character-play{display:block;border:0;padding:0;background:none;z-index:1;width:100%;max-width:340px;position:relative;border-radius:28px}.friend-portrait .character-play img{display:block;width:100%;height:290px;filter:none;object-fit:contain;transition:transform .25s}.character-play:hover img{transform:translateY(-5px) rotate(-2deg)}.friend-portrait[data-pose='1'] .character-play,.friend-portrait[data-pose='2'] .character-play{overflow:hidden;max-width:285px}.friend-portrait[data-pose='1'] .character-play img,.friend-portrait[data-pose='2'] .character-play img{border-radius:24px}.friend-speech{top:3px;left:50%;max-width:210px;width:auto;min-width:150px;padding:8px 14px;background:var(--cream);border:0;box-shadow:none;color:var(--ink);transform:translateX(-50%) rotate(-4deg);z-index:3;font-size:.875rem}.pose-switch{display:flex;gap:6px;justify-content:center;margin-top:12px;z-index:2}.pose-switch button{background:transparent;border:1px solid #51352930;border-radius:50px;padding:7px 14px;font-size:.875rem;min-height:38px}.pose-switch button[aria-pressed=true]{background:var(--ink);color:var(--cream);border-color:var(--ink)}.portrait-caption{color:#735548;font-size:.875rem;letter-spacing:0;margin-top:10px}.friend-note{padding:6px 0}.friend-note>.eyebrow{color:#735548;font-size:.875rem}.friend-note h3{color:var(--ink);font-size:clamp(2rem,3.5vw,3rem);margin:8px 0 16px;line-height:1.12}.friend-note>p{font-size:1.0625rem;max-width:370px;color:#735548}.friend-story-link{font-size:.9375rem;color:var(--ink);padding:8px 0;border-color:var(--ink)}.friend-picks{margin-top:26px;padding-top:18px;border-top:1px solid #51352920}.friend-picks>span{font-size:.875rem;color:#735548}.friend-picks>div{gap:18px}.friend-picks button{background:none;border:0;padding:0;gap:10px;flex-direction:row}.friend-picks img{width:65px;height:65px;object-fit:contain;border-radius:8px;background:#fff}.friend-picks button>span{font-size:.875rem;color:var(--ink)}.friend-picks small{color:#735548;font-size:.875rem}.mood-end,.mood-end a{font-size:.875rem;color:#735548}
/* Merchandise uses one quiet grid; artwork carries the personality. */
.collection{background:var(--cream);padding:34px 0 42px}.collection .section-head{align-items:end;gap:40px;margin-bottom:22px}.collection .section-head p{color:#735548;font-size:1rem;max-width:330px}.preorder-note{padding:12px 0;border-color:#51352920;border-radius:0;gap:20px}.preorder-note strong,.preorder-note span{font-size:.875rem;color:#735548}.merch-editorial{display:none}.merch-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:26px 0 0;padding:0;overflow:visible}.merch-piece:nth-child(n){margin:0;padding:0;transform:none!important;transition:none;flex:none}.merch-piece .frame-label,.merch-piece .merch-mascot,.merch-number,.merch-piece:before{display:none}.merch-piece:nth-child(n) button{background:none;border:0;border-radius:0;padding:0;box-shadow:none;outline:none;transform:none}.merch-piece:nth-child(n) button:hover{transform:none}.merch-piece:nth-child(n) .merch-photo{padding:0;aspect-ratio:1;border-radius:12px;background:#fff;box-shadow:none;overflow:hidden}.merch-piece:nth-child(n) .merch-photo img{display:block;width:100%;height:100%;max-height:none;object-fit:contain}.merch-caption{display:block;padding:14px 0 0}.merch-caption h3{font-size:1.15rem;line-height:1.3;color:var(--ink);margin:0 0 5px}.merch-caption p{font-size:.875rem;color:#735548}.merch-caption .badge{display:none}.all-merch-cta{margin-top:28px;gap:8px}.all-merch-cta .pill{background:var(--ink);border-color:var(--ink);box-shadow:none;transform:none}.all-merch-cta>span,.collection-footnote{color:#735548;font-size:.875rem}.collection-footnote{max-width:670px}.full-catalog,.events-page{background:var(--cream)}.catalog-heading h2,.events-title h2,.event-teaser h2{color:var(--ink)}#catalog-grid{gap:30px 24px}.catalog-item{background:none;border-radius:0;padding:0;box-shadow:none}.catalog-item:hover{transform:translateY(-3px);box-shadow:none}.catalog-art{background:#fff;border-radius:12px}.catalog-caption{padding:16px 0}.catalog-caption h3{color:var(--ink)}.catalog-caption>span,.catalog-caption p,.catalog-caption strong{color:#735548}.catalog-filters button{background:transparent;border-color:#51352930}.catalog-filters button[aria-pressed=true],.fulfilment-tabs button[aria-pressed=true],.event-tabs button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--cream)}.catalog-search input,.fulfilment-tabs button,.event-tabs button{background:var(--cream);border-color:#51352930}.stock-label{border:0;background:var(--cream);color:#735548}.store-notice{background:#fff3cf;border-color:#e4b84c;color:var(--ink)}.event-teaser{background:#d6ec99}.event-teaser img{border-radius:24px;transform:none}.teaser-stamp{display:none}footer{background:#e1efb5;color:var(--ink)}footer p{color:#735548}.events-empty{background:#d4f1ff}.events-empty h3,.shop-shipping-guide h3{color:var(--ink)}.journey-toast{color:var(--ink);background:var(--cream);border-color:#51352930}
@media(max-width:1000px){.mood-stage{gap:0 24px;padding:22px 24px}.mood-choices button{grid-template-columns:42px 1fr;padding:7px}.mood-choices button>img{width:42px;height:50px}.mood-choices small{font-size:.875rem}.merch-wall{gap:18px}.friend-note h3{font-size:2.25rem}.friend-picks button{flex-direction:column;align-items:start}.friend-picks img{width:70px;height:65px}}
@media(max-width:760px){.mood-world{padding:36px 0 24px}.mood-heading h2,.collection .section-head h2{font-size:2.4rem}.mood-stage{grid-template-columns:1fr;padding:16px 18px 24px;border-radius:24px;gap:0}.mood-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding-bottom:14px;margin-bottom:14px}.mood-choices button{display:flex;flex-direction:column;gap:3px;padding:6px 2px;text-align:center;border-radius:14px}.mood-choices button>img{width:46px;height:50px}.mood-choices button>span{font-size:.875rem}.mood-choices small{display:none}.friend-portrait{min-height:0;padding-top:6px;grid-column:auto}.character-play{max-width:280px}.friend-portrait .character-play img{height:240px}.portrait-ring{width:245px;height:245px;top:0}.friend-speech{top:0;font-size:.875rem}.portrait-caption{font-size:.875rem;margin-bottom:20px}.friend-note{text-align:left;border-top:1px solid #51352920;padding-top:18px}.friend-note h3{font-size:2rem;margin-top:6px}.friend-note>p{max-width:none;font-size:1rem}.friend-picks{margin-top:18px;padding-top:14px}.friend-picks button{flex-direction:row;gap:8px}.friend-picks img{width:55px;height:60px}.friend-picks button>span{font-size:.875rem}.mood-end{flex-direction:column;gap:4px;padding-top:12px}.mood-end a{text-align:left}.collection{padding-top:22px}.collection .section-head{display:block;margin-bottom:16px}.collection .section-head p{max-width:none;margin-top:14px}.preorder-note{display:flex;flex-wrap:wrap;gap:8px}.preorder-note>span{max-width:none;flex-basis:100%;margin:0}.preorder-note .pill{margin-top:4px}.merch-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;margin-top:20px;overflow:visible;scroll-snap-type:none}.merch-piece:nth-child(n){flex:none;margin:0;padding:0}.merch-caption{padding-top:10px}.merch-caption h3{font-size:1rem}.merch-caption p{font-size:.875rem}.collection-footnote{font-size:.875rem}.event-teaser>.wrap{gap:20px}.event-teaser img{height:220px;border-radius:16px}.event-teaser h2{font-size:2rem}.catalog-item{padding:0}.catalog-caption{padding:12px 0}.catalog-caption h3{font-size:1rem}.catalog-caption p{font-size:.875rem}.catalog-art .stock-label{font-size:.8125rem}.all-merch-cta>span{text-align:center}}
@media(prefers-reduced-motion:reduce){.character-play:hover img{transform:none}.catalog-item:hover{transform:none}}
