:root{color-scheme:light;--ink:#202320;--muted:#777973;--base:#f8f8f5;--surface:#fff;--line:#e4e5de;--accent:#b78f6f;--ease:cubic-bezier(.18,.75,.21,1);--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--base);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased;min-width:320px}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible{outline:2px solid #a57b60;outline-offset:5px}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}
.intro-veil{position:fixed;inset:0;background:#fff;z-index:300;pointer-events:none;animation:veilOut .9s .08s ease-out both}
@keyframes veilOut{0%,15%{opacity:1}100%{opacity:0;visibility:hidden}}
.site-header{height:105px;display:flex;align-items:center;gap:34px;position:relative;z-index:5;border-bottom:1px solid #ecece7}
.wordmark{font-family:var(--serif);font-size:30px;font-weight:700;letter-spacing:-.075em;display:flex;align-items:baseline;gap:13px}.logo-dot{color:var(--accent)}.wordmark small{font-family: 'Helvetica Neue', Arial, sans-serif;font-family:var(--sans);font-size:9px;letter-spacing:.2em;font-weight:600;color:#60635e}.site-header nav{margin-left:auto;display:flex;gap:38px}.site-header nav a{font-size:11px;font-weight:700;letter-spacing:.15em;transition:color .2s}.site-header nav a:hover,.back-top:hover{color:#a47755}.replay-btn{border:1px solid #dadbd4;background:transparent;padding:10px 13px;font-size:10px;letter-spacing:.11em;cursor:pointer;color:#555852;transition:background .2s}.replay-btn:hover{background:#efefe9}
.hero{display:grid;grid-template-columns:1.05fr .95fr;column-gap:5.5%;align-items:center;padding-top:78px;padding-bottom:112px;min-height:760px}.hero-copy{padding-bottom:55px}.eyebrow,.section-kicker,.frame-marker,.hero-art-caption,.project-index,.next-label,.next-mark,.dialog-kicker{font-size:10px;letter-spacing:.14em;font-weight:700;color:#75766f}.eyebrow{display:flex;align-items:center;gap:10px}.small-line{display:inline-block;width:25px;height:1px;background:#a49b90}.separator{opacity:.45}.hero-heading{font-family:var(--serif);font-size:clamp(75px,9.4vw,146px);font-weight:400;letter-spacing:-.092em;line-height:.94;margin:37px 0 32px;white-space:nowrap}.hero-heading em,.section-head h2 em,.about-section h2 em{font-weight:400;color:#b6967d}.hero-lede{font-weight:600;font-size:clamp(19px,2.1vw,25px);letter-spacing:.1em;line-height:1.9;margin:0 0 22px}.hero-desc{font-size:13px;line-height:2.15;color:#787a76;letter-spacing:.03em;margin:0}.explore-link{display:inline-flex;align-items:center;justify-content:space-between;gap:65px;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-top:38px;font-size:12px;font-weight:700;transition:gap .2s}.explore-link:hover{gap:75px}.explore-link span{font-size:20px;line-height:1}
.hero-art{position:relative;padding:0 25px 0 22px}.hero-art-frame{position:relative;aspect-ratio:1/1;background:#fff;overflow:hidden;box-shadow:0 22px 75px rgba(33,31,27,.065)}.hero-art-frame img{width:100%;height:100%;object-fit:cover}.frame-marker{position:absolute;color:#5a5149;mix-blend-mode:multiply;z-index:1;letter-spacing:.08em;font-size:9px}.marker-top{top:20px;right:21px}.marker-bottom{bottom:19px;left:20px}.hero-art-caption{position:absolute;bottom:-27px;right:25px;color:#8a8b84;font-size:9px}
.reveal-text{animation:softRise 1s var(--ease) both}.hero-copy>.reveal-text:nth-child(1){animation-delay:.26s}.hero-copy>.reveal-text:nth-child(2){animation-delay:.35s}.hero-copy>.reveal-text:nth-child(3){animation-delay:.43s}.hero-copy>.reveal-text:nth-child(4){animation-delay:.52s}.hero-copy>.reveal-text:nth-child(5){animation-delay:.61s}.hero-art-caption{animation-delay:1.05s}
@keyframes softRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
/* Core concept: tiles appear as plain white rectangles first; only then their content fades in. */
.tile{position:relative;isolation:isolate}.tile::after{content:'';position:absolute;inset:0;background:#fff;z-index:2;pointer-events:none;opacity:1;transition:opacity 1.2s ease}.tile img{opacity:0;filter:blur(7px);transform:scale(1.045);transition:opacity 1.25s ease,filter 1.3s ease,transform 1.5s var(--ease)}.tile.is-visible img{opacity:1;filter:blur(0);transform:scale(1)}.tile.is-visible::after{opacity:0}.tile-hero{animation:tileFloat 1s .27s var(--ease) both}.tile-hero.is-visible::after{transition-delay:.65s}.tile-hero.is-visible img{transition-delay:.75s}@keyframes tileFloat{from{opacity:0;transform:translateY(35px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.works-section{padding-bottom:125px}.section-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:37px;margin-bottom:23px}.section-head h2,.about-section h2{font-family:var(--serif);font-size:clamp(50px,6vw,82px);font-weight:400;letter-spacing:-.075em;margin:11px 0 0}.section-head p{color:var(--muted);font-size:12px;line-height:2;margin:0 3px 4px}.filters{display:flex;align-items:center;gap:25px;margin:22px 0 34px}.filter{border:0;background:none;padding:8px 0;color:#92938c;font-size:12px;cursor:pointer;position:relative}.filter span{font-size:9px;vertical-align:super;margin-left:3px}.filter.is-active{color:#21231f;font-weight:700}.filter.is-active::after{content:'';position:absolute;bottom:2px;left:0;right:0;height:1px;background:#36352e}.filter:hover{color:#21231f}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start}.project-card{padding:0;border:none;background:transparent;text-align:left;cursor:pointer;width:100%;color:inherit;min-width:0;transition:opacity .25s}.project-card[hidden]{display:none!important}.project-card:nth-child(2){margin-top:70px}.project-art{display:flex;position:relative;overflow:hidden;background:#fff;aspect-ratio:1/1;align-items:center;justify-content:center}.project-art img{width:100%;height:100%;object-fit:cover}.project-art-cafe img{object-position:center 50%}.project-art-video{background:#bca28f;aspect-ratio:1/1;padding:28px 0}.project-art-video img{object-fit:contain;width:100%;height:100%;transform:scale(1)}.project-card:hover .project-art img{transform:scale(1.055)!important;transition:transform .65s var(--ease),opacity .4s,filter .4s}.project-card .project-art::before{content:'';position:absolute;inset:0;border:1px solid rgba(0,0,0,.04);z-index:1;pointer-events:none}.project-meta{display:flex;align-items:center;justify-content:space-between;margin:23px 0 8px}.project-arrow{width:36px;height:36px;border-radius:50%;border:1px solid #d9dbd4;display:flex;align-items:center;justify-content:center;font-size:19px;transition:background .25s,transform .25s}.project-card:hover .project-arrow{background:#ece9e3;transform:translate(2px,-2px)}.project-title{display:block;font-family:var(--serif);font-size:clamp(28px,3vw,40px);letter-spacing:-.045em}.project-desc{display:block;color:#888981;font-size:12px;margin-top:7px}.project-card::after{display:none} /* overlay applies only to image block below */.project-card .project-art::after{content:'';position:absolute;inset:0;background:#fff;z-index:2;opacity:1;transition:opacity 1.1s ease .12s;pointer-events:none}.project-card.is-visible .project-art::after{opacity:0}
.next-project{display:flex;align-items:center;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:98px;padding:36px 8px}.next-project-icon{width:61px;height:61px;border:1px solid var(--line);display:grid;place-items:center;font-size:28px;font-weight:200;color:#9fa19b}.next-project h3{font-size:19px;margin:11px 0 7px;letter-spacing:.01em}.next-project p{margin:0;color:var(--muted);font-size:12px}.next-mark{margin-left:auto;font-size:10px;color:#a8a8a0}
.about-section{background:#eceee9;padding:100px 0 118px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-section h2{line-height:1.08;margin-top:28px}.about-content{padding-top:56px}.about-main{font-size:27px;letter-spacing:.09em;line-height:1.7;font-weight:600!important;color:#242822!important;margin:0 0 30px!important}.about-content p{font-size:13px;color:#74776f;line-height:2.2;max-width:480px}.skill-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:33px}.skill-list span{border:1px solid #d1d6cf;padding:9px 13px;font-size:9px;letter-spacing:.11em;color:#777971}
.site-footer{display:flex;align-items:end;gap:35px;padding:54px 0 60px}.footer-wordmark{font:700 39px var(--serif);letter-spacing:-.08em}.site-footer p{font-size:11px;color:#888a83;margin:9px 0 0}.back-top{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.1em}.copyright{font-size:10px;color:#9a9b95}
.appear-on-scroll{opacity:0;transform:translateY(27px);transition:opacity .1.5s var(--ease),transform .1.5s var(--ease)}.appear-on-scroll.is-visible{opacity:1;transform:translateY(0)}.project-card.appear-on-scroll:nth-child(2){transition-delay:.12s}
.project-dialog{border:0;border-radius:0;padding:0;width:min(1000px,calc(100% - 28px));max-height:calc(100dvh - 45px);background:#fbfbf8;box-shadow:0 28px 100px rgba(0,0,0,.24);color:var(--ink)}.project-dialog::backdrop{background:rgba(29,31,27,.75);backdrop-filter:blur(6px)}.dialog-inner{position:relative;display:grid;grid-template-columns:1fr .76fr;min-height:490px}.dialog-image{background:#e8e1d7;display:flex;align-items:center;justify-content:center}.dialog-image img{width:100%;height:100%;object-fit:contain;max-height:80dvh}.dialog-text{padding:76px 40px 42px;display:flex;flex-direction:column}.dialog-text h2{font:400 clamp(29px,3vw,48px)/1.15 var(--serif);letter-spacing:-.05em;margin:17px 0 24px}.dialog-text>p:not(.dialog-kicker){line-height:2;color:#666a64;font-size:13px;margin:0}.dialog-text dl{display:grid;grid-template-columns:65px 1fr;gap:14px 22px;margin-top:auto;padding-top:35px;border-top:1px solid #e5e6df;font-size:11px}.dialog-text dt{color:#9a9b95}.dialog-text dd{margin:0}.dialog-close{position:absolute;right:16px;top:16px;background:#fff;color:#292d29;z-index:5;border:1px solid #e7e7e1;width:37px;height:37px;cursor:pointer;border-radius:50%;font-size:26px;line-height:1}
@media(max-width:1000px){.wrap{width:min(100% - 64px,900px)}.hero{min-height:650px;gap:3%;padding-top:65px}.hero-heading{font-size:clamp(68px,10vw,105px)}.hero-lede{font-size:19px}.hero-art{padding:0}.site-header{height:86px}.about-grid{gap:4%}}
@media(max-width:690px){.wrap{width:calc(100% - 38px)}.site-header{height:73px;gap:15px}.wordmark{font-size:28px}.wordmark small{font-size:8px}.site-header nav{gap:17px}.site-header nav a{font-size:10px}.replay-btn{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:65px;padding-bottom:100px;gap:47px}.hero-copy{padding-bottom:0}.hero-heading{font-size:clamp(77px,17vw,115px);margin:27px 0 22px}.hero-lede{font-size:19px}.hero-desc{font-size:12px}.explore-link{margin-top:28px}.hero-art{width:min(100%,530px);margin-left:auto}.hero-art-frame{aspect-ratio:1/1}.works-section{padding-bottom:83px}.section-head{align-items:start;gap:20px}.section-head h2{font-size:55px}.section-head p{font-size:10px;margin-top:32px;text-align:right}.filters{gap:22px;margin:19px 0 23px}.filter{font-size:11px}.work-grid{grid-template-columns:1fr;gap:38px}.project-card:nth-child(2){margin-top:0}.project-art,.project-art-video{aspect-ratio:1/1}.project-meta{margin-top:14px}.project-title{font-size:31px}.next-project{margin-top:70px;gap:13px;padding:25px 0}.next-project-icon{width:45px;height:45px;flex:none}.next-project h3{font-size:15px}.next-label{font-size:8px}.next-mark{display:none}.about-section{padding:74px 0 85px}.about-grid{grid-template-columns:1fr;gap:25px}.about-section h2{font-size:65px}.about-content{padding-top:0}.about-main{font-size:22px}.site-footer{padding:35px 0;align-items:center;flex-wrap:wrap}.copyright{width:100%}.dialog-inner{display:block}.dialog-image img{max-height:45dvh}.dialog-text{padding:33px 25px}.dialog-text dl{margin-top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.intro-veil{display:none}.appear-on-scroll{opacity:1;transform:none}.tile img{opacity:1;filter:none;transform:none}.tile::after,.project-card .project-art::after{display:none}}
#worksTitle {
  font-family: 'Helvetica Neue', Arial, sans-serif;
letter-spacing: 1px;
}

@keyframes rowEntrance {
  from {
    opacity: 0;
    transform: translateY(25px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 1行目：ロゴ */
.site-header {
  animation: rowEntrance 0.8s ease-out 0.2s both;
}

/* 2行目：Creative Works */
.works-section .section-head {
  animation: rowEntrance 0.8s ease-out 0.7s both;
}

/* 3行目：カテゴリ */
.works-section .filters {
  animation: rowEntrance 0.8s ease-out 1.0s both;
}

/* 4行目：作品一覧 */
.works-section .work-grid {
  animation: rowEntrance 0.8s ease-out 1.3s both;
}

/* ヘッダーの上下の余白を調整 */
.site-header {
  padding-top: 35px;
  padding-bottom: 35px;
}



.wordmark {
  gap: 0;
}

.wordmark small {
  font-family: Arial, sans-serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0;
  margin-left: 12px;
}

/* 上部のRyo.と下部のR.を統一 */
.wordmark .logo-name,
.footer-wordmark {
  font-family: 'Libre Baskerville', serif;
  font-weight: 700;
}

/* 画像部分を配置の基準にする */
.project-card .project-art {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  background: #ffffff;
}

/* Clickラベル */
.project-card .project-action {
  position: absolute;
  right: 15px;
  bottom: 15px;
  z-index: 10;

  padding: 8px 14px;
  background: rgba(255,255,255,0.92);
  color: #25374A;

  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;

  opacity: 0;
  transform: translateY(5px);
  transition: opacity .3s ease, transform .3s ease;

  pointer-events: none;
}

/* PC：画像部分にマウスを乗せたとき */
@media (hover: hover) and (pointer: fine) {
  .project-art:hover img {
    opacity: 0.82 !important;
    transform: scale(1) !important;
  }

  .project-art:hover .project-action,
  .project-card:focus-visible .project-action {
    opacity: 1;
    transform: translateY(0);
  }
}

/* スマホ：常にTapを表示 */
@media (hover: none) and (pointer: coarse) {
  .project-card .project-action {
    opacity: 1;
    transform: none;
    font-size: 0;
  }

  .project-card .project-action::after {
    content: "Tap";
    font-size: 12px;
  }

  .project-card .project-art img {
    transform: scale(1) !important;
  }
}

/* ホバー時の画像ズームを無効化 */
.project-card:hover .project-art img,
.project-card .project-art:hover img {
  transform: scale(1) !important;
}

/* 画像の透明度だけ変える */
@media (hover: hover) and (pointer: fine) {
  .project-card .project-art:hover img {
    opacity: 0.82 !important;
  }
}

/* 詳細画面のふわっと登場 */
@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 背景の暗転 */
@keyframes backdropFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 詳細ウィンドウ */
.project-dialog[open] {
  animation: modalFadeIn 1s
    cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* 背景 */
.project-dialog[open]::backdrop {
  animation: backdropFadeIn 1s ease-out both;
}

/* 動きを減らす設定への対応 */
@media (prefers-reduced-motion: reduce) {
  .project-dialog[open],
  .project-dialog[open]::backdrop {
    animation: none;
  }
}