/* ==========================================================================
   OIPI (岡山サイケデリック精神医療研究会) スタイルシート
   ========================================================================== */

@layer properties {
  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {
    *,:before,:after,::backdrop {
      --tw-rotate-x:initial;
      --tw-rotate-y:initial;
      --tw-rotate-z:initial;
      --tw-skew-x:initial;
      --tw-skew-y:initial;
      --tw-space-y-reverse:0;
      --tw-border-style:solid;
      --tw-leading:initial;
      --tw-font-weight:initial;
      --tw-tracking:initial;
      --tw-shadow:0 0 #0000;
      --tw-shadow-color:initial;
      --tw-shadow-alpha:100%;
      --tw-inset-shadow:0 0 #0000;
      --tw-inset-shadow-color:initial;
      --tw-inset-shadow-alpha:100%;
      --tw-ring-color:initial;
      --tw-ring-shadow:0 0 #0000;
      --tw-inset-ring-color:initial;
      --tw-inset-ring-shadow:0 0 #0000;
      --tw-ring-inset:initial;
      --tw-ring-offset-width:0px;
      --tw-ring-offset-color:#fff;
      --tw-ring-offset-shadow:0 0 #0000;
      --tw-outline-style:solid;
      --tw-duration:initial;
      --tw-backdrop-blur:initial;
      --tw-backdrop-brightness:initial;
      --tw-backdrop-contrast:initial;
      --tw-backdrop-grayscale:initial;
      --tw-backdrop-hue-rotate:initial;
      --tw-backdrop-invert:initial;
      --tw-backdrop-opacity:initial;
      --tw-backdrop-saturate:initial;
      --tw-backdrop-sepia:initial
    }
    
  }
  
}
@layer theme {
  :root,:host {
    --color-slate-50:#f8fafc;
    --color-slate-100:#f1f5f9;
    --color-slate-300:#cad5e2;
    --color-slate-900:#0f172b;
    --color-white:#fff;
    --spacing:.25rem;
    --container-md:28rem;
    --container-lg:32rem;
    --container-xl:36rem;
    --container-2xl:42rem;
    --container-3xl:48rem;
    --container-4xl:56rem;
    --container-6xl:72rem;
    --text-xs:.75rem;
    --text-xs--line-height:calc(1 / .75);
    --text-sm:.875rem;
    --text-sm--line-height:calc(1.25 / .875);
    --text-base:1rem;
    --text-base--line-height:calc(1.5 / 1);
    --text-lg:1.125rem;
    --text-lg--line-height:calc(1.75 / 1.125);
    --text-2xl:1.5rem;
    --text-2xl--line-height:calc(2 / 1.5);
    --text-3xl:1.875rem;
    --text-3xl--line-height:calc(2.25 / 1.875);
    --text-4xl:2.25rem;
    --text-4xl--line-height:calc(2.5 / 2.25);
    --text-5xl:3rem;
    --text-5xl--line-height:1;
    --font-weight-light:300;
    --font-weight-medium:500;
    --font-weight-semibold:600;
    --font-weight-bold:700;
    --tracking-tight:-.025em;
    --tracking-wide:.025em;
    --tracking-wider:.05em;
    --tracking-widest:.1em;
    --leading-tight:1.25;
    --leading-snug:1.375;
    --leading-relaxed:1.625;
    --radius-lg:.5rem;
    --blur-sm:8px;
    --default-transition-duration:.15s;
    --default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);
    --default-font-family:var(--font-noto-sans-jp), var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
    --default-mono-font-family:var(--font-geist-mono), ui-monospace, monospace;
    --color-text:var(--color-text);
    --color-navy:var(--color-navy);
    --color-accent:var(--color-accent);
    --color-gold:var(--color-gold);
    --color-gold-dark:var(--color-gold-dark);
    --color-gold-light:var(--color-gold-light);
    --color-gold-pale:var(--color-gold-pale);
    --color-label:var(--color-label);
    --color-sage:#e8ecea
  }
  @supports (color:lab(0% 0 0)) {
    :root,:host {
      --color-slate-50:lab(98.1434% -.369519 -1.05966);
      --color-slate-100:lab(96.286% -.852436 -2.46847);
      --color-slate-300:lab(84.7652% -1.94535 -7.93337);
      --color-slate-900:lab(7.78673% 1.82345 -15.0537)
    }
    
  }
  
}
@layer base {
  *,:after,:before,::backdrop {
    box-sizing:border-box;
    border:0 solid;
    margin:0;
    padding:0
  }
  ::file-selector-button {
    box-sizing:border-box;
    border:0 solid;
    margin:0;
    padding:0
  }
  html,:host {
    -webkit-text-size-adjust:100%;
    tab-size:4;
    line-height:1.5;
    font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings:var(--default-font-feature-settings,normal);
    font-variation-settings:var(--default-font-variation-settings,normal);
    -webkit-tap-highlight-color:transparent
  }
  hr {
    height:0;
    color:inherit;
    border-top-width:1px
  }
  abbr:where([title]) {
    -webkit-text-decoration:underline dotted;
    text-decoration:underline dotted
  }
  h1,h2,h3,h4,h5,h6 {
    font-size:inherit;
    font-weight:inherit
  }
  a {
    color:inherit;
    -webkit-text-decoration:inherit;
    -webkit-text-decoration:inherit;
    -webkit-text-decoration:inherit;
    -webkit-text-decoration:inherit;
    text-decoration:inherit
  }
  b,strong {
    font-weight:bolder
  }
  code,kbd,samp,pre {
    font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings:var(--default-mono-font-feature-settings,normal);
    font-variation-settings:var(--default-mono-font-variation-settings,normal);
    font-size:1em
  }
  small {
    font-size:80%
  }
  sub,sup {
    vertical-align:baseline;
    font-size:75%;
    line-height:0;
    position:relative
  }
  sub {
    bottom:-.25em
  }
  sup {
    top:-.5em
  }
  table {
    text-indent:0;
    border-color:inherit;
    border-collapse:collapse
  }
  :-moz-focusring {
    outline:auto
  }
  progress {
    vertical-align:baseline
  }
  summary {
    display:list-item
  }
  ol,ul,menu {
    list-style:none
  }
  img,svg,video,canvas,audio,iframe,embed,object {
    vertical-align:middle;
    display:block
  }
  img,video {
    max-width:100%;
    height:auto
  }
  button,input,select,optgroup,textarea {
    font:inherit;
    font-feature-settings:inherit;
    font-variation-settings:inherit;
    letter-spacing:inherit;
    color:inherit;
    opacity:1;
    background-color:#0000;
    border-radius:0
  }
  ::file-selector-button {
    font:inherit;
    font-feature-settings:inherit;
    font-variation-settings:inherit;
    letter-spacing:inherit;
    color:inherit;
    opacity:1;
    background-color:#0000;
    border-radius:0
  }
  :where(select:is([multiple],[size])) optgroup {
    font-weight:bolder
  }
  :where(select:is([multiple],[size])) optgroup option {
    padding-inline-start:20px
  }
  ::file-selector-button {
    margin-inline-end:4px
  }
  ::placeholder {
    opacity:1
  }
  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color:currentColor
    }
    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder {
        color:color-mix(in oklab, currentcolor 50%, transparent)
      }
      
    }
    
  }
  textarea {
    resize:vertical
  }
  ::-webkit-search-decoration {
    -webkit-appearance:none
  }
  ::-webkit-date-and-time-value {
    min-height:1lh;
    text-align:inherit
  }
  ::-webkit-datetime-edit {
    display:inline-flex
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding:0
  }
  ::-webkit-datetime-edit {
    padding-block:0
  }
  ::-webkit-datetime-edit-year-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-month-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-day-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-hour-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-minute-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-second-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-millisecond-field {
    padding-block:0
  }
  ::-webkit-datetime-edit-meridiem-field {
    padding-block:0
  }
  ::-webkit-calendar-picker-indicator {
    line-height:1
  }
  :-moz-ui-invalid {
    box-shadow:none
  }
  button,input:where([type=button],[type=reset],[type=submit]) {
    appearance:button
  }
  ::file-selector-button {
    appearance:button
  }
  ::-webkit-inner-spin-button {
    height:auto
  }
  ::-webkit-outer-spin-button {
    height:auto
  }
  [hidden]:where(:not([hidden=until-found])) {
    display:none!important
  }
  
}
@layer components;
@layer utilities {
  .pointer-events-none {
    pointer-events:none
  }
  .visible {
    visibility:visible
  }
  .absolute {
    position:absolute
  }
  .fixed {
    position:fixed
  }
  .relative {
    position:relative
  }
  .sticky {
    position:sticky
  }
  .inset-0 {
    inset:calc(var(--spacing) * 0)
  }
  .inset-x-0 {
    inset-inline:calc(var(--spacing) * 0)
  }
  .inset-y-0 {
    inset-block:calc(var(--spacing) * 0)
  }
  .top-0 {
    top:calc(var(--spacing) * 0)
  }
  .top-1 {
    top:calc(var(--spacing) * 1)
  }
  .top-20 {
    top:calc(var(--spacing) * 20)
  }
  .right-0 {
    right:calc(var(--spacing) * 0)
  }
  .right-6 {
    right:calc(var(--spacing) * 6)
  }
  .bottom-1 {
    bottom:calc(var(--spacing) * 1)
  }
  .bottom-10 {
    bottom:calc(var(--spacing) * 10)
  }
  .left-1 {
    left:calc(var(--spacing) * 1)
  }
  .isolate {
    isolation:isolate
  }
  .z-0 {
    z-index:0
  }
  .z-10 {
    z-index:10
  }
  .z-20 {
    z-index:20
  }
  .z-50 {
    z-index:50
  }
  .z-\[1\] {
    z-index:1
  }
  .container {
    width:100%
  }
  @media (min-width:40rem) {
    .container {
      max-width:40rem
    }
    
  }
  @media (min-width:48rem) {
    .container {
      max-width:48rem
    }
    
  }
  @media (min-width:64rem) {
    .container {
      max-width:64rem
    }
    
  }
  @media (min-width:80rem) {
    .container {
      max-width:80rem
    }
    
  }
  @media (min-width:96rem) {
    .container {
      max-width:96rem
    }
    
  }
  .-mx-6 {
    margin-inline:calc(var(--spacing) * -6)
  }
  .mx-auto {
    margin-inline:auto
  }
  .mt-1 {
    margin-top:calc(var(--spacing) * 1)
  }
  .mt-2 {
    margin-top:calc(var(--spacing) * 2)
  }
  .mt-3 {
    margin-top:calc(var(--spacing) * 3)
  }
  .mt-4 {
    margin-top:calc(var(--spacing) * 4)
  }
  .mt-12 {
    margin-top:calc(var(--spacing) * 12)
  }
  .mt-16 {
    margin-top:calc(var(--spacing) * 16)
  }
  .-mb-10 {
    margin-bottom:calc(var(--spacing) * -10)
  }
  .mb-0 {
    margin-bottom:calc(var(--spacing) * 0)
  }
  .mb-0\.5 {
    margin-bottom:calc(var(--spacing) * .5)
  }
  .mb-1 {
    margin-bottom:calc(var(--spacing) * 1)
  }
  .mb-2 {
    margin-bottom:calc(var(--spacing) * 2)
  }
  .mb-3 {
    margin-bottom:calc(var(--spacing) * 3)
  }
  .mb-6 {
    margin-bottom:calc(var(--spacing) * 6)
  }
  .mb-8 {
    margin-bottom:calc(var(--spacing) * 8)
  }
  .mb-10 {
    margin-bottom:calc(var(--spacing) * 10)
  }
  .mb-12 {
    margin-bottom:calc(var(--spacing) * 12)
  }
  .mb-16 {
    margin-bottom:calc(var(--spacing) * 16)
  }
  .ml-auto {
    margin-left:auto
  }
  .line-clamp-2 {
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    display:-webkit-box;
    overflow:hidden
  }
  .block {
    display:block
  }
  .flex {
    display:flex
  }
  .grid {
    display:grid
  }
  .hidden {
    display:none
  }
  .inline-block {
    display:inline-block
  }
  .aspect-\[1060\/900\] {
    aspect-ratio:1060/900
  }
  .aspect-\[1200\/630\] {
    aspect-ratio:1200/630
  }
  .h-4 {
    height:calc(var(--spacing) * 4)
  }
  .h-6 {
    height:calc(var(--spacing) * 6)
  }
  .h-14 {
    height:calc(var(--spacing) * 14)
  }
  .h-20 {
    height:calc(var(--spacing) * 20)
  }
  .h-36 {
    height:calc(var(--spacing) * 36)
  }
  .h-full {
    height:100%
  }
  .min-h-\[inherit\] {
    min-height:inherit
  }
  .min-h-\[min\(42vh\,400px\)\] {
    min-height:min(42vh,400px)
  }
  .min-h-full {
    min-height:100%
  }
  .min-h-screen {
    min-height:100vh
  }
  .w-4 {
    width:calc(var(--spacing) * 4)
  }
  .w-6 {
    width:calc(var(--spacing) * 6)
  }
  .w-14 {
    width:calc(var(--spacing) * 14)
  }
  .w-\[5\.5rem\] {
    width:5.5rem
  }
  .w-\[calc\(50\%-0\.25rem\)\] {
    width:calc(50% - .25rem)
  }
  .w-\[calc\(100\%\+3rem\)\] {
    width:calc(100% + 3rem)
  }
  .w-\[clamp\(340px\,50vw\,780px\)\] {
    width:clamp(340px,50vw,780px)
  }
  .w-\[clamp\(440px\,48vw\,880px\)\] {
    width:clamp(440px,48vw,880px)
  }
  .w-fit {
    width:fit-content
  }
  .w-full {
    width:100%
  }
  .max-w-2xl {
    max-width:var(--container-2xl)
  }
  .max-w-3xl {
    max-width:var(--container-3xl)
  }
  .max-w-4xl {
    max-width:var(--container-4xl)
  }
  .max-w-6xl {
    max-width:var(--container-6xl)
  }
  .max-w-\[11rem\] {
    max-width:11rem
  }
  .max-w-full {
    max-width:100%
  }
  .max-w-lg {
    max-width:var(--container-lg)
  }
  .max-w-md {
    max-width:var(--container-md)
  }
  .max-w-xl {
    max-width:var(--container-xl)
  }
  .min-w-0 {
    min-width:calc(var(--spacing) * 0)
  }
  .flex-1 {
    flex:1
  }
  .shrink-0 {
    flex-shrink:0
  }
  .origin-\[50\%_50\%\] {
    transform-origin:50%
  }
  .transform {
    transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)
  }
  .resize {
    resize:both
  }
  .scroll-mt-20 {
    scroll-margin-top:calc(var(--spacing) * 20)
  }
  .grid-cols-2 {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .flex-col {
    flex-direction:column
  }
  .flex-wrap {
    flex-wrap:wrap
  }
  .items-baseline {
    align-items:baseline
  }
  .items-center {
    align-items:center
  }
  .justify-center {
    justify-content:center
  }
  .gap-2 {
    gap:calc(var(--spacing) * 2)
  }
  .gap-3 {
    gap:calc(var(--spacing) * 3)
  }
  .gap-4 {
    gap:calc(var(--spacing) * 4)
  }
  .gap-5 {
    gap:calc(var(--spacing) * 5)
  }
  .gap-6 {
    gap:calc(var(--spacing) * 6)
  }
  :where(.space-y-1\.5>:not(:last-child)) {
    --tw-space-y-reverse:0;
    margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
    margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))
  }
  :where(.space-y-6>:not(:last-child)) {
    --tw-space-y-reverse:0;
    margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
    margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))
  }
  .gap-x-3 {
    column-gap:calc(var(--spacing) * 3)
  }
  .gap-y-1 {
    row-gap:calc(var(--spacing) * 1)
  }
  .overflow-hidden {
    overflow:hidden
  }
  .overflow-x-clip {
    overflow-x:clip
  }
  .rounded {
    border-radius:.25rem
  }
  .rounded-full {
    border-radius:3.40282e38px
  }
  .rounded-lg {
    border-radius:var(--radius-lg)
  }
  .border {
    border-style:var(--tw-border-style);
    border-width:1px
  }
  .border-t {
    border-top-style:var(--tw-border-style);
    border-top-width:1px
  }
  .border-b {
    border-bottom-style:var(--tw-border-style);
    border-bottom-width:1px
  }
  .border-label\/20 {
    border-color:var(--color-label)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .border-label\/20 {
      border-color:color-mix(in oklab, var(--color-label) 20%, transparent)
    }
    
  }
  .border-sage-border {
    border-color:#cdd5d1
  }
  .border-slate-100 {
    border-color:var(--color-slate-100)
  }
  .border-slate-300 {
    border-color:var(--color-slate-300)
  }
  .bg-accent {
    background-color:var(--color-accent)
  }
  .bg-gold {
    background-color:var(--color-gold)
  }
  .bg-gold-light {
    background-color:var(--color-gold-light)
  }
  .bg-gold-pale {
    background-color:var(--color-gold-pale)
  }
  .bg-sage {
    background-color:#e8ecea
  }
  .bg-sage-light {
    background-color:#d8dedb
  }
  .bg-slate-50 {
    background-color:var(--color-slate-50)
  }
  .bg-white {
    background-color:var(--color-white)
  }
  .object-cover {
    object-fit:cover
  }
  .object-right {
    object-position:right
  }
  .p-1 {
    padding:calc(var(--spacing) * 1)
  }
  .p-2\.5 {
    padding:calc(var(--spacing) * 2.5)
  }
  .p-7 {
    padding:calc(var(--spacing) * 7)
  }
  .p-8 {
    padding:calc(var(--spacing) * 8)
  }
  .p-10 {
    padding:calc(var(--spacing) * 10)
  }
  .px-4 {
    padding-inline:calc(var(--spacing) * 4)
  }
  .px-6 {
    padding-inline:calc(var(--spacing) * 6)
  }
  .py-1\.5 {
    padding-block:calc(var(--spacing) * 1.5)
  }
  .py-3 {
    padding-block:calc(var(--spacing) * 3)
  }
  .py-4\.5 {
    padding-block:calc(var(--spacing) * 4.5)
  }
  .py-5 {
    padding-block:calc(var(--spacing) * 5)
  }
  .py-12 {
    padding-block:calc(var(--spacing) * 12)
  }
  .py-24 {
    padding-block:calc(var(--spacing) * 24)
  }
  .pt-16 {
    padding-top:calc(var(--spacing) * 16)
  }
  .pb-24 {
    padding-bottom:calc(var(--spacing) * 24)
  }
  .text-center {
    text-align:center
  }
  .text-left {
    text-align:left
  }
  .font-mono {
    font-family:var(--font-geist-mono), ui-monospace, monospace
  }
  .font-sans {
    font-family:var(--font-noto-sans-jp), var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif
  }
  .text-2xl {
    font-size:var(--text-2xl);
    line-height:var(--tw-leading,var(--text-2xl--line-height))
  }
  .text-3xl {
    font-size:var(--text-3xl);
    line-height:var(--tw-leading,var(--text-3xl--line-height))
  }
  .text-base {
    font-size:var(--text-base);
    line-height:var(--tw-leading,var(--text-base--line-height))
  }
  .text-lg {
    font-size:var(--text-lg);
    line-height:var(--tw-leading,var(--text-lg--line-height))
  }
  .text-sm {
    font-size:var(--text-sm);
    line-height:var(--tw-leading,var(--text-sm--line-height))
  }
  .text-xs {
    font-size:var(--text-xs);
    line-height:var(--tw-leading,var(--text-xs--line-height))
  }
  .text-\[10px\] {
    font-size:10px
  }
  .leading-none {
    --tw-leading:1;
    line-height:1
  }
  .leading-relaxed {
    --tw-leading:var(--leading-relaxed);
    line-height:var(--leading-relaxed)
  }
  .leading-snug {
    --tw-leading:var(--leading-snug);
    line-height:var(--leading-snug)
  }
  .leading-tight {
    --tw-leading:var(--leading-tight);
    line-height:var(--leading-tight)
  }
  .font-bold {
    --tw-font-weight:var(--font-weight-bold);
    font-weight:var(--font-weight-bold)
  }
  .font-light {
    --tw-font-weight:var(--font-weight-light);
    font-weight:var(--font-weight-light)
  }
  .font-medium {
    --tw-font-weight:var(--font-weight-medium);
    font-weight:var(--font-weight-medium)
  }
  .font-semibold {
    --tw-font-weight:var(--font-weight-semibold);
    font-weight:var(--font-weight-semibold)
  }
  .tracking-\[0\.2em\] {
    --tw-tracking:.2em;
    letter-spacing:.2em
  }
  .tracking-\[0\.04em\] {
    --tw-tracking:.04em;
    letter-spacing:.04em
  }
  .tracking-\[0\.25em\] {
    --tw-tracking:.25em;
    letter-spacing:.25em
  }
  .tracking-tight {
    --tw-tracking:var(--tracking-tight);
    letter-spacing:var(--tracking-tight)
  }
  .tracking-wide {
    --tw-tracking:var(--tracking-wide);
    letter-spacing:var(--tracking-wide)
  }
  .tracking-wider {
    --tw-tracking:var(--tracking-wider);
    letter-spacing:var(--tracking-wider)
  }
  .tracking-widest {
    --tw-tracking:var(--tracking-widest);
    letter-spacing:var(--tracking-widest)
  }
  .whitespace-nowrap {
    white-space:nowrap
  }
  .text-\[\#2a3d36\] {
    color:#2a3d36
  }
  .text-accent {
    color:var(--color-accent)
  }
  .text-gold-dark {
    color:var(--color-gold-dark)
  }
  .text-label,.text-label\/95 {
    color:var(--color-label)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .text-label\/95 {
      color:color-mix(in oklab, var(--color-label) 95%, transparent)
    }
    
  }
  .text-navy {
    color:var(--color-navy)
  }
  .text-slate-900 {
    color:var(--color-slate-900)
  }
  .text-text,.text-text\/40 {
    color:var(--color-text)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .text-text\/40 {
      color:color-mix(in oklab, var(--color-text) 40%, transparent)
    }
    
  }
  .text-text\/50 {
    color:var(--color-text)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .text-text\/50 {
      color:color-mix(in oklab, var(--color-text) 50%, transparent)
    }
    
  }
  .text-text\/70 {
    color:var(--color-text)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .text-text\/70 {
      color:color-mix(in oklab, var(--color-text) 70%, transparent)
    }
    
  }
  .text-text\/75 {
    color:var(--color-text)
  }
  @supports (color:color-mix(in lab, red, red)) {
    .text-text\/75 {
      color:color-mix(in oklab, var(--color-text) 75%, transparent)
    }
    
  }
  .text-white {
    color:var(--color-white)
  }
  .uppercase {
    text-transform:uppercase
  }
  .underline {
    text-decoration-line:underline
  }
  .underline-offset-2 {
    text-underline-offset:2px
  }
  .antialiased {
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale
  }
  .opacity-0 {
    opacity:0
  }
  .opacity-100 {
    opacity:1
  }
  .shadow-sm {
    --tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);
    box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)
  }
  .outline {
    outline-style:var(--tw-outline-style);
    outline-width:1px
  }
  .transition {
    transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;
    transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));
    transition-duration:var(--tw-duration,var(--default-transition-duration))
  }
  .transition-all {
    transition-property:all;
    transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));
    transition-duration:var(--tw-duration,var(--default-transition-duration))
  }
  .transition-colors {
    transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;
    transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));
    transition-duration:var(--tw-duration,var(--default-transition-duration))
  }
  .transition-opacity {
    transition-property:opacity;
    transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));
    transition-duration:var(--tw-duration,var(--default-transition-duration))
  }
  .duration-150 {
    --tw-duration:.15s;
    transition-duration:.15s
  }
  .will-change-\[transform\,opacity\] {
    will-change:transform,opacity
  }
  .select-none {
    -webkit-user-select:none;
    user-select:none
  }
  @media (hover:hover) {
    .group-hover\:text-accent:is(:where(.group):hover *) {
      color:var(--color-accent)
    }
    .hover\:border-slate-300:hover {
      border-color:var(--color-slate-300)
    }
    .hover\:bg-slate-50:hover {
      background-color:var(--color-slate-50)
    }
    .hover\:text-text:hover {
      color:var(--color-text)
    }
    
  }
  @media not all and (min-width:80rem) {
    .max-xl\:bg-white {
      background-color:var(--color-white)
    }
    
  }
  @media (min-width:40rem) {
    .sm\:inline {
      display:inline
    }
    .sm\:h-44 {
      height:calc(var(--spacing) * 44)
    }
    .sm\:max-w-\[13rem\] {
      max-width:13rem
    }
    .sm\:grid-cols-2 {
      grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .sm\:flex-row {
      flex-direction:row
    }
    .sm\:items-start {
      align-items:flex-start
    }
    .sm\:gap-3 {
      gap:calc(var(--spacing) * 3)
    }
    .sm\:p-14 {
      padding:calc(var(--spacing) * 14)
    }
    .sm\:px-4 {
      padding-inline:calc(var(--spacing) * 4)
    }
    .sm\:py-2 {
      padding-block:calc(var(--spacing) * 2)
    }
    .sm\:text-3xl {
      font-size:var(--text-3xl);
      line-height:var(--tw-leading,var(--text-3xl--line-height))
    }
    .sm\:text-4xl {
      font-size:var(--text-4xl);
      line-height:var(--tw-leading,var(--text-4xl--line-height))
    }
    .sm\:text-\[11px\] {
      font-size:11px
    }
    .sm\:text-\[13px\] {
      font-size:13px
    }
    
  }
  @media (min-width:48rem) {
    .md\:-mt-8 {
      margin-top:calc(var(--spacing) * -8)
    }
    .md\:-mb-20 {
      margin-bottom:calc(var(--spacing) * -20)
    }
    .md\:max-w-2xl {
      max-width:var(--container-2xl)
    }
    .md\:grid-cols-3 {
      grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .md\:pt-20 {
      padding-top:calc(var(--spacing) * 20)
    }
    .md\:text-center {
      text-align:center
    }
    .md\:text-5xl {
      font-size:var(--text-5xl);
      line-height:var(--tw-leading,var(--text-5xl--line-height))
    }
    
  }
  @media (min-width:64rem) {
    .lg\:-mt-12 {
      margin-top:calc(var(--spacing) * -12)
    }
    .lg\:-mb-28 {
      margin-bottom:calc(var(--spacing) * -28)
    }
    .lg\:block {
      display:block
    }
    .lg\:flex {
      display:flex
    }
    .lg\:hidden {
      display:none
    }
    .lg\:inline {
      display:inline
    }
    .lg\:min-h-\[min\(44vh\,420px\)\] {
      min-height:min(44vh,420px)
    }
    .lg\:max-w-\[15rem\] {
      max-width:15rem
    }
    .lg\:max-w-\[min\(100\%\,480px\)\] {
      max-width:min(100%,480px)
    }
    .lg\:grid-cols-3 {
      grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .lg\:gap-4 {
      gap:calc(var(--spacing) * 4)
    }
    .lg\:py-16 {
      padding-block:calc(var(--spacing) * 16)
    }
    .lg\:pt-24 {
      padding-top:calc(var(--spacing) * 24)
    }
    .lg\:whitespace-nowrap {
      white-space:nowrap
    }
    
  }
  @media (min-width:80rem) {
    .xl\:pointer-events-none {
      pointer-events:none
    }
    .xl\:mx-0 {
      margin-inline:calc(var(--spacing) * 0)
    }
    .xl\:mt-8 {
      margin-top:calc(var(--spacing) * 8)
    }
    .xl\:mb-10 {
      margin-bottom:calc(var(--spacing) * 10)
    }
    .xl\:mb-12 {
      margin-bottom:calc(var(--spacing) * 12)
    }
    .xl\:block {
      display:block
    }
    .xl\:flex {
      display:flex
    }
    .xl\:hidden {
      display:none
    }
    .xl\:min-h-dvh {
      min-height:100dvh
    }
    .xl\:max-w-\[17rem\] {
      max-width:17rem
    }
    .xl\:max-w-\[min\(100\%\,540px\)\] {
      max-width:min(100%,540px)
    }
    .xl\:flex-1 {
      flex:1
    }
    .xl\:origin-\[75\%_50\%\] {
      transform-origin:75%
    }
    .xl\:flex-col {
      flex-direction:column
    }
    .xl\:justify-center {
      justify-content:center
    }
    .xl\:gap-6 {
      gap:calc(var(--spacing) * 6)
    }
    .xl\:bg-white {
      background-color:var(--color-white)
    }
    .xl\:bg-white\/90 {
      background-color:#ffffffe6
    }
    @supports (color:color-mix(in lab, red, red)) {
      .xl\:bg-white\/90 {
        background-color:color-mix(in oklab, var(--color-white) 90%, transparent)
      }
      
    }
    .xl\:pt-0 {
      padding-top:calc(var(--spacing) * 0)
    }
    .xl\:pt-20 {
      padding-top:calc(var(--spacing) * 20)
    }
    .xl\:pb-0 {
      padding-bottom:calc(var(--spacing) * 0)
    }
    .xl\:pb-12 {
      padding-bottom:calc(var(--spacing) * 12)
    }
    .xl\:text-left {
      text-align:left
    }
    .xl\:backdrop-blur-sm {
      --tw-backdrop-blur:blur(var(--blur-sm));
      -webkit-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,);
      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,)
    }
    
  }
  
}
:root {
  --background:#fff;
  --color-text:#02340e;
  --foreground:var(--color-text);
  --color-navy:#0b153d;
  --color-accent:#3d574f;
  --color-gold:#c5a059;
  --color-gold-dark:#b5891b;
  --color-gold-light:#fdf0d8;
  --color-gold-pale:#f9efcf;
  --color-label:#d98514;
  --color-sage:#e8ecea;
  --color-sage-light:#d8dedb;
  --color-sage-border:#cdd5d1
}
@supports (color:lab(0% 0 0)) {
  :root {
    --color-text:lab(18% -23.94 18.76)
  }
  
}
body {
  background:var(--background);
  color:var(--foreground);
  overflow-anchor:none
}
:lang(ja) {
  word-break:keep-all;
  overflow-wrap:anywhere;
  line-break:strict
}
:lang(ja) .jp-prose {
  word-break:keep-all;
  overflow-wrap:anywhere
}
:lang(ja) .heading-balance {
  text-wrap:balance
}
:lang(ja) .lead-pretty {
  text-wrap:pretty
}
:lang(en) .heading-balance {
  text-wrap:balance
}
:lang(en) .lead-pretty {
  text-wrap:pretty
}
@media (prefers-reduced-motion:no-preference) and (pointer:fine) {
  html {
    scroll-behavior:smooth
  }
  
}
.prose-block-mask-white {
  background-color:#fff;
  border-radius:.45em;
  padding:.65em .3em;
  box-shadow:0 0 28px 18px #fffffff2,0 0 52px 34px #ffffff9e
}
.prose-block-mask-sage {
  background-color:var(--color-sage);
  border-radius:.45em;
  padding:.65em .3em;
  box-shadow:0 0 28px 18px #e8eceaf2,0 0 52px 34px #e8ecea9e
}
.prose-line-mask-white,.prose-line-mask-sage {
  border-radius:.1em;
  padding:.18em .3em
}
.prose-line-mask-white {
  background-color:#fff
}
.prose-line-mask-sage {
  background-color:var(--color-sage)
}
.prose-line-mask-inline.prose-line-mask-white {
  box-shadow:0 0 14px -7px #fffffff2
}
.prose-line-mask-inline.prose-line-mask-hero-intro.prose-line-mask-white {
  box-shadow:0 0 16px -6px #fffffff5,0 0 28px -2px #ffffff6b
}
.prose-line-mask-hero-align.prose-line-mask-white,.prose-line-mask-hero-align.prose-line-mask-sage {
  padding-left:.3rem;
  padding-right:.3rem
}
.prose-line-mask-block.prose-line-mask-hero-align {
  padding-top:.22em;
  padding-bottom:.22em
}
.prose-line-mask-inline.prose-line-mask-sage {
  box-shadow:0 0 14px -7px #e8eceaf2
}
.prose-line-mask-block.prose-line-mask-white {
  box-shadow:0 0 12px 6px #ffffffb3
}
.prose-line-mask-block.prose-line-mask-sage {
  box-shadow:0 0 12px 6px #e8eceab3
}
.prose-line-mask-inline {
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
  display:inline
}
.prose-line-mask-block {
  width:fit-content;
  max-width:100%;
  display:block
}
::selection {
  background-color:var(--color-accent)
}
@supports (color:color-mix(in lab, red, red)) {
  ::selection {
    background-color:color-mix(in srgb, var(--color-accent) 12%, transparent)
  }
  
}
::selection {
  color:var(--color-text)
}
@property --tw-rotate-x {
  syntax:"*";
  inherits:false
}
@property --tw-rotate-y {
  syntax:"*";
  inherits:false
}
@property --tw-rotate-z {
  syntax:"*";
  inherits:false
}
@property --tw-skew-x {
  syntax:"*";
  inherits:false
}
@property --tw-skew-y {
  syntax:"*";
  inherits:false
}
@property --tw-space-y-reverse {
  syntax:"*";
  inherits:false;
  initial-value:0
}
@property --tw-border-style {
  syntax:"*";
  inherits:false;
  initial-value:solid
}
@property --tw-leading {
  syntax:"*";
  inherits:false
}
@property --tw-font-weight {
  syntax:"*";
  inherits:false
}
@property --tw-tracking {
  syntax:"*";
  inherits:false
}
@property --tw-shadow {
  syntax:"*";
  inherits:false;
  initial-value:0 0 #0000
}
@property --tw-shadow-color {
  syntax:"*";
  inherits:false
}
@property --tw-shadow-alpha {
  syntax:"<percentage>";
  inherits:false;
  initial-value:100%
}
@property --tw-inset-shadow {
  syntax:"*";
  inherits:false;
  initial-value:0 0 #0000
}
@property --tw-inset-shadow-color {
  syntax:"*";
  inherits:false
}
@property --tw-inset-shadow-alpha {
  syntax:"<percentage>";
  inherits:false;
  initial-value:100%
}
@property --tw-ring-color {
  syntax:"*";
  inherits:false
}
@property --tw-ring-shadow {
  syntax:"*";
  inherits:false;
  initial-value:0 0 #0000
}
@property --tw-inset-ring-color {
  syntax:"*";
  inherits:false
}
@property --tw-inset-ring-shadow {
  syntax:"*";
  inherits:false;
  initial-value:0 0 #0000
}
@property --tw-ring-inset {
  syntax:"*";
  inherits:false
}
@property --tw-ring-offset-width {
  syntax:"<length>";
  inherits:false;
  initial-value:0
}
@property --tw-ring-offset-color {
  syntax:"*";
  inherits:false;
  initial-value:#fff
}
@property --tw-ring-offset-shadow {
  syntax:"*";
  inherits:false;
  initial-value:0 0 #0000
}
@property --tw-outline-style {
  syntax:"*";
  inherits:false;
  initial-value:solid
}
@property --tw-duration {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-blur {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-brightness {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-contrast {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-grayscale {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-hue-rotate {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-invert {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-opacity {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-saturate {
  syntax:"*";
  inherits:false
}
@property --tw-backdrop-sepia {
  syntax:"*";
  inherits:false
}



/* ==========================================================================
   追加設定：Webフォント・言語切り替え・浮遊分子アニメーション
   ========================================================================== */

:root {
  --font-geist-sans: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-noto-sans-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  --font-montserrat: "Montserrat", sans-serif;
}

.font-montserrat {
  font-family: var(--font-montserrat), sans-serif;
  font-style: normal;
  font-weight: 800;
}

/* バイリンガル（JA / EN）表示切り替え */
html[lang="ja"] .lang-en {
  display: none !important;
}

html[lang="en"] .lang-ja {
  display: none !important;
}

/* 言語切り替えスイッチのスライドアニメーション */
#lang-indicator {
  transition: transform 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

#lang-indicator.en {
  transform: translateX(100%);
}

/* 三段階モデルカードのホバーアニメーション */
.step-card {
  transition: transform 0.3s ease-out;
}

@media (hover: hover) {
  .step-card:hover {
    transform: translateY(-6px);
  }
}

/* 浮遊する分子構造式背景アニメーション */
.molecule-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  contain: paint;
}

.molecule-bg__particle {
  position: absolute;
  left: 0;
  top: 0;
  will-change: transform, opacity;
  transform-origin: center center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

@media (pointer: coarse) {
  .molecule-bg__particle {
    will-change: auto;
  }
}

.molecule-bg__shape {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  vector-effect: non-scaling-stroke;
}


/* ============================================================ */
/* OIPI スクロール連動・ふわっと浮き上がりアニメーション (Framer Motion 互換) */
/* ============================================================ */
.fade-in-up {
  opacity: 0;
  transform: translateY(32px);
  transition-property: opacity, transform;
  transition-duration: 0.7s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.hero-title-motion {
  opacity: 0;
  transform: translateY(24px);
  transition-property: opacity, transform;
  transition-duration: 0.8s;
  transition-delay: 0.2s;
  transition-timing-function: ease-out;
  will-change: opacity, transform;
}

.hero-title-motion.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fade-in-up,
  .hero-title-motion {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
