:root{
	--ink:#eef4f6;
	--ink-dim:rgba(238,244,246,.55);
	--abyss:#050d16;
	--kerama:#2fbfc4;
	--dawn:#e8a87c;
	--sand:#d8cbb4;
	--gold:#c9a15c;
	--gold-dim:rgba(201,161,92,.45);
}
::selection{background:rgba(201,161,92,.35);color:#fff}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{
	background:var(--abyss);
	color:var(--ink);
	font-family:'Noto Serif JP',serif;
	font-weight:300;
	overflow-x:hidden;
	cursor:none;
	-webkit-font-smoothing:antialiased;
}
@media (pointer:coarse){body{cursor:auto}}

/* WP admin bar 対策 */
body.admin-bar header{top:46px}
@media(max-width:782px){body.admin-bar header{top:60px}}

/* ---------- loader ---------- */
#loader{
	position:fixed;inset:0;z-index:100;
	background:var(--abyss);
	display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2rem;
	transition:opacity 1.4s ease, visibility 1.4s;
}
#loader.done{opacity:0;visibility:hidden}
#loader .mark{
	font-family:'Cormorant Garamond',serif;
	font-size:clamp(2rem,5vw,3.2rem);
	letter-spacing:.5em;text-indent:.5em;
	font-weight:300;color:var(--ink);
	animation:breathe 3s ease-in-out infinite;
}
#loader .mark-logo{
	width:clamp(180px,28vw,280px);height:auto;
	filter:brightness(0) invert(1);opacity:.9;
	animation:breathe 3s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.35}50%{opacity:1}}
#loader .bar{width:120px;height:1px;background:rgba(238,244,246,.15);overflow:hidden}
#loader .bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .3s}

/* ---------- canvas ---------- */
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:0}

/* ---------- cursor ---------- */
#cursor{
	position:fixed;top:0;left:0;z-index:99;pointer-events:none;
	width:8px;height:8px;border-radius:50%;background:var(--ink);
	transform:translate(-50%,-50%);
	mix-blend-mode:difference;
	transition:width .35s,height .35s,background .35s;
}
#cursor.hover{width:56px;height:56px;background:var(--gold)}
@media (pointer:coarse){#cursor{display:none}}

/* ---------- chrome ---------- */
body > header{
	position:fixed;top:14px;left:50%;transform:translateX(-50%);
	width:min(1280px,calc(100% - 28px));
	z-index:50;
	display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
	padding:.55rem 1rem .55rem 1.6rem;
	background:rgba(5,13,22,.55);
	border:1px solid rgba(238,244,246,.16);
	border-radius:999px;
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
}
header .logo{
	font-family:'Cormorant Garamond',serif;
	letter-spacing:.45em;font-size:.95rem;color:#fff;text-decoration:none;
	display:flex;align-items:center;flex-shrink:0;
}
header .logo-img{
	height:38px;width:auto;display:block;
	filter:brightness(0) invert(1);
}
@media(max-width:720px){header .logo-img{height:30px}}
header nav{display:flex;gap:2.2rem;align-items:center}
header nav ul{display:flex;gap:2.2rem;list-style:none;align-items:center}
header nav a{
	color:#fff;text-decoration:none;font-size:.76rem;letter-spacing:.26em;
	opacity:.7;transition:opacity .4s,color .4s;
}
header nav a:hover,header nav a:focus-visible{opacity:1}
header nav a.nav-cta{
	position:relative;opacity:1;
	padding:.65rem 1.6rem;
	border:1px solid rgba(238,244,246,.28);
	border-radius:999px;
	letter-spacing:.3em;text-indent:.3em;
	transition:border-color .4s,background .4s;
}
header nav a.nav-cta:hover{border-color:var(--gold);background:rgba(201,161,92,.1)}
header nav a.nav-cta::before,
header nav a.nav-cta::after{
	content:"";position:absolute;width:9px;height:9px;
	border:1px solid var(--gold);
	transition:opacity .4s;
}
header nav a.nav-cta::before{top:-4px;left:-4px;border-right:0;border-bottom:0}
header nav a.nav-cta::after{bottom:-4px;right:-4px;border-left:0;border-top:0}
a:focus-visible,button:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
@media(max-width:720px){body > header{padding:.5rem .6rem .5rem 1.2rem}header > nav{display:none}}

#progress{
	position:fixed;right:2.2rem;top:50%;transform:translateY(-50%);z-index:50;
	display:flex;flex-direction:column;gap:14px;
}
#progress button{
	width:5px;height:5px;border-radius:50%;border:none;cursor:none;
	background:rgba(238,244,246,.3);transition:background .4s, transform .4s;
}
#progress button.on{background:var(--gold);transform:scale(1.6)}
@media(max-width:720px){#progress{display:none}}

/* ---------- mobile menu ---------- */
.lang-sw{
	display:flex;align-items:center;gap:.45rem;flex-shrink:0;
	font-size:.7rem;letter-spacing:.18em;
}
.lang-sw span{color:rgba(238,244,246,.3)}
.lang-sw a{color:rgba(238,244,246,.55);text-decoration:none;transition:color .4s}
.lang-sw a:hover{color:#fff}
.lang-sw a.on{color:var(--gold)}
@media(max-width:720px){.lang-sw{font-size:.66rem;gap:.35rem}}

body.lang-en .lead{letter-spacing:.03em;line-height:2}
body.lang-en .villa-row .spec{letter-spacing:.12em}

#menu-btn{
	display:flex;background:none;cursor:pointer;flex-shrink:0;
	width:46px;height:46px;padding:0 12px;
	border:1px solid rgba(238,244,246,.28);border-radius:50%;
	flex-direction:column;justify-content:center;gap:6px;
	transition:border-color .4s;
}
#menu-btn:hover{border-color:var(--gold)}
#menu-btn span{display:block;height:1px;background:#fff;transition:transform .4s,opacity .4s}
#menu-btn.open span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
#menu-btn.open span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

#mobile-menu{
	position:fixed;inset:0;z-index:45;
	background:rgba(5,13,22,.96);
	display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;
	opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;
}
#mobile-menu.open{opacity:1;visibility:visible}
#mobile-menu a{
	color:var(--ink);text-decoration:none;
	font-size:1rem;letter-spacing:.4em;text-indent:.4em;
}

/* ---------- sections ---------- */
main{position:relative;z-index:10}
main section{
	min-height:100vh;
	min-height:100svh;
	display:flex;align-items:center;
	padding:clamp(4rem,9vh,6.5rem) clamp(1.5rem,8vw,9rem);
	position:relative;
}
.inner{max-width:640px;transition:opacity 1.4s cubic-bezier(.22,1,.36,1),transform 1.4s cubic-bezier(.22,1,.36,1)}
.inner--wide{max-width:760px;margin-left:auto;margin-right:auto}
body.anim main section:not(.in) .inner{opacity:0;transform:translateY(60px)}

.jp-eyebrow{
	writing-mode:vertical-rl;
	position:absolute;left:clamp(.8rem,3vw,3.4rem);top:50%;transform:translateY(-50%);
	font-size:.85rem;letter-spacing:.6em;
	color:#e3c98f;
	text-shadow:0 0 14px rgba(5,13,22,.9),0 1px 2px rgba(5,13,22,.8);
	transition:opacity 1.8s .3s;
}
body.anim main section:not(.in) .jp-eyebrow{opacity:0}
@media(max-width:720px){.jp-eyebrow{display:none}}

h1,h2{
	font-family:'Cormorant Garamond',serif;font-weight:300;
	line-height:1.15;
}
main h2::before{
	content:"✦";
	display:block;
	width:fit-content;
	font-size:.8rem;line-height:1;
	color:var(--gold);
	padding-right:64px;margin-bottom:1.6rem;
	background:linear-gradient(var(--gold-dim),var(--gold-dim)) right center/46px 1px no-repeat;
}
h1{font-size:clamp(2.6rem,7.5vw,5.6rem);letter-spacing:.06em}
h2{font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:.05em;margin-bottom:1.8rem}
.jp-line{
	display:block;font-family:'Noto Serif JP',serif;
	font-size:clamp(.95rem,1.6vw,1.15rem);letter-spacing:.42em;
	color:var(--sand);margin-top:1.6rem;font-weight:200;opacity:.85;
}
p.lead,.lead p{
	font-size:clamp(.92rem,1.4vw,1.02rem);line-height:2.4;letter-spacing:.14em;
	color:var(--ink-dim);max-width:36em;
}
p.lead + p.lead,.lead p + p{margin-top:1.6rem}

.cta{
	display:inline-block;margin-top:3rem;
	font-size:.8rem;letter-spacing:.4em;color:var(--ink);text-decoration:none;
	padding-bottom:.7rem;border-bottom:1px solid rgba(238,244,246,.3);
	transition:border-color .5s,letter-spacing .5s;
}
.cta:hover{border-color:var(--gold);letter-spacing:.5em;color:#fff}

/* split layout */
.inner--split{
	max-width:1200px;width:100%;margin-left:auto;margin-right:auto;
	display:grid;grid-template-columns:1fr;gap:2.6rem;align-items:center;
}
@media(min-width:960px){
	.inner--split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4.5rem}
}
.inner--split .villa-row{flex-wrap:wrap;gap:.6rem}
.inner--split .villa-row .spec{white-space:normal;text-align:left}
.split-photo{margin:0;position:relative}
.split-photo img{
	width:100%;height:260px;object-fit:cover;display:block;
	border-radius:2px;
	box-shadow:0 30px 60px rgba(0,0,0,.45);
}
@media(min-width:960px){.split-photo img{height:460px}}
.split-photo::after{
	content:"";position:absolute;inset:14px -14px -14px 14px;
	border:1px solid var(--gold-dim);border-radius:2px;
	pointer-events:none;z-index:-1;
}

/* villas list */
.villas{display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(238,244,246,.14);margin-top:1rem;width:100%}
.villa-row{
	display:flex;justify-content:space-between;align-items:baseline;gap:2rem;
	padding:1.9rem 0;border-bottom:1px solid rgba(238,244,246,.14);
	transition:padding .5s;
}
.villa-row:hover{padding-left:.8rem;border-bottom-color:var(--gold-dim)}
.villa-row:hover .name{color:#fff}
.villa-row .name{transition:color .4s}
.villa-row .name{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:.08em}
.villa-row .spec{font-size:.75rem;letter-spacing:.24em;color:var(--ink-dim);white-space:nowrap}
@media(max-width:640px){
	.villa-row{flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.4rem 0}
	.villa-row .spec{white-space:normal;letter-spacing:.18em}
	.access-info .spec{text-align:left}
}

.access-info{margin-top:2.2rem}
.access-info .villa-row{padding:1.2rem 0}
.name--sm{font-size:clamp(1rem,1.6vw,1.15rem) !important;letter-spacing:.2em;white-space:nowrap}
.access-info .spec{white-space:normal;text-align:right}

/* refa */
.refa-grid{
	display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.6rem;width:100%;
}
@media(max-width:640px){.refa-grid{grid-template-columns:1fr;max-width:320px}}
.refa-item{
	background:#fff;border-radius:2px;overflow:hidden;
	box-shadow:0 22px 44px rgba(0,0,0,.4);
	display:flex;flex-direction:column;
}
.refa-item img{
	width:100%;height:300px;object-fit:contain;background:#fff;padding:1.4rem 1.2rem 0;
}
.refa-item figcaption{
	padding:1rem 1.2rem 1.3rem;text-align:center;
	font-size:.72rem;letter-spacing:.3em;text-indent:.3em;color:#3a4750;
	background:#fff;
}
body.anim main section:not(.in) .refa-grid{opacity:0;transform:translateY(40px)}
.refa-grid{transition:opacity 1.4s .25s cubic-bezier(.22,1,.36,1),transform 1.4s .25s cubic-bezier(.22,1,.36,1)}

/* location grid */
.loc-grid{
	display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.6rem;width:100%;
}
@media(max-width:900px){.loc-grid{grid-template-columns:repeat(2,1fr)}}
.loc-item{position:relative;border-radius:2px;overflow:hidden;box-shadow:0 18px 36px rgba(0,0,0,.4)}
.loc-item img{width:100%;height:170px;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,1,.36,1)}
@media(min-width:960px){.loc-item img{height:210px}}
.loc-item:hover img{transform:scale(1.05)}
.loc-item figcaption{
	position:absolute;inset:auto 0 0 0;
	padding:1.6rem .9rem .7rem;
	font-size:.68rem;letter-spacing:.22em;color:var(--ink);
	background:linear-gradient(transparent,rgba(5,13,22,.85));
}
body.anim main section:not(.in) .loc-grid{opacity:0;transform:translateY(40px)}
.loc-grid{transition:opacity 1.4s .25s cubic-bezier(.22,1,.36,1),transform 1.4s .25s cubic-bezier(.22,1,.36,1)}

/* location table */
.loc-table{
	display:grid;grid-template-columns:1fr;gap:2.4rem;margin-top:3.2rem;width:100%;
}
@media(min-width:900px){.loc-table{grid-template-columns:repeat(3,1fr);gap:3rem}}
.loc-col h3{
	font-family:'Noto Serif JP',serif;font-weight:300;
	font-size:.85rem;letter-spacing:.5em;text-indent:.5em;
	color:var(--gold);text-align:left;
	padding-bottom:.9rem;margin-bottom:.4rem;
	border-bottom:1px solid var(--gold-dim);
}
.loc-col dl{margin:0}
.loc-col dl > div{
	display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
	padding:.85rem 0;border-bottom:1px solid rgba(238,244,246,.1);
}
.loc-col dt{font-size:.82rem;letter-spacing:.08em;color:var(--ink)}
.loc-col dd{margin:0;font-size:.72rem;letter-spacing:.1em;color:var(--ink-dim);white-space:nowrap;text-align:right}
body.anim main section:not(.in) .loc-table{opacity:0;transform:translateY(40px)}
.loc-table{transition:opacity 1.4s .35s cubic-bezier(.22,1,.36,1),transform 1.4s .35s cubic-bezier(.22,1,.36,1)}

/* map */
.map-wrap{
	margin-top:2.4rem;width:100%;
	border-radius:2px;overflow:hidden;
	box-shadow:0 22px 44px rgba(0,0,0,.4);
	filter:saturate(.85) contrast(1.05);
}
.map-wrap iframe{
	display:block;width:100%;height:340px;border:0;
}
@media(min-width:720px){.map-wrap iframe{height:400px}}
body.anim main section:not(.in) .map-wrap{opacity:0;transform:translateY(40px)}
.map-wrap{transition:opacity 1.4s .35s cubic-bezier(.22,1,.36,1),transform 1.4s .35s cubic-bezier(.22,1,.36,1)}

/* reserve */
.inner--full{max-width:1100px;width:100%;margin-left:auto;margin-right:auto}
.reserve-grid{display:grid;grid-template-columns:1fr;gap:3.5rem;width:100%}
@media(min-width:960px){.reserve-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.booking-embed{
	margin-top:2rem;border-radius:2px;overflow:hidden;
	background:#fff;
	box-shadow:0 22px 44px rgba(0,0,0,.4);
}
.booking-embed iframe{display:block;width:100%;height:620px;border:0}
.lead--note{margin-top:1.2rem;font-size:.8rem}
.text-link{color:var(--ink);border-bottom:1px solid var(--gold-dim);text-decoration:none;transition:border-color .4s}
.text-link:hover{border-color:var(--gold)}
.villa-row--link{text-decoration:none;color:inherit;cursor:pointer}

/* contact form (CF7想定) */
.contact-form{margin-top:2rem}
.contact-form label{display:block;font-size:.78rem;letter-spacing:.2em;color:var(--ink-dim);margin-bottom:1.4rem}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form textarea{
	display:block;width:100%;margin-top:.6rem;
	background:rgba(238,244,246,.06);
	border:1px solid rgba(238,244,246,.18);
	border-radius:2px;color:var(--ink);
	font-family:inherit;font-size:.95rem;
	padding:.9rem 1rem;
}
.contact-form input:focus,.contact-form textarea:focus{outline:1px solid var(--gold);outline-offset:0}
.contact-form textarea{min-height:180px;resize:vertical}
.contact-form input[type=submit],.contact-form button[type=submit]{
	margin-top:1rem;padding:1rem 3rem;
	background:transparent;color:var(--ink);
	border:1px solid rgba(238,244,246,.35);border-radius:2px;
	font-family:inherit;font-size:.85rem;letter-spacing:.4em;text-indent:.4em;
	cursor:none;transition:border-color .4s,background .4s;
}
.contact-form input[type=submit]:hover{border-color:var(--gold);background:rgba(201,161,92,.08)}
@media (pointer:coarse){.contact-form input[type=submit]{cursor:pointer}}

/* ---------- GTranslate ---------- */
/* フロートウィジェットをヘッダー下に馴染ませる(位置はプラグイン設定が優先) */
.gtranslate_wrapper{z-index:90}
.lang-slot{flex-shrink:0;display:flex;align-items:center}
.lang-slot .gt_switcher,.lang-slot select{max-width:150px}
.lang-slot select{
	font-family:'Noto Serif JP',serif;font-size:.75rem;letter-spacing:.05em;
	background:transparent;color:#eef4f6;
	border:1px solid rgba(238,244,246,.28);border-radius:999px;
	padding:.5rem .9rem;cursor:pointer;
}
.lang-slot select option{background:#0a1420;color:#eef4f6}
@media(max-width:720px){
	.lang-slot select{max-width:96px;padding:.4rem .6rem;font-size:.7rem}
	.lang-slot .gt_switcher{max-width:110px}
	.lang-slot img{width:16px;height:auto}
}
.gt_float_switcher,.gtranslate_wrapper select{
	font-family:'Noto Serif JP',serif !important;
	background:rgba(5,13,22,.85) !important;
	color:#eef4f6 !important;
	border:1px solid rgba(238,244,246,.25) !important;
	border-radius:999px !important;
}
.gt_float_switcher{box-shadow:0 14px 28px rgba(0,0,0,.45) !important;font-size:.8rem !important}
.gt_float_switcher .gt_options{background:rgba(5,13,22,.95) !important}
.gt_float_switcher img{border-radius:2px}
/* Google翻訳バナー(上部バー)を出さない */
body{top:0 !important}
.skiptranslate iframe{display:none !important}

/* ---------- cookie consent ---------- */
#cookie-banner{
	position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
	z-index:80;
	width:min(680px,calc(100% - 28px));
	background:rgba(5,13,22,.92);
	border:1px solid rgba(238,244,246,.18);
	border-radius:6px;
	backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
	padding:1.2rem 1.4rem;
	display:flex;gap:1.4rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
	box-shadow:0 22px 44px rgba(0,0,0,.5);
}
#cookie-banner[hidden]{display:none}
.cookie-text{font-size:.74rem;line-height:1.9;letter-spacing:.08em;color:var(--ink-dim);margin:0;flex:1 1 320px}
.cookie-text a{color:var(--ink);border-bottom:1px solid var(--gold-dim);text-decoration:none}
.cookie-actions{display:flex;gap:.7rem;flex-shrink:0}
.cookie-actions button{
	font-family:inherit;font-size:.72rem;letter-spacing:.2em;text-indent:.2em;
	padding:.7rem 1.3rem;border-radius:999px;cursor:pointer;
	transition:border-color .4s,background .4s;
}
#cookie-accept{background:var(--gold);border:1px solid var(--gold);color:#0a1420}
#cookie-accept:hover{background:#d8b476;border-color:#d8b476}
#cookie-decline{background:transparent;border:1px solid rgba(238,244,246,.3);color:var(--ink)}
#cookie-decline:hover{border-color:var(--gold)}
@media (pointer:coarse){.cookie-actions button{cursor:pointer}}

.consent-gate{position:relative}
.consent-gate iframe[data-src]{min-height:200px;background:rgba(238,244,246,.03)}
.consent-placeholder{
	position:absolute;inset:0;
	display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;
	background:rgba(10,20,32,.92);
	padding:1.5rem;text-align:center;
}
.consent-placeholder p{font-size:.78rem;line-height:2;letter-spacing:.1em;color:var(--ink-dim);max-width:26em;margin:0}
.consent-placeholder button{
	font-family:inherit;font-size:.74rem;letter-spacing:.25em;text-indent:.25em;
	padding:.85rem 1.8rem;border-radius:999px;cursor:pointer;
	background:transparent;border:1px solid var(--gold);color:var(--ink);
	transition:background .4s;
}
.consent-placeholder button:hover{background:rgba(201,161,92,.12)}

/* ---------- 固定ページ・投稿 ---------- */
.page-section{
	min-height:100vh;min-height:100svh;
	display:block;
	padding:9rem clamp(1.5rem,8vw,9rem) 6rem;
}
@media(max-width:720px){.page-section{padding:7.5rem 1.4rem 4rem}}
.inner--page{max-width:760px;margin:0 auto;opacity:1;transform:none}
.page-title{
	font-family:'Cormorant Garamond','Noto Serif JP',serif;font-weight:300;
	font-size:clamp(1.9rem,4.5vw,3rem);letter-spacing:.05em;line-height:1.3;
	margin-bottom:2.6rem;
}
.page-title::before{
	content:"✦";display:block;width:fit-content;
	font-size:.8rem;line-height:1;color:var(--gold);
	padding-right:64px;margin-bottom:1.6rem;
	background:linear-gradient(var(--gold-dim),var(--gold-dim)) right center/46px 1px no-repeat;
}
.entry-date{font-size:.75rem;letter-spacing:.3em;color:var(--gold);margin-bottom:1rem}
.entry-thumb{margin:0 0 2.4rem}
.entry-thumb img{width:100%;height:auto;border-radius:2px;box-shadow:0 22px 44px rgba(0,0,0,.4)}

.entry{font-size:.95rem;line-height:2.2;letter-spacing:.08em;color:var(--ink)}
.entry p{margin-bottom:1.6em;color:var(--ink-dim)}
.entry h2,.entry h3,.entry h4{
	font-family:'Noto Serif JP',serif;font-weight:400;color:var(--ink);
	margin:2.4em 0 1em;line-height:1.6;
}
.entry h2{font-size:1.3rem;letter-spacing:.12em;padding-bottom:.7rem;border-bottom:1px solid var(--gold-dim)}
.entry h3{font-size:1.1rem;letter-spacing:.1em}
.entry h4{font-size:1rem}
.entry ul,.entry ol{margin:0 0 1.6em 1.4em;color:var(--ink-dim)}
.entry li{margin-bottom:.5em}
.entry a{color:var(--ink);border-bottom:1px solid var(--gold-dim);text-decoration:none}
.entry a:hover{border-color:var(--gold)}
.entry img{max-width:100%;height:auto;border-radius:2px}
.entry blockquote{
	margin:1.8em 0;padding:1rem 1.4rem;
	border-left:2px solid var(--gold-dim);
	color:var(--ink-dim);background:rgba(238,244,246,.04);
}
.entry table{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:.85rem}
.entry th,.entry td{
	padding:.8rem .9rem;text-align:left;
	border:1px solid rgba(238,244,246,.15);color:var(--ink-dim);
}
.entry th{color:var(--ink);background:rgba(238,244,246,.05);font-weight:400;white-space:nowrap}
.entry hr{border:0;border-top:1px solid rgba(238,244,246,.15);margin:2.4em 0}

.pagination-wrap{margin-top:2.6rem}
.pagination-wrap .nav-links{display:flex;gap:1rem;align-items:center}
.pagination-wrap a,.pagination-wrap span.current{
	color:var(--ink);text-decoration:none;font-size:.85rem;letter-spacing:.2em;
	padding:.5rem .9rem;border:1px solid rgba(238,244,246,.2);border-radius:2px;
}
.pagination-wrap span.current{border-color:var(--gold);color:var(--gold)}
.pagination-wrap a:hover{border-color:var(--gold)}

/* footer */
body > footer{
	position:relative;z-index:10;
	padding:5rem clamp(1.5rem,8vw,9rem) 3rem;
	display:flex;flex-direction:column;gap:3rem;
}
footer .big{
	font-family:'Cormorant Garamond',serif;
	font-size:clamp(2.2rem,6vw,4.4rem);font-weight:300;letter-spacing:.1em;
}
footer .meta{
	display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;
	font-size:.72rem;letter-spacing:.24em;color:var(--ink-dim);line-height:2.2;
}
footer a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(238,244,246,.25)}

.scroll-hint{
	position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);
	font-size:.65rem;letter-spacing:.5em;color:var(--ink-dim);
	display:flex;flex-direction:column;align-items:center;gap:.9rem;
}
.scroll-hint::after{
	content:"";width:1px;height:52px;background:linear-gradient(var(--ink-dim),transparent);
	animation:drop 2.4s ease-in-out infinite;
}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

@media (prefers-reduced-motion:reduce){
	.inner{transition:none}
	body.anim main section:not(.in) .inner{opacity:1;transform:none}
	#loader .mark,.scroll-hint::after{animation:none}
	body{cursor:auto}#cursor{display:none}
}

/* ---------- photos ---------- */
main img{max-width:100%}
.photo-wide{margin-top:2.6rem}
.photo-wide img{
	width:100%;max-width:560px;max-height:420px;object-fit:cover;display:block;
	border-radius:2px;
	box-shadow:0 30px 60px rgba(0,0,0,.45);
}
.photo-strip{
	display:flex;gap:1.2rem;overflow-x:auto;
	scroll-snap-type:x mandatory;
	padding:0 0 1.4rem;margin-bottom:1.2rem;
	scrollbar-width:thin;scrollbar-color:rgba(238,244,246,.25) transparent;
}
.photo-strip img{
	flex:0 0 auto;
	width:420px;max-width:68vw;
	height:300px;object-fit:cover;
	scroll-snap-align:start;border-radius:2px;
	box-shadow:0 22px 44px rgba(0,0,0,.4);
}
.photo-grid{
	display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:2.4rem;width:100%;
}
@media(min-width:960px){
	.photo-grid{grid-template-columns:repeat(3,1fr)}
	.photo-grid--2{grid-template-columns:repeat(2,1fr)}
}
.photo-grid img{
	width:100%;height:250px;object-fit:cover;border-radius:2px;
	box-shadow:0 22px 44px rgba(0,0,0,.4);
}
@media(min-width:561px){.photo-grid img{height:270px}}
@media(min-width:960px){.photo-grid img{height:300px}}
@media(max-width:560px){.photo-grid{grid-template-columns:1fr}}
main section .photo-wide,main section .photo-strip,main section .photo-grid{
	transition:opacity 1.4s .25s cubic-bezier(.22,1,.36,1),transform 1.4s .25s cubic-bezier(.22,1,.36,1);
}
body.anim main section:not(.in) .photo-wide,body.anim main section:not(.in) .photo-strip,body.anim main section:not(.in) .photo-grid{
	opacity:0;transform:translateY(40px);
}
@media (prefers-reduced-motion:reduce){
	main section .photo-wide,main section .photo-strip,main section .photo-grid{transition:none;opacity:1;transform:none}
}
