:root{--color-primary:#3d3836;--color-secondary:#6e8c6c;--color-bg:#fafaf5;--color-accent-deep:#5a7458;--color-accent-soft:#9bb89a;--color-bg-alt:#eff0e8;--color-text-light:#6f6863;--color-white:#fff;--color-line:#3d383624;--font-serif:"Playfair Display", "Noto Serif JP", serif;--font-sans:"Outfit", "Noto Serif JP", sans-serif;--transition:all .4s cubic-bezier(.25, .46, .45, .94);--ease-out:cubic-bezier(.22, 1, .36, 1);--header-h:92px;--section-pad:clamp(5rem, 10vw, 9rem);--scroll-y:0;--scroll-progress:0}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-primary);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.2}a{color:inherit;transition:var(--transition);text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--color-secondary);color:var(--color-white)}:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px;border-radius:4px}.container{max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem,4vw,2rem)}[data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:inherit;transform:translateY(28px)}[data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.scroll-progress{background:linear-gradient(90deg, var(--color-secondary), #4f6b4e);width:100%;height:3px;transform:scaleX(var(--scroll-progress));transform-origin:0;z-index:200;pointer-events:none;position:fixed;top:0;left:0}.header{z-index:100;width:100%;transition:background-color .5s var(--ease-out), padding .5s var(--ease-out), border-color .5s var(--ease-out), box-shadow .5s var(--ease-out);background-color:#fafaf500;border-bottom:1px solid #0000;padding:1rem 0;position:fixed;top:0;left:0}.header.is-scrolled{-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--color-line);background-color:#fafaf5d9;padding:.5rem 0;box-shadow:0 10px 30px #3d38360f}.header-container{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.logo{flex-shrink:0;display:block}.logo img{width:auto;height:66px;transition:height .5s var(--ease-out), transform .5s var(--ease-out)}.header.is-scrolled .logo img{height:50px}.logo:hover img{transform:translateY(-2px)rotate(-2deg)}.nav-links{align-items:center;gap:clamp(1.5rem,3vw,2.75rem);list-style:none;display:flex}.nav-links>li>a:not(.instagram-link){letter-spacing:.08em;height:1.6em;font-size:.9rem;font-weight:400;display:block;position:relative;overflow:hidden}.nav-label,.nav-en{transition:transform .45s var(--ease-out);line-height:1.6em;display:block}.nav-en{color:var(--color-accent-deep);text-transform:uppercase;letter-spacing:.16em}.nav-links a:hover .nav-label,.nav-links a:hover .nav-en,.nav-links a:focus-visible .nav-label,.nav-links a:focus-visible .nav-en{transform:translateY(-100%)}.instagram-link{color:var(--color-primary);align-items:center;display:flex}.instagram-link:hover{color:var(--color-accent-deep);transform:translateY(-2px)scale(1.08)}.menu-toggle{border:1px solid var(--color-line);cursor:pointer;width:44px;height:44px;transition:var(--transition);background:#ffffff80;border-radius:50%;display:none;position:relative}.menu-toggle span{background:var(--color-primary);width:18px;height:1.5px;transition:transform .45s var(--ease-out), opacity .3s ease;border-radius:2px;margin-left:-9px;position:absolute;left:50%}.menu-toggle span:first-child{top:18px}.menu-toggle span:nth-child(2){top:24px}.menu-toggle.is-open{background:var(--color-primary);border-color:var(--color-primary)}.menu-toggle.is-open span{background:var(--color-bg)}.menu-toggle.is-open span:first-child{transform:translateY(3px)rotate(45deg)}.menu-toggle.is-open span:nth-child(2){transform:translateY(-3px)rotate(-45deg)}.mobile-menu{z-index:90;background:var(--color-bg-alt);clip-path:circle(0% at calc(100% - 44px) 44px);transition:clip-path .75s var(--ease-out), visibility .75s;visibility:hidden;flex-direction:column;justify-content:center;padding:6rem clamp(1.5rem,8vw,4rem) 3rem;display:flex;position:fixed;inset:0;overflow:hidden}.mobile-menu.is-open{clip-path:circle(150% at calc(100% - 44px) 44px);visibility:visible}.mobile-menu ul{list-style:none}.mobile-menu li{border-bottom:1px solid var(--color-line);opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(20px)}.mobile-menu.is-open li{opacity:1;transform:none}.mobile-menu a{flex-direction:column;gap:.15rem;padding:1.15rem 0;display:flex}.mobile-menu-en{font-family:var(--font-serif);color:var(--color-primary);font-size:1.6rem}.mobile-menu-label{letter-spacing:.14em;color:var(--color-text-light);font-size:.8rem}.mobile-menu-mark{opacity:.16;pointer-events:none;width:240px;position:absolute;bottom:-50px;right:-60px}.hero{min-height:100svh;padding-top:var(--header-h);align-items:center;padding-bottom:4rem;display:flex;position:relative;overflow:hidden}.hero .container{align-items:center;gap:clamp(2rem,5vw,4rem);width:100%;display:flex}.hero-blob{filter:blur(70px);opacity:.5;pointer-events:none;border-radius:50%;position:absolute}.hero-blob-1{background:radial-gradient(circle,#6e8c6c57,#0000 70%);width:42vw;max-width:520px;height:42vw;max-height:520px;animation:16s ease-in-out infinite float;top:-12%;left:-10%}.hero-blob-2{background:radial-gradient(circle,#eff0e8f2,#0000 70%);width:34vw;max-width:440px;height:34vw;max-height:440px;animation:20s ease-in-out infinite reverse float;bottom:-14%;right:6%}.hero-content{z-index:1;flex:1.12;position:relative}.hero-eyebrow{border:1px solid var(--color-line);letter-spacing:.1em;color:var(--color-text-light);opacity:0;animation:fadeUp .9s var(--ease-out) .1s forwards;background:#ffffff8c;border-radius:50px;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.4rem 1rem .4rem .4rem;font-size:.75rem;display:inline-flex}.hero-eyebrow img{object-fit:contain;width:26px;height:26px}.hero-title{color:var(--color-primary);margin-bottom:1.5rem;font-size:clamp(2rem,3.9vw,3.3rem);line-height:1.32}.hero-title .line{margin-bottom:-.14em;padding-bottom:.14em;display:block;overflow:hidden}.hero-title .line>span{animation:lineUp 1.2s var(--ease-out) forwards;display:block;transform:translateY(115%)}.hero-title .line:first-child>span{animation-delay:.2s}.hero-title .line:nth-child(2)>span{animation-delay:.32s}.hero-title .line:nth-child(3)>span{animation-delay:.44s}.hero-subtitle{color:var(--color-text-light);opacity:0;max-width:480px;animation:fadeUp 1s var(--ease-out) .65s forwards;margin-bottom:2.5rem;font-size:clamp(1rem,1.6vw,1.2rem)}.hero-btns{opacity:0;animation:fadeUp 1s var(--ease-out) .8s forwards;flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.btn-primary{background-color:var(--color-accent-deep);color:var(--color-white);letter-spacing:.1em;text-transform:uppercase;transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);border-radius:50px;padding:1rem 2.5rem;font-family:inherit;font-size:1rem;font-weight:600;display:inline-block;position:relative;overflow:hidden;box-shadow:0 4px 18px #6e8c6c52}.btn-primary:before{content:"";background:var(--color-primary);transition:transform .5s var(--ease-out);position:absolute;inset:0;transform:translateY(101%)}.btn-primary>span{z-index:1;position:relative}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 28px #3d383638}.btn-primary:hover:before{transform:translateY(0)}.btn-ghost{letter-spacing:.08em;color:var(--color-primary);padding-bottom:4px;font-size:.95rem;font-weight:500;position:relative}.btn-ghost:after{content:"";background:var(--color-primary);transform-origin:0;width:100%;height:1px;transition:transform .5s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(.35)}.btn-ghost:hover{color:var(--color-accent-deep)}.btn-ghost:hover:after{background:var(--color-accent-deep);transform:scaleX(1)}.hero-image-wrapper{opacity:0;height:min(72vh,620px);transform:translate3d(0, calc(var(--scroll-y) * -.045px), 0);will-change:transform;border-radius:28px;flex:1.15;animation:1.4s ease-out .25s forwards fadeIn;position:relative;overflow:hidden;box-shadow:0 34px 70px #3d38362e}.hero-main-img{object-fit:cover;width:100%;height:100%;animation:24s ease-in-out infinite alternate kenburns}.hero-badge{-webkit-backdrop-filter:blur(10px);background:#fafaf5e6;border-radius:18px;flex-direction:column;padding:.9rem 1.4rem;display:flex;position:absolute;bottom:1.5rem;left:1.5rem;box-shadow:0 10px 30px #3d383624}.hero-badge-num{font-family:var(--font-serif);color:var(--color-primary);font-size:1.5rem;line-height:1.1}.hero-badge-text{letter-spacing:.1em;color:var(--color-text-light);font-size:.72rem}.scroll-cue{opacity:0;flex-direction:column;align-items:center;gap:.6rem;animation:1s ease-out 1.4s forwards fadeIn;display:flex;position:absolute;bottom:1.75rem;left:50%;transform:translate(-50%)}.scroll-cue-line{background:var(--color-line);width:1px;height:44px;position:relative;overflow:hidden}.scroll-cue-line:after{content:"";background:var(--color-secondary);width:100%;height:40%;animation:2.2s ease-in-out infinite cue;position:absolute;top:0;left:0}.scroll-cue-text{letter-spacing:.28em;color:var(--color-text-light);font-size:.62rem}.scroll-cue:hover .scroll-cue-text{color:var(--color-accent-deep)}.marquee{background:var(--color-primary);color:var(--color-bg);-webkit-user-select:none;user-select:none;padding:.85rem 0;overflow:hidden}.marquee-track{width:max-content;animation:34s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-group{display:flex}.marquee-item{letter-spacing:.16em;white-space:nowrap;align-items:center;gap:1.75rem;padding-right:1.75rem;font-size:.88rem;display:inline-flex}.marquee-item img{object-fit:contain;opacity:.95;width:24px;height:24px}.section-head{margin-bottom:3.5rem}.section-head.is-centered{text-align:center}.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--color-accent-deep);margin-bottom:.85rem;font-size:.72rem;font-weight:600}.section-title{font-family:var(--font-serif);color:var(--color-primary);padding-bottom:1.1rem;font-size:clamp(2.1rem,4.6vw,3rem);display:inline-block;position:relative}.section-title:after{content:"";background-color:var(--color-secondary);width:0;height:2px;transition:width 1s var(--ease-out) .35s;position:absolute;bottom:0;left:0}.section-head.is-centered .section-title:after{left:50%;transform:translate(-50%)}.section-head.is-visible .section-title:after{width:64px}.section-desc{color:var(--color-text-light);margin-top:1rem}.about{padding:var(--section-pad) 0;background-color:var(--color-bg-alt)}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,5vw,4.5rem);max-width:1040px;margin:0 auto;display:grid}.about-image{border-radius:22px;position:relative;overflow:hidden;box-shadow:0 24px 50px #3d383624}.about-image img{width:100%;height:auto;transition:transform 1.2s var(--ease-out);transform:scale(1.02)}.about-image:hover img{transform:scale(1.07)}.about-image-frame{pointer-events:none;border:1px solid #ffffff73;border-radius:14px;position:absolute;inset:12px}.about-text{color:var(--color-primary);font-size:1.05rem;line-height:2}.about-text p+p{margin-top:1.5rem}.about-lead{font-family:var(--font-serif);color:var(--color-primary);font-size:clamp(1.1rem,1.6vw,1.3rem)}.products{padding:var(--section-pad) 0}.products-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(1.5rem,3vw,2.5rem);display:grid}.product-card{background:var(--color-white);transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out), opacity .9s var(--ease-out);border-radius:20px;position:relative;overflow:hidden;box-shadow:0 12px 34px #3d383612}.product-card:hover{transform:translateY(-12px);box-shadow:0 28px 55px #3d383629}.product-image{background-color:var(--color-bg-alt);height:260px;position:relative;overflow:hidden}.product-image img{object-fit:cover;width:100%;height:100%;transition:transform 1.1s var(--ease-out)}.product-card:hover .product-image img{transform:scale(1.09)}.product-tag{-webkit-backdrop-filter:blur(8px);letter-spacing:.1em;color:var(--color-primary);background:#fafaf5eb;border-radius:50px;padding:.35rem .9rem;font-size:.7rem;font-weight:600;position:absolute;top:1rem;left:1rem}.product-info{text-align:center;padding:2rem;position:relative}.product-index{font-family:var(--font-serif);color:var(--color-white);opacity:.9;text-shadow:0 2px 12px #3d38364d;pointer-events:none;font-size:3.2rem;font-style:italic;line-height:1;position:absolute;top:-1.55rem;right:1.5rem}.product-info h3{margin-bottom:.65rem;font-size:1.35rem}.product-info p{color:var(--color-text-light);font-size:.93rem;line-height:1.75}.products-note{text-align:center;color:var(--color-text-light);margin-top:3rem;font-size:.85rem}.contact{padding:var(--section-pad) 0;background-color:var(--color-white)}.contact-container{text-align:left;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,5vw,4rem);max-width:1000px;margin:0 auto;display:grid}.contact-info h3{color:var(--color-primary);margin-bottom:1.5rem;font-size:1.6rem}.contact-info p{color:var(--color-text-light);margin-bottom:1.25rem;line-height:1.9}.contact-note{opacity:.85;font-size:.88rem;font-style:italic}.contact-instagram{color:var(--color-primary);align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:inline-flex}.contact-instagram:hover{color:var(--color-accent-deep);transform:translate(4px)}.contact-form{flex-direction:column;gap:1.4rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{letter-spacing:.06em;color:var(--color-primary);font-size:.85rem;font-weight:600}.form-group input,.form-group textarea{border:1px solid var(--color-line);background:var(--color-bg);color:var(--color-primary);border-radius:12px;padding:.95rem 1.1rem;font-family:inherit;font-size:1rem;transition:border-color .35s,box-shadow .35s,background-color .35s}.form-group textarea{resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#6f6863b3}.form-group input:focus,.form-group textarea:focus{background:var(--color-white);border-color:var(--color-secondary);outline:none;box-shadow:0 0 0 4px #6e8c6c29}.form-submit{cursor:pointer;border:none;width:fit-content;margin-top:.5rem}.footer{background-color:var(--color-primary);color:var(--color-white);text-align:center;padding:5rem 0 2rem}.footer-logo{margin-bottom:3rem}.footer-logo img{opacity:.95;width:auto;height:96px;margin:0 auto}.footer-info{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.5rem;display:grid}.info-block h4{letter-spacing:.24em;text-transform:uppercase;color:var(--color-accent-soft);margin-bottom:1rem;font-size:.78rem}.footer-info p{color:#ffffffb8;margin-bottom:.5rem;font-size:.95rem}.footer-link{color:#ffffffb8;border-bottom:1px solid #ffffff40;margin-top:.5rem;padding-bottom:2px;font-size:.85rem;display:inline-block}.footer-link:hover{color:var(--color-accent-soft);border-bottom-color:var(--color-accent-soft)}.footer-social{color:var(--color-white);align-items:center;gap:.5rem;margin-top:.25rem;font-weight:500;display:inline-flex}.footer-social:hover{color:var(--color-accent-soft);transform:translateY(-2px)}.footer-bottom{color:#ffffff80;border-top:1px solid #ffffff1f;margin-top:4rem;padding-top:2rem;font-size:.8rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes lineUp{to{transform:translateY(0)}}@keyframes kenburns{0%{transform:scale(1.02)}to{transform:scale(1.12)}}@keyframes float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(4%,6%)scale(1.08)}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes cue{0%{transform:translateY(-100%)}to{transform:translateY(250%)}}@media (width<=980px){:root{--header-h:80px}.nav-desktop{display:none}.menu-toggle{display:block}.hero{padding-bottom:6rem}.hero .container{text-align:center;flex-direction:column;gap:2.5rem}.hero-title{font-size:clamp(2rem,7.2vw,3.4rem)}.hero-subtitle{margin-left:auto;margin-right:auto}.hero-btns{justify-content:center}.hero-image-wrapper{width:100%;height:min(46vh,380px);transform:none}.scroll-cue{display:none}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-image{max-width:520px;margin:0 auto}.contact-container{grid-template-columns:1fr;gap:2.5rem}}@media (width<=600px){.logo img{height:54px}.header.is-scrolled .logo img{height:44px}.hero-badge{padding:.7rem 1.1rem;bottom:1rem;left:1rem}.product-image{height:230px}.footer-logo img{height:78px}}
