@charset "UTF-8";

:root {
  --green-950: #021a14;
  --green-900: #05261e;
  --green-850: #0a3127;
  --green-800: #123b30;
  --green-700: #235243;
  --gold-500: #e7bf6d;
  --gold-400: #f0cf86;
  --gold-300: #f6dea7;
  --ivory-50: #fbf8ef;
  --ivory-100: #f4efe3;
  --ink: #12251f;
  --muted: #60716b;
  --line: rgba(231, 191, 109, .28);
  --line-dark: rgba(8, 42, 33, .16);
  --white: #fffdf7;
  --danger: #b6483f;
  --success: #2d8062;
  --shadow: 0 26px 70px rgba(0, 20, 14, .18);
  --shadow-soft: 0 16px 45px rgba(0, 20, 14, .10);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 16px;
  --header-h: 84px;
  --bottom-nav-h: 72px;
  --serif: "Iropke Batang", "Nanum Myeongjo", "Noto Serif KR", "Malgun Gothic", serif;
  --sans: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--green-950); }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--ivory-50); font-family: var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.menu-open, body.dialog-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 9999; left: 14px; top: -70px; padding: 12px 18px; color: var(--green-950); background: var(--gold-400); border-radius: 10px; font-weight: 800; transition: top .2s; }
.skip-link:focus { top: 12px; }

.network-banner { position: fixed; inset: 0 0 auto; z-index: 999; padding: 9px 16px; text-align: center; background: #b14f43; color: white; font-size: 13px; font-weight: 700; }
.network-banner:not([hidden]) + .app-header { top: 36px; }

.app-header { position: sticky; top: 0; z-index: 90; height: var(--header-h); color: var(--white); background: rgba(3, 31, 24, .94); border-top: 3px solid var(--gold-500); border-bottom: 1px solid rgba(231,191,109,.18); backdrop-filter: blur(18px); }
.app-header-inner { max-width: 1560px; height: 100%; margin: 0 auto; padding: 0 34px; display: flex; align-items: center; gap: 28px; }
.app-brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.app-brand-mark { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(231,191,109,.65); border-radius: 13px; color: var(--gold-400); font-family: Georgia, serif; font-size: 24px; }
.app-brand strong { display: block; color: var(--gold-400); font-family: Georgia, serif; font-size: 20px; letter-spacing: .12em; }
.app-brand small { display: block; margin-top: 3px; color: rgba(255,255,255,.55); font-size: 8px; font-weight: 800; letter-spacing: .19em; }
.app-nav { margin-left: auto; display: flex; align-items: center; gap: 24px; }
.app-nav a { position: relative; padding: 30px 0 28px; color: rgba(255,255,255,.68); font-size: 14px; font-weight: 750; white-space: nowrap; }
.app-nav a::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 18px; height: 1px; background: var(--gold-500); transition: left .2s, right .2s; }
.app-nav a:hover, .app-nav a.is-active { color: white; }
.app-nav a.is-active::after { left: 0; right: 0; }
.app-header-actions { display: flex; align-items: center; gap: 10px; }
.app-language { height: 44px; padding: 0 34px 0 15px; color: var(--gold-300); background: #062a21 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23e7bf6d' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 13px center; border: 1px solid rgba(231,191,109,.3); border-radius: 999px; appearance: none; font-size: 12px; font-weight: 800; }
.store-pill { height: 44px; padding: 0 18px; display: inline-flex; align-items: center; gap: 8px; color: var(--gold-300); border: 1px solid rgba(231,191,109,.4); border-radius: 999px; font-family: Georgia, serif; font-size: 14px; font-weight: 700; }
.store-pill:hover { color: var(--green-950); background: var(--gold-400); }
.app-menu-button { display: none; width: 44px; height: 44px; padding: 0 12px; border: 0; border-radius: 13px; background: rgba(255,255,255,.06); }
.app-menu-button span { display: block; height: 1px; margin: 6px 0; background: var(--white); transition: transform .25s, opacity .25s; }
.app-menu-button.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.app-menu-button.is-open span:nth-child(2) { opacity: 0; }
.app-menu-button.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.app-mobile-menu { position: fixed; z-index: 85; inset: var(--header-h) 0 0; padding: 34px clamp(22px, 5vw, 46px) calc(110px + env(safe-area-inset-bottom)); background: rgba(2, 26, 20, .985); color: white; opacity: 0; visibility: hidden; transform: translateY(-12px); transition: .25s ease; overflow-y: auto; }
.app-mobile-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-menu-brand { display: flex; align-items: center; gap: 14px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.mobile-menu-brand > span { width: 36px; height: 36px; display: grid; place-items: center; color: var(--gold-400); border: 1px solid var(--gold-500); border-radius: 10px; font-family: Georgia, serif; }
.mobile-menu-brand strong { font-family: var(--serif); font-size: 20px; font-weight: 600; }
.app-mobile-menu nav { display: grid; margin-top: 16px; }
.app-mobile-menu nav a { display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(231,191,109,.15); }
.app-mobile-menu nav b { color: var(--gold-500); font-size: 11px; letter-spacing: .08em; }
.app-mobile-menu nav span { font-family: var(--serif); font-size: clamp(21px, 6vw, 29px); }
.app-mobile-menu nav small { display: block; margin-top: 4px; color: rgba(255,255,255,.52); font-family: var(--sans); font-size: 12px; }
.app-mobile-menu nav a.is-active span { color: var(--gold-400); }
.mobile-store-link { margin-top: 20px; padding: 15px 18px; display: flex; justify-content: space-between; color: var(--green-950); background: var(--gold-400); border-radius: 14px; font-weight: 850; }

.workspace-main { min-height: 70vh; background: var(--ivory-50); }
.app-view { display: none; }
.app-view.is-active { display: block; }
.workspace-shell { width: min(1480px, calc(100% - 72px)); margin-inline: auto; }
.view-hero { min-height: 510px; padding: 94px max(5vw, 34px) 72px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(340px, .7fr); gap: 72px; align-items: center; color: var(--white); background: radial-gradient(circle at 80% 24%, rgba(231,191,109,.13), transparent 26%), linear-gradient(128deg, #032119 0%, #073128 60%, #0b3c30 100%); overflow: hidden; }
.view-hero-copy { max-width: 960px; }
.view-eyebrow { margin: 0 0 20px; color: var(--gold-400); font-size: 12px; font-weight: 900; letter-spacing: .19em; text-transform: uppercase; }
.view-eyebrow.dark { color: #7b5b1e; }
.view-hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(44px, 5.4vw, 84px); font-weight: 500; line-height: 1.12; letter-spacing: -.05em; }
.view-hero h1 em { color: var(--gold-400); font-style: normal; }
.view-hero-copy > p:not(.view-eyebrow) { max-width: 840px; margin: 30px 0 0; color: rgba(255,255,255,.67); font-size: 18px; line-height: 1.85; word-break: keep-all; }
.view-hero-facts { margin-top: 38px; display: flex; flex-wrap: wrap; gap: 12px; }
.view-hero-facts span { padding: 11px 15px; display: inline-flex; gap: 8px; align-items: baseline; border: 1px solid rgba(231,191,109,.28); border-radius: 999px; color: rgba(255,255,255,.7); font-size: 12px; }
.view-hero-facts b { color: var(--gold-400); font-family: Georgia, serif; font-size: 18px; }
.savori-mini-card { position: relative; min-height: 360px; align-self: stretch; display: flex; align-items: flex-end; overflow: hidden; border: 1px solid rgba(231,191,109,.28); border-radius: var(--radius-xl); background: radial-gradient(circle at 50% 28%, rgba(231,191,109,.26), transparent 38%), #082d24; box-shadow: var(--shadow); }
.savori-mini-card img { position: absolute; inset: -10% 0 auto 4%; width: 58%; height: 128%; object-fit: cover; object-position: 50% 10%; opacity: .88; }
.savori-mini-card div { position: relative; z-index: 1; width: 100%; margin: 22px; padding: 20px; background: rgba(2,26,20,.86); border: 1px solid rgba(231,191,109,.22); border-radius: 18px; backdrop-filter: blur(12px); }
.savori-mini-card span { color: var(--gold-400); font-size: 12px; font-weight: 850; }
.savori-mini-card strong { display: block; margin-top: 8px; font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.55; }
.compact-hero { min-height: 390px; padding-top: 70px; padding-bottom: 58px; }
.compact-hero h1 { font-size: clamp(40px, 4.7vw, 70px); }
.process-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; padding: 30px; border: 1px solid rgba(231,191,109,.25); border-radius: 24px; background: rgba(0,0,0,.1); }
.process-strip span { min-width: 106px; display: grid; place-items: center; gap: 7px; color: rgba(255,255,255,.78); font-size: 12px; font-weight: 750; text-align: center; }
.process-strip b { width: 35px; height: 35px; display: grid; place-items: center; color: var(--green-950); background: var(--gold-400); border-radius: 50%; }
.process-strip i { width: 22px; height: 1px; background: rgba(231,191,109,.4); }

.two-column-shell { padding-block: 78px; display: grid; grid-template-columns: minmax(0, .86fr) minmax(520px, 1.14fr); gap: 30px; align-items: start; }
.tool-panel, .result-panel, .canvas-stage-panel, .canvas-control-panel, .passport-browser, .passport-card, .memory-editor, .memory-controls, .accessibility-panel, .studio-workbench, .partner-form-card { border: 1px solid var(--line-dark); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.tool-panel, .result-panel { padding: clamp(26px, 3vw, 44px); background: white; }
.panel-heading > span { color: #86611f; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.panel-heading h2 { margin: 8px 0 5px; font-family: var(--serif); font-size: clamp(28px, 2.8vw, 42px); font-weight: 550; letter-spacing: -.03em; }
.panel-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.question-form { margin-top: 30px; }
.question-form fieldset { margin: 0 0 28px; padding: 0; border: 0; }
.question-form legend { margin-bottom: 12px; color: #30473f; font-size: 14px; font-weight: 850; }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.choice-grid button { min-height: 48px; padding: 10px 12px; color: #485a54; background: #f7f4ec; border: 1px solid transparent; border-radius: 13px; font-weight: 750; }
.choice-grid button:hover { border-color: rgba(22,78,61,.25); }
.choice-grid button.is-selected { color: white; background: var(--green-800); border-color: var(--green-800); box-shadow: 0 8px 18px rgba(12,54,43,.17); }
.color-choices { grid-template-columns: repeat(2, 1fr); }
.color-choices button { display: flex; align-items: center; gap: 10px; }
.color-choices i { width: 18px; height: 18px; background: var(--swatch); border: 1px solid rgba(0,0,0,.08); border-radius: 50%; }
.primary-action, .secondary-action, .dark-action, .text-action { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 999px; font-weight: 850; transition: transform .18s, box-shadow .18s, background .18s; }
.primary-action { color: #08251d; background: var(--gold-400); border: 1px solid var(--gold-400); }
.primary-action:hover { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(180,132,37,.22); }
.secondary-action { color: var(--green-900); background: white; border: 1px solid rgba(6,48,38,.22); }
.dark-action { color: white; background: var(--green-900); border: 1px solid var(--green-900); }
.text-action { min-height: 36px; padding: 0; color: #6d4e18; background: transparent; border: 0; justify-content: flex-start; }
.full { width: 100%; }
.centered-action { margin: 30px auto 0; display: flex; }
.result-panel { background: #f2ecdf; }
.result-heading { padding-bottom: 20px; border-bottom: 1px solid rgba(6,48,38,.12); }
.recommendation-list { min-height: 420px; margin-top: 22px; display: grid; gap: 14px; }
.result-empty { min-height: 280px; display: grid; place-items: center; align-content: center; gap: 8px; color: #65736f; text-align: center; }
.result-empty > span { width: 54px; height: 54px; display: grid; place-items: center; color: var(--gold-400); background: var(--green-900); border-radius: 50%; font-family: Georgia, serif; font-size: 25px; }
.result-empty strong { color: var(--ink); font-family: var(--serif); font-size: 24px; }
.result-empty p { margin: 0; font-size: 13px; }
.recommend-card { display: grid; grid-template-columns: 150px 1fr; gap: 18px; padding: 14px; background: white; border: 1px solid rgba(6,48,38,.1); border-radius: 20px; }
.recommend-card figure { position: relative; margin: 0; height: 170px; overflow: hidden; border-radius: 14px; background: #e4e0d7; }
.recommend-card figure img { width: 100%; height: 100%; object-fit: cover; }
.recommend-rank { position: absolute; top: 9px; left: 9px; width: 29px; height: 29px; display: grid; place-items: center; color: var(--green-950); background: var(--gold-400); border-radius: 50%; font-size: 11px; font-weight: 900; }
.recommend-copy { align-self: center; }
.recommend-copy > span { color: #8a681f; font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.recommend-copy h3 { margin: 5px 0 8px; font-family: var(--serif); font-size: 27px; font-weight: 600; }
.recommend-copy p { margin: 0; color: #5d6d67; font-size: 13px; line-height: 1.65; }
.recommend-actions { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 7px; }
.recommend-actions a, .recommend-actions button { min-height: 34px; padding: 0 12px; color: var(--green-900); background: #f3eee2; border: 0; border-radius: 999px; font-size: 11px; font-weight: 800; }
.recommend-actions button.is-saved { color: white; background: var(--green-800); }
.transparent-price { margin-top: 20px; padding: 17px; display: grid; grid-template-columns: 1fr 1.3fr auto; align-items: center; gap: 12px; background: rgba(255,255,255,.7); border-radius: 16px; }
.transparent-price div { display: grid; gap: 3px; }
.transparent-price span { color: #66746f; font-size: 11px; }
.transparent-price strong { color: var(--green-900); font-size: 15px; }
.transparent-price button { min-height: 38px; padding: 0 15px; color: white; background: var(--green-900); border: 0; border-radius: 999px; font-size: 12px; font-weight: 850; }

.catalog-section { padding: 20px 0 90px; }
.catalog-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.catalog-heading h2 { margin: 5px 0 8px; font-family: var(--serif); font-size: clamp(34px, 4vw, 58px); font-weight: 550; letter-spacing: -.04em; }
.catalog-heading p { margin: 0; color: var(--muted); line-height: 1.7; }
.catalog-controls { display: flex; gap: 8px; }
.catalog-controls input, .catalog-controls select, #storySearch, #artPickerSearch { min-height: 46px; padding: 0 15px; color: var(--ink); background: white; border: 1px solid var(--line-dark); border-radius: 12px; }
.artwork-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.art-card { position: relative; min-width: 0; overflow: hidden; background: white; border: 1px solid rgba(6,48,38,.1); border-radius: 18px; box-shadow: 0 8px 28px rgba(0,25,18,.06); transition: transform .2s, box-shadow .2s; }
.art-card:hover { transform: translateY(-4px); box-shadow: 0 18px 35px rgba(0,25,18,.12); }
.art-card figure { position: relative; margin: 0; aspect-ratio: 4/3; overflow: hidden; background: #e9e4d8; }
.art-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.art-card:hover img { transform: scale(1.035); }
.art-card-badge { position: absolute; top: 10px; left: 10px; padding: 6px 8px; color: white; background: rgba(3,31,24,.82); border-radius: 999px; font-size: 9px; font-weight: 850; backdrop-filter: blur(8px); }
.art-card-content { padding: 14px; }
.art-card-content > span { color: #8c6a25; font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.art-card h3 { margin: 5px 0 7px; overflow: hidden; font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.art-card p { height: 38px; margin: 0; overflow: hidden; color: #697872; font-size: 11px; line-height: 1.65; }
.art-card-actions { margin-top: 11px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 6px; }
.art-card-actions a, .art-card-actions button { min-height: 34px; padding: 0 10px; border: 0; border-radius: 10px; font-size: 10px; font-weight: 850; }
.art-card-actions a { display: flex; align-items: center; justify-content: center; color: white; background: var(--green-900); text-align: center; }
.art-card-actions .art-card-frame { color: var(--green-950); background: var(--gold-400); }
.art-card-actions .art-card-passport { grid-column: 1 / 3; color: var(--green-900); background: #f2ede2; }
.art-card-actions button { color: var(--green-900); background: #f2ede2; }
.art-card-actions button.is-saved { color: var(--gold-400); background: var(--green-900); }

.canvas-layout { padding-block: 70px 90px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); gap: 24px; align-items: start; }
.canvas-stage-panel { padding: 18px; background: #e9e3d6; }
@media (min-width: 981px) {
  .canvas-stage-panel { position: sticky; top: calc(var(--header-h) + 14px); align-self: start; z-index: 4; }
}
.canvas-toolbar { min-height: 50px; display: flex; align-items: center; gap: 10px; }
.upload-button { min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; color: white; background: var(--green-900); border: 1px solid var(--green-900); border-radius: 12px; font-size: 12px; font-weight: 850; cursor: pointer; }
.upload-button.full { width: 100%; }
.canvas-toolbar > button { min-height: 42px; padding: 0 15px; color: var(--green-900); background: white; border: 1px solid var(--line-dark); border-radius: 12px; font-size: 12px; font-weight: 800; }
.canvas-toolbar > span { margin-left: auto; color: #68756f; font-size: 11px; }
.canvas-wrap { position: relative; overflow: hidden; border-radius: 22px; background: #d8d2c7; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.canvas-wrap canvas { width: 100%; height: auto; display: block; touch-action: none; }
.canvas-guide { position: absolute; left: 50%; bottom: 15px; transform: translateX(-50%); padding: 8px 13px; color: white; background: rgba(2,26,20,.72); border-radius: 999px; font-size: 10px; pointer-events: none; backdrop-filter: blur(8px); }
.canvas-actions { padding-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }
.canvas-control-panel { overflow: hidden; background: white; }
.control-block { padding: 27px; border-bottom: 1px solid var(--line-dark); }
.control-block:last-child { border-bottom: 0; }
.control-block > span { color: #88651f; font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.control-block h2 { margin: 6px 0 16px; font-family: var(--serif); font-size: 28px; font-weight: 600; }
.control-block label { display: grid; gap: 8px; margin: 15px 0; color: #33483f; font-size: 12px; font-weight: 800; }
.control-block output { justify-self: end; margin-top: -23px; color: #85631f; font-size: 11px; }
.control-block input[type="range"] { width: 100%; accent-color: var(--green-800); }
.control-block input[type="text"], .control-block textarea, .control-block select, .memory-controls input[type="text"], .memory-controls textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: #f7f4ec; border: 1px solid rgba(6,48,38,.13); border-radius: 12px; outline: none; }
.control-block input:focus, .control-block textarea:focus, .memory-controls input:focus, .memory-controls textarea:focus { border-color: #9a762b; box-shadow: 0 0 0 3px rgba(231,191,109,.16); }
.artwork-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.picker-thumb { position: relative; aspect-ratio: 1; overflow: hidden; padding: 0; background: #eee8dd; border: 2px solid transparent; border-radius: 12px; }
.picker-thumb img { width: 100%; height: 100%; object-fit: cover; }
.picker-thumb.is-active { border-color: var(--gold-500); box-shadow: 0 0 0 2px rgba(5,38,30,.9); }
.frame-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.frame-options button { min-height: 40px; color: #52625c; background: #f4f0e7; border: 1px solid transparent; border-radius: 10px; font-size: 11px; font-weight: 800; }
.frame-options button.is-active { color: white; background: var(--green-800); }
.price-list { display: grid; gap: 10px; }
.price-list div { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 9px; border-bottom: 1px dashed rgba(6,48,38,.15); }
.price-list b { color: #5d6d67; font-size: 12px; }
.price-list strong { color: var(--green-900); font-size: 13px; }
.fine-note { color: #7a8580; font-size: 10px; line-height: 1.65; }
.quality-store-intro { margin: 8px 0 15px; color:#697872; font-size:12px; line-height:1.65; }
.quality-tier-rail { display:grid; gap:8px; }
.quality-tier { width:100%; min-height:74px; padding:8px; display:grid; grid-template-columns:58px 1fr; align-items:center; gap:10px; color:var(--ink); background:#f7f3ea; border:1px solid rgba(6,48,38,.12); border-radius:14px; text-align:left; transition:.18s ease; }
.quality-tier img { width:58px; height:58px; object-fit:cover; border-radius:10px; background:#e7e0d2; }
.quality-tier span { min-width:0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 8px; }
.quality-tier small { grid-column:1/-1; color:#8a681f; font-size:8px; font-weight:900; letter-spacing:.07em; }
.quality-tier strong { overflow:hidden; font-family:var(--serif); font-size:15px; font-weight:650; white-space:nowrap; text-overflow:ellipsis; }
.quality-tier em { color:var(--green-900); font-size:11px; font-style:normal; font-weight:900; }
.quality-tier.is-active { color:#09281f; background:linear-gradient(135deg,#f4d98d,#edc969); border-color:#a77b22; box-shadow:0 8px 20px rgba(130,91,15,.15); }
.quality-compare-open { width:100%; min-height:42px; margin:10px 0 12px; color:#765416; background:transparent; border:1px solid #c8ab70; border-radius:12px; font-size:11px; font-weight:850; }
.quality-selection { padding:14px; display:flex; justify-content:space-between; align-items:center; gap:12px; background:#f0eadf; border-radius:14px; }
.quality-selection div { display:grid; gap:2px; }.quality-selection small{color:#7a8580;font-size:9px}.quality-selection strong{font-family:var(--serif);font-size:18px}.quality-selection p{margin:0;color:#65736f;font-size:10px}.quality-selection>b{color:#0a3c2f;font-size:15px;white-space:nowrap}
.quality-continue { width:100%; margin-top:10px; }
.quality-compare-dialog { width:min(1060px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:0; border-radius:26px; background:#f8f4eb; box-shadow:0 30px 90px rgba(0,20,14,.35); }
.quality-compare-dialog::backdrop { background:rgba(1,23,17,.78); backdrop-filter:blur(8px); }
.quality-compare-card { position:relative; padding:30px; }.quality-compare-card header h2{margin:3px 0 5px;font-family:var(--serif);font-size:36px}.quality-compare-card header>p:last-child{margin:0;color:#68756f}
.quality-compare-selects { margin:20px 0 12px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }.quality-compare-selects label{display:grid;gap:6px;color:#6c756f;font-size:10px;font-weight:850}.quality-compare-selects select{min-height:44px;padding:0 12px;border:1px solid rgba(6,48,38,.16);border-radius:11px;background:white;color:var(--ink);font-weight:800}
.quality-compare-stage { position:relative; height:min(58vh,570px); overflow:hidden; border-radius:18px; background:#dcd5c8; }.quality-compare-stage>img,.quality-compare-overlay img{width:100%;height:100%;object-fit:cover;object-position:center}.quality-compare-overlay{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.quality-compare-overlay img{width:min(994px,calc(100vw - 92px));max-width:none}.quality-compare-stage input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}.quality-compare-stage i{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#efcf78;pointer-events:none}.quality-compare-stage i::after{content:'↔';position:absolute;left:50%;top:50%;width:44px;height:44px;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;background:#efcf78;color:#08251d;font-style:normal;font-weight:900}
.quality-compare-foot { padding-top:10px; display:flex; justify-content:space-between;gap:12px;color:#66746f;font-size:10px}.quality-compare-foot span:first-child,.quality-compare-foot span:last-child{color:var(--ink);font-weight:900}

.story-hero { background: radial-gradient(circle at 75% 40%, rgba(231,191,109,.15), transparent 24%), linear-gradient(125deg,#031e17,#0d3e31); }
.story-scan-card { position: relative; padding: 40px 30px; display: grid; place-items: center; text-align: center; border: 1px solid rgba(231,191,109,.35); border-radius: 28px; background: rgba(0,0,0,.11); }
.scan-corners::before, .scan-corners::after { content: ""; position: absolute; width: 46px; height: 46px; border-color: var(--gold-500); }
.scan-corners::before { left: 20px; top: 20px; border-left: 2px solid; border-top: 2px solid; }
.scan-corners::after { right: 20px; bottom: 20px; border-right: 2px solid; border-bottom: 2px solid; }
.story-scan-card strong { color: var(--gold-400); font-family: Georgia, serif; font-size: 24px; }
.story-scan-card p { max-width: 320px; color: rgba(255,255,255,.55); font-size: 12px; line-height: 1.65; }
.story-scan-card button { min-height: 42px; padding: 0 18px; color: var(--green-950); background: var(--gold-400); border: 0; border-radius: 999px; font-size: 12px; font-weight: 850; }
.passport-layout { padding-block: 70px; display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 24px; align-items: start; }
.passport-browser { max-height: 760px; padding: 24px; position: sticky; top: calc(var(--header-h) + 20px); background: white; overflow: hidden; }
.passport-browser #storySearch { width: 100%; margin: 18px 0 12px; }
.story-category-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 14px; }
.story-category-tabs button { min-height: 38px; padding: 7px 8px; border: 1px solid #d7d0c2; border-radius: 999px; background: #f7f3ea; color: #53615c; font-size: 12px; font-weight: 800; }
.story-category-tabs button.is-active { border-color: var(--green); background: var(--green); color: #fff; }
.passport-list { max-height: 570px; display: grid; gap: 8px; overflow: auto; padding-right: 4px; }
.passport-list button { padding: 8px; display: grid; grid-template-columns: 60px 1fr; gap: 10px; align-items: center; text-align: left; background: #f5f1e7; border: 1px solid transparent; border-radius: 12px; }
.passport-list button img { width: 60px; height: 54px; object-fit: contain; padding: 2px; background: #ebe6db; border-radius: 8px; image-rendering: auto; }
.passport-list button span { min-width: 0; }
.passport-list button strong { display: block; overflow: hidden; color: var(--ink); font-family: var(--serif); font-size: 15px; white-space: nowrap; text-overflow: ellipsis; }
.passport-list button small { color: #6b7974; font-size: 9px; }
.passport-list button.is-active { background: #e9dfc9; border-color: #a78642; }
.passport-card { min-height: 680px; padding: 24px; display: grid; grid-template-columns: minmax(300px,.8fr) minmax(360px,1fr); grid-template-rows: 1fr auto; gap: 28px; background: white; }
.passport-image-wrap { position: relative; min-height: 520px; overflow: hidden; border-radius: 22px; background: #e7e2d8; }
.passport-image-wrap img { width: 100%; height: 100%; object-fit: contain; background: #e7e2d8; image-rendering: auto; filter: contrast(1.025) saturate(1.02); transform: translateZ(0); }
.passport-image-wrap > span { position: absolute; left: 15px; bottom: 15px; padding: 8px 11px; color: #fff6de; background: rgba(2,26,20,.8); border-radius: 999px; font-size: 10px; font-weight: 850; backdrop-filter: blur(8px); }
.passport-content { align-self: center; }
.passport-content h2 { margin: 6px 0 22px; font-family: var(--serif); font-size: clamp(34px, 4vw, 58px); font-weight: 550; }
.passport-meta { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line-dark); }
.passport-meta div { padding: 13px 5px; border-bottom: 1px solid var(--line-dark); }
.passport-meta dt { color: #7b8983; font-size: 10px; }
.passport-meta dd { margin: 5px 0 0; color: #233a31; font-size: 13px; font-weight: 750; }
.story-copy { margin-top: 22px; padding: 20px; background: #f5f0e4; border-radius: 17px; }
.story-copy span { color: #80601f; font-size: 10px; font-weight: 900; }
.story-copy p { margin: 9px 0 0; color: #465b52; line-height: 1.8; }
.savori-curation { margin-top: 22px; padding: 20px; background: #f5f0e4; border-radius: 17px; }
.curation-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.curation-heading span { color:#80601f; font-size:9px; font-weight:900; letter-spacing:.13em; }
.curation-heading h3 { margin:4px 0 0; color:#15372d; font-family:Georgia,serif; font-size:22px; }
.curation-heading button { min-height:36px; padding:0 13px; border:1px solid #c6b98f; border-radius:999px; color:#17362c; background:#fffaf0; font-size:11px; font-weight:800; }
.curation-status { margin:16px 0 0; color:#5d6d66; font-size:13px; line-height:1.7; }
.curation-sections { margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.curation-sections article { padding:16px; border:1px solid rgba(23,54,44,.12); border-radius:14px; background:rgba(255,255,255,.68); }
.curation-sections b { color:#7a5918; font-size:11px; }
.curation-sections p { margin:8px 0 0; color:#42584f; font-size:13px; line-height:1.75; }
.curation-sections .curation-space,.curation-sections .curation-qr { grid-column:1/-1; }
.curation-disclaimer { display:block; margin-top:13px; color:#79857f; font-size:10px; line-height:1.55; }
.passport-actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 7px; }
.passport-actions button, .passport-actions a { min-height: 39px; padding: 0 13px; display: inline-flex; align-items: center; color: var(--green-900); background: #f1ede4; border: 0; border-radius: 999px; font-size: 11px; font-weight: 800; }
.passport-actions a { color: white; background: var(--green-900); }
.passport-qr { grid-column: 1 / -1; padding: 17px 20px; display: flex; align-items: center; gap: 14px; color: #65736d; background: var(--ivory-100); border-radius: 18px; font-size: 11px; }
.passport-qr img { width: 88px; height: 88px; background: white; border-radius: 8px; }
.partner-callout { margin-bottom: 90px; padding: 38px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 30px; align-items: center; background: var(--gold-300); border-radius: var(--radius-xl); }
.partner-callout h2 { margin: 6px 0 10px; font-family: var(--serif); font-size: clamp(30px,3.5vw,50px); font-weight: 550; }
.partner-callout p { margin: 0; color: #5e5a4f; line-height: 1.7; }
.partner-prices { padding: 22px; display: grid; gap: 12px; background: rgba(255,255,255,.55); border-radius: 18px; }
.partner-prices span { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; }
.partner-prices a { padding-top: 8px; color: var(--green-900); font-weight: 850; }

.memory-hero { background: radial-gradient(circle at 82% 30%, rgba(230,189,104,.19), transparent 25%), linear-gradient(125deg,#08271e,#143e31); }
.memory-principle { padding: 30px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; color: rgba(255,255,255,.8); border: 1px solid var(--line); border-radius: 25px; text-align: center; }
.memory-principle span { padding: 10px 13px; background: rgba(255,255,255,.07); border-radius: 999px; font-size: 12px; font-weight: 750; }
.memory-principle i { color: var(--gold-400); font-style: normal; }
.memory-principle b { flex-basis: 100%; margin-top: 8px; color: var(--gold-400); font-family: var(--serif); font-size: 24px; }
.memory-layout { padding-block: 70px 90px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr); gap: 24px; align-items: start; }
.memory-editor { padding: 18px; background: #e9e3d6; }
.memory-canvas-wrap { position: relative; overflow: hidden; background: #d9d3c8; border-radius: 22px; }
.memory-canvas-wrap canvas { width: 100%; height: auto; display: block; }
.memory-placeholder { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; background: linear-gradient(135deg,#e2ddd2,#f5f1e7); }
.memory-placeholder > span { width: 50px; height: 50px; display: grid; place-items: center; color: white; background: var(--green-900); border-radius: 50%; font-size: 25px; }
.memory-placeholder strong { font-family: var(--serif); font-size: 24px; }
.memory-placeholder p { max-width: 420px; margin: 0 20px; color: #65736d; font-size: 12px; line-height: 1.65; }
.memory-actions { padding-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }
.memory-controls { overflow: hidden; background: white; }
.memory-suggestion { padding: 13px; background: #f3eee3; border-radius: 13px; }
.memory-suggestion button { padding: 0; color: #76571b; background: none; border: 0; font-size: 11px; font-weight: 850; }
.memory-suggestion p { margin: 6px 0 0; color: #61706a; font-size: 11px; line-height: 1.6; }
.template-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.template-options button { min-height: 42px; color: #5e6d67; background: #f3efe6; border: 1px solid transparent; border-radius: 10px; font-size: 10px; font-weight: 800; }
.template-options button.is-active { color: white; background: var(--green-800); }
.control-block input[type="color"] { width: 100%; height: 42px; padding: 4px; background: white; border: 1px solid var(--line-dark); border-radius: 10px; }
.product-options { display: grid; gap: 7px; }
.product-options button { padding: 12px; display: flex; justify-content: space-between; gap: 12px; color: #40544b; background: #f4f0e7; border: 1px solid transparent; border-radius: 12px; text-align: left; }
.product-options button.is-selected { color: white; background: var(--green-800); }
.product-options b { color: #8a671f; font-size: 11px; }
.product-options button.is-selected b { color: var(--gold-300); }
.rights-check { display: flex !important; grid-template-columns: auto 1fr !important; flex-direction: row; align-items: flex-start; gap: 9px !important; color: #61706a !important; font-size: 10px !important; font-weight: 600 !important; line-height: 1.55; }
.rights-check input { margin-top: 2px; accent-color: var(--green-800); }

.studio-hero { min-height: 560px; background: radial-gradient(circle at 82% 35%, rgba(231,191,109,.16), transparent 27%), linear-gradient(125deg,#021c15,#0a362a); }
.studio-principles { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 8px; }
.studio-principles span { padding: 10px 13px; color: var(--gold-300); border: 1px solid rgba(231,191,109,.28); border-radius: 999px; font-size: 11px; font-weight: 800; }
.accessibility-card { padding: 32px; color: var(--green-950); background: var(--gold-300); border-radius: 28px; box-shadow: var(--shadow); }
.accessibility-card span { font-size: 10px; font-weight: 950; letter-spacing: .16em; }
.accessibility-card strong { display: block; margin: 9px 0 12px; font-family: var(--serif); font-size: 32px; line-height: 1.35; }
.accessibility-card p { margin: 0; color: #554c39; font-size: 13px; line-height: 1.7; }
.studio-layout { padding-block: 70px; display: grid; grid-template-columns: 360px minmax(0,1fr); gap: 24px; align-items: start; }
.accessibility-panel { position: sticky; top: calc(var(--header-h) + 20px); overflow: hidden; background: white; }
.accessibility-panel .panel-heading { padding: 27px; border-bottom: 1px solid var(--line-dark); }
.accessibility-options { padding: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.accessibility-options button { padding: 14px 10px; display: grid; grid-template-columns: 38px 1fr; gap: 9px; align-items: center; color: #40544b; background: #f5f1e7; border: 1px solid transparent; border-radius: 13px; text-align: left; }
.accessibility-options button > b { width: 38px; height: 38px; display: grid; place-items: center; background: white; border-radius: 10px; font-size: 17px; }
.accessibility-options button span { font-size: 11px; font-weight: 850; }
.accessibility-options button small { display: block; margin-top: 3px; color: #7a8782; font-size: 8px; font-weight: 600; }
.accessibility-options button.is-active { color: white; background: var(--green-800); border-color: var(--gold-500); }
.accessibility-options button.is-active small { color: rgba(255,255,255,.62); }
.studio-ethics { padding: 23px 27px 28px; color: white; background: var(--green-900); }
.studio-ethics strong { color: var(--gold-400); font-family: var(--serif); font-size: 20px; }
.studio-ethics ul { margin: 13px 0 0; padding-left: 18px; color: rgba(255,255,255,.66); font-size: 11px; line-height: 1.75; }
.studio-workbench { min-height: 700px; padding: clamp(25px,3vw,45px); background: white; }
.studio-step { display: none; }
.studio-step.is-active { display: block; }
.studio-step-head > span { color: #86611f; font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.studio-step-head h2 { margin: 7px 0 6px; font-family: var(--serif); font-size: clamp(32px,3.5vw,50px); font-weight: 550; }
.studio-step-head p { color: #687771; }
.studio-input-grid { margin: 28px 0; display: grid; grid-template-columns: minmax(280px,.7fr) minmax(0,1.3fr); gap: 24px; }
.source-upload { min-height: 480px; cursor: pointer; }
.source-upload > span { height: 100%; min-height: 480px; display: grid; place-items: center; align-content: center; gap: 8px; overflow: hidden; color: #66746f; background: #ede8dc; border: 1px dashed rgba(6,48,38,.3); border-radius: 20px; text-align: center; }
.source-upload b { width: 50px; height: 50px; display: grid; place-items: center; color: white; background: var(--green-900); border-radius: 50%; font-size: 25px; }
.source-upload strong { font-family: var(--serif); font-size: 22px; }
.source-upload small { font-size: 10px; }
.source-upload img { width: 100%; height: 100%; min-height: 480px; object-fit: contain; background: #d7d1c5; }
.studio-fields { display: grid; gap: 16px; }
.studio-fields label, .partner-form-card label { display: grid; gap: 7px; color: #33483f; font-size: 12px; font-weight: 850; }
.studio-fields input, .studio-fields textarea, .studio-fields select, .partner-form-card input, .partner-form-card textarea, .partner-form-card select, .order-dialog input, .order-dialog textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: #f6f2e9; border: 1px solid rgba(6,48,38,.14); border-radius: 12px; outline: none; }
.voice-button { min-height: 46px; color: white; background: var(--green-800); border: 0; border-radius: 13px; font-weight: 850; }
.voice-button span { color: #f17166; }
.voice-button.is-listening { background: #933f38; animation: pulseVoice 1s infinite; }
@keyframes pulseVoice { 50% { box-shadow: 0 0 0 8px rgba(147,63,56,.14); } }
.assist-plan { margin: 28px 0; display: grid; gap: 10px; }
.assist-card { padding: 18px; display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; background: #f5f1e7; border: 1px solid transparent; border-radius: 16px; }
.assist-card:has(input:checked) { background: #edf3ef; border-color: #7e9c8e; }
.assist-card input { margin-top: 5px; accent-color: var(--green-800); transform: scale(1.15); }
.assist-card span { color: #8a671f; font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.assist-card h3 { margin: 4px 0 7px; font-family: var(--serif); font-size: 22px; }
.assist-card p { margin: 0; color: #5f6f68; font-size: 12px; line-height: 1.7; }
.studio-approval { padding: 16px; background: #fff8e6; border: 1px solid #ead392; border-radius: 13px; }
.studio-approval label { display: flex; align-items: flex-start; gap: 10px; color: #5e553f; font-size: 12px; line-height: 1.6; }
.studio-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.completion-card { min-height: 560px; display: grid; place-items: center; align-content: center; text-align: center; }
.completion-card > span { color: #89651f; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.completion-card h2 { max-width: 760px; margin: 14px 0; font-family: var(--serif); font-size: clamp(34px,4vw,56px); font-weight: 550; }
.completion-card p { max-width: 620px; color: #65746e; line-height: 1.7; }
.completion-card div { margin-top: 20px; display: flex; gap: 8px; }
.studio-services { padding-bottom: 90px; }
.service-price-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.service-price-grid article { padding: 25px; display: flex; flex-direction: column; min-height: 315px; background: white; border: 1px solid var(--line-dark); border-radius: 20px; box-shadow: var(--shadow-soft); }
.service-price-grid article > span { color: #85631f; font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.service-price-grid h3 { margin: 10px 0; font-family: var(--serif); font-size: 25px; }
.service-price-grid p { color: #67756f; font-size: 12px; line-height: 1.7; }
.service-price-grid strong { margin-top: auto; color: var(--green-900); font-size: 17px; }
.service-price-grid button, .service-price-grid a { min-height: 38px; margin-top: 14px; display: flex; align-items: center; justify-content: center; color: white; background: var(--green-900); border: 0; border-radius: 999px; font-size: 11px; font-weight: 850; }

body.a11y-large { font-size: 118%; }
body.a11y-large .workspace-main button, body.a11y-large .workspace-main input, body.a11y-large .workspace-main textarea, body.a11y-large .workspace-main select { font-size: 1rem; }
body.a11y-contrast { --ivory-50: #fff; --muted: #263b33; --line-dark: rgba(0,0,0,.38); }
body.a11y-contrast .tool-panel, body.a11y-contrast .result-panel, body.a11y-contrast .canvas-control-panel, body.a11y-contrast .studio-workbench { border-width: 2px; }
body.a11y-onehand .studio-actions, body.a11y-onehand .canvas-actions, body.a11y-onehand .memory-actions { position: sticky; z-index: 10; bottom: calc(var(--bottom-nav-h) + 8px); padding: 10px; background: rgba(255,255,255,.94); border-radius: 16px; box-shadow: var(--shadow); }
body.a11y-reduced-motion *, body.a11y-reduced-motion *::before, body.a11y-reduced-motion *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }

.my-hero { background: linear-gradient(125deg,#03241b,#144737); }
.my-id-card { padding: 28px; display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 24px; background: rgba(0,0,0,.11); }
.my-id-card span { color: rgba(255,255,255,.55); font-size: 11px; }
.my-id-card strong { color: var(--gold-400); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 18px; word-break: break-all; }
.my-id-card button { justify-self: start; padding: 8px 11px; color: white; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: 999px; font-size: 10px; }
.my-dashboard { padding-block: 70px 90px; }
.my-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.my-summary article { padding: 26px; background: white; border: 1px solid var(--line-dark); border-radius: 20px; box-shadow: var(--shadow-soft); }
.my-summary span { color: #6d7b75; font-size: 12px; }
.my-summary strong { display: block; margin-top: 8px; color: var(--green-900); font-family: Georgia, serif; font-size: 40px; }
.my-tabs { margin-top: 28px; display: flex; gap: 7px; border-bottom: 1px solid var(--line-dark); }
.my-tabs button { padding: 13px 18px; color: #6a7973; background: none; border: 0; border-bottom: 2px solid transparent; font-weight: 800; }
.my-tabs button.is-active { color: var(--green-900); border-bottom-color: var(--gold-500); }
.my-panel { display: none; padding-top: 24px; }
.my-panel.is-active { display: block; }
.my-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.project-list { display: grid; gap: 10px; }
.project-card { padding: 18px; display: grid; grid-template-columns: 80px 1fr auto; gap: 16px; align-items: center; background: white; border: 1px solid var(--line-dark); border-radius: 16px; }
.project-thumb { width: 80px; height: 70px; object-fit: cover; background: #eee8dc; border-radius: 10px; }
.project-card h3 { margin: 0 0 5px; font-family: var(--serif); font-size: 21px; }
.project-card p { margin: 0; color: #6c7974; font-size: 11px; }
.project-card small { display: block; margin-top: 7px; color: #8a671f; }
.project-card-actions { display: grid; gap: 5px; }
.project-card-actions button, .project-card-actions a { min-height: 34px; padding: 0 11px; display: flex; align-items: center; justify-content: center; color: var(--green-900); background: #f3eee4; border: 0; border-radius: 9px; font-size: 10px; font-weight: 800; }
.project-card-actions .danger { color: var(--danger); }

.partner-hero { min-height: 510px; background: radial-gradient(circle at 82% 30%, rgba(231,191,109,.18), transparent 28%), linear-gradient(125deg,#021d16,#123e31); }
.partner-winwin { padding: 30px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--line); border-radius: 25px; }
.partner-winwin span { padding: 10px 13px; color: white; background: rgba(255,255,255,.07); border-radius: 999px; font-size: 12px; font-weight: 800; }
.partner-winwin i { color: var(--gold-400); font-style: normal; }
.partner-winwin strong { flex-basis: 100%; color: var(--gold-400); text-align: center; }
.space-proposal { padding: 74px 0 80px; background: #f4efe4; }
.space-proposal-shell { display: grid; grid-template-columns: minmax(240px,.42fr) minmax(0,1fr); gap: 18px 34px; align-items: end; }
.space-proposal-heading h2 { margin: 9px 0 16px; font-family: var(--serif); font-size: clamp(38px,4.2vw,64px); font-weight: 550; line-height: 1.06; }
.space-proposal-heading > p:last-child { max-width: 500px; color: #65736e; line-height: 1.75; }
.space-proposal-tabs { display: flex; justify-content: flex-end; gap: 8px; }
.space-proposal-tabs button { min-width: 112px; min-height: 48px; padding: 0 20px; color: var(--green-900); background: transparent; border: 1px solid rgba(6,48,38,.2); border-radius: 999px; font-weight: 850; }
.space-proposal-tabs button.is-active { color: var(--green-950); background: var(--gold-400); border-color: var(--gold-500); }
.space-proposal-stage { grid-column: 1 / -1; min-height: 610px; display: grid; grid-template-columns: minmax(0,1.42fr) minmax(330px,.58fr); overflow: hidden; background: white; border: 1px solid var(--line-dark); border-radius: 28px; box-shadow: var(--shadow-soft); }
.space-proposal-stage figure { min-height: 610px; margin: 0; overflow: hidden; background: var(--green-950); }
.space-proposal-stage figure img { width: 100%; height: 100%; display: block; object-fit: cover; transition: opacity .18s ease, transform .55s ease; }
.space-proposal-stage.is-changing figure img { opacity: .35; transform: scale(1.015); }
.space-proposal-copy { padding: 42px 38px; display: flex; flex-direction: column; justify-content: center; }
.space-proposal-copy h3 { margin: 7px 0 14px; font-family: var(--serif); font-size: clamp(31px,3vw,46px); font-weight: 550; line-height: 1.18; }
.space-proposal-copy > p:not(.view-eyebrow) { color: #5f7069; line-height: 1.8; }
.space-proposal-copy ul { margin: 14px 0 24px; padding-left: 20px; color: #24473b; line-height: 1.9; }
.space-proposal-copy .primary-action { align-self: flex-start; }
.space-proposal-copy small { margin-top: 18px; color: #7f8b86; line-height: 1.6; }
.partner-layout { padding-block: 70px 90px; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); gap: 24px; align-items: start; }
.partner-type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.partner-type-grid article { padding: 28px; min-height: 280px; background: white; border: 1px solid var(--line-dark); border-radius: 20px; box-shadow: var(--shadow-soft); }
.partner-type-grid article > span { color: #89651f; font-size: 10px; font-weight: 900; }
.partner-type-grid h2 { margin: 8px 0 10px; font-family: var(--serif); font-size: 29px; }
.partner-type-grid p { color: #65736e; font-size: 12px; line-height: 1.7; }
.partner-type-grid ul { padding-left: 17px; color: #40564d; font-size: 11px; line-height: 1.8; }
.partner-policy { margin-top: 14px; padding: 22px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; background: var(--green-900); border-radius: 18px; color: white; }
.partner-policy strong { margin-right: 8px; color: var(--gold-400); font-family: var(--serif); }
.partner-policy span { padding: 7px 10px; color: rgba(255,255,255,.7); border: 1px solid rgba(231,191,109,.2); border-radius: 999px; font-size: 10px; }
.partner-form-card { position: sticky; top: calc(var(--header-h) + 20px); padding: 28px; background: white; }
.partner-form-card h2 { margin: 7px 0 20px; font-family: var(--serif); font-size: 34px; }
.partner-form-card form { display: grid; gap: 14px; }

.app-footer { color: rgba(255,255,255,.68); background: var(--green-950); border-top: 1px solid rgba(231,191,109,.22); }
.app-footer-inner { width: min(1480px, calc(100% - 72px)); margin: 0 auto; padding: 55px 0 38px; display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.app-footer strong { display: block; color: var(--gold-400); font-family: Georgia, serif; font-size: 24px; letter-spacing: .1em; }
.app-footer p { max-width: 580px; line-height: 1.7; }
.app-footer a { display: inline-block; margin: 10px 16px 0 0; color: white; font-size: 12px; font-weight: 750; }
.app-footer dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; align-content: start; }
.app-footer dl div { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.app-footer dt { color: rgba(255,255,255,.4); font-size: 10px; }
.app-footer dd { margin: 5px 0 0; color: rgba(255,255,255,.78); font-size: 12px; }
.app-footer-bottom { max-width: 1480px; margin: 0 auto; padding: 18px 0 28px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.08); font-size: 10px; }

.app-bottom-nav { display: none; }
.toast-region { position: fixed; z-index: 150; right: 22px; bottom: 24px; display: grid; gap: 8px; pointer-events: none; }
.toast { max-width: 360px; padding: 13px 16px; color: white; background: rgba(3,35,27,.94); border: 1px solid rgba(231,191,109,.3); border-radius: 13px; box-shadow: var(--shadow); font-size: 12px; line-height: 1.55; animation: toastIn .2s ease; }
.toast.is-error { background: rgba(133,49,43,.96); }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px); } }

.order-dialog, .art-picker-dialog, .quick-passport-dialog { width: min(620px, calc(100% - 28px)); max-height: calc(100dvh - 30px); padding: 0; border: 0; border-radius: 24px; box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.order-dialog::backdrop, .art-picker-dialog::backdrop, .quick-passport-dialog::backdrop { background: rgba(0,20,14,.72); backdrop-filter: blur(8px); }
.order-dialog-card { position: relative; padding: 34px; display: grid; gap: 13px; background: var(--ivory-50); overflow-y: auto; }
.dialog-close { position: absolute; top: 14px; right: 14px; width: 38px; height: 38px; color: var(--green-900); background: white; border: 1px solid var(--line-dark); border-radius: 50%; font-size: 22px; }
.order-dialog h2, .art-picker-dialog h2 { margin: 0 0 7px; font-family: var(--serif); font-size: 34px; }
.order-selected { padding: 16px; display: flex; justify-content: space-between; gap: 15px; background: #eee5d3; border-radius: 14px; }
.order-selected strong { color: var(--green-900); }
.order-dialog p { color: #65736e; font-size: 11px; line-height: 1.7; }
.order-dialog label { display: grid; gap: 6px; color: #33473f; font-size: 11px; font-weight: 800; }
.dialog-store-link { padding-top: 5px; color: #73571f; font-size: 11px; font-weight: 850; text-align: center; }
.art-picker-dialog { width: min(1100px, calc(100% - 28px)); }
.art-picker-dialog-card { position: relative; max-height: calc(100dvh - 30px); padding: 34px; background: var(--ivory-50); overflow-y: auto; }
.art-picker-dialog #artPickerSearch { width: min(400px,100%); margin: 8px 0 22px; }
.compact-grid { grid-template-columns: repeat(5,1fr); }
.art-picker-dialog .art-card figure { cursor: pointer; }
.quick-passport-dialog { width: min(940px, calc(100% - 28px)); overflow: hidden; background: var(--ivory-50); }
.quick-passport-card { position: relative; display: grid; grid-template-columns: minmax(280px,.82fr) minmax(360px,1.18fr); max-height: calc(100dvh - 30px); overflow-y: auto; }
.quick-passport-visual { min-height: 560px; margin: 0; display: grid; place-items: center; padding: 34px; background: #e8e1d4; }
.quick-passport-visual img { width: 100%; max-height: 650px; object-fit: contain; filter: saturate(1.04) contrast(1.03); }
.quick-passport-copy { padding: 48px 38px 36px; }
.quick-passport-copy h2 { margin: 5px 42px 12px 0; font-family: var(--serif); font-size: clamp(34px,4vw,52px); line-height: 1.16; }
.quick-passport-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 20px; }
.quick-passport-meta span { padding: 7px 10px; color: #76591e; background: #eee5d3; border-radius: 999px; font-size: 10px; font-weight: 850; }
.quick-passport-copy section { padding: 17px 0; border-top: 1px solid var(--line-dark); }
.quick-passport-copy section small { display: block; margin-bottom: 7px; color: #8b641e; font-size: 10px; font-weight: 900; }
.quick-passport-copy section p { margin: 0; color: #43564f; font-size: 13px; line-height: 1.75; }
.quick-passport-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 9px; }
.quick-passport-actions a { display: flex; align-items: center; justify-content: center; }

@media (max-width: 1240px) {
  .app-nav { gap: 14px; }
  .app-nav a { font-size: 12px; }
  .store-pill { display: none; }
  .view-hero { gap: 40px; }
  .artwork-grid { grid-template-columns: repeat(4,1fr); }
  .service-price-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 980px) {
  :root { --header-h: 70px; }
  .app-header-inner { padding: 0 18px; }
  .app-brand-mark { width: 40px; height: 40px; }
  .app-brand strong { font-size: 17px; }
  .app-nav { display: none; }
  .app-header-actions { margin-left: auto; }
  .app-menu-button { display: block; }
  .app-language { height: 40px; }
  .view-hero { min-height: auto; padding: 64px 28px; grid-template-columns: 1fr; gap: 35px; }
  .view-hero h1 { font-size: clamp(42px,8vw,66px); }
  .savori-mini-card { min-height: 310px; }
  .two-column-shell, .canvas-layout, .memory-layout, .studio-layout, .partner-layout { grid-template-columns: 1fr; }
  .two-column-shell { padding-block: 48px; }
  .workspace-shell { width: min(100% - 36px, 850px); }
  .artwork-grid { grid-template-columns: repeat(3,1fr); }
  .canvas-control-panel, .memory-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .canvas-control-panel .control-block:last-child, .memory-controls .control-block:last-child { grid-column: 1 / -1; }
  .passport-layout { grid-template-columns: 1fr; }
  .passport-browser { position: static; max-height: none; }
  .passport-list { max-height: 310px; grid-template-columns: 1fr 1fr; }
  .passport-card { grid-template-columns: minmax(260px,.7fr) minmax(320px,1fr); }
  .studio-input-grid { grid-template-columns: 1fr; }
  .source-upload, .source-upload > span, .source-upload img { min-height: 360px; }
  .accessibility-panel, .partner-form-card { position: static; }
  .partner-callout { grid-template-columns: 1fr; }
  .my-grid { grid-template-columns: repeat(3,1fr); }
  .app-footer-inner { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  :root { --bottom-nav-h: 66px; }
  body { padding-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom)); }
  .app-header { height: var(--header-h); }
  .app-header-inner { padding: 0 12px; gap: 8px; }
  .app-brand { gap: 8px; }
  .app-brand-mark { width: 38px; height: 38px; border-radius: 11px; font-size: 20px; }
  .app-brand strong { font-size: 15px; letter-spacing: .08em; }
  .app-brand small { display: none; }
  .app-language { max-width: 92px; height: 38px; padding-left: 12px; font-size: 11px; }
  .app-menu-button { width: 40px; height: 40px; }
  .app-mobile-menu { inset-top: var(--header-h); }
  .workspace-shell { width: min(100% - 24px, 620px); }
  .view-hero { padding: 47px 19px 42px; gap: 27px; }
  .view-eyebrow { margin-bottom: 13px; font-size: 9px; letter-spacing: .14em; }
  .view-hero h1 { font-size: clamp(34px,10.4vw,48px); line-height: 1.15; letter-spacing: -.045em; }
  .view-hero-copy > p:not(.view-eyebrow) { margin-top: 19px; font-size: 14px; line-height: 1.75; }
  .view-hero-facts { margin-top: 24px; gap: 6px; }
  .view-hero-facts span { padding: 8px 10px; font-size: 9px; }
  .view-hero-facts b { font-size: 14px; }
  .savori-mini-card { min-height: 260px; border-radius: 23px; }
  .savori-mini-card img { width: 68%; left: -2%; }
  .savori-mini-card div { margin: 14px; padding: 14px; }
  .savori-mini-card strong { font-size: 17px; }
  .compact-hero { padding-block: 42px; }
  .process-strip { padding: 18px 12px; gap: 7px; }
  .process-strip span { min-width: 68px; font-size: 9px; }
  .process-strip i { width: 9px; }
  .process-strip b { width: 28px; height: 28px; }
  .two-column-shell, .canvas-layout, .passport-layout, .memory-layout, .studio-layout, .partner-layout { padding-block: 34px 50px; gap: 14px; }
  .tool-panel, .result-panel, .canvas-stage-panel, .canvas-control-panel, .passport-browser, .passport-card, .memory-editor, .memory-controls, .accessibility-panel, .studio-workbench, .partner-form-card { border-radius: 20px; }
  .tool-panel, .result-panel { padding: 22px 17px; }
  .panel-heading h2 { font-size: 28px; }
  .choice-grid { grid-template-columns: repeat(2,1fr); }
  .choice-grid button { min-height: 45px; font-size: 12px; }
  .recommend-card { grid-template-columns: 108px 1fr; gap: 12px; padding: 10px; }
  .recommend-card figure { height: 135px; }
  .recommend-copy h3 { font-size: 20px; }
  .recommend-copy p { font-size: 10px; }
  .transparent-price { grid-template-columns: 1fr 1fr; }
  .transparent-price button { grid-column: 1 / -1; }
  .catalog-section { padding-bottom: 55px; }
  .catalog-heading { display: grid; gap: 16px; }
  .catalog-heading h2 { font-size: 36px; }
  .catalog-controls { display: grid; grid-template-columns: 1fr 1fr; }
  .artwork-grid, .compact-grid { grid-template-columns: repeat(2,1fr); gap: 9px; }
  .quick-passport-dialog { width: calc(100% - 18px); max-height: calc(100dvh - 18px); border-radius: 20px; }
  .quick-passport-card { grid-template-columns: 1fr; max-height: calc(100dvh - 18px); }
  .quick-passport-visual { min-height: 0; height: 38dvh; padding: 20px; }
  .quick-passport-copy { padding: 25px 18px 22px; }
  .quick-passport-copy h2 { font-size: 31px; }
  .quick-passport-copy section p { font-size: 12px; }
  .quick-passport-actions { grid-template-columns: 1fr; }
  .art-card { border-radius: 14px; }
  .art-card-content { padding: 11px; }
  .art-card h3 { font-size: 16px; }
  .art-card p { height: 32px; font-size: 9px; }
  .canvas-stage-panel, .memory-editor { padding: 9px; }
  .canvas-toolbar { flex-wrap: wrap; padding: 4px; }
  .canvas-toolbar > span { width: 100%; margin-left: 0; }
  .canvas-guide { display: none; }
  .canvas-actions, .memory-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .canvas-actions .dark-action, .memory-actions .primary-action { grid-column: 1 / -1; }
  .canvas-control-panel, .memory-controls { display: block; }
  .control-block { padding: 22px 17px; }
  .quality-tier-rail { margin-inline:-1px; display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; padding:1px 1px 8px; scrollbar-width:none; }
  .quality-tier { flex:0 0 82%; min-height:82px; scroll-snap-align:start; grid-template-columns:62px 1fr; }
  .quality-tier img { width:62px; height:62px; }
  .quality-compare-card { padding:22px 12px 16px; }.quality-compare-card header h2{font-size:29px}.quality-compare-stage{height:54dvh}.quality-compare-overlay img{width:calc(100vw - 56px)}.quality-compare-foot span:nth-child(2){display:none}
  .passport-list { grid-template-columns: 1fr; max-height: 270px; }
  .passport-card { padding: 12px; grid-template-columns: 1fr; gap: 18px; }
  .savori-curation { padding:15px; }
  .curation-heading h3 { font-size:19px; }
  .curation-sections { grid-template-columns:1fr; }
  .curation-sections .curation-space,.curation-sections .curation-qr { grid-column:auto; }
  .passport-image-wrap { min-height: 360px; }
  .passport-content { padding: 0 5px; }
  .passport-content h2 { font-size: 34px; }
  .passport-qr { display: grid; grid-template-columns: 72px 1fr; }
  .passport-qr img { width: 72px; height: 72px; }
  .partner-callout { width: calc(100% - 24px); padding: 24px 18px; margin-bottom: 55px; }
  .memory-principle { padding: 20px 12px; gap: 6px; }
  .memory-principle span { padding: 8px 9px; font-size: 9px; }
  .memory-principle b { font-size: 18px; }
  .accessibility-card { padding: 23px 18px; }
  .accessibility-card strong { font-size: 25px; }
  .studio-hero { min-height: auto; }
  .studio-principles span { font-size: 9px; }
  .accessibility-options { padding: 12px; }
  .studio-workbench { min-height: 600px; padding: 22px 16px; }
  .studio-step-head h2 { font-size: 32px; }
  .source-upload, .source-upload > span, .source-upload img { min-height: 300px; }
  .studio-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .studio-actions .dark-action { grid-column: 1 / -1; }
  .service-price-grid { grid-template-columns: 1fr; }
  .service-price-grid article { min-height: 250px; }
  .my-summary { gap: 7px; }
  .my-summary article { padding: 16px 12px; border-radius: 14px; }
  .my-summary span { font-size: 9px; }
  .my-summary strong { font-size: 29px; }
  .my-tabs { overflow-x: auto; }
  .my-tabs button { flex: 0 0 auto; padding-inline: 12px; font-size: 11px; }
  .my-grid { grid-template-columns: repeat(2,1fr); }
  .project-card { grid-template-columns: 64px 1fr; gap: 10px; padding: 12px; }
  .project-thumb { width: 64px; height: 58px; }
  .project-card-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .partner-type-grid { grid-template-columns: 1fr; }
  .partner-type-grid article { min-height: 230px; }
  .partner-winwin { padding: 20px 10px; gap: 5px; }
  .partner-winwin span { padding: 8px; font-size: 9px; }
  .space-proposal { padding: 38px 0 48px; }
  .space-proposal-shell { grid-template-columns: 1fr; gap: 18px; }
  .space-proposal-heading h2 { font-size: 38px; }
  .space-proposal-tabs { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .space-proposal-tabs button { flex: 1 0 88px; min-width: 88px; min-height: 44px; padding-inline: 14px; }
  .space-proposal-stage { grid-column: auto; min-height: 0; grid-template-columns: 1fr; border-radius: 20px; }
  .space-proposal-stage figure { min-height: 0; aspect-ratio: 4 / 3; }
  .space-proposal-copy { padding: 25px 20px 27px; }
  .space-proposal-copy h3 { font-size: 29px; }
  .space-proposal-copy .primary-action { width: 100%; }
  .app-footer-inner { width: calc(100% - 32px); padding-block: 38px 25px; gap: 28px; }
  .app-footer dl { grid-template-columns: 1fr; }
  .app-footer-bottom { width: calc(100% - 32px); padding-bottom: 22px; display: grid; }
  .app-bottom-nav { position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; height: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom)); padding: 7px 7px env(safe-area-inset-bottom); display: grid; grid-template-columns: repeat(5,1fr); color: #687771; background: rgba(255,253,247,.95); border-top: 1px solid rgba(6,48,38,.13); box-shadow: 0 -10px 30px rgba(0,25,18,.08); backdrop-filter: blur(16px); }
  .app-bottom-nav a { display: grid; place-items: center; align-content: center; gap: 2px; font-size: 9px; font-weight: 750; }
  .app-bottom-nav a > span { width: 28px; height: 28px; display: grid; place-items: center; color: var(--green-900); border-radius: 9px; font-size: 15px; }
  .app-bottom-nav a.is-active { color: var(--green-900); }
  .app-bottom-nav a.is-active > span { color: var(--green-950); background: var(--gold-400); }
  .toast-region { left: 12px; right: 12px; bottom: calc(var(--bottom-nav-h) + 12px + env(safe-area-inset-bottom)); }
  .toast { max-width: none; }
  .order-dialog-card, .art-picker-dialog-card { padding: 26px 17px; }
  .art-picker-dialog { max-height: calc(100dvh - 18px); }
}

@media (max-width: 390px) {
  .app-brand strong { font-size: 14px; }
  .app-language { max-width: 82px; padding-left: 10px; }
  .view-hero h1 { font-size: 35px; }
  .view-hero-copy > p:not(.view-eyebrow) { font-size: 13px; }
  .recommend-card { grid-template-columns: 92px 1fr; }
  .recommend-card figure { height: 122px; }
  .art-card h3 { font-size: 15px; }
  .passport-image-wrap { min-height: 310px; }
  .accessibility-options { grid-template-columns: 1fr; }
}

@media (display-mode: standalone) and (max-width: 720px) {
  .app-header { padding-top: env(safe-area-inset-top); height: calc(var(--header-h) + env(safe-area-inset-top)); }
  .app-mobile-menu { inset: calc(var(--header-h) + env(safe-area-inset-top)) 0 0; }
  .view-hero { padding-top: 39px; }
}

@media print {
  .app-header, .app-mobile-menu, .app-bottom-nav, .app-footer, .toast-region, .passport-browser, .passport-actions, .partner-callout { display: none !important; }
  body { padding: 0; background: white; }
  .app-view { display: none !important; }
  .app-view[data-view="story"].is-active { display: block !important; }
  .view-hero { display: none; }
  .passport-layout { width: 100%; padding: 0; display: block; }
  .passport-card { box-shadow: none; border: 0; }
}

/* One-quality focus preview — one visual decision at a time */
.quality-focus-dialog{width:min(1080px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:28px;background:#f8f3e8;box-shadow:0 30px 100px rgba(2,29,22,.35)}
.quality-focus-dialog::backdrop{background:rgba(1,27,20,.78);backdrop-filter:blur(8px)}
.quality-focus-card{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);min-height:620px;overflow:auto}
.quality-focus-visual{position:relative;min-height:620px;margin:0;padding:44px;display:grid;place-items:center;background:#0b2d24}
.quality-focus-visual img{display:block;width:100%;height:100%;max-height:70dvh;object-fit:contain;filter:saturate(1.02) contrast(1.015);box-shadow:0 22px 60px rgba(0,0,0,.28)}
.quality-focus-visual span{position:absolute;left:25px;bottom:22px;color:#e9c56f;font-size:10px;font-weight:850;letter-spacing:.18em}
.quality-focus-copy{padding:72px 48px 44px;align-self:center;color:#102e25}
.quality-focus-copy h2{margin:0;font-family:var(--serif);font-size:clamp(42px,5vw,68px);font-weight:600;line-height:1.05}
.quality-focus-lead{margin:22px 0 30px;color:#566961;font-size:15px;line-height:1.85}
.quality-focus-facts{margin:0;display:grid;border-top:1px solid rgba(13,48,38,.14)}
.quality-focus-facts div{padding:16px 0;display:grid;grid-template-columns:105px 1fr;gap:14px;border-bottom:1px solid rgba(13,48,38,.12)}
.quality-focus-facts dt{color:#8a692e;font-size:11px;font-weight:800}.quality-focus-facts dd{margin:0;font-size:14px;font-weight:750}
.quality-focus-note{margin:24px 0;color:#6b7772;font-size:12px;line-height:1.75}
.quality-focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quality-focus-actions button{min-height:52px;border-radius:999px;font-weight:800;cursor:pointer}
.quality-focus-dialog .dialog-close{z-index:3}
@media(max-width:720px){.quality-focus-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.quality-focus-card{grid-template-columns:1fr;min-height:0;max-height:calc(100dvh - 16px)}.quality-focus-visual{min-height:0;height:46dvh;padding:24px 18px 18px}.quality-focus-visual img{max-height:100%}.quality-focus-copy{padding:28px 18px 24px}.quality-focus-copy h2{font-size:38px}.quality-focus-lead{margin:14px 0 18px;font-size:13px}.quality-focus-facts div{padding:12px 0;grid-template-columns:88px 1fr}.quality-focus-actions{grid-template-columns:1fr}.quality-focus-actions button{min-height:50px}}

/* Legal and commerce policy pages */
.legal-body { background: #f7f2e7; color: #17362c; }
.legal-main { min-height: 70vh; padding-top: var(--app-header-height, 82px); }
.legal-hero { padding: 100px 0 70px; color: #fff; background: radial-gradient(circle at 80% 20%, rgba(231,195,118,.18), transparent 30%), linear-gradient(135deg,#06271f,#0c3a2d); }
.legal-hero h1 { margin: 16px 0 0; font-family: var(--serif); font-size: clamp(2.8rem,6vw,6.5rem); line-height: 1.08; }
.legal-hero p { max-width: 780px; margin: 24px 0 0; color: rgba(255,255,255,.68); line-height: 1.8; }
.legal-hero span { display: block; margin-top: 22px; color: #e7bf6d; font-size: .72rem; font-weight: 800; }
.legal-content { padding-top: 80px; padding-bottom: 80px; display: grid; gap: 26px; }
.legal-content article { padding: 34px 38px; border: 1px solid rgba(6,39,31,.13); border-radius: 22px; background: rgba(255,255,255,.65); }
.legal-content h2 { margin: 0; font-family: var(--serif); font-size: 1.75rem; }
.legal-content p, .legal-content li { color: #596a63; font-size: .9rem; line-height: 1.85; }
.legal-content ul, .legal-content ol { padding-left: 20px; }
.legal-content strong { color: #17362c; }
.legal-note { padding: 20px 24px; border-left: 4px solid #c79d49; background: #ede3ce; color: #4c5d56; line-height: 1.75; }
.legal-nav { padding-bottom: 90px; display: flex; flex-wrap: wrap; gap: 10px; }
.legal-nav a { padding: 12px 16px; border: 1px solid rgba(6,39,31,.15); border-radius: 999px; color: #17362c; font-size: .76rem; font-weight: 800; }
@media (max-width:720px){.legal-main{padding-top:70px}.legal-hero{padding:64px 0 48px}.legal-hero h1{font-size:2.45rem}.legal-content{padding-top:44px;padding-bottom:50px;gap:14px}.legal-content article{padding:24px 20px;border-radius:17px}.legal-content h2{font-size:1.4rem}.legal-content p,.legal-content li{font-size:.82rem}.legal-nav{padding-bottom:65px}}

/* Business beta product mockups */
.memory-product-gallery{padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(3rem,7vw,6rem)}
.memory-product-gallery .catalog-heading{align-items:flex-end}
.memory-mockup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.75rem}
.memory-mockup-grid article{min-width:0;overflow:hidden;border:1px solid rgba(29,61,50,.18);border-radius:1.4rem;background:#f7f2e8;box-shadow:0 18px 45px rgba(5,35,28,.08)}
.memory-mockup-grid img{display:block;width:100%;height:clamp(12rem,19vw,18rem);object-fit:cover;background:#e9e0d1}
.memory-mockup-grid article>div{padding:1.2rem 1.2rem 1.35rem}
.memory-mockup-grid span{display:block;margin-bottom:.45rem;color:#8b6727;font-size:.7rem;font-weight:800;letter-spacing:.16em}
.memory-mockup-grid h3{margin:0;color:#122d25;font-family:var(--serif);font-size:clamp(1.35rem,2vw,1.85rem);font-weight:600}
.memory-mockup-grid p{min-height:4.8em;margin:.7rem 0 1rem;color:#5a6963;font-size:.93rem;line-height:1.75}
.memory-mockup-grid button,.memory-mockup-grid a{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.65rem 1rem;border:1px solid #143d31;border-radius:999px;background:#143d31;color:#fff;font-size:.82rem;font-weight:750;text-decoration:none;cursor:pointer}
@media(max-width:980px){.memory-mockup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.memory-product-gallery{padding-inline:1rem}.memory-product-gallery .catalog-heading{align-items:flex-start}.memory-mockup-grid{display:flex;gap:.8rem;margin-inline:-1rem;padding:0 1rem .6rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.memory-mockup-grid::-webkit-scrollbar{display:none}.memory-mockup-grid article{flex:0 0 min(82vw,19rem);scroll-snap-align:start}.memory-mockup-grid img{height:13rem}.memory-mockup-grid p{min-height:0}}

/* V4.7 — Savori AI product creation journey */
.product-journey{position:sticky;z-index:35;top:var(--header-h);margin-top:-28px;margin-bottom:28px;padding:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border:1px solid rgba(9,52,41,.14);border-radius:22px;background:rgba(255,253,247,.94);box-shadow:0 14px 34px rgba(4,39,30,.1);backdrop-filter:blur(16px)}
.product-journey a{min-width:0;padding:12px 14px;display:grid;grid-template-columns:34px 1fr;gap:0 10px;align-items:center;border-radius:15px;color:#52645d}
.product-journey b{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(12,54,43,.18);border-radius:50%;font-size:11px}
.product-journey span{font-weight:850;font-size:13px;color:#173a30}.product-journey small{font-size:10px}.product-journey a.is-active{background:#07382d;color:#e9c66f}.product-journey a.is-active b{border-color:#e9c66f}.product-journey a.is-active span{color:#fff}
.product-reference-open{width:100%;min-height:48px;margin:12px 0;padding:0 18px;border:1px solid #b98c2c;border-radius:14px;background:#fffaf0;color:#553d0e;font-weight:850;cursor:pointer}
.creative-command-preview{grid-column:1/-1;padding:22px;border:1px solid rgba(9,52,41,.16);border-radius:18px;background:linear-gradient(135deg,#fffaf0,#f2ebdc)}
.creative-command-preview>span{color:#956917;font-size:9px;font-weight:900;letter-spacing:.17em}.creative-command-preview h4{margin:8px 0 12px;font-family:var(--serif);font-size:24px}.creative-command-preview p{margin:0;color:#14382e;font-size:15px;line-height:1.75}.creative-command-preview small{display:block;margin-top:12px;color:#718078;font-size:10px;line-height:1.6}
.product-reference-dialog,.creative-confirm-dialog{width:min(1080px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:28px;background:#f8f3e8;box-shadow:0 30px 100px rgba(2,29,22,.38)}
.product-reference-dialog::backdrop,.creative-confirm-dialog::backdrop{background:rgba(1,27,20,.82);backdrop-filter:blur(9px)}
.product-reference-card{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);min-height:650px;overflow:auto}.product-reference-card figure{min-height:650px;margin:0;padding:38px;display:grid;place-items:center;background:#0a3127}.product-reference-card figure img{width:100%;height:100%;max-height:72dvh;object-fit:contain;border-radius:15px;box-shadow:0 24px 70px rgba(0,0,0,.34)}
.product-reference-copy{padding:80px 46px 42px;align-self:center}.product-reference-copy h2{margin:0;font-family:var(--serif);font-size:clamp(42px,5vw,66px);line-height:1.05}.product-reference-copy>p:not(.view-eyebrow){color:#62736b;line-height:1.8}.product-reference-counter{margin:24px 0;color:#9c741f;font-weight:850}.product-reference-actions{display:grid;grid-template-columns:auto 1fr auto;gap:8px}.product-reference-actions button{min-height:50px;padding:0 16px;border:1px solid rgba(7,55,44,.18);border-radius:14px;background:#fff;cursor:pointer}.product-reference-actions .primary-action{background:#07382d;color:white}
.creative-confirm-card{position:relative;padding:52px}.creative-confirm-card h2{margin:0 0 22px;font-family:var(--serif);font-size:clamp(38px,5vw,60px)}.creative-confirm-command{padding:24px;border-radius:18px;background:#07382d;color:white;font-size:17px;line-height:1.8}.creative-confirm-card dl{margin:20px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.creative-confirm-card dl div{padding:16px;border:1px solid rgba(8,53,42,.14);border-radius:14px;background:#fff}.creative-confirm-card dt{font-size:10px;color:#7b8a83}.creative-confirm-card dd{margin:7px 0 0;font-weight:800;line-height:1.5}.creative-confirm-note{color:#66766f;font-size:12px}.creative-confirm-actions{margin-top:24px;display:grid;grid-template-columns:1fr 1.4fr;gap:9px}.creative-confirm-actions button{min-height:54px}
.creative-confirm-command-v47{margin:0 0 16px;padding:20px;border-radius:16px;background:#07382d;color:#fff;font-size:15px;line-height:1.75}

@media(max-width:720px){
  .product-journey{top:var(--header-h);width:100%;margin:0 0 10px;padding:8px 12px;display:flex;gap:7px;overflow-x:auto;border-width:1px 0;border-radius:0;box-shadow:0 8px 22px rgba(4,39,30,.08);scroll-snap-type:x mandatory;scrollbar-width:none}.product-journey::-webkit-scrollbar{display:none}.product-journey a{flex:0 0 44%;padding:9px 10px;grid-template-columns:28px 1fr;scroll-snap-align:center}.product-journey b{width:28px;height:28px}.product-journey span{font-size:11px}.product-journey small{font-size:8px}
  .product-studio-layout{display:block}.product-preview-panel,.product-selector-panel{width:100%;margin-bottom:14px}.product-selector-panel{position:static!important;max-height:none!important}.product-grid{display:flex!important;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.product-grid>*{flex:0 0 78%;scroll-snap-align:center}.product-reference-open{position:sticky;bottom:calc(var(--bottom-nav-h) + 10px);z-index:20}
  .creative-command-preview{padding:18px 15px}.creative-command-preview h4{font-size:21px}.creative-command-preview p{font-size:13px}
  .product-reference-dialog,.creative-confirm-dialog{width:calc(100% - 14px);max-height:calc(100dvh - 14px);border-radius:20px}.product-reference-card{grid-template-columns:1fr;min-height:0;max-height:calc(100dvh - 14px)}.product-reference-card figure{min-height:0;height:48dvh;padding:18px}.product-reference-copy{padding:25px 17px 22px}.product-reference-copy h2{font-size:34px}.product-reference-actions{grid-template-columns:1fr 1fr}.product-reference-actions .primary-action{grid-column:1/-1;grid-row:1}.creative-confirm-card{max-height:calc(100dvh - 14px);overflow:auto;padding:38px 17px 20px}.creative-confirm-card h2{font-size:35px}.creative-confirm-command{padding:18px;font-size:14px}.creative-confirm-card dl{grid-template-columns:1fr}.creative-confirm-actions{position:sticky;bottom:0;padding-top:10px;grid-template-columns:1fr;background:linear-gradient(transparent,#f8f3e8 16%)}
  .savori-creative-section{padding-inline:0}.savori-creative-panel,.savori-creative-intro{border-radius:0}.creative-control-grid{grid-template-columns:1fr!important}.creative-choice-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.creative-choice-row button{flex:0 0 auto;min-height:44px;scroll-snap-align:start}.creative-generate-button{position:sticky;z-index:21;bottom:calc(var(--bottom-nav-h) + 8px);min-height:54px;box-shadow:0 10px 28px rgba(0,30,22,.2)}
  .creative-gallery-grid{grid-template-columns:1fr!important}.creative-gallery-visual{min-width:0}.creative-gallery-stage{min-height:58dvh}.creative-gallery-actions{display:grid;grid-template-columns:1fr 1fr}.creative-gallery-actions .primary-action,.creative-gallery-actions #creativeGalleryOtherProduct{grid-column:1/-1}.creative-gallery-summary{padding:18px}
}
