/* CRAFT-TOUR campaign pages. Scoped to body.ct. "Linen and lingonberry" editorial folk palette. */
.ct {
  --paper: 40 38% 94%; --paper-2: 38 34% 89%; --ink: 168 28% 13%; --ink-soft: 168 10% 34%;
  --berry: 350 60% 37%; --berry-soft: 350 50% 92%; --rye: 38 72% 50%;
  --seal: 214 52% 27%; --seal-soft: 214 40% 92%; --line: 36 20% 78%;
  margin: 0; background: hsl(var(--paper)); color: hsl(var(--ink));
  font-family: "Bricolage Grotesque", system-ui, sans-serif; font-size: 1.05rem; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.ct::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 50; opacity: .07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ct *, .ct *::before, .ct *::after { box-sizing: border-box; }
.ct img { max-width: 100%; height: auto; display: block; }
.ct a { color: hsl(var(--berry)); text-underline-offset: 3px; }
.ct a:focus-visible, .ct summary:focus-visible { outline: 3px solid hsl(var(--rye)); outline-offset: 3px; border-radius: 4px; }
.ct-skip { position: absolute; left: -999px; top: 0; background: hsl(var(--ink)); color: hsl(var(--paper)) !important; padding: .6rem 1rem; z-index: 60; }
.ct-skip:focus { left: 1rem; top: 1rem; }

.ct-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  padding: .7rem clamp(1rem, 4vw, 3rem); background: hsl(var(--paper) / .92); backdrop-filter: blur(10px); border-bottom: 1px solid hsl(var(--line)); }
.ct-home img { height: 38px; width: auto; border-radius: 6px; }
.ct-x { font-family: "Fraunces", serif; font-style: italic; color: hsl(var(--ink-soft)); font-size: .9rem; }
.ct-logo { height: 34px; width: auto; }
.ct-nav { margin-left: auto; display: flex; gap: .2rem; flex-wrap: wrap; align-items: center; }
.ct-nav a { color: hsl(var(--ink)); text-decoration: none; font-size: .9rem; padding: .45rem .7rem; border-radius: 999px; }
.ct-nav a:hover { background: hsl(var(--paper-2)); }
.ct-nav .ct-nav-cta { background: hsl(var(--berry)); color: hsl(var(--paper)); font-weight: 600; }
.ct-nav .ct-nav-cta:hover { background: hsl(350 60% 30%); }
@media (max-width: 760px) { .ct-nav a:not(.ct-nav-cta) { display: none; } .ct-x { display: none; } }

.ct-eyebrow { font-family: "Spline Sans Mono", monospace; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: hsl(var(--berry)); margin: 0 0 1rem; }
.ct h1, .ct-h2 { font-family: "Fraunces", serif; font-weight: 600; letter-spacing: -.02em; line-height: 1.04; margin: 0 0 1rem; }
.ct h1 { font-size: clamp(2.5rem, 7vw, 5.2rem); font-variation-settings: "opsz" 144; }
.ct h1 em, .ct-h2 em { font-style: italic; color: hsl(var(--berry)); font-weight: 500; }
.ct-h2 { font-size: clamp(1.8rem, 4.2vw, 3rem); }
.ct-h3 { font-family: "Fraunces", serif; font-size: 1.25rem; font-weight: 600; margin: 1.6rem 0 .7rem; }
.ct-lede { font-size: clamp(1.1rem, 2vw, 1.3rem); max-width: 38ch; color: hsl(var(--ink)); }
.ct-note { font-size: .92rem; color: hsl(var(--ink-soft)); max-width: 70ch; border-left: 3px solid hsl(var(--rye)); padding-left: 1rem; }

.ct-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
  padding: clamp(2rem, 6vw, 5rem) clamp(1rem, 4vw, 3rem) clamp(2rem, 5vw, 4rem); max-width: 1320px; margin: 0 auto; }
.ct-hero-copy > * { animation: ct-rise .7s cubic-bezier(.2,.7,.2,1) both; }
.ct-hero-copy > :nth-child(2) { animation-delay: .08s; } .ct-hero-copy > :nth-child(3) { animation-delay: .16s; }
.ct-hero-copy > :nth-child(4) { animation-delay: .24s; } .ct-hero-copy > :nth-child(5) { animation-delay: .32s; }
.ct-hero-media { margin: 0; position: relative; animation: ct-rise .9s .2s both; }
.ct-hero-media img { border-radius: 200px 200px 14px 14px; aspect-ratio: 4/5; object-fit: cover; width: 100%;
  box-shadow: 0 30px 60px -30px hsl(var(--berry) / .45); }
.ct-hero-media::after { content: ""; position: absolute; inset: 12px; border: 1.5px dashed hsl(var(--paper) / .8); border-radius: 190px 190px 8px 8px; pointer-events: none; }
.ct-hero-media figcaption { font-size: .75rem; color: hsl(var(--ink-soft)); margin-top: .5rem; font-family: "Spline Sans Mono", monospace; }
@media (max-width: 860px) { .ct-hero { grid-template-columns: 1fr; } .ct-hero-media { order: -1; max-width: 420px; } .ct-hero-media img { aspect-ratio: 5/4; border-radius: 120px 120px 12px 12px; } .ct-hero-media::after { border-radius: 110px 110px 6px 6px; } }

.ct-deadline { display: flex; gap: .8rem; align-items: baseline; flex-wrap: wrap; background: hsl(var(--paper-2)); border-radius: 10px; padding: .8rem 1rem; margin: 1.4rem 0; max-width: 60ch; font-size: .95rem; }
.ct-deadline-label { font-family: "Spline Sans Mono", monospace; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; background: hsl(var(--ink)); color: hsl(var(--paper)); padding: .2rem .5rem; border-radius: 4px; }

.ct-doors-mini { display: flex; flex-wrap: wrap; gap: .8rem; }
.ct-btn { display: inline-flex; flex-direction: column; gap: .1rem; text-decoration: none; padding: .85rem 1.3rem; border-radius: 12px; font-weight: 600; font-size: 1rem; line-height: 1.25; transition: transform .2s; min-height: 48px; justify-content: center; }
.ct-btn small { font-family: "Spline Sans Mono", monospace; font-weight: 400; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.ct-btn:hover { transform: translateY(-2px); }
.ct .ct-btn-local { background: hsl(var(--berry)); color: hsl(var(--paper)); outline: 1.5px dashed hsl(var(--paper) / .6); outline-offset: -6px; }
.ct .ct-btn-official { background: hsl(var(--seal)); color: hsl(var(--paper)); }
@media (max-width: 520px) { .ct-btn { width: 100%; } }

.ct-band { padding: clamp(2.5rem, 7vw, 6rem) clamp(1rem, 4vw, 3rem); max-width: 1320px; margin: 0 auto; }
.ct-doors { background: hsl(var(--ink)); color: hsl(var(--paper)); max-width: none; }
.ct-doors .ct-h2 { max-width: 1320px; margin: 0 auto 2rem; } .ct-doors .ct-h2 em { color: hsl(var(--rye)); }
.ct-door-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 1320px; margin: 0 auto; }
@media (max-width: 760px) { .ct-door-grid { grid-template-columns: 1fr; } }
.ct-door { padding: 2rem; border-radius: 16px; position: relative; }
.ct-door h3 { font-family: "Fraunces", serif; font-size: 1.6rem; margin: .6rem 0; }
.ct-door-local { background: hsl(var(--berry)); outline: 2px dashed hsl(var(--paper) / .55); outline-offset: -10px; }
.ct-door-official { background: hsl(var(--paper)); color: hsl(var(--ink)); }
.ct-door-official .ct-stamp { color: hsl(var(--seal)); border-color: hsl(var(--seal)); }
.ct-door-fine { font-size: .9rem; opacity: .85; }
.ct-door-local .ct-link { color: hsl(var(--paper)); }
.ct-stamp { display: inline-block; font-family: "Spline Sans Mono", monospace; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; border: 1.5px solid currentColor; padding: .25rem .6rem; border-radius: 4px; margin: 0; transform: rotate(-2deg); }
.ct-link { font-weight: 600; }
.ct-link::after { content: " \2192"; }

.ct-intro { display: grid; grid-template-columns: 1fr 1.2fr; gap: 3rem; }
@media (max-width: 860px) { .ct-intro { grid-template-columns: 1fr; } }
.ct-prose p { font-size: 1.12rem; max-width: 52ch; }
.ct-prose p:first-child::first-letter { font-family: "Fraunces", serif; float: left; font-size: 3.6rem; line-height: .9; padding: .3rem .5rem 0 0; color: hsl(var(--berry)); }
.ct-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 0; border-top: 1px solid hsl(var(--line)); }
.ct-facts > div { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid hsl(var(--line)); }
.ct-facts dt { font-family: "Spline Sans Mono", monospace; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: hsl(var(--ink-soft)); }
.ct-facts dd { margin: .3rem 0 0; font-weight: 500; }
.ct-big { font-family: "Fraunces", serif; font-size: 2.6rem; color: hsl(var(--berry)); line-height: 1; }
@media (max-width: 560px) { .ct-facts { grid-template-columns: 1fr; } }

.ct-who { display: grid; grid-template-columns: 1.2fr .8fr; gap: 3rem; align-items: start; background: hsl(var(--paper-2)); max-width: none; }
@media (max-width: 860px) { .ct-who { grid-template-columns: 1fr; } }
.ct-crafts { list-style: none; padding: 0; margin: 0 0 1.4rem; }
.ct-crafts li { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px dashed hsl(var(--line)); align-items: baseline; }
.ct-crafts code { font-family: "Spline Sans Mono", monospace; font-size: .8rem; white-space: nowrap; color: hsl(var(--seal)); }
.ct-map { margin: 0; background: hsl(var(--paper)); padding: 1rem; border-radius: 14px; }
.ct-map figcaption { font-size: .8rem; color: hsl(var(--ink-soft)); margin-top: .5rem; }

.ct-idea-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; counter-reset: idea; margin: 0 0 1.5rem; }
.ct-idea-list li { counter-increment: idea; background: hsl(var(--paper-2)); border-radius: 14px; padding: 1.4rem; font-size: 1.05rem; }
.ct-idea-list li:nth-child(2n) { transform: translateY(1rem); }
.ct-idea-list li::before { content: counter(idea, upper-roman); display: block; font-family: "Fraunces", serif; font-style: italic; font-size: 1.8rem; color: hsl(var(--rye)); }
@media (max-width: 560px) { .ct-idea-list li:nth-child(2n) { transform: none; } }

.ct-step-list { list-style: none; padding: 0; margin: 0; counter-reset: s; max-width: 860px; }
.ct-step-list li { counter-increment: s; position: relative; padding: 1.1rem 0 1.1rem 4rem; border-bottom: 1px solid hsl(var(--line)); font-size: 1.08rem; }
.ct-step-list li::before { content: counter(s); position: absolute; left: 0; top: .9rem; width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid hsl(var(--ink)); font-family: "Fraunces", serif; font-weight: 600; }
.ct-tag { display: block; width: max-content; font-family: "Spline Sans Mono", monospace; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; padding: .1rem .45rem; border-radius: 4px; margin-bottom: .3rem; }
.ct-tag-official { background: hsl(var(--seal-soft)); color: hsl(var(--seal)); }
.ct-tag-local { background: hsl(var(--berry-soft)); color: hsl(var(--berry)); border: 1px dashed hsl(var(--berry)); }

.ct-doc-cols { display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem; }
@media (max-width: 760px) { .ct-doc-cols { grid-template-columns: 1fr; } }
.ct-docs-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.ct-docs-list a { display: flex; flex-direction: column; padding: 1rem 1.2rem; border-radius: 12px; background: hsl(var(--seal-soft)); color: hsl(var(--seal)); text-decoration: none; font-weight: 600; transition: transform .2s; }
.ct-docs-list a:hover { transform: translateX(4px); }
.ct-docs-list small { font-weight: 400; color: hsl(var(--ink-soft)); font-size: .82rem; }
.ct-doc-later .ct-docs-list a { background: transparent; border: 1px solid hsl(var(--line)); color: hsl(var(--ink)); }
.ct-assets { margin-top: 2rem; }

.ct-intake { max-width: none; background: hsl(var(--berry)); color: hsl(var(--paper)); }
.ct-intake-inner { max-width: 820px; margin: 0 auto; outline: 2px dashed hsl(var(--paper) / .5); outline-offset: 1.4rem; padding: 1rem 0; }
.ct-intake .ct-stamp { color: hsl(var(--paper)); }
.ct-intake .ct-h2 { margin-top: 1rem; }
.ct-notice { background: hsl(var(--paper)); color: hsl(var(--ink)); padding: 1.1rem 1.3rem; border-radius: 12px; border-left: 6px solid hsl(var(--seal)); }
.ct-setup { font-family: "Spline Sans Mono", monospace; font-size: .85rem; background: hsl(var(--ink) / .3); padding: .7rem 1rem; border-radius: 8px; }
.ct-intake-actions { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; margin-top: 1.5rem; }
.ct-intake .ct-btn-local { background: hsl(var(--paper)); color: hsl(var(--berry)); outline-color: hsl(var(--berry) / .5); }
.ct-intake .ct-link { color: hsl(var(--paper)); }

.ct-faq-list { max-width: 860px; }
.ct-faq details { border-bottom: 1px solid hsl(var(--line)); }
.ct-faq summary { cursor: pointer; padding: 1.1rem 2rem 1.1rem 0; font-family: "Fraunces", serif; font-size: 1.2rem; font-weight: 500; list-style: none; position: relative; }
.ct-faq summary::-webkit-details-marker { display: none; }
.ct-faq summary::after { content: "+"; position: absolute; right: .2rem; top: .9rem; font-size: 1.5rem; color: hsl(var(--berry)); transition: transform .25s; }
.ct-faq details[open] summary::after { transform: rotate(45deg); }
.ct-faq details p { margin: 0 0 1.2rem; max-width: 68ch; }
.ct-more { margin-top: 2rem; }

.ct-footer { background: hsl(var(--ink)); color: hsl(var(--paper) / .85); padding: 2.5rem clamp(1rem, 4vw, 3rem); }
.ct-footer a { color: hsl(var(--rye)); }
.ct-footer-top { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-bottom: 1rem; }
.ct-footer-top img { background: #fbfaf6; padding: .4rem .6rem; border-radius: 6px; height: 56px; width: auto; }
.ct-fine { font-size: .8rem; max-width: 100ch; }

.ct-article { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 6vw, 4rem) 1.2rem; }
.ct-article h1 { font-size: clamp(2rem, 5.5vw, 3.6rem); }
.ct-article-media { margin: 1.5rem 0; } .ct-article-media img { border-radius: 14px; aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.ct-article p { font-size: 1.1rem; }
.ct-facts-tight { grid-template-columns: 1fr; margin: 2rem 0; }

@keyframes ct-rise { from { transform: translateY(14px); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .ct *, .ct *::before { animation: none !important; transition: none !important; } }
