.request-modal-overlay{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);align-items:center;justify-content:center;padding:var(--spacing-lg)}.request-modal-overlay.active{display:flex}.request-modal{position:relative;background:var(--md-sys-color-surface);border-radius:var(--shape-extra-large,28px);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;padding:var(--spacing-md);box-shadow:var(--md-sys-elevation-3,0 4px 24px rgba(0,0,0,0.15));animation:modal-in 0.25s ease}.request-modal .card--outlined{border:none;padding:0;max-width:100%}.request-modal__close{position:absolute;top:12px;right:12px;z-index:1;background:none;border:none;cursor:pointer;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--md-sys-color-on-surface-variant);transition:background 0.2s}.request-modal__close:hover{background:var(--md-sys-color-surface-container-highest)}@keyframes modal-in{from{opacity:0;transform:scale(0.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width:600px){.request-modal{max-height:95vh;border-radius:var(--shape-large,16px)}.request-modal-overlay{padding:var(--spacing-sm)}}.step-content p{margin-top:0;margin-bottom:0.4em}.step-content p:empty{display:none}.step-content br + br{display:none}.step-content p + p{margin-top:0.4em}.tutorial-content p{margin-top:0;margin-bottom:0.4em}.tutorial-content p:empty{display:none}.tutorial-content br + br{display:none}.form-field__helper{display:block;font-size:12px;color:var(--md-sys-color-on-surface-variant);margin-top:4px}.tutorial-content{font-size:1.0625rem;text-align:left}.tutorial-content p{margin-bottom:var(--spacing-md)}.tutorial-content h2{font-size:1.375rem;font-weight:600;line-height:1.35;margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--md-sys-color-outline-variant)}.tutorial-content h3{font-size:1.125rem;font-weight:600;line-height:1.4;margin-top:var(--spacing-xl);margin-bottom:var(--spacing-sm)}.tutorial-content ol,.tutorial-content ul{padding-left:1.6em;margin:0 0 var(--spacing-md)}.tutorial-content li{margin-bottom:var(--spacing-sm)}.tutorial-content img{display:block;max-width:100%;height:auto;max-height:82vh;object-fit:contain;margin:var(--spacing-xl) auto;border-radius:var(--shape-medium,12px);box-shadow:var(--elevation-1)}.tutorial-content table{width:100%;border-collapse:collapse;margin:var(--spacing-xl) 0;font-size:0.9em;overflow-x:auto;display:block}.tutorial-content thead{background:var(--md-sys-color-surface-container)}.tutorial-content th,.tutorial-content td{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--md-sys-color-outline-variant);text-align:left;white-space:nowrap}.tutorial-content th{font-weight:600}.tutorial-content tbody tr:nth-child(even){background:var(--md-sys-color-surface-container-lowest)}.tutorial-gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.tutorial-gallery__item{display:block;border-radius:var(--shape-medium,12px);overflow:hidden;aspect-ratio:1 / 1;background:var(--md-sys-color-surface-container)}.tutorial-gallery__item img{width:100%;height:100%;object-fit:cover;display:block}@media (max-width:767px){.tutorial-gallery__grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:var(--spacing-md);-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--spacing-sm);margin-left:calc(-1 * var(--spacing-md));margin-right:calc(-1 * var(--spacing-md));padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.tutorial-gallery__grid::-webkit-scrollbar{display:none}.tutorial-gallery__item{flex:0 0 78%;scroll-snap-align:start}}.tutorial-search{margin-bottom:var(--spacing-xl)}.tutorial-filters-toggle{flex:0 0 auto}.tutorial-search__layout{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg);align-items:start}.tutorial-filters{display:none;background:var(--md-sys-color-surface-container-low,#f4f3f7);border-radius:var(--shape-large,16px);padding:var(--spacing-md)}.tutorial-filters.is-open{display:block}.tutorial-filters__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.tutorial-filters__reset,.filter-pills__reset{color:var(--md-sys-color-primary);text-decoration:none;white-space:nowrap}.tutorial-filters__reset:hover,.filter-pills__reset:hover{text-decoration:underline}.tutorial-filters__actions{margin-top:var(--spacing-md)}.facet{border-top:1px solid var(--md-sys-color-outline-variant,#c9c5d0);padding:var(--spacing-xs) 0}.facet__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-xs) 0;font-weight:600;list-style:none}.facet__summary::-webkit-details-marker{display:none}.facet__chevron{transition:transform 0.2s ease;color:var(--md-sys-color-on-surface-variant,#49454e)}.facet[open] .facet__chevron{transform:rotate(180deg)}.facet__list{list-style:none;margin:4px 0 var(--spacing-xs);padding:0;display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}.facet__option{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px var(--spacing-xs);border-radius:var(--shape-small,8px);cursor:pointer;font-size:0.9rem}.facet__option:hover{background:var(--md-sys-color-surface-container-high,#e8e6ec)}.facet__option.is-selected{background:var(--md-sys-color-secondary-container,#e3dff2)}.facet__checkbox{flex:0 0 auto;accent-color:var(--md-sys-color-primary)}.facet__option-label{flex:1 1 auto;min-width:0}.facet__count{flex:0 0 auto;color:var(--md-sys-color-on-surface-variant,#49454e);font-variant-numeric:tabular-nums;font-size:0.8rem}.facet__empty{color:var(--md-sys-color-on-surface-variant,#49454e);font-size:0.85rem;padding:var(--spacing-xs)}.facet__select{width:100%;margin:4px 0 var(--spacing-xs)}.tutorial-results{min-width:0}.tutorial-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:var(--spacing-md)}.tutorial-grid>.card{min-width:0}.tutorial-results .card__text{overflow-wrap:anywhere}.tutorial-results__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.tutorial-sort{display:flex;align-items:center;gap:var(--spacing-xs)}.filter-pills{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.filter-pill{display:inline-flex;align-items:center;gap:4px;padding:4px var(--spacing-sm);border-radius:var(--shape-full,999px);background:var(--md-sys-color-secondary-container,#e3dff2);color:var(--md-sys-color-on-secondary-container,#1d192b);text-decoration:none;font-size:0.85rem}.filter-pill:hover{background:var(--md-sys-color-error-container,#f9dedc);color:var(--md-sys-color-on-error-container,#410e0b)}.filter-pill__group{opacity:0.7}.tutorial-card__specs{display:flex;flex-wrap:wrap;gap:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-xs)}.tutorial-card__specs span{display:inline-flex;align-items:center;gap:2px}@media (min-width:860px){.tutorial-filters-toggle{display:none}.tutorial-search__layout{grid-template-columns:clamp(200px,18vw,240px) minmax(0,1fr)}.tutorial-filters{display:block;position:sticky;top:var(--spacing-md);max-height:calc(100vh - 2 * var(--spacing-md));overflow-y:auto}}.tutorial-passport{padding:var(--spacing-lg);background:color-mix(in srgb,var(--md-sys-color-primary-container) 28%,var(--md-sys-color-surface))}.tutorial-passport.card--outlined{border:2px solid var(--md-sys-color-primary)}.tutorial-passport__title{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);color:var(--md-sys-color-primary)}.tutorial-passport__title .icon{font-size:24px}.pdf-offer{position:relative;display:flex;width:fit-content}.pdf-offer__tip{position:absolute;bottom:calc(100% + 10px);left:0;z-index:5;width:max-content;max-width:min(320px,90vw);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--md-sys-shape-corner-small,8px);background:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);box-shadow:var(--md-sys-elevation-2);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity 0.15s ease,transform 0.15s ease,visibility 0.15s;pointer-events:none}.pdf-offer__tip::after{content:'';position:absolute;top:100%;left:24px;border:6px solid transparent;border-top-color:var(--md-sys-color-inverse-surface)}.pdf-offer__tip-title{display:block;font-weight:600}.pdf-offer:hover .pdf-offer__tip,.pdf-offer:focus-within .pdf-offer__tip{opacity:1;visibility:visible;transform:translateY(0)}@media (hover:none){.pdf-offer__tip{display:none}}.pdf-offer--bottom{width:100%;max-width:800px;justify-content:center;margin:0 0 var(--spacing-2xl)}.pdf-offer--bottom .pdf-offer__tip{left:50%;transform:translate(-50%,4px)}.pdf-offer--bottom .pdf-offer__tip::after{left:50%;margin-left:-6px}.pdf-offer--bottom:hover .pdf-offer__tip,.pdf-offer--bottom:focus-within .pdf-offer__tip{transform:translate(-50%,0)}.pdf-modal{text-align:center}.pdf-modal h2{padding:0 40px}.pdf-modal__icon{font-size:48px;color:var(--md-sys-color-primary)}.pdf-modal__price{margin:var(--spacing-md) 0 var(--spacing-xs);color:var(--md-sys-color-primary)}.pdf-modal__test{margin-bottom:var(--spacing-md);color:var(--md-sys-color-on-surface-variant)}.tutorial-passport__specs{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin:0 0 var(--spacing-md);padding:0;list-style:none}.tutorial-passport__spec{display:inline-flex;align-items:center;gap:4px;padding:4px var(--spacing-sm);border-radius:var(--md-sys-shape-corner-full,999px);background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);border:1px solid var(--md-sys-color-outline-variant)}.tutorial-passport__grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md) var(--spacing-lg);margin:0}@media (min-width:768px){.tutorial-passport__grid{grid-template-columns:repeat(2,1fr)}.tutorial-passport__item--wide{grid-column:1 / -1}}.tutorial-passport__term{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-2xs,4px);color:var(--md-sys-color-on-surface);font-weight:600}.tutorial-passport__term .icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;font-size:18px;border-radius:50%;background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}.tutorial-passport__term .icon{box-sizing:border-box;padding:6px}.tutorial-passport__value{margin:0;line-height:1.6}.tutorial-layout{display:block}.tutorial-toc{display:none}@media (min-width:1200px){.tutorial-layout{display:grid;grid-template-columns:minmax(0,800px) 260px;gap:var(--spacing-2xl);align-items:start}.tutorial-toc:not([hidden]){display:block;position:sticky;top:var(--spacing-lg);max-height:calc(100vh - 2 * var(--spacing-lg));overflow-y:auto;padding:var(--spacing-md);border-left:2px solid var(--md-sys-color-outline-variant)}}.tutorial-toc__title{margin-bottom:var(--spacing-sm);color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:0.05em}.tutorial-toc__link{display:block;padding:6px 0 6px var(--spacing-sm);margin-left:calc(-1 * var(--spacing-md) - 2px);border-left:2px solid transparent;padding-left:calc(var(--spacing-md) + var(--spacing-sm));font:var(--md-sys-typescale-body-medium);color:var(--md-sys-color-on-surface-variant);text-decoration:none}.tutorial-toc__link:hover{color:var(--md-sys-color-primary)}.tutorial-toc__link--active{color:var(--md-sys-color-primary);border-left-color:var(--md-sys-color-primary);font-weight:600}.tutorial-content h2{scroll-margin-top:var(--spacing-lg)}.tutorial-toc__link--sub{padding-left:calc(var(--spacing-md) + var(--spacing-lg));font:var(--md-sys-typescale-body-small)}.tutorial-content h3{scroll-margin-top:var(--spacing-lg)}.tutorial-content h1{font-size:1.375rem;font-weight:600;line-height:1.35;margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-md)}.tutorial-cover{max-width:530px}.pattern-grid{list-style:none;margin:0;padding:0}.pattern-card{min-width:0;overflow-wrap:anywhere}.pattern-card__media-link{display:block}.pattern-card__media{aspect-ratio:4 / 3;background:var(--md-sys-color-surface-container)}.pattern-card__media--square{aspect-ratio:1 / 1}.pattern-card__count{display:inline-flex;align-items:center;gap:var(--spacing-xs)}@media (max-width:479px){.pattern-card--row{display:grid;grid-template-columns:96px minmax(0,1fr);grid-template-rows:1fr auto}.pattern-card--row .pattern-card__media-link{grid-row:1 / span 2}.pattern-card--row .pattern-card__media{aspect-ratio:auto;height:100%;min-height:96px}.pattern-card--row .icon-empty{font-size:32px}.pattern-card--row .card__content,.pattern-card--row .card__actions{grid-column:2}.pattern-card--row .card__text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font:var(--md-sys-typescale-body-medium)}.pattern-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr))}}.pattern-detail{display:grid;gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr)}@media (min-width:860px){.pattern-detail{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--spacing-xl);align-items:start}}.pattern-detail__photo{margin:0;border-radius:var(--md-sys-shape-corner-large);overflow:hidden;background:var(--md-sys-color-surface-container)}.pattern-detail__photo img{display:block;width:100%;height:auto;max-height:80vh;object-fit:contain}.pattern-detail__body{min-width:0;overflow-wrap:anywhere}.pattern-detail__direction{text-decoration:none;min-height:32px}.pattern-detail__description p + p{margin-top:var(--spacing-sm)}.pattern-zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;color:inherit}.pattern-zoom:focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:2px}.pattern-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.pattern-gallery__item{min-width:0}.pattern-gallery__thumb{aspect-ratio:1 / 1;border-radius:var(--md-sys-shape-corner-medium);overflow:hidden;background:var(--md-sys-color-surface-container)}.pattern-gallery__thumb img{display:block;width:100%;height:100%;object-fit:cover}.pattern-gallery__caption{margin-top:var(--spacing-xs)}@media (max-width:767px){.pattern-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:var(--spacing-sm)}.pattern-gallery::-webkit-scrollbar{display:none}.pattern-gallery__item{flex:0 0 78%;scroll-snap-align:start}}.tutorial-suitable-yarns .card__title a{display:block;padding-block:10px;margin-block:-10px}.yarn-card__skeins{display:inline-block;margin-bottom:var(--spacing-xs);padding:2px var(--spacing-sm);border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}@media (max-width:600px){nav.tutorial-breadcrumbs{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.tutorial-actions{gap:var(--spacing-sm)}.tutorial-actions .btn{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);gap:var(--spacing-xs)}}