/* Gift discovery, with motion kept optional and real product photographs intact. */
.hero h1 { font-weight:400; letter-spacing:.035em; }
.hero-shop-link { display:block; width:fit-content; margin-top:20px; padding-bottom:4px; border-bottom:1px solid var(--line); font-size:11px; text-decoration:none; color:var(--sage); }
.hero-shop-link span { margin-left:14px; }
.hero .hero-note { margin-top:13px; }
.assortment-grid { aspect-ratio:1; overflow:hidden; align-items:start; mask-image:linear-gradient(transparent,#000 3%,#000 95%,transparent); }
.assortment-column { min-width:0; }
.assortment-track { display:flex; flex-direction:column; gap:15px; padding-bottom:15px; will-change:transform; }
.assortment-track .assortment-photo { aspect-ratio:1; }
.assortment-track .assortment-item { flex:none; }
html[data-motion=on] .assortment-track { animation:shop-drift 38s linear infinite; }
html[data-motion=on] .assortment-column:nth-child(2) .assortment-track { animation-direction:reverse; animation-duration:43s; }
.hero-assortment:hover .assortment-track { animation-play-state:paused; }
@keyframes shop-drift { to { transform:translateY(-50%); } }
html[data-motion=off] .assortment-grid,.hero-assortment:focus-within .assortment-grid { aspect-ratio:auto; mask-image:none; }
html[data-motion=off] .assortment-track,.hero-assortment:focus-within .assortment-track { animation:none; transform:none; padding-bottom:0; }
html[data-motion=off] .hero-duplicate,.hero-assortment:focus-within .hero-duplicate { display:none; }
.hero-line { overflow:hidden; }
html[data-motion=on] .hero-line>span { animation:shop-title-in .95s var(--ease) both; }
html[data-motion=on] .hero-line:nth-child(2)>span { animation-delay:.14s; }
@keyframes shop-title-in { from { transform:translateY(110%); opacity:0; } to { transform:translateY(0); opacity:1; } }

.catalog-guidance { color:var(--muted); font-size:11px; margin:0 0 18px; line-height:1.9; }
.catalog-grid { grid-auto-flow:row dense; }
.catalog-card { display:flex; flex-direction:column; position:relative; border:1px solid #dfd9ca; border-radius:4px; box-shadow:none; padding:8px; }
.catalog-gallery { flex-shrink:0; border-radius:2px; }
.catalog-photo img { filter:contrast(1.02) saturate(.95); transition:filter .35s; }
.catalog-photo:hover img { filter:contrast(1.02) saturate(1); }
.catalog-body { display:flex; flex-direction:column; flex:1; }
.catalog-tags { display:flex; flex-wrap:wrap; gap:4px 8px; margin:0 0 10px; font-size:9px; line-height:1.8; color:#737865; }
.catalog-tags>span+span::before { content:'·'; margin-right:8px; }
.keep-toggle { display:flex; align-items:center; justify-content:center; gap:8px; min-height:37px; width:100%; margin-bottom:7px; border:1px solid #cfd6c3; border-radius:3px; background:transparent; color:#526345; cursor:pointer; font-size:11px; }
.keep-toggle[aria-pressed=true] { background:#e8eddf; border-color:#aab99a; }
.keep-toggle:hover { background:#f0f2e9; }
.catalog-actions { margin-top:auto; }
.catalog-keep-open { padding:9px 14px; border:1px solid #b6c1a7; background:#fffdf7; border-radius:30px; color:#4e6241; cursor:pointer; font-size:11px; min-height:40px; white-space:nowrap; }
.catalog-count { margin-left:auto; }
.catalog-story { border-radius:4px; border-bottom-width:1px; }
@media(min-width:1100px) {
  .catalog-featured { grid-column:span 2; grid-row:span 2; }
  .catalog-featured .catalog-gallery { flex:1; min-height:400px; aspect-ratio:auto; }
  .catalog-featured .catalog-viewport { position:absolute; inset:0; }
  .catalog-featured .catalog-body { flex:none; padding:22px 18px 10px; }
  .catalog-featured h3 { font-size:27px; height:auto; line-height:1.7; -webkit-line-clamp:2; }
  .catalog-featured .catalog-description { font-size:13px; }
  .catalog-featured .catalog-craft { font-size:12px; }
  .catalog-featured .catalog-tags { font-size:10px; }
  .catalog-featured .catalog-maker { font-size:11px; }
  .catalog-featured .keep-toggle { max-width:240px; }
}
.support-flow { position:relative; padding-top:34px; }
.support-flow .support-thread { position:absolute; top:0; left:0; width:100%; height:28px; padding:0; border:0; pointer-events:none; }
.support-thread svg { display:block; width:100%; height:100%; overflow:visible; }
.support-thread path { fill:none; stroke-width:2; }
.thread-base { stroke:#d3d9c8; }
.thread-line { stroke:#a85138; stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--thread-progress,1)); }

.gift-planner-section { background:#eef0e7; border-radius:70px 0 0 0; }
.planner-layout { display:grid; grid-template-columns:1.15fr 1fr; gap:65px; align-items:start; }
.planner-options { margin:0; }
.planner-options fieldset { margin:0; padding:0 0 28px; border:0; }
.planner-options fieldset+fieldset { border-top:1px solid #d1d7c6; padding-top:24px; }
.planner-options legend { float:left; width:100%; margin-bottom:19px; font-size:15px; font-weight:600; }
.planner-options legend>span { font:italic 23px Georgia,serif; color:var(--sage); margin-right:10px; }
.plan-choices { clear:both; display:flex; flex-wrap:wrap; gap:9px; }
.plan-choices label { position:relative; cursor:pointer; }
.plan-choices input { position:absolute; opacity:0; width:1px; height:1px; }
.plan-choices label>span { display:flex; align-items:center; min-height:43px; padding:9px 16px; border:1px solid #c9d0bc; border-radius:28px; background:#fcfcf6; color:#53604b; font-size:12px; transition:background .18s,color .18s; }
.plan-choices input:checked+span { background:#526345; border-color:#526345; color:white; }
.plan-choices input:focus-visible+span { outline:2px solid var(--accent); outline-offset:3px; }
.planner-help { color:var(--muted); font-size:10px; line-height:1.9; margin:13px 0 0; }
.plan-exact { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-top:18px; font-size:11px; color:var(--muted); }
.plan-exact input { width:92px; min-width:0; padding:8px; border:1px solid #c2cbb6; border-radius:3px; background:#fffefa; font-size:14px; color:var(--ink); }
.planner-preview { padding:30px; border:1px solid #d8decd; border-radius:5px; background:#fbfbf6; }
.planner-preview .eyebrow { margin-bottom:15px; font-size:9px; }
.planner-preview h3 { font:500 25px/1.7 var(--serif); margin:0 0 13px; }
.planner-intro { font-size:12px; line-height:2; margin:0 0 22px; }
.plan-tray { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:15px; border:1px solid #e1d4bf; background:#e9e0cf; border-radius:4px; box-shadow:inset 0 0 0 5px #f5eee1; }
.plan-tray a { text-decoration:none; min-width:0; }
.plan-tray img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border:3px solid #fffdf7; filter:saturate(.95); }
.plan-tray span { display:block; font-size:8px; line-height:1.7; margin-top:6px; text-align:center; color:#685c47; }
.plan-image-label { font-size:8px; text-align:center; color:var(--muted); margin:10px 0 20px; }
.planner-real-gifts { display:block; width:fit-content; margin:0 0 20px auto; font-size:10px; color:#526345; text-underline-offset:4px; }
.clear-gift-example { padding:2px 7px; margin-left:8px; border:1px solid #d3dac7; border-radius:3px; color:var(--muted); background:transparent; font-size:9px; cursor:pointer; }
.plan-tray:has(>a:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gift-examples { margin:5px 0 55px; scroll-margin-top:145px; }
.gift-examples-heading { max-width:650px; margin-bottom:30px; }
.gift-examples-heading .eyebrow { margin-bottom:15px; font-size:9px; }
.gift-examples-heading h3 { margin:0 0 18px; font:500 28px/1.8 var(--serif); }
.gift-examples-heading>p:last-child { margin:0; font-size:12px; line-height:2; }
.gift-examples-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.gift-example { display:flex; flex-direction:column; min-width:0; padding:0 0 18px; border-bottom:1px solid var(--line); }
.gift-example figure { margin:0 0 23px; }
.gift-example-photo { display:block; aspect-ratio:1.15; overflow:hidden; background:#f0ece4; border-radius:3px; }
.gift-example-photo img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.96); transition:transform .6s var(--ease); }
.gift-example-photo:hover img { transform:scale(1.025); }
.gift-example figcaption { font-size:9px; color:var(--muted); margin-top:10px; }
.gift-example>.eyebrow { font-size:9px; margin-bottom:12px; }
.gift-example h3 { margin:0 0 16px; font:500 23px/1.8 var(--serif); min-height:3.6em; }
.gift-example>p:not(.eyebrow) { margin:0 0 19px; font-size:12px; line-height:2; }
.gift-example>.text-link { display:flex; justify-content:space-between; width:100%; font-size:11px; margin-top:auto; padding-top:12px; }
.gift-example-source { display:block; width:fit-content; margin-top:16px; font-size:9px; color:var(--muted); text-underline-offset:3px; }
.gift-examples-note { margin:24px 0 0; font-size:10px; line-height:2; color:var(--muted); }
.plan-summary { margin:0; }
.plan-summary>div { display:grid; grid-template-columns:100px 1fr; gap:10px; border-top:1px solid #e0e2d8; padding:10px 0; font-size:11px; line-height:1.8; }
.plan-summary dt { color:var(--muted); }.plan-summary dd { margin:0; }
.planner-disclaimer { margin:14px 0 21px; font-size:10px; color:var(--muted); line-height:1.9; }
.planner-preview .button { width:100%; justify-content:space-between; padding:17px 22px; font-size:12px; }
.small-order-note { display:flex; align-items:start; gap:14px; margin:0 0 32px; padding:18px 22px; border-left:2px solid #92a57d; background:#f8f9f2; font-size:12px; line-height:1.9; }
.small-order-note strong { font-weight:600; color:#526345; white-space:nowrap; }
.keep-summary { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:45px; padding-top:32px; border-top:1px solid #ccd3bf; }
.keep-summary .eyebrow { font-size:9px; margin-bottom:11px; }.keep-summary h3 { font:500 25px/1.7 var(--serif); margin:0 0 10px; }
.keep-summary p:not(.eyebrow) { font-size:12px; line-height:2; margin:0; }
.keep-summary>div:last-child { display:flex; flex-direction:column; align-items:center; gap:18px; }
.keep-summary .button { font-size:12px; gap:10px; padding:16px 24px; white-space:nowrap; }
.keep-summary .text-link { font-size:11px; }
.consult-dock { position:fixed; right:24px; bottom:22px; z-index:25; padding:11px; background:#fffdf7f5; border:1px solid #dbe0cf; border-radius:10px; box-shadow:0 6px 30px #25321c12; backdrop-filter:blur(10px); }
.consult-dock>p { text-align:center; margin:0 0 7px; color:#65715b; font-size:9px; }
.consult-dock>div { display:flex; gap:7px; }
.consult-dock a,.consult-dock button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 17px; border:1px solid #b9c6a8; border-radius:5px; font-size:11px; color:#4e6241; background:#fffefa; text-decoration:none; cursor:pointer; }
.consult-dock a { color:white; border-color:#526345; background:#526345; }
.consult-dock [data-keep-count] { display:inline-flex; align-items:center; justify-content:center; width:21px; height:21px; border-radius:50%; background:#e7eddd; font-size:10px; }
body.is-contact-visible .consult-dock,body.is-planner-visible .consult-dock { visibility:hidden; opacity:0; pointer-events:none; }
.keep-dialog { width:min(650px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; border:1px solid #d1d8c4; border-radius:12px; padding:0; background:#fffdf7; color:var(--ink); }
.keep-dialog::backdrop { background:#263021b8; backdrop-filter:blur(4px); }
body:has(.keep-dialog[open]) { overflow:hidden; }
.keep-dialog-inner { padding:38px; position:relative; }
.keep-close { position:absolute; right:14px; top:14px; width:38px; height:38px; font-size:24px; border-radius:50%; border:1px solid #d1d9c7; background:#fffdf7; color:var(--ink); cursor:pointer; }
.keep-dialog .eyebrow { font-size:9px; margin-bottom:15px; }
.keep-dialog h2 { font-size:27px; margin:0 0 16px; }.keep-dialog h2>span { margin-left:12px; color:var(--sage); }.keep-dialog h2 small { font:12px sans-serif; margin-left:4px; }
.keep-intro { font-size:12px; line-height:2; margin-bottom:24px; }
.keep-list { margin:0 0 24px; padding:0; list-style:none; }
.keep-list li { display:grid; grid-template-columns:64px minmax(0,1fr) 34px; align-items:center; gap:15px; padding:13px 0; border-top:1px solid #e0e4d6; }
.keep-list img { object-fit:cover; border-radius:3px; }
.keep-list a { color:var(--ink); text-decoration:none; }.keep-list a:hover { text-decoration:underline; }
.keep-list small { display:block; color:var(--sage); font-size:10px; margin-bottom:5px; }.keep-list a>span { font:500 17px/1.7 var(--serif); }
.keep-list li>button { width:34px; height:34px; border:1px solid #d7dccd; border-radius:50%; background:transparent; font-size:20px; cursor:pointer; color:var(--muted); }
.keep-dialog [data-transfer-keep] { width:100%; padding:18px 22px; justify-content:space-between; font-size:12px; }
.keep-device-note { color:var(--muted); font-size:10px; line-height:1.9; margin:17px 0; }
.keep-clear { padding:8px 0; border:0; border-bottom:1px solid #cbd3bf; background:transparent; color:var(--muted); cursor:pointer; font-size:10px; }
.keep-empty { padding:25px 0 35px; font-size:13px; line-height:2; }.keep-empty a { margin-top:15px; font-size:12px; }
.shop-feedback { position:fixed; left:50%; bottom:122px; transform:translateX(-50%) translateY(10px); z-index:100; width:max-content; max-width:calc(100vw - 40px); padding:13px 19px; color:#fff; background:#3c4e32; border-radius:7px; font-size:12px; line-height:1.8; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; }
.shop-feedback.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
@media(max-width:1099px) { .planner-layout { gap:32px; }.planner-preview { padding:24px; }.planner-preview h3 { font-size:22px; }.plan-choices label>span { padding-inline:13px; font-size:11px; }.planner-options legend { font-size:13px; } }
@media(max-width:700px) {
  .gift-examples { margin-bottom:38px; scroll-margin-top:115px; }
  .gift-examples-heading h3 { font-size:23px; }.gift-examples-heading>p:last-child { font-size:11px; }
  .gift-examples-grid { grid-template-columns:1fr; gap:35px; }
  .gift-example figure { margin-bottom:20px; }.gift-example h3 { font-size:23px; min-height:0; margin-bottom:12px; }
  .gift-example>p:not(.eyebrow) { font-size:11px; }.gift-example>.text-link { font-size:11px; }
  .gift-example figcaption,.gift-example-source { font-size:9px; }.gift-examples-note { font-size:10px; }
  .hero-actions .button { font-size:10px; padding-inline:17px; gap:14px; }
  .hero-shop-link { font-size:10px; margin-top:17px; }.hero .hero-note { margin-top:10px; }
  .assortment-grid { aspect-ratio:auto; overflow:visible; mask-image:none; }
  html[data-motion=on] .assortment-track { animation:none; transform:none; gap:10px; padding:0; }
  .hero-duplicate { display:none; }.assortment-track { gap:10px; padding:0; }
  .catalog-toolbar { gap:7px; }.catalog-keep-open { font-size:10px; min-height:30px; padding:4px 11px; }.catalog-count { font-size:8px; }
  .catalog-guidance { font-size:10px; }
  .catalog-card { padding:6px; }.catalog-tags { font-size:8px; min-height:2em; gap:2px 5px; margin-bottom:8px; }.catalog-tags>span+span::before { margin-right:5px; }
  .keep-toggle { min-height:36px; font-size:10px; }.catalog-consult { font-size:9px; }
  .catalog-featured { grid-column:auto; grid-row:auto; }
  .gift-planner-section { border-radius:40px 0 0 0; }
  .planner-layout { grid-template-columns:1fr; gap:12px; }.planner-options fieldset { padding-bottom:23px; }.planner-options fieldset+fieldset { padding-top:20px; }
  .planner-options legend { font-size:13px; margin-bottom:15px; }.plan-choices { gap:7px; }.plan-choices label>span { font-size:11px; min-height:42px; padding:8px 13px; }
  .planner-preview { padding:23px 20px; }.planner-preview h3 { font-size:23px; }.planner-intro { font-size:11px; }.plan-tray { gap:6px; padding:12px; }.plan-tray span { font-size:7px; }
  .plan-summary>div { grid-template-columns:85px 1fr; font-size:11px; }.plan-exact { font-size:10px; }
  .small-order-note { display:block; padding:15px 17px; margin-bottom:26px; font-size:11px; }.small-order-note strong { display:block; margin-bottom:4px; }
  .keep-summary { display:block; margin-top:32px; padding-top:27px; }.keep-summary h3 { font-size:23px; }.keep-summary p:not(.eyebrow) { font-size:11px; }.keep-summary>div:last-child { align-items:start; margin-top:23px; }.keep-summary .button { font-size:11px; }
  .consult-dock { right:12px; left:12px; bottom:max(10px,env(safe-area-inset-bottom)); padding:8px; border-radius:9px; }
  .consult-dock>p { font-size:8px; margin-bottom:5px; }.consult-dock>div { display:grid; grid-template-columns:1fr 1.2fr; gap:6px; }.consult-dock a,.consult-dock button { gap:6px; padding:8px; font-size:10px; min-height:43px; }
  .back-top { bottom:108px; }.footer { padding-bottom:130px; }
  .keep-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); }.keep-dialog-inner { padding:40px 21px 24px; }.keep-dialog h2 { font-size:25px; }.keep-intro { font-size:11px; }
  .keep-list li { grid-template-columns:53px minmax(0,1fr) 30px; gap:10px; }.keep-list img { width:53px; height:53px; }.keep-list a>span { font-size:14px; }.keep-list small { font-size:9px; }.keep-list li>button { width:30px; height:30px; }
  .keep-dialog [data-transfer-keep] { padding:15px; font-size:11px; }.shop-feedback { bottom:110px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  .assortment-grid { aspect-ratio:auto; mask-image:none; }
  html[data-motion=on] .assortment-track { animation:none; transform:none; padding-bottom:0; }
  .hero-duplicate { display:none; }.thread-line { stroke-dashoffset:0; }
}
