:root{--ink:#454340;--muted:#696660;--pink:#db718e;--pink-dark:#ac4563;--blush:#fcf3f3;--ivory:#fffcf7;--green:#526f53;--line:#e9e1de;--serif:'Shippori Mincho','Yu Mincho','Hiragino Mincho ProN','MS PMincho',serif;--sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic','Meiryo',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:#fff;font-family:var(--sans);font-size:16px;line-height:1.85;overflow-wrap:anywhere}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%;object-fit:cover}h1,h2,p,figure{margin:0}h1,h2{font-family:var(--serif);font-weight:500}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:5px}button{cursor:pointer}button[hidden],[hidden]{display:none!important}.wrap{width:min(1260px,88%);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-content{position:fixed;top:-80px;left:15px;z-index:100;background:white;padding:10px 20px}.skip-content:focus{top:10px}.header{position:relative;z-index:30;background:#fffefa}.header-inner{width:min(1380px,94%);min-height:104px;margin:auto;display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:6px;flex-shrink:0}.brand img{object-fit:contain}.brand small{display:block;font-size:11px;line-height:1.65;color:#62605d}.brand strong{display:block;font-size:17px;font-weight:600;line-height:1.5;letter-spacing:-.04em;white-space:nowrap}.navigation{display:flex;align-items:center;justify-content:center;gap:19px;margin-left:auto}.navigation a{white-space:nowrap;font-size:12px;padding:10px 0;position:relative}.navigation a:hover,.navigation a[aria-current]{color:var(--pink-dark)}.navigation a[aria-current]:after{content:'';position:absolute;bottom:5px;height:1px;background:var(--pink);left:0;right:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:43px;padding:8px 28px;border-radius:100px;font-size:14px;letter-spacing:.07em;line-height:1.5;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.button span:last-child{transition:transform .2s}.button:hover span:last-child{transform:translateX(4px)}.solid{background:var(--pink);color:#fff;border:1px solid var(--pink)}.solid:hover{background:var(--pink-dark);border-color:var(--pink-dark)}.outline{color:var(--pink-dark);border:1px solid var(--pink);background:#ffffffb8}.outline:hover{background:var(--blush)}.header-contact{gap:10px;min-width:172px;font-size:13px;padding:10px 19px}.menu-toggle{background:none;border:0;min-width:48px;min-height:48px}.hero{position:relative;isolation:isolate;height:510px;background:var(--ivory);overflow:hidden}.hero-photo{position:absolute;inset:0 0 0 29%;z-index:-2}.hero-photo img{width:100%;height:100%;object-position:44% 48%}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fffcf7 5%,#fffcf7 24%,#fffcf7ee 30%,#fffcf7a0 36%,transparent 47%)}.hero-inner{height:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.hero-copy{padding-left:42px;max-width:390px}.hero h1{font-size:37px;letter-spacing:.06em;line-height:1.52}.hero h1 span{display:block}.hero-copy>p:not(.handwritten){font-family:var(--serif);font-size:16px;line-height:1.8;margin-top:19px;letter-spacing:.08em}.handwritten{font-family:var(--serif);font-style:italic;color:var(--pink-dark);font-size:20px;letter-spacing:.13em;line-height:1.7;transform:rotate(-7deg);margin-top:23px}.handwritten span{padding-left:38px}.hero-note{align-self:flex-end;margin-bottom:35px;margin-right:-20px;padding:30px 28px;background:#fffdf4e8;border-radius:58% 42% 35% 45%;font-family:var(--serif);font-size:16px;letter-spacing:.1em;line-height:1.9}.petal{position:absolute;display:block;width:40px;height:22px;background:linear-gradient(25deg,#fce7ec,#f5b6c8);border-radius:100% 0 100% 0;pointer-events:none;opacity:.75}.petal-one{left:28%;top:41%;transform:rotate(-18deg)}.petal-two{right:2%;top:15%;transform:rotate(-25deg);width:30px;height:18px}.entrances{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-block:22px 32px}.entrance{display:flex;align-items:center;gap:20px;background:linear-gradient(115deg,#fff,#fcf2f3);border:1px solid #eee4e3;border-radius:16px;padding:9px 14px 9px 9px;position:relative;min-height:134px;transition:background .2s}.entrance:hover{background:#fbecef}.entrance-image{width:115px;height:110px;flex-shrink:0;border-radius:10px;overflow:hidden;background:#f5ece6}.entrance-image img{width:100%;height:100%;transition:transform .35s}.entrance:hover img{transform:scale(1.02)}.entrance-image.illustration{background:#fbf4ec}.illustration img{object-fit:contain;padding:4px}.entrance h2{font-size:23px;letter-spacing:.1em;color:var(--pink-dark);margin-bottom:3px}.entrance p{font-family:var(--sans);font-size:15px;line-height:1.65}.circle-arrow{position:absolute;right:13px;bottom:15px;border-radius:50%;background:var(--pink);color:white;width:23px;height:23px;font-size:14px;text-align:center;line-height:23px;transition:transform .2s}.entrance:hover .circle-arrow{transform:translateX(4px)}.philosophy{display:grid;grid-template-columns:40% 60%;padding:30px 0 54px;align-items:center}.section-label{font-family:var(--serif);font-size:24px;color:var(--pink-dark);letter-spacing:.05em;line-height:1.4}.section-label em{font-family:Georgia,serif;font-size:13px;font-weight:normal;letter-spacing:.08em;margin-left:14px;color:#a8586f}.philosophy .section-label em{display:block;margin:3px 0 20px}.philosophy h2{font-size:31px;letter-spacing:.1em;line-height:1.65}.body-copy{font-family:var(--sans);margin:19px 0 20px;font-size:17px;line-height:1.95}.philosophy-visual{position:relative;padding-right:70px;padding-bottom:25px}.organic-photo{height:390px;overflow:hidden;border-radius:36% 23% 29% 31% / 44% 25% 37% 35%}.organic-photo img{width:100%;height:100%;object-position:52% 48%}.vertical-note{position:absolute;right:-5px;top:26px;writing-mode:vertical-rl;font-family:var(--serif);font-size:18px;letter-spacing:.2em;line-height:2.4;background:#fffdf8b3;padding:8px}.english-note{position:absolute;right:0;bottom:-13px;font-family:Georgia,serif;font-style:italic;color:#b25e76;font-size:24px;line-height:1.4;transform:rotate(-12deg)}.news-access{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:start;padding:15px 0 25px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:16px}.text-link{font-size:13px;color:var(--green);white-space:nowrap}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.news-empty{border-block:1px solid var(--line);padding:28px 0;line-height:1.85;font-size:16px}.news-empty>a{display:inline-block;color:var(--pink-dark);font-size:14px;margin-top:12px}.news-empty>a:hover{text-decoration:underline}.access-card{position:relative;overflow:hidden;min-height:220px;border-radius:13px;background:#f2f1e9}.access-card img{position:absolute;inset:0;width:100%;height:100%;object-position:right}.access-card:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f6f6efeF 20%,#f6f6efcc 50%,#f6f6ef00)}.access-card>div{position:relative;z-index:1;padding:25px 28px}.access-card h2{font-size:23px;letter-spacing:.08em;line-height:1.6}.access-card p{font-size:13px;margin:5px 0 12px}.access-card .button{min-height:36px;padding:5px 24px}.daily{display:grid;grid-template-columns:32% 68%;align-items:center;padding:30px 0 45px}.daily-copy>p{font-family:var(--serif);font-size:16px;margin:20px 0 18px;line-height:1.9}.daily-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px}.daily-photos a{display:block;overflow:hidden;border-radius:10px}.daily-photos img{width:100%;height:210px;transition:transform .3s;object-position:center}.daily-photos a:hover img{transform:scale(1.02)}figcaption{font-family:var(--serif);font-size:14px;color:var(--muted);margin-top:6px}.recruit{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(90deg,#fff5f3,#fceff0 75%,#fffaf7);border-radius:12px;min-height:120px;padding:14px 30px;margin-bottom:35px;overflow:hidden}.recruit-note{font-family:var(--serif);font-style:italic;color:var(--pink-dark);font-size:19px;transform:rotate(-6deg)}.recruit-note span{padding-left:25px}.recruit h2{font-size:25px;letter-spacing:.05em;white-space:nowrap;text-align:center}.recruit h2 em{display:block;font-family:Georgia,serif;font-size:13px;letter-spacing:.07em;color:#a8586f}.recruit-copy{font-family:var(--sans);font-size:15px;line-height:1.9}.recruit>img{width:85px;height:95px;object-fit:contain}.contact{background:linear-gradient(105deg,#fbefec,#fffaf5 40%,#fcf0ef);position:relative}.contact-inner{position:relative;display:flex;align-items:center;justify-content:center;gap:50px;min-height:190px;padding-left:145px;padding-block:25px}.contact-title .section-label em{display:block;margin:7px 0;text-align:center}.contact-copy{font-size:15px}.phone{display:inline-block;font-family:Georgia,serif;font-size:26px;letter-spacing:.04em;line-height:1.6}.phone:hover{color:var(--pink-dark)}.botanical{position:absolute;left:-18px;bottom:0;width:170px;height:190px;pointer-events:none}.botanical svg{width:100%;height:100%}.footer{padding:35px 0 25px;position:relative;scroll-margin-top:20px}.footer-inner{display:grid;grid-template-columns:43% 57%;gap:20px}.footer address{font-size:13px;font-style:normal;margin:16px 0 7px;line-height:1.9}.hours{font-size:12px;color:var(--muted);margin-bottom:7px}.footer-links nav{display:flex;flex-wrap:wrap;gap:12px 23px;padding-top:15px;font-size:12px}.footer-links a:hover{color:var(--pink-dark);text-decoration:underline}.related{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:12px;margin-top:27px;color:var(--muted)}.related>span{color:var(--green)}.copyright{display:block;margin-top:22px;font-size:11px;color:var(--muted)}.back-top{position:absolute;bottom:25px;right:20px;width:39px;height:39px;display:grid;place-items:center;background:var(--pink);color:white;border-radius:50%}.small-only{display:none}
/* Content is visible without JavaScript. Animation is an opt-in enhancement. */
.intro{display:none;position:absolute;inset:0;pointer-events:none;z-index:5}.intro-cover{position:absolute;inset:0;background:var(--ivory)}.intro-emblem{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:140px;height:140px;display:grid;place-items:center}.intro-emblem img{object-fit:contain}.intro-ring{position:absolute;inset:-15px;border:1px solid #e9b5c7;border-radius:40% 48% 44% 42%;opacity:0}.intro-skip{position:absolute;z-index:10;right:28px;bottom:15px;border:1px solid #c8b8af;background:#fffdf8;color:#68544d;border-radius:30px;padding:8px 18px;font-size:12px;min-height:40px}.intro-playing .intro{display:block;animation:remove-cover 1.8s step-end forwards}.intro-playing .intro-cover{animation:open-home 1.3s cubic-bezier(.4,0,.2,1) both}.intro-playing .intro-emblem{animation:logo-out 1.3s ease both}.intro-playing .intro-ring{animation:ring-open 1.2s ease both}.intro-playing .hero h1 span{animation:copy-in .38s both;animation-delay:calc(1.08s + var(--line-index)*.1s)}.hero h1 span:nth-child(1){--line-index:0}.hero h1 span:nth-child(2){--line-index:1}.hero h1 span:nth-child(3){--line-index:2}.hero h1 span:nth-child(4){--line-index:3}.intro-playing .hero-photo{animation:photo-reveal 1.3s ease both}.intro-playing .petal{animation:petal-pass 1.7s ease both}.reveal.animate-once{animation:soft-in .55s both}.reveal:nth-child(2).animate-once{animation-delay:.08s}.reveal:nth-child(3).animate-once{animation-delay:.16s}.organic-photo.animate-once{animation:soft-mask .65s both}.contact.line-enter .contact-title:before{content:'';display:block;background:var(--pink);width:42px;height:1px;margin:0 auto 12px;animation:line-in .6s both}@keyframes remove-cover{100%{visibility:hidden}}@keyframes open-home{0%,55%{clip-path:inset(0 round 0)}100%{clip-path:inset(50% 50% round 80px)}}@keyframes logo-out{0%{opacity:0}23%,57%{opacity:1}85%,100%{opacity:0}}@keyframes ring-open{0%,25%{opacity:0;transform:scale(.8)}60%{opacity:.75}100%{opacity:0;transform:scale(2.8)}}@keyframes copy-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes photo-reveal{0%,55%{clip-path:inset(15% 10% round 100px)}100%{clip-path:inset(0 round 0)}}@keyframes petal-pass{from{opacity:0;translate:-12px -8px}to{opacity:.75;translate:0 0}}@keyframes soft-in{from{opacity:.25;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes soft-mask{from{clip-path:inset(3% 7% round 90px)}to{clip-path:inset(0 round 0)}}@keyframes line-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
