.site-footer{border-top:1px solid var(--line);background:#00000040;margin-top:auto}.site-footer__inner{width:min(100% - 2rem, var(--max));gap:1.25rem;margin:0 auto;padding:2.5rem 0 3rem;display:grid}.site-footer__brand{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.5rem}.site-footer__tag,.site-footer__copy{color:var(--muted);margin:.35rem 0 0}.site-footer__links{color:var(--ink-soft);flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.site-footer__links a:hover{color:var(--accent)}.site-footer__admin{opacity:.55;font-size:.9rem}.site-footer__admin:hover{opacity:1}.site-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#121816d1;position:sticky;top:0}.site-header__inner{width:min(100% - 2rem, var(--max));grid-template-columns:1fr auto auto;align-items:center;gap:1rem;min-height:4.25rem;margin:0 auto;display:grid}.site-header__brand{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.65rem;font-size:1.35rem;font-weight:700;display:inline-flex}.site-header__mark{background:linear-gradient(135deg, var(--accent), var(--pine));clip-path:polygon(50% 0%,100% 100%,0% 100%);width:.85rem;height:.85rem}.site-header__nav{flex-wrap:wrap;gap:.35rem 1rem;display:flex}.site-header__link{color:var(--ink-soft);border-bottom:2px solid #0000;padding:.35rem 0;font-size:.95rem;font-weight:500}.site-header__link:hover,.site-header__link.is-active{color:var(--ink);border-bottom-color:var(--accent)}.site-header__call{justify-self:end}@media (width<=820px){.site-header__inner{grid-template-columns:1fr auto;padding:.65rem 0}.site-header__nav{order:3;grid-column:1/-1}.site-header__call{min-height:2.4rem;padding:.55rem .9rem;font-size:.9rem}}.admin{width:min(100% - 2rem, var(--max));gap:1.25rem;margin:0 auto;padding:2.5rem 0 4rem;display:grid}.admin__intro h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2.4rem,7vw,3.8rem);line-height:.95}.admin__who,.admin__hint,.admin__muted{color:var(--ink-soft);margin:.4rem 0 0}.admin__top-actions,.admin__tabs{flex-wrap:wrap;gap:.55rem;margin-top:1rem;display:flex}.admin__panel{border:1px solid var(--line);background:var(--bg-raised);border-radius:1rem;gap:1rem;padding:1.25rem;display:grid}.admin__panel h2{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:1.8rem}.admin__big{width:100%;min-height:3.4rem;font-size:1.1rem}.admin__form{gap:.85rem;display:grid}.field select{border:1px solid var(--line);background:var(--bg);min-height:3rem;color:var(--ink);border-radius:.65rem;padding:.7rem .9rem;font-size:1.05rem}.admin__photo-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.75rem;display:grid}.admin__photo{gap:.45rem;display:grid}.admin__photo-cat{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.78rem}.admin__photo img{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:.55rem;width:100%}.admin__photo--hero img{border-color:var(--accent);box-shadow:0 0 0 1px #c4a57473}.admin__hero{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#ffffff08;border-radius:999px;min-height:2.6rem;font-weight:600}.admin__hero--active{border-color:var(--accent);color:var(--ink);cursor:default;background:#c4a57429}.admin__remove{color:#ffd7d2;cursor:pointer;background:#78282459;border:1px solid #f0a8a073;border-radius:999px;min-height:2.6rem;font-weight:600}.admin__users{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.admin__user{border:1px solid var(--line);background:var(--bg-panel);border-radius:.75rem;gap:.65rem;padding:.9rem;display:grid}.admin__user strong{display:block}.admin__user span{color:var(--muted);font-size:.9rem}.admin__user-actions{flex-wrap:wrap;gap:.5rem;display:flex}.admin__error{color:#f0a8a0;margin:0}.admin__notice{color:#b7d9c4;margin:0}.pill{cursor:pointer}.contact h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2.6rem,7vw,4.5rem);line-height:.95}.contact__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.contact__card{border:1px solid var(--line);background:linear-gradient(160deg, #c4a5741f, transparent 50%), var(--bg-raised);border-radius:.85rem;gap:.35rem;padding:1.5rem;transition:border-color .18s,transform .18s;display:grid}.contact__card:hover{border-color:var(--accent);transform:translateY(-2px)}.contact__label{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:600}.contact__card h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:2rem}.contact__phone{color:var(--ink-soft);margin:.35rem 0 0;font-size:1.05rem}@media (width<=800px){.contact__grid{grid-template-columns:1fr}}.lightbox{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a09e0;place-items:center;padding:1.5rem;animation:.22s both rise;display:grid;position:fixed;inset:0}.lightbox__close{border:1px solid var(--line);background:var(--bg-raised);color:var(--ink);cursor:pointer;border-radius:999px;padding:.55rem 1rem;position:absolute;top:1rem;right:1rem}.lightbox__figure{gap:.75rem;max-width:min(92vw,56rem);max-height:88vh;margin:0;display:grid}.lightbox__figure img{border-radius:.4rem;width:auto;max-width:100%;max-height:78vh;margin:0 auto;box-shadow:0 20px 60px #00000073}.lightbox__figure figcaption{text-align:center;color:var(--ink-soft)}.gallery h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2.6rem,7vw,4.5rem);line-height:.95}.gallery__grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.65rem;display:grid}.gallery__item{border:1px solid var(--line);aspect-ratio:1;cursor:pointer;background:var(--bg-raised);border-radius:.45rem;margin:0;padding:0;overflow:hidden}.gallery__item img{object-fit:cover;width:100%;height:100%;transition:transform .36s}.gallery__item:hover img{transform:scale(1.05)}.gallery__status{color:var(--ink-soft);margin:0 0 1rem}.pill{cursor:pointer;color:inherit;background:#ffffff05}.hero{isolation:isolate;align-items:end;min-height:min(92vh,52rem);display:grid;position:relative;overflow:hidden}.hero__media{z-index:-1;background:#0d1210;position:absolute;inset:0}.hero__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity 1.1s,transform 7s ease-out;position:absolute;inset:0;transform:scale(1.05)}.hero__img--active{opacity:1;transform:scale(1)}.hero__shade{background:linear-gradient(#12181659 0%,#1218168c 45%,#121816eb 100%),linear-gradient(90deg,#121816b3 0%,#0000 55%);position:absolute;inset:0}.hero__content{width:min(100% - 2rem, var(--max));margin:0 auto;padding:5rem 0 4rem}.hero__brand{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;max-width:12ch;margin:0;font-size:clamp(3.4rem,12vw,7.5rem);font-weight:700;line-height:.9}.hero__tag{max-width:28rem;color:var(--ink-soft);margin:1.1rem 0 0;font-size:1.15rem}.hero__actions{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.home-install__detail{border:1px solid var(--line);background:linear-gradient(135deg, #3d6b552e, transparent 55%), var(--bg-raised);border-radius:1rem;margin-top:1.5rem;padding:1.35rem 1.4rem 1.5rem}.home-install__detail h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2rem,5vw,2.8rem);line-height:1}.home-install__body{max-width:40rem;color:var(--ink-soft);margin:.85rem 0 0}.home-install__points{gap:.65rem;max-width:40rem;margin:1.15rem 0 0;padding:0;list-style:none;display:grid}.home-install__points li{border-left:2px solid var(--accent);color:var(--ink-soft);background:linear-gradient(90deg,#c4a57414,#0000 80%);padding:.7rem .9rem .7rem 1.1rem}.home-install__actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.pattern-cats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.pattern-cat{border:1px solid var(--line);background:var(--bg-raised);border-radius:.75rem;gap:.85rem;padding:.85rem;transition:border-color .18s,transform .18s;display:grid}.pattern-cat:hover{border-color:var(--accent);transform:translateY(-3px)}.pattern-cat img{aspect-ratio:1;object-fit:cover;background:#0d1210;border-radius:.45rem}.pattern-cat h3{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:1.45rem}.pattern-cat p{color:var(--muted);margin:.35rem 0 0;font-size:.92rem}.home-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.home-gallery__item{aspect-ratio:4/3;border:1px solid var(--line);border-radius:.55rem;overflow:hidden}.home-gallery__item img{object-fit:cover;width:100%;height:100%;transition:transform .42s}.home-gallery__item:hover img{transform:scale(1.04)}.home-cta__card{border:1px solid var(--line);background:linear-gradient(135deg, #3d6b5547, transparent 55%), var(--bg-panel);border-radius:1rem;padding:clamp(1.5rem,4vw,2.5rem)}.home-cta__card h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2rem,5vw,3rem)}.home-cta__actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}@media (width<=960px){.pattern-cats,.home-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.pattern-cats,.home-gallery{grid-template-columns:1fr}}.login-page{width:min(100% - 2rem,26rem);margin:0 auto;padding:3rem 0 4rem}.login-card{border:1px solid var(--line);background:var(--bg-raised);border-radius:1rem;gap:.9rem;padding:1.5rem;display:grid}.login-card h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:2.4rem}.login-card__hint,.login-page__muted{color:var(--ink-soft);margin:0}.field input{border:1px solid var(--line);background:var(--bg);min-height:3rem;color:var(--ink);border-radius:.65rem;padding:.7rem .9rem;font-size:1.05rem}.login-card__submit{width:100%;min-height:3.1rem;margin-top:.35rem}.login-page__error{color:#f0a8a0;margin:0}.patterns__intro h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2.6rem,7vw,4.5rem);line-height:.95}.patterns__overview{gap:1rem;display:grid}.patterns__card{border:1px solid var(--line);background:var(--bg-raised);border-radius:.85rem;grid-template-columns:minmax(7rem,11rem) 1fr;align-items:center;gap:1.25rem;padding:1rem;transition:border-color .18s,transform .18s;display:grid}.patterns__card:hover{border-color:var(--accent);transform:translateY(-2px)}.patterns__card img{aspect-ratio:1;object-fit:cover;border-radius:.5rem}.patterns__card h2{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:1.8rem}.patterns__card p{color:var(--ink-soft);margin:.4rem 0 .75rem}.patterns__card span{color:var(--accent);font-size:.95rem;font-weight:600}.patterns__grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:1rem;display:grid}.pattern-tile{border:1px solid var(--line);background:var(--bg-panel);color:inherit;text-align:left;cursor:pointer;border-radius:.75rem;gap:.45rem;padding:.75rem;transition:border-color .18s,transform .18s;display:grid}.pattern-tile:hover{border-color:var(--accent);transform:translateY(-2px)}.pattern-tile img{aspect-ratio:1;object-fit:contain;background:#0d1210;border-radius:.4rem;width:100%;padding:.35rem}.pattern-tile__name{font-weight:700}.pattern-tile__sizes{color:var(--muted);font-size:.85rem;line-height:1.35}@media (width<=640px){.patterns__card{grid-template-columns:1fr}}:root{--bg:#121816;--bg-raised:#1a221e;--bg-panel:#222c27;--ink:#f2ebe0;--ink-soft:#c9c0b2;--muted:#8f8779;--accent:#c4a574;--accent-strong:#dbb882;--pine:#3d6b55;--line:#f2ebe01f;--max:72rem;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"Figtree", system-ui, sans-serif;color:var(--ink);background:var(--bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.55}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(ellipse 90% 55% at 80% -10%, #3d6b5547, transparent 55%), radial-gradient(ellipse 70% 40% at 10% 20%, #c4a5741f, transparent 50%), var(--bg);min-width:320px;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1}.section{width:min(100% - 2rem, var(--max));margin:0 auto;padding:4rem 0}.section--tight{padding-top:2.5rem;padding-bottom:2.5rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.75rem;display:flex}.section-head h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1}.section-head p,.lede{color:var(--ink-soft);max-width:36rem;margin:.6rem 0 0}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .65rem;font-size:.8rem;font-weight:600}.btn{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:2.85rem;padding:.7rem 1.25rem;font-weight:600;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--accent);color:#1a1510}.btn--primary:hover{background:var(--accent-strong)}.btn--ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn--ghost:hover{border-color:var(--accent)}.pill-row{flex-wrap:wrap;gap:.5rem;display:flex}.pill{border:1px solid var(--line);min-height:2.1rem;color:var(--ink-soft);background:#ffffff05;border-radius:999px;align-items:center;padding:.35rem .85rem;font-size:.9rem;display:inline-flex}.pill--active{border-color:var(--accent);color:var(--ink);background:#c4a5741f}.pill--link{cursor:pointer;transition:border-color .18s,background .18s,color .18s,transform .18s}.pill--link:hover{border-color:var(--accent);color:var(--ink);background:#c4a5741a;transform:translateY(-1px)}.field{gap:.35rem;display:grid}.field span{color:var(--ink-soft);font-size:.9rem}.field input,.field select{border:1px solid var(--line);background:var(--bg);min-height:3rem;color:var(--ink);border-radius:.65rem;padding:.7rem .9rem;font-size:1.05rem}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-zoom{0%{transform:scale(1.06)}to{transform:scale(1)}}.rise{animation:.7s both rise}.rise-delay-1{animation-delay:.12s}.rise-delay-2{animation-delay:.24s}
