/*
Theme Name: nerine2026
Author: MISAKI SAKAI
Description: m-ski site.
Version: 2.0
*/

body p {
	letter-spacing: .05em !important;
	line-height: 1.7 !important;
}
.link-arrow { display:inline-block;width:1em;height:1em;flex:0 0 auto;color:currentColor;vertical-align:-.08em;transform-origin:center;transition:transform .25s ease; }
.link-arrow--right { transform:rotate(45deg); }
.link-arrow--down { transform:rotate(135deg); }
.link-arrow--left { transform:rotate(-90deg); }
a:hover .link-arrow--up-right,a:focus-visible .link-arrow--up-right { transform:translate(2px,-2px); }
a:hover .link-arrow--right,a:focus-visible .link-arrow--right { transform:translateX(2px) rotate(45deg); }
a:hover .link-arrow--left,a:focus-visible .link-arrow--left { transform:translateX(-2px) rotate(-90deg); }
/* Shared portal footer wave: used by HOME, ABOUT and SERVICE. */
.portal-footer {
	position: relative;
	z-index: 2;
	isolation: isolate;
}

/* One shared header/footer scale, independent of legacy page root font sizes. */
.portal-header__brand { width:clamp(93px,8vw,128px); }
.portal-header a,.portal-navigation a { color:inherit; }
.portal-navigation a { font-size:11.2px; line-height:1.4; }
.portal-header.portal-header--lower { color:#111218; background:rgba(245,245,242,.94); border-bottom-color:rgba(17,18,24,.18); }
.portal-header.portal-header--lower .portal-header__brand img { filter:none; }
.portal-footer { color:#fff; background:#034c9a; }
.portal-footer__brand { width:clamp(104px,9vw,144px); }
.portal-footer__links { color:#fff; font-size:10.88px; line-height:1.4; }
.portal-footer__links a,.portal-footer__copyright { color:#fff; }
.portal-footer__copyright { font-size:10.4px; }

/* Shared first-view skeleton for lower pages. Page styles retain only scenery. */
.subpage-hero { position:relative;display:flex;height:clamp(430px,38vw,560px);min-height:clamp(430px,38vw,560px);padding:0;overflow:hidden;isolation:isolate;color:#fff; }
.subpage-hero::after { content:"";position:absolute;z-index:2;inset:0;pointer-events:none;opacity:.12;background:url("assets/img/common/noise.png") repeat;background-size:180px 180px;mix-blend-mode:soft-light; }
.subpage-hero > .about-noise,.subpage-hero > .archive-hero__noise { display:none; }
.subpage-hero .subpage-hero__inner { position:relative;z-index:3;display:flex;flex:0 1 auto;flex-direction:column;box-sizing:border-box;width:min(calc(100% - 96px),1440px);min-height:inherit;margin-inline:auto;padding:clamp(124px,10vw,148px) 0 clamp(48px,6vw,84px); }
.subpage-hero .subpage-hero__label { align-self:auto;margin:0 0 clamp(2.5rem,4vw,3.25rem);font:italic 400 11.5px/1.4 Arial,sans-serif;letter-spacing:.1em; }
.subpage-hero__content { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(3rem,8vw,10rem); }
.subpage-hero__main { min-width:0; }
.subpage-hero .subpage-hero__main h1 { max-width:100%;margin:0;font-family:"Fredoka","Zen Kaku Gothic New",sans-serif;font-size:clamp(3.5rem,6.2vw,90px);font-weight:400;line-height:.95;letter-spacing:.02em;overflow-wrap:anywhere; }
.subpage-hero .subpage-hero__description { max-width:34em;margin:clamp(1.75rem,3vw,2.75rem) 0 0;font-size:clamp(1rem,1.3vw,1.25rem); }
.subpage-hero__meta { align-self:end;justify-self:end;max-width:24em;margin:0;text-align:right; }
.subpage-hero.subpage-hero--service h1 { max-width:18em;font-family:"Zen Kaku Gothic New",sans-serif;font-size:clamp(2rem,3.2vw,38px);font-weight:400;line-height:1.45;letter-spacing:.04em; }
.subpage-hero--work-single .subpage-hero__main h1,.subpage-hero--game-single .subpage-hero__main h1 { font-size:clamp(2rem,4.5vw,64px);line-height:1.15; }
.subpage-hero--service .service-hero__lead { margin-top:clamp(1.75rem,3vw,2.75rem); }
.subpage-hero--game-single .game-status { margin:0 0 1rem; }
.subpage-hero--game-single .game-single__facts { margin-top:1.5rem; }

@media (max-width:1024px) and (min-width:768px) {
	.subpage-hero { height:480px;min-height:480px; }
	.subpage-hero .subpage-hero__inner { padding-top:124px;padding-bottom:56px; }
}

.portal-footer__wave {
	position: absolute;
	z-index: -1;
	left: 0;
	bottom: calc(100% - 1px);
	display: block;
	width: 100%;
	max-width: 100%;
	height: clamp(32px, 3.3vw, 48px);
	overflow: visible;
	color: #034c9a;
	pointer-events: none;
	transform-origin: 50% 100%;
	animation: portal-footer-wave 8s ease-in-out infinite alternate;
	will-change: transform;
}

@keyframes portal-footer-wave {
	from { transform: scaleY(.94); }
	to { transform: scaleY(1.05); }
}

@media (max-width: 767px) {
	.subpage-hero { height:clamp(430px,118vw,620px);min-height:clamp(430px,118vw,620px); }
	.subpage-hero .subpage-hero__inner { width:min(calc(100% - 40px),100%);padding:104px 0 48px; }
	.subpage-hero .subpage-hero__label { margin-bottom:clamp(2.5rem,12vw,3.5rem); }
	.subpage-hero__content { display:block; }
	.subpage-hero .subpage-hero__main h1 { font-size:clamp(3rem,15vw,4.5rem);line-height:.95; }
	.subpage-hero.subpage-hero--service h1 { font-size:clamp(1.25rem,5.8vw,1.75rem);line-height:1.5; }
	.subpage-hero--work-single .subpage-hero__main h1,.subpage-hero--game-single .subpage-hero__main h1 { font-size:clamp(1.75rem,8vw,2.5rem);line-height:1.2; }
	.subpage-hero .subpage-hero__description { max-width:100%;margin-top:1.75rem;font-size:1rem; }
	.subpage-hero--service .subpage-hero__description { margin-top:1.25rem;font-size:.9375rem; }
	.subpage-hero__meta { margin-top:1.75rem;text-align:left; }
	.portal-footer__inner { min-height:230px; padding-block:40px; }
	.portal-header {
		position: fixed;
		z-index: 1002;
		top: 0;
		right: auto;
		left: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		box-sizing: border-box;
		width: 100vw;
		max-width: 100vw;
		min-height: 64px;
		overflow: visible;
		transform: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		color: #111722;
		background: rgba(250, 251, 248, .94);
		border-bottom: 1px solid rgba(17, 23, 34, .12);
	}
	.portal-header.is-menu-open {
		color: #fff;
		background: transparent;
		border-bottom-color: transparent;
	}
	.portal-header__brand {
		position: relative;
		z-index: 2;
		flex: 0 0 auto;
	}
	.portal-header__brand img,
	.portal-header.is-scrolled .portal-header__brand img {
		filter: none;
	}
	.portal-menu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		visibility: visible;
		opacity: 1;
		position: relative;
		z-index: 2;
		flex: 0 0 auto;
		width: auto;
		min-width: 72px;
		height: 48px;
		margin: 0;
		padding: 0 12px;
		border: 0;
		color: #111722;
		background: transparent;
		pointer-events: auto;
		transform: none;
		cursor: pointer;
	}
	.portal-menu-toggle > span {
		display: block;
		color: currentColor;
		font-family: Arial, Helvetica, sans-serif;
		font-size: 11px;
		font-style: italic;
		font-weight: 400;
		line-height: 1;
		letter-spacing: .12em;
		opacity: 1;
		visibility: visible;
	}
	.portal-menu-toggle > i {
		position: relative;
		display: block;
		flex: 0 0 22px;
		width: 22px;
		height: 14px;
		background: transparent;
	}
	.portal-menu-toggle > i::before,
	.portal-menu-toggle > i::after {
		content: "";
		position: absolute;
		left: 0;
		display: block;
		width: 22px;
		height: 2px;
		border-radius: 999px;
		background: currentColor;
		opacity: 1;
		visibility: visible;
		transform-origin: center;
		transition: top .3s ease, transform .3s ease;
	}
	.portal-menu-toggle > i::before { top: 3px; }
	.portal-menu-toggle > i::after { top: 9px; }
	.portal-menu-toggle[aria-expanded="true"] {
		color: #fff;
	}
	.portal-header.is-menu-open .portal-header__brand img {
		filter: brightness(0) invert(1);
	}
	.portal-menu-toggle[aria-expanded="true"] > i::before {
		top: 6px;
		transform: rotate(45deg);
	}
	.portal-menu-toggle[aria-expanded="true"] > i::after {
		top: 6px;
		transform: rotate(-45deg);
	}
	.portal-navigation {
		position: fixed;
		z-index: 1;
		inset: 0;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: center;
		gap: 0;
		box-sizing: border-box;
		width: 100vw;
		max-width: 100vw;
		height: 100dvh;
		min-height: 0;
		padding: clamp(72px, 11dvh, 96px) clamp(24px, 6vw, 32px) clamp(26px, 5dvh, 42px);
		overflow: hidden;
		visibility: hidden;
		opacity: 0;
		color: #fff;
		background: radial-gradient(circle at 78% 18%, rgba(87,215,232,.56), transparent 30%), radial-gradient(circle at 16% 82%, rgba(8,123,204,.7), transparent 34%), linear-gradient(145deg,#021d54 0%,#034c9a 48%,#087bcc 78%,#57d7e8 115%);
		pointer-events: none;
		transition: opacity .25s ease, visibility .25s ease;
	}
	.portal-navigation::before {
		content: "";
		position: absolute;
		z-index: -1;
		inset: 0;
		opacity: .14;
		background: url("assets/img/common/noise.png") repeat;
		background-size: 300px 300px;
		mix-blend-mode: soft-light;
		pointer-events: none;
	}
	.portal-header.is-menu-open .portal-navigation {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}
	.portal-navigation > a {
		display: flex;
		align-items: center;
		width: 100%;
		min-width: 0;
		min-height: 48px;
		padding: clamp(16px, 4.4dvh, 30px) 0;
		border-bottom: 1px solid rgba(255,255,255,.2);
		color: inherit;
		font-family: "Fredoka", sans-serif;
		font-size: clamp(1.35rem, 4.8vw, 1.8rem);
		font-style: normal;
		font-weight: 400;
		line-height: 1;
		letter-spacing: .01em;
		white-space: nowrap;
	}
	body.portal-menu-is-open {
		overflow: hidden;
	}
	body.admin-bar .portal-header { top: 46px; }
	.portal-footer__wave {
		left:0;
		width:100%;
		max-width:100%;
		transform-box:fill-box;
		transform-origin:50% 100%;
		animation:portal-footer-wave-mobile 5s ease-in-out infinite alternate;
	}
}

@keyframes portal-footer-wave-mobile {
	from { transform:translateY(1px) scaleY(.88); }
	to { transform:translateY(-1px) scaleY(1.08); }
}

@media (max-width: 767px) and (max-height: 700px) {
	.portal-navigation {
		padding-top: 68px;
		padding-bottom: 18px;
	}
}

@media (min-width: 783px) {
	body.admin-bar .portal-header { top: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.portal-footer__wave { animation: none !important; }
}
