:root{--linen: #F3ECDC;--linen-2: #EAE0CB;--linen-3: #E1D5BB;--wool: #FAF6EC;--olive: #6F7F3C;--olive-dk: #54642C;--olive-lt: #8B9B55;--rust: #C2604F;--rust-dk: #A04A3B;--teal: #7FB3AE;--teal-dk: #5E928D;--mustard: #D9A441;--mustard-dk: #B8842B;--navy: #3F5C77;--navy-dk: #2E4559;--brown: #7A5436;--ink: #473826;--ink-soft: #6B5A44;--shadow: rgba(71, 56, 38, .18);--display: "Chewy", "Comic Sans MS", cursive;--body: "Nunito", "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--body);color:var(--ink);background:var(--linen);background-image:repeating-linear-gradient(0deg,rgba(122,84,54,.035) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(122,84,54,.035) 0 1px,transparent 1px 4px);overflow-x:hidden}.yarned{background-image:repeating-linear-gradient(55deg,rgba(255,255,255,.16) 0 2px,transparent 2px 7px),repeating-linear-gradient(-55deg,rgba(0,0,0,.1) 0 2px,transparent 2px 7px)}.bobbled{background-image:radial-gradient(circle at 4px 4px,rgba(255,255,255,.18) 1.5px,transparent 2.5px);background-size:9px 9px}.scallop-bottom{position:relative}.scallop-bottom:after{content:"";position:absolute;left:0;right:0;bottom:-13px;height:14px;background:radial-gradient(circle at 12px 0,var(--sc, var(--wool)) 11px,transparent 12px);background-size:24px 14px;background-repeat:repeat-x;pointer-events:none;z-index:1}.scallop-top{position:relative}.scallop-top:before{content:"";position:absolute;left:0;right:0;top:-13px;height:14px;background:radial-gradient(circle at 12px 14px,var(--sc, var(--wool)) 11px,transparent 12px);background-size:24px 14px;background-repeat:repeat-x;pointer-events:none;z-index:1}.stitched{border:3px dashed rgba(122,84,54,.45);border-radius:22px}.chain-text{color:#f6f1e4;text-shadow:0 1px 0 rgba(0,0,0,.25),0 0 1px rgba(255,255,255,.6);letter-spacing:.06em}.yarn-word .w{display:inline-block;white-space:nowrap}.yarn-word .w span{display:inline-block}.yarn-word .w:nth-child(7n+1) span:nth-child(3n+1){color:var(--rust)}.yarn-word .w:nth-child(7n+1) span:nth-child(3n+2){color:var(--olive)}.yarn-word .w:nth-child(7n+1) span:nth-child(3n){color:var(--navy)}.yarn-word .w:nth-child(7n+2) span:nth-child(3n+1){color:var(--mustard-dk)}.yarn-word .w:nth-child(7n+2) span:nth-child(3n+2){color:var(--teal-dk)}.yarn-word .w:nth-child(7n+2) span:nth-child(3n){color:var(--rust-dk)}.yarn-word .w:nth-child(7n+3) span:nth-child(3n+1){color:var(--olive)}.yarn-word .w:nth-child(7n+3) span:nth-child(3n+2){color:var(--navy)}.yarn-word .w:nth-child(7n+3) span:nth-child(3n){color:var(--mustard-dk)}.yarn-word .w:nth-child(7n+4) span:nth-child(3n+1){color:var(--teal-dk)}.yarn-word .w:nth-child(7n+4) span:nth-child(3n+2){color:var(--rust)}.yarn-word .w:nth-child(7n+4) span:nth-child(3n){color:var(--brown)}.yarn-word .w:nth-child(7n+5) span:nth-child(3n+1){color:var(--navy)}.yarn-word .w:nth-child(7n+5) span:nth-child(3n+2){color:var(--mustard-dk)}.yarn-word .w:nth-child(7n+5) span:nth-child(3n){color:var(--olive)}.yarn-word .w:nth-child(7n+6) span:nth-child(3n+1){color:var(--rust-dk)}.yarn-word .w:nth-child(7n+6) span:nth-child(3n+2){color:var(--olive)}.yarn-word .w:nth-child(7n+6) span:nth-child(3n){color:var(--teal-dk)}.yarn-word .w:nth-child(7n) span:nth-child(3n+1){color:var(--brown)}.yarn-word .w:nth-child(7n) span:nth-child(3n+2){color:var(--rust)}.yarn-word .w:nth-child(7n) span:nth-child(3n){color:var(--navy)}.plush{font-family:var(--display);text-shadow:1px 1px 0 rgba(255,255,255,.55),2px 3px 0 rgba(71,56,38,.22)}@keyframes stitchPop{0%{transform:scale(0) rotate(-12deg);opacity:0}65%{transform:scale(1.18) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.yarn-word.animate .w span{animation:stitchPop .45s cubic-bezier(.34,1.56,.64,1) backwards}@keyframes letterBob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}section{padding:84px 22px}.shell{max-width:1180px;margin:0 auto}.sec-head{text-align:center;margin-bottom:50px}.sec-head h2{font-family:var(--display);font-size:clamp(2rem,3.6vw,2.9rem);margin-bottom:10px}.sec-head .thread{width:170px;height:5px;margin:14px auto 0;border-radius:99px;background:repeating-linear-gradient(90deg,var(--rust) 0 9px,transparent 9px 16px);transform:scaleX(0);transition:transform .8s ease .2s}.in-view .thread{transform:scaleX(1)}.sec-head p{color:var(--ink-soft);font-weight:600;max-width:58ch;margin:10px auto 0}.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.in-view .reveal{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.12s}.reveal:nth-child(3){transition-delay:.24s}.reveal:nth-child(4){transition-delay:.1s}.reveal:nth-child(5){transition-delay:.2s}.reveal:nth-child(6){transition-delay:.3s}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-dk);margin-bottom:14px}.eyebrow:before,.eyebrow:after{content:"";width:34px;height:4px;border-radius:99px;background:repeating-linear-gradient(90deg,var(--olive) 0 6px,transparent 6px 11px)}.patch-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.18rem;letter-spacing:.08em;padding:15px 56px;border:none;cursor:pointer;border-radius:999px;background:var(--olive);color:#f6f1e4;box-shadow:inset 0 0 0 4px #ffffff38,inset 0 -5px #0000002e,0 5px 12px var(--shadow);outline-offset:4px;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;text-shadow:0 1px 0 rgba(0,0,0,.25)}.patch-btn:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:999px;border:3px dotted rgba(255,255,255,.55);pointer-events:none}.patch-btn:hover{transform:translateY(-3px) scale(1.04)}.patch-btn:active{transform:translateY(1px) scale(.97);box-shadow:inset 0 0 0 4px #ffffff38,inset 0 -2px #0000002e,0 2px 5px var(--shadow)}.heart-bn{position:absolute;top:50%;width:46px;height:46px;border-radius:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 4px #ffffff47,inset 0 -4px 6px #0000002e,0 3px 6px var(--shadow)}.heart-bn:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;border:3px dotted rgba(255,255,255,.5)}.heart-bn span{font-size:1rem;color:var(--brown);text-shadow:0 1px 0 rgba(255,255,255,.35);transform:translateY(-1px)}.heart-bn.left{left:-20px;background:var(--rust)}.heart-bn.right{right:-20px;background:var(--teal)}.cart-btn{position:relative;display:inline-flex;align-items:center;font-family:var(--display);font-size:.95rem;letter-spacing:.1em;background:var(--olive);color:#f6f1e4;border:none;cursor:pointer;padding:10px 34px;border-radius:999px;box-shadow:inset 0 0 0 3px #ffffff38,inset 0 -4px #00000029,0 3px 8px var(--shadow);transition:transform .16s cubic-bezier(.34,1.56,.64,1);text-shadow:0 1px 0 rgba(0,0,0,.25);outline-offset:4px}.cart-btn:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:999px;border:2.5px dotted rgba(255,255,255,.5);pointer-events:none}.cart-btn:hover{transform:translateY(-2px) scale(1.05)}.cart-btn:active{transform:scale(.94)}.cart-btn .heart-bn{width:34px;height:34px}.cart-btn .heart-bn:before{top:4px;right:4px;bottom:4px;left:4px;border-width:2.5px}.cart-btn .heart-bn span{font-size:.78rem}.cart-btn .heart-bn.left{left:-15px}.cart-btn .heart-bn.right{right:-15px}@keyframes flyHeart{0%{transform:translate(-50%) scale(.6);opacity:1}to{transform:translate(-50%,-90px) scale(1.5);opacity:0}}.fly-heart{position:absolute;left:50%;bottom:60%;font-size:1.5rem;pointer-events:none;animation:flyHeart .9s ease-out forwards}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,120px);background:var(--olive);color:#f6f1e4;font-weight:800;font-family:var(--body);padding:14px 26px;border-radius:999px;z-index:99;box-shadow:inset 0 0 0 3px #ffffff40,0 8px 20px var(--shadow);transition:transform .4s cubic-bezier(.34,1.56,.64,1);white-space:nowrap}.toast.show{transform:translate(-50%)}.to-top{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border:none;cursor:pointer;border-radius:50%;background:var(--rust);z-index:97;box-shadow:inset 0 -5px 8px #0003,0 6px 14px var(--shadow);background-image:radial-gradient(circle at 32% 30%,rgba(255,255,255,.3),transparent 45%),repeating-linear-gradient(35deg,rgba(255,255,255,.18) 0 3px,transparent 3px 9px),repeating-linear-gradient(-25deg,rgba(0,0,0,.12) 0 3px,transparent 3px 10px);opacity:0;transform:translateY(20px);transition:.35s;outline-offset:4px;font-size:1.4rem;display:flex;align-items:center;justify-content:center}.to-top.show{opacity:1;transform:none}.to-top:hover{transform:translateY(-4px) rotate(20deg)}#yarnTrail{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:98}header{position:sticky;top:0;z-index:50;background:var(--wool);box-shadow:0 4px 14px var(--shadow)}.topbar{max-width:1180px;margin:0 auto;padding:14px 22px 6px;display:flex;align-items:center;justify-content:space-between;gap:16px}.logo{display:flex;align-items:center;gap:12px;text-decoration:none}.logo svg{width:54px;height:54px;flex:none}.logo-name{font-family:var(--display);font-size:1.9rem;line-height:1;color:var(--ink)}.logo-sub{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.basket-btn{position:relative;display:flex;align-items:center;gap:8px;background:var(--olive);border:none;cursor:pointer;padding:9px 18px;border-radius:999px;font-family:var(--body);font-weight:800;font-size:.85rem;letter-spacing:.05em;color:#f6f1e4;box-shadow:inset 0 -3px #0000002e,0 3px 8px var(--shadow);outline-offset:3px;transition:transform .15s}.basket-btn:hover{transform:translateY(-2px) scale(1.03)}.basket-btn:active{transform:scale(.96)}.basket-count{position:absolute;top:-8px;right:-8px;min-width:24px;height:24px;padding:0 6px;background:var(--rust);color:#fff;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;border:2px dotted rgba(255,255,255,.75);transform:scale(0);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.basket-count.show{transform:scale(1)}@keyframes cartBounce{0%{transform:scale(1)}35%{transform:scale(1.25) rotate(-6deg)}to{transform:scale(1)}}.basket-btn.bounce{animation:cartBounce .45s}nav{max-width:1180px;margin:0 auto;padding:2px 22px 14px}nav ul{display:flex;flex-wrap:wrap;gap:8px 30px;justify-content:center;list-style:none}nav a{font-family:var(--display);font-size:1.55rem;text-decoration:none;display:inline-block;padding:2px 4px;border-radius:10px;outline-offset:4px;color:var(--ink)}nav a.active-link{color:var(--rust)}nav a:after{content:"";display:block;height:4px;margin-top:1px;border-radius:99px;background:repeating-linear-gradient(90deg,var(--rust) 0 8px,transparent 8px 14px);transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after,nav a:focus-visible:after,nav a.active-link:after{transform:scaleX(1)}nav a:hover .yarn-word .w span{animation:letterBob .6s ease both;animation-delay:calc(var(--i) * 45ms)}.hero{max-width:1180px;margin:46px auto 0;padding:0 22px;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}.hero-card{--sc: var(--linen-2);background:var(--linen-2);border-radius:28px;padding:48px 44px 54px;position:relative;box-shadow:0 10px 26px var(--shadow),inset 0 0 0 3px #7a54361f}.hero-card:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:3px dashed rgba(122,84,54,.4);border-radius:20px;pointer-events:none}.hero h1{font-family:var(--display);font-size:clamp(2.4rem,4.6vw,3.7rem);line-height:1.08;margin-bottom:16px}.hero p.lede{font-size:1.08rem;color:var(--ink-soft);max-width:46ch;margin-bottom:30px;font-weight:600}@keyframes swing{0%,to{transform:rotate(2.4deg)}50%{transform:rotate(-2.4deg)}}.swinger{transform-origin:220px 14px;animation:swing 5.5s ease-in-out infinite}@keyframes spinSlow{to{transform:rotate(360deg)}}.mandala-core{transform-origin:220px 252px;animation:spinSlow 90s linear infinite}.hanging{display:flex;flex-direction:column;align-items:center}.hanging svg{width:min(440px,100%);height:auto;filter:drop-shadow(0 14px 18px var(--shadow))}#shop{background:var(--linen-2)}#shop.scallop-top:before,#shop.scallop-bottom:after{--sc: var(--linen-2)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.product{background:var(--wool);border-radius:26px;padding:30px 26px;text-align:center;position:relative;box-shadow:0 8px 20px var(--shadow);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}.product:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:3px dashed rgba(122,84,54,.32);border-radius:19px;pointer-events:none}.product:hover{transform:translateY(-9px) rotate(-.6deg);box-shadow:0 18px 30px var(--shadow)}.frame{width:188px;height:188px;margin:6px auto 18px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;background:var(--linen);box-shadow:inset 0 0 0 7px var(--fc, var(--rust)),inset 0 0 0 11px #ffffff80,0 5px 10px var(--shadow)}.frame:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:50%;z-index:-1;background:repeating-conic-gradient(var(--fc, var(--rust)) 0deg 9deg,transparent 9deg 18deg);-webkit-mask:radial-gradient(circle,transparent 86px,#000 87px);mask:radial-gradient(circle,transparent 86px,#000 87px);opacity:.9}.frame svg{width:74%;height:74%}.product:hover .frame svg{animation:wobble .7s ease}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg) scale(1.05)}60%{transform:rotate(4deg)}}.tag{position:absolute;top:150px;right:22px;transform:rotate(-9deg);background:var(--olive);color:#f6f1e4;font-family:var(--display);font-size:1.04rem;letter-spacing:.05em;padding:8px 16px 8px 24px;border-radius:9px 14px 14px 9px;box-shadow:inset 0 0 0 3px #ffffff38,0 3px 7px var(--shadow);text-shadow:0 1px 0 rgba(0,0,0,.3);transition:transform .25s}.tag:before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:var(--wool);box-shadow:inset 0 1px 2px #00000059}.tag:after{content:"";position:absolute;left:-13px;top:38%;width:16px;height:10px;border:2.5px solid #E8DFC8;border-right:none;border-bottom:none;border-radius:10px 0 0;transform:rotate(-30deg)}.product:hover .tag{transform:rotate(-3deg) scale(1.08)}.product h3{font-family:var(--display);font-size:1.34rem;margin-bottom:6px}.product p{font-size:.9rem;color:var(--ink-soft);font-weight:600;min-height:42px;margin-bottom:18px}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}.granny-stack{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:420px;margin:0 auto}.granny{aspect-ratio:1;border-radius:14px;position:relative;background:var(--g4);box-shadow:inset 0 0 0 9px var(--g3),inset 0 0 0 18px var(--g2),inset 0 0 0 27px var(--g1),0 6px 14px var(--shadow);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.granny:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;background-image:repeating-linear-gradient(55deg,rgba(255,255,255,.14) 0 2px,transparent 2px 7px),repeating-linear-gradient(-55deg,rgba(0,0,0,.08) 0 2px,transparent 2px 7px)}.granny:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:11px;border:2.5px dotted rgba(255,255,255,.4)}.granny:hover{transform:rotate(4deg) scale(1.06);z-index:2}.granny:nth-child(2n):hover{transform:rotate(-4deg) scale(1.06)}.about-copy h2{font-family:var(--display);font-size:clamp(1.9rem,3.2vw,2.6rem);margin-bottom:18px}.about-copy p{color:var(--ink-soft);font-weight:600;line-height:1.75;margin-bottom:16px}.about-points{list-style:none;margin-top:22px;display:grid;gap:12px}.about-points li{display:flex;gap:12px;align-items:flex-start;font-weight:700}.about-points .pip{flex:none;width:26px;height:26px;border-radius:50%;margin-top:-1px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--brown);box-shadow:inset 0 0 0 3px #ffffff59,inset 0 -3px 4px #00000026}#gallery{background:var(--navy)}#gallery.scallop-top:before,#gallery.scallop-bottom:after{--sc: var(--navy)}#gallery .sec-head h2,#gallery .sec-head p{color:#f2ebda}#gallery .sec-head p{opacity:.85}.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.swatch{aspect-ratio:1;border-radius:18px;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 8px 16px #00000047;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.swatch:hover{transform:translateY(-7px) rotate(1.2deg) scale(1.03)}.swatch .label{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 12px;background:linear-gradient(transparent,#2e4559d9);color:#f2ebda;font-weight:800;font-size:.86rem;letter-spacing:.04em;opacity:0;transform:translateY(8px);transition:.3s}.swatch:hover .label{opacity:1;transform:none}.sw-stripes{background:repeating-linear-gradient(0deg,var(--rust) 0 22px,var(--mustard) 22px 44px,var(--teal) 44px 66px,var(--olive-lt) 66px 88px,var(--wool) 88px 110px)}.sw-granny{background:var(--rust);box-shadow:inset 0 0 0 16px var(--mustard),inset 0 0 0 32px var(--teal),inset 0 0 0 48px var(--navy-dk),inset 0 0 0 64px var(--wool),0 8px 16px #00000047}.sw-chevron{background:repeating-linear-gradient(45deg,var(--teal) 0 16px,var(--wool) 16px 32px,var(--rust) 32px 48px,var(--mustard) 48px 64px)}.sw-dots{background:var(--olive);background-image:radial-gradient(var(--wool) 11px,transparent 12px),radial-gradient(var(--mustard) 11px,transparent 12px);background-size:64px 64px;background-position:0 0,32px 32px}.sw-rings{background:var(--mustard);background-image:repeating-radial-gradient(circle at 50% 50%,var(--rust) 0 12px,var(--mustard) 12px 24px,var(--wool) 24px 36px,var(--teal) 36px 48px)}.sw-diamond{background:repeating-conic-gradient(from 45deg,var(--navy-dk) 0 25%,var(--wool) 0 50%) 0 0 / 72px 72px}.sw-waves{background:var(--teal);background-image:radial-gradient(circle at 50% 0,var(--wool) 18px,transparent 19px),radial-gradient(circle at 0 50%,var(--rust) 18px,transparent 19px);background-size:54px 54px}.sw-heartline{background:var(--wool);background-image:radial-gradient(circle at 30% 30%,var(--rust) 9px,transparent 10px),radial-gradient(circle at 70% 30%,var(--rust) 9px,transparent 10px),conic-gradient(from -45deg at 50% 62%,var(--rust) 0 90deg,transparent 0);background-size:60px 60px}.swatch:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(55deg,rgba(255,255,255,.13) 0 2px,transparent 2px 7px),repeating-linear-gradient(-55deg,rgba(0,0,0,.1) 0 2px,transparent 2px 7px);pointer-events:none}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:start}.contact-card{background:var(--wool);border-radius:26px;padding:38px 34px;position:relative;box-shadow:0 10px 24px var(--shadow)}.contact-card:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:3px dashed rgba(122,84,54,.32);border-radius:19px;pointer-events:none}.contact-card h3{font-family:var(--display);font-size:1.5rem;margin-bottom:18px}.field{margin-bottom:18px;position:relative;z-index:1}.field label{display:block;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px}.field input,.field textarea{width:100%;padding:13px 16px;border-radius:14px;border:3px dashed rgba(122,84,54,.4);background:var(--linen);font-family:var(--body);font-weight:600;font-size:.96rem;color:var(--ink);transition:border-color .2s,background .2s,transform .2s}.field input:focus,.field textarea:focus{outline:none;border-color:var(--olive);background:#fff;transform:scale(1.01);border-style:solid}.field textarea{min-height:130px;resize:vertical}.info-rows{display:grid;gap:18px;margin-top:8px}.info-row{display:flex;gap:16px;align-items:center;font-weight:700}.info-row .pip{width:46px;height:46px;font-size:1.05rem;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 3px #ffffff4d,inset 0 -4px 5px #00000026;color:#fff}.info-row small{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.newsletter{background:var(--linen-2);text-align:center;position:relative}.newsletter.scallop-top:before,.newsletter.scallop-bottom:after{--sc: var(--linen-2)}.hearts-row{display:flex;justify-content:center;gap:16px;margin-bottom:26px}.heart{width:30px;height:28px;position:relative;transform:rotate(-45deg);background:var(--hc);border-radius:0 0 4px;animation:heartBeat 2.6s ease-in-out infinite;animation-delay:var(--d);box-shadow:inset -2px -2px 4px #00000026}.heart:before,.heart:after{content:"";position:absolute;width:30px;height:28px;border-radius:50%;background:var(--hc)}.heart:before{top:-14px;left:0}.heart:after{left:14px;top:0}@keyframes heartBeat{0%,to{transform:rotate(-45deg) scale(1)}12%{transform:rotate(-45deg) scale(1.18)}24%{transform:rotate(-45deg) scale(1)}}.news-form{display:flex;gap:14px;justify-content:center;max-width:520px;margin:26px auto 0;flex-wrap:wrap}.news-form input{flex:1;min-width:240px;padding:14px 20px;border-radius:999px;border:3px dashed rgba(122,84,54,.4);background:var(--wool);font-family:var(--body);font-weight:600;font-size:.95rem}.news-form input:focus{outline:none;border-color:var(--rust);border-style:solid}footer{background:var(--brown);color:#f2ebda;padding:60px 22px 30px;position:relative}footer.scallop-top:before{--sc: var(--brown)}.foot-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}footer h4{font-family:var(--display);font-size:1.25rem;margin-bottom:14px}footer p,footer a{color:#f2ebdad9;font-weight:600;font-size:.92rem;line-height:1.9;text-decoration:none}footer a:hover{color:#fff;text-decoration:underline dotted}footer ul{list-style:none}.foot-bottom{max-width:1180px;margin:40px auto 0;padding-top:20px;text-align:center;font-size:.85rem;font-weight:700;color:#f2ebdab3;border-top:3px dashed rgba(242,235,218,.3)}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:none;transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1)}.cart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#47382680;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.cart-overlay.open{opacity:1;pointer-events:all}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--wool);z-index:101;transform:translate(100%);transition:transform .35s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;box-shadow:-8px 0 32px var(--shadow)}.cart-drawer.open{transform:none}.cart-drawer-head{padding:22px 26px;border-bottom:3px dashed rgba(122,84,54,.3);display:flex;align-items:center;justify-content:space-between}.cart-drawer-head h2{font-family:var(--display);font-size:1.6rem}.cart-close{background:var(--rust);border:none;cursor:pointer;border-radius:50%;width:38px;height:38px;font-size:1.1rem;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 -3px 4px #0003;transition:transform .2s}.cart-close:hover{transform:rotate(90deg) scale(1.1)}.cart-body{flex:1;overflow-y:auto;padding:22px 26px}.cart-empty{text-align:center;padding:60px 20px;color:var(--ink-soft);font-weight:600;font-size:1.1rem}.cart-empty span{font-size:3rem;display:block;margin-bottom:12px}.cart-item{display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:2px dashed rgba(122,84,54,.2)}.cart-item-name{font-family:var(--display);font-size:1.05rem;flex:1}.cart-item-qty{color:var(--ink-soft);font-weight:700;font-size:.9rem}.cart-item-price{font-weight:800;color:var(--rust)}.cart-footer{padding:18px 26px 26px;border-top:3px dashed rgba(122,84,54,.3)}.cart-total{font-family:var(--display);font-size:1.4rem;margin-bottom:16px;display:flex;justify-content:space-between}.checkout-btn{width:100%;padding:15px;border-radius:999px;border:none;cursor:pointer;font-family:var(--display);font-size:1.15rem;letter-spacing:.08em;background:var(--rust);color:#f6f1e4;box-shadow:inset 0 -4px #0003,0 4px 12px var(--shadow);transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.checkout-btn:hover{transform:translateY(-2px) scale(1.02)}.info-row{align-items:flex-start}.info-row span{word-break:break-word;overflow-wrap:anywhere}.info-row .pip{margin-top:2px}@media (max-width: 980px){.hero{grid-template-columns:1fr;gap:32px}.grid-3{grid-template-columns:repeat(2,1fr);gap:28px}.gal-grid{grid-template-columns:repeat(2,1fr)}.about-grid,.contact-grid{grid-template-columns:1fr}.foot-grid{grid-template-columns:repeat(3,1fr);gap:28px}}@media (max-width: 768px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px}.contact-grid{gap:32px}.about-grid{gap:36px}.gal-grid{grid-template-columns:repeat(2,1fr);gap:18px}.grid-3{gap:22px}.hero-card{padding:40px 36px 48px}}@media (max-width: 600px){section{padding:64px 18px}.topbar{flex-wrap:wrap;justify-content:center;gap:12px}nav ul{gap:4px 16px}nav a{font-size:1.2rem}.grid-3{grid-template-columns:1fr;gap:26px}.gal-grid{grid-template-columns:repeat(2,1fr);gap:12px}.foot-grid{grid-template-columns:1fr}.about-grid,.contact-grid{gap:28px}.hero{margin-top:20px;gap:24px}.hero-card{padding:28px 22px 38px}.hero h1{font-size:clamp(1.75rem,7.5vw,3.7rem)}.hero-card .patch-btn{padding:13px 40px;font-size:1rem}.hero-card .heart-bn{width:38px;height:38px}.hero-card .heart-bn.left{left:-16px}.hero-card .heart-bn.right{right:-16px}.about-copy h2{font-size:clamp(1.6rem,6vw,2.4rem)}.toast{white-space:normal;text-align:center;max-width:min(92vw,340px);border-radius:18px;font-size:.88rem;padding:12px 20px}.sec-head{margin-bottom:36px}.sec-head h2{font-size:clamp(1.7rem,6.5vw,2.9rem)}.foot-bottom{margin-top:28px;font-size:.8rem}}@media (max-width: 400px){.logo-name{font-size:1.55rem}nav a{font-size:1.05rem}nav ul{gap:4px 10px}.patch-btn{padding:11px 34px;font-size:.95rem}.heart-bn{width:38px;height:38px}.heart-bn.left{left:-14px}.heart-bn.right{right:-14px}.contact-card .patch-btn{padding:11px 30px}.frame{width:160px;height:160px}.tag{top:126px}.cart-total{font-size:1.15rem}.sec-head{margin-bottom:28px}}@media (max-width: 480px){.cart-drawer{width:100vw}.cart-drawer-head{padding:16px 18px}.cart-body{padding:14px 18px}.cart-footer{padding:14px 18px 22px}.cart-drawer-head h2{font-size:1.35rem}}@media (pointer: coarse){.product:hover{transform:none;box-shadow:0 8px 20px var(--shadow)}.product:hover .tag{transform:rotate(-9deg)}.patch-btn:hover,.cart-btn:hover,.basket-btn:hover{transform:none}.granny:hover,.granny:nth-child(2n):hover{transform:none}.swatch:hover{transform:none}.swatch:hover .label{opacity:1;transform:none}.to-top:hover{transform:none}.bss-wrap:hover{transform:none;box-shadow:0 32px 80px #47382647,0 8px 24px #47382624}nav a:hover .yarn-word .w span{animation:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.sec-head .thread{transform:scaleX(1)}}.bss-wrap{margin:0 0 48px;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 32px 80px #47382647,0 8px 24px #47382624,inset 0 0 0 2px #7a54361f;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s}.bss-wrap:hover{transform:translateY(-6px) scale(1.005);box-shadow:0 44px 100px #47382652,0 12px 32px #4738262e}.bss-svg{width:100%;height:auto;display:block}.bss-caption{position:absolute;bottom:14px;right:18px;font-family:var(--body);font-size:.72rem;font-weight:800;color:#f2ebdaa6;letter-spacing:.16em;text-transform:uppercase;pointer-events:none}@keyframes bssEntrance{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}.bss-svg{animation:bssEntrance .9s cubic-bezier(.22,1,.36,1) both}@keyframes bssLightPulse{0%,to{opacity:.13;transform:scale(1)}50%{opacity:.22;transform:scale(1.08)}}.bss-light-pool{animation:bssLightPulse 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bssBeamShimmer{0%,to{opacity:.55}50%{opacity:.82}}.bss-beams{animation:bssBeamShimmer 5s ease-in-out infinite}@keyframes bssYarnBob{0%,to{transform:translateY(0) rotate(0)}35%{transform:translateY(-10px) rotate(5deg)}65%{transform:translateY(-5px) rotate(-3deg)}}.bss-yarn-ball{animation:bssYarnBob 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bssYarnShadow{0%,to{transform:scaleX(1);opacity:.24}35%{transform:scaleX(.82) translateY(-5px);opacity:.15}65%{transform:scaleX(.91) translateY(-2px);opacity:.19}}.bss-yarn-shadow{animation:bssYarnShadow 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bssWrapSpin{to{stroke-dashoffset:-120}}.bss-yarn-wrap-h{animation:bssWrapSpin 10s linear infinite}.bss-yarn-wrap-v{animation:bssWrapSpin 14s linear infinite reverse}.bss-yarn-wrap-d{animation:bssWrapSpin 18s linear infinite}@keyframes bssThreadDraw{0%{stroke-dashoffset:280}to{stroke-dashoffset:0}}.bss-thread{stroke-dashoffset:280;animation:bssThreadDraw 2.8s ease-out 1.2s both}@keyframes bssHookStitch{0%,to{transform:translate(0) rotate(0)}22%{transform:translate(-4px,-6px) rotate(-4deg)}44%{transform:translate(3px,5px) rotate(3deg)}66%{transform:translate(-3px,-3px) rotate(-2deg)}88%{transform:translate(4px,4px) rotate(2deg)}}.bss-hook{animation:bssHookStitch 3s ease-in-out 2s infinite;transform-box:fill-box;transform-origin:338px 256px}@keyframes bssStitchDraw{0%{stroke-dashoffset:460}to{stroke-dashoffset:0}}.bss-stitch-row{stroke-dashoffset:460;animation:bssStitchDraw 1.6s ease-out both}@keyframes bssActiveRowPulse{0%,to{opacity:.7;stroke-width:3.5}50%{opacity:1;stroke-width:4.5}}.bss-active-row{animation:bssActiveRowPulse 1.4s ease-in-out 6s infinite}@keyframes bssSteam{0%{opacity:0;transform:translateY(0) scaleX(1)}18%{opacity:.55}80%{opacity:.25}to{opacity:0;transform:translateY(-54px) scaleX(1.5)}}.bss-steam-1{animation:bssSteam 2.8s ease-out infinite}.bss-steam-2{animation:bssSteam 2.8s ease-out .55s infinite}.bss-steam-3{animation:bssSteam 2.8s ease-out 1.1s infinite}@keyframes bssFloatLoop{0%{opacity:0;transform:translateY(0) rotate(0) scale(1)}15%{opacity:.38}80%{opacity:.18}to{opacity:0;transform:translateY(-44px) rotate(300deg) scale(1.1)}}.bss-float-loop{animation:bssFloatLoop 5.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bssQuoteFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.bss-quote{animation:bssQuoteFade 1.6s ease-out 3.5s both;transform-box:fill-box;transform-origin:center}@keyframes bssBorderMarch{to{stroke-dashoffset:-80}}.bss-border{animation:bssBorderMarch 16s linear infinite}@keyframes bssWindowFlicker{0%,to{opacity:.48}30%{opacity:.56}55%{opacity:.42}75%{opacity:.52}}.bss-window-sky{animation:bssWindowFlicker 6s ease-in-out infinite}@keyframes bssBotSway{0%,to{transform:rotate(0)}50%{transform:rotate(4deg)}}.bss-botanical{animation:bssBotSway 6s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom center}@media (max-width: 600px){.bss-wrap{margin-bottom:32px}}
