@tailwind base; @tailwind components; @tailwind utilities; :root { font-family: 'Avenir Next', Avenir, 'Segoe UI', sans-serif; color: #f6eee2; background: #17131b; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } * { box-sizing: border-box; } html, body, #root { min-width: 320px; min-height: 100%; margin: 0; } body { min-height: 100svh; } button, a { -webkit-tap-highlight-color: transparent; } button { border: 0; font: inherit; } button:focus-visible, a:focus-visible { outline: 2px solid #f5d58d; outline-offset: 5px; } a { color: inherit; text-decoration: none; } .display { font-family: Iowan Old Style, Baskerville, 'Times New Roman', serif; font-weight: 400; letter-spacing: -0.055em; } .experience-screen { width: 100%; } .intro-screen, .reveal-screen, .finish-screen { display: flex; flex: 1; width: 100%; max-width: 1320px; min-height: calc(100svh - clamp(48px, 8vw, 112px)); margin: 0 auto; flex-direction: column; justify-content: space-between; } .intro-screen__topline, .reveal-screen__topline, .content-screen__topline, .finish-screen__topline { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; } .brand-lockup { display: inline-flex; flex-direction: column; color: #f5d58d; font-size: 11px; font-weight: 700; letter-spacing: 0.11em; line-height: 0.95; text-transform: uppercase; } .brand-lockup span:last-child { color: #f6eee2; font-weight: 400; letter-spacing: 0.17em; } .brand-lockup--light { color: #ed9a79; } .brand-lockup--light span:last-child { color: #f6eee2; } .brand-lockup--ink { color: #b06c62; } .brand-lockup--ink span:last-child { color: #29232a; } .topline-note { color: rgba(246, 238, 226, 0.54); font-size: 10px; letter-spacing: 0.15em; line-height: 1.4; text-align: right; text-transform: uppercase; } .intro-screen__center { width: min(100%, 760px); margin: auto 0; padding: 9vh 0 8vh; } .eyebrow { margin: 0 0 25px; font-size: 10px; font-weight: 700; letter-spacing: 0.19em; line-height: 1.3; text-transform: uppercase; } .eyebrow--warm { color: #ed9a79; } .eyebrow--quiet { color: rgba(246, 238, 226, 0.54); } .eyebrow--ink { color: #a7655f; } .intro-screen__title { max-width: 820px; margin: 0; color: #f6eee2; font-size: clamp(72px, 12.5vw, 178px); line-height: 0.84; } .intro-screen__title em, .finish-screen h1 em, .content-screen h1 em { color: #ed9a79; font-style: italic; } .intro-screen__message { max-width: 350px; margin: 38px 0 34px; color: rgba(246, 238, 226, 0.68); font-size: clamp(17px, 2vw, 22px); font-weight: 300; letter-spacing: -0.02em; line-height: 1.45; } .primary-action, .ghost-action, .next-action { display: inline-flex; cursor: pointer; align-items: center; justify-content: space-between; gap: 28px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; line-height: 1; text-transform: uppercase; transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease; } .primary-action { min-width: 235px; padding: 8px 8px 8px 21px; background: #f6eee2; color: #29232a; } .primary-action:hover { background: #f5d58d; } .primary-action__icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #ed9a79; color: #29232a; } .primary-action__icon svg { width: 18px; height: 18px; } .intro-screen__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 24px; border-top: 1px solid rgba(246, 238, 226, 0.13); color: rgba(246, 238, 226, 0.4); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; } .intro-screen__footer strong { color: rgba(246, 238, 226, 0.72); font-weight: 500; } .reveal-screen__center { position: relative; display: flex; width: min(100%, 660px); margin: auto; flex-direction: column; align-items: center; padding: 8vh 0; text-align: center; } .reveal-screen__copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; } .reveal-screen__copy .eyebrow { margin-bottom: 20px; } .reveal-screen__copy h1 { max-width: 540px; margin: 0; color: #f6eee2; font-size: clamp(42px, 6vw, 78px); line-height: 0.94; } .reveal-screen__copy p:last-child { max-width: 320px; margin: 22px 0 0; color: rgba(246, 238, 226, 0.55); font-size: 15px; line-height: 1.5; } .reveal-seal { position: relative; z-index: 2; display: grid; width: clamp(136px, 20vw, 190px); height: clamp(136px, 20vw, 190px); margin-bottom: 58px; place-items: center; border: 1px solid rgba(246, 238, 226, 0.5); border-radius: 50%; background: rgba(43, 36, 67, 0.7); box-shadow: 0 0 0 12px rgba(246, 238, 226, 0.025), 0 20px 80px rgba(0, 0, 0, 0.22); } .reveal-seal__halo { position: absolute; inset: 14px; border: 1px dashed rgba(246, 238, 226, 0.3); border-radius: 50%; } .reveal-seal__mark { position: relative; margin-top: -7px; color: #f5d58d; font-family: Iowan Old Style, Baskerville, serif; font-size: 42px; font-style: italic; letter-spacing: -0.15em; } .reveal-seal__label { position: absolute; bottom: 31px; color: rgba(246, 238, 226, 0.55); font-size: 8px; letter-spacing: 0.19em; text-transform: uppercase; } .ghost-action { position: relative; z-index: 1; min-width: 225px; margin-top: 36px; padding: 16px 3px 16px 20px; border: 1px solid rgba(246, 238, 226, 0.28); background: transparent; } .ghost-action--light { color: #f6eee2; } .ghost-action:hover { border-color: rgba(246, 238, 226, 0.7); background: rgba(246, 238, 226, 0.08); } .ghost-action > span:last-child, .next-action > span:last-child { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 17px; font-weight: 300; letter-spacing: 0; line-height: 1; } .content-screen { display: flex; flex: 1; width: 100%; max-width: 1000px; min-height: calc(100svh - clamp(48px, 8vw, 112px)); margin: 0 auto; flex-direction: column; justify-content: space-between; } .content-screen__intro { margin-top: clamp(50px, 9vh, 100px); } .content-screen__intro .eyebrow { margin-bottom: 18px; } .content-screen h1 { margin: 0; color: #29232a; font-size: clamp(46px, 7.4vw, 90px); line-height: 0.9; } .progress-indicator { display: flex; align-items: center; gap: 18px; margin: clamp(38px, 7vh, 70px) 0 26px; } .progress-indicator__track { display: flex; width: 100%; max-width: 350px; gap: 5px; } .progress-indicator__segment { height: 2px; flex: 1; background: rgba(41, 35, 42, 0.16); transition: background-color 300ms ease; } .progress-indicator__segment.is-active { background: #a7655f; } .progress-indicator__count { color: rgba(41, 35, 42, 0.54); font-size: 10px; letter-spacing: 0.12em; white-space: nowrap; } .content-screen__item { width: 100%; max-width: 780px; min-height: 245px; } .content-screen__bottomline { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 28px; border-top: 1px solid rgba(41, 35, 42, 0.14); } .content-screen__bottomline > span { color: rgba(41, 35, 42, 0.48); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; } .next-action { min-width: 190px; padding: 7px 7px 7px 19px; background: #29232a; color: #f6eee2; } .next-action:hover { background: #a7655f; } .next-action > span:last-child { color: #f5d58d; } .finish-screen__center { display: flex; max-width: 700px; margin: auto 0; flex-direction: column; align-items: flex-start; padding: 7vh 0; } .finish-screen__spark { display: grid; width: 52px; height: 52px; margin-bottom: 34px; place-items: center; border: 1px solid rgba(245, 213, 141, 0.5); border-radius: 50%; color: #f5d58d; font-size: 22px; } .finish-screen h1 { margin: 0; color: #f6eee2; font-size: clamp(58px, 9.5vw, 126px); line-height: 0.86; } .finish-screen__message { max-width: 480px; margin: 38px 0 0; color: rgba(246, 238, 226, 0.66); font-size: clamp(17px, 2vw, 21px); font-weight: 300; line-height: 1.52; } .finish-screen__signature { margin: 34px 0 0; color: rgba(246, 238, 226, 0.45); font-family: Iowan Old Style, Baskerville, serif; font-size: 20px; line-height: 1.25; } .finish-screen__signature strong { color: #ed9a79; font-size: 27px; font-style: italic; font-weight: 400; } .finish-screen__replay { align-self: flex-start; margin-top: 0; } .confetti { position: absolute; z-index: 4; inset: 0; overflow: hidden; pointer-events: none; } .confetti__piece { position: absolute; display: block; border-radius: 999px; animation: confetti-fall 4.6s cubic-bezier(0.2, 0.7, 0.3, 1) infinite; opacity: 0; } @keyframes confetti-fall { 0% { opacity: 0; transform: translate3d(0, -40px, 0) rotate(0deg); } 12% { opacity: 0.9; } 75% { opacity: 0.85; } 100% { opacity: 0; transform: translate3d(20px, 88vh, 0) rotate(280deg); } } .request-state { display: flex; width: min(100%, 620px); margin: auto; flex-direction: column; align-items: flex-start; } .request-state .display { margin: 0; color: #f6eee2; font-size: clamp(55px, 9vw, 106px); line-height: 0.88; } .request-state > p:not(.eyebrow) { max-width: 400px; margin: 28px 0 32px; color: rgba(246, 238, 226, 0.6); font-size: 17px; line-height: 1.5; } .request-state--loading { align-items: center; text-align: center; } .request-state--loading .eyebrow { margin-top: 32px; } .request-state--loading .display { font-size: clamp(52px, 8vw, 92px); } @media (max-width: 640px) { .topline-note { max-width: 130px; font-size: 9px; } .intro-screen__center { padding: 14vh 0 10vh; } .intro-screen__title { font-size: clamp(65px, 19vw, 110px); } .intro-screen__message { margin-top: 30px; font-size: 17px; } .intro-screen__footer { align-items: flex-start; flex-direction: column; gap: 10px; } .reveal-screen__center { padding: 8vh 0; } .reveal-seal { margin-bottom: 44px; } .reveal-orbit { top: 7vh; width: min(84vw, 360px); height: min(84vw, 360px); } .reveal-orbit--inner { width: min(62vw, 270px); height: min(62vw, 270px); } .reveal-screen__copy h1 { font-size: clamp(40px, 11vw, 58px); } .content-screen__intro { margin-top: 58px; } .content-screen h1 { font-size: clamp(46px, 13vw, 72px); } .progress-indicator { margin-top: 42px; } .content-screen__item { min-height: 300px; } .content-screen__bottomline { align-items: flex-start; flex-direction: column; gap: 18px; } .next-action { width: 100%; } .finish-screen__center { padding: 9vh 0; } .finish-screen h1 { font-size: clamp(58px, 15.5vw, 96px); } .finish-screen__message { margin-top: 30px; font-size: 17px; } .request-state .display { font-size: clamp(53px, 15vw, 88px); } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; } } /* Studio and client-gallery surfaces */ .app-loading { display: grid; min-height: 100svh; place-items: center; background: #18151b; color: #f4eee4; } .app-loading__mark, .client-loading__mark { display: block; color: #efb084; font-family: Iowan Old Style, Baskerville, serif; font-size: 24px; font-style: italic; } .auth-shell { display: grid; min-height: 100svh; grid-template-columns: minmax(360px, 0.95fr) minmax(500px, 1.05fr); background: #ece8e1; color: #27232a; } .auth-shell__texture { position: absolute; z-index: 0; inset: 0 50% 0 0; background: #1b181e; } .auth-shell__brand, .auth-shell__aside, .auth-shell__panel { position: relative; z-index: 1; } .auth-shell__brand { position: absolute; top: 44px; left: clamp(24px, 5vw, 72px); display: flex; align-items: center; gap: 12px; color: #f5eee3; font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; } .platform-mark, .client-monogram, .studio-logo__mark, .client-brand__mark { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: Iowan Old Style, Baskerville, serif; font-size: 17px; font-style: italic; font-weight: 400; letter-spacing: -0.12em; } .auth-shell__aside { align-self: center; max-width: 500px; margin-left: clamp(24px, 10vw, 150px); padding: 100px 30px 70px 0; color: #f5eee3; } .platform-kicker, .studio-kicker, .client-kicker { margin: 0 0 20px; color: #c17d6d; font-size: 10px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.3; text-transform: uppercase; } .platform-kicker--accent { color: #bd7567; } .platform-display, .studio-display, .client-display { font-family: Iowan Old Style, Baskerville, 'Times New Roman', serif; font-weight: 400; letter-spacing: -0.065em; line-height: 0.88; } .auth-shell__aside h1 { margin: 0; font-size: clamp(68px, 8vw, 132px); } .platform-display em, .studio-display em, .client-display em { color: #ce816f; font-style: italic; } .auth-shell__aside > p:last-child { max-width: 260px; margin: 34px 0 0; color: rgba(245, 238, 227, 0.58); font-size: 16px; line-height: 1.5; } .auth-shell__panel { display: flex; min-height: 100svh; align-items: center; justify-content: center; padding: 60px clamp(24px, 8vw, 130px); background: #eeeae3; } .auth-card { width: min(100%, 430px); } .auth-card__heading h2 { margin: 0; font-size: clamp(53px, 6vw, 80px); line-height: 0.86; } .auth-card__heading > p:last-child { max-width: 370px; margin: 29px 0 0; color: rgba(39, 35, 42, 0.61); font-size: 15px; line-height: 1.5; } .auth-form { display: flex; margin-top: 42px; flex-direction: column; gap: 19px; } .auth-form label, .editor-fields label, .editor-fields__full, .editor-field-single, .editor-color-field { display: flex; flex-direction: column; gap: 9px; color: rgba(39, 35, 42, 0.68); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .auth-form input, .editor-fields input, .editor-fields textarea, .editor-field-single input, .editor-color-field input[type='url'] { width: 100%; border: 0; border-bottom: 1px solid rgba(39, 35, 42, 0.25); border-radius: 0; outline: 0; background: transparent; color: #27232a; font-size: 16px; font-weight: 400; letter-spacing: 0; padding: 8px 0 12px; text-transform: none; transition: border-color 180ms ease; } .auth-form input:focus, .editor-fields input:focus, .editor-fields textarea:focus, .editor-field-single input:focus { border-color: #ad695b; } .platform-button, .editor-button, .client-download-button { display: inline-flex; cursor: pointer; align-items: center; justify-content: space-between; gap: 23px; border: 0; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; line-height: 1; text-transform: uppercase; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; } .platform-button:hover, .editor-button:hover, .client-download-button:hover { transform: translateY(-2px); } .platform-button:disabled, .editor-button:disabled, .client-download-button:disabled { cursor: not-allowed; opacity: 0.5; transform: none; } .platform-button--dark { width: 100%; margin-top: 9px; padding: 18px 18px 18px 22px; background: #27232a; color: #f5eee3; } .platform-button--dark:hover { background: #ad695b; } .platform-button--dark > span:last-child, .platform-button--accent > span:last-child { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 16px; font-weight: 300; } .platform-button--accent { min-width: 160px; padding: 8px 8px 8px 18px; background: #ad695b; color: #fff8ed; } .platform-button--accent > span:last-child { color: #f4d5a0; } .form-error, .studio-alert { margin: 0; font-size: 12px; line-height: 1.45; } .form-error, .studio-alert--error, .client-form-error, .client-download-error { color: #a84f4a; } .auth-card__footer { margin-top: 30px; color: rgba(39, 35, 42, 0.52); font-size: 12px; } .auth-card__footer a, .inline-link { color: #9d5d54; font-weight: 700; } .studio-shell { display: flex; min-height: 100svh; background: #e8e4dd; color: #2b272d; } .studio-sidebar { display: flex; width: 258px; flex: 0 0 258px; padding: 36px 27px 28px; flex-direction: column; background: #211d24; color: #eee8df; } .studio-logo { display: inline-flex; align-items: center; gap: 11px; color: #f2ece1; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .studio-logo small { display: block; margin-top: 4px; color: rgba(242, 236, 225, 0.4); font-size: 8px; font-weight: 400; letter-spacing: 0.17em; } .studio-logo__mark { width: 32px; height: 32px; color: #efaa82; font-size: 15px; } .studio-sidebar__label { margin: 92px 0 16px; color: rgba(242, 236, 225, 0.32); font-size: 9px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; } .studio-nav { display: flex; flex-direction: column; gap: 4px; } .studio-nav__item { display: flex; align-items: center; gap: 12px; padding: 12px 11px; border-radius: 4px; color: rgba(242, 236, 225, 0.5); font-size: 12px; transition: background-color 180ms ease, color 180ms ease; } .studio-nav__item:hover, .studio-nav__item.is-active { background: rgba(242, 236, 225, 0.08); color: #f2ece1; } .studio-nav__item.is-active .studio-nav__dot { background: #efaa82; } .studio-nav__dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(242, 236, 225, 0.28); } .studio-sidebar__bottom { margin-top: auto; } .studio-sidebar__note { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 32px; padding: 17px 14px; border: 1px solid rgba(242, 236, 225, 0.11); color: rgba(242, 236, 225, 0.65); } .studio-sidebar__note-mark { color: #efaa82; font-size: 24px; font-weight: 200; line-height: 0.7; } .studio-sidebar__note strong, .studio-sidebar__note small { display: block; } .studio-sidebar__note strong { font-size: 11px; font-weight: 500; } .studio-sidebar__note small { margin-top: 7px; color: rgba(242, 236, 225, 0.38); font-size: 9px; line-height: 1.35; } .studio-account { display: flex; align-items: center; gap: 10px; padding-top: 19px; border-top: 1px solid rgba(242, 236, 225, 0.13); } .studio-account__avatar { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 50%; background: #d88c75; color: #211d24; font-size: 9px; font-weight: 800; } .studio-account__details { min-width: 0; flex: 1; } .studio-account__details strong, .studio-account__details small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .studio-account__details strong { color: #eee8df; font-size: 11px; font-weight: 500; } .studio-account__details small { margin-top: 3px; color: rgba(242, 236, 225, 0.35); font-size: 9px; } .studio-account__logout, .studio-mobilebar__account { display: grid; cursor: pointer; width: 25px; height: 25px; place-items: center; border: 1px solid rgba(242, 236, 225, 0.23); border-radius: 50%; background: transparent; color: rgba(242, 236, 225, 0.7); font-size: 13px; } .studio-main { min-width: 0; flex: 1; } .studio-mobilebar { display: none; } .studio-page { width: min(100%, 1300px); margin: 0 auto; padding: clamp(38px, 5vw, 75px) clamp(23px, 5vw, 72px); } .studio-page__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; } .studio-page__header--compact { align-items: center; } .studio-page__header .studio-display { max-width: 690px; margin: 0; font-size: clamp(58px, 7vw, 105px); } .studio-page__lede { margin: 21px 0 0; color: rgba(43, 39, 45, 0.56); font-size: 15px; line-height: 1.45; } .studio-stats { display: grid; margin-top: clamp(55px, 8vw, 100px); grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(43, 39, 45, 0.15); border-bottom: 1px solid rgba(43, 39, 45, 0.15); } .studio-stat { min-height: 155px; padding: 20px 18px 18px 0; border-right: 1px solid rgba(43, 39, 45, 0.13); } .studio-stat:not(:first-child) { padding-left: 23px; } .studio-stat:last-child { border-right: 0; } .studio-stat__topline { display: flex; align-items: center; justify-content: space-between; color: rgba(43, 39, 45, 0.5); font-size: 9px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; } .studio-stat__topline i { display: block; width: 6px; height: 6px; border-radius: 50%; background: #d98a76; } .studio-stat--violet .studio-stat__topline i { background: #9381bf; } .studio-stat--gold .studio-stat__topline i { background: #cba65c; } .studio-stat--ink .studio-stat__topline i { background: #3f3841; } .studio-stat > strong { display: block; margin-top: 24px; color: #2b272d; font-family: Iowan Old Style, Baskerville, serif; font-size: clamp(38px, 4vw, 57px); font-weight: 400; letter-spacing: -0.06em; } .studio-stat > small { display: block; margin-top: 5px; color: rgba(43, 39, 45, 0.45); font-size: 10px; } .studio-section { margin-top: clamp(65px, 9vw, 110px); } .studio-section__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 27px; } .studio-section__heading .studio-kicker { margin-bottom: 14px; } .studio-heading { margin: 0; font-family: Iowan Old Style, Baskerville, serif; font-size: clamp(38px, 5vw, 60px); font-weight: 400; letter-spacing: -0.06em; line-height: 0.95; } .inline-link { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; } .inline-link span { margin-left: 5px; font-size: 15px; font-weight: 300; } .gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .gallery-grid--dashboard { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gallery-card { overflow: hidden; border: 1px solid rgba(43, 39, 45, 0.12); background: #eeeae3; } .gallery-card__cover { position: relative; display: block; overflow: hidden; aspect-ratio: 1.45; background: #c7b8aa; } .gallery-card__cover img, .gallery-card__cover-placeholder { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1); } .gallery-card__cover:hover img, .gallery-card__cover:hover .gallery-card__cover-placeholder { transform: scale(1.04); } .gallery-card__cover-placeholder { display: grid; place-items: center; background: #9c6f67; color: rgba(255, 248, 237, 0.85); font-family: Iowan Old Style, Baskerville, serif; font-size: 72px; } .status-pill { position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; background: rgba(31, 27, 33, 0.72); color: #f4eee5; font-size: 8px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; backdrop-filter: blur(7px); } .status-pill i { width: 5px; height: 5px; border-radius: 50%; background: #d18a76; } .status-pill--published i { background: #b6d29d; } .status-pill--archived i { background: #aaa4a5; } .gallery-card__cover-arrow { position: absolute; right: 14px; bottom: 14px; display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(255, 248, 237, 0.7); border-radius: 50%; color: #fff8ed; } .gallery-card__body { padding: 19px 19px 16px; } .gallery-card__heading { display: flex; justify-content: space-between; gap: 12px; } .gallery-card__heading p { margin: 0 0 7px; color: #a7655f; font-size: 9px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; } .gallery-card__heading h3 { margin: 0; color: #2b272d; font-family: Iowan Old Style, Baskerville, serif; font-size: clamp(24px, 3vw, 33px); font-weight: 400; letter-spacing: -0.04em; line-height: 0.95; } .gallery-card__date { color: rgba(43, 39, 45, 0.4); font-size: 9px; white-space: nowrap; } .gallery-card__meta { display: flex; gap: 18px; margin-top: 19px; color: rgba(43, 39, 45, 0.48); font-size: 9px; letter-spacing: 0.04em; } .gallery-card__actions { display: flex; align-items: center; gap: 14px; margin-top: 22px; padding-top: 13px; border-top: 1px solid rgba(43, 39, 45, 0.11); } .text-action, .gallery-card__delete { cursor: pointer; padding: 0; border: 0; background: transparent; color: #a7655f; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .text-action--muted { color: rgba(43, 39, 45, 0.42); font-weight: 500; } .gallery-card__delete { margin-left: auto; color: rgba(43, 39, 45, 0.35); font-size: 19px; font-weight: 300; line-height: 0.5; } .studio-alert { margin-bottom: 22px; padding: 11px 13px; border: 1px solid currentColor; } .studio-alert--success { color: #5e825c; } .studio-empty { display: flex; align-items: center; gap: 20px; padding: 27px 0; border-top: 1px solid rgba(43, 39, 45, 0.13); border-bottom: 1px solid rgba(43, 39, 45, 0.13); } .studio-empty--large { min-height: 250px; align-items: flex-start; flex-direction: column; justify-content: center; } .studio-empty__mark { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid #b67366; border-radius: 50%; color: #b67366; font-size: 25px; font-weight: 200; } .studio-empty h3 { margin: 0; font-family: Iowan Old Style, Baskerville, serif; font-size: 28px; font-weight: 400; letter-spacing: -0.04em; } .studio-empty p { max-width: 400px; margin: 8px 0 0; color: rgba(43, 39, 45, 0.53); font-size: 13px; line-height: 1.45; } .studio-list-loading { display: flex; gap: 8px; padding: 30px 0; } .studio-list-loading span { display: block; width: 7px; height: 7px; border-radius: 50%; background: #b67467; animation: studio-loading 1s ease-in-out infinite alternate; } .studio-list-loading span:nth-child(2) { animation-delay: 0.2s; } .studio-list-loading span:nth-child(3) { animation-delay: 0.4s; } @keyframes studio-loading { from { opacity: 0.2; transform: translateY(0); } to { opacity: 1; transform: translateY(-5px); } } .studio-page--placeholder { padding-top: 18vh; } .studio-page--placeholder .studio-display { max-width: 700px; margin: 0; font-size: clamp(64px, 9vw, 125px); } .studio-page--placeholder .studio-page__lede { max-width: 400px; margin-bottom: 30px; } /* Editor */ .editor-page { width: min(100%, 1440px); margin: 0 auto; padding: 26px clamp(23px, 4vw, 62px) 90px; } .editor-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid rgba(43, 39, 45, 0.15); } .editor-header__back { display: flex; align-items: center; gap: 11px; color: rgba(43, 39, 45, 0.47); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; } .editor-header__back a { color: #a7655f; font-weight: 700; } .editor-header__actions { display: flex; gap: 8px; } .editor-button { min-height: 38px; padding: 0 15px; } .editor-button--quiet { border: 1px solid rgba(43, 39, 45, 0.17); background: transparent; color: rgba(43, 39, 45, 0.67); } .editor-button--accent { background: #ad695b; color: #fff8ed; } .editor-titlebar { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; padding: 54px 0 60px; } .editor-titlebar .studio-display { margin: 0; font-size: clamp(55px, 7.2vw, 105px); } .editor-live { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 9px; color: #5d805f; font-size: 9px; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; } .editor-live i { width: 6px; height: 6px; border-radius: 50%; background: #79a27b; } .editor-layout { display: grid; align-items: start; gap: clamp(35px, 6vw, 100px); grid-template-columns: minmax(0, 1fr) minmax(290px, 380px); } .editor-section { padding: 44px 0 50px; border-top: 1px solid rgba(43, 39, 45, 0.15); } .editor-section--first { padding-top: 0; border-top: 0; } .editor-section--aside { padding: 0 0 45px; border-top: 0; } .editor-section--aside + .editor-section--aside { padding-top: 35px; border-top: 1px solid rgba(43, 39, 45, 0.15); } .editor-section__heading { margin-bottom: 32px; } .editor-section__heading .studio-kicker { margin-bottom: 13px; } .editor-section__heading h2 { margin: 0; font-family: Iowan Old Style, Baskerville, serif; font-size: clamp(33px, 4vw, 53px); font-weight: 400; letter-spacing: -0.06em; line-height: 0.92; } .editor-section__heading > p:last-child { max-width: 470px; margin: 14px 0 0; color: rgba(43, 39, 45, 0.48); font-size: 13px; line-height: 1.45; } .editor-fields--two { display: grid; gap: 28px; grid-template-columns: repeat(2, 1fr); } .editor-fields__full { margin-top: 31px; } .editor-fields textarea { resize: vertical; line-height: 1.45; } .upload-zone { display: flex; width: 100%; min-height: 230px; cursor: pointer; align-items: center; justify-content: center; border: 1px dashed rgba(43, 39, 45, 0.32); flex-direction: column; gap: 13px; background: rgba(255, 252, 247, 0.22); color: #2b272d; transition: background-color 180ms ease, border-color 180ms ease; } .upload-zone:hover, .upload-zone.is-dragging { border-color: #ad695b; background: rgba(220, 166, 145, 0.14); } .upload-zone__title { font-family: Iowan Old Style, Baskerville, serif; font-size: 25px; letter-spacing: -0.04em; } .upload-zone__hint { color: rgba(43, 39, 45, 0.45); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .upload-queue { margin-top: 24px; padding: 17px 0 0; border-top: 1px solid rgba(43, 39, 45, 0.13); } .upload-queue__heading { display: flex; justify-content: space-between; color: rgba(43, 39, 45, 0.51); font-size: 9px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; } .upload-queue__heading strong { color: #ad695b; font-weight: 700; } .upload-queue__track { height: 2px; margin: 11px 0; background: rgba(43, 39, 45, 0.13); } .upload-queue__track span { display: block; height: 100%; background: #ad695b; transition: width 200ms ease; } .upload-queue__items { display: flex; flex-direction: column; } .upload-row { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 11px 0; border-bottom: 1px solid rgba(43, 39, 45, 0.09); } .upload-row__type { display: grid; width: 26px; height: 26px; place-items: center; background: #cbb3aa; color: #fff8ed; font-size: 7px; font-weight: 800; } .upload-row__name { min-width: 0; flex: 1; overflow: hidden; color: #2b272d; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .upload-row__name small { display: inline; margin-left: 8px; color: rgba(43, 39, 45, 0.4); font-size: 9px; } .upload-row__status { color: #ad695b; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .upload-row__status--ready { color: #5d805f; } .upload-row__status--failed { color: #a84f4a; } .upload-row button { cursor: pointer; padding: 0; border: 0; background: transparent; color: rgba(43, 39, 45, 0.43); font-size: 10px; font-weight: 700; } .editor-media-grid { display: grid; gap: 14px; margin-top: 26px; grid-template-columns: repeat(3, minmax(0, 1fr)); } .editor-media-tile { overflow: hidden; border: 1px solid rgba(43, 39, 45, 0.14); background: #f1ede7; } .editor-media-tile.is-cover { border-color: #ad695b; } .editor-media-tile__image { position: relative; overflow: hidden; aspect-ratio: 1.2; background: #c6b9b0; } .editor-media-tile__image img { width: 100%; height: 100%; object-fit: cover; } .editor-media-tile__placeholder { display: grid; height: 100%; place-items: center; color: rgba(255, 248, 237, 0.75); font-size: 8px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .editor-media-tile__video, .editor-media-tile__cover { position: absolute; bottom: 8px; padding: 5px 6px; background: rgba(33, 29, 36, 0.72); color: #f4eee5; font-size: 7px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .editor-media-tile__video { left: 8px; } .editor-media-tile__cover { right: 8px; color: #efbd8f; } .editor-media-tile__body { padding: 11px 11px 5px; } .editor-media-tile__body strong, .editor-media-tile__body small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .editor-media-tile__body strong { color: #2b272d; font-size: 10px; font-weight: 600; } .editor-media-tile__body small { margin-top: 5px; color: rgba(43, 39, 45, 0.43); font-size: 8px; letter-spacing: 0.05em; text-transform: uppercase; } .editor-media-tile__actions { display: flex; align-items: center; gap: 8px; padding: 7px 11px 11px; } .editor-media-tile__actions button { cursor: pointer; padding: 0; border: 0; background: transparent; color: #a7655f; font-size: 8px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; } .editor-media-tile__actions button:not(:first-child) { color: rgba(43, 39, 45, 0.4); font-size: 13px; } .editor-media-tile__actions button:disabled { cursor: not-allowed; opacity: 0.25; } .editor-media-empty, .editor-locked { padding: 25px; border: 1px dashed rgba(43, 39, 45, 0.23); color: rgba(43, 39, 45, 0.5); font-family: Iowan Old Style, Baskerville, serif; font-size: 20px; } .editor-locked { display: flex; align-items: center; gap: 15px; } .editor-locked span { color: #ad695b; font-size: 12px; } .toggle-list { margin-bottom: 26px; } .toggle-line { display: flex; cursor: pointer; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid rgba(43, 39, 45, 0.11); } .toggle-line > span { display: flex; flex-direction: column; gap: 5px; } .toggle-line strong { color: #2b272d; font-size: 12px; font-weight: 600; } .toggle-line small { color: rgba(43, 39, 45, 0.46); font-size: 9px; } .toggle-line input { position: absolute; opacity: 0; } .toggle-line i { position: relative; display: block; width: 32px; height: 18px; flex: 0 0 32px; border-radius: 99px; background: rgba(43, 39, 45, 0.18); transition: background-color 180ms ease; } .toggle-line i::after { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #eeeae3; content: ''; transition: transform 180ms ease; } .toggle-line input:checked + i { background: #ad695b; } .toggle-line input:checked + i::after { transform: translateX(14px); } .editor-field-single { margin-top: 21px; } .checkbox-line { display: flex; align-items: center; gap: 7px; margin-top: 13px; color: rgba(43, 39, 45, 0.47); font-size: 9px; } .checkbox-line input { accent-color: #ad695b; } .choice-label { margin: 22px 0 9px; color: rgba(43, 39, 45, 0.48); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .choice-row { display: flex; gap: 6px; } .choice-row--wrap { flex-wrap: wrap; } .choice-row button { cursor: pointer; padding: 9px 11px; border: 1px solid rgba(43, 39, 45, 0.17); background: transparent; color: rgba(43, 39, 45, 0.55); font-size: 9px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; } .choice-row button.is-selected { border-color: #ad695b; background: #ad695b; color: #fff8ed; } .editor-color-field { margin-top: 20px; } .editor-color-field > span { display: flex; align-items: center; gap: 10px; } .editor-color-field input[type='color'] { width: 25px; height: 25px; cursor: pointer; padding: 0; border: 0; background: transparent; } .editor-color-field code { color: rgba(43, 39, 45, 0.55); font-size: 10px; font-weight: 400; letter-spacing: 0.03em; text-transform: none; } /* Public gallery */ .client-loading, .client-error { display: flex; min-height: 100svh; padding: 32px 7vw; align-items: center; background: #1b181e; color: #f2ece1; flex-direction: column; justify-content: center; text-align: center; } .client-loading p { margin: 24px 0 9px; color: rgba(242, 236, 225, 0.68); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; } .client-loading__line { display: block; width: 110px; height: 1px; overflow: hidden; background: rgba(242, 236, 225, 0.2); } .client-loading__line::after { display: block; width: 40%; height: 100%; background: #dc9478; content: ''; } .client-error { align-items: flex-start; text-align: left; } .client-error h1 { margin: 0; font-size: clamp(62px, 9vw, 130px); line-height: 0.85; } .client-error > p:last-child { max-width: 390px; margin: 29px 0 0; color: rgba(242, 236, 225, 0.57); font-size: 15px; line-height: 1.5; } .client-lock-screen { position: relative; display: flex; min-height: 100svh; overflow: hidden; padding: 32px clamp(24px, 5vw, 80px); background: #1b181e; color: #f2ece1; flex-direction: column; justify-content: space-between; } .client-lock-screen__brand { display: flex; align-items: center; gap: 10px; color: rgba(242, 236, 225, 0.8); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; } .client-lock-screen__lock { display: grid; width: 51px; height: 51px; margin-bottom: 35px; place-items: center; border: 1px solid rgba(239, 170, 130, 0.65); border-radius: 50%; color: #efaa82; font-size: 27px; font-weight: 200; } .client-lock-screen__center { position: relative; z-index: 1; width: min(100%, 640px); margin: auto 0; } .client-lock-screen__center h1 { margin: 0; font-size: clamp(58px, 8vw, 113px); line-height: 0.85; } .client-lock-screen__center > p:not(.client-kicker):not(.client-form-error) { max-width: 360px; margin: 29px 0 28px; color: rgba(242, 236, 225, 0.57); font-size: 15px; line-height: 1.5; } .client-password-form { display: flex; width: min(100%, 390px); align-items: center; border-bottom: 1px solid rgba(242, 236, 225, 0.35); } .client-password-form input { width: 100%; padding: 14px 0; border: 0; outline: 0; background: transparent; color: #f2ece1; font-size: 17px; } .client-password-form input::placeholder { color: rgba(242, 236, 225, 0.37); } .client-round-button { display: grid; width: 37px; height: 37px; cursor: pointer; place-items: center; border: 1px solid #efaa82; border-radius: 50%; background: transparent; color: #efaa82; font-size: 17px; } .client-lock-screen__footer { color: rgba(242, 236, 225, 0.35); font-size: 9px; letter-spacing: 0.17em; text-transform: uppercase; } .client-gallery { --gallery-ink: #2b272d; --gallery-muted: rgba(43, 39, 45, 0.53); min-height: 100svh; background: #eae6de; color: var(--gallery-ink); } .client-gallery--dark { --gallery-ink: #f3ede2; --gallery-muted: rgba(243, 237, 226, 0.56); background: #1a171d; color: var(--gallery-ink); } .client-gallery--dark .client-gallery__nav, .client-gallery--dark .client-section-heading, .client-gallery--dark .client-footer { border-color: rgba(243, 237, 226, 0.16); } .preview-ribbon { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 8px 15px; background: #ad695b; color: #fff8ed; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .preview-ribbon span:last-child { color: rgba(255, 248, 237, 0.68); font-weight: 400; } .client-gallery__nav { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 20px; margin: 0 clamp(22px, 5vw, 82px); border-bottom: 1px solid rgba(43, 39, 45, 0.15); } .client-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--gallery-ink); font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; } .client-brand img { width: 32px; height: 32px; object-fit: contain; } .client-brand__mark { width: 31px; height: 31px; color: var(--gallery-accent); font-size: 15px; } .client-gallery__nav-actions { display: flex; align-items: center; gap: 24px; } .client-nav-button { cursor: pointer; padding: 0; border: 0; background: transparent; color: var(--gallery-ink); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .client-nav-button span { margin-left: 6px; color: var(--gallery-accent); font-size: 15px; font-weight: 300; } .client-gallery__edition { color: var(--gallery-muted); font-size: 9px; letter-spacing: 0.13em; text-transform: uppercase; } .client-hero { display: grid; min-height: calc(100svh - 82px); padding: clamp(70px, 10vw, 145px) clamp(22px, 10vw, 160px) clamp(45px, 6vw, 80px); grid-template-columns: minmax(220px, 0.72fr) minmax(300px, 1.28fr); grid-template-rows: 1fr auto; column-gap: clamp(35px, 7vw, 120px); } .client-hero__copy { align-self: center; padding-bottom: 4vh; } .client-hero__copy h1 { max-width: 650px; margin: 0; font-size: clamp(67px, 10vw, 154px); line-height: 0.81; } .client-hero__description { max-width: 310px; margin: 30px 0 0; color: var(--gallery-muted); font-size: 14px; line-height: 1.5; } .client-hero__cover { position: relative; overflow: hidden; min-height: 420px; grid-row: span 2; background: #baa89e; } .client-hero__cover img, .client-hero__fallback { width: 100%; height: 100%; object-fit: cover; } .client-hero__fallback { display: grid; min-height: 420px; place-items: center; background: #967169; color: #fdf3e6; font-family: Iowan Old Style, Baskerville, serif; font-size: 140px; } .client-hero__cover-caption { position: absolute; right: 17px; bottom: 17px; left: 17px; display: flex; justify-content: space-between; color: rgba(255, 248, 237, 0.75); font-size: 8px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; } .client-hero__scroll { display: flex; align-items: center; align-self: end; gap: 9px; color: var(--gallery-muted); font-size: 9px; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; } .client-hero__scroll span { display: block; width: 22px; height: 1px; background: var(--gallery-accent); } .client-work-section, .client-download-section { margin: 0 clamp(22px, 5vw, 82px); padding: clamp(75px, 10vw, 145px) 0; border-top: 1px solid rgba(43, 39, 45, 0.15); } .client-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding-bottom: 43px; border-bottom: 1px solid rgba(43, 39, 45, 0.13); } .client-section-heading .client-kicker { color: var(--gallery-accent); } .client-section-heading h2 { margin: 0; font-size: clamp(53px, 7vw, 101px); line-height: 0.84; } .client-section-heading h2 em { color: var(--gallery-accent); font-style: italic; } .client-section-heading > span { padding-bottom: 4px; color: var(--gallery-muted); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; } .client-media-grid { display: grid; gap: 28px 15px; padding-top: 39px; grid-template-columns: repeat(12, 1fr); } .client-media-card { min-width: 0; grid-column: span 4; } .client-media-card:nth-child(7n + 1), .client-gallery--editorial .client-media-card:nth-child(5n + 3) { grid-column: span 7; } .client-gallery--grid .client-media-card, .client-gallery--masonry .client-media-card { grid-column: span 4; } .client-gallery--masonry .client-media-card:nth-child(3n + 2) { transform: translateY(58px); } .client-media-card__image, .client-media-card__video-wrap { position: relative; display: block; overflow: hidden; width: 100%; aspect-ratio: 1.12; border: 0; background: #b8a69e; } .client-media-card__image { cursor: zoom-in; padding: 0; } .client-media-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1); } .client-media-card__image:hover img { transform: scale(1.045); } .client-media-card:nth-child(7n + 1) .client-media-card__image { aspect-ratio: 1.5; } .client-media-card__open { position: absolute; right: 13px; bottom: 13px; display: grid; width: 29px; height: 29px; place-items: center; border: 1px solid rgba(255, 248, 237, 0.75); border-radius: 50%; color: #fff8ed; font-size: 16px; opacity: 0; transition: opacity 180ms ease; } .client-media-card__image:hover .client-media-card__open { opacity: 1; } .client-media-card__video-wrap video { display: block; width: 100%; height: 100%; object-fit: cover; } .client-media-card__video-label { position: absolute; right: 12px; bottom: 12px; left: 12px; color: rgba(255, 248, 237, 0.8); font-size: 8px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .client-media-card__processing { display: grid; width: 100%; height: 100%; place-items: center; color: rgba(255, 248, 237, 0.75); font-size: 9px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; } .client-media-card__footer { display: flex; align-items: center; gap: 12px; padding-top: 11px; color: var(--gallery-muted); font-size: 9px; letter-spacing: 0.06em; } .client-media-card__footer > span { overflow: hidden; flex: 1; text-overflow: ellipsis; white-space: nowrap; } .client-media-card__footer button { cursor: pointer; padding: 0; border: 0; background: transparent; color: var(--gallery-muted); font-size: 17px; font-weight: 300; line-height: 1; } .client-media-card__footer button.is-favorited { color: var(--gallery-accent); } .client-watermark { position: absolute; top: 12px; left: 12px; color: rgba(255, 248, 237, 0.67); font-size: 8px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; } .client-empty { display: flex; min-height: 200px; align-items: center; justify-content: center; color: var(--gallery-muted); flex-direction: column; gap: 15px; } .client-empty span { color: var(--gallery-accent); font-size: 33px; font-weight: 200; } .client-empty p { margin: 0; font-family: Iowan Old Style, Baskerville, serif; font-size: 24px; } .client-download-section { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; } .client-download-section__copy h2 { margin: 0; font-size: clamp(55px, 7vw, 103px); line-height: 0.83; } .client-download-section__copy h2 em { color: var(--gallery-accent); font-style: italic; } .client-download-section__copy > p:last-child { max-width: 300px; margin: 30px 0 0; color: var(--gallery-muted); font-size: 14px; line-height: 1.5; } .client-download-button { min-width: 220px; padding: 8px 8px 8px 18px; background: var(--gallery-ink); color: #eae6de; } .client-gallery--dark .client-download-button { background: #eae6de; color: #2b272d; } .client-download-button > span:last-child { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--gallery-accent); border-radius: 50%; color: var(--gallery-accent); font-size: 17px; font-weight: 300; } .client-download-ready { color: var(--gallery-accent); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .client-download-error { max-width: 230px; margin: 0; font-size: 11px; line-height: 1.4; } .client-footer { display: grid; align-items: center; gap: 25px; margin: 0 clamp(22px, 5vw, 82px); padding: 35px 0 42px; border-top: 1px solid rgba(43, 39, 45, 0.15); grid-template-columns: 1fr auto 1fr; } .client-footer > div:first-child { display: flex; align-items: center; gap: 10px; } .client-footer > div:first-child > div { display: flex; flex-direction: column; gap: 4px; } .client-footer strong { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; } .client-footer small { color: var(--gallery-muted); font-family: Iowan Old Style, Baskerville, serif; font-size: 15px; } .client-footer__links { display: flex; gap: 20px; color: var(--gallery-accent); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .client-footer__credit { color: var(--gallery-muted); font-size: 9px; letter-spacing: 0.12em; text-align: right; text-transform: uppercase; } .photo-viewer { position: fixed; z-index: 20; inset: 0; display: flex; padding: 22px clamp(18px, 4vw, 62px); background: rgba(23, 20, 26, 0.97); color: #f3ede2; flex-direction: column; } .photo-viewer__topline, .photo-viewer__bottomline { display: flex; align-items: center; justify-content: space-between; gap: 20px; } .photo-viewer__topline { color: rgba(243, 237, 226, 0.58); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; } .photo-viewer__topline button { display: grid; cursor: pointer; width: 39px; height: 39px; place-items: center; border: 1px solid rgba(243, 237, 226, 0.42); border-radius: 50%; background: transparent; color: #f3ede2; font-size: 23px; font-weight: 200; } .photo-viewer__stage { position: relative; display: flex; min-height: 0; flex: 1; align-items: center; justify-content: center; gap: 20px; } .photo-viewer__image-wrap { display: flex; width: min(76vw, 1100px); height: min(76vh, 740px); align-items: center; justify-content: center; } .photo-viewer__image-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; } .photo-viewer__image-wrap > span { color: rgba(243, 237, 226, 0.6); font-family: Iowan Old Style, Baskerville, serif; font-size: 25px; } .photo-viewer__arrow { display: grid; z-index: 1; cursor: pointer; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(243, 237, 226, 0.42); border-radius: 50%; background: transparent; color: #f3ede2; font-size: 19px; font-weight: 300; } .photo-viewer__arrow:disabled { cursor: not-allowed; opacity: 0.18; } .photo-viewer__bottomline { padding-top: 19px; border-top: 1px solid rgba(243, 237, 226, 0.17); color: rgba(243, 237, 226, 0.75); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; } .photo-viewer__bottomline small { margin-left: 9px; color: rgba(243, 237, 226, 0.35); font-size: 9px; } .photo-viewer__bottomline > div { display: flex; gap: 18px; } .photo-viewer__bottomline button { cursor: pointer; padding: 0; border: 0; background: transparent; color: rgba(243, 237, 226, 0.7); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; } .photo-viewer__bottomline button.is-favorited { color: #eea980; } .preview-return-link { position: fixed; z-index: 5; right: 25px; bottom: 25px; color: #efaa82; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } @media (max-width: 900px) { .auth-shell { display: block; } .auth-shell__texture { inset: 0 0 53% 0; } .auth-shell__brand { top: 25px; left: 25px; } .auth-shell__aside { max-width: 400px; margin: 0; padding: 130px 25px 95px; } .auth-shell__aside h1 { font-size: clamp(67px, 15vw, 110px); } .auth-shell__panel { min-height: 47svh; padding: 68px 25px; } .studio-sidebar { display: none; } .studio-mobilebar { display: flex; align-items: center; justify-content: space-between; padding: 19px 22px; background: #211d24; } .studio-mobilebar .studio-logo { font-size: 11px; } .studio-mobilebar__account { color: #efaa82; } .studio-page__header { align-items: flex-start; flex-direction: column; } .studio-page__header .platform-button { align-self: flex-start; } .gallery-grid--dashboard { grid-template-columns: repeat(2, minmax(0, 1fr)); } .editor-layout { gap: 45px; grid-template-columns: 1fr; } .editor-aside { display: grid; gap: 35px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .editor-section--aside + .editor-section--aside { padding-top: 0; border-top: 0; } .editor-section--aside:last-child { grid-column: span 2; } } @media (max-width: 640px) { .auth-shell__aside { padding-bottom: 75px; } .auth-shell__aside > p:last-child { margin-top: 25px; } .auth-shell__panel { padding: 55px 22px 65px; } .auth-card__heading h2 { font-size: 57px; } .studio-page { padding: 44px 21px 70px; } .studio-page__header .studio-display, .studio-page__header--compact .studio-display { font-size: 65px; } .studio-page__lede { font-size: 14px; } .studio-stats { grid-template-columns: repeat(2, 1fr); } .studio-stat, .studio-stat:not(:first-child) { min-height: 125px; padding: 17px 12px 15px 0; } .studio-stat:nth-child(2n) { padding-left: 15px; border-right: 0; } .studio-stat:nth-child(n + 3) { border-top: 1px solid rgba(43, 39, 45, 0.13); } .studio-stat > strong { margin-top: 15px; font-size: 38px; } .studio-section__heading { align-items: flex-start; flex-direction: column; } .gallery-grid, .gallery-grid--dashboard { grid-template-columns: 1fr; } .gallery-card__cover { aspect-ratio: 1.5; } .studio-empty { align-items: flex-start; flex-direction: column; } .editor-page { padding: 18px 21px 65px; } .editor-header { align-items: flex-start; flex-direction: column; } .editor-header__actions { width: 100%; flex-wrap: wrap; } .editor-header__actions .editor-button { flex: 1; justify-content: center; } .editor-titlebar { align-items: flex-start; flex-direction: column; padding: 40px 0 47px; } .editor-titlebar .studio-display { font-size: 61px; } .editor-fields--two { grid-template-columns: 1fr; } .editor-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .editor-aside { display: block; } .editor-section--aside:last-child { grid-column: auto; } .upload-zone { min-height: 200px; text-align: center; } .upload-zone__orb { display: grid; width: 43px; height: 43px; place-items: center; color: #ad695b; font-size: 26px; font-weight: 200; } .upload-zone__title { font-size: 22px; } .upload-zone__hint { max-width: 230px; line-height: 1.5; } .upload-row__name small { display: block; margin: 4px 0 0; } .client-gallery__nav { min-height: 70px; margin: 0 20px; } .client-gallery__nav-actions { gap: 12px; } .client-gallery__edition { display: none; } .client-nav-button { font-size: 8px; } .client-hero { display: flex; min-height: auto; padding: 75px 20px 65px; flex-direction: column; } .client-hero__copy { padding-bottom: 52px; } .client-hero__copy h1 { font-size: clamp(66px, 19vw, 105px); } .client-hero__cover { min-height: 68vh; } .client-hero__fallback { min-height: 68vh; } .client-hero__scroll { margin-top: 32px; } .client-work-section, .client-download-section { margin: 0 20px; padding: 74px 0; } .client-section-heading { align-items: flex-start; flex-direction: column; gap: 20px; } .client-section-heading h2 { font-size: 59px; } .client-section-heading > span { padding-bottom: 0; } .client-media-grid { display: flex; padding-top: 28px; flex-direction: column; gap: 30px; } .client-media-card, .client-media-card:nth-child(7n + 1), .client-gallery--editorial .client-media-card:nth-child(5n + 3), .client-gallery--grid .client-media-card, .client-gallery--masonry .client-media-card { width: 100%; } .client-gallery--masonry .client-media-card:nth-child(3n + 2) { transform: none; } .client-media-card__image, .client-media-card:nth-child(7n + 1) .client-media-card__image { aspect-ratio: 1.08; } .client-download-section { align-items: flex-start; flex-direction: column; } .client-download-section__copy h2 { font-size: 61px; } .client-download-button { width: 100%; } .client-footer { display: flex; align-items: flex-start; flex-direction: column; margin: 0 20px; } .client-footer__credit { text-align: left; } .photo-viewer { padding: 15px 15px 17px; } .photo-viewer__stage { gap: 8px; } .photo-viewer__image-wrap { width: calc(100vw - 86px); height: 68vh; } .photo-viewer__arrow { width: 31px; height: 31px; font-size: 15px; } .photo-viewer__bottomline { align-items: flex-start; flex-direction: column; gap: 18px; } .photo-viewer__bottomline > div { width: 100%; justify-content: space-between; } .preview-ribbon { align-items: flex-start; flex-direction: column; gap: 3px; padding-left: 20px; } } .upload-row__error { max-width: 260px; overflow: hidden; color: #a84f4a; font-size: 9px; line-height: 1.35; text-overflow: ellipsis; } /* Developer diagnostics */ .dev-page__actions { display: flex; gap: 8px; } .dev-grid { display: grid; gap: 15px; margin-top: 68px; grid-template-columns: repeat(4, minmax(0, 1fr)); } .dev-panel { padding: 25px 23px; border: 1px solid rgba(43, 39, 45, 0.14); background: rgba(247, 243, 237, 0.42); } .dev-panel--wide { margin-top: 15px; } .dev-panel__heading { margin-bottom: 25px; } .dev-panel__heading .studio-kicker { margin-bottom: 11px; } .dev-panel__heading h2 { margin: 0; font-family: Iowan Old Style, Baskerville, serif; font-size: clamp(27px, 3vw, 42px); font-weight: 400; letter-spacing: -0.055em; line-height: 0.92; } .dev-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(43, 39, 45, 0.1); } .dev-row span { color: rgba(43, 39, 45, 0.48); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; } .dev-row strong { max-width: 68%; overflow: hidden; color: #2b272d; font-size: 10px; font-weight: 600; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .dev-status { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; padding: 9px 10px; background: rgba(93, 128, 95, 0.1); color: #5d805f; } .dev-status.is-failed { background: rgba(168, 79, 74, 0.1); color: #a84f4a; } .dev-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; } .dev-status strong { font-size: 10px; font-weight: 700; } .dev-status span { margin-left: auto; font-size: 9px; text-transform: uppercase; } .dev-panel__error { margin: 14px 0 0; color: #a84f4a; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; } .dev-loading { display: flex; gap: 6px; padding: 18px 0; } .dev-loading span { width: 6px; height: 6px; border-radius: 50%; background: #ad695b; animation: studio-loading 1s ease-in-out infinite alternate; } .dev-loading span:nth-child(2) { animation-delay: 0.2s; } .dev-loading span:nth-child(3) { animation-delay: 0.4s; } .dev-flow { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .dev-flow > span { display: flex; min-width: 0; flex: 1; padding: 15px; border: 1px solid rgba(43, 39, 45, 0.13); color: #ad695b; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; flex-direction: column; gap: 9px; } .dev-flow strong { color: #2b272d; font-size: 11px; letter-spacing: 0; text-transform: none; } .dev-flow small { color: rgba(43, 39, 45, 0.48); font-size: 9px; font-weight: 400; letter-spacing: 0; line-height: 1.35; text-transform: none; } .dev-flow > i { color: #ad695b; font-size: 18px; font-style: normal; } .dev-hint { max-width: 700px; margin: 24px 0 0; color: rgba(43, 39, 45, 0.54); font-size: 12px; line-height: 1.5; } .dev-cors { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 20px; color: rgba(43, 39, 45, 0.48); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; } .dev-cors code { padding: 6px 8px; background: rgba(43, 39, 45, 0.08); color: #2b272d; font-size: 10px; letter-spacing: 0; text-transform: none; } .dev-last-error { display: flex; align-items: flex-start; gap: 14px; padding: 16px; border: 1px solid rgba(168, 79, 74, 0.35); background: rgba(168, 79, 74, 0.06); } .dev-last-error__mark { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border: 1px solid #a84f4a; border-radius: 50%; color: #a84f4a; font-weight: 700; } .dev-last-error > div { min-width: 0; flex: 1; } .dev-last-error strong { color: #2b272d; font-size: 11px; } .dev-last-error p { margin: 7px 0; color: #a84f4a; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; } .dev-last-error small { color: rgba(43, 39, 45, 0.47); font-size: 9px; } .dev-last-error button { cursor: pointer; padding: 0; border: 0; background: transparent; color: rgba(43, 39, 45, 0.48); font-size: 9px; font-weight: 700; text-transform: uppercase; } .dev-empty { margin: 0; color: rgba(43, 39, 45, 0.5); font-size: 13px; } .dev-check-result { display: flex; align-items: center; gap: 12px; margin-top: 19px; padding: 11px 13px; background: rgba(93, 128, 95, 0.1); color: #5d805f; font-size: 10px; } .dev-check-result.is-failed { background: rgba(168, 79, 74, 0.1); color: #a84f4a; } .dev-check-result span { color: rgba(43, 39, 45, 0.6); overflow-wrap: anywhere; } .dev-raw { margin-top: 15px; border-top: 1px solid rgba(43, 39, 45, 0.14); color: rgba(43, 39, 45, 0.54); } .dev-raw summary { cursor: pointer; padding: 15px 0; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } .dev-raw pre { max-height: 400px; overflow: auto; padding: 15px; background: #211d24; color: #efd6bf; font-size: 11px; line-height: 1.5; } @media (max-width: 900px) { .dev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dev-flow { align-items: stretch; flex-direction: column; } .dev-flow > i { align-self: center; transform: rotate(90deg); } } @media (max-width: 640px) { .dev-page__actions { width: 100%; } .dev-page__actions button { flex: 1; justify-content: center; } .dev-grid { grid-template-columns: 1fr; } } /* Customer delivery art direction: warm editorial, intentionally separate from the studio UI. */ .client-gallery, .client-lock-screen, .client-loading, .client-error { --client-paper: #f3f0ea; --client-ink: #1e1d1b; --client-muted: #77736d; --client-line: rgba(30, 29, 27, 0.18); --client-accent: var(--gallery-accent, #bc6655); --client-accent-soft: #e4c3b8; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important; } .client-gallery { min-height: 100svh !important; background: var(--client-paper) !important; color: var(--client-ink) !important; } .client-gallery--dark { --client-paper: #1e1d1b; --client-ink: #f3f0ea; --client-muted: #aaa49c; --client-line: rgba(243, 240, 234, 0.22); --client-accent-soft: #55342f; background: var(--client-paper) !important; color: var(--client-ink) !important; } .client-gallery .client-display, .client-lock-screen .client-display, .client-error .client-display { font-family: 'Iowan Old Style', 'Baskerville', 'Times New Roman', serif !important; font-weight: 400 !important; letter-spacing: -0.065em !important; line-height: 0.9 !important; text-transform: none !important; } .client-gallery .client-kicker, .client-lock-screen .client-kicker, .client-error .client-kicker { color: var(--client-accent) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; } .client-gallery button, .client-lock-screen button { border-radius: 3px !important; box-shadow: none !important; font-family: inherit !important; } .client-gallery button:hover, .client-lock-screen button:hover { transform: none !important; } .preview-ribbon { display: flex; min-height: 32px; padding: 8px 20px !important; align-items: center; justify-content: center; gap: 16px; border: 0 !important; background: var(--client-ink) !important; color: var(--client-paper) !important; font-size: 9px !important; font-weight: 700 !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; } .preview-ribbon span:last-child { color: rgba(243, 240, 234, 0.58) !important; font-weight: 400 !important; } .client-gallery__nav { display: flex; width: min(100% - 48px, 1220px) !important; min-height: 77px !important; margin: 0 auto !important; padding: 0 !important; align-items: center; justify-content: space-between; gap: 28px; border-bottom: 1px solid var(--client-line) !important; } .client-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--client-ink) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.04em !important; text-decoration: none !important; text-transform: uppercase !important; } .client-brand img { width: 28px !important; height: 28px !important; border-radius: 50% !important; object-fit: cover; } .client-brand__mark { display: grid !important; width: 29px !important; height: 29px !important; place-items: center; border: 1px solid var(--client-ink) !important; border-radius: 50% !important; color: var(--client-ink) !important; font-family: 'Iowan Old Style', Baskerville, serif !important; font-size: 15px !important; font-weight: 400 !important; } .client-gallery__nav-actions { display: flex; align-items: center; gap: 22px !important; } .client-nav-button { min-height: 0 !important; padding: 6px 0 !important; border: 0 !important; background: transparent !important; color: var(--client-ink) !important; font-size: 9px !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-decoration: underline !important; text-underline-offset: 4px; text-transform: uppercase !important; } .client-nav-button:hover { background: transparent !important; color: var(--client-accent) !important; } .client-nav-button span { color: var(--client-accent) !important; font-size: 13px !important; } .client-gallery__edition { color: var(--client-muted) !important; font-size: 9px !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; } .client-hero { display: grid !important; width: min(100% - 48px, 1220px) !important; min-height: 660px !important; margin: 0 auto !important; padding: 96px 0 84px !important; align-items: center; gap: clamp(45px, 8vw, 135px); grid-template-columns: minmax(250px, 0.75fr) minmax(400px, 1.25fr); } .client-hero__copy { padding: 0 !important; } .client-hero__copy h1 { max-width: 560px !important; margin: 0 !important; color: var(--client-ink) !important; font-size: clamp(62px, 8.5vw, 128px) !important; text-wrap: balance; } .client-hero__description { max-width: 330px !important; margin: 28px 0 0 !important; color: var(--client-muted) !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; text-transform: none !important; } .client-hero__cover { min-height: 560px !important; border: 0 !important; background: var(--client-accent-soft) !important; transform: translateY(22px); } .client-hero__cover img { display: block; width: 100%; height: 100%; object-fit: cover; } .client-hero__fallback { display: grid; min-height: 560px !important; place-items: center; background: var(--client-accent-soft) !important; color: var(--client-ink) !important; font-family: 'Iowan Old Style', Baskerville, serif !important; font-size: 150px !important; font-weight: 400 !important; } .client-hero__cover-caption { right: 18px !important; bottom: 16px !important; left: 18px !important; color: var(--client-paper) !important; font-size: 9px !important; font-weight: 700 !important; letter-spacing: 0.11em !important; text-transform: uppercase !important; } .client-hero__scroll { display: flex; margin-top: 40px !important; align-items: center; gap: 10px; color: var(--client-muted) !important; font-size: 9px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; } .client-hero__scroll span { width: 27px !important; background: var(--client-accent) !important; } .client-work-section, .client-download-section { width: min(100% - 48px, 1220px) !important; margin: 0 auto !important; padding: 96px 0 !important; border-top: 1px solid var(--client-line) !important; } .client-section-heading { display: flex; padding-bottom: 22px !important; align-items: flex-end; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--client-line) !important; } .client-section-heading h2, .client-download-section__copy h2 { margin: 0 !important; color: var(--client-ink) !important; font-size: clamp(45px, 6vw, 82px) !important; text-transform: none !important; } .client-section-heading h2 em, .client-download-section__copy h2 em { color: var(--client-accent) !important; font-style: italic !important; background: transparent !important; } .client-section-heading > span { padding-bottom: 3px; color: var(--client-muted) !important; font-size: 9px !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; } .client-media-grid { display: grid !important; gap: 58px 24px !important; padding-top: 50px !important; grid-template-columns: repeat(12, 1fr) !important; } .client-media-card, .client-media-card:nth-child(7n + 1), .client-gallery--editorial .client-media-card:nth-child(5n + 3), .client-gallery--grid .client-media-card, .client-gallery--masonry .client-media-card { grid-column: span 4 !important; transform: none !important; } .client-media-card:nth-child(5n + 1) { grid-column: span 7 !important; } .client-media-card:nth-child(5n + 2) { grid-column: span 5 !important; padding-top: 80px; } .client-media-card__image, .client-media-card__video-wrap { min-height: 280px; aspect-ratio: 1.08 !important; border: 0 !important; border-radius: 0 !important; background: var(--client-accent-soft) !important; } .client-media-card:nth-child(5n + 1) .client-media-card__image, .client-media-card:nth-child(5n + 1) .client-media-card__video-wrap { aspect-ratio: 1.46 !important; } .client-media-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9); } .client-media-card__image:hover img { transform: scale(1.015); } .client-media-card__video-wrap video { display: block; width: 100%; height: 100%; object-fit: cover; } .client-media-card__video-label { right: 14px !important; bottom: 14px !important; padding: 6px 8px !important; border: 0 !important; background: var(--client-paper) !important; color: var(--client-ink) !important; font-size: 8px !important; letter-spacing: 0.1em !important; } .client-media-card__processing { color: var(--client-muted) !important; font-size: 9px !important; font-weight: 700 !important; text-transform: uppercase !important; } .client-media-card__footer { padding-top: 13px !important; color: var(--client-muted) !important; font-size: 10px !important; letter-spacing: 0.02em !important; } .client-media-card__footer button { min-height: 0 !important; padding: 0 2px !important; border: 0 !important; background: transparent !important; color: var(--client-ink) !important; font-size: 18px !important; } .client-media-card__footer button:hover { background: transparent !important; color: var(--client-accent) !important; } .client-media-card__footer button.is-favorited { color: var(--client-accent) !important; } .client-watermark { top: 14px !important; left: 14px !important; padding: 5px 7px !important; border: 0 !important; background: var(--client-paper) !important; color: var(--client-ink) !important; font-size: 8px !important; } .client-download-section { display: grid !important; padding: 104px 0 !important; align-items: end !important; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; } .client-download-section__copy > p:last-child { max-width: 360px; margin: 24px 0 0 !important; color: var(--client-muted) !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; text-transform: none !important; } .client-download-button { min-width: 214px !important; padding: 13px 16px !important; background: var(--client-accent) !important; color: #fffaf6 !important; font-size: 10px !important; letter-spacing: 0.08em !important; } .client-download-button:hover { background: var(--client-ink) !important; color: var(--client-paper) !important; } .client-download-button > span:last-child { color: inherit !important; } .client-download-ready { grid-column: 2; color: var(--client-accent) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; } .client-download-error { grid-column: 2; color: var(--client-accent) !important; font-size: 10px !important; font-weight: 700 !important; } .client-footer { display: flex !important; width: min(100% - 48px, 1220px) !important; margin: 0 auto !important; padding: 25px 0 32px !important; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--client-line) !important; } .client-footer .client-brand__mark { width: 25px !important; height: 25px !important; font-size: 12px !important; } .client-footer strong, .client-footer small, .client-footer__links, .client-footer__credit { color: var(--client-muted) !important; font-family: inherit !important; font-size: 9px !important; font-weight: 500 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; } .client-footer__links { display: flex; gap: 18px; } .client-footer__links a { color: var(--client-ink) !important; } /* Client states */ .client-loading, .client-error, .client-lock-screen { background: var(--client-paper) !important; color: var(--client-ink) !important; } .client-loading__mark { display: grid !important; width: 55px !important; height: 55px !important; place-items: center; border: 1px solid var(--client-ink) !important; border-radius: 50% !important; color: var(--client-accent) !important; font-family: 'Iowan Old Style', Baskerville, serif !important; font-size: 25px !important; font-weight: 400 !important; } .client-loading p { color: var(--client-muted) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; } .client-loading__line { width: 110px !important; height: 1px !important; border: 0 !important; background: var(--client-line) !important; } .client-loading__line::after { width: 35% !important; background: var(--client-accent) !important; } .client-error { justify-content: center !important; } .client-error h1 { max-width: 650px; color: var(--client-ink) !important; font-size: clamp(48px, 8vw, 104px) !important; } .client-error h1 em { color: var(--client-accent) !important; background: transparent !important; } .client-error > p:last-child { max-width: 390px; color: var(--client-muted) !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; text-transform: none !important; } .client-lock-screen { padding: 30px clamp(24px, 6vw, 90px) !important; } .client-lock-screen__brand { color: var(--client-ink) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; } .client-lock-screen__center h1 { color: var(--client-ink) !important; font-size: clamp(50px, 8vw, 112px) !important; text-transform: none !important; } .client-lock-screen__center > p:not(.client-kicker):not(.client-form-error) { max-width: 350px; margin: 22px 0 !important; color: var(--client-muted) !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; text-transform: none !important; } .client-lock-screen__lock { margin-bottom: 28px !important; color: var(--client-accent) !important; font-size: 20px !important; } .client-password-form { display: flex; width: min(100%, 390px) !important; align-items: stretch; } .client-password-form input { min-height: 43px !important; border: 1px solid var(--client-ink) !important; border-radius: 3px !important; padding: 11px 13px !important; background: transparent !important; color: var(--client-ink) !important; } .client-password-form input:focus { background: var(--client-accent-soft) !important; } .client-round-button { min-width: 53px !important; min-height: 43px !important; margin-left: 8px; border: 1px solid var(--client-ink) !important; border-radius: 3px !important; background: var(--client-ink) !important; color: var(--client-paper) !important; } .client-round-button:hover { background: var(--client-accent) !important; color: #fffaf6 !important; } .client-lock-screen__footer { color: var(--client-muted) !important; font-size: 9px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; } /* Viewer */ .client-gallery .photo-viewer { padding: 24px !important; background: rgba(30, 29, 27, 0.98) !important; color: #f3f0ea !important; } .client-gallery .photo-viewer__topline, .client-gallery .photo-viewer__bottomline { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important; } .client-gallery .photo-viewer__topline { color: rgba(243, 240, 234, 0.68) !important; font-size: 10px !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; } .client-gallery .photo-viewer__topline button, .client-gallery .photo-viewer__arrow { width: 37px !important; height: 37px !important; min-height: 37px !important; border: 1px solid rgba(243, 240, 234, 0.65) !important; border-radius: 50% !important; background: transparent !important; color: #f3f0ea !important; box-shadow: none !important; font-size: 18px !important; } .client-gallery .photo-viewer__topline button:hover, .client-gallery .photo-viewer__arrow:hover { background: #f3f0ea !important; color: #1e1d1b !important; } .client-gallery .photo-viewer__bottomline { padding-top: 18px !important; border-top: 1px solid rgba(243, 240, 234, 0.28) !important; color: rgba(243, 240, 234, 0.8) !important; font-size: 10px !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; } .client-gallery .photo-viewer__bottomline button { min-height: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; color: #f3f0ea !important; box-shadow: none !important; font-size: 10px !important; text-decoration: underline; text-underline-offset: 4px; } .client-gallery .photo-viewer__bottomline button:hover { background: transparent !important; color: #e4aa97 !important; transform: none !important; } .client-gallery .photo-viewer__bottomline button.is-favorited { color: #e4aa97 !important; } @media (max-width: 700px) { .client-gallery__nav, .client-hero, .client-work-section, .client-download-section, .client-footer { width: min(100% - 36px, 1220px) !important; } .preview-ribbon { align-items: flex-start; flex-direction: column; gap: 3px; padding-left: 18px !important; } .client-gallery__nav { min-height: 70px !important; } .client-gallery__nav-actions { gap: 0 !important; } .client-gallery__edition { display: none; } .client-hero { display: flex !important; min-height: auto !important; padding: 64px 0 70px !important; flex-direction: column; align-items: stretch; gap: 50px; } .client-hero__copy h1 { font-size: clamp(58px, 17vw, 100px) !important; } .client-hero__cover, .client-hero__fallback { min-height: 68vh !important; transform: none; } .client-hero__scroll { margin-top: -20px !important; } .client-work-section, .client-download-section { padding: 72px 0 !important; } .client-section-heading { align-items: flex-start; flex-direction: column; gap: 20px; } .client-section-heading h2, .client-download-section__copy h2 { font-size: 49px !important; } .client-media-grid { display: flex !important; padding-top: 30px !important; flex-direction: column; gap: 42px !important; } .client-media-card, .client-media-card:nth-child(5n + 1), .client-media-card:nth-child(5n + 2) { width: 100% !important; padding-top: 0; } .client-media-card__image, .client-media-card__video-wrap, .client-media-card:nth-child(5n + 1) .client-media-card__image, .client-media-card:nth-child(5n + 1) .client-media-card__video-wrap { aspect-ratio: 1.08 !important; } .client-download-section { display: flex !important; align-items: flex-start !important; flex-direction: column !important; } .client-download-button { width: auto !important; } .client-download-ready, .client-download-error { grid-column: auto; } .client-footer { align-items: flex-start; flex-direction: column; } .client-error h1, .client-lock-screen__center h1 { font-size: 55px !important; } } /* Account settings stay in the backoffice utility style. */ .settings-page__header { margin-bottom: 24px; } .settings-layout { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .settings-panel { padding: 22px; border: 3px solid #000; background: #fff; } .settings-panel--session { grid-column: 1 / -1; } .settings-panel__heading { margin-bottom: 22px; padding-bottom: 12px; border-bottom: 3px solid #000; } .settings-panel__heading .studio-kicker { margin-bottom: 8px; } .settings-panel__heading h2 { margin: 0; font-size: 18px; font-weight: 900; letter-spacing: -0.05em; text-transform: uppercase; } .settings-panel__heading p:last-child { margin: 8px 0 0; color: #666; font-size: 10px; font-weight: 700; line-height: 1.45; text-transform: uppercase; } .settings-form { display: flex; flex-direction: column; gap: 15px; } .settings-form label { display: flex; gap: 7px; font-size: 10px; font-weight: 900; text-transform: uppercase; flex-direction: column; } .settings-button { width: fit-content; margin-top: 3px; padding: 8px 13px; } .settings-message { margin: 0; padding: 7px 9px; border: 2px solid #000; font-size: 10px; font-weight: 900; text-transform: uppercase; } .settings-message--success { background: #0f0; } .settings-message--error { background: #f00; color: #fff; } .settings-session-row { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; border-bottom: 2px solid #000; font-size: 10px; text-transform: uppercase; } .settings-session-row strong { padding: 3px 5px; background: #0f0; } .settings-session-row code { overflow: hidden; font-size: 10px; text-overflow: ellipsis; } .settings-session-actions { display: flex; align-items: center; gap: 14px; margin-top: 18px; flex-wrap: wrap; } .settings-session-actions a, .settings-session-actions button { min-height: 0; padding: 3px 0; border: 0; background: transparent; color: #000; box-shadow: none; font-size: 10px; font-weight: 900; text-decoration: underline; } .settings-session-actions button { color: #c00; } @media (max-width: 700px) { .settings-layout { grid-template-columns: 1fr; } .settings-panel--session { grid-column: auto; } }