:root{--color-paper: oklch(99% .006 80);--color-paper-soft: oklch(98.6% .008 78);--color-paper-card: oklch(99.5% .004 80);--color-ink: oklch(24% .012 20);--color-ink-muted: oklch(43% .018 20);--color-pink: oklch(91% .055 8);--color-pink-soft: oklch(97% .018 8);--color-pink-deep: oklch(46% .14 10);--color-accent-ink: var(--color-ink);--color-yellow: oklch(94% .08 95);--color-yellow-soft: oklch(98% .024 95);--color-mint: oklch(93% .04 150);--color-mint-soft: oklch(98% .016 150);--color-bubble-pink: oklch(72% .16 8);--color-bubble-yellow: oklch(82% .14 95);--color-bubble-mint: oklch(76% .12 155);--color-line: oklch(91% .012 70);--color-focus: oklch(42% .13 245);--theme-aligner-background: oklch(97% .012 240);--theme-aligner-header: oklch(98.5% .006 240);--theme-aligner-surface: oklch(99% .006 240);--theme-aligner-surface-strong: oklch(96.8% .015 230);--theme-aligner-text: oklch(30% .02 250);--theme-aligner-muted: oklch(47% .02 250);--theme-aligner-primary: oklch(47% .16 250);--theme-aligner-primary-dark: oklch(30% .1 250);--theme-aligner-accent: oklch(68% .13 220);--theme-aligner-border: oklch(89% .025 230);--theme-aligner-accent-soft: oklch(96% .025 220);--theme-aligner-shadow: 0 8px 24px oklch(28% .025 250 / .08);--theme-oshi-background: oklch(98% .008 350);--theme-oshi-header: oklch(98.5% .006 350);--theme-oshi-surface: oklch(99% .006 350);--theme-oshi-surface-strong: oklch(96.5% .025 350);--theme-oshi-text: oklch(31% .035 350);--theme-oshi-muted: oklch(50% .025 350);--theme-oshi-primary: oklch(67% .18 350);--theme-oshi-primary-dark: oklch(44% .13 350);--theme-oshi-accent: oklch(67% .18 350);--theme-oshi-border: oklch(91% .012 350);--theme-oshi-accent-soft: oklch(96% .03 350);--theme-oshi-shadow: 0 8px 24px oklch(67% .14 350 / .12);--theme-menu-background: oklch(98% .012 95);--theme-menu-header: oklch(97.5% .018 150);--theme-menu-surface: oklch(99% .006 110);--theme-menu-surface-strong: oklch(97% .018 150);--theme-menu-text: oklch(30% .06 145);--theme-menu-muted: oklch(52% .07 145);--theme-menu-primary: oklch(47% .1 145);--theme-menu-primary-dark: oklch(34% .08 145);--theme-menu-accent: oklch(63% .09 145);--theme-menu-border: oklch(88% .04 145);--theme-menu-accent-soft: oklch(95% .03 145);--theme-menu-shadow: 0 8px 24px oklch(30% .06 145 / .1);--theme-caps-background: oklch(97% .025 75);--theme-caps-header: oklch(98% .012 65);--theme-caps-surface: oklch(98.5% .012 70);--theme-caps-surface-strong: oklch(96% .03 75);--theme-caps-text: oklch(28% .03 60);--theme-caps-muted: oklch(50% .04 60);--theme-caps-primary: oklch(70% .18 55);--theme-caps-primary-dark: oklch(43% .15 285);--theme-caps-accent: oklch(70% .18 55);--theme-caps-border: oklch(76% .15 55);--theme-caps-accent-soft: oklch(94% .04 75);--theme-caps-shadow: 0 8px 24px oklch(40% .04 70 / .1);--theme-gravilink-background: oklch(16% .02 275);--theme-gravilink-header: oklch(19% .02 275);--theme-gravilink-surface: oklch(21% .025 275);--theme-gravilink-surface-strong: oklch(25% .04 275);--theme-gravilink-text: oklch(96% .02 250);--theme-gravilink-muted: oklch(74% .03 250);--theme-gravilink-primary: oklch(82% .14 195);--theme-gravilink-primary-dark: oklch(82% .14 195);--theme-gravilink-accent: oklch(70% .19 330);--theme-gravilink-border: oklch(34% .04 275);--theme-gravilink-accent-soft: oklch(29% .05 195);--theme-gravilink-shadow: 0 8px 24px oklch(5% .02 275 / .35);--theme-miseru-background: oklch(96% .015 90);--theme-miseru-header: oklch(98% .008 90);--theme-miseru-surface: oklch(98% .008 90);--theme-miseru-surface-strong: oklch(95% .02 90);--theme-miseru-text: oklch(31% .02 90);--theme-miseru-muted: oklch(52% .02 90);--theme-miseru-primary: oklch(43% .05 145);--theme-miseru-primary-dark: oklch(29% .04 145);--theme-miseru-accent: oklch(58% .06 125);--theme-miseru-border: oklch(90% .012 90);--theme-miseru-accent-soft: oklch(94% .025 120);--theme-miseru-shadow: 0 8px 24px oklch(30% .02 90 / .06);--theme-planti-background: oklch(97% .018 140);--theme-planti-header: oklch(98.5% .01 140);--theme-planti-surface: oklch(99% .006 140);--theme-planti-surface-strong: oklch(95.5% .025 140);--theme-planti-text: oklch(30% .05 145);--theme-planti-muted: oklch(50% .05 145);--theme-planti-primary: oklch(53% .11 145);--theme-planti-primary-dark: oklch(35% .08 145);--theme-planti-accent: oklch(70% .1 145);--theme-planti-border: oklch(87% .04 145);--theme-planti-accent-soft: oklch(94% .035 145);--theme-planti-shadow: 0 8px 24px oklch(30% .05 145 / .08);--theme-quickcrop-background: oklch(97% .012 245);--theme-quickcrop-header: oklch(98.5% .006 245);--theme-quickcrop-surface: oklch(99% .006 245);--theme-quickcrop-surface-strong: oklch(96% .012 245);--theme-quickcrop-text: oklch(31% .025 245);--theme-quickcrop-muted: oklch(51% .025 245);--theme-quickcrop-primary: oklch(42% .06 245);--theme-quickcrop-primary-dark: oklch(29% .05 245);--theme-quickcrop-accent: oklch(52% .08 225);--theme-quickcrop-border: oklch(88% .025 245);--theme-quickcrop-accent-soft: oklch(95% .02 245);--theme-quickcrop-shadow: 0 8px 24px oklch(30% .03 245 / .08);--font-display: "Avenir Next", "Hiragino Sans", "Yu Gothic", sans-serif;--font-body: "Hiragino Sans", "Yu Gothic", "Avenir Next", sans-serif;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4.5rem;--space-3xl: 7rem;--space-4xl: 9rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: clamp(2.25rem, 4vw, 3.3rem);--text-display: clamp(2.1rem, 4vw + 1rem, 4.6rem);--shell: 1200px;--page-gutter: clamp(1rem, 4vw, 2.5rem);--radius-card: .75rem;--radius-media: 1rem;--radius-pill: 999px;--rule-hair: 1px;--shadow-card: 0 1rem 2rem -1.25rem oklch(24% .012 20 / .2);--shadow-card-hover: 0 1.25rem 2.5rem -1.25rem oklch(24% .012 20 / .28);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--z-base: 1;--z-sticky: 200}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;overflow-x:clip;color:var(--color-ink);background:var(--color-paper);font-family:var(--font-body);line-height:1.6}a{color:inherit}img{max-width:100%}:where(a,button):focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}:where(a,button):active{opacity:.72}:where(button:disabled,[aria-disabled=true]){cursor:not-allowed;opacity:.55}.skip-link{position:absolute;z-index:var(--z-sticky);top:var(--space-xs);left:var(--page-gutter);padding:var(--space-2xs) var(--space-sm);color:var(--color-paper);background:var(--color-ink);border-radius:var(--radius-pill);transform:translateY(-160%);transition:transform var(--dur-short) var(--ease-out)}.skip-link:focus{transform:translateY(0)}.site-header{width:min(var(--shell),calc(100% - (var(--page-gutter) * 2)));min-height:76px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.wordmark{color:var(--color-ink);font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:.02em;text-decoration:none;white-space:nowrap}.site-header__actions,nav{display:flex;align-items:center;gap:var(--space-xs)}nav{gap:var(--space-2xs)}nav a,.language-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:var(--text-sm);text-decoration:none}.nav-link{padding-inline:var(--space-xs)}.nav-cta{padding:var(--space-2xs) var(--space-sm);color:var(--color-paper);background:var(--color-ink);border:1px solid var(--color-ink);border-radius:var(--radius-pill)}.language-link{min-width:44px;padding-inline:var(--space-xs);border:1px solid var(--color-ink);border-radius:var(--radius-pill)}nav a:hover,.language-link:hover{color:var(--color-pink-deep)}.nav-cta:hover{color:var(--color-paper);background:var(--color-pink-deep);border-color:var(--color-pink-deep)}.hero{width:min(var(--shell),calc(100% - (var(--page-gutter) * 2)));min-height:auto;margin-inline:auto;padding-block:var(--space-xl) var(--space-3xl);display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:0}.hero__copy{min-width:0;max-width:60ch}.eyebrow{margin:0 0 var(--space-xs);color:var(--color-pink-deep);letter-spacing:.1em;font-size:var(--text-xs);font-weight:800}h1,h2,h3,p{margin-top:0}h1,h2,h3{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);font-style:normal}h1{margin-bottom:var(--space-md);font-size:var(--text-display);line-height:1.12;letter-spacing:-.03em}h2{margin-bottom:var(--space-md);font-size:var(--text-2xl);line-height:1.16;letter-spacing:-.025em}h3{font-size:var(--text-xl);line-height:1.2;letter-spacing:-.02em}.hero-title--wide{display:none}.hero-title--compact{display:inline}.hero__copy>p:not(.eyebrow){max-width:60ch;margin-bottom:var(--space-md);font-size:var(--text-md)}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-2xs);padding:var(--space-xs) var(--space-md);color:var(--color-paper);background:var(--color-ink);border:1px solid var(--color-ink);border-radius:var(--radius-pill);font-weight:700;text-decoration:none;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.button:hover{color:var(--color-paper);background:var(--color-pink-deep);border-color:var(--color-pink-deep)}.hero__art{position:relative;min-height:340px;margin-top:var(--space-lg);display:grid;place-items:center;overflow:hidden;background:var(--color-paper-soft);border:1px solid var(--color-pink);border-radius:50% 50% 44% 56%/44% 57% 43% 56%}.hero__art img{position:relative;z-index:1;width:min(100%,360px);height:auto;object-fit:contain;mix-blend-mode:multiply}.section{width:min(var(--shell),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto;padding-block:var(--space-2xl)}.business{max-width:68ch;padding-block-start:var(--space-xl)}.business>p:last-child{max-width:68ch;margin-bottom:0;font-size:var(--text-md)}.products,.contact{border-top:1px solid var(--color-line)}.section-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;gap:var(--space-md);margin-bottom:var(--space-lg)}.section-heading>div{min-width:0}.section-heading>p{max-width:45ch;margin:0 0 var(--space-2xs);font-size:var(--text-md)}.product-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md)}.product-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-paper-card);border:1px solid var(--color-line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform var(--dur-short) var(--ease-out)}.product-card__image,.product-card__placeholder{width:100%;height:auto;aspect-ratio:1.38;object-fit:cover;display:block}.product-card__placeholder{position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:var(--space-lg);color:var(--color-accent-ink)}.product-card__placeholder span{position:relative;z-index:1;font-size:var(--text-sm);letter-spacing:.04em}.product-card__placeholder strong{position:relative;z-index:1;font-family:var(--font-display);font-size:clamp(2.1rem,5vw,4.3rem);line-height:1;letter-spacing:-.04em}.product-card__placeholder i{position:absolute;right:-10%;bottom:-38%;width:60%;aspect-ratio:1;background:var(--color-paper-card);border-radius:48% 52% 63% 37%/43% 38% 62% 57%;opacity:.6}.product-card--pink .product-card__placeholder{background:var(--color-pink)}.product-card--yellow .product-card__placeholder{background:var(--color-yellow)}.product-card--mint .product-card__placeholder{background:var(--color-mint)}.product-card__body{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-lg) var(--space-lg) var(--space-xl)}.product-card__body>p:first-child{margin-bottom:var(--space-2xs);color:var(--color-ink-muted);font-size:var(--text-sm)}.product-card h3{margin-bottom:var(--space-xs)}.product-card__summary{margin-bottom:var(--space-lg)}.product-card__body a{min-height:44px;display:inline-flex;align-items:center;margin-top:auto;font-weight:800;text-underline-offset:2px;white-space:nowrap}.contact{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;gap:var(--space-md)}.contact__heading h2{margin-bottom:0}.contact__body{max-width:55ch}.contact__body p{margin-bottom:var(--space-md);font-size:var(--text-md)}.contact-link{display:inline-flex;align-items:center;min-height:44px;color:var(--color-pink-deep);font-size:clamp(1.2rem,3vw,1.8rem);font-weight:800;text-underline-offset:2px;text-decoration-thickness:2px;white-space:nowrap}.site-footer{width:min(var(--shell),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto;padding-block:var(--space-md) var(--space-xl);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2xs);border-top:1px solid var(--color-line);font-size:var(--text-sm)}.site-footer p{margin:0}.site-footer a{min-height:44px;display:inline-flex;align-items:center;text-underline-offset:2px;white-space:nowrap}.legal-page{max-width:68ch;padding-top:var(--space-3xl);min-height:calc(100vh - 200px)}.legal-page__intro{max-width:60ch;margin-bottom:var(--space-xl)}.legal-page dl{margin:0;border-top:1px solid var(--color-line)}.legal-page dl div{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2xs);padding-block:var(--space-md);border-bottom:1px solid var(--color-line)}.legal-page dt{font-weight:800}.legal-page dd{margin:0}@media(hover:hover)and (pointer:fine){.product-card:hover{transform:translateY(-4px)}}@media(min-width:48rem){.site-header{min-height:88px}.hero{min-height:620px;padding-block:var(--space-2xl) var(--space-3xl);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(var(--space-lg),5vw,var(--space-2xl))}.hero-title--wide{display:inline}.hero-title--compact{display:none}.hero__art{min-height:480px;margin-top:0}.hero__art img{width:min(100%,520px)}.section{padding-block:var(--space-3xl)}.section-heading{grid-template-columns:minmax(0,1fr) minmax(220px,.6fr);gap:var(--space-xl);margin-bottom:var(--space-xl)}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-xl)}.site-footer{flex-direction:row;align-items:center;gap:var(--space-md)}.legal-page dl div{grid-template-columns:210px minmax(0,1fr);gap:var(--space-md)}}@media(max-width:32rem){.site-header{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2xs);padding-block:var(--space-xs)}.site-header__actions{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2xs)}.site-header__actions nav{min-width:0;justify-content:flex-end}nav a,.language-link{font-size:var(--text-xs)}.hero{padding-block-start:var(--space-lg)}h1{font-size:clamp(2.1rem,4vw + 1rem,3rem)}.hero__art{min-height:300px}.contact-link{font-size:1.15rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skip-link{transition:none}.button:hover,.product-card:hover{transform:none!important}*,*:before,*:after{animation-duration:.15s!important;animation-iteration-count:1!important;transition-duration:.15s!important}}.hero__intro{margin:0 0 var(--space-xs);color:var(--color-pink-deep);font-size:var(--text-sm);font-weight:800}.button:active{transform:translateY(1px)}.business{margin-inline-start:max(var(--page-gutter),calc((100% - min(var(--shell),100%)) / 2 + var(--page-gutter)));margin-inline-end:var(--page-gutter);padding-block-start:var(--space-lg);padding-block-end:var(--space-2xl)}.products{width:100%;padding-block:var(--space-2xl) var(--space-3xl);background:var(--color-paper-soft)}.product-stack{width:min(var(--shell),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.product-stack__intro{min-width:0;max-width:56ch}.product-stack__intro h2{margin-bottom:var(--space-sm)}.product-stack__intro p{margin-bottom:var(--space-md);font-size:var(--text-md)}.product-stack__rule{width:var(--space-xl);height:var(--space-3xs);display:block;background:var(--color-pink-deep);border-radius:var(--radius-pill)}.product-stack[data-active-accent=yellow] .product-stack__rule{background:var(--color-yellow)}.product-stack[data-active-accent=mint] .product-stack__rule{background:var(--color-mint)}.product-stack__list{min-width:0;display:grid;gap:var(--space-xl)}.product-card{min-height:auto;display:grid;grid-template-columns:minmax(0,1fr);background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;opacity:1;transform:none}.product-card__media{min-width:0;margin:0;aspect-ratio:1.38;overflow:hidden;background:var(--color-paper-card);border:var(--rule-hair) solid var(--color-line);border-radius:var(--radius-media);box-shadow:var(--shadow-card)}.product-card__media picture{width:100%;height:100%;display:block}.product-card__image,.product-card__placeholder{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;display:block}.product-card--quickcrop-viewer .product-card__image{object-fit:contain;background:var(--color-paper-card)}.product-card__body{padding:var(--space-lg) 0 0;border-bottom:var(--rule-hair) solid var(--color-line)}.product-card__category{margin-bottom:var(--space-2xs);color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:700}.product-card__summary{max-width:58ch}.product-card__platforms{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2xs);margin-bottom:var(--space-sm)}.product-card__platform-badge{display:inline-flex;align-items:center;min-height:28px;padding:.2rem .65rem;color:var(--color-ink);background:var(--color-paper-card);border:1px solid var(--color-ink);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:800;letter-spacing:.02em}.product-card__links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2xs);margin-top:auto}.product-card__links a{margin-top:0}.product-card__body a{color:var(--color-pink-deep)}.product-card__download-link{font-weight:800}.product-card__store-link{display:flex;flex-direction:column;align-items:flex-start}.product-card__store-link+.product-card__store-link{margin-top:var(--space-xs)}.product-card__store-name{font-weight:800;line-height:1.35}.product-card__support-link{font-size:var(--text-sm)}.contact{padding-block:var(--space-3xl) var(--space-4xl)}.site-footer{padding-block:var(--space-2xl) var(--space-xl);display:grid;gap:var(--space-xl)}.site-footer__statement{max-width:28ch;margin:0;font-family:var(--font-display);font-size:clamp(1.75rem,5vw,3.25rem);font-weight:700;line-height:1.1;letter-spacing:-.025em}.site-footer__meta{width:100%;padding-block-start:var(--space-sm);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm) var(--space-md);border-top:var(--rule-hair) solid var(--color-line)}.site-footer__meta>a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}@media(hover:hover)and (pointer:fine){.button:hover{transform:translateY(-1px)}.product-card:hover{transform:none}.product-card__body a:hover{color:var(--color-ink)}}@media(min-width:40rem){.product-stack__list{gap:var(--space-2xl)}}@media(min-width:60rem){.product-stack{grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);gap:clamp(var(--space-xl),6vw,var(--space-3xl))}.product-stack__intro{position:sticky;top:var(--space-xl);align-self:start;z-index:var(--z-base);padding-block-start:var(--space-xs)}.product-stack__list{gap:var(--space-3xl)}.product-card{min-height:min(760px,82svh);align-content:center}}@media(max-width:39.999rem){.site-header{min-height:76px;padding-block:var(--space-2xs);display:flex;flex-direction:row;align-items:center;gap:var(--space-xs)}.site-header__actions{width:auto;margin-inline-start:auto;display:flex;align-items:center;gap:var(--space-2xs)}.site-header__actions nav{display:flex}.nav-link{display:none}.nav-cta,.language-link{min-height:44px;padding-inline:var(--space-xs);font-size:var(--text-xs)}.hero{padding-block-start:var(--space-xl)}.business{margin-inline:var(--page-gutter)}.product-card__body{padding-block-end:var(--space-xl)}.contact{padding-block:var(--space-2xl) var(--space-3xl)}}@media(prefers-reduced-motion:reduce){.hero__copy,.hero__art,.product-card{opacity:1;transform:none;animation:none}}.bubble-field{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:strict}.site-header,main,.site-footer{position:relative;z-index:var(--z-base)}.bubble{position:absolute;inset-inline-start:var(--bubble-x);inset-block-end:-18svh;width:var(--bubble-size);aspect-ratio:1;background:radial-gradient(circle at 32% 28%,var(--color-paper-card),var(--bubble-color));border:var(--rule-hair) solid var(--bubble-color);border-radius:50%;opacity:0;animation:bubble-float var(--bubble-duration) var(--ease-in-out) infinite;animation-delay:var(--bubble-delay)}.bubble--pink{--bubble-color: var(--color-bubble-pink)}.bubble--yellow{--bubble-color: var(--color-bubble-yellow)}.bubble--mint{--bubble-color: var(--color-bubble-mint)}.bubble--one{--bubble-x: 6%;--bubble-size: 4rem;--bubble-duration: 26s;--bubble-delay: -8s;--bubble-drift-a: 2vw;--bubble-drift-b: -1vw}.bubble--two{--bubble-x: 19%;--bubble-size: 5.5rem;--bubble-duration: 31s;--bubble-delay: -18s;--bubble-drift-a: -3vw;--bubble-drift-b: 2vw}.bubble--three{--bubble-x: 34%;--bubble-size: 3.25rem;--bubble-duration: 24s;--bubble-delay: -12s;--bubble-drift-a: 2vw;--bubble-drift-b: 4vw}.bubble--four{--bubble-x: 51%;--bubble-size: 6.5rem;--bubble-duration: 35s;--bubble-delay: -25s;--bubble-drift-a: -2vw;--bubble-drift-b: -4vw}.bubble--five{--bubble-x: 67%;--bubble-size: 4.25rem;--bubble-duration: 28s;--bubble-delay: -6s;--bubble-drift-a: 3vw;--bubble-drift-b: -2vw}.bubble--six{--bubble-x: 79%;--bubble-size: 5rem;--bubble-duration: 33s;--bubble-delay: -21s;--bubble-drift-a: -2vw;--bubble-drift-b: 3vw}.bubble--seven{--bubble-x: 90%;--bubble-size: 3.5rem;--bubble-duration: 25s;--bubble-delay: -15s;--bubble-drift-a: -3vw;--bubble-drift-b: -1vw}.bubble--eight{--bubble-x: 45%;--bubble-size: 2.5rem;--bubble-duration: 22s;--bubble-delay: -4s;--bubble-drift-a: 1vw;--bubble-drift-b: -3vw}.products{background:color-mix(in oklch,var(--color-paper-soft) 78%,transparent)}@keyframes bubble-float{0%{opacity:0;transform:translate3d(0,18svh,0) scale(.82)}12%{opacity:.46}38%{transform:translate3d(var(--bubble-drift-a),-34svh,0) scale(.96)}68%{opacity:.38;transform:translate3d(var(--bubble-drift-b),-78svh,0) scale(1.04)}to{opacity:0;transform:translate3d(var(--bubble-drift-a),-132svh,0) scale(.9)}}@media(max-width:39.999rem){.bubble:nth-child(n+7){display:none}}@media(prefers-reduced-motion:reduce){.bubble-field{display:none}}.language-control{width:0;height:0;margin:0;flex:0 0 0;opacity:0;appearance:none}.language-options{max-width:min(52vw,40rem);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3xs)}.language-option{min-height:36px;display:inline-flex;align-items:center;padding:var(--space-3xs) var(--space-xs);color:var(--color-ink-muted);border:1px solid var(--color-line);border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-xs);white-space:nowrap}.language-option:hover{color:var(--color-pink-deep);border-color:var(--color-pink-deep)}.site-shell:has(.language-control:focus-visible) .language-option{outline:3px solid var(--color-focus);outline-offset:3px}.language-copy{display:none}.site-shell:has(.language-control[value=ja]:checked) .language-copy--ja,.site-shell:has(.language-control[value=en]:checked) .language-copy--en,.site-shell:has(.language-control[value=zh-hans]:checked) .language-copy--zh-hans,.site-shell:has(.language-control[value=zh-hk]:checked) .language-copy--zh-hk,.site-shell:has(.language-control[value=zh-tw]:checked) .language-copy--zh-tw,.site-shell:has(.language-control[value=ko]:checked) .language-copy--ko,.site-shell:has(.language-control[value=es]:checked) .language-copy--es,.site-shell:has(.language-control[value=de]:checked) .language-copy--de,.site-shell:has(.language-control[value=fr]:checked) .language-copy--fr,.site-shell:has(.language-control[value=en-gb]:checked) .language-copy--en-gb,.site-shell:has(.language-control[value=it]:checked) .language-copy--it,.site-shell:has(.language-control[value=pt]:checked) .language-copy--pt,.site-shell:has(.language-control[value=ro]:checked) .language-copy--ro,.site-shell:has(.language-control[value=ar]:checked) .language-copy--ar,.site-shell:has(.language-control[value=th]:checked) .language-copy--th,.site-shell:has(.language-control[value=hi]:checked) .language-copy--hi,.site-shell:has(.language-control[value=vi]:checked) .language-copy--vi,.site-shell:has(.language-control[value=ja]:checked) .language-copy--global-ja,.site-shell:has(.language-control:not([value=ja]):checked) .language-copy--global-en{display:inline}.site-shell:has(.language-control[value=ja]:checked) .language-option[data-language-code=ja],.site-shell:has(.language-control[value=en]:checked) .language-option[data-language-code=en],.site-shell:has(.language-control[value=zh-hans]:checked) .language-option[data-language-code=zh-hans],.site-shell:has(.language-control[value=zh-hk]:checked) .language-option[data-language-code=zh-hk],.site-shell:has(.language-control[value=zh-tw]:checked) .language-option[data-language-code=zh-tw],.site-shell:has(.language-control[value=ko]:checked) .language-option[data-language-code=ko],.site-shell:has(.language-control[value=es]:checked) .language-option[data-language-code=es],.site-shell:has(.language-control[value=de]:checked) .language-option[data-language-code=de],.site-shell:has(.language-control[value=fr]:checked) .language-option[data-language-code=fr],.site-shell:has(.language-control[value=en-gb]:checked) .language-option[data-language-code=en-gb],.site-shell:has(.language-control[value=it]:checked) .language-option[data-language-code=it],.site-shell:has(.language-control[value=pt]:checked) .language-option[data-language-code=pt],.site-shell:has(.language-control[value=ro]:checked) .language-option[data-language-code=ro],.site-shell:has(.language-control[value=ar]:checked) .language-option[data-language-code=ar],.site-shell:has(.language-control[value=th]:checked) .language-option[data-language-code=th],.site-shell:has(.language-control[value=hi]:checked) .language-option[data-language-code=hi],.site-shell:has(.language-control[value=vi]:checked) .language-option[data-language-code=vi]{color:var(--app-primary-dark, var(--color-ink));background:var(--app-accent-soft, var(--color-yellow));border-color:var(--app-primary, var(--color-ink))}.language-panel{display:none}.site-shell:has(.language-control[value=ja]:checked) .language-panel--ja,.site-shell:has(.language-control[value=en]:checked) .language-panel--en,.site-shell:has(.language-control[value=zh-hans]:checked) .language-panel--zh-hans,.site-shell:has(.language-control[value=zh-hk]:checked) .language-panel--zh-hk,.site-shell:has(.language-control[value=zh-tw]:checked) .language-panel--zh-tw,.site-shell:has(.language-control[value=ko]:checked) .language-panel--ko,.site-shell:has(.language-control[value=es]:checked) .language-panel--es,.site-shell:has(.language-control[value=de]:checked) .language-panel--de,.site-shell:has(.language-control[value=fr]:checked) .language-panel--fr,.site-shell:has(.language-control[value=en-gb]:checked) .language-panel--en-gb,.site-shell:has(.language-control[value=it]:checked) .language-panel--it,.site-shell:has(.language-control[value=pt]:checked) .language-panel--pt,.site-shell:has(.language-control[value=ro]:checked) .language-panel--ro,.site-shell:has(.language-control[value=ar]:checked) .language-panel--ar,.site-shell:has(.language-control[value=th]:checked) .language-panel--th,.site-shell:has(.language-control[value=hi]:checked) .language-panel--hi,.site-shell:has(.language-control[value=vi]:checked) .language-panel--vi{display:block}.localized-heading{white-space:pre-line}.site-shell{position:relative;z-index:var(--z-base)}.app-policy-page{max-width:920px;padding-top:var(--space-2xl)}.app-policy-page__intro{max-width:72ch;margin-bottom:var(--space-xl)}.app-policy-page__lead{max-width:62ch;margin-bottom:0;font-size:var(--text-md)}.policy-section{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--color-paper-card);border:1px solid var(--color-line);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.policy-section h3,.policy-copy{margin-bottom:var(--space-sm)}.policy-copy:last-child{margin-bottom:0}.policy-copy p:last-child{margin-bottom:0}.policy-copy a{color:var(--color-pink-deep);text-underline-offset:.16em}.policy-copy ul{padding-inline-start:1.3rem}.policy-copy li+li{margin-top:var(--space-2xs)}.policy-updated,.policy-copyright{margin:var(--space-lg) 0 0;color:var(--color-ink-muted);font-size:var(--text-sm)}.apps-directory{padding-top:var(--space-2xl)}.apps-directory__intro{max-width:60ch;margin-bottom:var(--space-xl);font-size:var(--text-md)}.apps-directory__grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:var(--space-md)}.apps-directory__card{min-height:220px;display:flex;flex-direction:column;padding:var(--space-lg);color:var(--color-ink);background:var(--color-paper-card);border:1px solid var(--color-line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-decoration:none;transition:transform var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}.apps-directory__card:hover{border-color:var(--color-pink-deep);transform:translateY(-3px)}.apps-directory__platform{margin-bottom:var(--space-2xs);color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:800}.apps-directory__card h2{margin-bottom:var(--space-xs);font-size:var(--text-xl)}.apps-directory__card p:not(.apps-directory__platform){margin-bottom:var(--space-md)}.apps-directory__link{margin-top:auto;color:var(--color-pink-deep);font-weight:800}@media(min-width:40rem){.apps-directory__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:40rem){.language-options{max-width:65vw;justify-content:flex-end}.language-option{min-height:32px;padding-inline:var(--space-2xs)}.app-policy-page{padding-top:var(--space-xl)}.policy-section{padding:var(--space-md)}}.site-shell--app{min-height:100vh;color:var(--app-text);background:var(--app-background)}.site-shell--app[data-app-theme=aligner-tracker]{--app-background: var(--theme-aligner-background);--app-header-background: var(--theme-aligner-header);--app-surface: var(--theme-aligner-surface);--app-surface-strong: var(--theme-aligner-surface-strong);--app-text: var(--theme-aligner-text);--app-muted: var(--theme-aligner-muted);--app-primary: var(--theme-aligner-primary);--app-primary-dark: var(--theme-aligner-primary-dark);--app-accent: var(--theme-aligner-accent);--app-border: var(--theme-aligner-border);--app-accent-soft: var(--theme-aligner-accent-soft);--app-shadow: var(--theme-aligner-shadow)}.site-shell--app[data-app-theme=oshi-event-calendar]{--app-background: var(--theme-oshi-background);--app-header-background: var(--theme-oshi-header);--app-surface: var(--theme-oshi-surface);--app-surface-strong: var(--theme-oshi-surface-strong);--app-text: var(--theme-oshi-text);--app-muted: var(--theme-oshi-muted);--app-primary: var(--theme-oshi-primary);--app-primary-dark: var(--theme-oshi-primary-dark);--app-accent: var(--theme-oshi-accent);--app-border: var(--theme-oshi-border);--app-accent-soft: var(--theme-oshi-accent-soft);--app-shadow: var(--theme-oshi-shadow)}.site-shell--app[data-app-theme=menu-craft]{--app-background: var(--theme-menu-background);--app-header-background: var(--theme-menu-header);--app-surface: var(--theme-menu-surface);--app-surface-strong: var(--theme-menu-surface-strong);--app-text: var(--theme-menu-text);--app-muted: var(--theme-menu-muted);--app-primary: var(--theme-menu-primary);--app-primary-dark: var(--theme-menu-primary-dark);--app-accent: var(--theme-menu-accent);--app-border: var(--theme-menu-border);--app-accent-soft: var(--theme-menu-accent-soft);--app-shadow: var(--theme-menu-shadow)}.site-shell--app[data-app-theme=caps-yell]{--app-background: var(--theme-caps-background);--app-header-background: var(--theme-caps-header);--app-surface: var(--theme-caps-surface);--app-surface-strong: var(--theme-caps-surface-strong);--app-text: var(--theme-caps-text);--app-muted: var(--theme-caps-muted);--app-primary: var(--theme-caps-primary);--app-primary-dark: var(--theme-caps-primary-dark);--app-accent: var(--theme-caps-accent);--app-border: var(--theme-caps-border);--app-accent-soft: var(--theme-caps-accent-soft);--app-shadow: var(--theme-caps-shadow)}.site-shell--app[data-app-theme=gravilink]{--app-background: var(--theme-gravilink-background);--app-header-background: var(--theme-gravilink-header);--app-surface: var(--theme-gravilink-surface);--app-surface-strong: var(--theme-gravilink-surface-strong);--app-text: var(--theme-gravilink-text);--app-muted: var(--theme-gravilink-muted);--app-primary: var(--theme-gravilink-primary);--app-primary-dark: var(--theme-gravilink-primary-dark);--app-accent: var(--theme-gravilink-accent);--app-border: var(--theme-gravilink-border);--app-accent-soft: var(--theme-gravilink-accent-soft);--app-shadow: var(--theme-gravilink-shadow)}.site-shell--app[data-app-theme=miseru]{--app-background: var(--theme-miseru-background);--app-header-background: var(--theme-miseru-header);--app-surface: var(--theme-miseru-surface);--app-surface-strong: var(--theme-miseru-surface-strong);--app-text: var(--theme-miseru-text);--app-muted: var(--theme-miseru-muted);--app-primary: var(--theme-miseru-primary);--app-primary-dark: var(--theme-miseru-primary-dark);--app-accent: var(--theme-miseru-accent);--app-border: var(--theme-miseru-border);--app-accent-soft: var(--theme-miseru-accent-soft);--app-shadow: var(--theme-miseru-shadow)}.site-shell--app[data-app-theme=planti]{--app-background: var(--theme-planti-background);--app-header-background: var(--theme-planti-header);--app-surface: var(--theme-planti-surface);--app-surface-strong: var(--theme-planti-surface-strong);--app-text: var(--theme-planti-text);--app-muted: var(--theme-planti-muted);--app-primary: var(--theme-planti-primary);--app-primary-dark: var(--theme-planti-primary-dark);--app-accent: var(--theme-planti-accent);--app-border: var(--theme-planti-border);--app-accent-soft: var(--theme-planti-accent-soft);--app-shadow: var(--theme-planti-shadow)}.site-shell--app[data-app-theme=quickcrop-viewer]{--app-background: var(--theme-quickcrop-background);--app-header-background: var(--theme-quickcrop-header);--app-surface: var(--theme-quickcrop-surface);--app-surface-strong: var(--theme-quickcrop-surface-strong);--app-text: var(--theme-quickcrop-text);--app-muted: var(--theme-quickcrop-muted);--app-primary: var(--theme-quickcrop-primary);--app-primary-dark: var(--theme-quickcrop-primary-dark);--app-accent: var(--theme-quickcrop-accent);--app-border: var(--theme-quickcrop-border);--app-accent-soft: var(--theme-quickcrop-accent-soft);--app-shadow: var(--theme-quickcrop-shadow)}.site-shell--app .site-header{width:100%;max-width:none;margin-inline:0;padding-inline:max(var(--page-gutter),calc((100% - var(--shell)) / 2 + var(--page-gutter)));padding-block:var(--space-sm);background:var(--app-header-background);border-bottom:1px solid var(--app-border)}.site-shell--app h1,.site-shell--app h2,.site-shell--app h3,.site-shell--app .wordmark,.site-shell--app .nav-link,.site-shell--app .site-footer a{color:var(--app-primary-dark)}.site-shell--app .nav-cta{color:var(--app-surface);background:var(--app-primary);border-color:var(--app-primary)}.site-shell--app .nav-cta:hover{color:var(--app-surface);background:var(--app-primary-dark);border-color:var(--app-primary-dark)}.site-shell--app .language-option:hover{color:var(--app-primary-dark);border-color:var(--app-primary)}.site-shell--app .app-policy-page .eyebrow{color:var(--app-accent)}.site-shell--app .policy-section{color:var(--app-text);background:var(--app-surface);border-color:var(--app-border);box-shadow:var(--app-shadow)}.site-shell--app .policy-section h3{color:var(--app-primary-dark)}.site-shell--app .policy-copy a{color:var(--app-primary)}.site-shell--app .policy-updated,.site-shell--app .policy-copyright,.site-shell--app .site-footer{color:var(--app-muted)}.site-shell--app .site-footer{width:100%;max-width:none;margin-inline:0;padding-inline:max(var(--page-gutter),calc((100% - var(--shell)) / 2 + var(--page-gutter)));padding-block:var(--space-xl) var(--space-2xl);border-top-color:var(--app-border);background:var(--app-header-background)}.site-shell--app[data-app-theme=gravilink]{color-scheme:dark}.site-shell--app[data-app-theme=gravilink] .language-option:has(.language-control:not(:checked)){color:var(--app-text)}
