.cassette-module{margin:38px 0;padding:clamp(20px,3vw,36px);border:2px solid var(--ink);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(rgba(17,16,15,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,16,15,.045) 1px,transparent 1px);background-size:24px 24px;box-shadow:6px 6px 0 var(--acid);scroll-margin-top:100px}
.cassette-module *{min-width:0}
.cassette-module [hidden]{display:none!important}
.cassette-module h2{margin:0;font:700 clamp(1.8rem,3.5vw,3rem)/1.15 var(--display);text-transform:uppercase}
.cassette-module h2 em{font-family:var(--serif);color:var(--red);font-weight:600;text-transform:none}
.cassette-module .cassette-intro{margin:10px 0 22px;font-size:1rem;max-width:65ch;line-height:1.5}
.cassette-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,36px);align-items:start}
.cassette-module label,.cassette-module legend{font-size:1rem;font-weight:700}
.cassette-module select{display:block;width:100%;padding:12px;margin:8px 0 18px;border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font:1rem var(--body);min-height:48px}
.cassette-module fieldset{border:0;padding:0;margin:0 0 18px}
.cassette-module legend{padding:0;margin-bottom:10px}
.cassette-moods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cassette-mood{position:relative;cursor:pointer}
.cassette-mood input{position:absolute;opacity:0;width:1px;height:1px}
.cassette-mood span{display:flex;flex-direction:column;justify-content:center;min-height:72px;padding:10px;border:1px solid var(--ink);background:var(--paper);font-size:.875rem;overflow-wrap:anywhere}
.cassette-mood small{font-size:.875rem;font-weight:400;margin-top:4px}
.cassette-mood input:checked+span{background:var(--acid);box-shadow:inset 0 0 0 1px var(--ink)}
.cassette-module :focus-visible{outline:3px solid var(--red);outline-offset:4px}
.cassette-mood input:focus-visible+span{outline:3px solid var(--red);outline-offset:3px}
.cassette-module button,.cassette-actions a{border:1px solid var(--ink);border-radius:0;padding:12px 16px;min-height:46px;background:var(--ink);color:var(--paper);font:700 .875rem var(--body);text-decoration:none;cursor:pointer}
.cassette-module button:disabled{opacity:.6;cursor:wait}
.cassette-module .cassette-create{background:var(--acid);color:var(--ink);width:100%}
.cassette-preview{margin:0;width:100%}
.cassette-art{position:relative;container-type:inline-size}
.cassette-preview img{width:100%;height:auto;display:block;aspect-ratio:3/2}
.cassette-label{position:absolute;left:10.3%;top:16%;width:79%;display:flex;flex-direction:column;gap:3px}
.cassette-label strong{font:700 clamp(1rem,4.3cqw,1.7rem)/1.2 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.cassette-label em{color:#c72d20;font:600 clamp(.95rem,3.8cqw,1.45rem)/1.2 var(--serif)}
.cassette-label-brand{position:absolute;left:10.3%;top:60%;font:700 clamp(.75rem,2.7cqw,1rem) var(--display)}
.cassette-preview figcaption{font-size:.875rem;margin:9px 0 0;line-height:1.5}
.cassette-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.cassette-module .cassette-listen{background:var(--red);color:var(--ink)}
.cassette-tracklist{margin-top:22px;border-top:1px solid var(--ink);padding-top:16px}
.cassette-tracklist h3{font:600 1.25rem var(--display);margin:0 0 6px}
.cassette-tracklist>p{font-size:.875rem;line-height:1.5;margin:6px 0 12px}
.cassette-tracklist ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;counter-reset:cassette-track}
.cassette-tracklist li{counter-increment:cassette-track;border-bottom:1px solid var(--line)}
.cassette-tracklist a{display:flex;gap:10px;align-items:center;min-height:68px;padding:10px 0;text-decoration:none;font-size:.875rem}
.cassette-tracklist a:before{content:counter(cassette-track,decimal-leading-zero);font-family:var(--display);color:#b72b20}
.cassette-tracklist a>span{flex:1;overflow-wrap:anywhere}
.cassette-tracklist strong,.cassette-tracklist small{display:block;font-size:.875rem;line-height:1.5}
.cassette-tracklist a:hover strong{text-decoration:underline}
.cassette-tracklist a>b{font-size:.75rem;font-weight:500}
.cassette-status{font-size:.875rem;line-height:1.5;margin:8px 0 0}
.cassette-status:empty{display:none}
@media(max-width:700px){.cassette-layout{grid-template-columns:1fr}.cassette-preview{max-width:480px;margin:auto}.cassette-tracklist ol{grid-template-columns:1fr}.cassette-actions>*{flex:1;text-align:center}.cassette-module{padding:18px;margin:28px 0}.cassette-module h2{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){.cassette-module{scroll-behavior:auto}}

/* Shared travel tools: compact desktop pair, readable stacked mobile panels. */
.travel-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start;margin:28px 0 38px}
.travel-tools>section{box-sizing:border-box;min-width:0;margin:0;padding:20px;scroll-margin-top:100px}
.travel-tools>.jetlag-tool{border:1px solid var(--ink);border-top:3px solid #ad3023}
.travel-tools .jetlag-map-heading h2,.travel-tools .cassette-module h2{font-size:clamp(24px,2.3vw,32px);line-height:1.15;margin:0 0 8px}
.travel-tools .jetlag-map-heading h2 em{display:inline}
.travel-tools .section-kicker{margin-bottom:8px;font-size:14px}
.travel-tools .jetlag-map-heading{margin-bottom:16px}
.travel-tools .jetlag-map-heading>p:last-child,.travel-tools .cassette-intro{font-size:16px;margin:8px 0 16px}
.travel-tools .jetlag-adjust .jetlag-fields{grid-template-columns:1fr 1fr}
.travel-tools .jetlag-adjust .jetlag-fields>label:first-child{grid-column:1/-1}
.travel-tools .jetlag-result{display:block;margin-top:14px;padding-top:12px}
.travel-tools .jetlag-music-column{margin-top:14px}
.travel-tools .jetlag-result iframe{width:100%;max-width:100%}
.travel-tools .cassette-layout{grid-template-columns:1fr;gap:14px}
.travel-tools .cassette-module select{margin-bottom:12px;min-height:44px;padding:8px}
.travel-tools .cassette-module fieldset{margin-bottom:12px}
.travel-tools .cassette-mood span{min-height:62px;padding:8px}
.travel-tools .cassette-preview{max-width:360px;margin:0 auto}
.travel-tools .cassette-tracklist ol{grid-template-columns:1fr}
.travel-tools .jetlag-track-actions{flex-wrap:wrap}
@media(min-width:1200px){.travel-tools .jetlag-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.travel-tools .jetlag-music-column{margin-top:0}.travel-tools .jetlag-track-actions a{width:100%;font-size:14px}}
@media(max-width:900px){.travel-tools{grid-template-columns:1fr;gap:24px}.travel-tools>section{padding:18px}.travel-tools .cassette-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.travel-tools .cassette-layout{grid-template-columns:1fr}.travel-tools .jetlag-adjust .jetlag-fields{grid-template-columns:1fr}.travel-tools .jetlag-adjust .jetlag-fields>label:first-child{grid-column:auto}}
