:root{--bg: #080807;--bg-lift: #0e0d0b;--surface: rgba(255,255,255,.025);--border: rgba(255,255,255,.055);--text: #edeae2;--muted: #67605a;--faint: rgba(237,234,226,.36);--accent: #bf2a1e;--accent-glow: rgba(191,42,30,.22);--accent-dim: rgba(191,42,30,.08);--font-d: "Cormorant Garamond", "Shippori Mincho", Georgia, serif;--font-jp: "Shippori Mincho", serif;--font-b: "Noto Sans JP", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-b);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100dvh}body:after{content:"";position:fixed;top:-120px;right:-120px;bottom:-120px;left:-120px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.045;pointer-events:none;z-index:9000;animation:grain .55s steps(1) infinite}@keyframes grain{0%{transform:translate(0)}14%{transform:translate(-2%,-3%)}28%{transform:translate(3%,1%)}42%{transform:translate(-1%,3%)}57%{transform:translate(2%,-2%)}71%{transform:translate(-3%,1%)}85%{transform:translate(1%,3%)}to{transform:translate(-2%,-1%)}}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 900px 700px at 6% 10%,rgba(191,42,30,.035),transparent),radial-gradient(ellipse 700px 900px at 94% 65%,rgba(191,42,30,.025),transparent);pointer-events:none;z-index:0}.container{max-width:1240px;margin:0 auto;padding:0 40px;position:relative;z-index:1}.site-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);background:rgba(8,8,7,.76);transition:background .4s ease}.site-header:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:.9}.site-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--border)}.site-header.scrolled{background:rgba(8,8,7,.96)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:66px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none}.logo{font-family:var(--font-jp);font-size:26px;color:var(--text);line-height:1;transition:color .25s}.brand:hover .logo{color:var(--accent)}.brand-sep{width:1px;height:26px;background:var(--border);flex-shrink:0}.brand-text .site-title{font-family:var(--font-d);font-size:17px;font-weight:400;font-style:italic;letter-spacing:.14em;color:var(--text);line-height:1}.brand-text .jp-name{font-size:9.5px;color:var(--muted);letter-spacing:.3em;margin-top:4px;font-family:var(--font-b);font-weight:300}.main-nav{display:flex;align-items:center}.main-nav a{color:#edeae2b8;padding:6px 16px;font-size:13px;font-weight:400;text-decoration:none;letter-spacing:.1em;text-transform:uppercase;transition:color .2s;font-family:var(--font-b)}.main-nav a:hover{color:var(--text)}.nav-cta{color:var(--accent)!important;border:1px solid rgba(191,42,30,.32)!important;padding:7px 18px!important;margin-left:10px;transition:background .2s,border-color .2s!important}.nav-cta:hover{background:var(--accent-dim)!important;border-color:#bf2a1ea6!important;color:var(--text)!important}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;position:relative;overflow:hidden}.hero-watermark{position:absolute;font-family:var(--font-jp);font-size:clamp(280px,38vw,540px);color:#ffffff05;line-height:1;right:42%;top:50%;transform:translateY(-50%) rotate(-7deg);pointer-events:none;z-index:0;-webkit-user-select:none;user-select:none;letter-spacing:-.05em}.hero-left{display:flex;flex-direction:column;justify-content:center;gap:38px;padding:100px max(calc((100vw - 1240px)/2 + 40px),40px) 100px;padding-right:60px;position:relative;z-index:2}.hero-eyebrow{display:flex;align-items:center;gap:16px;font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:#edeae28c;font-weight:300}.hero-eyebrow-num{font-family:var(--font-d);font-size:13px;color:var(--accent);font-weight:300;font-style:italic}.hero-eyebrow-line{width:40px;height:1px;background:var(--border);flex-shrink:0}.hero-title{font-family:var(--font-d);font-size:clamp(68px,7.8vw,116px);font-weight:300;font-style:italic;line-height:.92;letter-spacing:-.02em}.hero-title .kanji-line{display:block;font-family:var(--font-jp);font-style:normal;font-weight:400;font-size:.3em;color:var(--muted);letter-spacing:.18em;margin-top:22px;line-height:1.8}.hero-sub{font-family:var(--font-d);font-size:20px;line-height:1.75;font-style:italic;font-weight:300;color:#edeae2c7;max-width:440px;letter-spacing:.01em}.hero-tags{display:flex;flex-wrap:wrap;gap:8px}.hero-tags span{font-size:12px;padding:8px 16px;border:1px solid rgba(255,255,255,.14);border-radius:0;color:#edeae2b3;letter-spacing:.14em;text-transform:uppercase;font-weight:300}.hero-actions{display:flex;align-items:center;gap:28px}.cta-primary{display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:#fff;padding:13px 28px;border-radius:0;text-decoration:none;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:400;box-shadow:0 8px 28px var(--accent-glow);transition:transform .24s ease,box-shadow .24s ease,background .2s}.cta-primary:hover{transform:translateY(-2px);box-shadow:0 14px 44px var(--accent-glow);background:#d0311f}.cta-secondary{color:var(--muted);font-size:11px;text-decoration:none;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:10px;transition:color .2s;font-weight:300}.cta-secondary:after{content:"→";transition:transform .22s}.cta-secondary:hover{color:var(--text)}.cta-secondary:hover:after{transform:translate(5px)}.hero-right{position:relative;overflow:hidden}.hero-right:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(90deg,var(--bg) 0%,rgba(8,8,7,.22) 16%,transparent 40%),linear-gradient(180deg,rgba(8,8,7,.38) 0%,transparent 18%,transparent 80%,var(--bg) 100%)}.hero-right:after{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:linear-gradient(to bottom,transparent,var(--accent) 35%,var(--accent) 65%,transparent);opacity:.55;z-index:3}.hero-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:brightness(.7) contrast(1.1) saturate(.8)}.hero-vert{position:absolute;right:20px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-family:var(--font-jp);font-size:11px;color:#edeae22e;letter-spacing:.3em;z-index:4;-webkit-user-select:none;user-select:none;pointer-events:none}.about{padding:120px 0;border-top:1px solid var(--border)}.about-inner{display:grid;grid-template-columns:130px 1fr;gap:80px;align-items:start}.about-label{display:flex;flex-direction:column;align-items:center;gap:20px;padding-top:6px}.about-label-num{font-family:var(--font-d);font-size:12px;color:var(--accent);font-style:italic;font-weight:300;letter-spacing:.08em}.about-label-line{width:1px;height:56px;background:linear-gradient(to bottom,var(--accent),transparent);opacity:.45}.about-label-text{writing-mode:vertical-rl;font-size:9.5px;text-transform:uppercase;letter-spacing:.32em;color:var(--muted);font-weight:300;font-family:var(--font-b)}.about-label-jp{writing-mode:vertical-rl;font-family:var(--font-jp);font-size:13px;color:#edeae224;letter-spacing:.2em}.about-body{position:relative}.about-body h2{font-family:var(--font-d);font-size:clamp(28px,3vw,48px);font-weight:300;font-style:italic;line-height:1.2;margin-bottom:32px;letter-spacing:-.01em}.about-body p{color:#edeae2b8;line-height:1.95;font-size:16px;margin-bottom:20px;font-weight:300;letter-spacing:.01em}.about-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}.about-chips span{padding:8px 16px;border-radius:0;background:transparent;border:1px solid var(--border);font-size:10px;color:var(--faint);letter-spacing:.14em;text-transform:uppercase;font-weight:300}.gallery-header{padding:68px 0 52px;border-top:1px solid var(--border)}.gallery-header-inner{display:flex;justify-content:space-between;align-items:flex-end}.gallery-title{font-family:var(--font-d);font-size:clamp(38px,4.8vw,72px);font-weight:300;line-height:1;font-style:italic}.gallery-title small{display:block;font-family:var(--font-b);font-size:10px;color:var(--muted);letter-spacing:.32em;text-transform:uppercase;margin-bottom:14px;font-weight:300;font-style:normal}.gallery-meta{text-align:right}.gallery-count{font-family:var(--font-d);font-size:13px;color:var(--muted);letter-spacing:.1em;font-style:italic;display:block}.gallery-num{font-size:9px;color:var(--accent);letter-spacing:.22em;text-transform:uppercase;font-family:var(--font-b);font-weight:300;margin-bottom:6px}.gallery{padding-bottom:108px}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:195px;gap:12px;counter-reset:tile}.tile:nth-child(1){grid-column:span 5;grid-row:span 3}.tile:nth-child(2){grid-column:span 4;grid-row:span 2}.tile:nth-child(3){grid-column:span 3;grid-row:span 2}.tile:nth-child(4){grid-column:span 4;grid-row:span 2}.tile:nth-child(5){grid-column:span 8;grid-row:span 2}.tile:nth-child(6){grid-column:span 4;grid-row:span 3}.tile:nth-child(7){grid-column:span 8;grid-row:span 2}.tile{position:relative;border-radius:2px;overflow:hidden;background:var(--surface);border:1px solid var(--border);counter-increment:tile}.tile:before{content:counter(tile,decimal-leading-zero);position:absolute;top:13px;right:13px;z-index:5;font-family:var(--font-d);font-size:11px;font-style:italic;color:#ffffff4d;line-height:1;pointer-events:none}.tile-button{display:block;width:100%;height:100%;border:none;padding:0;background:transparent;cursor:pointer}.tile-button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s ease;filter:brightness(.78) saturate(.82)}.tile-button:hover img{transform:scale(1.05);filter:brightness(.94) saturate(.92)}.tile-caption{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 100%);transform:translateY(5px);opacity:0;transition:opacity .32s ease,transform .32s ease}.tile-button:hover .tile-caption{opacity:1;transform:translateY(0)}.tile-caption span{color:#ffffffd9;font-size:11.5px;letter-spacing:.1em;line-height:1.6;font-weight:300}.reveal{opacity:0;transform:translateY(24px);transition:opacity .95s ease,transform .95s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.contact{padding:112px 0;border-top:1px solid var(--border)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.contact-left h2{font-family:var(--font-d);font-size:clamp(28px,3vw,48px);font-weight:300;font-style:italic;line-height:1.2;margin-bottom:24px}.contact-left p{color:#edeae2b8;line-height:1.95;font-size:16px;font-weight:300;letter-spacing:.01em}.contact-links{display:flex;flex-direction:column;padding-top:8px}.contact-link{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text);transition:padding-left .3s ease}.contact-link:first-child{border-top:1px solid var(--border)}.contact-link:hover{padding-left:10px}.contact-link-icon{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-style:italic;border:1px solid var(--border);color:var(--muted);font-family:var(--font-d)}.contact-link-label{font-size:9.5px;color:var(--muted);letter-spacing:.22em;text-transform:uppercase;margin-bottom:5px;font-weight:300}.contact-link-value{font-size:15.5px;color:var(--text);font-family:var(--font-d);font-style:italic;font-weight:300}.site-footer{border-top:1px solid var(--border);padding:34px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-copy{font-size:10.5px;color:var(--muted);letter-spacing:.12em;font-weight:300}.footer-kanji{font-family:var(--font-jp);font-size:20px;color:#edeae214;line-height:1}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(5,5,4,.98);display:flex;align-items:center;justify-content:center;z-index:80;padding:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox-inner{position:relative;max-width:88vw;max-height:92vh;display:flex;flex-direction:column;align-items:center}.lightbox-inner img{max-width:100%;max-height:80vh;border-radius:0;display:block;box-shadow:0 40px 120px #000000eb}.lightbox-caption{margin-top:20px;font-size:12.5px;color:var(--muted);letter-spacing:.14em;text-align:center;font-family:var(--font-d);font-style:italic}.close-btn{position:absolute;top:-16px;right:-16px;width:40px;height:40px;border-radius:0;background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:2}.close-btn:hover{background:rgba(255,255,255,.1);color:var(--text)}.nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.04);border:1px solid var(--border);color:var(--muted);padding:14px 18px;border-radius:0;font-size:22px;cursor:pointer;transition:background .2s,color .2s;font-family:var(--font-d)}.nav:hover{background:rgba(255,255,255,.09);color:var(--text)}.prev{left:-72px}.next{right:-72px}@media (max-width: 980px){.hero{grid-template-columns:1fr;min-height:auto}.hero-left{padding:72px 40px 52px}.hero-right{height:72vw;max-height:540px}.hero-right:before{background:linear-gradient(180deg,rgba(8,8,7,.6) 0%,transparent 28%,transparent 68%,var(--bg) 100%)}.hero-right:after{opacity:0}.hero-watermark{display:none}.about-inner{grid-template-columns:1fr;gap:40px}.about-label{flex-direction:row;align-items:center}.about-label-text,.about-label-jp{writing-mode:horizontal-tb}.about-label-line{width:40px;height:1px;background:linear-gradient(to right,var(--accent),transparent)}.contact-inner{grid-template-columns:1fr;gap:52px}.grid{grid-template-columns:1fr 1fr;grid-auto-rows:240px}.tile:nth-child(n){grid-column:span 1;grid-row:span 1}.tile:nth-child(1){grid-column:span 2;grid-row:span 2}.tile:nth-child(5){grid-column:span 2;grid-row:span 1}}@media (max-width: 600px){.container{padding:0 22px}.hero-left{padding:60px 22px 40px}.main-nav a:not(.nav-cta){display:none}.hero-title{font-size:clamp(60px,18vw,90px)}.grid{grid-template-columns:1fr;grid-auto-rows:280px}.tile:nth-child(n){grid-column:span 1!important;grid-row:span 1!important}.prev{left:-12px}.next{right:-12px}}
