.site-header{transition:box-shadow var(--dur) var(--ease)}.site-header[data-scrolled]{box-shadow:0 2px 8px #0e102414}@media (max-width:1023px){html:has(.site-header[data-open]){overflow:hidden}}.section{padding-block:var(--section-y)}.section--alt{background:var(--c-surface);border-block:1px solid var(--c-border)}.section--flush-top{padding-top:0}.section--cta{padding-bottom:0}.section__title{max-width:22ch}.section__head{margin-bottom:var(--s-6)}.section__head p{margin-top:var(--s-2);font-size:var(--fs-lead);color:var(--c-text-muted)}.section__more{margin-top:var(--s-4)}.text-link{align-items:center;gap:var(--s-1);min-height:var(--touch);font-weight:var(--fw-semibold);color:var(--c-primary);text-decoration:underline;-webkit-text-decoration-color:var(--c-gray);text-decoration-color:var(--c-gray);text-underline-offset:.25em;display:inline-flex}.text-link:hover{-webkit-text-decoration-color:var(--c-primary);text-decoration-color:var(--c-primary)}.text-link .icon{width:18px;height:18px;transition:transform var(--dur) var(--ease)}.text-link:hover .icon{transform:translate(2px)}.page-head{padding-block:var(--s-8) var(--s-6)}.page-head__lead{margin-top:var(--s-2);font-size:var(--fs-lead);color:var(--c-text-muted)}.hero{padding-top:var(--s-8)}.hero__title{text-wrap:wrap;letter-spacing:-.025em;max-width:13em;font-size:clamp(32px,4.4vw,56px)}.hero__lead{margin-top:var(--s-3);max-width:52ch;font-size:var(--fs-lead);color:var(--c-text-muted)}.hero__actions{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.hero__media{margin-top:var(--s-6);border-radius:var(--radius);box-shadow:0 24px 48px -24px #0e102459}.hero__media img{border-radius:var(--radius);width:100%}@media (min-width:1024px){.hero .container{align-items:end;column-gap:var(--s-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.hero__copy{grid-column:1/-1;grid-template-columns:subgrid;align-items:end;display:grid}.hero__title{grid-column:1/-1}.hero__lead{grid-column:1}.hero__actions{grid-column:2;justify-content:flex-end;margin-top:0}.hero__media{grid-column:1/-1}}.steps{gap:var(--s-4);margin-top:var(--s-6);counter-reset:none;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.steps__item{column-gap:var(--s-2);row-gap:var(--s-1);padding-top:var(--s-3);border-top:2px solid var(--c-primary);grid-template-columns:auto 1fr;display:grid;position:relative}.steps__num{font-family:var(--font-heading);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--c-gray);grid-row:1/span 2;line-height:1}.steps__item h3{align-self:center}.steps__item p{color:var(--c-text-muted);grid-column:2}.tpl-grid{gap:var(--s-3);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.tpl-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.tpl-card:hover{border-color:var(--c-gray);transform:translateY(-2px)}.tpl-card:has(.tpl-card__link:focus-visible){outline:2px solid var(--c-focus);outline-offset:2px}.tpl-card__img{aspect-ratio:4/3;border-bottom:1px solid var(--c-border);width:100%}.tpl-card__body{gap:var(--s-1);padding:var(--s-3);flex-direction:column;flex:1;display:flex}.tpl-card__title{font-size:20px;font-weight:var(--fw-bold)}.tpl-card__desc{color:var(--c-text-muted);font-size:15px}.tpl-card__meta{margin-top:var(--s-1);padding-top:var(--s-2);border-top:1px solid var(--c-border);font-size:var(--fs-small);gap:12px;display:grid}.tpl-card__meta dt{align-items:center;gap:var(--s-1);font-weight:var(--fw-semibold);color:var(--c-text);display:flex}.tpl-card__meta dt .icon{width:16px;height:16px;color:var(--c-gray)}.tpl-card__meta dd{color:var(--c-text-muted);margin:4px 0 0 24px}.tpl-card__link{align-self:flex-start;align-items:center;gap:var(--s-1);min-height:var(--touch);padding-top:var(--s-1);font-weight:var(--fw-semibold);color:var(--c-primary);margin-top:auto;text-decoration:none;display:inline-flex}.tpl-card__link:after{content:"";position:absolute;inset:0}.tpl-card__link:focus-visible{outline:none}.tpl-card__link .icon{width:18px;height:18px;transition:transform var(--dur) var(--ease)}.tpl-card:hover .tpl-card__link{text-decoration:underline}.tpl-card:hover .tpl-card__link .icon{transform:translate(2px)}.filter{align-items:center;gap:var(--s-1);margin:0 0 var(--s-4);border:0;flex-wrap:wrap;padding:0;display:flex}.filter__legend{float:left;margin-right:var(--s-1);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--c-text-muted);padding:0}.filter__chip{display:inline-flex;position:relative}.filter__chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.filter__chip span{min-height:var(--touch);padding:0 var(--s-2);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);font-size:15px;font-weight:var(--fw-semibold);white-space:nowrap;transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);align-items:center;display:inline-flex}.filter__chip:hover span{border-color:var(--c-gray)}.filter__chip input:checked+span{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.filter__chip input:focus-visible+span{outline:2px solid var(--c-focus);outline-offset:2px}.tpl-gallery__note{margin-top:var(--s-2);color:var(--c-text-muted);font-size:14px}:is(.tpl-gallery:has(input[value=mechanical]:checked) .tpl-card:not([data-cat~=mechanical]),.tpl-gallery:has(input[value=home]:checked) .tpl-card:not([data-cat~=home]),.tpl-gallery:has(input[value=personal]:checked) .tpl-card:not([data-cat~=personal]),.tpl-gallery:has(input[value=vent]:checked) .tpl-card:not([data-cat~=vent])){display:none}.bento{gap:var(--s-3);margin-top:var(--s-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.bento__tile{gap:var(--s-1);min-height:240px;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);flex-direction:column;display:flex}.bento__tile--wide{grid-column:span 2}.bento__tile p{color:var(--c-text-muted)}.bento__icon{padding-bottom:var(--s-4);color:var(--c-primary);margin-bottom:auto;display:inline-flex}.bento__icon .icon{stroke-width:1.5px;width:32px;height:32px}.bento__tile h3{font-weight:var(--fw-bold)}.bento__tile--grid{background-color:#eceef6;background-image:linear-gradient(#1b1f3b12 1px,#0000 1px),linear-gradient(90deg,#1b1f3b12 1px,#0000 1px);background-position:-1px -1px;background-size:24px 24px;border-color:#dfe2ee}.bento__tile--dark{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.bento__tile--dark .bento__icon{color:#fff}.bento__tile--dark p{color:#ffffffd1}.faq{gap:var(--s-6);grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;display:grid}.faq__intro{top:calc(var(--header-h) + var(--s-3));position:sticky}.faq__intro p{margin-block:var(--s-2) var(--s-1);color:var(--c-text-muted)}.faq__list{border-top:1px solid var(--c-border)}.faq__item{border-bottom:1px solid var(--c-border)}.faq__item summary{justify-content:space-between;align-items:center;gap:var(--s-2);min-height:64px;padding-block:var(--s-2);cursor:pointer;list-style:none;display:flex}.faq__item summary::-webkit-details-marker{display:none}.faq__item summary h3{font-family:var(--font-body);font-size:17px;font-weight:var(--fw-semibold);line-height:1.4}.faq__item summary .icon{color:var(--c-text-muted);transition:transform var(--dur) var(--ease)}.faq__item[open] summary .icon{transform:rotate(180deg)}.faq__item summary:hover h3{text-underline-offset:.2em;text-decoration:underline}.faq__item>p{padding:0 var(--s-6) var(--s-3) 0;color:var(--c-text-muted)}.cta-band{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-6);padding:var(--s-8) var(--s-6);background:var(--c-primary);border-radius:var(--radius);color:#fff;flex-wrap:wrap;display:flex}.cta-band__title{color:#fff}.cta-band p{margin-top:var(--s-1);color:#ffffffd1;font-size:var(--fs-lead)}.note-band{align-items:center;gap:var(--s-3);padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.note-band__icon{border-radius:var(--radius);width:48px;height:48px;color:var(--c-primary);background:#eceef6;justify-content:center;align-items:center;display:inline-flex}.note-band__icon .icon{width:24px;height:24px}.note-band__title{font-size:var(--fs-h3)}.note-band p{color:var(--c-text-muted);margin-top:4px}.guide-layout{gap:var(--s-8);grid-template-columns:240px minmax(0,1fr);align-items:start;display:grid}.toc{top:calc(var(--header-h) + var(--s-3));position:sticky}.toc__title{margin-bottom:var(--s-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-text-muted)}.toc__list{border-left:1px solid var(--c-border)}.toc__list a{min-height:var(--touch);padding-left:var(--s-2);color:var(--c-text-muted);border-left:2px solid #0000;align-items:center;margin-left:-1px;font-size:15px;text-decoration:none;display:flex}.toc__list a:hover{color:var(--c-text);border-left-color:var(--c-primary)}.guide{gap:var(--s-6);display:grid}.guide__step{gap:var(--s-3);scroll-margin-top:calc(var(--header-h) + var(--s-3));grid-template-columns:56px minmax(0,1fr);display:grid}.guide__marker{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);width:56px;height:56px;color:var(--c-primary);justify-content:center;align-items:center;display:inline-flex;position:relative}.guide__marker .icon{stroke-width:1.6px;width:26px;height:26px}.guide__num{background:var(--c-primary);border-radius:var(--radius);color:#fff;min-width:24px;height:24px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);justify-content:center;align-items:center;padding:0 4px;line-height:1;display:inline-flex;position:absolute;top:-8px;right:-8px}.guide__body h3{margin-bottom:var(--s-1);font-weight:var(--fw-bold)}.guide__body p{color:var(--c-text-muted)}.guide__body p+p{margin-top:var(--s-1)}.tip{padding:var(--s-2) var(--s-3);border-radius:var(--radius);background:#eceef6;gap:12px;font-size:15px;display:flex;margin-top:var(--s-2)!important;color:var(--c-text)!important}.tip .icon{width:20px;height:20px;color:var(--c-primary);margin-top:2px}.shortcuts{margin-top:var(--s-8);scroll-margin-top:calc(var(--header-h) + var(--s-3))}.shortcuts__intro{margin-top:var(--s-1);color:var(--c-text-muted)}.shortcuts__grid{gap:var(--s-3);margin-top:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.keys{border-collapse:collapse;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);width:100%;font-size:15px}.keys caption{padding-bottom:var(--s-1);font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:var(--fw-medium);text-align:left}.keys th{padding:12px var(--s-2);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;text-align:left;color:var(--c-text-muted)}.keys td{padding:12px var(--s-2);vertical-align:middle}.keys td:first-child{white-space:nowrap;color:var(--c-text-muted)}kbd{min-width:28px;height:28px;padding:0 var(--s-1);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text);border-bottom-width:2px;justify-content:center;align-items:center;display:inline-flex}.note-band--compact{margin-top:var(--s-8)}.nf{padding-block:var(--s-8) 0}.nf__grid{gap:var(--s-6);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;display:grid}.nf__art img{border:1px solid var(--c-border);border-radius:var(--radius);width:100%}.nf__code{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:var(--fw-semibold);letter-spacing:.05em;color:var(--c-text-muted)}.nf h1{margin-top:var(--s-1)}.nf__text{margin-top:var(--s-2);color:var(--c-text-muted);font-size:var(--fs-lead)}.nf__actions{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.nf__alt{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--c-border)}.nf__alt h2{font-size:var(--fs-h3)}.nf__alt .nf__text{font-size:var(--fs-body)}.nf__links{gap:0 var(--s-3);margin-top:var(--s-1);flex-wrap:wrap;display:flex}@media (max-width:1023px){.tpl-grid,.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.bento__tile--wide{grid-column:span 2}.faq{gap:var(--s-4);grid-template-columns:1fr}.faq__intro{position:static}.guide-layout{grid-template-columns:1fr;gap:0}.toc{display:none}.nf__grid{grid-template-columns:1fr}.nf__art{order:2;max-width:360px}}@media (max-width:767px){.hero{padding-top:var(--s-6)}.hero__actions .btn{flex:auto}.hero__media{margin-top:var(--s-4)}.page-head{padding-block:var(--s-6) var(--s-4)}.steps{gap:var(--s-3);margin-top:var(--s-4);grid-template-columns:1fr}.tpl-grid{grid-template-columns:1fr}.section__head{margin-bottom:var(--s-4)}.bento{gap:var(--s-2);margin-top:var(--s-4);grid-template-columns:1fr}.bento__tile,.bento__tile--wide{min-height:0;padding:var(--s-3);grid-column:auto}.bento__icon{padding-bottom:var(--s-2)}.faq__item>p{padding-right:0}.cta-band{padding:var(--s-6) var(--s-3)}.cta-band .btn{width:100%}.note-band{padding:var(--s-3);grid-template-columns:1fr}.note-band .btn{justify-self:stretch}.guide{gap:var(--s-4)}.guide__step{gap:var(--s-2);grid-template-columns:48px minmax(0,1fr)}.guide__marker{width:48px;height:48px}.shortcuts{margin-top:var(--s-6)}.shortcuts__grid{grid-template-columns:1fr}.nf{padding-top:var(--s-6)}.nf__actions .btn{flex:auto}}.section--flush-top+.section--cta{padding-top:0}.section--tight{padding-block:var(--s-8)}.crumbs{font-size:var(--fs-small);color:var(--c-text-muted);padding-block:0}.crumbs__list{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.crumbs__list li{align-items:center;gap:4px;display:inline-flex}.crumbs__list a{min-height:44px;color:var(--c-text-muted);align-items:center;text-decoration:none;display:inline-flex}.crumbs__list a:hover{color:var(--c-text);text-decoration:underline}.crumbs__list [aria-current]{color:var(--c-text);font-weight:var(--fw-semibold)}.crumbs .icon{width:14px;height:14px;color:var(--c-gray)}.tpl-hero{padding-block:var(--s-3) var(--s-8)}.tpl-hero__kicker{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-text-muted)}.tpl-hero__title{margin-top:var(--s-1);letter-spacing:-.025em;max-width:20ch;font-size:clamp(32px,3.6vw,48px)}.tpl-hero__lead{margin-top:var(--s-3);max-width:var(--measure);font-size:var(--fs-lead);color:var(--c-text-muted)}.tpl-hero__actions{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.tpl-hero__note{align-items:center;gap:var(--s-1);margin-top:var(--s-2);font-size:var(--fs-small);color:var(--c-text-muted);display:flex}.tpl-hero__note .icon{width:18px;height:18px;color:var(--c-gray);flex:none}.tpl-hero__media{margin-top:var(--s-4);border:1px solid var(--c-border);border-radius:var(--radius);background:#f1f2f7;overflow:hidden}.tpl-hero__media img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}@media (min-width:1024px){.tpl-hero__inner{align-items:center;column-gap:var(--s-6);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.tpl-hero__media{margin-top:0}}.tpl-var-grid{gap:var(--s-3);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.tpl-var{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.tpl-var:hover{border-color:var(--c-gray);transform:translateY(-2px)}.tpl-var:has(.tpl-var__link:focus-visible){outline:2px solid var(--c-focus);outline-offset:2px}.tpl-var__img{aspect-ratio:4/3;border-bottom:1px solid var(--c-border);background:#f1f2f7;width:100%;height:auto}.tpl-var__body{padding:var(--s-2) var(--s-3) var(--s-3);flex-direction:column;flex:1;gap:4px;display:flex}.tpl-var__title{font-size:var(--fs-body);font-weight:var(--fw-bold)}.tpl-var__vals{font-size:var(--fs-small);color:var(--c-text-muted)}.tpl-var__link{align-self:flex-start;align-items:center;gap:var(--s-1);min-height:var(--touch);font-weight:var(--fw-semibold);color:var(--c-primary);margin-top:auto;text-decoration:none;display:inline-flex}.tpl-var__link:after{content:"";position:absolute;inset:0}.tpl-var__link:focus-visible{outline:none}.tpl-var__link .icon{width:18px;height:18px;transition:transform var(--dur) var(--ease)}.tpl-var:hover .tpl-var__link{text-decoration:underline}.tpl-var:hover .tpl-var__link .icon{transform:translate(2px)}.tpl-params__wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow-x:auto}.tpl-params{border-collapse:collapse;width:100%;min-width:480px;font-size:15px}.tpl-params thead th{padding:12px var(--s-2);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;text-align:left;color:var(--c-text-muted)}.tpl-params tbody th,.tpl-params tbody td{padding:10px var(--s-2);border-top:1px solid var(--c-border);text-align:left;vertical-align:top}.tpl-params tbody th{font-weight:var(--fw-semibold)}.tpl-params tbody td{color:var(--c-text-muted)}.tpl-params tbody td:last-child{color:var(--c-text);white-space:nowrap}.tpl-params__group th{padding-top:var(--s-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-text-muted);background:#eceef6}.tpl-params__cond{color:var(--c-gray);cursor:help}.tpl-params__note{align-items:center;gap:var(--s-1);margin-top:var(--s-2);font-size:var(--fs-small);color:var(--c-text-muted);display:flex}.tpl-params__note .icon{width:18px;height:18px;color:var(--c-gray);flex:none}.tpl-uses{gap:var(--s-2) var(--s-4);margin-top:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tpl-uses li{align-items:flex-start;gap:12px;max-width:48ch;display:flex}.tpl-uses .icon{width:20px;height:20px;color:var(--c-primary);flex:none;margin-top:2px}.tpl-print{padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius)}.tpl-print__title{font-size:var(--fs-h3);align-items:center;gap:12px;display:flex}.tpl-print__title .icon{width:24px;height:24px;color:var(--c-primary);flex:none}.tpl-print__grid{gap:var(--s-3);margin-top:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tpl-print__row dt{align-items:center;gap:var(--s-1);font-weight:var(--fw-semibold);display:flex}.tpl-print__row dt .icon{width:18px;height:18px;color:var(--c-gray);flex:none}.tpl-print__row dd{color:var(--c-text-muted);margin-top:4px;font-size:15px}.tpl-print__sub{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-border);font-size:var(--fs-body);font-family:var(--font-body);font-weight:var(--fw-semibold)}.tpl-print__tips{gap:var(--s-1);margin-top:var(--s-1);color:var(--c-text-muted);padding-left:20px;font-size:15px;list-style:outside;display:grid}.tpl-print__tips li{max-width:var(--measure)}.tpl-prose__item+.tpl-prose__item{margin-top:var(--s-6)}.tpl-prose h2{font-size:var(--fs-h2);max-width:26ch}.tpl-prose p{margin-top:var(--s-2);max-width:var(--measure);color:var(--c-text-muted)}.tpl-prose ul{gap:var(--s-1);margin-top:var(--s-2);color:var(--c-text-muted);padding-left:20px;list-style:outside;display:grid}.tpl-prose li{max-width:var(--measure)}.tpl-faq{max-width:820px;margin-top:var(--s-3);border-top:1px solid var(--c-border)}.tpl-grid--related{margin-top:var(--s-3)}.tpl-card__actions{align-items:center;gap:var(--s-1) var(--s-3);padding-top:var(--s-1);flex-wrap:wrap;margin-top:auto;display:flex}.tpl-card__actions .tpl-card__link{margin-top:0;padding-top:0}.tpl-card__alt{z-index:1;align-items:center;gap:var(--s-1);min-height:var(--touch);font-size:15px;font-weight:var(--fw-semibold);color:var(--c-text-muted);text-decoration:none;display:inline-flex;position:relative}.tpl-card__alt:hover{color:var(--c-text);text-decoration:underline}.tpl-card__alt .icon{width:16px;height:16px;color:var(--c-gray)}@media (max-width:1023px){.tpl-var-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.section--tight{padding-block:var(--s-6)}.tpl-hero{padding-block:var(--s-2) var(--s-6)}.tpl-hero__actions .btn{flex:auto}.tpl-var-grid,.tpl-uses{grid-template-columns:1fr}.tpl-params{min-width:0;font-size:var(--fs-small)}.tpl-params thead th,.tpl-params tbody th,.tpl-params tbody td{padding:8px 10px}.tpl-params tbody td:last-child{white-space:normal}.tpl-print{padding:var(--s-3)}.tpl-print__grid{gap:var(--s-2);grid-template-columns:1fr}.tpl-prose__item+.tpl-prose__item{margin-top:var(--s-4)}}
