@charset "UTF-8";
/* =============================================================
   refine.css â ãã©ã³ãä½é¨ã®æ ¼ä¸ãï¼4ãµã¤ãå±éã»å¾ä»ãï¼
   æ¢å­ã® main.css ãå£ãããä¸ã«éã­ã¦è³ªãä¸ããå±¤ã
   - å¥ãã®æ¼åºï¼ãªã¼ããã³ã°ï¼
   - ã¹ã¯ã­ã¼ã«é£åã®ç¹ç´°ãªåºç¾ã»è¦å·®
   - çµçã®ç²¾ç·»åï¼ç¦åã»å­éã»è¡é·ï¼
   - ããã¼ / ã«ã¼ã½ã«ã®ä½é»
   - ãã¼ã¸é·ç§»ã®ãã§ã¼ã
   åãµã¤ãã®ãã¼ã¯ã³ï¼--ink /--gold ç­ï¼ãåç§ãããç¡ãå ´åã«åãæ¢å®å¤ãç½®ãã
   ============================================================= */

:root{
  --rf-ink:   var(--ink, #0b0b0c);
  --rf-gold:  var(--gold, #b8964f);
  --rf-goldl: var(--gold-lt, #d9c08a);
  --rf-paper: var(--paper, #f8f5f0);
  --rf-ease:  cubic-bezier(.22,.61,.36,1);
  --rf-ease-out: cubic-bezier(.16,1,.3,1);
}

/* -------------------------------------------------- 1. ãªã¼ããã³ã°æ¼åº */
/* éã®å¸³ãä¸­å¤®ããä¸ä¸ã«éãããã©ã³ããã¼ã¯ãçµã°ãã¦æ¶ãã */
.rf-intro{
  position:fixed; inset:0; z-index:2000; pointer-events:none;
  display:grid; place-items:center;
}
.rf-intro__panel{
  position:absolute; left:0; right:0; height:50.5%; background:var(--rf-ink);
  transform-origin:center; will-change:transform;
}
.rf-intro__panel--top{ top:0; }
.rf-intro__panel--bottom{ bottom:0; }
.rf-intro__mark{
  position:relative; z-index:1; opacity:0;
  width:clamp(56px,7vw,84px); height:auto;
  filter:drop-shadow(0 6px 30px rgba(0,0,0,.5));
}
.rf-intro__line{
  position:absolute; left:50%; top:50%; width:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--rf-goldl), transparent);
  transform:translate(-50%,-50%);
}
html.rf-intro-run .rf-intro__mark{ animation:rfMark 1.5s var(--rf-ease-out) .15s forwards; }
html.rf-intro-run .rf-intro__line{ animation:rfLine 1.2s var(--rf-ease-out) .5s forwards; }
html.rf-intro-run .rf-intro__panel--top{ animation:rfPanelUp 1.05s var(--rf-ease) 1.15s forwards; }
html.rf-intro-run .rf-intro__panel--bottom{ animation:rfPanelDn 1.05s var(--rf-ease) 1.15s forwards; }
html.rf-intro-done .rf-intro{ display:none; }

@keyframes rfMark{ 0%{opacity:0; transform:scale(.86)} 55%{opacity:1} 100%{opacity:1; transform:scale(1)} }
@keyframes rfLine{ 0%{width:0; opacity:0} 40%{opacity:1} 100%{width:min(340px,60vw); opacity:.9} }
@keyframes rfPanelUp{ to{ transform:translateY(-100%) } }
@keyframes rfPanelDn{ to{ transform:translateY(100%) } }

/* ã¤ã³ãã­ä¸­ã¯æ¬æã¹ã¯ã­ã¼ã«ãæ­¢ãããã¼ã­ã¼ããããã«æ²ãã¦"è¿«ãä¸ãã"å°è±¡ã« */
html.rf-intro-run body{ overflow:hidden; }
html.rf-intro-run .hero__body,
html.rf-intro-run .hero__name-ja,
html.rf-intro-run .hero__title{ opacity:0; transform:translateY(18px); }
html.rf-intro-done .hero__body,
html.rf-intro-done .hero__name-ja,
html.rf-intro-done .hero__title{ transition:opacity 1.2s var(--rf-ease-out), transform 1.2s var(--rf-ease-out); }

/* -------------------------------------------------- 2. ã¹ã¯ã­ã¼ã«åºç¾ã®ç²¾ç·»å */
/* æ¢å­ [data-reveal] ã«å ããããç¹ç´°ãªç·ã»ç»åãã¹ã¯ãæä¾ãã */
.rf-rise{ opacity:0; transform:translateY(26px); transition:opacity 1.1s var(--rf-ease-out) var(--rf-d,0s), transform 1.1s var(--rf-ease-out) var(--rf-d,0s); }
.rf-rise.rf-in{ opacity:1; transform:none; }

/* éã®ç´°ç·ãæ¨ªã«ä¼¸ã³ãï¼è¦åºãèã®è£é£¾ï¼ */
.rf-hairline{ position:relative; }
.rf-hairline::after{
  content:""; position:absolute; left:0; bottom:-10px; height:1px; width:0;
  background:linear-gradient(90deg,var(--rf-gold),transparent);
  transition:width 1.4s var(--rf-ease-out) .2s;
}
.rf-hairline.rf-in::after{ width:64px; }

/* è¦åºãã®æå­ãä¸å­ãã¤ç«ã¡ä¸ããï¼.rf-chars ãä»ããè¦ç´ ãJSãspanåå²ï¼ */
.rf-chars span{ display:inline-block; opacity:0; transform:translateY(0.5em) rotate(2deg); }
.rf-chars.rf-in span{ animation:rfChar .9s var(--rf-ease-out) forwards; }
@keyframes rfChar{ to{ opacity:1; transform:none } }

/* -------------------------------------------------- 3. ç»åãã©ã©ãã¯ã¹ */
[data-rf-parallax]{ overflow:hidden; }
[data-rf-parallax] > img,
[data-rf-parallax] > picture > img{
  width:100%; height:118%; object-fit:cover;
  will-change:transform; transform:translate3d(0,0,0);
}

/* -------------------------------------------------- 4. çµçã®ç²¾ç·»å */
/* è¦åºãã»ãªã¼ãæã®ç¦åã¨å­éãåæã®é«ç´æã¯çµçã§æ±ºã¾ã */
.hero__title, .hero__name-ja, .h1, .h2, .concept__title, .heritage__year,
.phead h1, .entry h2, .entry h3{
  word-break:normal; line-break:strict; overflow-wrap:break-word;
  font-feature-settings:"palt" 1; text-spacing:trim-start;
}
/* æ¥æ¬èªè¦åºãã¯è¡æ«ã»è¡é ­ã®ç´ç©ãè©°ãã¦ç¾ãã */
.h2, .concept__title, .phead h1{ font-feature-settings:"palt" 1, "kern" 1; }
/* ãªã¼ãæã¯è¡é·ãæé©åï¼å¨è§40å­åå¾ã§æãèª­ã¿ãããï¼ */
.lead, .concept__body, .philo__body, .heritage__text .lead{ max-inline-size:38em; text-wrap:pretty; }
/* æ°å­ã»æ¬§æã ãå­é¢ãç· ãã */
.hero__since, .eyebrow, .phead__en, time{ font-feature-settings:"tnum" 1; }

/* -------------------------------------------------- 5. ããã¼ / ãªã³ã¯ã®ä½é» */
/* æ¬æãªã³ã¯ã®éä¸ç·ãå·¦ããå¼ããã */
.entry a:not(.wp-element-button):not(.wp-block-button__link){
  position:relative; text-decoration:none; background:none;
  background-image:linear-gradient(var(--rf-gold),var(--rf-gold));
  background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .5s var(--rf-ease-out), color .4s;
}
.entry a:not(.wp-element-button):not(.wp-block-button__link):hover{ background-size:100% 1px; }

/* ã«ã¼ãé¡ã®ããã¼ã§åçããã£ããæ²ã¿è¾¼ãï¼æ¢å­ã«ç¡ããã°ä»ä¸ï¼ */
.rf-lift{ transition:transform .7s var(--rf-ease-out), box-shadow .7s var(--rf-ease-out); }
.rf-lift:hover{ transform:translateY(-4px); }

/* -------------------------------------------------- 6. ã«ã¹ã¿ã ã«ã¼ã½ã«ï¼PCã»ç¹ç´°ãªéã®åï¼ */
@media (hover:hover) and (pointer:fine){
  html.rf-cursor, html.rf-cursor *{ cursor:none; }
  /* ã«ã¹ã¿ã ã«ã¼ã½ã«ã¯æ¢å®ã§éè¡¨ç¤ºã<html data-rf-cursor> ã®ã¨ãã ã JS ãæå¹åãã */
  .rf-dot, .rf-ring{ display:none; }
  html.rf-cursor .rf-dot{
    display:block; position:fixed; top:0; left:0; z-index:3000; pointer-events:none;
    width:7px; height:7px; margin:-3.5px 0 0 -3.5px; border-radius:50%;
    background:var(--rf-gold); mix-blend-mode:difference;
    transition:transform .18s var(--rf-ease-out), opacity .3s;
  }
  html.rf-cursor .rf-ring{
    display:block; position:fixed; top:0; left:0; z-index:3000; pointer-events:none;
    width:34px; height:34px; margin:-17px 0 0 -17px; border-radius:50%;
    border:1px solid rgba(184,150,79,.6);
    transition:transform .28s var(--rf-ease-out), width .3s var(--rf-ease-out),
               height .3s var(--rf-ease-out), margin .3s var(--rf-ease-out), opacity .3s, border-color .3s;
  }
  html.rf-cursor .rf-ring.is-hot{ width:56px; height:56px; margin:-28px 0 0 -28px; border-color:var(--rf-goldl); }
  html.rf-cursor .rf-dot.is-hot{ transform:scale(0); }
}

/* -------------------------------------------------- ã¹ã¯ã­ã¼ã«é²æã®éç· */
.rf-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:1500;
  transform:scaleX(0); transform-origin:left; pointer-events:none;
  background:linear-gradient(90deg, var(--rf-gold), var(--rf-goldl));
  will-change:transform;
}

/* -------------------------------------------------- 7. ãã¼ã¸é·ç§»ãã§ã¼ã */
.rf-fade{ position:fixed; inset:0; z-index:2500; background:var(--rf-ink); opacity:0; pointer-events:none; }
html.rf-leaving .rf-fade{ opacity:1; transition:opacity .5s var(--rf-ease); pointer-events:all; }

/* -------------------------------------------------- reduced-motion å°é */
@media (prefers-reduced-motion:reduce){
  .rf-intro{ display:none !important; }
  html.rf-intro-run body{ overflow:auto; }
  html.rf-intro-run .hero__body, html.rf-intro-run .hero__title, html.rf-intro-run .hero__name-ja{ opacity:1; transform:none; }
  .rf-rise, .rf-chars span{ opacity:1; transform:none; transition:none; animation:none; }
  .rf-hairline::after{ width:64px; transition:none; }
  html.rf-cursor, html.rf-cursor *{ cursor:auto; }
  .rf-dot, .rf-ring{ display:none; }
}
