/* Supplied textile artwork: normalize the visible patch, not the source canvas. */
.tools{padding:3px 12px;gap:14px}
.tools .dts-medallion-toggle{--dts-medallion-size:86px;flex-shrink:0}
.tail-change>.dts-tail-card{width:100%;height:auto;aspect-ratio:1.786;margin:20px 0;display:block}
.textile,.share-card button.textile{
  --patch-ink:#fff8e8;--patch-shadow:0 1px 2px #161014;
  --patch-size:100% 100%;--patch-position:50% 50%;
  display:inline-flex;align-items:center;justify-content:center;isolation:isolate;
  flex:0 0 auto;width:340px;max-width:100%;min-height:96px;height:auto;
  padding:22px 18% 22px 23%;border:0;border-radius:0;
  background:none;box-shadow:none;color:var(--patch-ink);
  font:700 1rem/1.35 "Segoe UI",Arial,sans-serif;letter-spacing:0;
  text-align:center;text-decoration:none;text-shadow:var(--patch-shadow);
  position:relative;cursor:pointer;vertical-align:middle;transform:none;
}
.textile::before,.share-card button.textile::before{
  content:"";display:block;position:absolute;inset:5px 0;z-index:-1;
  background:var(--patch) var(--patch-position)/var(--patch-size) no-repeat;
  border:0;border-radius:42px;pointer-events:none;
}
.textile:hover,.textile:focus-visible{transform:translateY(-2px)}
.textile:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.textile--donate{--patch:url('../assets/design/btn-donate-candle-velour.webp');--patch-size:116.2% 118.3%;--patch-ink:#271307;--patch-shadow:0 1px 1px #ffd99a}
.textile--felt{--patch:url('../assets/design/btn-catalog-felt-day.webp');--patch-size:103% 171%;--patch-position:100% 48%}
.textile--canvas{--patch:url('../assets/design/btn-reports-canvas-day.webp');--patch-size:108.5% 177.5%;--patch-position:50% 47.5%}
.textile--tweed{--patch:url('../assets/design/btn-trust-tweed-day_default.webp');--patch-size:100% 104.2%}
.textile--velvet{--patch:url('../assets/design/btn-curator-velvet.webp');--patch-size:116% 177%;--patch-position:37% 50%}
.textile--wool{--patch:url('../assets/design/btn-adopt-home-wool-day.webp');--patch-size:108% 145%;--patch-position:60% 49%;--patch-ink:#28190e;--patch-shadow:0 1px 1px #f5dfba}
.textile--rescue{--patch:url('../assets/design/btn-rescue-protocol-canvas-day_default.webp');--patch-size:100% 109.3%;--patch-ink:#102e30;--patch-shadow:0 1px 1px #fff7e8}
.textile--denim{--patch:url('../assets/design/btn-help-work-denim-day-m.webp');--patch-size:103.2% 115.5%;--patch-position:47% 50%}
.textile--linen{--patch:url('../assets/design/btn-memory-linen-day_default.webp');--patch-size:100% 107.2%;--patch-ink:#302116;--patch-shadow:0 1px 1px #fff7e8}
.textile--burlap{--patch:url('../assets/design/btn-help-burlap.webp');--patch-size:109.8% 125%;--patch-position:50% 43%;--patch-ink:#29190c;--patch-shadow:0 1px 1px #ffe5b8}
html[data-theme="night"] .textile--felt{--patch:url('../assets/design/btn-catalog-felt-night.webp');--patch-size:123% 192%;--patch-position:52% 51%;--patch-ink:#302116;--patch-shadow:0 1px 1px #fff7e8}
html[data-theme="night"] .textile--canvas{--patch:url('../assets/design/btn-reports-canvas-night_default.webp');--patch-size:100% 118.3%;--patch-position:50% 47%;--patch-ink:#302116;--patch-shadow:0 1px 1px #fff7e8}
html[data-theme="night"] .textile--tweed{--patch:url('../assets/design/btn-trust-tweed-night.webp');--patch-size:103% 137%;--patch-position:50% 43%}
html[data-theme="night"] .textile--wool{--patch:url('../assets/design/btn-adopt-home-wool-night.webp')}
html[data-theme="night"] .textile--rescue{--patch:url('../assets/design/btn-rescue-protocol-canvas-night_default.webp');--patch-size:100% 107%}
html[data-theme="night"] .textile--denim{--patch:url('../assets/design/btn-help-work-denim-night-m.webp')}
html[data-theme="night"] .textile--linen{--patch:url('../assets/design/btn-memory-linen-night.webp');--patch-size:113.7% 142%;--patch-position:51% 51%}
/* Keep labels clear of the left emblem and right stitching, independent of parent width. */
.textile,.share-card button.textile{padding-inline:78px 55px}
.textile>span{margin:0;font:inherit;color:inherit}
.actions{align-items:flex-start;gap:12px}
.daily>.textile{position:relative;inset:auto;width:340px;max-width:100%;margin-top:12px;grid-column:1;align-self:start;justify-self:start}
.ways-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.way{min-width:0;padding:28px;min-height:0;border-radius:4px;background:var(--paper-2);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);transform:none}
.way:hover{transform:none}
.way h3{font-size:30px}
.way p{margin-bottom:18px}
.way .textile{margin-top:auto;align-self:center}
.way .textile span{margin:0}
.way .pencil{font-size:14px}
.share-card button.textile{margin:0}
.microstories{padding-left:22px;margin:24px 0}
.microstories li{margin:12px 0}
.dream-sticker{padding:18px;border:1px dashed var(--line)}
.socials a{display:grid;place-items:center;gap:2px;text-decoration:none}
.socials img{width:80px;height:68px;object-fit:contain}
.scene-doodle{width:88px;height:76px;object-fit:contain;margin:0 0 20px;opacity:.85}
.tails .scene-doodle{margin-inline:auto}
html[data-theme="night"] .scene-doodle{filter:invert(.86) sepia(.3)}
@media(max-width:700px){
  .tools{left:auto;gap:6px;padding:2px 8px}
  .tools .dts-medallion-toggle{--dts-medallion-size:54px}
  .ways-grid{grid-template-columns:minmax(0,1fr)}
  .way{padding:20px 12px}
  .textile,.share-card button.textile{padding-inline:22% 16%;min-height:96px}
  .actions{gap:8px}
}
@media(prefers-reduced-motion:reduce){.textile:hover,.textile:focus-visible{transform:none}}

/* Artwork belongs to the control itself, never to its containing scene. */
.textile,.share-card button.textile{
  background:var(--patch) var(--patch-position)/var(--patch-size) no-repeat;
  border-radius:38px;position:relative;isolation:auto;text-shadow:none;
  font-family:Georgia,"Times New Roman",serif;font-weight:600;font-style:italic;
  font-size:1.05rem;line-height:1.3;min-height:88px;padding-block:18px;
}
.textile::before,.share-card button.textile::before{content:none;display:none}
.scene:not(.hero){padding-block:48px}
.scene-heading{margin-bottom:28px}
.scene .pencil{margin-top:18px}
.today,.campaign,.tail-change,.daily,.share,.rescue,.memory,.curator,.lab,.partners{gap:32px}
.hero{min-height:0;padding-bottom:42px}
.campaign__art{max-height:380px;border-radius:0}
.tail-change>.dts-tail-card{margin-block:12px}
.tail-card,.tail-card:nth-child(2){transform:none;margin-top:0;display:flex;flex-direction:column}
.tail-card>div{padding:20px 8px 0;display:flex;flex-direction:column;flex:1}
.tail-card .animal-tags{padding:0;display:flex;flex-direction:row;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tag{display:inline-block;font-size:13px;letter-spacing:0;text-transform:none;padding:4px 9px;border:1px dashed var(--line);border-radius:5px;background:var(--paper-2)}
.tail-card .animal-actions{padding:0;margin-top:auto;display:grid;gap:6px}
.animal-actions .textile{width:100%;max-width:340px;justify-self:center;padding-inline:23% 16%;font-size:1rem;min-height:76px;font-weight:600}
.socials{flex-wrap:wrap;gap:12px}
.socials button{padding:0;border:0;background:none;cursor:pointer;border-radius:50%}
.socials button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.socials img{width:62px;height:62px;object-fit:contain}
.house-map nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.house-map h2{font-size:clamp(32px,5vw,56px)}
.house-map nav a{font-size:16px;padding:18px 12px}
.dts-doc-icon{--dts-doc-size:170px;width:170px;height:170px;float:right;margin:0 0 12px 20px}
.yarn-stage{width:100%;aspect-ratio:1280/350;overflow:hidden;position:relative;margin-top:10px}
.yarn-stage .dts-yarn-canvas-v77{width:1280px;height:430px;max-width:none;transform-origin:top left}
.issue-meta{font-size:14px;color:var(--muted)}
.newspaper h4{font:600 26px/1.2 Georgia,serif}
.story-pair img{aspect-ratio:4/3;object-fit:cover}
@media(max-width:700px){
 .scene:not(.hero){padding-block:32px}
 .textile,.share-card button.textile{padding-inline:22% 16%;min-height:88px}
 .house-map nav a{font-size:14px;padding:14px 6px}
.house-map{padding:24px 16px}
}

/* Compact scene rhythm; content may grow on short screens or with enlarged text. */
h1{font-size:clamp(38px,4.2vw,64px)}
h2{font-size:clamp(30px,3vw,46px);max-width:24ch}
h3{font-size:clamp(24px,2.2vw,32px)}
.scene:not(.hero){padding-block:32px}
.scene-heading{margin-bottom:22px}
.hero{padding-top:40px;padding-bottom:28px;gap:24px;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr)}
.hero__logo{width:390px;height:230px;max-width:100%;object-fit:cover;margin-bottom:10px}
.hero__lead{font-size:clamp(19px,1.7vw,25px);line-height:1.4}
.hero .kicker{font-size:12px;margin-bottom:10px}
.hero-word{display:block;position:relative;width:min(100%,420px);overflow:visible;margin:0}
.hero-word img{position:static;width:100%;max-width:100%;height:auto}
.map-button{padding:0;width:82px;height:86px}
.map-button img{width:82px;height:86px;object-fit:contain}
.type-heading{position:relative;max-width:none;width:100%;overflow:hidden;margin:0 0 20px}
.type-heading img{position:absolute;width:100%;max-width:none;left:0;height:auto}
.type-heading--day{aspect-ratio:3.2}
.type-heading--day img{top:-65%}
.type-heading--night{aspect-ratio:5.2}
.type-heading--night img{top:-33%}
.textile,.share-card button.textile{padding-inline:24% 17%}
.textile--denim,.share-card button.textile--denim{padding-inline:34% 8%}
html[data-theme="night"] .textile--denim,html[data-theme="night"] .share-card button.textile--denim{--patch-ink:#132b40;color:#132b40}
.textile--stories{--patch:url('../assets/design/btn-stories-flannel.webp');--patch-size:126% 167%;--patch-position:50% 48%;--patch-ink:#33221c}
.campaign{grid-template-columns:minmax(0,1.65fr) minmax(0,.75fr);gap:24px}
.campaign .paper{padding:24px 28px}
.campaign .scene-doodle{display:none}
.campaign h2{font-size:clamp(28px,2.8vw,40px);max-width:25ch}
.campaign p{margin-bottom:12px;line-height:1.45}
.campaign__sum{margin:16px 0 10px;gap:22px}
.campaign__sum strong{font-size:28px}
.campaign .receipt{margin-block:12px;column-gap:28px;font-size:16px}
.campaign .receipt li{break-inside:avoid;margin-bottom:5px}
.campaign .pencil{margin-top:12px;font-size:14px}
.campaign .actions{margin-top:14px;gap:10px;flex-wrap:nowrap}
.campaign .textile{width:calc((100% - 10px)/2);min-height:76px;font-size:16px;flex-shrink:1}
.campaign__art{width:100%;max-height:420px;object-fit:contain}
.share>img.night-art{width:100%;max-height:720px;object-fit:contain;filter:none;mask-image:none;border-radius:0}
.story-pair article:first-child>img{object-position:center top}
.memory{background:none;border-radius:0}
.partner-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-start}
.partner-actions .textile{width:280px;max-width:100%;min-height:76px;flex:0 1 280px;font-size:16px;line-height:1.3}
.partners{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}
.partner-map{display:block;min-height:0;padding:20px 0 20px 32px}
.partner-map::before,.partner-map::after{content:none}
.partner-map__home{font:600 24px/1.3 Georgia,serif;padding:12px 0;margin-bottom:12px}
.partner-map ul{list-style:none;border-left:2px solid var(--line);padding:0 0 0 24px;margin:0 0 0 8px;display:grid;gap:14px}
.partner-map li{position:relative;padding:8px 12px;border-bottom:1px solid var(--line);font-size:17px}
.partner-map li::before{content:"";position:absolute;width:24px;height:1px;background:var(--line);left:-24px;top:50%}
@media(min-width:1100px){
 .scene:not(.daily){min-height:100svh;align-content:center}
 .scene.hero{min-height:100svh}
 .scene-heading{max-width:920px}
 .tail-card img{max-height:220px;object-fit:cover}
 .tail-card p{line-height:1.4}
 .animal-actions .textile{min-height:62px}
 .tails .tail-grid{margin-bottom:20px}
 .ways-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
 .way{padding:20px}
 .way p{font-size:16px;line-height:1.4}
 .way .textile{min-height:78px;font-size:16px}
}
@media(max-width:1099px){
 .hero,.campaign,.partners{grid-template-columns:minmax(0,1fr)}
 .hero{padding-top:32px}
 .hero__copy{padding-right:60px}
 .hero__logo{width:320px;height:190px;object-fit:cover}
 .campaign__art{max-height:280px}
 .partner-map{padding-left:0;max-width:460px}
}
@media(max-width:600px){
 .hero__copy{padding-right:0}
 .hero-word{width:280px}
 .campaign .paper{padding:22px 16px}
 .campaign .actions,.partner-actions{flex-wrap:wrap}
 .campaign .textile{width:100%;max-width:340px;flex-shrink:0}
 .partner-actions .textile{width:min(100%,280px);max-width:280px;flex:0 1 280px}
 .campaign .receipt{columns:1}
 .scene:not(.hero){padding-block:28px}
.textile--denim,.share-card button.textile--denim{padding-inline:34% 8%}
}

/* Column percentages are relative to the button, unlike percentage padding. */
.textile:not(.card-cta),.share-card button.textile{
 display:grid;grid-template-columns:24% minmax(0,59%) 17%;padding-inline:0;
}
.textile:not(.card-cta)>.textile-label{grid-column:2;min-width:0;overflow-wrap:normal}
.textile--denim:not(.card-cta),.share-card button.textile--denim{
 grid-template-columns:34% minmax(0,58%) 8%;
}
.card-cta>.textile-label{display:block}
.tails>.textile{margin-inline:auto}
@media(max-width:700px){
 .tools .dts-medallion-toggle{--dts-medallion-size:72px}
 .map-button,.map-button img{width:68px;height:72px}
}
