:root{--paper:#fff8e8;--parchment:#f0dfc0;--kraft:#d3b77f;--espresso:#2b241f;--walnut:#4a382f;--brick:#9c4d3e;--wine:#653a48;--ochre:#c8892d;--moss:#66704d;--teal:#3e6662;--sage:#a9b4a5;--cream:#fffdf7;--shadow:0 18px 50px #412e1e24;--display:Georgia, "Times New Roman", serif;--body:"Avenir Next", Avenir, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{color:var(--espresso);background-color:var(--paper);font-family:var(--body);background-image:radial-gradient(#4a382f0e .65px,#0000 .7px);background-size:7px 7px;margin:0;font-size:16px;line-height:1.65}a{color:inherit}img{max-width:100%;height:auto}.shell{width:min(1180px,100% - 40px);margin-inline:auto}.narrow{width:min(760px,100% - 40px);margin-inline:auto}.skip-link{z-index:100;background:var(--espresso);color:#fff;border-radius:4px;padding:10px 16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}:focus-visible{outline:3px solid var(--ochre);outline-offset:4px}.site-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff8e8f0;border-bottom:1px solid #4a382f2e;position:relative}.header-inner{justify-content:space-between;align-items:center;gap:28px;min-height:74px;display:flex}.brand{font:700 1.35rem/1 var(--display);letter-spacing:-.03em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand>span:last-child span,.footer-brand span{color:var(--brick)}.brand-mark{align-items:flex-end;gap:2px;width:33px;height:30px;display:inline-flex;position:relative}.brand-mark i{background:var(--brick);border:2px solid var(--espresso);transform-origin:bottom;border-bottom:0;width:9px;display:block}.brand-mark i:first-child{height:15px;transform:rotate(-5deg)}.brand-mark i:nth-child(2){background:var(--ochre);height:25px;transform:rotate(2deg)}.brand-mark i:nth-child(3){background:var(--teal);height:19px;transform:rotate(6deg)}nav{align-items:center;gap:24px;display:flex}nav a{color:var(--walnut);border-bottom:2px solid #0000;font-size:.9rem;font-weight:650;text-decoration:none}nav a:hover{color:var(--brick);border-bottom-color:var(--ochre)}.nav-marquee{border:1px solid var(--espresso);background:var(--ochre);box-shadow:2px 2px 0 var(--espresso);color:var(--espresso);border-radius:3px 5px 3px 6px;padding:8px 13px 7px;transform:rotate(-.5deg)}.nav-marquee:hover{color:var(--espresso);border-bottom-color:var(--espresso);box-shadow:1px 1px 0 var(--espresso);transform:translate(1px,1px)rotate(-.5deg)}.hero{background:#efdcae;align-items:stretch;min-height:660px;display:grid;position:relative;overflow:hidden}.hero-art{background-image:linear-gradient(90deg,#fff8e8f7 0%,#fff8e8e8 40%,#fff8e81f 65%),url(/images/tinkers-village-hero.webp);background-position:50%;background-size:cover;position:absolute;inset:0}.hero-copy{z-index:1;align-self:center;max-width:640px;padding:100px 0 120px;position:relative}.eyebrow{color:var(--wine);font:700 .76rem/1 var(--body);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 20px;display:inline-flex}.eyebrow:before{content:"";background:var(--ochre);width:28px;height:2px}.ipa-eyebrow{font-family:var(--display);letter-spacing:.035em;text-transform:none;font-size:.9rem}h1,h2,h3{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;line-height:1.08}h1{margin:0;font-size:clamp(3.35rem,7vw,6.4rem);font-weight:700}.hero h1 em{color:var(--brick);font-style:italic;font-weight:600}.hero-lede{max-width:570px;color:var(--walnut);margin:28px 0 34px;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.65}.hero-lede strong{color:var(--brick);font-family:var(--display);font-size:1.08em}.hero-actions{flex-wrap:wrap;gap:14px;display:flex}.button{border:2px solid var(--espresso);background:var(--ochre);min-height:48px;box-shadow:4px 4px 0 var(--espresso);border-radius:4px 7px 5px 6px;justify-content:center;align-items:center;padding:0 21px;font-weight:750;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex}.button:hover{box-shadow:2px 2px 0 var(--espresso);transform:translate(2px,2px)}.button.secondary{background:#fff8e8d1}.hero-note{z-index:2;max-width:260px;color:var(--walnut);background:#fff8e8db;border:1px solid #4a382f38;padding:10px 13px;font-size:.76rem;position:absolute;bottom:20px;right:24px;transform:rotate(-1deg)}.intro-band{background:var(--teal);color:var(--cream);padding:78px 0}.intro-grid{grid-template-columns:.85fr 2fr;align-items:start;gap:80px;display:grid}.intro-band h2{margin:0;font-size:clamp(2.2rem,4vw,3.5rem)}.intro-band p{color:#f4ead8;margin:0;font-size:1.16rem}.intro-band strong{color:#ffd58c}.section{padding:92px 0}.section-head{justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px;display:flex}.section-head h2{margin:0;font-size:clamp(2.25rem,4vw,3.6rem)}.section-head p{max-width:500px;color:var(--walnut);margin:0}.text-link{color:var(--teal);text-underline-offset:4px;font-weight:750;text-decoration-thickness:2px}.workshop-projects{color:var(--cream);background:var(--espresso);background-image:radial-gradient(#fff8e80f .7px,#0000 .8px);background-size:8px 8px}.workshop-projects .eyebrow{color:#efc670}.workshop-projects .section-head p{color:#dfd0ba}.marquee-grid{grid-template-columns:repeat(12,1fr);gap:18px;display:grid}.marquee-card{background:#493931;border:1px solid #fff8e84d;flex-direction:column;grid-column:span 4;min-height:310px;padding:26px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:7px 7px #0003}.marquee-card:first-child,.marquee-card:nth-child(2){grid-column:span 6;min-height:345px}.marquee-card:hover{transform:translateY(-4px)rotate(-.15deg);box-shadow:9px 11px #0000003d}.marquee-card:before{content:"";background:var(--accent,var(--brick));height:8px;position:absolute;inset:0 0 auto}.marquee-top,.marquee-bottom{color:#eedfc7;font:700 .7rem/1.2 var(--body);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;gap:14px;display:flex}.marquee-card h3{margin:46px 0 15px;font-size:clamp(2rem,4vw,3.15rem)}.marquee-card h3 a{text-decoration:none}.marquee-card h3 a:after{content:"";position:absolute;inset:0}.marquee-card p{color:#e7dbc8;margin:0 0 28px;line-height:1.55}.marquee-bottom{z-index:1;border-top:1px solid #fff8e833;margin-top:auto;padding-top:18px;position:relative}.marquee-bottom a{color:#fff2c7;text-decoration:none}.tone-brick{--accent:#c86d57}.tone-ochre{--accent:#dda23e}.tone-teal{--accent:#60948f}.tone-moss{--accent:#8f9b69}.tone-wine{--accent:#a56578}.cabinet-callout{background:#fff8e80d;border:1px dashed #fff8e861;justify-content:space-between;align-items:center;gap:28px;margin-top:34px;padding:24px 28px;display:flex}.cabinet-callout p{color:#e7dbc8;max-width:680px;margin:0}.card-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.article-card{background:var(--cream);border:1px solid var(--kraft);min-height:390px;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s;position:relative;box-shadow:0 10px 30px #4a382f17}.article-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)rotate(-.15deg)}.card-roof{background:var(--brick);clip-path:polygon(0 70%,9% 18%,18% 55%,31% 6%,41% 55%,54% 15%,64% 58%,77% 8%,88% 52%,100% 20%,100% 100%,0 100%);height:14px}.roof-projects{background:var(--wine)}.roof-guides{background:var(--ochre)}.roof-code{background:var(--teal)}.roof-field-notes{background:var(--moss)}.card-body{padding:26px 27px 28px}.card-meta{color:var(--wine);font:700 .72rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:16px;display:flex}.article-card h3{margin:20px 0 13px;font-size:1.65rem}.article-card h3 a{text-decoration:none}.article-card h3 a:after{content:"";position:absolute;inset:0}.article-card p{color:var(--walnut);margin:0 0 20px}.tag-row{z-index:1;flex-wrap:wrap;gap:7px;margin-bottom:25px;display:flex;position:relative}.tag-row span,.tag-row a{border:1px solid var(--kraft);background:var(--parchment);color:var(--walnut);border-radius:2px;padding:3px 8px;font-size:.72rem;text-decoration:none}.card-link{color:var(--teal);font-weight:750;text-decoration:none}.village-map{border-block:1px solid var(--kraft);background:#ead9b8}.principles{background:var(--kraft);border:1px solid var(--kraft);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.principle{background:var(--paper);padding:34px 28px}.principle b{color:var(--brick);font:600 2rem/1 var(--display);margin-bottom:16px;display:block}.principle h3{margin:0 0 10px;font-size:1.25rem}.principle p{color:var(--walnut);margin:0;font-size:.9rem}.page-hero{background:linear-gradient(180deg, var(--parchment), var(--paper));border-bottom:1px solid var(--kraft);padding:88px 0 58px}.page-hero h1{max-width:900px;font-size:clamp(3rem,6vw,5.4rem)}.page-hero p{max-width:690px;color:var(--walnut);font-size:1.16rem}.projects-hero{background:linear-gradient(110deg, #edddbc 0%, var(--paper) 58%, #d5c096 100%);position:relative;overflow:hidden}.projects-hero:after{content:"";opacity:.32;background:repeating-linear-gradient(135deg, transparent 0 22px, var(--brick) 23px 25px);width:410px;height:260px;position:absolute;bottom:-80px;right:-60px;transform:rotate(-8deg)}.projects-hero .shell{z-index:1;position:relative}.projects-hero h1 em{color:var(--brick);font-style:italic}.preview-note{border:1px dashed var(--kraft);background:#fffdf79e;margin-top:22px;padding:7px 10px;display:inline-block;font-size:.8rem!important}.project-listing{background:#ead9b8}.project-cabinet{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.project-tile{border:1px solid var(--kraft);background:var(--cream);grid-template-columns:74px 1fr;min-height:280px;transition:transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden;box-shadow:5px 6px #4a382f21}.project-tile:hover{transform:translateY(-3px);box-shadow:7px 10px #4a382f29}.project-tile:before{content:"";background:var(--accent);width:8px;position:absolute;inset:0 auto 0 0}.project-tile.is-marquee{background:#fff8e8;grid-column:span 1}.project-number{color:var(--accent);font:700 1.25rem/1 var(--display);justify-content:center;align-items:start;padding-top:29px;display:flex}.project-tile-copy{flex-direction:column;padding:27px 28px 24px 0;display:flex}.project-labels,.project-foot{color:var(--wine);font:700 .68rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:14px;display:flex}.project-tile h2{margin:25px 0 12px;font-size:clamp(1.85rem,3vw,2.65rem)}.project-tile h2 a{text-decoration:none}.project-tile h2 a:after{content:"";position:absolute;inset:0}.project-tile p{color:var(--walnut);margin:0 0 25px}.project-foot{z-index:1;border-top:1px solid var(--parchment);margin-top:auto;padding-top:15px;position:relative}.project-foot a{color:var(--teal);text-decoration:none}.listing{padding:64px 0 100px}.empty{border:1px dashed var(--kraft);text-align:center;padding:60px}.article-header{background:linear-gradient(180deg, var(--parchment), var(--paper));border-bottom:1px solid var(--kraft);padding:80px 0 54px}.breadcrumbs{color:var(--teal);font-size:.85rem}.breadcrumbs a{text-underline-offset:3px}.article-header h1{margin:22px 0;font-size:clamp(2.8rem,6vw,5rem)}.article-dek{max-width:720px;color:var(--walnut);font-size:1.2rem}.article-byline{color:var(--walnut);flex-wrap:wrap;gap:10px 20px;margin-top:28px;font-size:.86rem;display:flex}.article-layout{grid-template-columns:minmax(0,760px) 230px;align-items:start;gap:64px;padding:64px 0 110px;display:grid}.article-aside{border:1px solid var(--kraft);background:var(--parchment);padding:20px;position:sticky;top:28px;transform:rotate(.35deg)}.article-aside strong{font:700 1.05rem/1.2 var(--display)}.article-aside p{color:var(--walnut);margin:9px 0 0;font-size:.84rem}.prose{font-size:1.06rem;line-height:1.78}.prose h2{margin:2.4em 0 .65em;font-size:2.25rem}.prose h3{margin:2em 0 .5em;font-size:1.55rem}.prose p,.prose ul,.prose ol{margin:0 0 1.35em}.prose a{color:var(--teal);text-underline-offset:3px;text-decoration-thickness:2px}.prose blockquote{border-left:5px solid var(--ochre);background:var(--parchment);font:italic 1.15rem/1.6 var(--display);margin:2em 0;padding:20px 24px;transform:rotate(-.2deg)}.prose code:not(pre code){background:var(--parchment);border:1px solid var(--kraft);font:.88em var(--mono);padding:2px 5px}.prose pre{color:#fff8e8;box-shadow:5px 5px 0 var(--ochre);background:#263746;border:5px solid #4a382f;border-radius:4px;margin:2em 0;padding:24px;overflow-x:auto}.prose pre code{font:.87rem/1.65 var(--mono)}.prose table{border-collapse:collapse;width:100%;margin:2em 0}.prose th,.prose td{border:1px solid var(--kraft);text-align:left;padding:10px 12px}.prose th{background:var(--parchment)}.hljs-keyword,.hljs-selector-tag,.hljs-literal{color:#f0bd5d}.hljs-string,.hljs-attr{color:#b7c798}.hljs-title,.hljs-function{color:#89c9c5}.hljs-comment{color:#a9b4a5}.about-grid{grid-template-columns:1.4fr .6fr;gap:64px;display:grid}.definition-card{background:var(--parchment);border:1px solid var(--kraft);box-shadow:6px 6px 0 var(--kraft);padding:28px;transform:rotate(1deg)}.definition-card .word{font:700 2rem/1 var(--display)}.definition-card .phonetic{color:var(--brick);font-family:var(--mono);font-size:.82rem}.about-hero h1 em{color:var(--brick);font-style:italic}.about-hero strong{color:var(--brick)}.brand-definition{position:sticky;top:28px}.brand-definition .word span{color:var(--brick)}.brand-definition .phonetic{letter-spacing:.06em;margin-top:12px;font-size:.9rem;font-weight:750}.brand-definition .say-note{border-bottom:1px solid var(--kraft);color:var(--wine);padding-bottom:15px;font-size:.75rem}.site-footer{color:#f8ebd2;background:var(--espresso)}.roofline{background:var(--paper);clip-path:polygon(0 0,0 45%,8% 45%,12% 5%,16% 45%,25% 45%,29% 20%,32% 45%,43% 45%,46% 0,50% 45%,62% 45%,68% 15%,74% 45%,84% 45%,88% 5%,92% 45%,100% 45%,100% 0);height:42px}.footer-grid{grid-template-columns:1fr auto;align-items:center;gap:35px 80px;min-height:230px;padding-block:45px;display:grid}.footer-brand{font-size:1.8rem}.site-footer p{color:#d8cbb6}.footer-say{color:#efc670;font:700 .82rem/1 var(--display);letter-spacing:.035em}.footer-links{flex-wrap:wrap;gap:18px;display:flex}.footer-links a{color:#f8ebd2;text-underline-offset:4px}.copyright{grid-column:1/-1;margin:0;font-size:.78rem}@media (max-width:900px){nav a:not(.nav-marquee){display:none}.hero{align-items:end;min-height:720px}.hero-art{background-image:linear-gradient(#fff8e838,#fff8e8f2 58%),url(/images/tinkers-village-hero.webp);background-position:62%}.hero-copy{max-width:none;padding:310px 0 80px}.hero h1{font-size:clamp(3rem,13vw,5.2rem)}.hero-note{display:none}.intro-grid,.about-grid{grid-template-columns:1fr;gap:25px}.card-grid{grid-template-columns:1fr 1fr}.marquee-card,.marquee-card:first-child,.marquee-card:nth-child(2){grid-column:span 6}.project-cabinet{grid-template-columns:1fr}.principles{grid-template-columns:1fr 1fr}.article-layout{grid-template-columns:1fr}.article-aside{position:static}}@media (max-width:620px){.shell,.narrow{width:min(100% - 28px,1180px)}.card-grid,.principles{grid-template-columns:1fr}.marquee-card,.marquee-card:first-child,.marquee-card:nth-child(2){grid-column:1/-1;min-height:290px}.cabinet-callout{flex-direction:column;align-items:stretch}.project-tile{grid-template-columns:54px 1fr}.project-tile-copy{padding-right:18px}.project-labels,.project-foot{flex-direction:column;align-items:flex-start}.section-head{flex-direction:column;align-items:start}.footer-grid{grid-template-columns:1fr}.copyright{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
