@font-face{font-family:PortraitsPinyon;src:url(/fonts/pinyon-script.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PortraitsCormorant;src:url(/fonts/cormorant-garamond.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--ivory: #f7f1e8;--cream: #fbf6ee;--cream-2: #f1eade;--clay: #b85c38;--clay-dark: #8a3e1f;--charcoal: #1f1b17;--charcoal-2: #3a342d;--muted: #807668;--line: #e4dccc;--gold: #b9974a;--shadow-sm: 0 1px 2px rgba(31, 27, 23, .06);--shadow-md: 0 10px 30px rgba(31, 27, 23, .08);--shadow-lg: 0 30px 60px rgba(31, 27, 23, .12);--radius: 10px;--radius-lg: 18px;--serif: "Fraunces", "Playfair Display", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--clay-dark);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;color:var(--charcoal)}h1{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.05;margin:0}h2{font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.15;margin:0 0 .4em}h3{font-size:1.25rem;margin:0 0 .3em}.container{width:100%;max-width:1160px;margin:0 auto;padding:0 24px}.nav{position:sticky;top:0;z-index:10;background:#f7f1e8d9;backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1160px;margin:0 auto}.brand{font-family:var(--serif);font-size:1.2rem;letter-spacing:-.01em}.brand-mark{display:inline-block;width:10px;height:10px;background:var(--clay);margin-right:8px;transform:rotate(45deg)}.nav-links{display:flex;gap:28px;font-size:.95rem}.nav-links a{color:var(--charcoal-2)}@media(max-width:720px){.nav-links{display:none}}.nav-right{display:flex;align-items:center;gap:14px}.currency-picker{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;line-height:1;color:var(--charcoal-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:#fff9;cursor:pointer;transition:border-color .16s ease,background .16s ease}.currency-picker:hover{border-color:var(--clay);background:#ffffffe6}.currency-picker>span{display:inline-flex;align-items:center;line-height:1}.locale-picker{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;line-height:1;letter-spacing:.04em;color:var(--charcoal-2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:#fff9;cursor:pointer;transition:border-color .16s ease,background .16s ease}.locale-picker:hover{border-color:var(--clay);background:#ffffffe6}.locale-picker>span{display:inline-flex;align-items:center;line-height:1}.locale-picker select,.currency-picker select{appearance:none;-webkit-appearance:none;background:transparent;border:0;margin:0;padding:0;font:inherit;line-height:1;color:inherit;cursor:pointer;outline:none;height:auto}.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-size:1rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;font-family:var(--sans)}.btn-primary{background:var(--clay);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--clay-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{background:var(--muted);cursor:wait;transform:none}.btn-ghost{background:transparent;color:var(--charcoal);border-color:var(--line)}.btn-ghost:hover{background:var(--cream)}.hero{padding:clamp(48px,10vh,120px) 0 clamp(56px,10vh,140px);position:relative;overflow:hidden}.hero-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--clay-dark);margin-bottom:20px}.hero-title{max-width:18ch;line-height:1.05}.hero-title em{display:block;font-style:italic;font-weight:400;font-size:.42em;line-height:1.25;letter-spacing:.005em;color:var(--clay);margin-top:18px;max-width:28ch}.hero-sub{max-width:58ch;color:var(--charcoal-2);font-size:1.1rem;margin:24px 0 36px}.hero-cta-sub{margin-top:14px;color:var(--muted);font-size:.9rem}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}.mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:10px}.mosaic-tile{aspect-ratio:3 / 4}.mosaic-tile{border-radius:var(--radius);box-shadow:var(--shadow-md);position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:flex-start;color:#fff;padding:10px;font-family:var(--serif);font-size:.8rem;font-style:italic;letter-spacing:.01em}.mosaic-tile span{background:#00000059;padding:2px 8px;border-radius:4px;backdrop-filter:blur(3px);position:relative;z-index:1}.mosaic-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.pill-wrap{position:relative;display:inline-block}.pill-pop{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px);background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:14px;width:220px;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;z-index:20}.pill-pop:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:7px solid transparent;border-top-color:var(--cream)}.pill-wrap:hover .pill-pop,.pill-wrap:focus-within .pill-pop{opacity:1;transform:translate(-50%) translateY(0)}.pill-pop p{margin:10px 0 0;font-size:.85rem;line-height:1.45;color:var(--muted)}.pill-pop strong{font-family:var(--serif);font-weight:600;font-size:1rem;color:var(--ink)}.pill-pop-text{width:240px}.frame-preview{width:100%;aspect-ratio:3 / 4;border-radius:2px;padding:10px;box-shadow:inset 0 0 0 1px #00000040,0 2px 6px #0000002e;display:flex}.frame-preview img{width:100%;height:100%;object-fit:cover;display:block;box-shadow:inset 0 0 0 1px #0000001a}.fp-none{padding:0;background:transparent;box-shadow:0 2px 6px #0000001f}.fp-black{background:linear-gradient(135deg,#2a2420,#100c0a)}.fp-white{background:linear-gradient(135deg,#f5f1ea,#d9d2c6)}.fp-natural{background:repeating-linear-gradient(90deg,#c19c74,#a9845b,#c19c74 6px),linear-gradient(135deg,#c19c74,#8a6a44)}.mosaic-tile.is-original{outline:2px solid var(--clay);outline-offset:2px}.mosaic-tile.is-original span{background:var(--clay);color:#fff;font-style:normal;font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.mosaic-tile.m-1{background:linear-gradient(135deg,#c8d8e8,#6a8aa8)}.mosaic-tile.m-2{background:linear-gradient(135deg,#2e3a5f,#0d1840)}.mosaic-tile.m-3{background:linear-gradient(135deg,#e8d4a8,#9c6e3a)}.mosaic-tile.m-4{background:linear-gradient(135deg,#f4e4d4,#b48a5c)}.mosaic-tile.m-5{background:linear-gradient(135deg,#ede5d7,#b8a888)}section{padding:clamp(56px,9vw,120px) 0}.section-title{text-align:center;margin-bottom:10px}.section-sub{text-align:center;color:var(--muted);max-width:56ch;margin:0 auto 56px;font-size:1.05rem}.styles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.styles-grid-6{grid-template-columns:repeat(6,1fr)}@media(max-width:1100px){.styles-grid-6{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.styles-grid-6{grid-template-columns:repeat(2,1fr)}}.style-img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block;border-radius:var(--radius);margin-bottom:16px}.style-card.is-original .style-meta h3:after{content:" · Before";color:var(--clay);font-weight:500;font-size:.85em;letter-spacing:.04em}.style-card{position:relative;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;outline:2px solid transparent;outline-offset:-1px;transition:box-shadow .18s ease,outline-color .18s ease,z-index 0s linear .22s}.style-card:hover{box-shadow:var(--shadow-md);outline-color:var(--clay)}.style-img{transform-origin:center bottom;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,filter .22s ease;will-change:transform;position:relative;z-index:1}.style-meta h3{transition:color .18s ease}@media(hover:hover)and (min-width:900px){.style-card:hover{z-index:5;transition:box-shadow .18s ease,z-index 0s linear 0s}.style-card:hover .style-meta h3{color:var(--clay)}.style-card:hover .style-img{transform:scale(4.2);object-fit:contain;background:transparent;box-shadow:none;filter:drop-shadow(0 18px 28px rgba(0,0,0,.32));border-radius:0}.styles-grid-6 .style-card:nth-child(6n+1):hover .style-img{transform-origin:left bottom}.styles-grid-6 .style-card:nth-child(6n):hover .style-img{transform-origin:right bottom}}.style-swatch{height:120px;border-radius:var(--radius);margin-bottom:16px}.sw-watercolor{background:linear-gradient(135deg,#c9ddea,#9ebbd6,#e8d8c0)}.sw-line_art{background:repeating-linear-gradient(-45deg,#fbf6ee 0 8px,#1f1b17 8px 9px)}.sw-oil{background:linear-gradient(135deg,#b48a5c,#8a5a2c,#d4b486)}.sw-storybook{background:linear-gradient(135deg,#ffd9a8,#ff9a8b,#a8e6cf)}.sw-blueprint{background:repeating-linear-gradient(0deg,#0d1840 0 18px,#152460 18px 19px),repeating-linear-gradient(90deg,#0d1840 0 18px,#152460 18px 19px);background-blend-mode:lighten}.style-name{font-family:var(--serif);font-size:1.15rem;margin-bottom:6px}.style-desc{font-size:.95rem;color:var(--charcoal-2)}#gallery{padding-top:80px;padding-bottom:80px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.gallery-grid{grid-template-columns:1fr}}.gallery-card{margin:0;background:var(--paper);border:1px solid var(--cream-2);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}.gallery-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--cream-2)}.gallery-img{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--cream);display:flex;align-items:center;justify-content:center}.gallery-img img{width:100%;height:100%;object-fit:cover;display:block}.gallery-before{background:repeating-linear-gradient(45deg,#efe7d8 0 12px,#e8dfcd 12px 24px)}.placeholder-label{font-family:var(--serif);font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;color:#ffffffeb;background:#00000052;padding:4px 10px;border-radius:999px;backdrop-filter:blur(2px)}.gallery-card.is-placeholder .gallery-before .placeholder-label{color:var(--charcoal-2);background:#ffffffb3}.gallery-card figcaption{padding:16px 18px 18px}.gallery-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.gallery-style-tag{font-family:var(--serif);font-size:.95rem;color:var(--clay)}.gallery-author{font-size:.82rem;color:var(--muted)}.gallery-caption{font-size:.92rem;color:var(--charcoal-2);line-height:1.5;margin:0}.how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}.how-step h3{font-family:var(--serif);font-size:1.15rem;margin-bottom:8px}.how-step p{color:var(--charcoal-2);margin:0}.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.quote{background:var(--cream);padding:28px;border-radius:var(--radius-lg);border:1px solid var(--line);font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.45}.quote cite{display:block;margin-top:16px;font-style:normal;font-family:var(--sans);font-size:.85rem;color:var(--muted)}.faq-list{max-width:780px;margin:0 auto}.faq-item{border-bottom:1px solid var(--line);padding:22px 0}.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:1.15rem}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--clay);font-size:1.5rem;transition:transform .16s ease}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item p{margin:14px 0 0;color:var(--charcoal-2)}.footer{background:var(--charcoal);color:#cfc8b8;padding:48px 0;margin-top:60px;font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.footer-legal{display:flex;gap:8px;align-items:center}.footer-legal a{color:#cfc8b8;text-decoration:none}.footer-legal a:hover{color:#fff;text-decoration:underline}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #ece5d8;vertical-align:top}.admin-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f7f1e6}.admin-table tbody tr:hover{background:#faf6ee}.admin-table .btn{padding:6px 12px;font-size:.8rem}.personalize-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:16px}.personalize-grid label{display:block;font-weight:500;margin-bottom:4px}.personalize-grid input{width:100%;padding:10px 14px;font-size:1rem;border:1px solid #d8cfc1;border-radius:6px;margin-top:6px;background:#fff}.personalize-preview{background:#fdfcf8;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:var(--shadow-sm);align-self:start}@media(max-width:720px){.personalize-grid{grid-template-columns:1fr}}.cta-band{background:linear-gradient(135deg,#2a211a,#1f1b17);color:#fbf6ee;padding:80px 0;text-align:center;border-radius:var(--radius-lg);margin:40px 0}.cta-band h2{color:#fff}.cta-band p{color:#cfc8b8;max-width:44ch;margin:16px auto 28px}.flow-wrap{max-width:960px;margin:0 auto;padding:40px 24px 80px}.flow-steps{display:flex;gap:16px;align-items:center;justify-content:center;margin-bottom:48px;color:var(--muted);font-size:.85rem;flex-wrap:wrap}.flow-steps .step{display:flex;align-items:center;gap:8px}.flow-steps .dot{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff;font-size:.75rem;color:var(--muted)}.flow-steps .step.active .dot{background:var(--clay);color:#fff;border-color:var(--clay)}.flow-steps .step.done .dot{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.flow-steps .bar{width:28px;height:1px;background:var(--line)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-sm)}.card h2{margin-bottom:6px}.card .lede{color:var(--charcoal-2);margin-top:0;margin-bottom:28px}label{font-size:.9rem;color:var(--charcoal-2);display:block;margin-bottom:16px}input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea{width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;font-family:var(--sans);font-size:1rem;margin-top:6px;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--clay);box-shadow:0 0 0 3px #b85c3826}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:640px){.field-grid{grid-template-columns:1fr}}.dropzone{border:2px dashed var(--line);border-radius:var(--radius-lg);background:var(--cream);padding:50px 32px;text-align:center;cursor:pointer;transition:background .12s ease,border-color .12s ease}.dropzone:hover,.dropzone.drag{background:var(--cream-2);border-color:var(--clay)}.dropzone svg{margin:0 auto 16px;color:var(--clay)}.preview-img{max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md);margin:20px 0}.gen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:28px}.gen-tile{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);aspect-ratio:3/4;display:grid;place-items:center;position:relative;overflow:hidden;font-family:var(--serif);text-align:center;padding:20px}.gen-tile.loading:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.gen-tile.ready img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.gen-tile.failed{color:var(--clay-dark);background:#faeadf}.gen-status{position:absolute;bottom:10px;left:10px;right:10px;font-family:var(--sans);font-size:.75rem;color:var(--muted);text-align:left}.pick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:28px 0}.pick-card{border:2px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;background:#fff;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.pick-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.pick-card.selected{border-color:var(--clay);box-shadow:0 0 0 4px #b85c381f,var(--shadow-md)}.pick-card img{width:100%;display:block;aspect-ratio:3/4;object-fit:cover}.pick-label{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:1.05rem}.pick-label .badge{font-family:var(--sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;background:var(--clay);color:#fff;padding:3px 9px;border-radius:999px}.option-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.option-pill{padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:.95rem;transition:all .12s ease}.option-pill:hover{border-color:var(--clay)}.option-pill.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.running-total{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--serif);font-size:1.3rem;text-align:right}.summary-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.summary-row.total{border-bottom:none;border-top:2px solid var(--charcoal);margin-top:8px;padding-top:14px;font-family:var(--serif);font-size:1.25rem}.summary-row .label{color:var(--muted)}.row{display:flex;gap:12px;align-items:center}.right{justify-content:flex-end}.space-between{justify-content:space-between}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.text-muted{color:var(--muted)}
