.xm-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Christmas for One — longform illustrated feature */
.xm{max-width:var(--wrap);margin:0 auto;padding:1.5rem var(--gut) 5rem;width:100%;overflow-wrap:break-word}
.xm h2{font:clamp(2.2rem,6vw,3.8rem)/.95 var(--display);text-transform:uppercase;margin:0 0 1rem}
.xm h4{font:800 .8rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .7rem}

/* Hero */
.xm-hero{display:grid;gap:2rem;align-items:center;margin-bottom:3rem}
.xm-hero__title{font:clamp(2.5rem,7.5vw,5.4rem)/.92 var(--display);text-transform:uppercase;color:var(--blue);margin:.8rem 0 1rem}
.xm-hero__dek{font:italic 600 clamp(1.25rem,3vw,1.6rem)/1.35 var(--serif);color:var(--red);max-width:32rem}
.xm-hero__art{margin:0;border:var(--line);box-shadow:14px 14px 0 var(--red),14px 14px 0 3px var(--ink);transform:rotate(1.2deg)}
.xm-jump{margin-top:2rem;border-top:var(--line);padding-top:1rem}
.xm-jump__label{font:800 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:0 0 .6rem}
.xm-jump ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.xm-jump a{display:flex;gap:.6rem;align-items:center;padding:.55rem .7rem;border:2px solid var(--ink);background:var(--cream);color:var(--ink);font-weight:800;font-size:.92rem;text-decoration:none;transition:transform .15s,background .15s}
.xm-jump a:hover,.xm-jump a[aria-current]{background:var(--yellow);color:var(--ink);transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}
.xm-jump__no{font:1.4rem/1 var(--display);color:var(--red)}
@media(min-width:960px){.xm-hero{grid-template-columns:1.1fr .9fr;gap:3.5rem}}

.xm-intro{max-width:42rem;font-size:1.15rem;line-height:1.7;margin:0 auto 4rem}
.xm-intro p:first-child::first-letter{float:left;font:5rem/.8 var(--display);color:var(--red);margin:.3rem .6rem 0 0}
.xm-intro p:last-child{font:italic 1.2rem/1.55 var(--serif);border-left:6px solid var(--teal);padding-left:1.2rem;color:var(--ink-2)}

/* Week checklist */
.xm-week{background:var(--blue);color:var(--cream);border:var(--line);padding:clamp(1.5rem,4vw,3rem);margin:0 0 4rem;box-shadow:10px 10px 0 var(--yellow)}
.xm-week__head{display:flex;flex-wrap:wrap;align-items:end;gap:.5rem 1.5rem;margin-bottom:1.5rem}
.xm-week__head h2{color:var(--cream);margin:0}
.xm-week__tag{font:clamp(3rem,9vw,5rem)/.85 var(--display);color:var(--yellow);margin:0;text-transform:uppercase}
.xm-checks{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.xm-checks li{position:relative}
.xm-check__box{position:absolute;opacity:0;width:1px;height:1px}
.xm-checks label{display:grid;grid-template-columns:2.4rem 1fr;gap:1rem;align-items:start;padding:.9rem 1rem;background:var(--cream);color:var(--ink);border:3px solid var(--ink);cursor:pointer;transition:background .15s}
.xm-check__no{width:2.4rem;height:2.4rem;display:grid;place-items:center;border:3px solid var(--ink);background:var(--paper);font:1.2rem var(--display);transition:background .15s}
.xm-check__box:checked+label{background:var(--pink-l)}
.xm-check__box:checked+label .xm-check__no{background:var(--teal);color:var(--cream);font-size:0}
.xm-check__box:checked+label .xm-check__no::after{content:"";width:.7rem;height:1.2rem;border:solid var(--cream);border-width:0 4px 4px 0;transform:rotate(45deg) translate(-2px,-2px)}
.xm-check__box:checked+label>span:last-child{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--red)}
.xm-check__box:focus-visible+label{outline:3px solid var(--yellow);outline-offset:3px;box-shadow:0 0 0 6px var(--ink)}
.xm-gift-nudge{margin:.4rem 0 .2rem 3.4rem}
.xm-gift-nudge a{display:inline-block;background:var(--yellow);color:var(--ink);font-weight:800;padding:.4rem .8rem;border:3px solid var(--ink);text-decoration:none;transform:rotate(-1deg)}
.xm-gift-nudge a::after{content:" \2192"}
.xm-gift-nudge a:hover{color:var(--ink);transform:rotate(0)}
@media(min-width:860px){.xm-week>.xm-checks{grid-template-columns:1fr 1fr}.xm-week>.xm-checks>li:last-child{grid-column:1/-1}}

/* Day */
.xm-day{display:grid;gap:1.5rem;margin:0 auto 5rem;max-width:62rem}
.xm-day__clock{display:grid;grid-template-columns:repeat(3,1fr);border:var(--line)}
.xm-day__clock span{padding:1rem .5rem;font:clamp(.9rem,2.5vw,1.3rem) var(--display);text-transform:uppercase;text-align:center;background:var(--yellow)}
.xm-day__clock span+span{border-left:var(--line);background:var(--pink)}
.xm-day__clock span:last-child{background:var(--night);color:var(--cream)}
.xm-day__copy{font-size:1.1rem;line-height:1.7}
@media(min-width:860px){.xm-day{grid-template-columns:1fr 1.3fr;column-gap:3rem}.xm-day__clock{grid-column:1}.xm-day__copy{grid-column:2;grid-row:1/3}}

/* Plans */
.xm-plans__head{max-width:46rem;margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:8px solid var(--ink)}
.xm-plans__head p{font:italic 1.25rem/1.5 var(--serif);color:var(--ink-2)}
.xm-plan{--accent:var(--teal);margin:0 0 5rem;scroll-margin-top:1.5rem}
.xm-plan--2{--accent:var(--red)} .xm-plan--3{--accent:var(--yellow)} .xm-plan--4{--accent:var(--blue)}
.xm-plan__top{display:grid;gap:2rem;align-items:center;margin-bottom:2rem}
.xm-plan__art{margin:0;border:var(--line);box-shadow:10px 10px 0 var(--accent),10px 10px 0 3px var(--ink)}
.xm-plan__title{margin:0 0 .8rem;display:grid;gap:.3rem}
.xm-plan__no{font:800 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;background:var(--ink);color:var(--cream);padding:.3rem .6rem;justify-self:start}
.xm-plan__name{font:clamp(2.2rem,6vw,4rem)/.92 var(--display);text-transform:uppercase;color:var(--ink)}
.xm-plan__best{font:italic 600 1.2rem/1.4 var(--serif);color:var(--red);margin-bottom:1.2rem}
.xm-plan__text>p:not(.xm-plan__best){font-size:1.08rem;line-height:1.7}
.xm-project{border-left:6px solid var(--accent);padding:.2rem 0 .2rem 1rem}
@media(min-width:960px){
  .xm-plan__top{grid-template-columns:.85fr 1.15fr;gap:3.5rem}
  .xm-plan:nth-of-type(even) .xm-plan__art{order:2}
}
/* Itinerary table — reflows to stacked rows on small screens */
.xm-table-wrap{border:var(--line);background:var(--cream);margin-bottom:1.5rem}
.xm-table{width:100%;border-collapse:collapse}
.xm-table caption{text-align:left;padding:.8rem 1rem;font:800 .75rem var(--sans);letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--cream)}
.xm-table thead th{text-align:left;font:800 .75rem var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:.7rem 1rem;border-bottom:var(--line);background:var(--accent);color:var(--cream)}
.xm-plan--3 .xm-table thead th{color:var(--ink)}
.xm-table tbody th{text-align:left;vertical-align:top;font:1.3rem/1.1 var(--display);text-transform:uppercase;color:var(--red);padding:1rem;width:11rem}
.xm-table td{padding:1rem;line-height:1.6}
.xm-table tbody tr+tr>*{border-top:2px dashed rgba(36,33,31,.35)}
@media(max-width:640px){
  .xm-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .xm-table,.xm-table tbody,.xm-table tr,.xm-table th,.xm-table td{display:block;width:auto}
  .xm-table tbody th{padding:1rem 1rem 0}
  .xm-table td{padding:.3rem 1rem 1rem}
  .xm-table tbody tr+tr>td{border-top:0}
}
.xm-plan__grid{display:grid;gap:1rem}
.xm-prep{border:var(--line);padding:1.3rem;background:var(--paper)}
.xm-prep h4{color:var(--red)}
.xm-checks--small label{grid-template-columns:2rem 1fr;padding:.6rem .7rem;font-size:.98rem}
.xm-checks--small .xm-check__no{width:2rem;height:2rem;font-size:1rem}
.xm-note{border:var(--line);padding:1.3rem}
.xm-note p{margin:0}
.xm-note--free{background:var(--teal);color:var(--cream)}
.xm-note--free h4{color:var(--yellow)}
.xm-note--26{background:var(--yellow)}
.xm-note--adapt{background:var(--cream);border-left:10px solid var(--accent)}
.xm-note--adapt a{font-weight:800}
.xm-plan__top-link{margin-top:1rem;font-weight:700;font-size:.9rem}
@media(min-width:760px){.xm-plan__grid{grid-template-columns:1.3fr 1fr}.xm-prep{grid-row:span 3}}

/* Neutral breathing room after the Quiet plan, before any gifting talk */
.xm-pause{display:flex;justify-content:center;gap:1.2rem;margin:2rem 0 5rem}
.xm-pause span{width:.7rem;height:.7rem;border:3px solid var(--ink);transform:rotate(45deg)}

.xm-gift{max-width:46rem;margin:0 auto 4rem;padding:clamp(1.5rem,4vw,2.5rem);background:var(--pink-l);border:var(--line);box-shadow:10px 10px 0 var(--red)}
.xm-gift p{font-size:1.1rem;line-height:1.7}
.xm-gift__cta{margin-top:.5rem}

.xm-rule{display:grid;gap:1.5rem;align-items:center;max-width:62rem;margin:0 auto 4rem;background:var(--night);color:var(--cream);padding:clamp(1.5rem,4vw,3rem);border:var(--line)}
.xm-rule h2{color:var(--yellow)}
.xm-rule p{font-size:1.1rem;line-height:1.7;margin:0}
.xm-rule__date{margin:0;width:8rem;height:9rem;background:var(--cream);color:var(--red);border:3px solid var(--ink);display:grid;place-content:center;text-align:center;font:4rem/.9 var(--display);transform:rotate(-3deg)}
.xm-rule__date span{font:800 .8rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
@media(min-width:760px){.xm-rule{grid-template-columns:auto 1fr;gap:2.5rem}}

.xm-related{max-width:62rem;margin:0 auto;border-top:8px solid var(--ink);padding-top:1.5rem}
.xm-related ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.xm-related a{display:block;padding:1rem 0;border-bottom:var(--line);font:800 1.25rem var(--sans);color:var(--ink);text-decoration:none}
.xm-related a::after{content:" \2192";color:var(--red)}
.xm-related a:hover{color:var(--red)}
@media(min-width:760px){.xm-related ul{grid-template-columns:1fr 1fr;column-gap:2rem}}

@media(prefers-reduced-motion:reduce){.xm *{transition:none!important;transform:none!important}}
