/* Leatherman's portfolio invitation. Campaign artwork and LINK navigation stay independent. */
.calendar-feature{--season-bg:#304f43;--season-accent:#f1e0ba;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.45fr);grid-template-rows:auto auto;gap:0 64px;background:var(--season-bg);color:#fff4de;padding:66px 100px 38px;transition:background-color .75s ease;overflow:hidden}
.calendar-feature[data-active-season=valentine]{--season-bg:#733e35;--season-accent:#ffdfc8}
.calendar-feature[data-active-season=fathers-day]{--season-bg:#2d505f;--season-accent:#d9f1f0}
.calendar-feature:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 75% 35%,#ffffff15,transparent 62%);pointer-events:none}
.calendar-intro{padding:0;align-self:center;grid-column:1;grid-row:1}.calendar-intro .case-kicker{color:var(--season-accent)!important}
.calendar-intro h2{font-size:clamp(48px,4.2vw,80px);letter-spacing:-.055em;line-height:.98;margin:25px 0 30px;max-width:9ch}.calendar-promise{font-size:clamp(19px,1.55vw,26px);font-weight:700;margin:0 0 16px}.calendar-intro>p:last-child{font-size:16px;line-height:1.6;max-width:31ch;color:#fff4dec7}
.tool-theatre{grid-column:2;grid-row:1;position:relative;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.tool-stage{position:relative;isolation:isolate;min-height:370px;height:clamp(370px,29vw,560px);width:100%;touch-action:pan-y;cursor:grab;outline-offset:4px;border-radius:4px;user-select:none;-webkit-user-select:none}
.tool-stage:active{cursor:grabbing}.tool-stage:focus-visible{outline:2px solid #fff4de}.tool-stage canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s;pointer-events:none}.tool-stage[data-model=ready] canvas{opacity:1}
.tool-shadow{position:absolute;left:16%;right:16%;height:17%;bottom:7%;background:#10171070;filter:blur(24px);border-radius:50%;transform:scaleY(.35);pointer-events:none}
.tool-fallback{position:absolute;inset:6% 0 5%;display:flex;align-items:center;justify-content:center;transition:opacity .35s;pointer-events:none}.tool-fallback img{width:auto;max-width:72%;height:100%;object-fit:contain;transform:rotate(4deg);box-shadow:12px 16px 30px #0003}.tool-stage[data-model=ready] .tool-fallback{opacity:0;visibility:hidden}
.theatre-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--season-accent)!important}
.theatre-topline span:last-child{letter-spacing:.06em}.tool-control-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin-top:0;color:#fff4dece;font-size:13px}.tool-instruction{display:flex;align-items:center;gap:12px;margin:0}.drag-glyph{font-size:26px;letter-spacing:.02em;color:var(--season-accent)!important}

.calendar-selector{grid-column:1;grid-row:2;width:100%;margin:38px 0 0;border-top:1px solid #fff4de60;align-self:end}.calendar-selector button{color:#fff4dece;padding:18px 7px 16px;min-height:116px}.calendar-selector button:hover{background:#ffffff0c;color:#fff4de}.calendar-selector [aria-selected=true]{color:#fff4de;border-color:var(--season-accent)!important}.calendar-selector span{font-size:11px}.calendar-selector strong{font-size:48px}.calendar-selector b{font-size:11px}
.calendar-window{grid-column:2;grid-row:2;align-self:end;width:100%;min-width:0;margin-top:38px;border-top:1px solid #fff4de60}.season-hero{height:auto;min-height:132px;justify-content:center}.season-invitation{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0 0}.invitation-copy{min-width:0}.season-invitation .case-kicker{color:var(--season-accent)!important;font-size:10px}.season-invitation h3{font-size:clamp(23px,2vw,34px);letter-spacing:-.025em;max-width:18ch;margin:8px 0 0}.season-actions{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0}.season-invitation .case-action{background:#fff4de;color:#252521!important;border:0;margin:0;font-size:13px;white-space:nowrap;padding:15px 20px}.season-invitation .case-action:hover{background:white}.season-invitation .text-action{margin:3px 0 0;font-size:11px;font-weight:400;min-height:35px;color:#fff4dece}
.calendar-feature button:focus-visible,.calendar-feature a:focus-visible{outline:2px solid #fff4de;outline-offset:4px}
@media(min-width:1800px){.calendar-feature{grid-template-columns:minmax(360px,520px) minmax(0,1fr);column-gap:80px}.tool-stage{height:520px}.calendar-intro h2{font-size:82px}}
@media(max-width:1100px){.calendar-feature{padding:48px 100px 32px;gap:0 38px;grid-template-columns:minmax(250px,.9fr) minmax(0,1.1fr)}.calendar-intro h2{font-size:50px}.tool-stage{height:360px;min-height:330px}.season-invitation{align-items:flex-start;flex-direction:column;gap:16px}.season-hero{min-height:190px}.calendar-selector{align-self:start}.theatre-topline{font-size:9px;letter-spacing:.1em}.tool-control-row{font-size:11px;gap:8px}}
@media(max-width:767px){.calendar-feature{display:grid;grid-template-columns:minmax(0,1fr);padding:36px 24px 28px;gap:0}.calendar-intro{grid-column:1;grid-row:1;align-self:start}.calendar-intro h2{font-size:clamp(43px,10vw,68px);max-width:none;margin:18px 0 22px}.calendar-intro h2 br{display:none}.calendar-intro h2{max-width:10ch}.calendar-promise{font-size:20px}.calendar-intro>p:last-child{font-size:14px;max-width:32ch}.tool-theatre{grid-column:1;grid-row:2;margin-top:30px}.theatre-topline{font-size:9px}.tool-stage{height:270px;min-height:0;margin-top:12px}.tool-control-row{font-size:11px}.tool-instruction{gap:7px}.drag-glyph{font-size:22px}.calendar-selector{grid-column:1;grid-row:3;margin-top:26px;order:initial}.calendar-selector button{min-height:108px;padding:15px 6px}.calendar-selector strong{font-size:39px}.calendar-selector b{font-size:10px}.calendar-window{grid-column:1;grid-row:4;margin-top:22px;order:initial}.season-hero{min-height:0}.season-invitation{gap:18px;padding-top:22px}.season-invitation h3{font-size:28px;max-width:24ch}.season-actions{width:100%}.season-invitation .case-action{min-height:48px}.season-invitation .text-action{min-height:44px;font-size:12px}.tool-fallback img{max-width:70%}}
@media(prefers-reduced-motion:reduce){.calendar-feature,.tool-stage canvas,.tool-fallback{transition:none}.season-hero:not([hidden]){animation:none}}

#tool-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
