.project-caption h2 { font-size:clamp(26px,4.3vw,80px); }
.project-caption p { font-size:clamp(13px,1.8vw,32px); }
.project-card[role="button"] { cursor:pointer; }
.project-card:focus-visible { outline:3px solid #ff784c; outline-offset:7px; }
.project-detail { position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; overflow:hidden; color:#213329; perspective:1800px; }
.project-detail::backdrop { background:rgba(245,244,239,.5); backdrop-filter:blur(15px); transition:background 1.2s ease,backdrop-filter 1.2s ease; }
.project-detail.is-closing::backdrop { background:transparent; backdrop-filter:blur(0); }
.project-detail.is-closing .detail-flip { pointer-events:none; }
.detail-flip { position:absolute; inset:4vh 5vw; transform-style:preserve-3d; transform:rotateY(180deg); }
.detail-front,.detail-back { position:absolute; inset:0; border-radius:38px; corner-shape:superellipse(1.35); overflow:hidden; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.detail-front { background:#bac2bc; pointer-events:none; }
.detail-front>img { width:100%; height:100%; object-fit:cover; }
.detail-back { transform:rotateY(180deg); background:#e8e9e2; box-shadow:0 20px 80px #14251b25; }
.detail-back::before { content:""; position:absolute; inset:-70px; background:var(--detail-cover) center/cover; filter:blur(48px); opacity:.45; pointer-events:none; }
.detail-back::after { content:""; position:absolute; inset:0; background:#f5f4eb9c; pointer-events:none; }
.detail-scroll { position:absolute; inset:0; z-index:1; overflow:auto; overscroll-behavior:contain; padding:0 clamp(22px,5vw,80px) 55px; scrollbar-width:thin; }
.detail-bar { position:sticky; top:0; z-index:5; display:flex; justify-content:space-between; align-items:center; padding:22px 0; }
.detail-label,.detail-close,.detail-meta,.detail-press a,.detail-kicker { font:13px/1.4 Helvetica,Arial,sans-serif; }
.detail-logo { display:block; position:relative; width:55px; aspect-ratio:1288/1256; overflow:hidden; }
.detail-logo img { position:absolute; width:272.360248%; max-width:none; height:auto; left:-86.645963%; top:-46.815287%; }
.detail-press small { display:block; font-size:11px; opacity:.65; margin-top:7px; }
.detail-close { border:0; border-radius:30px; padding:12px 20px; background:#213329; color:#fff; cursor:pointer; }
.detail-close:hover { background:#405646; }
.detail-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:6vw; align-items:end; padding:35px 0 48px; }
.detail-kicker { text-transform:uppercase; letter-spacing:.12em; margin:0 0 20px; }
.detail-title { font-family:Hiragino,serif; font-weight:400; font-size:clamp(38px,5.3vw,80px); line-height:1.02; letter-spacing:-.055em; margin:0 0 18px; }
.detail-copy { font:clamp(18px,1.65vw,25px)/1.45 Helvetica,Arial,sans-serif; letter-spacing:-.025em; margin:0; max-width:35em; }
.detail-meta { opacity:.75; margin:0; }
.detail-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.detail-gallery figure { margin:0; min-width:0; }
.detail-gallery img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:26px; corner-shape:superellipse(1.35); }
.detail-gallery figure:first-child { grid-column:1/-1; }
.detail-gallery figure:first-child img { aspect-ratio:16/10; }
.detail-gallery figcaption { font:12px/1.5 Helvetica,Arial,sans-serif; margin:10px 3px 6px; opacity:.75; }
.detail-press { padding:55px 0 5px; }
.detail-press h3 { font:400 clamp(30px,4vw,58px)/1.1 Hiragino,serif; letter-spacing:-.05em; margin:0 0 25px; }
.detail-press-links { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.detail-press a { grid-column:span 3; padding:22px; border:1px solid #21332940; border-radius:20px; color:inherit; text-decoration:none; display:flex; align-items:center; justify-content:space-between; gap:16px; transition:background .4s,transform .5s; }
.detail-press a:nth-child(n+3) { grid-column:span 2; }
.detail-press a:hover { background:#ffffff9c; transform:translateY(-3px); }
.detail-press a strong { font-weight:400; font-size:20px; }
body.project-detail-open .cursor-halo,body.project-detail-open .cursor-dot { visibility:hidden; }
body.project-detail-open,body.project-detail-open * { cursor:auto; }
body.project-detail-open button,body.project-detail-open a { cursor:pointer; }
@media(max-width:650px) {
 .project-caption h2,.mimesi h2 { font-size:clamp(25px,6.7vw,42px); }
 .project-caption p { font-size:clamp(13px,3.5vw,19px); }
 .detail-flip { inset:12px; }
 .detail-front,.detail-back { border-radius:28px; }
 .detail-scroll { padding:0 20px 30px; }
 .detail-bar { padding:16px 0; }
 .detail-intro { display:block; padding:20px 0 30px; }
 .detail-copy { margin-top:25px; font-size:18px; }
 .detail-gallery { gap:15px; }
 .detail-gallery img { border-radius:18px; }
 .detail-gallery figure:first-child img { aspect-ratio:4/5; }
 .detail-press-links { display:flex; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { .detail-press a { transition:none; } }
