/* Viral on TikTok seasonal design — warm editorial layout, playful details, useful browsing. */
.viral{--season-ink:#194735;--season-berry:#ad2647;--season-paper:#fffaf2;--season-cream:#fff6e8;--season-border:#e5d2c4;--season-quiet:#496055;--season-peach:#fce4d3;--season-shadow:0 18px 45px rgba(73,38,45,.10);color:var(--season-ink);background:var(--season-paper)}
.viral h1,.viral h2,.viral h3{font-family:Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:-.035em;line-height:1.12}
.viral .topline{background:#194735;color:#fff8eb;font-weight:700;letter-spacing:.13em;font-size:11px;padding:11px 16px}
.viral .masthead{padding-top:21px;padding-bottom:21px;border-color:var(--season-border)}
.viral .brand{font-family:Arial,Helvetica,sans-serif;font-size:clamp(25px,3.4vw,38px);font-weight:900;letter-spacing:-.075em;color:var(--season-ink);line-height:1.02}
.viral .header-note{color:#9d2d45;letter-spacing:.12em;font-weight:700;font-size:11px}
.viral .saved-link{background:#fff6e9;border:1px solid #d4a3a0;font-weight:700;color:#9e2441;white-space:nowrap}
.viral .saved-link:hover{background:#fde0d8}
.viral .categories{border-bottom:1px solid var(--season-border);gap:6px 16px;padding:12px 0}
.viral .categories a{font-weight:700;padding:8px 12px;border:0;border-radius:100px}
.viral .categories a:hover,.viral .categories a.active{background:#f6dfd5;color:#a82445}
.viral .content-nav{border-bottom:1px solid var(--season-border);justify-content:flex-start;padding:12px 0;gap:8px 15px}
.viral .content-nav a{border:0;padding:7px 10px;border-radius:100px;font-size:12px;font-weight:700;color:#355548}
.viral .content-nav a:hover{background:#e8efe5;color:#164434}
.viral .content-nav .season-nav-link{background:#b02247;color:#fffaf2}
.viral .content-nav .season-nav-link:hover{background:#8d1c39;color:white}
.viral .booktop{color:#a02543;font-weight:800}
.viral .book{border-color:#d9cabb;box-shadow:7px 9px 0 #eadbd0}
.viral .cover-copy{background:#174633!important}
.viral .cover-copy .eyebrow{color:#f8cd9c}
.viral .cover-copy em{color:#ffd7ce;font-family:Georgia,serif;font-style:italic;font-weight:500}
.viral .cover-copy h1{font-family:Georgia,serif;letter-spacing:-.055em;font-weight:500}
.viral .cover-copy .btn{background:#bb284e;border-color:#bb284e;border-radius:100px;color:white}
.viral .cover-art img{filter:none}
.viral .cover-art:after{content:'SAW IT ✦ SAVED IT ✦ FOUND IT';background:#fff4df;color:#a62943;border:1px solid #e9b69e;border-radius:16px;right:20px;top:24px;max-width:160px;font-size:13px;line-height:1.25;padding:15px;transform:rotate(7deg)}
.viral .btn,.viral button.btn{border-radius:100px}
.viral .btn:not(.surprise):hover{filter:brightness(.92);transform:translateY(-1px)}
.viral .collection-header{background:#174633;color:#fffaf0}
.viral .collection-header .eyebrow{color:#f6c6a0}
.viral .arrows button{border-color:#b32c4a;color:#b32c4a}
.viral .finds-section,.viral .hype-school{border-color:var(--season-border)}
.viral .finds-section .section-heading h2,.viral .journal-teaser h2{color:#194735}
.viral .surprise{background:#b82449!important;border-color:#b82449!important;color:white!important;transform:rotate(-2deg);box-shadow:4px 5px 0 #f5bc9d}
.viral .find-card{background:#fffdf8;border:1px solid #e8d5c6;border-radius:22px;box-shadow:0 3px 10px rgba(56,44,35,.03)}
.viral .find-card:nth-child(4n+1) .find-image{background:#f8e7d7}
.viral .find-card:nth-child(4n+2) .find-image{background:#f3e5e8}
.viral .find-card:nth-child(4n+3) .find-image{background:#e7efe3}
.viral .find-card:nth-child(4n) .find-image{background:#ede5f2}
.viral .find-copy h3{color:#164735}
.viral .find-copy .save,.viral .product-copy .save{border-color:#ae2948;color:#a32143}
.viral .find-copy .save[aria-pressed=true],.viral .product-copy .save[aria-pressed=true]{background:#a32143;color:white}
.viral .find-filters button[aria-pressed=true]{background:#174633;color:#fff7ea;border-color:#174633}
.viral .find-filters button:hover{background:#f4e1d6}
.viral #find-search{border-color:#d5b8af;background:#fffdf8}
.viral .tag{background:#fff6ec;border-color:#ead5c5;color:#913a43;font-weight:700}
.viral .hype-school{background:#f0eae6;color:#194735}
.viral .hype-grid article{background:#fffaf2;border:1px solid #eadbd0}
.viral .journal-card:nth-child(3n+1){background:#fff0e6}.viral .journal-card:nth-child(3n+2){background:#eeefe5}.viral .journal-card:nth-child(3n){background:#f7e8ea}
.viral .journal-card{border-color:#e4cfc2;border-radius:19px}
.viral .journal-card .number{color:#ad2647}
.viral .find-club{background:#e2ede4;border-color:#b6cfbb;color:#174633}
.viral .find-club h2{color:#174633}
.viral .footer{border-color:var(--season-border)}
.viral button:focus-visible,.viral a:focus-visible,.viral input:focus-visible{outline:3px solid #a02144;outline-offset:4px}

/* Season section */
.seasonal-stage{margin:24px 0 24px;scroll-margin-top:18px;--active-bg:#fee7d0;--active-border:#e9bca0;--active-dark:#194735}
.seasonal-stage[data-active-season="halloween"]{--active-bg:#eee2f4;--active-border:#c9b2df;--active-dark:#412e5b}
.seasonal-stage[data-active-season="christmas"]{--active-bg:#e2eddf;--active-border:#b6c9b5;--active-dark:#174d3a}
.season-intro-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.125em;color:#a52a48;text-transform:uppercase;margin:0 0 15px}
.season-intro-bar>span:last-child{color:#3a6454;font-weight:700}
.season-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border:1px solid var(--active-border);border-radius:28px;overflow:hidden;background:var(--active-bg);min-height:500px;box-shadow:0 9px 28px #804e3220}
.season-hero-copy{padding:clamp(27px,4vw,59px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative}
.season-hero-copy .eyebrow{display:flex;gap:8px;align-items:center;color:#a62544;margin:0 0 15px;font-size:11px;letter-spacing:.13em}
.season-hero-copy h1{font-size:clamp(45px,4.65vw,73px);line-height:1.02;margin:7px 0 20px;letter-spacing:-.058em;max-width:660px}
.season-hero-copy h1 em{display:block;font-weight:500;color:#b12548;line-height:1.06}
.season-hero-copy .season-lead{font-weight:800;font-size:18px;margin:0 0 8px}
.season-hero-copy .season-description{font-size:15px;max-width:440px;line-height:1.7;color:#375c4b;margin:0}
.season-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}
.season-primary,.season-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:47px;border-radius:100px;padding:11px 19px;font-weight:800;font-size:13px;text-decoration:none;border:1px solid transparent;transition:transform .18s,background .18s}
.season-primary{background:#af2447;color:#fffdf4}
.season-primary:hover{background:#8f1837;transform:translateY(-2px)}
.season-secondary{background:#fffaf3;border-color:#bb8f84;color:#204c3b}
.season-secondary:hover{background:#fce8d9}
.season-hero-note{display:flex;align-items:center;gap:8px;font:italic 15px Georgia,serif;color:#8d3945;margin:24px 0 0}
.season-hero-visual{min-height:500px;position:relative;overflow:hidden;background:#f5c7a9;isolation:isolate}
.season-hero-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.season-sticker{position:absolute;right:23px;bottom:23px;background:#fff8e7;border:1px solid #d9b6a5;padding:15px 20px;border-radius:15px;transform:rotate(-7deg);box-shadow:0 7px 25px #4c2c3126;color:#a62544;font:italic 23px/1.1 Georgia,serif;text-align:center;max-width:230px}
.season-sticker small{display:block;font:800 10px/1.5 Arial,sans-serif;letter-spacing:.12em;color:#2a5140;text-transform:uppercase;margin-top:7px}
.season-dots{position:absolute;top:19px;left:20px;display:flex;gap:7px}
.season-dots span{width:11px;height:11px;border-radius:50%;background:#fffaf0;border:1px solid #fff9}
.season-dots span:nth-child(2){background:#ffd9aa}.season-dots span:nth-child(3){background:#c7e3c5}
.season-tabs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:23px 0 19px}
.season-tabs-label{font:italic 19px Georgia,serif;color:#345d4a;margin-right:7px}
.season-tab{display:inline-flex;gap:9px;align-items:center;border:1px solid #dfc5b4;background:#fffdf7;color:#315441;font-weight:800;border-radius:100px;padding:12px 19px;min-height:46px;font-size:14px;transition:transform .16s,background .16s}
.season-tab:hover{background:#ffecd9;transform:translateY(-2px)}
.season-tab[aria-selected="true"]{color:white;background:#194735;border-color:#194735;box-shadow:0 5px 0 #e7d7c8}
.season-tab[data-season-tab="halloween"][aria-selected="true"]{background:#513762;border-color:#513762}
.season-tab[data-season-tab="christmas"][aria-selected="true"]{background:#a82645;border-color:#a82645}
.season-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:38px 0}
.season-card{background:#fff9f2;border:1px solid #e6d1c2;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .18s,box-shadow .18s}
.season-card:hover{transform:translateY(-4px);box-shadow:var(--season-shadow)}
.season-card.is-fall{background:#fff3e5}.season-card.is-halloween{background:#f1e9f7}.season-card.is-christmas{background:#e7efe4}
.season-card-art{height:225px;position:relative;overflow:hidden;isolation:isolate}
.season-card.is-fall .season-card-art{background:linear-gradient(140deg,#f9c59d,#f6ddbe)}
.season-card.is-halloween .season-card-art{background:linear-gradient(140deg,#58406d,#b98dc1)}
.season-card.is-christmas .season-card-art{background:linear-gradient(140deg,#276451,#b2d5ad)}
.season-card-art:before{content:'';position:absolute;inset:24px 20% 0 14%;border:2px solid #fff9;border-radius:50% 50% 5% 5%;transform:rotate(-14deg)}
.season-card-art img{position:absolute;max-width:47%;width:43%;height:172px;object-fit:contain;background:#fffaf1;border:7px solid #fffaf1;border-radius:15px;box-shadow:0 13px 27px #23172330;top:24px;left:10%;transform:rotate(-10deg)}
.season-card-art img+img{top:47px;left:auto;right:9%;transform:rotate(11deg);height:156px}
.season-card.is-halloween .season-card-art img{transform:rotate(-9deg)}
.season-card.is-halloween .season-card-art img+img{transform:rotate(10deg)}
.season-card.is-christmas .season-card-art img{transform:rotate(-7deg)}
.season-card.is-christmas .season-card-art img+img{transform:rotate(10deg)}
.season-tile-sticker{position:absolute;bottom:10px;left:50%;transform:translateX(-50%) rotate(-5deg);background:#fff9e9;border:1px solid #d5ab97;color:#ac2647;border-radius:100px;padding:8px 15px;font:italic 18px Georgia,serif;white-space:nowrap;box-shadow:0 5px 8px #0002}
.season-card-copy{padding:23px 24px 24px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.season-card-copy .eyebrow{font-size:10px;letter-spacing:.14em;margin:0;color:#a12447}
.season-card-copy h3{font-size:clamp(26px,2.55vw,35px);line-height:1.14;margin:12px 0 11px}
.season-card-copy p:not(.eyebrow){font-size:14px;line-height:1.6;color:#3c584b;margin:0 0 21px}
.season-open{margin-top:auto;display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;border-bottom:1px solid #b22648;padding:0 0 4px;color:#a22646;font-size:14px;font-weight:800}
.season-open:hover{color:#5f1f32}
.season-subsection-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:35px 0 23px}
.season-subsection-head .eyebrow{font-size:11px}
.season-subsection-head h2{font-size:clamp(31px,3.6vw,48px);margin:10px 0 0}
.season-subsection-head>p{font-size:14px;color:#4e665b;max-width:270px;margin:0}
.season-interactive{border:1px solid #dcc7bc;border-radius:25px;background:#fffdf7;padding:30px;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:34px}
.season-checklists{border-right:1px solid #eddacb;padding-right:31px}
.season-interactive h3{font-size:28px;margin:6px 0 10px}
.season-interactive p{font-size:14px;color:#4b6358;line-height:1.6}
.season-progress{background:#ebdfd4;height:9px;border-radius:100px;overflow:hidden;margin:16px 0 12px}
.season-progress-bar{height:100%;width:0;background:#ad2647;border-radius:inherit;transition:width .25s}
.season-progress-label{font-size:12px;font-weight:800;color:#a32644}
.season-task-list{padding:0;margin:20px 0 0;list-style:none;display:grid;gap:12px}
.season-task-list label{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;border:1px solid #eedccf;border-radius:11px;background:#fff8f0;font-size:14px;cursor:pointer;line-height:1.45}
.season-task-list label:hover{background:#fff0e0}
.season-task-list input{accent-color:#a62245;width:18px;height:18px;flex:0 0 18px;margin:0;cursor:pointer}
.season-task-list input:checked+span{text-decoration:line-through;opacity:.62}
.season-shopping-intro{display:flex;justify-content:space-between;align-items:center;gap:15px}
.season-shopping-intro p{margin:0;color:#a22646;font-size:11px;text-transform:uppercase;letter-spacing:.11em;font-weight:800}
.season-shopping-intro a{font-size:13px;font-weight:800;color:#a42647;text-decoration:underline;text-underline-offset:4px}
.season-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.season-product{display:flex;align-items:center;gap:12px;min-width:0;padding:9px 10px 9px 9px;border:1px solid #e9dacc;border-radius:13px;background:#fffaf3;transition:background .15s}
.season-product:hover{background:#fce8dd}
.season-product-media{width:74px;height:77px;flex:0 0 74px;border-radius:10px;overflow:hidden;background:#f8e5df;display:grid;place-items:center;font-size:38px}
.season-product-media img{width:100%;height:100%;object-fit:contain;padding:7px;mix-blend-mode:multiply}
.season-product small{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#95505e;font-weight:800;margin-bottom:5px}
.season-product strong{font:600 15px/1.24 Georgia,serif;display:block;color:#194735}
.season-product .arrow{display:block;font-size:13px;font-weight:800;color:#a12646;margin-top:7px}
.season-disclaimer{font-size:12px!important;margin:15px 0 0;color:#5e695d!important}
.season-footer-ribbon{background:#194735;color:#fff9ee;margin:32px 0 0;border-radius:20px;padding:22px 29px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.season-footer-ribbon p{margin:0;font:italic 22px/1.25 Georgia,serif;color:#fff6e7}
.season-footer-ribbon a{color:#fff4d8;font-weight:800;font-size:14px;text-decoration:underline;text-underline-offset:5px;white-space:nowrap}
@media(max-width:1120px){.season-hero-copy{padding:36px}.season-hero-copy h1{font-size:clamp(44px,4.65vw,63px)}.season-card-art{height:195px}.season-card-art img{height:150px}.season-card-art img+img{height:136px}}
@media(max-width:860px){.season-hero{grid-template-columns:1fr}.season-hero-copy{padding:35px}.season-hero-visual{min-height:0;aspect-ratio:4/3;max-height:560px}.season-hero-visual img{object-position:center 38%}.season-hero-copy h1{font-size:clamp(44px,8vw,65px)}.season-cards{grid-template-columns:1fr 1fr}.season-card:last-child{grid-column:1/-1}.season-card:last-child .season-card-art{height:230px}.season-interactive{grid-template-columns:1fr;gap:25px}.season-checklists{border:0;border-bottom:1px solid #ead9c9;padding:0 0 24px}.season-subsection-head{align-items:start}.season-footer-ribbon{flex-wrap:wrap}}
@media(max-width:600px){.viral .masthead{flex-wrap:wrap;gap:10px}.viral .brand{font-size:26px}.viral .saved-link{margin-left:auto}.viral .categories{gap:3px 5px}.viral .categories a{font-size:12px;padding:7px 9px}.viral .content-nav{gap:3px 5px}.viral .content-nav a{font-size:12px}.seasonal-stage{margin-top:16px}.season-intro-bar{font-size:10px;gap:10px}.season-intro-bar>span:last-child{display:none}.season-hero{border-radius:22px}.season-hero-copy{padding:28px 24px}.season-hero-copy h1{font-size:clamp(43px,12vw,58px)}.season-hero-copy .season-lead{font-size:16px}.season-actions{flex-direction:column;width:100%}.season-primary,.season-secondary{width:100%}.season-hero-note{font-size:13px}.season-hero-visual{aspect-ratio:1.25}.season-sticker{font-size:17px;padding:10px 12px;right:13px;bottom:12px}.season-tabs{gap:8px;margin-top:18px}.season-tabs-label{flex-basis:100%;font-size:18px}.season-tab{padding:10px 13px;min-height:43px;font-size:12px}.season-cards{grid-template-columns:1fr;gap:17px;margin:31px 0}.season-card:last-child{grid-column:auto}.season-card-art,.season-card:last-child .season-card-art{height:214px}.season-card-art img{height:162px}.season-card-art img+img{height:144px}.season-card-copy{padding:22px}.season-card-copy h3{font-size:31px}.season-subsection-head{flex-direction:column}.season-interactive{padding:20px 17px;border-radius:19px}.season-task-list label{font-size:13px}.season-products{grid-template-columns:1fr}.season-product-media{height:66px;width:66px;flex-basis:66px}.season-footer-ribbon{padding:23px}.season-footer-ribbon p{font-size:20px}}
@media(prefers-reduced-motion:reduce){.season-card,.season-tab,.season-primary,.season-progress-bar{transition:none!important}.season-card:hover,.season-tab:hover,.season-primary:hover{transform:none!important}}
@media print{.seasonal-stage{display:none!important}}

/* Merchant product photos show without crop or distortion. */
.season-product-media{background:#fffdfa;box-shadow:inset 0 0 0 1px #eee1d8}
.season-product-media img{object-fit:contain;width:100%;height:100%;padding:5px;mix-blend-mode:normal}
.season-product-media .type-art{font:700 22px Georgia,serif;display:grid;place-items:center;width:100%;height:100%;padding:6px;min-height:0;text-align:center;background:#f6e8e0!important}
.season-product-media .type-art .find-icon{font-size:24px}
.season-product-media .type-art>span:not(.find-icon),.season-product-media .type-art small{display:none}
