/* Atelier edition. Separate from the original stylesheet for a reversible rollout. */
:root {
  --ink: #352e29;
  --wine: #8a4034;
  --wine-dark: #382b28;
  --cream: #f6f1e7;
  --paper: #fffcf5;
  --gold: #b69d72;
  --gold-soft: #ded4bc;
  --muted: #70665d;
  --line: #d9cfc0;
  --shadow: 0 12px 36px rgb(37 46 32 / 6%);
  --radius: 3px;
  --serif: 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --sans: 'Segoe UI', system-ui, sans-serif;
  --ease: cubic-bezier(.2,.65,.3,1);
}
html { scroll-padding-top: 112px; overflow-x: clip; }
body { font-size: 16px; -webkit-font-smoothing: antialiased; }
::selection { background: #d9dfcb; color: #283328; }
:focus-visible { outline: 2px solid #677d56; outline-offset: 5px; }
[hidden] { display: none !important; }
.container { width: min(1320px, calc(100% - 96px)); }
.narrow { width: min(760px, calc(100% - 48px)); }
.narrow-wide { width: min(920px, calc(100% - 48px)); }
h1, h2, h3 { font-weight: 400; text-wrap: balance; }
h1 { font-size: clamp(3rem, 5.1vw, 5.8rem); line-height: 1.05; letter-spacing: -.045em; }
h2 { font-size: clamp(2.3rem, 3.5vw, 4.1rem); line-height: 1.12; }
h3 { line-height: 1.2; }
h2 em { color: var(--wine); font-weight: 400; }
p { text-wrap: pretty; }
.eyebrow { font-size: .69rem; font-weight: 600; letter-spacing: .17em; }
.large-text { font-size: clamp(1.3rem, 2vw, 1.65rem); }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1500; padding: 12px 20px; background: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.site-header { background: rgb(243 240 232 / 97%); backdrop-filter: blur(12px); }
.nav-wrap { min-height: 96px; gap: 28px; }
.brand { flex-shrink: 0; }
.brand-mark { border: 0; border-right: 1px solid var(--line); border-radius: 0; width: 45px; padding-right: 14px; font-style: italic; font-size: 1.3rem; }
.brand strong { font-size: 1.3rem; font-weight: 400; }
.brand small { font-size: .64rem; letter-spacing: .05em; margin-top: 6px; }
.main-nav { gap: clamp(12px, 1.5vw, 24px); font-size: .78rem; font-weight: 500; }
.main-nav a { position: relative; }
.main-nav a::after { content: ''; position: absolute; height: 1px; background: currentColor; bottom: 4px; left: 0; right: 0; transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.main-nav a:hover::after, .main-nav a[aria-current='page']::after { transform: scaleX(1); }
.nav-toggle { min-height: 44px; padding: 8px; font-size: .85rem; color: var(--ink); }
.nav-toggle span { margin-left: 12px; }
.button { min-height: 50px; border-radius: 2px; padding: 12px 24px; font-size: .83rem; font-weight: 600; letter-spacing: .015em; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: none; }
.button-primary, .button-dark { background: var(--wine); color: var(--paper); border-color: var(--wine); }
.button-primary:hover, .button-dark:hover { background: var(--wine-dark); border-color: var(--wine-dark); }
.button-secondary, .button-outline-dark, .button-outline { border-color: #818778; color: var(--ink); background: transparent; }
.button-secondary:hover, .button-outline-dark:hover, .button-outline:hover { background: #e5e7db; }
.text-link { font-size: .86rem; font-weight: 500; text-underline-offset: 6px; }
.text-link:hover { text-decoration: underline; }
.hero, .page-hero { background: var(--cream); color: var(--ink); }
.hero { min-height: 0; overflow: visible; }
.hero-grid { grid-template-columns: 1.05fr 1fr; gap: 7%; padding: 62px 0 72px; align-items: center; }
.hero-copy { padding: 12px 0; }
.hero .eyebrow, .page-hero .eyebrow { color: var(--wine); }
.hero-lead { color: var(--muted); font-size: 1rem; line-height: 1.8; max-width: 520px; margin-top: 26px; }
.hero .button-row { gap: 12px; margin-top: 32px; }
.hero .button-secondary { border-color: transparent; padding-left: 4px; padding-right: 4px; border-bottom-color: var(--line); }
.hero-notes { display: grid; gap: 5px; color: var(--muted); font-size: .73rem; margin-top: 32px; }
.hero-notes span::before { content: '—'; color: var(--muted); }
.hero-art, .hero-art.has-image { display: block; min-height: 0; margin: 0; align-self: center; position: relative; }
.hero-art::before { content: ''; position: absolute; z-index: -1; inset: -18px 22px 42px -18px; border: 1px solid var(--line); }
.hero-work-link { display: block; overflow: hidden; background: #e8e5dd; }
.hero-uploaded-image { width: 100%; height: auto; min-height: 0; max-height: 640px; aspect-ratio: 4/5; object-fit: cover; object-position: center 35%; border: 0; box-shadow: none; }
.hero-work-link .hero-uploaded-image { object-fit: contain; padding: 18px; }
.hero-caption { display: flex; justify-content: space-between; gap: 16px; padding-top: 14px; font-size: .61rem; letter-spacing: .045em; color: var(--muted); }
.hero-frame { background: #e5e8da; border-color: var(--line); box-shadow: none; width: 100%; }
.hero-frame::before, .hero-frame::after { border-color: #c5cebc; }
.hero-medallion { background: transparent; color: var(--ink); border-color: #a9b29e; }
.hero-medallion span, .hero-medallion small { color: var(--wine); }
.section { padding: 96px 0; }
.section-heading { margin-bottom: 42px; }
.selected-works { border-top: 1px solid var(--line); }
.selected-works .split-heading > div { max-width: 670px; }
.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.product-card { display: flex; flex-direction: column; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.product-card:hover { transform: none; box-shadow: none; }
.product-image { aspect-ratio: 4/5; background: #e7e5dc; }
.product-image img { object-fit: contain; padding: 20px; transition: transform .75s var(--ease); }
.product-card:hover .product-image img { transform: none; }
.availability { top: 12px; right: 12px; border-radius: 0; padding: 5px 8px; background: var(--paper); font-size: .64rem; font-weight: 500; }
.art-view-hint { position: absolute; bottom: 14px; right: 14px; padding: 9px 13px; color: var(--paper); background: var(--wine-dark); font-size: .72rem; opacity: 0; transform: translateY(6px); transition: opacity .3s ease, transform .3s ease; }
.product-image:focus-visible .art-view-hint { opacity: 1; transform: none; }
.product-card-body { padding: 22px 0 0; flex: 1; display: flex; flex-direction: column; }
.product-card-body .eyebrow { margin-bottom: 9px; font-size: .62rem; }
.product-card-body h3 { font-size: 1.65rem; margin-bottom: 12px; }
.product-card-body > p:not(.eyebrow) { font-size: .85rem; }
.gift-card-note { display: block; margin: 0 0 8px; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: .73rem; font-weight: 400; }
.order-policy-note { color: var(--muted); margin: 0 0 18px; font-size: .68rem; }
.product-card-footer { margin-top: auto; padding-top: 16px; }
.product-card-footer strong { font-size: 1.25rem; font-weight: 400; }
.story-section { background: #e4e8dc; color: var(--ink); }
.story-grid { grid-template-columns: 55px 1.05fr 1fr; gap: 45px; }
.story-number { color: var(--wine); font-size: 1rem; padding-top: 3px; }
.story-section .eyebrow { color: var(--wine); }
.story-grid > div:nth-child(2) p:not(.eyebrow), .process-list p { color: #596151; }
.story-grid h2 { font-size: clamp(2.1rem, 3vw, 3.25rem); }
.process-list { gap: 18px; }
.process-list li { border-color: #bcc5b4; gap: 20px; }
.process-list li > span { color: var(--wine); font-size: .85rem; margin-top: 3px; }
.process-list strong { font-weight: 400; font-size: 1.6rem; }
.editorial-grid { gap: 9%; grid-template-columns: .85fr 1fr; }
.editorial-image, .portrait-placeholder { min-height: 0; aspect-ratio: 4/5; border: 0; border-radius: 0; background: #e4e8dc; color: var(--wine); overflow: hidden; }
.editorial-image.has-uploaded-image img, .portrait-placeholder.has-uploaded-image img { min-height: 0; height: 100%; object-fit: cover; object-position: center 30%; }
.editorial-copy { padding: 30px 0; }
.reviews-section, .success-page { background: var(--wine-dark); color: var(--paper); }
.reviews-section .button-secondary, .success-page .button-secondary, .form-aside .button-secondary { color: var(--paper); border-color: #a9b29e; }
.reviews-section .button-secondary:hover, .success-page .button-secondary:hover, .form-aside .button-secondary:hover { background: #455240; }
.reviews-section .button-primary, .story-section .button-primary, .success-page .button-primary { background: var(--paper); border-color: var(--paper); color: var(--wine-dark); }
.reviews-section .button-primary:hover, .story-section .button-primary:hover, .success-page .button-primary:hover { background: #e1e5d7; border-color: #e1e5d7; }
.review-card { border-radius: 0; background: transparent; }
.empty-state { border-radius: 0; padding: 40px; }
.page-hero { padding: 76px 0 66px; border-bottom: 1px solid var(--line); }
.compact-hero { text-align: left; }
.compact-hero .container { max-width: 1320px; }
.compact-hero h1, .form-hero h1 { max-width: 900px; font-size: clamp(2.7rem, 4.9vw, 5rem); }
.compact-hero p:last-child { margin: 0; max-width: 620px; font-size: 1rem; color: var(--muted); }
.form-hero p:last-child { color: var(--muted); }
.filter-row { gap: 8px 28px; border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 40px; }
.catalog-loading { font-size:.72rem; color:var(--muted); min-height:1.6em; margin:-22px 0 18px; }
[data-catalog-results][aria-busy='true'] { opacity:.65; }
.filter-pill { border: 0; border-bottom: 1px solid transparent; border-radius: 0; padding: 8px 0; background: transparent; font-size: .86rem; font-weight: 400; }
.filter-pill.active, .filter-pill:hover { background: transparent; color: var(--wine); border-bottom-color: var(--wine); }
.product-detail-grid { gap: 7%; grid-template-columns: 1.1fr 1fr; }
.product-info h1 { font-size: clamp(2.4rem, 4vw, 4.3rem); }
.product-intro { font-size: 1rem; }
.product-gallery img { border-radius: 0; box-shadow: none; background: #e7e5dc; }
.artwork-zoom { display: block; position: relative; overflow: hidden; cursor: zoom-in; background: #e7e5dc; }
.artwork-zoom img { max-height: 780px; object-fit: contain; padding: 20px; transition: transform .65s var(--ease); }
.zoom-label { position: absolute; right: 12px; bottom: 12px; padding: 9px 14px; background: var(--paper); color: var(--ink); font-size: .75rem; }
.gallery-note { padding-inline: 0; text-align: left; font-size: .75rem; }
.product-price { font-size: 2rem; }
.gift-promise, .gift-order-box, .rush-order-box, .quiet-order-terms { background: #e9ecdf; border-color: var(--line); border-radius: 3px; }
.gift-promise-icon, .gift-order-icon { background: transparent; border: 1px solid var(--line); border-radius: 0; }
.product-terms { border-radius: 0; border-color: var(--line); background: var(--line); }
.product-terms > div { background: var(--paper); }
.product-terms span, .product-terms-caption { color: var(--muted); }
.card-form, .auth-card, .legal-document { box-shadow: none; border-radius: 3px; background: var(--paper); border-color: var(--line); }
label { font-weight: 600; }
input, textarea, select { border-radius: 2px; border-color: #bfc4b6; background: #fffefb; }
input:focus, textarea:focus, select:focus { border-color: #677d56; box-shadow: 0 0 0 2px rgb(103 125 86 / 15%); }
input[type='checkbox'], input[type='radio'] { accent-color: var(--wine); }
.form-step > span { border-radius: 0; background: transparent; border: 1px solid var(--line); color: var(--wine); }
.form-aside, .legal-nav { border-radius: 3px; background: var(--wine-dark); }
.aside-art { background: transparent; }
.auth-page { background: var(--cream); }
.auth-card h1 { font-size: 2.8rem; }
.feature-grid article { border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; padding: 26px 0; }
.feature-grid h2 { font-size: clamp(1.9rem, 2.9vw, 2.6rem); overflow-wrap: anywhere; }
.feature-grid article > span { display: block; font-size: .85rem; color: var(--wine); margin-bottom: 25px; }
details { border-radius: 2px; }
summary { font-size: 1.25rem; }
.delivery-summary > div, .legal-purpose, .legal-consent { border-radius: 2px; background: var(--paper); border-color: var(--line); }
.legal-document h2 { font-size: 1.9rem; }
.legal-layout > * { min-width: 0; }
.legal-document { overflow-wrap: anywhere; }
.legal-document p, .legal-document li { color: #555b50; }
.admin-shell { background: var(--cream); }
.admin-nav { background: var(--wine-dark); }
.admin-panel, .admin-nav, .admin-product-card, .account-order, .account-security-box, .stats-grid article { border-radius: 4px; box-shadow: none; }
.site-footer { background: #e8e9df; color: #535c4d; padding-top: 64px; }
.footer-grid { grid-template-columns: 1.2fr .85fr 1fr 1.1fr; gap: 36px; font-size: .79rem; }
.footer-grid h3, .footer-brand { color: var(--ink); }
.footer-grid h3 { font-family: var(--sans); font-size: .65rem; text-transform: uppercase; letter-spacing: .13em; margin-bottom: 20px; }
.footer-grid a { overflow-wrap: anywhere; }
.footer-grid a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { border-color: #cbd0c1; font-size: .69rem; }
.telegram-footer-link, .telegram-footer-link:hover { background: transparent; border-color: #b7c0ab; border-radius: 0; box-shadow: none; transform: none; padding: 10px; }
.telegram-footer-icon { color: var(--wine); border-color: #b7c0ab; }
.telegram-footer-link strong, .telegram-footer-link small { color: var(--wine); }
.analytics-consent { border-radius: 4px; background: var(--paper); border-color: var(--line); max-height: calc(100dvh - 28px); overflow-y: auto; }
.analytics-consent p { font-size: .82rem; }
.analytics-consent-actions { flex-direction: column; }
.analytics-consent-actions .button { min-width: 190px; }
.artwork-dialog { border: 1px solid var(--line); padding: 60px 20px 18px; width: min(1100px, 94vw); max-height: 94dvh; background: var(--paper); color: var(--ink); }
.artwork-dialog::backdrop { background: rgb(23 30 22 / 85%); }
.artwork-dialog img { width: 100%; height: 72dvh; object-fit: contain; }
.artwork-dialog p { text-align: center; margin: 12px 0 0; font-size: .85rem; }
.artwork-close { position: absolute; right: 16px; top: 10px; min-height: 40px; border: 0; padding: 8px 12px; background: transparent; color: var(--ink); }
body.artwork-open { overflow: hidden; }
@keyframes atelier-arrive { from { opacity: .55; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .arrive { animation: atelier-arrive .65s var(--ease) both; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .product-card:hover .product-image img, .artwork-zoom:hover img { transform: scale(1.045); }
  .product-image:hover .art-view-hint { opacity: 1; transform: none; }
}
@media (max-width: 1150px) {
  .container { width: calc(100% - 56px); }
  .narrow { width: min(760px, calc(100% - 56px)); }
  .narrow-wide { width: min(920px, calc(100% - 56px)); }
  .nav-wrap { min-height: 80px; }
  .nav-toggle { display: block; }
  .main-nav { display: none; position: absolute; top: 80px; left: 28px; right: 28px; padding: 20px 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 2px; box-shadow: var(--shadow); flex-direction: column; align-items: stretch; gap: 5px; max-height: calc(100dvh - 110px); overflow-y: auto; font-size: .95rem; }
  .main-nav.open { display: flex; }
  html:not(.has-menu-js) .site-header { position: static; }
  html:not(.has-menu-js) .nav-wrap { flex-wrap: wrap; padding-block: 18px; }
  html:not(.has-menu-js) .main-nav { display: flex; position: static; width: 100%; max-height: none; box-shadow: none; }
  html:not(.has-menu-js) .nav-toggle { display: none; }
  .main-nav a, .nav-logout-button { min-height: 44px; }
  .main-nav a::after { right: auto; width: 32px; }
  .hero-grid { gap: 5%; }
  .hero .button-row { align-items: flex-start; flex-direction: column; }
  .hero-caption { flex-direction: column; gap: 3px; }
  .story-grid { grid-template-columns: 1fr 1fr; gap: 35px; }
  .story-number { display: none; }
  .process-list { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 980px) {
  .product-detail-grid, .form-layout, .text-columns { grid-template-columns: 1fr; gap: 40px; }
  .hero-art { max-width: none; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-grid { grid-template-columns: 1fr 1fr; }
  .hero h1 { font-size: clamp(2.5rem, 5.5vw, 3.5rem); }
  .hero-uploaded-image { aspect-ratio: 3/4; }
  .editorial-grid { grid-template-columns: 1fr 1fr; gap: 6%; }
  .section { padding: 72px 0; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { position: static; }
}
@media (max-width: 680px) {
  body { padding-bottom: 0; }
  .container, .narrow, .narrow-wide { width: calc(100% - 40px); }
  .nav-wrap { min-height: 76px; }
  .main-nav { top: 76px; left: 20px; right: 20px; }
  .brand strong { font-size: 1.2rem; }
  .brand-mark { width: 36px; padding-right: 9px; }
  .hero-grid { grid-template-columns: 1fr; padding: 38px 0 48px; gap: 36px; }
  .hero-copy { padding: 0; }
  .hero h1 { font-size: clamp(2.7rem, 10.5vw, 4rem); }
  .hero-lead { margin-top: 20px; font-size: .95rem; }
  .hero .button-row { flex-direction: row; align-items: center; gap: 12px 18px; margin-top: 24px; }
  .hero .button { font-size: .77rem; padding-inline: 16px; }
  .hero-notes { margin-top: 24px; font-size: .69rem; }
  .hero-art { width: 90%; margin-left: auto; }
  .hero-uploaded-image { aspect-ratio: 4/5; max-height: 520px; }
  .hero-caption { font-size: .6rem; }
  .section { padding: 58px 0; }
  h2 { font-size: 2.4rem; }
  .section-heading { margin-bottom: 30px; }
  .split-heading { gap: 8px; }
  .product-grid { gap: 34px 14px; }
  .product-image img { padding: 10px; }
  .product-card-body { padding-top: 14px; }
  .product-card-body h3 { font-size: 1.25rem; }
  .product-card-body > p:not(.eyebrow) { font-size: .77rem; }
  .product-card-footer { flex-direction: column; align-items: flex-start; gap: 6px; }
  .product-card-footer .text-link { font-size: .76rem; }
  .availability { top: 6px; right: 6px; font-size: .58rem; padding: 3px 5px; }
  .gift-card-note { font-size: .65rem; }
  .order-policy-note { font-size: .62rem; }
  .story-grid, .editorial-grid, .feature-grid, .review-grid { grid-template-columns: 1fr; gap: 30px; }
  .editorial-image, .portrait-placeholder { min-height: 0; max-height: 560px; }
  .editorial-copy { padding: 0; }
  .page-hero { padding: 48px 0; }
  .compact-hero h1, .form-hero h1, .page-hero h1 { font-size: clamp(2.4rem, 9.8vw, 3.8rem); }
  .page-hero .hero-lead { margin-top: 16px; }
  .filter-row { gap: 6px 22px; margin-bottom: 28px; }
  .product-page { padding-top: 36px; }
  .card-form, .auth-card, .legal-document { padding: 22px 18px; }
  .form-layout { gap: 28px; }
  .form-grid, .form-grid > *, .form-step > div { min-width: 0; }
  .form-step { gap: 12px; }
  .form-step > span { flex: 0 0 30px; }
  .form-step h2 { font-size: 1.6rem; }
  .form-aside { padding: 24px; }
  .gift-order-box, .rush-order-box, .legal-consent { padding: 14px; }
  .empty-state { padding: 28px 20px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .site-footer { padding-top: 46px; }
  .footer-bottom { margin-top: 30px; }
  .mobile-order-cta { display: none; }
  .analytics-consent { bottom: 12px; padding: 17px; }
  .analytics-consent-actions { display: grid; grid-template-columns: 1fr; }
  .analytics-consent-actions .button { min-width: 0; }
  .artwork-dialog { padding-inline: 10px; }
}

/* Edition 03: graphic, tactile, deliberately asymmetric. */
.page-loader { display: none; }
.has-loader-js .page-loader { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; overflow: hidden; isolation: isolate; background: var(--wine-dark); color: var(--paper); transition: clip-path .64s cubic-bezier(.76,0,.24,1), visibility .64s step-end; }
.has-loader-js .page-loader::before { content: ''; position: absolute; z-index: -1; inset: -20%; background: repeating-linear-gradient(106deg, transparent 0 17px, rgb(255 252 245 / 8%) 18px 19px, transparent 20px 42px), #8a4034; transform: skewX(-18deg) translateX(-12%); animation: loader-brush .78s cubic-bezier(.76,0,.24,1) both; }
.has-loader-js .page-loader::after { content: 'ручная работа\A с историей'; white-space: pre; position: absolute; right: clamp(24px, 6vw, 100px); bottom: clamp(28px, 8vh, 80px); font: italic clamp(1rem, 2vw, 1.65rem)/1.18 var(--serif); color: rgb(255 252 245 / 62%); animation: loader-note .65s .18s var(--ease) both; }
.page-loader-mark { position: relative; display: grid; justify-items: start; gap: 0; min-width: min(86vw, 780px); color: var(--paper); animation: loader-rise .8s .08s cubic-bezier(.22,1,.36,1) both; }
.page-loader-mark span { font: clamp(4.5rem, 13vw, 11rem)/.74 var(--serif); letter-spacing: -.085em; }
.page-loader-mark em { margin-left: clamp(34px, 10vw, 150px); color: #e5bf9d; font: italic clamp(4.2rem, 12vw, 10rem)/.78 var(--serif); letter-spacing: -.1em; }
.page-loader-mark i { width: clamp(90px, 16vw, 190px); height: 2px; margin: 23px 0 15px clamp(5px, 2vw, 18px); background: currentColor; transform-origin: left; animation: loader-line .56s .45s var(--ease) both; }
.page-loader-mark p { margin: 0 0 0 clamp(5px, 2vw, 18px); font-size: .62rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; animation: loader-note .5s .48s var(--ease) both; }
.loader-ornament { position: absolute; width: min(48vw, 540px); right: 4vw; top: 12vh; overflow: visible; transform: rotate(-9deg); }
.loader-ornament path { fill: none; stroke: #e5bf9d; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.loader-ornament .ornament-stem { stroke-dasharray: 360; stroke-dashoffset: 360; animation: ornament-draw 1.15s .1s cubic-bezier(.65,0,.35,1) forwards; }
.loader-ornament .ornament-leaf { fill: #fffcf5; stroke: #fffcf5; transform-origin: center; opacity: 0; animation: ornament-bloom .44s cubic-bezier(.2,1,.3,1) forwards; }
.loader-ornament .leaf-one { animation-delay: .62s; }
.loader-ornament .leaf-two { animation-delay: .88s; }
.loader-ornament .ornament-berry { fill: #d96f4c; stroke: #fffcf5; stroke-width: 2; opacity: 0; transform-origin: center; animation: ornament-bloom .34s cubic-bezier(.2,1,.3,1) forwards; }
.loader-ornament .berry-one { animation-delay: .76s; }.loader-ornament .berry-two { animation-delay: .88s; }.loader-ornament .berry-three { animation-delay: 1.02s; }
.has-loader-js .page-loader.is-ready { clip-path: inset(0 0 100% 0); visibility: hidden; pointer-events: none; }
.has-loader-js .page-loader.is-leaving { clip-path: inset(0); }
@keyframes loader-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@keyframes loader-brush { from { transform: skewX(-18deg) translateX(-58%); } to { transform: skewX(-18deg) translateX(-12%); } }
@keyframes loader-line { from { transform: scaleX(0); } to { transform: none; } }
@keyframes loader-note { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes ornament-draw { to { stroke-dashoffset: 0; } }
@keyframes ornament-bloom { from { opacity: 0; transform: scale(.25); } to { opacity: 1; transform: none; } }
.atelier-home { position: relative; isolation: isolate; overflow: clip; }
.atelier-home::before { content: ''; position: absolute; z-index: -1; width: min(36vw, 520px); aspect-ratio: 1; right: -9vw; top: 8%; border-radius: 47% 53% 58% 42% / 41% 44% 56% 59%; background: #ead6c4; opacity: .62; }
.atelier-home::after { content: '✦'; position: absolute; z-index: -1; left: 46%; top: 18%; color: var(--wine); font-size: clamp(4rem, 8vw, 8rem); opacity: .12; transform: rotate(-16deg); }
.hero-copy { position: relative; }
.atelier-mark { display: flex; align-items: center; gap: 10px; margin-top: 44px; color: var(--wine); width: fit-content; transform: rotate(-5deg); transform-origin: left; }
.atelier-mark img { width: 32px; height: 32px; border-radius: 9px; box-shadow: 3px 3px 0 rgb(138 64 52 / 14%); }
.atelier-mark i { width: 42px; height: 1px; background: currentColor; }
.atelier-mark small { font-size: .57rem; font-weight: 700; letter-spacing: .12em; line-height: 1.25; text-transform: uppercase; }
.hero-copy h1 { max-width: 760px; }
.hero-copy h1 em { display: inline-block; position: relative; }
.hero-copy h1 em::after { content: ''; position: absolute; left: 2%; right: -4%; bottom: -.05em; height: .12em; border-radius: 50%; background: #d69f75; z-index: -1; transform: rotate(-1.8deg); opacity: .65; }
.work-composition .hero-work-link { position: relative; transition: transform .7s var(--ease), box-shadow .7s var(--ease); }
.work-composition .hero-work-link::before { content: '01'; position: absolute; left: -34px; top: 14px; color: var(--wine); font-family: var(--serif); font-size: 1rem; font-style: italic; }
.work-composition .hero-work-link::after { content: ''; position: absolute; inset: 17px -17px -17px 17px; z-index: -1; border: 1px solid var(--wine); opacity: .38; }
.hero-small-work::before { content: 'Деталь'; display: block; color: var(--wine); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 7px; }
.hero-caption { letter-spacing: .025em; }
.selected-works { position: relative; overflow: clip; }
.selected-works::after { content: 'Соня Август'; position: absolute; z-index: -1; right: -1.7rem; bottom: 1.5rem; color: var(--wine); font-family: var(--serif); font-size: clamp(5rem, 12vw, 13rem); font-style: italic; line-height: 1; opacity: .045; white-space: nowrap; }
.gallery-grid .product-card { position: relative; }
.gallery-grid .product-card-body .eyebrow { margin-top: 3px; }
.gallery-grid .product-card:hover .product-card-body h3 a { color: var(--wine); }
.gallery-grid .product-card h3 a { transition: color .25s ease; }
.product-image::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg, rgb(255 255 255 / 18%), transparent 28%, transparent 74%, rgb(54 39 31 / 9%)); mix-blend-mode: soft-light; }
.catalog-heading h1 em { position: relative; z-index: 0; }
.catalog-heading h1 em::after { content: ''; position: absolute; z-index: -1; left: -2%; right: -3%; bottom: .03em; height: .1em; background: #d69f75; opacity: .55; transform: rotate(-1.5deg); }
.catalog-margin-note { border-bottom: 1px solid var(--wine); padding-bottom: 8px; }
.story-section { position: relative; overflow: clip; }
.story-section::after { content: '✦'; position: absolute; right: 8%; bottom: -3.5rem; color: var(--wine); font-size: 12rem; opacity: .1; }
.process-list li { transition: padding-left .35s var(--ease), border-color .35s ease; }
.process-list li:hover { padding-left: 12px; border-color: var(--wine); }
.editorial-grid { position: relative; }
.editorial-grid::after { content: 'портрет художницы'; position: absolute; left: 3%; bottom: -26px; color: var(--wine); font: italic 1.05rem var(--serif); transform: rotate(-4deg); }
.editorial-image::after { content: '✦'; position: absolute; right: -20px; top: -30px; color: #d69f75; font-size: 3rem; }
.editorial-image { position: relative; }
.button-primary { box-shadow: 4px 4px 0 rgb(53 46 41 / 16%); }
.button-primary:hover { box-shadow: 1px 1px 0 rgb(53 46 41 / 16%); transform: translate(2px, 2px); }
.button-secondary { transition: color .25s ease, border-color .25s ease, transform .25s var(--ease); }
.button-secondary:hover { transform: translateX(6px); }
.artwork-pointer { position: fixed; z-index: 1501; display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; color: var(--paper); background: var(--wine-dark); font: italic .73rem var(--serif); letter-spacing: .02em; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.7); transition: opacity .2s ease, transform .25s var(--ease); mix-blend-mode: multiply; }
.artwork-pointer.is-visible { opacity: .94; transform: translate(-50%, -50%) scale(1); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .work-composition .hero-work-link:hover { transform: rotate(.3deg) translateY(-9px); box-shadow: 0 22px 30px rgb(67 41 27 / 16%); }
  [data-gallery] .product-image:hover { cursor: none; }
}
@media (max-width: 680px) {
  .atelier-home::before { width: 64vw; right: -25vw; top: 31%; }
  .atelier-home::after { left: auto; right: 2%; top: 26%; font-size: 4rem; }
  .atelier-mark { margin-top: 28px; }
  .work-composition .hero-work-link::before { left: -19px; font-size: .86rem; }
  .work-composition .hero-work-link::after { inset: 10px -10px -10px 10px; }
  .editorial-grid::after { bottom: -17px; left: 5%; }
  .story-section::after { right: 4%; font-size: 8rem; }
  .selected-works::after { display: none; }
}
@media (max-width: 360px) { .product-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
  .page-loader { display: none !important; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Edition 02: a working artist's album, not a uniform store shelf. */
.site-header { background: rgb(246 241 231 / 97%); }
.brand { min-width: 0; text-decoration: none; }
.brand-symbol { width: 38px; height: 38px; flex: 0 0 auto; transition: transform .45s var(--ease); }
.brand-wordmark { position: relative; display: grid; width: 136px; gap: 2px; color: var(--ink); line-height: 1; }
.brand-wordmark::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 74%; height: 1px; background: var(--wine); transform-origin: left; transition: transform .35s var(--ease); }
.brand-wordmark strong { display: flex; align-items: baseline; gap: 4px; font: 400 clamp(1.38rem, 1.7vw, 1.76rem)/.82 var(--serif); letter-spacing: -.075em; white-space: nowrap; }
.brand-wordmark strong span { letter-spacing: -.1em; }
.brand-wordmark strong em { color: var(--wine); font-style: italic; font-weight: 400; letter-spacing: -.12em; transform: translateY(1px); }
.brand-wordmark small { order: -1; margin: 0 0 1px 1px; color: var(--muted); font: 700 .47rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.brand:hover .brand-wordmark::after { transform: scaleX(1.28); }
.brand:hover .brand-symbol { transform: rotate(14deg) scale(1.08); }
.footer-brand .brand-wordmark { width: 162px; }
.footer-brand .brand-symbol { width: 42px; height: 42px; }
.footer-brand .brand-wordmark strong { font-size: 2rem; }
.footer-brand .brand-wordmark small { font-size: .48rem; }

/* Edition 04: calm forms, vivid editorial moments. */
.page-hero:not(.catalog-heading) .container { position: relative; }
.page-hero:not(.catalog-heading) .eyebrow { display: flex; align-items: center; gap: 10px; }
.page-hero:not(.catalog-heading) .eyebrow::after { content: ''; display: inline-block; width: 32px; height: 1px; background: currentColor; opacity: .65; }
.form-hero { overflow: hidden; isolation: isolate; }
.form-hero .container { overflow: clip; }
.form-hero .container::after { content: 'идея\A →\A работа'; white-space: pre; position: absolute; right: -1%; bottom: -14px; color: var(--wine); font: italic clamp(2.4rem, 5vw, 5.8rem)/.75 var(--serif); opacity: .11; text-align: right; transform: rotate(-7deg); pointer-events: none; }
.form-layout { align-items: start; }
.card-form { position: relative; border-top: 3px solid var(--wine); }
.card-form::before { content: 'заявка'; position: absolute; right: 20px; top: 17px; color: var(--wine); font: italic .9rem var(--serif); transform: rotate(-5deg); opacity: .72; }
.form-step h2 { letter-spacing: -.04em; }
.order-canvas { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 24px; margin: -2px 0 34px; padding: 28px 30px 24px; overflow: hidden; color: var(--paper); background: var(--wine-dark); }
.order-canvas::after { content: '✦'; position: absolute; right: 24%; bottom: -42px; color: #e5bf9d; font: 8rem/.8 var(--serif); opacity: .22; transform: rotate(-13deg); }
.order-canvas-copy { position: relative; z-index: 1; max-width: 460px; }
.order-canvas .eyebrow { color: #e5bf9d; margin-bottom: 15px; }
.order-canvas h2 { margin: 0; color: var(--paper); font-size: clamp(2.05rem, 3.3vw, 3.3rem); line-height: .98; }
.order-canvas h2 em { color: #e5bf9d; }
.order-canvas p:last-child { max-width: 420px; margin: 17px 0 0; color: rgb(255 252 245 / 76%); font-size: .86rem; }
.order-canvas ol { position: relative; z-index: 1; display: grid; align-content: end; gap: 11px; min-width: 124px; margin: 0; padding: 0; list-style: none; font: italic 1.05rem var(--serif); }
.order-canvas li { display: flex; align-items: center; gap: 10px; color: #e5bf9d; }
.order-canvas li span { color: var(--paper); font-size: .7rem; font-style: normal; }
.card-form { box-shadow: 22px 24px 0 rgb(138 64 52 / 8%); }
.order-wizard { padding: 0; overflow: hidden; border-top: 0; background: #fffcf5; }
.order-progress { display: flex; align-items: center; gap: 8px; padding: 18px 30px; background: #2f2725; }
.order-progress button { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; background: transparent; color: rgb(255 252 245 / 48%); font: 700 .6rem var(--sans); letter-spacing: .11em; text-transform: uppercase; cursor: default; }
.order-progress button b { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid currentColor; border-radius: 50%; font: 400 .67rem var(--serif); }
.order-progress button.is-active { color: #e5bf9d; }.order-progress button.is-done { color: #fffcf5; cursor: pointer; }
.order-progress i { width: min(4vw, 56px); height: 1px; background: rgb(255 252 245 / 22%); }
.order-wizard-step { padding: 34px; animation: wizard-step-in .42s var(--ease) both; }
.order-wizard-step[hidden] { display: none !important; }
.order-wizard .order-canvas { margin: -34px -34px 32px; }
.order-wizard .form-step { margin-top: 0; }
.order-wizard .form-grid { margin: 26px 0; }
.wizard-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 28px; }
.wizard-actions > span { color: var(--muted); font-size: .76rem; }
.wizard-actions .button { min-width: 172px; }.wizard-actions .button b { margin-left: 8px; font-size: 1rem; }
.idea-prompts { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 12px; }
.idea-prompts button { border: 1px solid #cbb9a5; border-radius: 999px; padding: 8px 12px; background: #f7f1e7; color: var(--wine); font: italic .86rem var(--serif); cursor: pointer; transition: transform .2s var(--ease), background .2s ease; }
.idea-prompts button:hover { background: #e5bf9d; transform: translateY(-2px); }
.idea-field { margin-top: 0; }
.order-wizard textarea { font-size: 1rem; line-height: 1.6; background-image: none; }
.order-wizard input[type='file'] { padding: 16px 12px; border: 1px dashed #b79678; background: #fffaf1; }
@keyframes wizard-step-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
.card-form > label, .card-form > .form-grid, .card-form > .gift-order-box, .card-form > .rush-order-box { position: relative; }
.card-form > .form-grid { padding: 24px; background: #f7f1e7; border: 1px solid #e2d7c8; }
.card-form > .form-grid::before { content: 'заполните в своём темпе'; position: absolute; right: 17px; top: -10px; padding: 0 7px; background: #f7f1e7; color: var(--wine); font: italic .75rem var(--serif); }
.card-form > label { display: block; padding: 24px; background: #f7f1e7; border: 1px solid #e2d7c8; }
.card-form textarea { min-height: 190px; resize: vertical; background-image: linear-gradient(transparent 31px, rgb(138 64 52 / 10%) 32px); background-size: 100% 32px; line-height: 32px; }
.gift-order-box, .rush-order-box { border-left: 3px solid #d69f75; box-shadow: none; }
.filter-row { scroll-margin-top: 100px; }
.filter-row .filter-pill { transition: color .18s ease, border-color .18s ease; }
.gallery-grid .product-card[hidden] { display: none !important; }
.form-aside { position: sticky; top: 120px; overflow: hidden; }
.form-aside::after { content: 'Соня\A Август'; white-space: pre; position: absolute; z-index: 0; right: -4px; bottom: 10px; color: rgb(255 252 245 / 9%); font: italic 3.6rem/.72 var(--serif); transform: rotate(-8deg); }
.form-aside > * { position: relative; z-index: 1; }
.product-detail-grid { align-items: start; }
.product-info { position: relative; }
.product-info::before { content: 'авторская\A работа'; white-space: pre; position: absolute; right: 0; top: -36px; color: var(--wine); font: italic .92rem/1 var(--serif); opacity: .72; transform: rotate(-5deg); }
.product-info h1 { max-width: 680px; letter-spacing: -.06em; }
.product-price { font-family: var(--serif); color: var(--wine); letter-spacing: -.04em; }
.artwork-zoom { border: 10px solid var(--paper); box-shadow: 0 16px 36px rgb(63 42 29 / 9%); }
.children-rhythm { position: relative; overflow: hidden; background: #e8ded0; }
.children-rhythm::after { content: 'пробовать\A придумывать\A создавать'; white-space: pre; position: absolute; right: 4%; top: 50%; color: var(--wine); font: italic clamp(2.8rem, 6vw, 6.5rem)/.73 var(--serif); opacity: .08; transform: translateY(-50%) rotate(-7deg); pointer-events: none; }
.children-rhythm-grid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 7%; z-index: 1; }
.children-rhythm-grid > div { padding-top: 18px; border-top: 1px solid rgb(138 64 52 / 46%); }
.children-rhythm-grid span { color: var(--wine); font: italic 1rem var(--serif); }
.children-rhythm-grid h2 { margin: 34px 0 14px; font-size: clamp(2rem, 3vw, 3.2rem); }
.children-rhythm-grid p { max-width: 310px; color: var(--muted); }
.auth-card { border-top: 3px solid var(--wine); }
.account-security-box, .account-order { border-left: 2px solid var(--wine); }
.admin-heading h1 { letter-spacing: -.055em; }
.stats-grid article { border-top: 3px solid var(--wine); background: var(--paper); }
.stats-grid article:nth-child(2) { border-top-color: #b69d72; }
.stats-grid article:nth-child(3) { border-top-color: #70665d; }
.stats-grid article:nth-child(4) { border-top-color: #d69f75; }
.admin-panel { border-top: 3px solid var(--wine-dark); }
.about-approach { position: relative; }
.about-materials { display: flex; align-items: center; gap: 10px; margin-top: 34px; color: var(--wine); font: italic 1.05rem var(--serif); }
.about-quote .quote-block { position: relative; }
.about-margin-note { position: absolute; right: 3%; bottom: -18px; margin: 0; color: rgb(255 252 245 / 76%); font: italic 1.25rem/1.15 var(--serif); text-align: right; transform: rotate(-6deg); }
.about-materials i { width: 24px; height: 1px; background: currentColor; opacity: .6; }
.delivery-quick-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 42px 0 30px; padding-top: 22px; border-top: 1px solid var(--line); }
.delivery-quick-notes div { display: grid; grid-template-columns: 25px 1fr; gap: 2px 10px; }
.delivery-quick-notes span { grid-row: span 2; color: var(--wine); font: italic 1rem var(--serif); }
.delivery-quick-notes strong { font: 400 1.1rem var(--serif); color: var(--ink); }
.delivery-quick-notes p { grid-column: 2; margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.45; }
@media (max-width: 1150px) {
  .main-nav { inset: 80px 18px auto; padding: 16px 20px 22px; border: 0; border-top: 2px solid var(--wine); background: #fffcf5; box-shadow: 0 18px 42px rgb(53 46 41 / 15%); gap: 0; }
  .main-nav a, .main-nav .nav-logout-button { position: relative; display: flex; align-items: center; min-height: 52px; padding: 0; border-bottom: 1px solid var(--line); font: 400 1.22rem/1 var(--serif); letter-spacing: -.025em; }
  .main-nav a::before { content: '↗'; margin-right: 10px; color: var(--wine); font: italic .95rem var(--serif); opacity: 0; transform: translateX(-4px); transition: opacity .18s ease, transform .18s ease; }
  .main-nav a:hover::before, .main-nav a[aria-current='page']::before { opacity: 1; transform: none; }
  .main-nav a::after { display: none; }
  .main-nav .nav-accent { color: var(--wine); }
  .nav-toggle { gap: 10px; font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
}
@media (max-width: 900px) {
  .form-aside { position: static; }
  .form-aside::after { display: none; }
  .form-hero .container::after { display: none; }
  .loader-ornament { width: 68vw; right: -12vw; top: 9vh; }
  .order-canvas { grid-template-columns: 1fr; }
  .order-canvas ol { grid-template-columns: repeat(3, 1fr); min-width: 0; }
}
@media (max-width: 680px) {
  .brand-wordmark { width: 118px; }
  .brand-symbol { width: 33px; height: 33px; }
  .brand-wordmark strong { font-size: 1.46rem; }
  .brand-wordmark small { font-size: .42rem; }
  .form-hero .container::after { right: 0; font-size: 3.2rem; }
  .card-form::before { right: 17px; }
  .product-info::before { top: -25px; font-size: .78rem; }
  .artwork-zoom { border-width: 7px; }
  .children-rhythm-grid { grid-template-columns: 1fr; gap: 34px; }
  .children-rhythm-grid h2 { margin: 16px 0 8px; }
  .delivery-quick-notes { grid-template-columns: 1fr; }
  .order-canvas { margin-inline: -4px; padding: 24px 20px 20px; }
  .order-canvas ol { font-size: .9rem; }
  .about-margin-note { position: static; margin-top: 28px; text-align: left; transform: none; }
  .loader-ornament { width: 82vw; right: -23vw; top: 7vh; }
  .order-progress { overflow-x: auto; padding: 15px 18px; }.order-progress button span { display: none; }.order-progress i { min-width: 17px; }
  .order-wizard-step { padding: 22px 18px; }.order-wizard .order-canvas { margin: -22px -18px 25px; }
  .wizard-actions { align-items: stretch; }.wizard-actions > span { display: none; }.wizard-actions .button { min-width: 0; flex: 1; padding-inline: 12px; }
}
.hero h1 em, .catalog-heading h1 em { font-weight: 400; color: var(--wine); }
.hero h1 { font-size: clamp(3.4rem, 5.5vw, 6.25rem); line-height: 1.03; }
.hero-grid { padding-block: 84px 96px; gap: 5%; grid-template-columns: 1fr 1fr; }
.hero-notes { border-left: 1px solid var(--wine); padding-left: 16px; }
.hero-notes span::before { content: none; }
.hero-art::before { content: none; }
.work-composition { padding: 0 0 84px 38px; }
.work-composition .hero-work-link { width: 88%; margin-left: auto; transform: rotate(2deg); background: #e8ded0; padding: 16px; }
.work-composition .hero-uploaded-image { padding: 0; aspect-ratio: 4/5; max-height: 540px; }
.hero-small-work { position: absolute; left: 0; bottom: 44px; width: 47%; padding: 12px; background: var(--paper); transform: rotate(-6deg); box-shadow: 0 12px 25px rgb(62 37 20 / 10%); transition: transform .45s var(--ease); }
.hero-small-work img { width: 100%; aspect-ratio: 5/4; object-fit: contain; background: #eae5dc; }
.hero-small-work span { display: block; padding: 10px 2px 1px; font-size: .7rem; color: var(--ink); }
.hero-caption { font-size: .72rem; }
.work-composition .hero-caption { position: absolute; left: 52%; bottom: 0; display: block; padding-top: 0; }
.hero-caption span:last-child { display: block; color: var(--wine); font-family: var(--serif); font-size: 1.12rem; font-style: italic; margin-top: 7px; }
.catalog-heading { padding-block: 74px 64px; }
.catalog-heading .container { position: relative; }
.catalog-heading h1 { font-size: clamp(3.3rem, 6.1vw, 7rem); max-width: 1050px; }
.catalog-heading p:last-of-type { max-width: 470px; margin-top: 26px; }
.catalog-margin-note { position: absolute; right: 2%; bottom: 15px; max-width: 220px; color: var(--wine); font-family: var(--serif); font-size: 1.2rem; font-style: italic; transform: rotate(-5deg); }
.gallery-grid { grid-template-columns: 1.1fr .9fr; column-gap: 9%; row-gap: 80px; align-items: start; }
.gallery-grid .product-card:nth-child(even) { margin-top: 110px; }
.gallery-grid .product-card:nth-child(4n+3) { width: 88%; }
.gallery-grid .product-card:nth-child(4n) { width: 100%; }
.gallery-grid .product-image { background: #eae1d4; aspect-ratio: 5/4; }
.gallery-grid .product-card:nth-child(4n+1) .product-image { aspect-ratio: 1/1; }
.gallery-grid .product-card:nth-child(4n+2) .product-image { aspect-ratio: 4/5; background: #e4e5da; }
.gallery-grid .product-card:nth-child(4n+3) .product-image { background: #e9d9ca; }
.gallery-grid .product-card:nth-child(4n) .product-image { background: #e3e5e7; }
.gallery-grid .product-image img { padding: 22px; }
.gallery-grid .product-card-body { display: grid; grid-template-columns: 1fr auto; gap: 0 24px; }
.gallery-grid .product-card-body > * { grid-column: 1 / -1; }
.gallery-grid .product-card-body h3 { font-size: clamp(1.8rem, 2.6vw, 2.6rem); }
.gallery-grid .product-card-body > p:not(.eyebrow) { font-size: .92rem; max-width: 440px; }
.gallery-grid .product-card-footer { margin-top: 0; }
.work-index { font-family: var(--serif); color: var(--wine); font-size: 1rem; letter-spacing: 0; margin-right: 12px; }
.gallery-grid .availability { top: auto; right: 12px; bottom: 12px; background: var(--paper); }
.gallery-grid .art-view-hint { bottom: auto; top: 12px; }
.story-section { background: #e8ded0; }
.story-grid { grid-template-columns: 30px 1.1fr .9fr; gap: 5%; }
.story-grid h2 { font-size: clamp(2.5rem, 3.5vw, 4rem); }
.story-grid > div:nth-child(2) p:not(.eyebrow), .process-list p { color: var(--muted); }
.process-list li { border-color: #c8bca9; }
.story-number { font-style: italic; }
.editorial-image { transform: rotate(-2deg); border: 12px solid var(--paper); }
.editorial-copy h2 { font-size: clamp(3rem, 5.5vw, 6rem); color: var(--wine); font-style: italic; }
.product-image, .artwork-zoom, .product-gallery img { background: #e9e0d4; }
.gift-promise, .gift-order-box, .rush-order-box, .quiet-order-terms { background: #f0e8db; }
.site-footer { background: #e9e0d2; color: #66594f; }
.footer-bottom { border-color: #cfc0ad; }
.button-secondary:hover, .button-outline-dark:hover, .button-outline:hover { background: #eaddc9; }
.reviews-section .button-secondary:hover, .success-page .button-secondary:hover { background: #61463b; }
.form-step > span { border-color: #c9b5a0; }
:focus-visible { outline-color: var(--wine); }
input:focus, textarea:focus, select:focus { border-color: var(--wine); box-shadow: 0 0 0 2px rgb(138 64 52 / 15%); }
::selection { background: #ead1b8; color: var(--ink); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-small-work:hover { transform: rotate(-2deg) translateY(-5px); }
}
@media (max-width: 1150px) {
  .hero h1 { font-size: clamp(3rem, 5.8vw, 5rem); }
  .story-grid { grid-template-columns: 1fr 1fr; }
  .catalog-margin-note { max-width: 180px; font-size: 1rem; }
  .gallery-grid { column-gap: 6%; }
}
@media (max-width: 680px) {
  .hero-grid { grid-template-columns: 1fr; padding-block: 42px 58px; gap: 44px; }
  .hero h1 { font-size: clamp(2.9rem, 12.3vw, 4.8rem); }
  .hero-art { width: 100%; }
  .work-composition { padding-left: 20px; padding-bottom: 90px; }
  .work-composition .hero-work-link { padding: 10px; }
  .hero-small-work { width: 48%; padding: 8px; left: 3px; bottom: 42px; }
  .hero-small-work span { font-size: .64rem; }
  .hero-caption { font-size: .66rem; }
  .catalog-heading { padding-block: 44px; }
  .catalog-heading h1 { font-size: clamp(2.65rem, 11vw, 4.2rem); }
  .catalog-margin-note { position: static; display: block; max-width: none; margin-top: 24px; transform: none; font-size: 1rem; }
  .gallery-grid { grid-template-columns: 1fr; gap: 48px; }
  .gallery-grid .product-card:nth-child(n) { width: 100%; margin-top: 0; }
  .gallery-grid .product-card:nth-child(even) { width: 92%; margin-left: auto; }
  .gallery-grid .product-image img { padding: 16px; }
  .gallery-grid .product-card:nth-child(n) .product-image { aspect-ratio: 1/1; }
  .gallery-grid .product-card-body h3 { font-size: 1.85rem; }
  .gallery-grid .product-card-body > p:not(.eyebrow) { font-size: .9rem; }
  .gallery-grid .product-card-footer { flex-direction: row; align-items: center; }
  .gallery-grid .availability { font-size: .7rem; padding: 5px 8px; }
  .gallery-grid .gift-card-note { font-size: .75rem; }
  .gallery-grid .order-policy-note { font-size: .7rem; }
  .story-grid { grid-template-columns: 1fr; gap: 34px; }
  .editorial-image { width: 93%; margin-inline: auto; border-width: 9px; }
  .editorial-copy h2 { font-size: 3.7rem; }
}

/* Edition 05: the quiet pages get the same hand-made rhythm as the workshop. */
.auth-page.atelier-auth-page { position:relative; isolation:isolate; min-height:76vh; overflow:hidden; padding:clamp(48px,8vw,100px) 20px; background:#ede4d6; }
.auth-page.atelier-auth-page::before { content:''; position:absolute; z-index:-2; inset:-25% -10%; background:repeating-radial-gradient(ellipse at 12% 9%, transparent 0 42px, rgb(138 64 52 / 6%) 43px 44px, transparent 45px 82px); transform:rotate(-8deg); }
.auth-page.atelier-auth-page::after { content:'соня\A август'; white-space:pre; position:absolute; z-index:-1; right:clamp(10px,7vw,100px); bottom:-4px; color:rgb(138 64 52 / 9%); font:italic clamp(4rem,12vw,12rem)/.72 var(--serif); letter-spacing:-.1em; transform:rotate(-8deg); pointer-events:none; }
.atelier-auth-card { position:relative; overflow:hidden; width:min(500px,100%); padding:clamp(28px,4vw,52px); border:0; border-top:2px solid var(--wine); background:#fffaf1; box-shadow:17px 19px 0 rgb(138 64 52 / 10%); }
.atelier-review-card { width:min(760px,100%); }
.atelier-auth-card::after { content:''; position:absolute; right:-68px; bottom:-72px; width:165px; height:165px; border:1px solid #c8af8c; border-radius:52% 48% 45% 55%; opacity:.5; transform:rotate(26deg); pointer-events:none; }
.atelier-auth-sign { display:flex; align-items:center; gap:10px; margin:0 0 32px; color:var(--wine); }
.atelier-auth-sign span { display:grid; place-items:center; width:38px; aspect-ratio:1; border:1px solid currentColor; border-radius:48% 52% 54% 46%; font:italic 1rem var(--serif); transform:rotate(-8deg); }
.atelier-auth-sign i { width:32px; height:1px; background:currentColor; opacity:.65; }
.atelier-auth-sign em { font:italic .9rem var(--serif); }
.atelier-auth-card > .eyebrow { color:var(--wine); }
.atelier-auth-card h1 { max-width:560px; margin-bottom:12px; font-size:clamp(2.75rem,5.4vw,4.5rem); line-height:.95; letter-spacing:-.06em; }
.atelier-auth-card > p:not(.eyebrow):not(.auth-switch):not(.auth-secondary) { max-width:480px; color:var(--muted); font-size:.9rem; line-height:1.65; }
.atelier-auth-form { position:relative; display:grid; gap:20px; margin-top:32px; padding-top:26px; border-top:1px solid #dfd1be; }
.atelier-auth-form label { display:grid; gap:9px; color:#66594f; font-size:.72rem; font-weight:600; letter-spacing:.025em; }
.atelier-auth-form input:not([type=checkbox]):not([type=hidden]), .atelier-auth-form textarea, .atelier-auth-form select { min-height:52px; padding:13px 14px; border:1px solid #d9cbb7; border-radius:3px; background:#fffdf8; font:400 1rem/1.35 var(--sans); }
.atelier-auth-form textarea { min-height:165px; resize:vertical; font:1.04rem/1.65 var(--serif); }
.atelier-auth-form label:focus-within { color:var(--wine); }
.atelier-auth-form input:focus, .atelier-auth-form textarea:focus, .atelier-auth-form select:focus { border-color:var(--wine); box-shadow:0 0 0 3px rgb(138 64 52 / 12%); outline:0; }
.atelier-auth-form .button { margin-top:8px; min-height:56px; background:var(--wine); border-color:var(--wine); }
.atelier-auth-form .button:hover { background:var(--wine-dark); border-color:var(--wine-dark); }
.atelier-auth-form .legal-consent { display:grid; grid-template-columns:20px 1fr; gap:12px; align-items:start; padding:14px 0 0; border-top:1px solid #dfd1be; font-size:.69rem; font-weight:400; line-height:1.65; }
.atelier-auth-form .legal-consent input { width:18px; height:18px; margin-top:2px; }
.atelier-auth-form .legal-consent a { color:var(--wine); font-weight:600; }
.atelier-auth-card .auth-secondary, .atelier-auth-card .auth-switch { position:relative; z-index:1; margin-top:22px; font-size:.79rem; }
.atelier-auth-card .auth-switch a, .atelier-auth-card .auth-secondary a { color:var(--wine); text-underline-offset:5px; }
.atelier-review-card .review-consent-details { padding:24px; border:1px solid #ded0bc; background:#f4eadb; }
.atelier-review-card .review-consent-details h2 { margin:0 0 8px; font-size:1.8rem; }
.atelier-review-card .review-consent-details > p { font-size:.78rem; color:var(--muted); }
.atelier-review-card .legal-data { margin:18px 0; font-size:.78rem; }

.success-page.atelier-success { position:relative; overflow:hidden; min-height:76vh; padding:clamp(80px,12vw,150px) 0; background:#3e302a; text-align:left; }
.success-page.atelier-success::before { content:''; position:absolute; inset:-30% 42% -20% -22%; border:1px solid rgb(229 191 157 / 30%); border-radius:49% 51% 44% 56%; transform:rotate(-22deg); }
.success-page.atelier-success::after { content:'готово'; position:absolute; right:clamp(22px,8vw,130px); bottom:clamp(22px,7vw,100px); color:rgb(229 191 157 / 22%); font:italic clamp(4rem,12vw,12rem)/.8 var(--serif); letter-spacing:-.1em; transform:rotate(-7deg); }
.atelier-success .container { position:relative; z-index:1; }
.atelier-success .success-mark { width:86px; margin:0 0 30px; border:0; color:#e5bf9d; font:italic 4.8rem/.8 var(--serif); }
.atelier-success .success-mark::before { content:'‹'; position:absolute; margin-left:-24px; color:rgb(229 191 157 / 45%); transform:rotate(32deg); }
.atelier-success .success-mark span { position:relative; }
.atelier-success h1 { max-width:780px; margin:0 0 24px; font-size:clamp(3.6rem,7vw,7.2rem); line-height:.9; letter-spacing:-.075em; }
.atelier-success p { max-width:630px; color:rgb(255 252 245 / 76%); line-height:1.75; }
.atelier-success .success-rush, .atelier-success .success-gift { max-width:610px; margin:20px 0; border:1px solid rgb(255 252 245 / 22%); border-radius:0; background:rgb(255 252 245 / 6%); }
.atelier-success .button-row { justify-content:flex-start; margin-top:36px; }

.legal-layout { align-items:start; }
.legal-document { position:relative; padding:clamp(30px,5vw,64px); border:0; border-top:2px solid var(--wine); background:#fffaf1; box-shadow:18px 20px 0 rgb(138 64 52 / 7%); }
.legal-document::before { content:'документ мастерской'; position:absolute; top:17px; right:25px; color:var(--wine); font:italic .73rem var(--serif); opacity:.7; transform:rotate(-5deg); }
.legal-document h2 { display:grid; grid-template-columns:auto 1fr; gap:15px; align-items:baseline; margin-top:45px; color:var(--ink); font-size:clamp(1.65rem,2.5vw,2.35rem); letter-spacing:-.04em; }
.legal-document h2::after { content:''; height:1px; background:#dfd1be; }
.legal-document h2:first-child { margin-top:0; }
.legal-document p, .legal-document li { max-width:780px; color:#5e574d; font-size:.92rem; line-height:1.8; }
.legal-document .legal-version { margin-top:45px; padding-top:18px; border-top:1px solid #dfd1be; font:italic .84rem var(--serif); }
.legal-nav { padding:28px 25px; border:0; border-top:2px solid #e5bf9d; border-radius:0; background:#3e302a; box-shadow:11px 12px 0 rgb(62 48 42 / 10%); }
.legal-nav h2 { font-size:2.15rem; color:#fffaf1; }
.legal-nav a { padding:12px 0; color:rgb(255 250 241 / 82%); font-size:.78rem; transition:padding .22s var(--ease),color .22s ease; }
.legal-nav a:hover { padding-left:8px; color:#e5bf9d; }
.delivery-quick-notes { margin-top:52px; padding:25px 0 0; }
.delivery-quick-notes div { padding:20px 0; border-top:1px solid #dfd1be; }

@media (max-width:680px) {
  .auth-page.atelier-auth-page { padding:44px 12px 60px; }
  .atelier-auth-card { padding:28px 22px; box-shadow:9px 10px 0 rgb(138 64 52 / 10%); }
  .atelier-auth-card h1 { font-size:clamp(2.6rem,13vw,4rem); }
  .atelier-review-card .review-consent-details { padding:18px; }
  .success-page.atelier-success { padding:88px 0; }
  .atelier-success h1 { font-size:clamp(3.4rem,15vw,5.4rem); }
  .legal-document { padding:31px 20px; box-shadow:9px 10px 0 rgb(138 64 52 / 7%); }
  .legal-document::before { top:12px; right:16px; font-size:.62rem; }
  .legal-document h2 { grid-template-columns:1fr; gap:8px; margin-top:36px; font-size:1.75rem; }
  .legal-document h2::after { width:46px; }
}

/* The cursor is an unobtrusive studio mark: mouse devices only, never touch. */
@media (hover:hover) and (pointer:fine) {
  body { cursor:url('../img/atelier-cursor.svg') 5 4, auto; }
  a, button, summary, select, input[type='checkbox'], input[type='radio'], input[type='file'], label[for] { cursor:url('../img/atelier-cursor.svg') 5 4, pointer; }
  input, textarea { cursor:text; }
}

/* The transition is a fresh sheet and one brushstroke, rather than a separate screen. */
.has-loader-js .page-loader { background:#ede4d6; color:#3e302a; }
.has-loader-js .page-loader::before { inset:-16%; background:repeating-radial-gradient(ellipse at 10% 86%, transparent 0 48px, rgb(138 64 52 / 7%) 49px 50px, transparent 51px 92px), #ede4d6; transform:rotate(-7deg) scale(1.12); animation:loader-paper .82s cubic-bezier(.76,0,.24,1) both; }
.has-loader-js .page-loader::after { content:'авторская мастерская'; right:clamp(24px,6vw,100px); bottom:clamp(28px,8vh,80px); color:rgb(62 48 42 / 56%); font:italic clamp(1rem,2vw,1.65rem)/1.18 var(--serif); }
.page-loader-mark { color:#3e302a; }
.page-loader-mark span { font-size:clamp(4.4rem,12vw,10.5rem); }
.page-loader-mark em { color:var(--wine); }
.page-loader-mark i { background:var(--wine); height:1px; }
.page-loader-mark p { color:var(--wine); letter-spacing:.18em; }
.loader-ornament path { stroke:#8a4034; stroke-width:4; }
.loader-ornament .ornament-berry { fill:#d49c68; stroke:#fffaf1; }
@keyframes loader-paper { from { transform:rotate(-7deg) scale(1.12) translateX(-18%); } to { transform:rotate(-7deg) scale(1.12); } }
