/* ivory_rose skin — comments: docs/inv06_css_notes.md (moved out for the before-tap budget, A1489) */
@font-face { font-family: "Cormorant Garamond"; src: url("assets/fonts/cormorant-garamond-latin-300-normal.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("assets/fonts/cormorant-garamond-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("assets/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("assets/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Great Vibes"; src: url("assets/fonts/great-vibes-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
:root {
  --k-gate-plaster: var(--k-card); --k-gate-metal: #B08D4F;
  --k-font-script: "Great Vibes", "Snell Roundhand", "Apple Chancery", cursive;
  --k-font-display: "Cormorant Garamond", "Cormorant", Didot, "Bodoni 72", Georgia, serif;
  --k-font-body: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --k-paper: #F6F1E7; --k-card: #FBF8F1; --k-paper-deep: #EEE7DA;
  --k-ink: #2F2A24; --k-ink-soft: #5A5048;
  --k-line: rgb(var(--c-primary-rgb) / .45);
  --k-dark: #3A332B; --k-on-dark: #FBF8F1; --k-on-dark-soft: rgba(251, 248, 241, .84);
  --k-light-ground: transparent;
  --k-shadow-paper: 0 1px 1px rgb(47 42 36 / .06), 8px 16px 34px rgb(47 42 36 / .10);
  --k-s-1: 4px; --k-s-2: 8px; --k-s-3: 12px; --k-s-4: 16px; --k-s-5: 24px; --k-s-6: 32px; --k-s-7: 48px; --k-s-8: 64px; --k-s-9: 96px;
  --k-gutter: 20px; --k-section-pad: 88px; --k-measure: 560px;
  --k-ease: cubic-bezier(.22, 1, .36, 1);
  --k-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n' x='0' y='0' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .23  0 0 0 0 .2  0 0 0 0 .17  .12 0 0 0 -.05'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  --k-foil: #B08D4F;
  --k-tint-petal: var(--c-bloom, #F2E4CC);
  --k-tint-leaf: var(--c-secondary);
  --k-tint-gold: #C2A064;
  --k-thread-w: 1.5px;
  --k-thread-x: max(28px, calc(50% - 300px));
}
@supports (color: oklch(from red calc(l + clamp(.06, (l - .29) * .9, .2)) calc(c * 1.05) h)) and (color: color(from red srgb calc(.98431373 + (r - .98431373) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)) g b)) {
  :root {
    --k-foil: oklch(from var(--c-primary) calc(l + clamp(.06, (l - .29) * .9, .20)) calc(c * 1.05) h);
    --k-satin: color(from var(--k-foil) srgb calc(.98431373 + (r - .98431373) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)) calc(.97254902 + (g - .97254902) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)) calc(.94509804 + (b - .94509804) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)));
    --k-satin-hi: color(from var(--k-foil) srgb calc(.98431373 + ((r + (1 - r) * .2) - .98431373) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)) calc(.97254902 + ((g + (1 - g) * .2) - .97254902) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)) calc(.94509804 + ((b + (1 - b) * .2) - .94509804) * clamp(0, (.55 - (r * .3 + g * .59 + b * .11)) * 4, 1)));
    --k-tint-gold: oklch(from var(--c-primary) calc(l + clamp(.08, (l - .29) * 1.2, .27)) calc(c * 1.1) h);
  }
}
@media (min-width: 768px) { :root { --k-gutter: 32px; --k-section-pad: 120px; --k-thread-w: 1.6px; } }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--k-paper); scrollbar-gutter: stable; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  color: var(--k-ink);
  font: 400 1rem/1.65 -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  background: var(--k-paper);
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
p, h1, h2, h3, dl, dd, ol, ul { margin: 0; }
ol, ul { padding: 0; list-style: none; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 3px; }
[tabindex="-1"]:focus { outline: none; }
.k-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.kjy-main { font-family: var(--k-font-body); font-size: 1.0625rem; }
.kjy-main { position: relative; overflow: hidden; overflow: clip; background-image: var(--k-grain); }
.k-kicker { font: 600 .78rem/1.5 var(--k-font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--k-ink-soft); }
.k-title { font: 400 clamp(2.4rem, 9vw, 3.4rem)/1.2 var(--k-font-script); color: var(--c-primary); }
.k-caps { font-family: var(--k-font-display); font-weight: 500; text-transform: uppercase; letter-spacing: .08em; color: var(--k-ink); }
.k-amp { font: 400 1.6rem/1 var(--k-font-script); color: var(--c-primary); text-transform: none; letter-spacing: 0; }
.k-rule { display: block; width: 200px; height: auto; margin: var(--k-s-4) auto 0; color: var(--k-foil); }
.k-btn, .kjy-cal__toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--k-s-2);
  min-height: 44px; padding: 0 var(--k-s-5); border-radius: 2px;
  font: 600 .74rem/1 var(--k-font-body); letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: background-color .2s, color .2s, border-color .2s;
}
.k-btn--solid { min-height: 48px; padding: 0 var(--k-s-6); background: var(--c-primary); color: #FBF8F1; border: 1px solid var(--c-primary); }
.k-btn--solid:active { background: var(--c-primary-dark); }
.k-btn--line, .kjy-cal__toggle { background: transparent; color: var(--c-primary); border: 1px solid var(--k-foil); }
.k-btn--line:active, .kjy-cal__toggle:active { background: rgb(var(--c-primary-rgb) / .06); }
.k-ico { width: 18px; height: 18px; flex: none; }
.k-spray {
  position: absolute; isolation: isolate; max-width: none; pointer-events: none;
  filter: drop-shadow(2px 6px 9px rgb(96 74 44 / .11));
}
.k-spray__base { display: block; width: 100%; height: auto; max-width: none; }
.k-spray__tint {
  position: absolute; inset: 0; mix-blend-mode: color; background: transparent;
  -webkit-mask-image: linear-gradient(transparent, transparent); mask-image: linear-gradient(transparent, transparent);
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.k-spray__tint--deep { mix-blend-mode: color-burn; }
.k-spray__tint--boost { mix-blend-mode: multiply; }
@supports (color: oklab(from red l a b / clamp(0, (max(l - .5, .5 - l) - .006) * 15, .92))) and (color: color(from red srgb calc(min(1, (r * .3 + g * .59 + b * .11) / (.875 - .125 * clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)))) g b / clamp(0, (.62 - r) * 4, 1))) {
  .k-spray__tint--petal { background: oklab(from var(--c-bloom, #F2E4CC) l a b / clamp(0, (max(l - .9237, .9237 - l) + max(a - .0054, .0054 - a) + max(b - .0349, .0349 - b) - .006) * 15, .92)); }
  .k-spray__tint--leaf { background: oklab(from var(--c-secondary) l a b / clamp(0, (max(l - .5483, .5483 - l) + max(a + .0212, -.0212 - a) + max(b - .0385, .0385 - b) - .006) * 15, .92)); }
  .k-spray__tint--gold { background: transparent; }
  .k-spray__tint--deep { background: color(from var(--c-bloom, #F2E4CC) srgb .5 .5 .5 / clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)); }
  .k-spray__tint--boost { background: color(from var(--c-bloom, #F2E4CC) srgb calc(min(1, (r * .3 + g * .59 + b * .11) / (.875 - .125 * clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)))) calc(min(1, (r * .3 + g * .59 + b * .11) / (.875 - .125 * clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)))) calc(min(1, (r * .3 + g * .59 + b * .11) / (.875 - .125 * clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)))) / clamp(0, ((.875 - .125 * clamp(0, (.70 - (r * .3 + g * .59 + b * .11)) * 4, 1)) - (r * .3 + g * .59 + b * .11)) * 20, 1)); }
}
.k-thread { fill: none; stroke: var(--k-foil); stroke-width: var(--k-thread-w); vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.k-foil-text {
  color: var(--c-primary);
  background: linear-gradient(165deg, var(--c-primary-dark) 0%, var(--c-primary) 34%, var(--k-foil) 52%, var(--c-primary) 70%, var(--c-primary-dark) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.k-ink { display: inline-block; padding: .3em .8em .5em; margin: -.3em -.8em -.5em; }
html.kjy-fx [data-k-write] .k-ink {
  -webkit-mask-image: linear-gradient(90deg, #000 40%, transparent 60%);
  mask-image: linear-gradient(90deg, #000 40%, transparent 60%);
  -webkit-mask-size: 260% 100%; mask-size: 260% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: 100% 0; mask-position: 100% 0;
}
html.kjy-fx [data-k-write].is-in .k-ink {
  -webkit-mask-position: 0 0; mask-position: 0 0;
  transition-property: -webkit-mask-position, mask-position;
  transition-duration: 1.4s; transition-timing-function: cubic-bezier(.5, 0, .2, 1);
}
html.kjy-fx [data-k-write].is-done .k-ink { -webkit-mask: none; mask: none; }
.kjy-footer { font: 600 .6875rem/1.4 var(--k-font-body); position: relative; z-index: 1; padding: var(--k-s-6) var(--k-gutter) calc(var(--k-s-8) + env(safe-area-inset-bottom)); text-align: center; }
.kjy-footer a { display: inline-block; padding: 14px 8px; font: 600 .6875rem/1 var(--k-font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--k-ink-soft); text-decoration: none; }
.kjy-footer a { display: inline-flex; align-items: center; gap: 14px; }
.kjy-footer__logo { display: block; width: 72px; height: 36px; }
.kjy-footer__logo--porcelain { display: none; }
.kjy-sound {
  position: fixed; z-index: 90;
  top: calc(12px + env(safe-area-inset-top)); right: calc(12px + env(safe-area-inset-right));
  width: 44px; height: 44px; padding: 0; display: grid; place-items: center; cursor: pointer;
  border-radius: 50%; border: 1px solid var(--k-foil);
  background: rgb(251 248 241 / .92); color: var(--c-primary); box-shadow: 0 4px 14px rgb(47 42 36 / .14);
}
.kjy-preview ~ .kjy-sound { top: calc(64px + env(safe-area-inset-top)); }
.kjy-sound[aria-pressed="true"] .kjy-sound__off,
.kjy-sound[aria-pressed="false"] .kjy-sound__on { display: none; }
