@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--paper:#fbf8f4;--ink:#252222;--rose:#dba0a0;--serif:"Cormorant Garamond","Noto Serif JP",serif;--jp:"Noto Serif JP",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);letter-spacing:.08em}a{color:inherit;text-decoration:none}
.site-header{position:fixed;inset:0 0 auto 0;height:116px;z-index:20;pointer-events:none}
.brand-mark{position:absolute;left:42px;top:20px;width:190px;height:94px;pointer-events:auto;color:#5a4a46}.brand-line{position:absolute;height:1px;background:rgba(214,153,140,.72);top:26px}.brand-line-left{left:0;width:48px}.brand-line-right{right:4px;width:52px}.brand-flower{position:absolute;color:#d99a91;font-size:16px;line-height:1}.brand-flower-left{left:42px;top:10px}.brand-flower-right{right:22px;top:5px}.brand-ja{position:absolute;left:48px;top:19px;font-family:var(--jp);font-size:29px;letter-spacing:.12em;font-weight:500;background:linear-gradient(to bottom,#4a3e3b 15%,#d79d8a 95%);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}.brand-en{position:absolute;left:55px;top:57px;font-size:10px;letter-spacing:.34em;color:#6b5e59}.brand-tassel{display:none}
.global-nav{position:absolute;right:14vw;top:40vh;display:flex;flex-direction:column;gap:13px;align-items:flex-start;pointer-events:auto}.global-nav a{font-size:13px;letter-spacing:.18em;white-space:nowrap;transition:opacity .3s,transform .3s}.global-nav a span{display:inline-block;width:30px;color:var(--rose);font-size:11px}.global-nav a:hover{opacity:.58;transform:translateX(-4px)}.nav-digit{display:inline!important;width:auto!important;font-size:1.12em!important;color:inherit!important}.menu-toggle{display:none}
.hero{min-height:100vh;position:relative;display:flex;align-items:center;overflow:hidden;padding:0 7vw;background:linear-gradient(180deg,#f8dedf 0%,#fbe9e8 10%,#fcf3ef 22%,var(--paper) 34%,var(--paper) 100%)}.hero-copy{position:relative;z-index:3;margin-left:18vw;margin-top:-2vh;min-width:0}.eyebrow{margin:0 0 27px;font-size:15px;letter-spacing:.25em;color:#252222;font-weight:500;white-space:nowrap}.eyebrow-digit{font-size:1em;display:inline;font-family:inherit;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;}
.hero h1{margin:0;padding-bottom:.22em;font-family:var(--jp);font-size:clamp(100px,10.2vw,175px);font-weight:500;line-height:1.0;white-space:nowrap;overflow:visible;letter-spacing:-.06em;background:linear-gradient(to bottom,#242222 8%,#5a4a46 42%,#d69c82 76%,#e4b1a0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-en{margin:31px 0 0;font-size:23px;letter-spacing:.48em;color:#242222;text-align:left}
.hero-ornament{position:absolute;left:51vw;top:43%;width:330px;height:145px;z-index:2;opacity:.9}.hero-ornament svg{width:100%;height:100%;overflow:visible}.orn-line,.tassel-cord{fill:none;stroke:#d9a18f;stroke-width:1.2}.orn-line.thin{stroke-width:.8;opacity:.65}.orn-flower{fill:none;stroke:#d69c8a;stroke-width:1.1}.orn-flower circle{fill:#d69c8a;stroke:none}.tassel-knot,.tassel-fringe{fill:none;stroke:#d69c8a;stroke-width:1}.hero-ring{position:absolute;border:1px solid rgba(216,160,150,.42);border-radius:50%;z-index:1}.ring-one,.ring-two{display:none}.floating-petal{position:absolute;width:10px;height:17px;border-radius:70% 25% 70% 25%;background:linear-gradient(145deg,rgba(237,185,179,.9),rgba(214,148,143,.52));opacity:.72;transform-origin:center bottom}.petal-one{left:47%;top:25%;transform:rotate(42deg)}.petal-two{right:16%;bottom:28%;transform:rotate(115deg)}.petal-three{left:16%;bottom:23%;width:8px;height:14px;transform:rotate(-35deg)}.petal-four{right:31%;top:18%;width:7px;height:12px;transform:rotate(65deg)}.fine-rule{position:absolute;right:6.5vw;top:18vh;height:66vh;width:1px;background:linear-gradient(transparent,rgba(216,160,150,.35),transparent)}
.section{padding:150px 8vw;position:relative}.works-section{padding-top:130px}.section-heading{display:flex;gap:25px;align-items:flex-start;margin-bottom:55px}.section-number{margin:2px 0 0;color:var(--rose);font-size:14px}.section-kicker{margin:0 0 8px;color:#a49a97;font-size:11px;letter-spacing:.25em}.section h2{margin:0;font-size:52px;font-weight:500;letter-spacing:.12em}.category-nav{display:flex;gap:26px;margin-bottom:36px}.category-button{display:inline-block;border:0;background:none;color:#928987;padding:0 0 6px;letter-spacing:.18em;font-size:12px;cursor:pointer;border-bottom:1px solid transparent}.category-button.is-active{color:var(--ink);border-color:#dba0a0}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}.work-card{display:block}.work-image{position:relative;overflow:hidden;background:#f0ebe7}.work-image img{width:100%;height:auto;display:block;transition:transform .55s ease}.work-image:after{content:"VIEW →";position:absolute;inset:0;display:grid;place-items:center;background:rgba(232,176,171,.47);color:#fff;letter-spacing:.25em;font-size:12px;opacity:0;transition:opacity .35s ease}.work-card:hover .work-image:after{opacity:1}.work-card:hover .work-image img{transform:scale(1.025)}.work-meta{display:flex;justify-content:space-between;padding-top:12px;font-size:11px;letter-spacing:.14em}.work-meta span:last-child{color:#a49a97}.placeholder{aspect-ratio:4/5;display:grid;place-items:center;background:linear-gradient(135deg,#f1ece8,#f8f4f0);color:#b9afac;font-size:10px;letter-spacing:.25em}.is-coming{opacity:.7}.simple-section{border-top:1px solid rgba(80,60,55,.08)}.intro-grid,.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw}.large-copy{font-size:32px;line-height:1.45;letter-spacing:.08em;margin:0}.body-copy{font-family:var(--jp);font-size:14px;line-height:2.1;letter-spacing:.1em;color:#756d69;margin:0}.about-name{font-family:var(--jp);font-size:30px;margin:0 0 10px}.about-role{color:#8c817e;font-size:12px;letter-spacing:.2em}.contact-section{padding-bottom:120px}.contact-link{display:inline-block;margin-top:35px;font-size:25px;border-bottom:1px solid #cfa39a;padding-bottom:8px}.site-footer{display:flex;justify-content:space-between;padding:28px 8vw;border-top:1px solid rgba(80,60,55,.08);font-size:10px;color:#9a918e;letter-spacing:.18em}
@media(max-width:900px){.site-header{height:88px}.brand-mark{left:20px;top:14px;transform:scale(.78);transform-origin:left top}.menu-toggle{display:block;position:absolute;right:24px;top:26px;border:0;background:none;color:#4e4644;letter-spacing:.18em;font-size:11px;pointer-events:auto}.global-nav{display:none;right:20px;top:70px;padding:20px 18px;background:rgba(251,248,244,.96);border:1px solid rgba(200,160,150,.25)}.global-nav.is-open{display:flex}.hero{padding:0 9vw;align-items:center}.hero-copy{margin-left:0;margin-top:-8vh}.eyebrow-digit{font-size:1em;display:inline;font-family:inherit;font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;}
.hero h1{font-size:24vw}.eyebrow{font-size:10px;margin-bottom:20px}.hero-en{font-size:16px;margin-top:24px}.hero-ornament{left:31vw;top:56%;width:270px}.ring-one,.ring-two{display:none}.fine-rule{right:9vw;top:24vh;height:58vh}.section{padding:100px 8vw}.gallery{grid-template-columns:1fr 1fr;gap:22px}.intro-grid,.about-grid{grid-template-columns:1fr;gap:32px}}
@media(max-width:560px){.gallery{grid-template-columns:1fr}.hero{min-height:90vh}.hero-ornament{left:23vw;top:60%;width:240px}.global-nav{top:68px}.section h2{font-size:38px}.large-copy{font-size:25px}.site-footer{flex-direction:column;gap:10px}}

/* Use Cormorant Garamond lining numeral for the 2 in LIVE2D, at exactly the same size as the surrounding letters. */
.global-nav .live2d-two{display:inline!important;width:auto!important;color:inherit!important;font-family:inherit!important;font-size:1em!important;line-height:inherit!important;letter-spacing:inherit!important;vertical-align:baseline!important;transform:none!important;font-variant-numeric:lining-nums!important;font-feature-settings:"lnum" 1!important;}


/* v12 — Illustration gallery polish */
/* Keep artwork unobstructed on illustration/category pages. The logo remains as the way back home. */
.illustration-page .global-nav{display:none!important}

/* Natural-ratio gallery: portrait, square and landscape work all keep their original proportions. */
.illustration-page .gallery{align-items:start;gap:46px 34px}
.illustration-page .work-card{min-width:0;transition:transform .45s cubic-bezier(.22,.61,.36,1)}
.illustration-page .work-image{background:#f4efeb;isolation:isolate}
.illustration-page .work-image img{width:100%;height:auto;display:block;object-fit:contain;transform:scale(1);transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .45s ease}

/* Soft sakura veil + two-line gallery label on hover. */
.illustration-page .work-image:after{content:"";position:absolute;inset:0;background:rgba(229,170,170,.30);opacity:0;transition:opacity .42s ease;z-index:1}
.illustration-page .work-image:before{content:attr(data-view) "\A" attr(data-type);white-space:pre;position:absolute;left:50%;top:50%;transform:translate(-50%,-44%);z-index:2;color:#fff;text-align:center;font-size:12px;line-height:2.15;letter-spacing:.24em;text-shadow:0 1px 12px rgba(77,52,50,.18);opacity:0;transition:opacity .38s ease,transform .48s cubic-bezier(.22,.61,.36,1);pointer-events:none}
.illustration-page .work-card:hover{transform:translateY(-3px)}
.illustration-page .work-card:hover .work-image:after{opacity:1}
.illustration-page .work-card:hover .work-image:before{opacity:1;transform:translate(-50%,-50%)}
.illustration-page .work-card:hover .work-image img{transform:scale(1.018);filter:saturate(.96) brightness(.98)}
.illustration-page .work-meta{transition:opacity .35s ease}
.illustration-page .work-card:hover .work-meta{opacity:.72}

@media (hover:none){
  .illustration-page .work-card:hover{transform:none}
  .illustration-page .work-card:hover .work-image img{transform:none;filter:none}
  .illustration-page .work-image:before,.illustration-page .work-image:after{display:none}
}
@media(max-width:900px){.illustration-page .gallery{gap:34px 22px}}
@media(max-width:560px){.illustration-page .gallery{gap:38px}.illustration-page .work-meta{padding-top:10px}}

/* v16 — Unified gallery showcase frames
   Keep every artwork uncropped while aligning card bottoms across mixed aspect ratios. */
.illustration-page .work-image{
  aspect-ratio:4 / 5;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f4f1;
}
.illustration-page .work-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
@media(max-width:900px){
  .illustration-page .work-image{aspect-ratio:4 / 5}
}
@media(max-width:560px){
  .illustration-page .work-image{aspect-ratio:auto;min-height:0}
  .illustration-page .work-image img{width:100%;height:auto}
}

/* v17 — Editorial middle-ground gallery
   Keep the clean three-column rhythm, but let each artwork breathe at a more natural scale. */
.illustration-page .gallery{align-items:start;gap:46px 34px}
.illustration-page .work-image{
  aspect-ratio:auto;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  background:#f8f4f1;
}
.illustration-page .work-image img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center top;
}
/* Extremely tall standing artwork: keep the full figure, but cap the gallery height
   so it stays prominent without making the entire first row excessively long. */
.illustration-page .work-card:first-child .work-image{
  height:clamp(560px,66vw,760px);
  align-items:center;
}
.illustration-page .work-card:first-child .work-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
@media(max-width:900px){
  .illustration-page .work-card:first-child .work-image{height:clamp(480px,92vw,680px)}
}
@media(max-width:560px){
  .illustration-page .work-card:first-child .work-image{height:auto}
  .illustration-page .work-card:first-child .work-image img{width:100%;height:auto}
}


[hidden] {
  display: none !important;
}

.live2d-heading-two {
  font-family: "Times New Roman", serif !important;
  font-size: 0.90em !important;
  font-weight: 400 !important;
  vertical-align: 0;
}

.illustration-page .section-heading h2 {
  font-size: 52px !important;
}
/* v18 — LIVE2D featured project */
.live2d-page .live2d-featured{
  width:min(760px,58vw);
  margin-top:8px;
}
.live2d-page .live2d-project{
  display:block;
  width:100%;
  transition:transform .5s cubic-bezier(.22,.61,.36,1);
}
.live2d-page .live2d-visual{
  position:relative;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:#fff;
  isolation:isolate;
}
.live2d-page .live2d-visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 32%;
  transition:transform .8s cubic-bezier(.22,.61,.36,1),filter .55s ease;
}
.live2d-page .live2d-visual::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(224,166,166,.24);
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
  opacity:0;
  transition:opacity .45s ease;
}
.live2d-page .live2d-view{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  transform:translate(-50%,-42%);
  color:#fff;
  font-size:12px;
  letter-spacing:.27em;
  text-shadow:0 1px 14px rgba(65,45,43,.16);
  opacity:0;
  transition:opacity .4s ease,transform .55s cubic-bezier(.22,.61,.36,1);
  white-space:nowrap;
}
.live2d-page .live2d-project:hover{
  transform:translateY(-3px);
}
.live2d-page .live2d-project:hover .live2d-visual img{
  transform:scale(1.025);
  filter:saturate(.96) brightness(.985);
}
.live2d-page .live2d-project:hover .live2d-visual::after{
  opacity:1;
}
.live2d-page .live2d-project:hover .live2d-view{
  opacity:1;
  transform:translate(-50%,-50%);
}
.live2d-page .live2d-project-meta{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 28px;
  align-items:end;
  padding-top:16px;
  font-size:11px;
  letter-spacing:.17em;
}
.live2d-page .live2d-project-name{
  font-size:13px;
  letter-spacing:.2em;
}
.live2d-page .live2d-project-role{
  color:#a49a97;
  grid-column:1;
}
.live2d-page .live2d-project-link{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  color:#8c817e;
  transition:transform .35s ease,color .35s ease;
}
.live2d-page .live2d-project:hover .live2d-project-link{
  transform:translateX(5px);
  color:var(--ink);
}
@media(max-width:900px){
  .live2d-page .live2d-featured{width:min(620px,82vw)}
}
@media(max-width:560px){
  .live2d-page .live2d-featured{width:100%}
  .live2d-page .live2d-project-meta{grid-template-columns:1fr;gap:7px;padding-top:13px}
  .live2d-page .live2d-project-role,.live2d-page .live2d-project-link{grid-column:1;grid-row:auto}
  .live2d-page .live2d-project-link{margin-top:5px}
}
@media(hover:none){
  .live2d-page .live2d-project:hover{transform:none}
  .live2d-page .live2d-project:hover .live2d-visual img{transform:none;filter:none}
  .live2d-page .live2d-visual::after,.live2d-page .live2d-view{display:none}
}

/* v19 — LIVE2D softer editorial spacing + bottom sakura gradient */
.live2d-page .live2d-featured{
  width:min(620px,48vw);
  margin-top:18px;
}

.live2d-page .live2d-visual::after{
  background:linear-gradient(
    to bottom,
    rgba(255,253,251,.10) 0%,
    rgba(247,222,220,.14) 48%,
    rgba(224,166,166,.34) 100%
  );
  backdrop-filter:blur(.45px);
  -webkit-backdrop-filter:blur(.45px);
}

.live2d-page .live2d-view{
  top:58%;
}

.live2d-page .live2d-project:hover .live2d-visual img{
  transform:scale(1.018);
  filter:saturate(.975) brightness(.995);
}

@media(max-width:900px){
  .live2d-page .live2d-featured{width:min(560px,72vw)}
}

@media(max-width:560px){
  .live2d-page .live2d-featured{width:88%}
}

/* v20 — richer sakura veil + full-size numeral in LIVE2D MODEL */
.live2d-page .live2d-visual::after{
  background:linear-gradient(
    to bottom,
    rgba(255,253,251,.08) 0%,
    rgba(244,210,209,.22) 18%,
    rgba(232,184,184,.31) 48%,
    rgba(224,166,166,.36) 100%
  );
  backdrop-filter:blur(.45px);
  -webkit-backdrop-filter:blur(.45px);
}

/* Keep the numeral 2 visually equal to the letters in the project role. */
.live2d-page .live2d-project-role .live2d-model-two{
  display:inline;
  width:auto;
  color:inherit;
  font-family:inherit;
  font-size:1em;
  line-height:inherit;
  letter-spacing:inherit;
  vertical-align:baseline;
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1;
}
