@charset "utf-8";

@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@500;700;900&family=Noto+Sans+JP:wght@300;400;500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap");

*, ::before, ::after, ::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #3b82f680; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; }

*, ::before, ::after { box-sizing: border-box; border: 0px solid rgb(229, 231, 235); }

::before, ::after { --tw-content: ""; }

html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--font-body); font-feature-settings: normal; font-variation-settings: normal; -webkit-tap-highlight-color: transparent; }

body { line-height: inherit; margin: 0px; }

hr { height: 0px; color: inherit; border-top-width: 1px; }

abbr:where([title]) { text-decoration: underline dotted; }

h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }

a { color: inherit; text-decoration: inherit; }

b, strong { font-weight: bolder; }

code, kbd, samp, pre { font-feature-settings: normal; font-variation-settings: normal; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 1em; }

small { font-size: 80%; }

sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }

sub { bottom: -0.25em; }

sup { top: -0.5em; }

table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }

button, input, optgroup, select, textarea { font-feature-settings: inherit; font-variation-settings: inherit; font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; margin: 0px; padding: 0px; }

button, select { text-transform: none; }

button, input:where([type="button"]), input:where([type="reset"]), input:where([type="submit"]) { appearance: button; background-color: rgba(0, 0, 0, 0); background-image: none; }

progress { vertical-align: baseline; }

::-webkit-inner-spin-button { height: auto; }

::-webkit-outer-spin-button { height: auto; }

[type="search"] { appearance: textfield; outline-offset: -2px; }

::-webkit-search-decoration { appearance: none; }

::-webkit-file-upload-button { appearance: button; font: inherit; }

summary { display: list-item; }

blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0px; }

fieldset { margin: 0px; padding: 0px; }

legend { padding: 0px; }

ol, ul, menu { margin: 0px; padding: 0px; list-style: none; }

dialog { padding: 0px; }

textarea { resize: vertical; }

input::placeholder, textarea::placeholder { opacity: 1; color: rgb(156, 163, 175); }

button, [role="button"] { cursor: pointer; }

:disabled { cursor: default; }

img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }

img, video { max-width: 100%; height: auto; }

[hidden]:where(:not([hidden="until-found"])) { display: none; }

.pointer-events-none { pointer-events: none; }

.visible { visibility: visible; }

.fixed { position: fixed; }

.absolute { position: absolute; }

.relative { position: relative; }

.-inset-3 { inset: -0.75rem; }

.-inset-4 { inset: -1rem; }

.inset-0 { inset: 0px; }

.-bottom-32 { bottom: -8rem; }

.-bottom-6 { bottom: -1.5rem; }

.-left-24 { left: -6rem; }

.-left-6 { left: -1.5rem; }

.-right-24 { right: -6rem; }

.-right-3 { right: -0.75rem; }

.-right-4 { right: -1rem; }

.-right-6 { right: -1.5rem; }

.-top-20 { top: -5rem; }

.-top-4 { top: -1rem; }

.bottom-0 { bottom: 0px; }

.bottom-4 { bottom: 1rem; }

.left-0 { left: 0px; }

.left-4 { left: 1rem; }

.left-full { left: 100%; }

.right-0 { right: 0px; }

.right-4 { right: 1rem; }

.right-full { right: 100%; }

.top-0 { top: 0px; }

.top-1\/2 { top: 50%; }

.top-4 { top: 1rem; }

.z-0 { z-index: 0; }

.z-10 { z-index: 10; }

.z-50 { z-index: 50; }

.order-1 { order: 1; }

.order-2 { order: 2; }

.col-span-1 { grid-column: span 1 / span 1; }

.col-span-2 { grid-column: span 2 / span 2; }

.mx-auto { margin-left: auto; margin-right: auto; }

.ml-3 { margin-left: 0.75rem; }

.ml-auto { margin-left: auto; }

.mt-0\.5 { margin-top: 0.125rem; }

.mt-1 { margin-top: 0.25rem; }

.mt-10 { margin-top: 2.5rem; }

.mt-12 { margin-top: 3rem; }

.mt-14 { margin-top: 3.5rem; }

.mt-16 { margin-top: 4rem; }

.mt-2 { margin-top: 0.5rem; }

.mt-3 { margin-top: 0.75rem; }

.mt-4 { margin-top: 1rem; }

.mt-5 { margin-top: 1.25rem; }

.mt-6 { margin-top: 1.5rem; }

.mt-8 { margin-top: 2rem; }

.inline-block { display: inline-block; }

.flex { display: flex; }

.inline-flex { display: inline-flex; }

.grid { display: grid; }

.hidden { display: none; }

.h-1\.5 { height: 0.375rem; }

.h-10 { height: 2.5rem; }

.h-11 { height: 2.75rem; }

.h-12 { height: 3rem; }

.h-14 { height: 3.5rem; }

.h-16 { height: 4rem; }

.h-2\.5 { height: 0.625rem; }

.h-6 { height: 1.5rem; }

.h-7 { height: 1.75rem; }

.h-8 { height: 2rem; }

.h-9 { height: 2.25rem; }

.h-\[420px\] { height: 420px; }

.h-\[520px\] { height: 520px; }

.h-full { height: 100%; }

.h-px { height: 1px; }

.h-screen { height: 100vh; }

.min-h-screen { min-height: 100vh; }

.w-1\.5 { width: 0.375rem; }

.w-10 { width: 2.5rem; }

.w-11 { width: 2.75rem; }

.w-12 { width: 3rem; }

.w-14 { width: 3.5rem; }

.w-16 { width: 4rem; }

.w-2\.5 { width: 0.625rem; }

.w-6 { width: 1.5rem; }

.w-7 { width: 1.75rem; }

.w-8 { width: 2rem; }

.w-9 { width: 2.25rem; }

.w-\[300px\] { width: 300px; }

.w-\[420px\] { width: 420px; }

.w-full { width: 100%; }

.max-w-md { max-width: 28rem; }

.max-w-2xl { max-width: 42rem; }

.max-w-3xl { max-width: 48rem; }

.max-w-4xl { max-width: 56rem; }

.max-w-5xl { max-width: 64rem; }

.max-w-6xl { max-width: 72rem; }

.max-w-7xl { max-width: 80rem; }

.max-w-sm { max-width: 24rem; }

.max-w-xl { max-width: 36rem; }

.shrink-0 { flex-shrink: 0; }

.-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.rotate-45 { --tw-rotate: 45deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

@keyframes pulse { 
  50% { opacity: 0.5; }
}

.animate-pulse { animation: 2s cubic-bezier(0.4, 0, 0.6, 1) 0s infinite normal none running pulse; }

@keyframes spin { 
  100% { transform: rotate(360deg); }
}

.animate-spin { animation: 1s linear 0s infinite normal none running spin; }

.cursor-pointer { cursor: pointer; }

.select-none { user-select: none; }

.resize-none { resize: none; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }

.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }

.flex-col { flex-direction: column; }

.items-start { align-items: flex-start; }

.items-center { align-items: center; }

.justify-center { justify-content: center; }

.justify-between { justify-content: space-between; }

.gap-1\.5 { gap: 0.375rem; }

.gap-10 { gap: 2.5rem; }

.gap-12 { gap: 3rem; }

.gap-2 { gap: 0.5rem; }

.gap-3 { gap: 0.75rem; }

.gap-4 { gap: 1rem; }

.gap-5 { gap: 1.25rem; }

.gap-6 { gap: 1.5rem; }

.gap-7 { gap: 1.75rem; }

.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(.375rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(.375rem * var(--tw-space-y-reverse)); }

.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(.5rem * var(--tw-space-y-reverse)); }

.space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(.75rem * var(--tw-space-y-reverse)); }

.space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }

.space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }

.divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); }

.divide-background-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: oklch(var(--background-200) / var(--tw-divide-opacity,1)); }

.self-start { align-self: flex-start; }

.overflow-hidden { overflow: hidden; }

.whitespace-nowrap { white-space: nowrap; }

.rounded-2xl { border-radius: 1rem; }

.rounded-full { border-radius: 9999px; }

.rounded-lg { border-radius: 0.5rem; }

.rounded-md { border-radius: 0.375rem; }

.rounded-xl { border-radius: 0.75rem; }

.border { border-width: 1px; }

.border-y { border-top-width: 1px; border-bottom-width: 1px; }

.border-b { border-bottom-width: 1px; }

.border-t { border-top-width: 1px; }

.border-accent-200 { --tw-border-opacity: 1; border-color: oklch(var(--accent-200) / var(--tw-border-opacity,1)); }

.border-accent-400 { --tw-border-opacity: 1; border-color: oklch(var(--accent-400) / var(--tw-border-opacity,1)); }

.border-background-200 { --tw-border-opacity: 1; border-color: oklch(var(--background-200) / var(--tw-border-opacity,1)); }

.border-background-300 { --tw-border-opacity: 1; border-color: oklch(var(--background-300) / var(--tw-border-opacity,1)); }

.border-primary-200 { --tw-border-opacity: 1; border-color: oklch(var(--primary-200) / var(--tw-border-opacity,1)); }

.border-primary-500 { --tw-border-opacity: 1; border-color: oklch(var(--primary-500) / var(--tw-border-opacity,1)); }

.border-primary-700 { --tw-border-opacity: 1; border-color: oklch(var(--primary-700) / var(--tw-border-opacity,1)); }

.border-primary-800 { --tw-border-opacity: 1; border-color: oklch(var(--primary-800) / var(--tw-border-opacity,1)); }

.border-secondary-200 { --tw-border-opacity: 1; border-color: oklch(var(--secondary-200) / var(--tw-border-opacity,1)); }

.border-secondary-400 { --tw-border-opacity: 1; border-color: oklch(var(--secondary-400) / var(--tw-border-opacity,1)); }

.bg-accent-100 { --tw-bg-opacity: 1; background-color: oklch(var(--accent-100) / var(--tw-bg-opacity,1)); }

.bg-accent-100\/60 { background-color: oklch(var(--accent-100) / .6); }

.bg-accent-300 { --tw-bg-opacity: 1; background-color: oklch(var(--accent-300) / var(--tw-bg-opacity,1)); }

.bg-accent-400 { --tw-bg-opacity: 1; background-color: oklch(var(--accent-400) / var(--tw-bg-opacity,1)); }

.bg-accent-50 { --tw-bg-opacity: 1; background-color: oklch(var(--accent-50) / var(--tw-bg-opacity,1)); }

.bg-accent-500 { --tw-bg-opacity: 1; background-color: oklch(var(--accent-500) / var(--tw-bg-opacity,1)); }

.bg-accent-500\/20 { background-color: oklch(var(--accent-500) / .2); }

.bg-background-100 { --tw-bg-opacity: 1; background-color: oklch(var(--background-100) / var(--tw-bg-opacity,1)); }

.bg-background-200 { --tw-bg-opacity: 1; background-color: oklch(var(--background-200) / var(--tw-bg-opacity,1)); }

.bg-background-200\/60 { background-color: oklch(var(--background-200) / .6); }

.bg-background-300 { --tw-bg-opacity: 1; background-color: oklch(var(--background-300) / var(--tw-bg-opacity,1)); }

.bg-background-50 { --tw-bg-opacity: 1; background-color: oklch(var(--background-50) / var(--tw-bg-opacity,1)); }

.bg-background-50\/95 { background-color: oklch(var(--background-50) / .95); }

.bg-primary-100 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-100) / var(--tw-bg-opacity,1)); }

.bg-primary-100\/50 { background-color: oklch(var(--primary-100) / .5); }

.bg-primary-100\/60 { background-color: oklch(var(--primary-100) / .6); }

.bg-primary-300 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-300) / var(--tw-bg-opacity,1)); }

.bg-primary-50 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-50) / var(--tw-bg-opacity,1)); }

.bg-primary-500 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-500) / var(--tw-bg-opacity,1)); }

.bg-primary-800 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-800) / var(--tw-bg-opacity,1)); }

.bg-primary-900 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-900) / var(--tw-bg-opacity,1)); }

.bg-primary-950 { --tw-bg-opacity: 1; background-color: oklch(var(--primary-950) / var(--tw-bg-opacity,1)); }

.bg-secondary-100 { --tw-bg-opacity: 1; background-color: oklch(var(--secondary-100) / var(--tw-bg-opacity,1)); }

.bg-secondary-50 { --tw-bg-opacity: 1; background-color: oklch(var(--secondary-50) / var(--tw-bg-opacity,1)); }

.bg-secondary-500\/20 { background-color: oklch(var(--secondary-500) / .2); }

.bg-transparent { background-color: rgba(0, 0, 0, 0); }

.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }

.from-accent-100\/60 { --tw-gradient-from: oklch(var(--accent-100) / .6) var(--tw-gradient-from-position); --tw-gradient-to: #fff0 var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }

.to-primary-100\/40 { --tw-gradient-to: oklch(var(--primary-100) / .4) var(--tw-gradient-to-position); }

.object-cover { object-fit: cover; }

.object-top { object-position: center top; }

.p-3 { padding: 0.75rem; }

.p-4 { padding: 1rem; }

.p-5 { padding: 1.25rem; }

.p-6 { padding: 1.5rem; }

.p-7 { padding: 1.75rem; }

.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }

.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }

.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }

.px-4 { padding-left: 1rem; padding-right: 1rem; }

.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }

.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }

.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }

.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }

.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }

.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }

.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }

.py-4 { padding-top: 1rem; padding-bottom: 1rem; }

.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }

.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }

.pb-16 { padding-bottom: 4rem; }

.pl-9 { padding-left: 2.25rem; }

.pt-28 { padding-top: 7rem; }

.pt-6 { padding-top: 1.5rem; }

.text-left { text-align: left; }

.text-center { text-align: center; }

.font-heading { font-family: var(--font-heading); }

.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

.text-2xl { font-size: 1.5rem; line-height: 2rem; }

.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }

.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }

.text-9xl { font-size: 8rem; line-height: 1; }

.text-\[10px\] { font-size: 10px; }

.text-\[11px\] { font-size: 11px; }

.text-base { font-size: 1rem; line-height: 1.5rem; }

.text-lg { font-size: 1.125rem; line-height: 1.75rem; }

.text-sm { font-size: 0.875rem; line-height: 1.25rem; }

.text-xl { font-size: 1.25rem; line-height: 1.75rem; }

.text-xs { font-size: 0.75rem; line-height: 1rem; }

.font-black { font-weight: 900; }

.font-medium { font-weight: 500; }

.font-semibold { font-weight: 600; }

.uppercase { text-transform: uppercase; }

.leading-\[1\.35\] { line-height: 1.35; }

.leading-\[1\.45\] { line-height: 1.45; }

.leading-\[1\.9\] { line-height: 1.9; }

.leading-\[2\.1\] { line-height: 2.1; }

.leading-\[2\] { line-height: 2; }

.leading-relaxed { line-height: 1.625; }

.leading-snug { line-height: 1.375; }

.tracking-wide { letter-spacing: 0.025em; }

.tracking-wider { letter-spacing: 0.05em; }

.text-accent-100 { --tw-text-opacity: 1; color: oklch(var(--accent-100) / var(--tw-text-opacity,1)); }

.text-accent-200 { --tw-text-opacity: 1; color: oklch(var(--accent-200) / var(--tw-text-opacity,1)); }

.text-accent-300 { --tw-text-opacity: 1; color: oklch(var(--accent-300) / var(--tw-text-opacity,1)); }

.text-accent-400 { --tw-text-opacity: 1; color: oklch(var(--accent-400) / var(--tw-text-opacity,1)); }

.text-accent-700 { --tw-text-opacity: 1; color: oklch(var(--accent-700) / var(--tw-text-opacity,1)); }

.text-accent-800 { --tw-text-opacity: 1; color: oklch(var(--accent-800) / var(--tw-text-opacity,1)); }

.text-background-200 { --tw-text-opacity: 1; color: oklch(var(--background-200) / var(--tw-text-opacity,1)); }

.text-background-300 { --tw-text-opacity: 1; color: oklch(var(--background-300) / var(--tw-text-opacity,1)); }

.text-background-50 { --tw-text-opacity: 1; color: oklch(var(--background-50) / var(--tw-text-opacity,1)); }

.text-foreground-500 { --tw-text-opacity: 1; color: oklch(var(--foreground-500) / var(--tw-text-opacity,1)); }

.text-foreground-600 { --tw-text-opacity: 1; color: oklch(var(--foreground-600) / var(--tw-text-opacity,1)); }

.text-foreground-700 { --tw-text-opacity: 1; color: oklch(var(--foreground-700) / var(--tw-text-opacity,1)); }

.text-foreground-800 { --tw-text-opacity: 1; color: oklch(var(--foreground-800) / var(--tw-text-opacity,1)); }

.text-foreground-900 { --tw-text-opacity: 1; color: oklch(var(--foreground-900) / var(--tw-text-opacity,1)); }

.text-foreground-950 { --tw-text-opacity: 1; color: oklch(var(--foreground-950) / var(--tw-text-opacity,1)); }

.text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175/var(--tw-text-opacity,1)); }

.text-gray-50 { --tw-text-opacity: 1; color: rgb(249 250 251/var(--tw-text-opacity,1)); }

.text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128/var(--tw-text-opacity,1)); }

.text-primary-600 { --tw-text-opacity: 1; color: oklch(var(--primary-600) / var(--tw-text-opacity,1)); }

.text-primary-700 { --tw-text-opacity: 1; color: oklch(var(--primary-700) / var(--tw-text-opacity,1)); }

.text-secondary-100 { --tw-text-opacity: 1; color: oklch(var(--secondary-100) / var(--tw-text-opacity,1)); }

.text-secondary-700 { --tw-text-opacity: 1; color: oklch(var(--secondary-700) / var(--tw-text-opacity,1)); }

.text-secondary-800 { --tw-text-opacity: 1; color: oklch(var(--secondary-800) / var(--tw-text-opacity,1)); }

.line-through { text-decoration-line: line-through; }

.opacity-30 { opacity: 0.3; }

.blur-2xl { --tw-blur: blur(40px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.blur-3xl { --tw-blur: blur(64px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.blur-xl { --tw-blur: blur(24px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.backdrop-blur { --tw-backdrop-blur: blur(8px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }

.transition-all { transition-property: all; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.transition-transform { transition-property: transform; transition-duration: 0.15s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.duration-300 { transition-duration: 0.3s; }

:root { --background-50: .985 .002 240; --background-100: .975 .003 240; --background-200: .945 .006 240; --background-300: .895 .008 240; --background-400: .82 .01 240; --background-500: .72 .01 240; --background-600: .58 .008 240; --background-700: .45 .007 240; --background-800: .32 .006 240; --background-900: .22 .005 240; --background-950: .14 .004 240; --primary-50: .965 .012 250; --primary-100: .92 .025 250; --primary-200: .84 .045 250; --primary-300: .72 .07 250; --primary-400: .58 .09 255; --primary-500: .42 .095 258; --primary-600: .32 .085 260; --primary-700: .25 .07 262; --primary-800: .19 .055 264; --primary-900: .14 .04 266; --primary-950: .09 .028 268; --accent-50: .975 .012 185; --accent-100: .945 .028 185; --accent-200: .895 .055 185; --accent-300: .82 .085 185; --accent-400: .735 .115 185; --accent-500: .66 .135 185; --accent-600: .56 .13 185; --accent-700: .46 .11 185; --accent-800: .36 .085 185; --accent-900: .28 .062 185; --accent-950: .18 .04 185; --secondary-50: .97 .01 145; --secondary-100: .94 .02 145; --secondary-200: .88 .035 145; --secondary-300: .78 .05 145; --secondary-400: .68 .06 145; --secondary-500: .58 .065 148; --secondary-600: .48 .06 150; --secondary-700: .38 .05 152; --secondary-800: .29 .038 154; --secondary-900: .22 .028 155; --secondary-950: .14 .018 155; --foreground-50: .98 .002 240; --foreground-100: .94 .003 240; --foreground-200: .88 .004 240; --foreground-300: .75 .005 240; --foreground-400: .6 .006 240; --foreground-500: .46 .006 240; --foreground-600: .36 .005 240; --foreground-700: .28 .004 240; --foreground-800: .2 .003 240; --foreground-900: .14 .0025 240; --foreground-950: .09 .002 240; --font-heading: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif; --font-body: "Noto Sans JP", "Inter", sans-serif; --font-label: "Noto Sans JP", "Inter", sans-serif; --font-mono: "IBM Plex Mono", "Noto Sans JP", monospace; }

html, body { font-family: var(--font-body); color: oklch(var(--foreground-900)); background: oklch(var(--background-50)); -webkit-font-smoothing: antialiased; font-feature-settings: "palt"; letter-spacing: 0.01em; }

h1, h2, h3, h4 { font-family: var(--font-heading); letter-spacing: 0.02em; }

.field-alt-contact { opacity: 0; pointer-events: none; width: 1px; height: 1px; position: absolute; top: -9999px; left: -9999px; }

.reveal { opacity: 0; transition: opacity 0.7s, transform 0.7s; transform: translateY(24px); }

.reveal.is-visible { opacity: 1; transform: translateY(0px); }

.category-highlight { transition: color 0.9s, background-color 0.9s, border-color 0.9s, box-shadow 0.9s; }

.placeholder\:text-background-300\/60::placeholder { color: oklch(var(--background-300) / .6); }

.hover\:border-primary-500:hover { --tw-border-opacity: 1; border-color: oklch(var(--primary-500) / var(--tw-border-opacity,1)); }

.hover\:bg-accent-600:hover { --tw-bg-opacity: 1; background-color: oklch(var(--accent-600) / var(--tw-bg-opacity,1)); }

.hover\:bg-primary-50:hover { --tw-bg-opacity: 1; background-color: oklch(var(--primary-50) / var(--tw-bg-opacity,1)); }

.hover\:bg-primary-600:hover { --tw-bg-opacity: 1; background-color: oklch(var(--primary-600) / var(--tw-bg-opacity,1)); }

.hover\:text-primary-600:hover { --tw-text-opacity: 1; color: oklch(var(--primary-600) / var(--tw-text-opacity,1)); }

.focus\:border-accent-400:focus { --tw-border-opacity: 1; border-color: oklch(var(--accent-400) / var(--tw-border-opacity,1)); }

.focus\:outline-none:focus { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }

.disabled\:opacity-60:disabled { opacity: 0.6; }

@media (width >= 640px) {
  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
  .sm\:flex-row { flex-direction: row; }
  .sm\:items-center { align-items: center; }
}

@media (width >= 768px) {
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:col-span-3 { grid-column: span 3 / span 3; }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
  .md\:col-span-5 { grid-column: span 5 / span 5; }
  .md\:mt-16 { margin-top: 4rem; }
  .md\:block { display: block; }
  .md\:flex { display: flex; }
  .md\:hidden { display: none; }
  .md\:h-20 { height: 5rem; }
  .md\:h-\[500px\] { height: 500px; }
  .md\:h-\[520px\] { height: 520px; }
  .md\:h-\[600px\] { height: 600px; }
  .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
  .md\:flex-row { flex-direction: row; }
  .md\:items-end { align-items: flex-end; }
  .md\:justify-between { justify-content: space-between; }
  .md\:gap-4 { gap: 1rem; }
  .md\:gap-8 { gap: 2rem; }
  .md\:p-10 { padding: 2.5rem; }
  .md\:p-7 { padding: 1.75rem; }
  .md\:p-8 { padding: 2rem; }
  .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
  .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
  .md\:py-28 { padding-top: 7rem; padding-bottom: 7rem; }
  .md\:py-8 { padding-top: 2rem; padding-bottom: 2rem; }
  .md\:pb-24 { padding-bottom: 6rem; }
  .md\:pt-36 { padding-top: 9rem; }
  .md\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .md\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .md\:text-5xl { font-size: 3rem; line-height: 1; }
  .md\:text-\[12rem\] { font-size: 12rem; }
  .md\:text-\[15px\] { font-size: 15px; }
  .md\:text-base { font-size: 1rem; line-height: 1.5rem; }
  .md\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
  .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
}

@media (width >= 1024px) {
  .lg\:order-1 { order: 1; }
  .lg\:order-2 { order: 2; }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-3 { grid-column: span 3 / span 3; }
  .lg\:col-span-5 { grid-column: span 5 / span 5; }
  .lg\:col-span-6 { grid-column: span 6 / span 6; }
  .lg\:col-span-7 { grid-column: span 7 / span 7; }
  .lg\:flex { display: flex; }
  .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
  .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0px, 1fr)); }
  .lg\:gap-14 { gap: 3.5rem; }
  .lg\:text-\[2\.4rem\] { font-size: 2.4rem; }
  .lg\:text-\[2\.6rem\] { font-size: 2.6rem; }
  .lg\:text-\[3\.4rem\] { font-size: 3.4rem; }
}

/* ---------- 追加分：素のHTML/CSS/JS化にあたっての補助スタイル ---------- */

/* ヘッダー：スクロールで背景を付ける */
.site-header.is-scrolled {
  background-color: oklch(var(--background-50) / .92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid oklch(var(--background-200));
}

/* モバイルナビ */
.mobile-nav {
  display: none;
  flex-direction: column;
  gap: 2px;
  background: oklch(var(--background-50));
  border-top: 1px solid oklch(var(--background-200));
  padding: 8px 16px 16px;
}

.mobile-nav.is-open {
  display: flex;
}

.mobile-nav a,
.mobile-nav-cta {
  padding: 12px 4px;
  font-size: 14px;
  color: oklch(var(--foreground-700));
  border-bottom: 1px solid oklch(var(--background-100));
}

/* FAQアコーディオン */
.faq-item .faq-answer {
  display: none;
}

.faq-item.is-open .faq-answer {
  display: block;
}

.faq-item.is-open .faq-icon {
  transform: rotate(45deg);
}

/* ⑤3類型比較：Conaviaカードのグレー→アクセント演出 */
.type-card-conavia {
  transition: background-color 0.9s, color 0.9s, border-color 0.9s, box-shadow 0.9s;
}

.type-card-conavia.is-active {
  background-color: oklch(var(--primary-950));
  border-color: oklch(var(--primary-800));
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
}

.type-card-conavia.is-active,
.type-card-conavia.is-active .type-card-icon,
.type-card-conavia.is-active .type-card-eyebrow,
.type-card-conavia.is-active .type-card-title,
.type-card-conavia.is-active .type-card-desc,
.type-card-conavia.is-active .type-card-note {
  color: oklch(var(--background-50));
}

.type-card-conavia.is-active .type-card-icon {
  background-color: oklch(var(--accent-500));
}

/* リビール（フェードイン） */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s, transform 0.7s;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* FAQ用に一部だけ丸ボタンのアイコンをtransition対応 */
.faq-icon {
  transition: transform 0.15s ease;
}

/* データ/ラベル用モノスペース：進捗・統計値・番号にのみ使う（多用しない） */
.font-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* ルートライン：ページを貫く「現在地」インジケーター。
   プロダクト自体の「面接中の進捗表示」をLPの読了進捗に写し取ったサイン要素 */
.route-rail {
  position: fixed;
  left: 28px;
  top: 0;
  bottom: 0;
  width: 24px;
  z-index: 30;
  display: none;
  pointer-events: none;
}

@media (min-width: 1024px) {
  .route-rail { display: block; }
}

.route-rail-track {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 2px;
  margin-left: -1px;
  background: repeating-linear-gradient(
    to bottom,
    oklch(var(--background-400)) 0px,
    oklch(var(--background-400)) 4px,
    transparent 4px,
    transparent 10px
  );
}

.route-rail-progress {
  position: absolute;
  left: 50%;
  top: 0%;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  margin-top: -6px;
  border-radius: 999px;
  background: oklch(var(--accent-500));
  box-shadow: 0 0 0 4px oklch(var(--background-50)), 0 0 14px 2px oklch(var(--accent-500) / .5);
  transition: top 0.08s linear;
}

@media (prefers-reduced-motion: reduce) {
  .route-rail-progress { transition: none; }
}

/* ===== 機能の説明の横に、画面の見本の動画（2026-10-22）＝見えたら1回だけ再生し、最後の絵で止める ===== */
.feat-row { display: grid; gap: 20px; }
@media (min-width: 768px) {
  .feat-wide { grid-column: 1 / -1; }
  .feat-row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 32px; align-items: center; }
}
.demo-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.demo-tab { font: inherit; font-size: 13px; font-weight: 600; padding: 4px 14px; border-radius: 999px; cursor: pointer;
  border: 1px solid oklch(var(--background-200)); background: oklch(var(--background-50)); color: oklch(var(--foreground-700)); }
.demo-tab.is-on { background: oklch(var(--primary-500)); border-color: oklch(var(--primary-500)); color: oklch(var(--background-50)); }
.demo-frame { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid oklch(var(--background-200)); background: #eef2f6; aspect-ratio: 16 / 9; }
.demo-frame video { display: block; width: 100%; height: 100%; object-fit: cover; }
.demo-bar { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; min-height: 30px; }
.demo-again, .demo-zoom { display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: 13px; font-weight: 600;
  padding: 4px 12px; border-radius: 999px; border: 1px solid oklch(var(--background-200)); background: oklch(var(--background-50)); color: oklch(var(--primary-700)); cursor: pointer; }
.demo-zoom { margin-right: auto; }
@media (min-width: 768px) { .demo-zoom { display: none; } }
.demo-again[hidden] { display: none; }
