/* ========================================
   COMMON / FONTS / RESET
======================================== */
@font-face {
font-family:'Manrope';
src:url('../fonts/Manrope-VariableFont_wght.ttf') format('truetype');
font-style:normal;
font-weight:100 900;
font-display:swap;
}
@font-face {
font-family:'Oswald';
src:url('../fonts/Oswald-VariableFont_wght.ttf') format('truetype');
font-style:normal;
font-weight:100 900;
font-display:swap;
}
@font-face {
font-family:'Homemade Apple';
src:url('../fonts/HomemadeApple-Regular.ttf') format('truetype');
font-style:normal;
font-weight:400;
font-display:swap;
}
:root {
--cyan:#37d1d8;
--black:#000;
--side:clamp(22px,5.8vw,112px);
--font-base: 'Noto Sans JP', sans-serif;
--font-manrope:'Manrope',sans-serif;
--font-oswald:'Oswald',sans-serif;
--font-apple:'Homemade Apple',cursive;
--color-text:#ddd;
--color-heading:#f7f7f7;
--color-accent:#37d1d8;
--font-size:clamp(12px,1vw,20px);
}
* {
box-sizing:border-box;
}
html {
font-size:var(--font-size);
scroll-behavior:smooth;
}
body {
margin:0;
background:var(--black);
color:var(--color-text);
font-family: var(--font-base);
font-size:1rem;
line-height:1.9;
}
a {
color:inherit;
text-decoration:none;
cursor: pointer;
}
img {
display:block;
max-width:100%;
}
h1,h2,h3,h4,h5,h6,p {
margin:0;
}
h1,h2,h3,h4,h5,h6 {
color:var(--color-heading);
}
@media screen and (min-width:769px) {
.pchd {
display: none;
}
}
@media screen and (max-width:768px) {
.sphd {
display: none;
}
}
/* ========================================
   HEADER (PC / 1200px / 960px / 520px)
======================================== */
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 100;
background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, .95) 0%,
    rgba(0, 0, 0, .70) 35%,
    rgba(0, 0, 0, .35) 65%,
    rgba(0, 0, 0, 0) 100%
  );
}
.headerinner {
width: 100%;
height: clamp(70px, 6.5vw, 110px);
padding: 0 3%;
display: flex;
align-items: center;
}
.logo {
display: block;
width: 6%;
flex-shrink: 0;
}
.logo img {
width: 100%;
height: auto;
}
.shopname {
margin-left: 4%;
font-family: var(--font-base);
font-size: 1rem;
font-weight: 600;
letter-spacing: .08em;
color: var(--color-heading);
white-space: nowrap;
}
.nav {
display: flex;
align-items: center;
justify-content: space-between;
width: 50%;
margin-left: auto;
gap: 0;
}
.nav a {
font-family: var(--font-base);
font-size: 1rem;
font-weight: 600;
letter-spacing: .05em;
}
.nav a:hover {
color: var(--color-accent);
}
.instagram {
display: block;
width: 2.6%;
margin-left: 5.5%;
flex-shrink: 0;
}
.instagram img {
width: 100%;
height: auto;
}
.toggle {
display: none;
}
@media screen and (max-width:1200px) {
.nav {
gap:clamp(12px,2vw,25px);
}
.shopname {
margin-left:clamp(15px,2vw,25px);
}
.instagram {
margin-left:clamp(15px,2vw,25px);
}
}
@media screen and (max-width:960px) {
.headerinner {
min-height:70px;
padding:0 20px;
}
.header .logo {
width:70px;
}
.shopname {
font-size:12px;
margin-left:18px;
}
.instagram {
width:28px;
margin-left:auto;
}
.toggle {
display:flex;
flex-direction:column;
justify-content:center;
gap:6px;
width:44px;
height:44px;
margin-left:15px;
padding:9px;
border:0;
background:transparent;
cursor:pointer;
}
.toggle span {
display:block;
width:100%;
height:2px;
background:var(--color-heading);
}
.nav {
display:none;
position:absolute;
top:70px;
left:0;
width:100%;
padding:30px 25px;
background:rgba(0,0,0,.96);
flex-direction:column;
align-items:flex-start;
gap:20px;
margin:0;
}
.nav.open {
display:flex;
}
.nav a {
font-size:14px;
}
}
@media screen and (max-width:520px) {
.shopname {
font-size:10px;
letter-spacing:0;
margin-left:12px;
}
.header .logo {
width:60px;
}
.instagram {
width:25px;
}
.toggle {
margin-left:8px;
}
}

/* ========================================
   FOOTER
======================================== */
.footer {
position:relative;
width:100%;
min-height:245px;
padding:45px var(--side) clamp(50px,5vw,90px);
background:#000;
border-bottom:1px solid #333;
}
.footerinner {
display:flex;
align-items:center;
justify-content:space-between;
gap:35px;
width:100%;
}
.footerbrand {
display:flex;
align-items:center;
gap:clamp(20px,3vw,55px);
flex-shrink:0;
}
.footerlogo {display:block;width:clamp(75px,6vw,115px);}
.footerlogo img {display:block;width:100%;height:auto;}
.footershopname {
margin:0;
color:#eee;
font-size:clamp(12px,1vw,18px);
font-weight:700;
letter-spacing:.08em;
white-space:nowrap;
}
.footernav {
display:flex;
align-items:center;
justify-content:space-between;
gap:clamp(15px,2vw,40px);
flex:1;
max-width:750px;
margin-left:clamp(20px,2.5vw,50px);
}
.footernav a {
color:#f7f7f7;
font-size:clamp(12px,1vw,18px);
font-weight:400;
letter-spacing:.12em;
white-space:nowrap;
transition:color .3s ease;
}
.footernav a:hover {color:#37d1d8;}
.footerlinks {
display:flex;
align-items:center;
justify-content:center;
gap:clamp(25px,3vw,55px);
flex-shrink:0;
}
.footerinstagram {display:block;width:clamp(28px,2.5vw,45px);margin:0 auto;}
.footerinstagram img {display:block;width:100%;height:auto;}
.footerpagetop {display:none;}
.footercopyright {
position:static;
width:100%;
margin:clamp(40px,5vw,80px) 0 0;
color:#999;
font-size:clamp(10px,.75vw,14px);
font-weight:400;
text-align:center;
}
/* Footer upward animated line and PAGE TOP label */
.footer-scroll {
position:absolute;
top:-80px;
right:calc(clamp(35px,5vw,90px) + 20px + 1em);
width:140px;
height:225px;
pointer-events:none;
}
.footer-scroll i {
position:absolute;
top:0;
right:0;
width:14px;
height:100px;
font-style:normal;
-webkit-mask-image:linear-gradient(#000,#000);
mask-image:linear-gradient(#000,#000);
-webkit-mask-size:100% 100%;
mask-size:100% 100%;
-webkit-mask-repeat:no-repeat;
mask-repeat:no-repeat;
animation:footerLine 1.7s cubic-bezier(.77,0,.18,1) infinite;
}
.footer-scroll i::before {
content:"";
position:absolute;
top:0;
left:0;
width:1px;
height:100%;
background:var(--color-heading);
}
.footer-scroll i::after {
content:"";
position:absolute;
top:0;
left:0;
width:1px;
height:12px;
background:var(--color-heading);
transform:rotate(-35deg);
transform-origin:top center;
}
.footer-scroll::before {content:none;}
.footer-scroll::after {
content:"PAGE TOP";
position:absolute;
display:block;
top:65px;
left:100%;
width:max-content;
margin-left:12px;
color:#eee;
font-size:clamp(11px,.875vw,16px);
font-weight:500;
letter-spacing:.2em;
white-space:nowrap;
}
@keyframes footerLine {
0% {-webkit-mask-size:100% 0%;mask-size:100% 0%;-webkit-mask-position:bottom;mask-position:bottom;}
35% {-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:bottom;mask-position:bottom;}
45% {-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:top;mask-position:top;}
80% {-webkit-mask-size:100% 0%;mask-size:100% 0%;-webkit-mask-position:top;mask-position:top;}
100% {-webkit-mask-size:100% 0%;mask-size:100% 0%;-webkit-mask-position:top;mask-position:top;}
}
@media screen and (max-width:768px) {
.footer {padding:50px var(--side) 35px;max-width:100%;}
.footerinner {flex-direction:column;flex-wrap:wrap;justify-content:center;gap:30px;}
.footerbrand {flex-shrink:1;justify-content:center;}
.footernav {flex:0 0 100%;width:100%;max-width:100%;margin:0;flex-wrap:wrap;justify-content:center;}
.footerlinks {width:100%;}
.footer-scroll {right:calc(clamp(65px,12vw,100px) + 20px);}
.footer-scroll::after {margin-left:10px;font-size:11px;}
.footercopyright {margin-top:35px;font-size:11px;}
}
@media screen and (max-width:520px) {
.footerinner {gap:25px;}
.footernav {gap:15px 20px;}
.footer-scroll {right:85px;}
.footer-scroll::after {margin-left:8px;font-size:10px;}
}

/* ========================================
   MORPH HAMBURGER MENU
======================================== */

.hamburger-morph,
.nav-morph {
  display: none;
}

@media screen and (max-width:960px) {

  .hamburger-morph {
    display: block;
    position: relative;
    z-index: 1002;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    margin-left: 8px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
  }

  .hamburger-morph__icon {
    display: block;
    width: 100%;
    height: 100%;
  }

  .hamburger-morph__line {
    fill: none;
    stroke: #fff;
    stroke-width: 6;
    stroke-linecap: round;
    transition:
      stroke-dasharray 600ms cubic-bezier(.4,0,.2,1),
      stroke-dashoffset 600ms cubic-bezier(.4,0,.2,1);
  }

  .hamburger-morph__line:nth-child(1),
  .hamburger-morph__line:nth-child(3) {
    stroke-dasharray: 60 207;
  }

  .hamburger-morph__line:nth-child(2) {
    stroke-dasharray: 60 60;
  }

  .hamburger-morph.active .hamburger-morph__line:nth-child(1),
  .hamburger-morph.active .hamburger-morph__line:nth-child(3) {
    stroke-dasharray: 90 207;
    stroke-dashoffset: -134;
  }

  .hamburger-morph.active .hamburger-morph__line:nth-child(2) {
    stroke-dasharray: 1 60;
    stroke-dashoffset: -30;
  }

  /* Full screen navigation */

.nav-morph {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1001;
  width: 100%;
  height: 100dvh;

  background: rgba(5, 5, 5, .98);

  clip-path: circle(0% at calc(100% - 44px) 44px);

  visibility: hidden;
  pointer-events: none;

  transition:
    clip-path .7s cubic-bezier(.77, 0, .18, 1),
    visibility 0s linear .7s;
}

.nav-morph.active {
  clip-path: circle(150% at calc(100% - 44px) 44px);

  visibility: visible;
  pointer-events: auto;

  transition:
    clip-path .7s cubic-bezier(.77, 0, .18, 1),
    visibility 0s linear 0s;
}

  .nav-morph__wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    padding: 70px 20px 30px;
  }

  .nav-morph__list {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: center;
  }

  .nav-morph__item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .4s ease, transform .4s ease;
  }

  .nav-morph.active .nav-morph__item {
    opacity: 1;
    transform: translateY(0);
  }

  .nav-morph.active .nav-morph__item:nth-child(1) { transition-delay: .3s; }
  .nav-morph.active .nav-morph__item:nth-child(2) { transition-delay: .4s; }
  .nav-morph.active .nav-morph__item:nth-child(3) { transition-delay: .5s; }
  .nav-morph.active .nav-morph__item:nth-child(4) { transition-delay: .6s; }
  .nav-morph.active .nav-morph__item:nth-child(5) { transition-delay: .7s; }
  .nav-morph.active .nav-morph__item:nth-child(6) { transition-delay: .8s; }

  .nav-morph__link {
    display: inline-block;
    padding: 12px 20px;
    color: #fff;
    font-family: var(--font-oswald);
    font-size: clamp(26px, 6vw, 38px);
    font-weight: 500;
    letter-spacing: .12em;
    text-decoration: none;
    transition: color .3s ease;
  }

  .nav-morph__link:hover {
    color: var(--color-accent);
  }

  .header:has(.nav-morph.active) .logo,
  .header:has(.nav-morph.active) .shopname,
  .header:has(.nav-morph.active) .instagram {
    position: relative;
    z-index: 1002;
  }

}

@media screen and (max-width:520px) {
  .hamburger-morph {
    width: 44px;
    height: 44px;
  }

  .nav-morph__link {
    font-size: 28px;
    padding: 10px 20px;
  }
}


/* ヘッダーロゴ サイズ調整 */
.header .logo {
  width: 7.5%;
  flex-shrink: 0;
}

.header .logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* 960px以下 */
@media screen and (max-width: 960px) {
  .header .logo {
    width: 5.25rem;
  }
}

/* 520px以下 */
@media screen and (max-width: 520px) {
  .header .logo {
    width: 4.5rem;
  }
}


/* PAGE TOP クリック有効化 */
.footer-scroll {
  pointer-events: auto;
  cursor: pointer;
}
