/* The normal site canvas and Mini Companions shell, with seasonal panel accents. */
.harvest-main{position:relative}
.harvest-main .mini-companions-standalone-view{position:relative;z-index:1}
.harvest-heading{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;text-align:left;align-items:center}
.harvest-heading>div:first-child{grid-column:1;text-align:left;min-width:0}
.harvest-heading h1{font-size:clamp(30px,3.5vw,44px);letter-spacing:-1.4px;background:linear-gradient(110deg,#ffc37a,#ed913e);background-clip:text;-webkit-background-clip:text;overflow-wrap:anywhere}
.harvest-heading-box{padding:12px 17px;border:1px solid #d6954c30;border-radius:13px;background:#1b1b24;text-align:center;min-width:118px}
.harvest-heading-box small{display:block;color:#a69c91;font-size:9px;font-weight:800;letter-spacing:1.4px;margin-bottom:5px}
.harvest-heading-box strong{display:flex;gap:7px;align-items:center;justify-content:center;color:#ffd097;font-size:17px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.harvest-availability{min-width:180px}
.harvest-candy-box{min-width:108px}
.harvest-shell{grid-template-columns:190px minmax(0,1fr)}
.harvest-shell .mini-standalone-sidebar{grid-column:1;grid-row:1;top:12px;align-self:start}
.harvest-shell .mini-standalone-content{grid-column:2;grid-row:1}
.harvest-shell .mini-view-tabs{background:#1b1b24;border-color:#d6954c25}
.harvest-shell .mini-view-tab{font-size:13px;white-space:normal;line-height:1.4;min-height:46px;color:var(--muted)}
.harvest-shell .mini-view-tab:hover{background:#f6a34a0a;color:var(--ink)}
.harvest-shell .mini-view-tab.active{border-color:#e9a35655;color:#ffd09a;background:#e3953012}
@media(max-width:900px){
  .harvest-shell .mini-view-tabs{gap:8px}
  .harvest-shell .mini-view-tab{border:1px solid #b17c4866;border-radius:10px;background:#24232d}
  .harvest-shell .mini-view-tab.active{border-color:#efa65e;background:#e3953026;box-shadow:inset 0 0 0 1px #efa65e22}
}
.harvest-card{border:1px solid #d6954c25;background:#1b1b24;border-radius:16px;padding:22px;margin-bottom:18px;min-width:0}
.harvest-card h2,.harvest-intro h2{font-size:21px;line-height:1.3;margin:0;color:var(--ink)}
.harvest-card h3{font-size:15px;line-height:1.4;margin:0}
.harvest-card p{font-size:12px;line-height:1.6;color:var(--muted);margin:10px 0}
.harvest-card small{font-size:11px;color:var(--muted)}
.harvest-card .button{border:1px solid #e7a25455;background:#e9942e1a;color:#ffd39e;border-radius:9px;padding:10px 16px;font-weight:750;font-size:12px;min-height:42px;gap:6px}
.harvest-card .button:hover{background:#e9942e2d}
.harvest-card .button:disabled{opacity:.4;transform:none}
.harvest-icon{width:20px;height:20px;flex:none;vertical-align:middle;color:#efaf69}
.harvest-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.harvest-panel-heading>span{font-size:11px;color:#baaa97;font-variant-numeric:tabular-nums}
.harvest-intro{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px;flex-wrap:wrap}
.harvest-intro p{font-size:12px;color:var(--muted);margin:6px 0 0}
.harvest-daily-list{display:grid;gap:12px}
.harvest-quest{display:grid;grid-template-columns:minmax(0,1fr) auto 100px;align-items:center;gap:20px;padding:18px;border:1px solid #ffffff0b;border-radius:12px;background:#ffffff02}
.harvest-quest.claimed{border-color:#7ae0b41d}
.harvest-quest-info{min-width:0}
.harvest-quest-info p{margin:6px 0 0;font-size:11px;color:var(--dim)}
.harvest-quest-info a{color:#e8b480;margin-left:10px}
.harvest-quest-rewards{display:grid;gap:4px;font-size:11px;color:var(--muted)}
.harvest-quest-rewards strong{display:flex;align-items:center;gap:5px;color:#f5bf84;font-size:13px;white-space:nowrap}
.harvest-quest-rewards .harvest-icon{width:17px;height:17px}
.harvest-quest-rewards>span{padding-left:22px}
.harvest-variant{display:flex;gap:5px;flex:none}
.harvest-variant button{border:1px solid var(--line);border-radius:8px;background:#ffffff02;color:var(--muted);font-size:11px;padding:8px 12px;min-height:38px}
.harvest-variant .active{border-color:#e9a35655;color:#ffd09a;background:#e3953012}
.harvest-collection-filter{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;margin:0 0 16px}
.harvest-collection-filter input,.harvest-team-options input{accent-color:#eba151}
.harvest-collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.harvest-mini{position:relative;background:#1b1b24;border:1px solid #d6954c20;border-radius:14px;padding:10px 10px 9px;text-align:center;min-width:0}
.harvest-mini.owned{border-color:#7ae0b42d}
.harvest-mini-sprite{position:relative;width:min(176px,100%);aspect-ratio:68/59;height:auto;overflow:hidden;margin:2px auto 2px}
.harvest-mini-sprite img{position:absolute;left:50%;top:calc(50% + 6px);width:min(170px,calc(100% - 6px));height:auto;max-width:none;transform:translate(-50%,-50%);image-rendering:pixelated;object-fit:contain}
.harvest-mini h3{font-size:13px;margin:3px 0;overflow-wrap:anywhere}
.harvest-mini p{font-size:10px;color:var(--dim);margin:2px 0}
.harvest-owned-tick{position:absolute;right:9px;top:9px;background:#7ae0b419;border-radius:50%;color:var(--green);width:20px;height:20px;display:grid;place-items:center;font-size:12px}
.harvest-expedition-list{display:grid;gap:0}
.harvest-duration{padding:5px 9px;border:1px solid #d6954c30;border-radius:6px;color:#efb77b!important}
.harvest-expedition-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line)}
.harvest-expedition-meta strong{color:#efb77b;font-size:12px;font-weight:650;display:flex;align-items:center;gap:6px}
.harvest-team-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;margin:16px 0}
.harvest-team-options label{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;padding:7px;background:#ffffff02;font-size:11px;cursor:pointer}
.harvest-team-options input{width:17px;height:17px;flex:none}
.harvest-team-options img{image-rendering:pixelated;object-fit:contain;flex:none}
.harvest-team-options span{min-width:0;overflow-wrap:anywhere}
.harvest-team-options small{display:block;color:var(--dim);margin-top:3px}
.harvest-expedition-return{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px}
.harvest-expedition-return p{margin:0;font-variant-numeric:tabular-nums}
.harvest-carryover{margin-top:18px}
.harvest-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.harvest-shop-card{display:flex;flex-direction:column;margin-bottom:0;padding:18px}
.harvest-shop-card h2{font-size:16px;margin:6px 0 15px}
.harvest-shop-card .button{margin-top:auto}
.harvest-eyebrow{font-size:9px;letter-spacing:1px;color:var(--dim);font-weight:800}
.harvest-event-tag{display:inline-block;border:1px solid #e7a25435;background:#e9942e10;border-radius:4px;padding:1px 5px;font-size:8px;letter-spacing:.7px;color:#e7b581;margin-left:6px}
.harvest-cosmetic-preview{height:160px;display:flex;align-items:center;justify-content:center;background:#ffffff02;border:1px solid var(--line);border-radius:12px;margin-bottom:15px;overflow:hidden}
.harvest-cosmetic-preview>img{width:96px;height:96px;border-radius:16px;object-fit:cover}
.harvest-cosmetic-preview .frame-preview{width:96px;height:96px;border-radius:16px;position:relative}
.harvest-cosmetic-preview .frame-preview>i{width:68px;height:68px;border-radius:10px;background:#1d1d26}
.harvest-cosmetic-preview.background{aspect-ratio:16/9;height:auto}
.harvest-cosmetic-preview.background>img{width:100%;height:100%;object-fit:cover;border-radius:0}
.harvest-cosmetic-preview>strong{font-size:clamp(19px,2.5vw,28px);max-width:100%;overflow-wrap:anywhere;text-align:center;padding:12px}
.harvest-gacha-link{font-size:12px;color:#e7b581;white-space:nowrap}
.harvest-notice{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted);margin-top:20px}
.harvest-picture{aspect-ratio:16/9;overflow:hidden;border:1px solid #e7a25435;border-radius:12px;background:#24242e;margin:18px 0 22px}
.harvest-picture>svg,.harvest-picture picture,.harvest-picture img{display:block;width:100%;height:100%;object-fit:cover}
.harvest-picture-piece:not(.revealed){fill:#282831}.harvest-picture-piece{stroke:#dfaa684a;stroke-width:1.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.harvest-picture-piece.revealed{stroke:#160f11aa;stroke-width:.7}
.harvest-picture.complete{border-color:#e7a25466}
.harvest-puzzle-milestones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.harvest-puzzle-reward{display:flex;flex-direction:column;align-items:flex-start;gap:14px;border:1px solid #ffffff10;border-radius:12px;padding:16px;background:#ffffff02}
.harvest-puzzle-reward.unlocked{border-color:#eba15144}
.harvest-milestone{font-size:11px;font-weight:800;color:#efb77b}
.harvest-puzzle-reward>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:3px 7px;align-items:center}
.harvest-puzzle-reward>div>.harvest-icon{grid-row:1/3}
.harvest-puzzle-reward strong{font-size:13px}
.harvest-puzzle-reward small{grid-column:2;font-size:11px;color:var(--muted)}
.harvest-puzzle-reward>a{font-size:11px;color:#e7b581}
.harvest-puzzle-reward>.button,.harvest-puzzle-reward>.harvest-locked,.harvest-puzzle-reward>a:first-of-type{margin-top:auto}
.harvest-locked{font-size:11px;color:var(--dim);min-height:42px;display:flex;align-items:center}
.harvest-art-credit{font-size:9px!important;color:var(--dim);margin-top:18px!important}
.harvest-art-credit a{color:var(--dim)}
.harvest-sound-toggle{font:inherit;font-size:11px;border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--muted);background:#ffffff02;cursor:pointer;margin:12px 0 0;width:100%}
.harvest-loading{text-align:center;padding:60px 0;color:var(--muted);font-size:13px}
.harvest-error{color:var(--red)}
.harvest-expired{border:1px solid #e7a25430;border-radius:10px;background:#e7a25408;padding:12px 16px;color:#e7b581;font-size:12px;margin-bottom:18px}
.harvest-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(480px,calc(100vw - 30px));padding:13px 20px;border:1px solid #e7a25450;border-radius:10px;background:#25252f;color:var(--ink);z-index:1100;font-size:12px;box-shadow:0 5px 25px #0006}
/* Static decoration stays at the edges; no recurring particle loop. */
.harvest-main::before,.harvest-main::after{content:"";position:absolute;width:90px;height:110px;top:0;background:url('/events/halloween-2026/assets/halloween-edge-web.svg') top left/contain no-repeat;pointer-events:none;opacity:.3}
.harvest-main::before{left:-14px}.harvest-main::after{right:-14px;transform:scaleX(-1)}
.harvest-edge-pumpkins{position:absolute;left:-22px;right:-22px;bottom:23px;display:flex;justify-content:space-between;pointer-events:none;opacity:.38}
.harvest-edge-pumpkins .harvest-icon{width:34px;height:34px}
.harvest-action-flash .harvest-candy-box{animation:harvest-flash .65s ease-out}
.harvest-action-burst{position:fixed;pointer-events:none;left:50%;top:45%;z-index:1100;width:0;height:0}
.harvest-action-burst>span{position:absolute;animation:harvest-burst .9s ease-out both;transform:rotate(var(--angle));animation-delay:calc(var(--i)*12ms)}
.harvest-action-burst .harvest-icon{width:24px;height:24px;color:#efad65}
.harvest-action-burst>strong{position:absolute;white-space:nowrap;transform:translateX(-50%);color:#ffd4a1;font-size:24px;text-shadow:0 2px 12px #000;animation:harvest-candy-float 1.2s ease-out both}
.harvest-action-burst.error{display:none}
@keyframes harvest-flash{20%{box-shadow:0 0 25px #e8a25450;border-color:#e8a25480}100%{box-shadow:none}}
@keyframes harvest-burst{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-130px) scale(1)}}
@keyframes harvest-candy-float{0%{opacity:0;translate:0 20px}20%,65%{opacity:1}100%{opacity:0;translate:0 -45px}}
@media(max-width:1100px){.harvest-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.harvest-quest{grid-template-columns:minmax(0,1fr) auto;gap:12px}.harvest-quest .button{grid-column:2;grid-row:1/3;min-width:95px}.harvest-quest-rewards{grid-column:1;grid-row:2;display:flex;gap:12px;flex-wrap:wrap}.harvest-quest-rewards>span{padding:0}}
@media(max-width:900px){.harvest-shell{grid-template-columns:1fr}.harvest-shell .mini-standalone-sidebar{position:static;grid-column:1;grid-row:1}.harvest-shell .mini-standalone-content{grid-column:1;grid-row:2}.harvest-shell .mini-view-tabs{display:flex;flex-direction:row;flex-wrap:wrap}.harvest-shell .mini-view-tab{width:auto;flex:1 1 120px;text-align:center;padding:10px}.harvest-sound-toggle{width:auto;margin:10px 0 0;display:block;margin-left:auto}.harvest-heading h1{font-size:32px}.harvest-heading-box{padding:11px 12px;min-width:100px}.harvest-availability{min-width:160px}.harvest-heading-box strong{font-size:15px}.harvest-team-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.harvest-heading{grid-template-columns:1fr 1fr;gap:10px;padding-bottom:18px}.harvest-heading>div:first-child{grid-column:1/-1;text-align:left}.harvest-heading h1{font-size:34px}.harvest-heading-box{width:100%;min-width:0;align-self:stretch}.harvest-availability{grid-column:1}.harvest-candy-box{grid-column:2}.harvest-shell{gap:16px}.harvest-card{padding:16px}.harvest-card h2,.harvest-intro h2{font-size:19px}.harvest-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.harvest-mini{padding:10px 8px 9px}.harvest-mini-sprite{width:min(144px,100%);aspect-ratio:68/61;height:auto}.harvest-shop-grid{gap:10px}.harvest-shop-card{padding:12px}.harvest-cosmetic-preview{height:125px;margin-bottom:12px}.harvest-cosmetic-preview.background{height:auto}.harvest-cosmetic-preview>img,.harvest-cosmetic-preview .frame-preview{width:80px;height:80px}.harvest-cosmetic-preview.background>img{width:100%;height:100%}.harvest-cosmetic-preview .frame-preview>i{width:55px;height:55px}.harvest-shop-card h2{font-size:14px}.harvest-shop-card .button{padding:9px 5px;font-size:11px}.harvest-puzzle-milestones{grid-template-columns:1fr}.harvest-team-options{grid-template-columns:1fr}.harvest-expedition-meta{align-items:flex-start;flex-direction:column}.harvest-picture{border-radius:8px}.harvest-main::before,.harvest-main::after{width:50px;height:62px;top:80px;opacity:.2}.harvest-main::before{left:0}.harvest-main::after{right:0}.harvest-edge-pumpkins{left:0;right:0;bottom:18px}.harvest-quest{padding:14px;gap:9px}.harvest-quest-info h3{font-size:13px}.harvest-quest-rewards{font-size:10px;gap:6px}.harvest-quest-rewards strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.harvest-main *, .harvest-main *::before,.harvest-main *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.harvest-action-burst{display:none}}

/* Puzzle reward slots share a continuous piece progression rail. */
.harvest-progression{width:100%;min-width:0;overflow:visible;padding:5px 0 0}
.harvest-milestone-track{position:relative;width:100%;min-width:0;height:192px;margin:0;box-sizing:border-box}
.harvest-progress-rail{position:absolute;left:6px;right:64px;top:12px;height:6px;border-radius:5px;background:#393139}
.harvest-progress-rail>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ca712e,#ffc579)}
.harvest-progress-tick{display:none}
.harvest-progress-milestone{position:absolute;top:0;width:118px;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--muted)}
.harvest-progress-point{display:grid;place-items:center;width:30px;height:30px;border:3px solid #3c3439;border-radius:50%;background:#22212b;font-size:13px;font-weight:800;flex:none}
.harvest-progress-milestone.reached .harvest-progress-point{border-color:#edaa61;background:#5b3d29;color:#ffcf92}
.harvest-progress-milestone.claimed .harvest-progress-point{background:#b57635;color:#fff1d6}
.harvest-progress-milestone>strong{font-size:11px;color:#efbb83}
.harvest-progress-rewards{min-height:57px;display:flex;flex-direction:column;justify-content:center;gap:6px;font-size:11px;line-height:1.35}
.harvest-progress-rewards>span{display:flex;gap:5px;align-items:center;justify-content:center}
.harvest-progress-rewards .harvest-icon{width:15px;height:15px}
.harvest-progress-rewards .harvest-background-reward{gap:2px}
.harvest-progress-rewards .harvest-background-reward .harvest-icon{width:13px;height:13px}
.harvest-progress-rewards .harvest-background-reward>span{max-width:76px;text-align:center}
.harvest-progress-milestone:last-child .harvest-progress-rewards{width:100%;margin-inline:auto}
.harvest-progress-milestone:last-child .harvest-background-reward{width:fit-content;margin-inline:auto}
.harvest-progress-milestone .button{padding:7px 10px;min-height:34px;font-size:10px}
/* Dense admin milestones and narrow viewports wrap reward cards without horizontal scroll. */
.harvest-milestone-track.is-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;gap:14px;padding-top:43px}
.harvest-milestone-track.is-compact .harvest-progress-rail{left:9px;right:9px;top:12px}
.harvest-milestone-track.is-compact .harvest-progress-tick{display:block;position:absolute;top:50%;width:15px;height:15px;box-sizing:border-box;border:3px solid #54413a;border-radius:50%;background:#22212b;transform:translate(-50%,-50%)}
.harvest-milestone-track.is-compact .harvest-progress-tick:last-child{transform:translate(-100%,-50%)}
.harvest-milestone-track.is-compact .harvest-progress-milestone{position:static;width:auto;min-width:0;transform:none;box-sizing:border-box;padding:10px 7px 12px;border:1px solid #d6954c25;border-radius:12px;background:#ffffff02}
.harvest-milestone-track.is-compact .harvest-progress-milestone .button{margin-top:auto}
@media(max-width:400px){.harvest-milestone-track.is-compact{gap:9px}.harvest-milestone-track.is-compact .harvest-progress-rewards{font-size:10px}}
.harvest-collection-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px}
.harvest-collection-controls .harvest-collection-filter{margin:0}
.harvest-intro .harvest-gacha-button{border:1px solid #e7a25444;background:#e9942e12;color:#ffd09a;font-size:11px;padding:9px 12px;border-radius:8px;text-decoration:none}
@media(max-width:620px){.harvest-candy-box{grid-column:1}.harvest-availability{grid-column:2}.harvest-collection-controls{gap:8px}.harvest-collection-controls .harvest-variant button{padding:8px 10px}.harvest-intro .harvest-gacha-button{white-space:nowrap}}
