:root{--ink:#121212;--ink-soft:#6a6a6a;--paper:#fff;--paper-deep:#f5f5f5;--line:#e5e5e5;--accent:#121212;--mist:#f0f0f0;--white:#fff;--danger:#b3261e;--font-display:"Assistant", system-ui, sans-serif;--font-body:"Assistant", system-ui, sans-serif;--max:1200px;--header-h:64px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-size:15px;font-weight:400;line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 .5rem;font-weight:600;line-height:1.2}p{margin:0 0 1rem}.container{width:min(100% - 2rem, var(--max));margin-inline:auto}.site-header{z-index:40;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.header-top{border-bottom:1px solid var(--line)}.header-top-inner{height:var(--header-h);justify-content:center;align-items:center;display:flex;position:relative}.brand{text-align:center;line-height:1;text-decoration:none}.brand-sign{letter-spacing:.28em;text-transform:uppercase;color:#000;padding:.2rem 0;font-family:Libre Baskerville,Georgia,serif;font-size:clamp(.95rem,2.2vw,1.1rem);font-weight:700;display:inline-block}.header-nav{justify-content:center;align-items:center;height:40px;max-height:40px;padding:0;display:flex;overflow:hidden}.header-nav .site-nav,.site-nav{flex-flow:row;justify-content:center;align-items:center;gap:1.25rem;height:40px;margin:0;padding:0;display:flex}.site-nav a,.cart-link{color:var(--ink);align-items:center;margin:0;padding:0;font-size:.85rem;line-height:1;display:inline-flex}.site-nav a:hover,.site-nav a.active,.cart-link:hover,.cart-link.active{text-underline-offset:4px;text-decoration:underline}.nav-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;display:none;position:absolute;left:0}.nav-toggle span{background:var(--ink);width:18px;height:1.5px;display:block}.hero{text-align:center;place-items:center;min-height:min(72vh,680px);display:grid;position:relative;overflow:hidden}.hero-visual{position:absolute;inset:0}.hero-photo{object-fit:cover;object-position:center 30%;width:100%;height:100%;display:block}.hero-photo--pending{background:linear-gradient(145deg,#1c1c1c 0%,#2e2e2e 50%,#1a1a1a 100%)}.story-section{text-align:center;background:#faf9f6;padding:4.5rem 0}.story-inner{max-width:44rem}.story-title{color:#2a2a2a;margin:0 0 1.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.85rem,4vw,2.75rem);font-weight:500;line-height:1.25}.story-body{color:#444;margin:0 0 1.75rem;font-size:1rem;line-height:1.7}.story-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn-outline{color:#2a2a2a;text-transform:none;letter-spacing:0;background:0 0;border:1px solid #2a2a2a;padding:.7rem 1.4rem;font-weight:400}.btn-outline:hover{color:#fff;background:#2a2a2a}.btn{cursor:pointer;letter-spacing:.03em;text-transform:uppercase;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:.4rem;padding:.9rem 1.75rem;font-size:.92rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover{background:#333}.hero .btn-primary{background:var(--white);color:var(--ink)}.hero .btn-primary:hover{background:#f0f0f0}.btn-ghost{border-color:var(--white);color:var(--white);background:0 0}.btn-ghost:hover{background:#ffffff1f}.section{padding:3.5rem 0}.section-alt{background:var(--paper-deep)}.page-top{padding-top:2.5rem}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.75rem;display:flex}.section-head.center{text-align:center;justify-content:center}.section-head h2,.page-intro h1{font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:600}.page-intro{max-width:36rem;margin-bottom:1.5rem}.muted{color:var(--ink-soft)}.small{font-size:.88rem}.text-link{color:var(--ink);text-underline-offset:3px;font-size:.92rem;text-decoration:underline}.collection-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=700px){.collection-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem}}.collection-card{text-align:center;display:block}.collection-media{aspect-ratio:1;background:var(--mist);margin-bottom:.85rem;overflow:hidden}.collection-media img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.collection-card:hover .collection-media img{transform:scale(1.03)}.collection-card span{font-size:.95rem;font-weight:500}.category-strip{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.category-chip{border:1px solid var(--line);background:var(--paper);padding:.55rem 1rem;font-size:.9rem}.category-chip:hover{border-color:var(--ink)}.workshop-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=700px){.workshop-grid{grid-template-columns:repeat(3,1fr);gap:1.75rem}}.workshop-card{display:block}.workshop-media{aspect-ratio:4/3;background:var(--mist);margin-bottom:.85rem;overflow:hidden}.workshop-media img{object-fit:cover;width:100%;height:100%;transition:opacity .2s}.workshop-card:hover .workshop-media img{opacity:.9}.workshop-meta h2,.workshop-meta h3{margin:.25rem 0 .35rem;font-size:1.1rem;font-weight:600}.workshop-meta p{color:var(--ink-soft);margin:0;font-size:.92rem}.workshop-meta-line{text-transform:uppercase;letter-spacing:.04em;font-size:.8rem!important}.workshop-detail{max-width:800px}.workshop-detail h1{margin:.5rem 0 1.5rem;font-size:clamp(1.75rem,4vw,2.5rem)}.workshop-gallery{margin-bottom:2rem}.workshop-main-image{aspect-ratio:16/10;background:var(--mist);overflow:hidden}.workshop-main-image img{object-fit:cover;width:100%;height:100%}.workshop-story p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7}.product-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;display:grid}@media (width>=800px){.product-grid{grid-template-columns:repeat(4,1fr);gap:2rem 1.25rem}}.product-card{display:block}.product-media{aspect-ratio:1;background:var(--mist);margin-bottom:.75rem;overflow:hidden}.product-media img,.product-main-image img,.article-cover img,.journal-cover img,.cart-thumb img,.admin-product-cell img,.image-preview img,.collection-media img{object-fit:cover;width:100%;height:100%}.product-card:hover .product-media img{opacity:.92}.product-media img{transition:opacity .2s}.product-meta h3{font-family:var(--font-body);margin-bottom:.2rem;font-size:.95rem;font-weight:400}.product-meta p{color:var(--ink-soft);margin:0;font-size:.9rem}.product-placeholder{background:var(--mist);width:100%;height:100%;min-height:120px}.product-placeholder.tall{min-height:420px}.product-placeholder.sm{flex-shrink:0;width:44px;height:44px;min-height:0}.newsletter-section{color:var(--ink);isolation:isolate;background:var(--white);position:relative;overflow:hidden}.newsletter-artboard{z-index:0;background:var(--white);position:absolute;inset:0}.newsletter-artboard img,.newsletter-artboard:after{display:none}.newsletter-section h2,.newsletter-section p{color:var(--ink)}.newsletter-block{z-index:1;text-align:center;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:1.25rem;max-width:520px;margin-inline:auto;padding:.5rem 1rem;display:grid;position:relative}.newsletter-copy p{color:var(--ink-soft);margin-bottom:0}.newsletter-form .newsletter-row{gap:0;display:flex}.newsletter-form input{border:1px solid var(--line);background:var(--white);color:var(--ink);flex:1;padding:.85rem 1rem}.newsletter-form input::placeholder{color:var(--ink-soft)}.newsletter-form button{background:var(--ink);color:var(--white);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;border:0;padding:0 1.25rem;font-size:.8rem;font-weight:600}.site-footer .newsletter-form input{border:1px solid var(--line);background:var(--paper);color:var(--ink)}.site-footer .newsletter-form input::placeholder{color:var(--ink-soft)}.site-footer .newsletter-form button{background:var(--ink);color:var(--white)}.form-status{margin:.5rem 0 0;font-size:.88rem}.journal-grid{gap:1.5rem;display:grid}@media (width>=700px){.journal-grid{grid-template-columns:1fr 1fr;gap:2rem}}.journal-card{border:0;padding:0;display:block}.journal-card-media{aspect-ratio:16/10;background:var(--mist);margin-bottom:.85rem;overflow:hidden}.journal-card-media img{object-fit:cover;width:100%;height:100%;transition:opacity .2s}.journal-card:hover .journal-card-media img{opacity:.92}.journal-card-body time,.journal-card time{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.journal-card h3{margin-top:.4rem;font-size:1.15rem;font-weight:600}.journal-card p{color:var(--ink-soft);margin:0;font-size:.95rem}.journal-card:hover h3{text-underline-offset:3px;text-decoration:underline}.filter-row{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.filter-row a{border:1px solid var(--line);padding:.4rem .85rem;font-size:.9rem}.filter-row a.active,.filter-row a:hover{border-color:var(--ink);background:var(--ink);color:var(--white)}.product-detail{gap:2rem;display:grid}@media (width>=900px){.product-detail{grid-template-columns:1fr 1fr;align-items:start;gap:3rem}}.product-main-image{aspect-ratio:1;background:var(--mist);overflow:hidden}.thumb-row{gap:.5rem;margin-top:.75rem;display:flex}.thumb-row button{border:1px solid var(--line);background:var(--mist);cursor:pointer;width:64px;height:64px;padding:0;overflow:hidden}.thumb-row button.active{border-color:var(--ink)}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.75rem;font-size:.75rem;display:inline-block}.price{margin-bottom:1rem;font-size:1.1rem}.product-desc{color:var(--ink-soft);margin-bottom:1.25rem}.product-specs{border-top:1px solid var(--line);margin:0 0 1.75rem;padding:0}.product-specs>div{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:.75rem;padding:.85rem 0;display:grid}.product-specs dt{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;font-weight:600}.product-specs dd{color:var(--ink);margin:0}.product-info .btn-primary{color:#fff;background:#25d366;border-color:#25d366}.product-info .btn-primary:hover{background:#1ebe57;border-color:#1ebe57}.cart-layout{gap:2rem;display:grid}@media (width>=900px){.cart-layout{grid-template-columns:1.4fr .8fr;align-items:start}}.cart-list{margin:1.5rem 0 0;padding:0;list-style:none}.cart-item{border-bottom:1px solid var(--line);grid-template-columns:88px 1fr auto;gap:1rem;padding:1rem 0;display:grid}.cart-thumb{background:var(--mist);width:88px;height:88px;overflow:hidden}.qty-row{align-items:center;gap:1rem;margin-top:.5rem;display:flex}.qty-row input{border:1px solid var(--line);background:var(--paper);width:64px;margin-left:.4rem;padding:.35rem}.text-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.cart-summary{background:var(--paper-deep);border:1px solid var(--line);padding:1.5rem}.cart-total{justify-content:space-between;margin:1.25rem 0;font-size:1.05rem;display:flex}.cart-summary .btn{width:100%;margin-bottom:.75rem}.cart-summary .btn-primary{background:var(--ink);color:var(--white)}.about-layout{gap:2rem;display:grid}@media (width>=900px){.about-layout{grid-template-columns:.9fr 1.1fr;align-items:center;gap:3rem}}.about-visual{background:var(--mist) url(/images/hero-studio.png) center / cover no-repeat;min-height:420px}.lead{color:var(--ink-soft);font-size:1.1rem}.journal-list{gap:2rem;display:grid}.journal-row{border-bottom:1px solid var(--line);gap:1rem;padding-bottom:2rem;display:grid}@media (width>=700px){.journal-row{grid-template-columns:220px 1fr}}.journal-cover{aspect-ratio:4/3;background:var(--mist);overflow:hidden}.journal-article{max-width:720px}.journal-article .article-page-title{margin:.75rem 0 1.5rem;font-size:clamp(1.75rem,4vw,2.5rem)}.article-cover{aspect-ratio:16/9;background:var(--mist);margin-bottom:1.5rem;overflow:hidden}.article-body{color:var(--ink);line-height:1.7}.article-body h1{font-family:var(--article-font-h1,"Libre Baskerville", Georgia, serif);margin:1.5rem 0 .75rem;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.article-body h2{font-family:var(--article-font-h2,"Libre Baskerville", Georgia, serif);margin:1.35rem 0 .65rem;font-size:clamp(1.3rem,2.5vw,1.65rem);font-weight:700}.article-body h3{font-family:var(--article-font-h3,"Assistant", sans-serif);margin:1.2rem 0 .5rem;font-size:1.15rem;font-weight:600}.article-body p{font-family:var(--article-font-p,"Assistant", sans-serif);color:var(--ink-soft);margin:0 0 1rem;font-size:1.05rem}.article-body .article-inline-img{object-fit:cover;width:100%;height:auto;margin:1.25rem 0;display:block}.article-body .article-link{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.article-body .article-img-missing{background:var(--mist);color:var(--ink-soft);margin:1rem 0;padding:1rem;font-size:.9rem;display:block}.site-footer{border-top:1px solid var(--line);background:var(--paper);margin-top:0;padding:3rem 0 1.5rem}.footer-grid{gap:2rem;display:grid}@media (width>=800px){.footer-grid{grid-template-columns:1.2fr .8fr 1.2fr}}.footer-brand{text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;font-size:1rem;font-weight:600}.footer-heading{text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.footer-links{gap:.4rem;font-size:.92rem;display:grid}.footer-bottom{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:2rem;padding-top:1rem;font-size:.82rem}.admin-login{background:var(--paper-deep);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.admin-login-card{background:var(--paper);border:1px solid var(--line);gap:.9rem;width:min(100%,400px);padding:2rem;display:grid}.admin-login-card label,.admin-form label{gap:.35rem;font-size:.92rem;display:grid}.admin-login-card input,.admin-form input,.admin-form textarea,.admin-form select{border:1px solid var(--line);background:var(--paper);border-radius:0;padding:.7rem .8rem}.admin-shell{min-height:100vh;display:grid}@media (width>=900px){.admin-shell{grid-template-columns:220px 1fr}}.admin-sidebar{background:var(--ink);color:var(--white);flex-direction:column;gap:1.5rem;padding:1.5rem 1.25rem;display:flex}.admin-brand{text-transform:uppercase;letter-spacing:.04em;font-size:1rem;font-weight:600}.admin-sidebar nav{gap:.25rem;display:grid}.admin-sidebar a{opacity:.8;padding:.55rem .7rem}.admin-sidebar a.active,.admin-sidebar a:hover{opacity:1;background:#ffffff14}.admin-sidebar-foot{gap:.5rem;margin-top:auto;display:grid}.admin-sidebar-foot .muted,.admin-sidebar-foot .text-btn,.admin-sidebar-foot .text-link{color:#ffffffbf}.admin-main{background:var(--paper-deep);padding:1.5rem}.admin-page-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.stat-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (width>=800px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--paper);border:1px solid var(--line);gap:.5rem;padding:1.25rem;display:grid}.stat-card strong{font-size:1.75rem;font-weight:600}.admin-table-wrap{background:var(--paper);border:1px solid var(--line);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.85rem 1rem}.admin-product-cell{align-items:center;gap:.75rem;display:flex}.admin-product-cell img{object-fit:cover;width:44px;height:44px}.admin-actions{white-space:nowrap;gap:.75rem;display:flex}.admin-actions button,.admin-actions a{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.admin-form{background:var(--paper);border:1px solid var(--line);gap:1rem;max-width:640px;padding:1.5rem;display:grid}.admin-form-wide{max-width:760px}.article-guide{background:var(--paper-deep);border:1px solid var(--line);padding:1rem}.article-guide ul{color:var(--ink-soft);margin:.5rem 0 .75rem;padding-left:1.2rem;font-size:.9rem}.article-guide code{background:#0000000f;padding:.1rem .3rem;font-size:.85em}.tag-insert-row{flex-wrap:wrap;gap:.4rem;display:flex}.tag-chip{border:1px solid var(--line);background:var(--paper);cursor:pointer;padding:.35rem .65rem;font-size:.85rem}.tag-chip:hover{border-color:var(--ink)}.content-image-slots{gap:1rem;display:grid}@media (width>=700px){.content-image-slots{grid-template-columns:1fr 1fr}}.content-image-slot{border:1px solid var(--line);background:var(--paper-deep);padding:.85rem}.form-row-4{grid-template-columns:1fr 1fr}@media (width>=800px){.form-row-4{grid-template-columns:repeat(4,1fr)}}.admin-form-section{text-transform:uppercase;letter-spacing:.04em;border-top:1px solid var(--line);margin:.75rem 0 0;padding-top:.75rem;font-size:.85rem;font-weight:600}.admin-form-section:first-of-type{border-top:0;margin-top:0;padding-top:0}.form-row{gap:1rem;display:grid}@media (width>=600px){.form-row{grid-template-columns:1fr 1fr}}.checkbox-row,.form-actions{align-items:center;gap:1.25rem;display:flex}.checkbox-row label,.checkbox-inline{align-items:center;gap:.45rem;grid-template-columns:none!important;display:flex!important}.form-error{color:var(--danger);margin:0}.image-preview-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.image-preview.hero-cover-preview{width:100%;max-width:360px}.image-preview.hero-cover-preview img{object-fit:cover;width:100%;height:160px}.image-preview img{object-fit:cover;width:100px;height:100px;margin-bottom:.35rem}.image-preview button{color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0;font-size:.85rem}.file-label{background:var(--ink);width:fit-content;color:var(--white);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;padding:.6rem 1rem;font-size:.85rem;display:inline-flex!important}.label-text{margin:0 0 .5rem;font-size:.92rem}.admin-split{gap:2rem;display:grid}@media (width>=1000px){.admin-split{grid-template-columns:360px 1fr;align-items:start}}.admin-login .btn-primary,.admin-form .btn-primary,.admin-page-head .btn-primary{background:var(--ink);color:var(--white)}@media (width<=799px){.nav-toggle{display:none}.header-nav{border-top:0;height:40px;max-height:40px;padding:0;display:flex}.header-nav .site-nav{flex-flow:row;justify-content:center;align-items:center;gap:1rem;height:40px;padding:0}.header-nav .site-nav a{text-align:center;width:auto;padding:0;font-size:.8rem}.cart-item{grid-template-columns:72px 1fr}.cart-line-total{grid-column:2}}
