
:root{--serif:"Noto Serif JP",游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",serif;--sans:"Noto Sans JP","Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro","Yu Gothic Medium","游ゴシック Medium",YuGothic,"游ゴシック体","メイリオ",sans-serif;--ink:#191919;--gold:#a98b59;--paper:#f0f0f0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:var(--paper)}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}header{position:absolute;z-index:3;top:0;width:100%;padding:28px 6%;display:flex;align-items:center;justify-content:space-between;color:#fff}header .logo{font:25px var(--serif);letter-spacing:.45em}nav{display:flex;gap:30px;font-size:11px;letter-spacing:.2em}.hero{height:95svh;min-height:560px;position:relative;background:#222;color:#fff}.hero img{filter:brightness(.58);object-position:center 60%}.hero-content{position:absolute;left:10%;bottom:17%}.eyebrow{font-size:11px;letter-spacing:.35em;text-transform:uppercase}.hero h1{font:clamp(43px,7vw,100px)/1.15 var(--serif);letter-spacing:.07em;font-weight:400;margin:22px 0}.hero p{font-size:13px;letter-spacing:.22em}.btn{display:inline-block;border:1px solid currentColor;padding:15px 30px;margin-top:25px;font-size:11px;letter-spacing:.2em}section{padding:110px 8%}.intro{text-align:center;max-width:780px;margin:auto}.section-title{font:clamp(32px,4vw,58px) var(--serif);font-weight:400;letter-spacing:.07em;margin:20px 0 30px}.intro p,.statement p{font-size:14px;line-height:2.6;letter-spacing:.1em}.gold{color:var(--gold)}.collection{background:#fff}.section-head{text-align:center;margin-bottom:55px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card-image{aspect-ratio:3/4;overflow:hidden;background:#eee}.card-image img{transition:transform .7s}.card:hover img{transform:scale(1.04)}.card h3{font:25px var(--serif);font-weight:400;margin:22px 0 8px}.card p{font-size:12px;letter-spacing:.13em;color:#777}.film{padding:0;background:#171717;color:#fff}.film-inner{position:relative;height:72vh;min-height:450px}.film-inner img{filter:brightness(.4)}.film-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px}.play{width:72px;height:72px;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:23px;margin:20px}.film small{letter-spacing:.25em;color:#ccc}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:14px}.gallery-grid figure{margin:0;aspect-ratio:3/4;overflow:hidden}.gallery-grid figure:first-child{grid-row:span 2;aspect-ratio:auto}.statement{background:#e1e1e1;text-align:center}.footer{background:#151515;color:#fff;padding:70px 8%;text-align:center}.footer .logo{font:36px var(--serif);letter-spacing:.45em}.footer p{color:#aaa;font-size:11px;letter-spacing:.15em;margin-top:25px}.video-ready video{width:100%;height:100%;object-fit:cover}.film-overlay.has-video{pointer-events:none}.film-overlay.has-video .play{display:none}
@media(max-width:700px){header{padding:22px 5%}header .logo{font-size:20px}nav{gap:12px;font-size:9px}.hero{height:82svh;min-height:520px}.hero-content{left:7%;bottom:14%}section{padding:75px 6%}.cards{grid-template-columns:1fr;gap:45px}.card-image{aspect-ratio:4/4.5}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid figure:first-child{grid-column:span 2;aspect-ratio:4/3}.film-inner{height:60vh}.footer .logo{font-size:28px}}
.hero-brand{font-size:clamp(75px,13vw,190px)!important;letter-spacing:.22em!important;line-height:1.1!important}.hero-content p{font-size:11px;letter-spacing:.3em}.philosophy{max-width:1000px}.philosophy-title{font-size:clamp(36px,5.1vw,72px);line-height:1.2}.philosophy-copy p{margin:0 0 38px;font-size:clamp(13px,1.2vw,16px);line-height:2.35;letter-spacing:.12em}.philosophy-copy p:last-child{margin-bottom:0}@media(max-width:700px){.hero-brand{font-size:clamp(58px,16vw,110px)!important}.philosophy-copy p{font-size:13px}.philosophy-title{font-size:35px}}

/* Official brand mark, using supplied original transparent PNG */
header .logo{display:block;width:90px;height:80px;overflow:hidden}header .logo img{width:100%;height:100%;object-fit:contain;filter:none}
.hero-content{left:50%;bottom:12%;transform:translateX(-50%);width:80%;text-align:center;display:flex;align-items:center;flex-direction:column}
.hero-brand{width:clamp(210px,34vw,460px);height:auto;margin:0!important;font-size:initial!important;letter-spacing:normal!important}
.hero-brand img{width:100%;height:auto;object-fit:contain;filter:none}
.hero-content p{margin:8px 0 0;font-size:10px;letter-spacing:.36em}
.footer .logo{width:160px;margin:auto}.footer .logo img{height:auto;object-fit:contain;filter:none}
.moonlight{background:#f0f0f0}.shop-link{text-align:center;margin-top:42px;font-size:11px;letter-spacing:.25em;color:#777}
.links-section{background:#e1e1e1;padding:55px 8%}.link-buttons{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.link-button{min-width:220px;background:#202020;border:1px solid #555;outline:1px solid #202020;outline-offset:3px;color:white;padding:17px 24px;font:15px var(--serif);letter-spacing:.16em;text-align:center}.link-button small{display:block;font:9px var(--sans);letter-spacing:.16em;margin-top:6px;color:#aaa}
@media(max-width:700px){header .logo{width:62px;height:60px}.hero-brand{width:clamp(210px,68vw,330px)}.hero-content{bottom:14%}}

/* Official logo visibility fixes: preserve the supplied artwork and use a white variant on dark photographs. */
header .logo{width:112px;height:auto;overflow:visible;flex-shrink:0}
header .logo img{width:100%;height:auto;object-fit:contain;filter:none}
.hero-content{left:8%;bottom:12%}
.hero-brand{width:clamp(300px,42vw,520px);max-width:85vw;height:auto;margin:0!important}
.hero-brand img{display:block;width:100%;height:auto;filter:none;object-fit:contain}
.footer .logo{width:230px}.footer .logo img{filter:none}
@media(max-width:700px){header .logo{width:95px;height:auto}.hero-brand{width:83vw}.hero-content{left:6%;bottom:15%}.footer .logo{width:175px}}

.item-shop{background:#fff}.item-sub{font:italic 15px var(--serif);color:#777;letter-spacing:.1em}.item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.item-grid a{display:block;aspect-ratio:3/4;overflow:hidden;background:#e8e8e8}.item-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.item-grid a:hover img{transform:scale(1.05)}.item-cta{text-align:center;margin-top:52px}.view-items{display:inline-flex;align-items:center;justify-content:center;gap:35px;background:#222;color:#fff;border:1px solid #222;padding:19px 36px;font-size:11px;letter-spacing:.26em;min-width:280px}.view-items:hover{background:#444}.item-cta p{font-size:9px;letter-spacing:.3em;color:#888;margin-top:18px}@media(max-width:700px){.item-grid{grid-template-columns:repeat(2,1fr);gap:10px}.item-cta{margin-top:35px}}
.new-feature{max-width:1160px;margin:0 auto 18px;aspect-ratio:1.9;overflow:hidden}.new-feature img{width:100%;height:100%;object-fit:cover;object-position:center 43%}.new-photo-grid{max-width:1160px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.new-photo-grid img{width:100%;aspect-ratio:3/4;object-fit:cover}@media(max-width:700px){.new-feature{aspect-ratio:1.15}.new-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}}
.hero>img{object-position:center 45%;filter:brightness(.72)}.hero-content{left:50%;transform:translateX(-50%);bottom:10%;width:90%}.hero-brand{width:clamp(230px,31vw,410px)}@media(max-width:700px){.hero>img{object-position:57% center}.hero-content{bottom:13%}.hero-brand{width:70vw}}
/* Smartphone hero: reveal the complete horizontal jewelry photograph */
@media (max-width:700px){
 .hero{height:auto!important;min-height:0!important;background:#ededed!important;display:flex;flex-direction:column;}
 .hero>img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center center!important;filter:brightness(.92)!important;}
 .hero-content{position:relative!important;left:auto!important;bottom:auto!important;transform:none!important;width:100%!important;padding:28px 16px 34px!important;background:#ededed!important;color:#252525!important;box-sizing:border-box!important;}
 .hero-brand{width:min(54vw,230px)!important;}
 .hero-content p{color:#454545!important;}
 .hero-content .btn{border-color:#333!important;color:#222!important;}
 header{position:relative!important;background:#ededed!important;color:#222!important;}
 header nav a{color:#222!important;}
 header .logo img{filter:brightness(0)!important;}
}

/* Luxury gray editorial art direction — page backgrounds only; photographs untouched */
:root{--paper:#dfe1e3;--gold:#777879;--ink:#24272a}
body{background:#dfe1e3}
.collection,.item-shop{background:#e7e8e9}
.moonlight{background:#d5d7d9}
.statement,.links-section{background:#cdd0d2}
.card-image,.item-grid a{background:#c9cbcd}
.section-title{color:#25272a;letter-spacing:.11em}
.section-head .eyebrow,.intro .eyebrow,.statement .eyebrow{color:#686c70;letter-spacing:.36em}
section:not(.hero):not(.film){border-top:1px solid rgba(255,255,255,.32)}
.full-moon-banner{padding:92px 20px 84px;background:linear-gradient(145deg,#c5c8ca,#e0e2e3 48%,#bfc2c5);text-align:center;color:#292d30;border-top:1px solid #eee;border-bottom:1px solid #aeb1b3}
.full-moon-banner .small{font:10px/2 var(--sans);letter-spacing:.44em;color:#5f6367}
.full-moon-banner h2{font:normal clamp(42px,7vw,90px)/1.18 var(--serif);letter-spacing:.19em;margin:21px 0 8px}
.full-moon-banner .subtitle{font:normal clamp(17px,2.2vw,28px) var(--serif);letter-spacing:.38em;margin:0 0 28px}
.full-moon-banner .line{height:1px;width:66px;background:#888d91;margin:0 auto 25px}
.full-moon-banner a{display:inline-block;margin-top:20px;padding:16px 29px;border:1px solid #555b5f;font:10px var(--sans);letter-spacing:.26em}
@media(max-width:700px){.full-moon-banner{padding:72px 16px 68px}.full-moon-banner h2{font-size:clamp(33px,9vw,54px);letter-spacing:.1em}.full-moon-banner .subtitle{font-size:17px;letter-spacing:.28em}}

/* Full Moon is the new collection, not a separate third collection. */
.hero-content{bottom:5%;gap:0}
.hero-brand{width:clamp(180px,24vw,300px)}
.hero-moon-copy{margin-top:20px;text-align:center;color:#fff;text-shadow:0 1px 16px rgba(0,0,0,.24)}
.moon-kicker{display:block;font-size:10px;letter-spacing:.43em}
.hero-moon-copy h2{font:normal clamp(36px,6.2vw,84px)/1.1 var(--serif);letter-spacing:.16em;margin:13px 0 5px}
.moon-subtitle{display:block;font:normal clamp(16px,2vw,27px) var(--serif);letter-spacing:.36em}
.moon-jp{display:block;margin-top:18px;font-size:11px;letter-spacing:.18em}
.hero-content .btn{margin-top:23px;min-width:220px}
@media(max-width:700px){
 .hero{background:#dfe1e3!important}
 .hero>img{filter:none!important}
 .hero-content{background:#dfe1e3!important;color:#26292b!important;padding:22px 16px 38px!important}
 .hero-brand{width:min(49vw,190px)!important}
 .hero-moon-copy{margin-top:22px;color:#292c30;text-shadow:none}
 .hero-moon-copy h2{font-size:clamp(32px,10vw,50px);letter-spacing:.12em}
 .moon-kicker{font-size:9px;color:#555b60}
 .moon-subtitle{font-size:17px}
 .moon-jp{font-size:10px;letter-spacing:.09em}
 .hero-content .btn{margin-top:25px}
}

/* Unified hero overlay, including mobile. */
.hero{height:auto;min-height:0;isolation:isolate;background:#cdd0d2}
.hero>img{width:100%;height:auto;object-fit:contain;filter:none}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.16),transparent 70%);z-index:0;pointer-events:none}
.hero-content{position:absolute!important;inset:0!important;transform:none!important;width:100%!important;padding:6% 5%!important;background:transparent!important;color:#fff!important;justify-content:center;z-index:1}
.hero-brand{width:clamp(130px,19vw,280px);max-width:44%;}
.hero-brand img{filter:brightness(0) invert(1)!important}
.hero-content p{color:#fff!important;text-shadow:0 1px 8px #555}
.hero-moon-copy{color:#fff;text-shadow:0 1px 14px #555;margin-top:20px}
.hero-moon-copy h2{font-size:clamp(30px,5vw,76px)}
.hero-content .btn{color:#fff!important;border-color:rgba(255,255,255,.8)!important;background:rgba(30,30,30,.12);}
header{position:relative!important;background:#dfe1e3;color:#24272a;padding:15px 6%}
header .logo{width:84px}header .logo img{filter:brightness(0)!important}header nav a{color:#24272a!important}
.film .section-title{color:#fff}
@media(max-width:700px){
 .hero{display:block!important;background:#dfe1e3!important}
 .hero>img{height:auto!important;filter:none!important}
 .hero-content{padding:12px 10px!important}
 .hero-brand{width:25vw!important;max-width:120px}
 .hero-content .brand-tagline{font-size:7px;letter-spacing:.2em;margin-top:4px}
 .hero-moon-copy{margin-top:12px;color:white;text-shadow:0 1px 10px #555}
 .moon-kicker{color:#fff;font-size:7px;letter-spacing:.26em}
 .hero-moon-copy h2{font-size:clamp(24px,7.5vw,46px);margin:7px 0 3px}
 .moon-subtitle{font-size:11px;letter-spacing:.28em}
 .moon-jp{display:none}
 .hero-content .btn{font-size:7px;padding:9px 12px;min-width:0;margin-top:13px}
 header{padding:12px 5%!important}header .logo{width:64px}
 .section-title{overflow-wrap:anywhere;font-size:clamp(27px,7vw,42px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-image img,.item-grid img{transition:none}}
.hero-content .hero-moon-copy{margin-top:16px}.hero-content .moon-subtitle{display:block!important;font:normal clamp(16px,2vw,27px)/1.4 var(--serif);letter-spacing:.18em;text-transform:none}@media(max-width:700px){.hero-content .hero-moon-copy{margin-top:10px}.hero-content .moon-subtitle{font-size:14px;letter-spacing:.12em}}
.hero.slideshow{display:block!important;position:relative;overflow:hidden}
.hero-slides{position:relative;width:100%;aspect-ratio:1366/768}
.hero-slides .slide{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:none;object-position:center}
.hero-slides .slide-b{opacity:0;animation:lure-fade 20s infinite ease-in-out}
@keyframes lure-fade{0%,35%{opacity:0}50%,85%{opacity:1}100%{opacity:0}}
.slideshow.is-paused .slide-b{animation-play-state:paused}
.slide-pause{position:absolute;right:18px;bottom:16px;z-index:3;color:white;background:rgba(30,30,30,.3);border:1px solid rgba(255,255,255,.6);padding:8px 12px;font-size:10px;cursor:pointer}
@media(max-width:700px){.slide-pause{right:8px;bottom:8px;padding:5px 7px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero-slides .slide-b{animation:none}.slide-pause{display:none}}
.new-collection .new-collection-label{text-transform:none}.full-moon-photos{max-width:1160px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.full-moon-photos img{display:block;width:100%;height:auto;aspect-ratio:1366/768;object-fit:contain}@media(max-width:700px){.full-moon-photos{grid-template-columns:1fr;gap:12px}}.full-moon-copy{max-width:700px;margin:0 auto 48px;color:#44494d}.full-moon-copy h3{font:normal 19px/1.6 var(--serif);letter-spacing:.1em;margin:0 0 24px}.full-moon-copy p{font-size:13px;font-weight:400;line-height:2.5;letter-spacing:.08em;margin:0 0 22px}.full-moon-copy p:last-child{margin-bottom:0}@media(max-width:700px){.full-moon-copy{margin-bottom:34px}.full-moon-copy h3{font-size:17px}.full-moon-copy p{font-size:12px;line-height:2.4;letter-spacing:.04em}}.full-moon-copy .full-moon-tagline{margin-bottom:14px}.exclusive-section{padding:72px 8%;background:#cdd0d2}.exclusive-banner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;padding:64px 24px;text-align:center;color:#ece8df;background:linear-gradient(125deg,#2b2e30,#181b1e 65%,#25292c);border:1px solid #66615a;outline:1px solid rgba(235,224,202,.24);outline-offset:-12px}.exclusive-kicker{font-size:9px;letter-spacing:.4em;color:#beb6a6}.exclusive-rule{display:block;width:36px;height:1px;background:#b8ab91;margin:27px auto}.exclusive-banner h2{font:normal clamp(28px,4vw,54px)/1.3 var(--serif);letter-spacing:.045em;margin:0 0 22px}.exclusive-banner p{font-size:12px;letter-spacing:.18em;color:#ccc9c2;line-height:2;margin:0}.exclusive-cta{display:inline-flex;gap:35px;border-bottom:1px solid #9f9687;padding:0 0 10px;margin-top:38px;font-size:9px;letter-spacing:.25em}.exclusive-banner:hover .exclusive-cta{color:#fff;border-color:#fff}.exclusive-banner:focus-visible{outline:2px solid #fff;outline-offset:-8px}@media(max-width:700px){.exclusive-section{padding:46px 6%}.exclusive-banner{min-height:300px;padding:52px 20px}.exclusive-banner h2{font-size:clamp(25px,7vw,36px)}.exclusive-banner p{font-size:11px}}
.full-moon-copy p{line-height:1.9;margin-bottom:12px}.full-moon-copy .full-moon-tagline{margin-bottom:12px}@media(max-width:700px){.full-moon-copy p{line-height:1.9;margin-bottom:12px}}.social-links{max-width:580px;margin:0 auto 55px}.social-label{font-size:9px;letter-spacing:.32em;color:#aaa}.social-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.social-link{display:block;border:1px solid #606060;padding:17px 20px;font:normal 17px var(--serif);letter-spacing:.09em;color:#eee}.social-link small{display:block;font:9px var(--sans);color:#aaa;letter-spacing:.12em;margin-top:8px}@media(max-width:700px){.social-row{gap:12px}.social-link{padding:16px 10px;font-size:15px}}.social-links{margin:0 auto 35px}.social-row{display:flex;justify-content:center;align-items:center;gap:26px;margin:0}.social-icon{display:block;width:34px;height:34px;color:#dedede}.social-icon svg{display:block;width:100%;height:100%}header .header-shop{border-bottom:1px solid currentColor;padding-bottom:4px}@media(max-width:700px){header nav{gap:10px;font-size:8px}}

/* ===== Full moon photo popup (2026-10-28) ===== */
.full-moon-photos .photo-item{margin:0}
.full-moon-photos .photo-trigger{display:block;width:100%;margin:0;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
.full-moon-photos .photo-trigger img{transition:transform .6s ease,opacity .3s}
.full-moon-photos .photo-trigger:hover img{transform:scale(1.02);opacity:.92}
.full-moon-photos .photo-trigger:focus-visible{outline:1px solid #24272a;outline-offset:4px}
.photo-modal{width:min(880px,92vw);max-width:none;max-height:90vh;max-height:90svh;margin:auto;padding:0;border:0;background:#e7e8e9;color:#24272a;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.photo-modal::backdrop{background:rgba(12,13,15,.84)}
.photo-modal[open]{animation:photoModalIn .4s ease}
.photo-modal[open]::backdrop{animation:photoModalFade .4s ease}
@keyframes photoModalIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes photoModalFade{from{opacity:0}to{opacity:1}}
.photo-modal-inner{position:relative;max-height:90vh;max-height:90svh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.photo-modal-figure{margin:0;background:#dfe1e3}
.photo-modal-figure img{display:block;width:100%;height:auto;max-height:62vh;object-fit:contain}
.photo-modal-body{padding:34px 48px 44px;text-align:center}
.photo-modal-title{margin:0 0 22px;font:400 22px/1.5 var(--serif);letter-spacing:.06em}
.photo-modal-text p{margin:0 0 18px;font-size:13px;line-height:2.2;letter-spacing:.08em;color:#44494d}
.photo-modal-text p:last-child{margin-bottom:0}
.photo-modal-close{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;margin:0;padding:0;border:0;border-radius:50%;background:rgba(231,232,233,.9);cursor:pointer}
.photo-modal-close span,.photo-modal-close span::before{position:absolute;top:50%;left:50%;width:18px;height:1.5px;background:#24272a;transform:translate(-50%,-50%) rotate(45deg)}
.photo-modal-close span::before{content:"";transform:translate(-50%,-50%) rotate(90deg)}
.photo-modal-close:hover{background:#fff}
.photo-modal-close:focus-visible{outline:1px solid #24272a;outline-offset:2px}
html.modal-open{overflow:hidden}
@media(max-width:767px){
 .photo-modal{width:94vw;max-height:88vh;max-height:88svh}
 .photo-modal-inner{max-height:88vh;max-height:88svh}
 .photo-modal-figure img{max-height:none}
 .photo-modal-body{padding:26px 22px 32px}
 .photo-modal-title{font-size:18px;margin-bottom:16px}
 .photo-modal-text p{font-size:12px;line-height:2.1;letter-spacing:.04em}
 .photo-modal-close{top:8px;right:8px;width:36px;height:36px}
}
@media(prefers-reduced-motion:reduce){.photo-modal[open],.photo-modal[open]::backdrop{animation:none}.full-moon-photos .photo-trigger img{transition:none}}

/* ===== Photo popup: dark theme + tap hint mark (2026-10-28) ===== */
.photo-modal{background:#151515;color:#fff}
.photo-modal-figure{background:#0e0e0e}
.photo-modal-title{color:#fff}
.photo-modal-text p{color:#cfcfcf}
.photo-modal-close{background:rgba(21,21,21,.7);box-shadow:0 0 0 1px rgba(255,255,255,.35) inset}
.photo-modal-close span,.photo-modal-close span::before{background:#fff}
.photo-modal-close:hover{background:rgba(21,21,21,.95)}
.photo-modal-close:focus-visible{outline-color:#fff}
.photo-modal-inner{scrollbar-color:#555 #151515}
/* hint mark: thin circle with "+" at the photo's lower right */
.full-moon-photos .photo-trigger{position:relative}
.full-moon-photos .photo-trigger::before,.full-moon-photos .photo-trigger::after{content:"";position:absolute;right:16px;bottom:16px;pointer-events:none;transition:opacity .3s,transform .3s}
.full-moon-photos .photo-trigger::before{width:30px;height:30px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(20,22,24,.18);opacity:.75}
.full-moon-photos .photo-trigger::after{width:30px;height:30px;opacity:.85;background:
 linear-gradient(#fff,#fff) center/11px 1px no-repeat,
 linear-gradient(#fff,#fff) center/1px 11px no-repeat}
.full-moon-photos .photo-trigger:hover::before,.full-moon-photos .photo-trigger:focus-visible::before{opacity:1;background:rgba(20,22,24,.35);transform:scale(1.08)}
.full-moon-photos .photo-trigger:hover::after,.full-moon-photos .photo-trigger:focus-visible::after{opacity:1;transform:scale(1.08)}
@media(max-width:767px){
 .full-moon-photos .photo-trigger::before,.full-moon-photos .photo-trigger::after{right:10px;bottom:10px;width:26px;height:26px}
 .full-moon-photos .photo-trigger::after{background-size:9px 1px,1px 9px}
}

/* ===== Moonlight carousel (smartphone only, 2026-10-28) ===== */
.moon-carousel{position:relative}
.moon-carousel .carousel-arrow,.moon-carousel .carousel-pager{display:none}
@media(max-width:767px){
 .moon-carousel .cards{display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
 .moon-carousel .cards::-webkit-scrollbar{display:none}
 .moon-carousel .card{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always}
 .moon-carousel .carousel-arrow{display:block;position:absolute;top:50%;z-index:2;width:36px;height:36px;margin-top:-34px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(20,22,24,.18);cursor:pointer;transition:opacity .3s,background-color .3s}
 .moon-carousel .carousel-prev{left:10px}
 .moon-carousel .carousel-next{right:10px}
 .moon-carousel .carousel-arrow span{position:absolute;top:50%;left:50%;width:8px;height:8px;border-top:1px solid #fff;border-right:1px solid #fff}
 .moon-carousel .carousel-prev span{transform:translate(-30%,-50%) rotate(-135deg)}
 .moon-carousel .carousel-next span{transform:translate(-70%,-50%) rotate(45deg)}
 .moon-carousel .carousel-arrow:active{background:rgba(20,22,24,.35)}
 .moon-carousel .carousel-arrow[disabled]{opacity:0;pointer-events:none}
 .moon-carousel .carousel-arrow:focus-visible{outline:1px solid #24272a;outline-offset:2px}
 .moon-carousel .carousel-pager{display:flex;justify-content:center;gap:12px;margin-top:20px}
 .moon-carousel .carousel-pager button{width:6px;height:6px;margin:0;padding:0;border:0;border-radius:50%;background:#b3b7ba;cursor:pointer;transition:background-color .3s,transform .3s}
 .moon-carousel .carousel-pager button[aria-current="true"]{background:#24272a;transform:scale(1.15)}
 .moon-carousel .carousel-pager button:focus-visible{outline:1px solid #24272a;outline-offset:3px}
}
@media(max-width:767px) and (prefers-reduced-motion:reduce){.moon-carousel .cards{scroll-behavior:auto}}

/* ===== Scroll reveal: simple fade-in (2026-10-29) =====
   html.reveal-ready is set by the inline script in <head>; main.js adds .is-visible when an element enters the viewport,
   then .reveal-done once the fade has finished (restores each element's own transitions). */
html.reveal-ready :where(.hero-content>*,#story .eyebrow,#story .section-title,.philosophy-copy p,.section-head .eyebrow,.section-head .section-title,.section-head .item-sub,.full-moon-copy p,.item-cta,.statement>*,.link-button,.exclusive-banner,.site-footer>*,.full-moon-photos .photo-item,.moon-carousel,.item-grid>a,.film-inner):not(.reveal-done){
 opacity:0;transition:opacity .9s ease;transition-delay:var(--reveal-delay,0s)}
html.reveal-ready .is-visible:not(.reveal-done){opacity:1}

/* ===== Heading lettering SVGs (2026-10-29) =====
   Every heading SVG is drawn at the same letter size: height = its viewBox height (--moji-h) x one shared unit (--moji-u).
   The unit shrinks with the screen so the widest heading (Exclusive Collection, 1166 units) always fits — all headings shrink together. */
:root{--moji-u:min(.44px,calc((100vw - 110px) / 1166))}
img.moji{display:block;width:auto!important;height:calc(var(--moji-h) * var(--moji-u))!important;max-width:100%;margin:0 auto;object-fit:contain!important;filter:none!important}
h2:has(>img.moji){line-height:0;font-size:0;letter-spacing:0}
.section-title:has(>img.moji){margin:22px 0 34px}
.exclusive-banner h2:has(>img.moji){margin:0 0 24px}
.film-overlay h2:has(>img.moji){margin:18px 0 10px}
@media(max-width:767px){.section-title:has(>img.moji){margin:16px 0 26px}.exclusive-banner h2:has(>img.moji){margin-bottom:18px}}

/* ===== Smartphone hero: about twice as tall, photos cropped to fill (2026-10-29) ===== */
@media(max-width:767px){
 .hero-slides{aspect-ratio:auto;height:min(115vw,560px)}
 .hero-slides .slide{object-fit:cover;object-position:50% 50%}
 .hero-slides .slide-b{object-position:38% 50%}
}

/* ===== Smartphone-only line breaks (2026-10-29): <br class="br-sp"> breaks only at <=767px, tuned for 375px width ===== */
.br-sp{display:none}
@media(max-width:767px){.br-sp{display:inline}}

/* ===== Smartphone: Full moon / Moonlight copy slightly larger (2026-10-29) =====
   12px -> 13px; the text box is widened a little (side margins reduced) so the line breaks stay the same at 375px.
   On narrower phones the size shrinks with the screen so the longest line (26 chars) never wraps: the br-sp breaks stay the only breaks. */
@media(max-width:767px){
 .full-moon-copy{margin-left:-14px;margin-right:-14px}
 .full-moon-copy p{font-size:min(13px,calc((100vw - 24px) / 26.6));letter-spacing:.02em;line-height:2}
 .full-moon-copy .full-moon-tagline{font-size:13px;letter-spacing:.06em}
}

/* Moonlight carousel endless loop: the edge clones only exist for the smartphone carousel (2026-10-29) */
.moon-carousel .card.is-clone{display:none}
@media(max-width:767px){.moon-carousel .card.is-clone{display:block}}

/* ===== OUR STORY copy: same text style as the current site's first section (.bg-lead on lure-jewelry.jp) (2026-10-29) ===== */
#story .philosophy-copy p{margin:0 0 1.5rem;font-family:"Noto Serif JP",serif;font-size:16px;font-weight:500;line-height:1.85;letter-spacing:1.2px;color:#555050}
#story .philosophy-copy p:last-child{margin-bottom:0}
#story.philosophy{padding-top:88px;padding-bottom:88px}
@media(max-width:767px){
 #story .philosophy-copy p{font-size:15px}
 #story.philosophy{padding-top:58px;padding-bottom:58px}
}
