@import url("/hp_files/css2");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--cream:#f8f5f0;--warm-white:#fdfcfa;--charcoal:#2c2c2c;--mid-gray:#6b6b6b;--light-gray:#c8c3bc;--accent:#8b6f4e;--accent-light:#c4a882;--border:#e2ddd6;--error:#a33a32;--success:#53714a}html{scroll-behavior:smooth}body{font-family:"Noto Serif JP",serif;background-color:var(--warm-white);color:var(--charcoal);line-height:1.8;font-weight:300}header{position:fixed;top:0;width:100%;z-index:100;background:hsla(40,43%,99%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:0 48px;height:64px;display:flex;align-items:center;justify-content:space-between}.logo{font-family:Nunito,sans-serif;font-size:1.5rem;font-weight:600;letter-spacing:.06em;color:var(--charcoal);text-decoration:none}nav{display:flex;gap:36px}nav a{font-size:.72rem;letter-spacing:.14em;color:var(--mid-gray);text-decoration:none;font-family:"Noto Serif JP",serif;font-weight:300;transition:color .3s}nav a:hover{color:var(--accent)}.hero{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background-color:var(--cream);position:relative;overflow:hidden}.hero:before{width:520px;height:520px;border-radius:50%;border:1px solid var(--border);opacity:.6}.hero:after,.hero:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero:after{width:340px;height:340px;border-radius:50%;border:1px solid var(--light-gray);opacity:.4}.hero-inner{position:relative;z-index:1}.hero-sub{font-size:.68rem;letter-spacing:.3em;color:var(--accent-light);font-family:Cormorant Garamond,serif;margin-bottom:20px}.hero-title{font-family:Nunito,sans-serif;font-size:clamp(3rem,7vw,5.5rem);font-weight:600;letter-spacing:.04em;line-height:1.1;color:var(--charcoal);margin-bottom:12px}.hero-title-jp{font-size:clamp(.9rem,2vw,1.1rem);font-weight:300;letter-spacing:.25em;color:var(--mid-gray);margin-bottom:48px}.hero-desc{font-size:.82rem;color:var(--mid-gray);letter-spacing:.1em;line-height:2.2}.scroll-hint{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.2em;color:var(--light-gray);font-family:Cormorant Garamond,serif}.scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--light-gray),transparent);animation:scrollDown 2s ease-in-out infinite}@keyframes scrollDown{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}section{padding:100px 48px}.section-inner{max-width:900px;margin:0 auto}.works-inner{max-width:1000px}.section-label{font-size:.65rem;letter-spacing:.35em;color:var(--accent-light);text-transform:uppercase;margin-bottom:16px}.section-label,.section-title{font-family:Cormorant Garamond,serif}.section-title{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:400;letter-spacing:.06em;color:var(--charcoal);margin-bottom:40px;line-height:1.3}.divider{width:40px;height:1px;background-color:var(--accent-light);margin-bottom:40px}.body-text{font-size:.88rem;color:var(--mid-gray);line-height:2.4;letter-spacing:.06em;margin-bottom:20px}#about,#company{background-color:var(--warm-white);border-top:1px solid var(--border)}#business,#contact,#works{background-color:var(--cream);border-top:1px solid var(--border)}.business-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2px;gap:2px;margin-top:48px;border:1px solid var(--border)}.business-card{background:var(--warm-white);padding:48px 40px;transition:background .3s}.business-card:hover{background:#f0ece5}.business-card:first-child{border-right:1px solid var(--border)}.business-card-num{font-family:Cormorant Garamond,serif;font-size:.65rem;letter-spacing:.3em;color:var(--accent-light);margin-bottom:20px}.business-card-title{font-family:Cormorant Garamond,serif;font-size:1.6rem;font-weight:400;letter-spacing:.08em;color:var(--charcoal);margin-bottom:8px}.business-card-title-jp{font-size:.78rem;color:var(--mid-gray);letter-spacing:.15em;margin-bottom:24px}.business-card-text{font-size:.82rem;color:var(--mid-gray);line-height:2.2;letter-spacing:.05em;margin-bottom:28px}.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.2em;color:var(--accent);text-decoration:none;font-family:Cormorant Garamond,serif;transition:gap .3s}.link-arrow:after{content:"→"}.link-arrow:hover{gap:16px}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;margin-top:48px;background-color:var(--border);border:1px solid var(--border)}.work-card{background:var(--warm-white);padding:0;display:flex;flex-direction:column;transition:background .3s;text-decoration:none;overflow:hidden}.work-card:hover{background:#f0ece5}.work-card-img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background-color:var(--border)}.work-card-body{padding:24px 28px 28px;display:flex;flex-direction:column;gap:10px;flex:1 1}.work-card-num{font-family:Cormorant Garamond,serif;font-size:.6rem;letter-spacing:.3em;color:var(--accent-light)}.work-card-title{font-family:"Noto Serif JP",serif;font-size:1rem;font-weight:400;letter-spacing:.1em;color:var(--charcoal);line-height:1.5}.work-card-link{margin-top:auto;font-family:Cormorant Garamond,serif;font-size:.65rem;letter-spacing:.2em;color:var(--accent);display:flex;align-items:center;gap:8px;transition:gap .3s}.work-card-link:after{content:"→"}.work-card:hover .work-card-link{gap:14px}.info-table{width:100%;border-collapse:collapse;margin-top:48px}.info-table tr{border-bottom:1px solid var(--border)}.info-table tr:first-child{border-top:1px solid var(--border)}.info-table th{padding:26px 0 22px;font-size:.72rem;letter-spacing:.18em;color:var(--accent);font-weight:400;text-align:left;width:200px;vertical-align:top}.info-table td{padding:22px 0;font-size:.84rem;color:var(--mid-gray);line-height:2;letter-spacing:.06em}.company-en{font-family:Cormorant Garamond,serif;letter-spacing:.08em}.company-note{font-size:.78rem;color:var(--mid-gray);line-height:2}.company-alert{color:#c0392b}.text-link{color:var(--accent);text-decoration:none}#contact{text-align:center}#contact .section-inner{display:flex;flex-direction:column;align-items:center}#contact .divider{margin-left:auto;margin-right:auto}#contact .body-text{max-width:480px;text-align:center}.contact-form{width:min(100%,640px);margin-top:28px;display:flex;flex-direction:column;gap:18px;text-align:left}.form-row{display:grid;grid-gap:18px;gap:18px}.form-row-2{grid-template-columns:1fr 1fr}.contact-form label{display:flex;flex-direction:column;gap:8px}.contact-form label span{font-size:.7rem;letter-spacing:.18em;color:var(--accent)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid var(--border);background:var(--warm-white);color:var(--charcoal);font:inherit;font-size:.88rem;line-height:1.7;padding:13px 14px;border-radius:0}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:1px solid var(--accent-light);border-color:var(--accent-light)}.form-hidden{display:none}.form-status{font-size:.82rem;line-height:1.8;text-align:center}.form-status-success{color:var(--success)}.form-status-error{color:var(--error)}.contact-btn{display:inline-block;margin-top:40px;padding:16px 56px;border:1px solid var(--accent);color:var(--accent);background:transparent;text-decoration:none;font-size:.72rem;letter-spacing:.3em;font-family:Cormorant Garamond,serif;cursor:pointer;transition:background .3s,color .3s,opacity .3s}.contact-btn:hover:not(:disabled){background:var(--accent);color:var(--warm-white)}.contact-btn:disabled{cursor:wait;opacity:.6}.contact-submit-btn{align-self:center;margin-top:10px}.contact-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:32px}.contact-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(44,44,44,.32);cursor:pointer}.contact-modal-backdrop span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.contact-modal-panel{position:relative;width:min(100%,720px);max-height:min(88vh,820px);overflow-y:auto;background:var(--warm-white);border:1px solid var(--border);padding:48px;box-shadow:0 24px 80px rgba(44,44,44,.18)}.contact-modal-title{font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:400;letter-spacing:.06em;color:var(--charcoal)}.contact-modal-close{position:absolute;top:18px;right:18px;width:36px;height:36px;border:1px solid var(--border);background:transparent;color:var(--mid-gray);font-size:1.4rem;line-height:1;cursor:pointer}.contact-modal-close:hover{color:var(--accent);border-color:var(--accent-light)}footer{background-color:var(--charcoal);padding:48px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-logo{font-family:Nunito,sans-serif;font-size:1.3rem;font-weight:600;letter-spacing:.06em;color:var(--cream)}.footer-copy{font-size:.65rem;letter-spacing:.12em;color:var(--light-gray)}.footer-links{display:flex;gap:24px}.footer-links a{font-size:.65rem;letter-spacing:.12em;color:var(--light-gray);text-decoration:none;transition:color .3s}.footer-links a:hover{color:var(--cream)}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.fade-in.visible{opacity:1;transform:translateY(0)}@media (max-width:768px){header{padding:0 20px}nav{gap:20px}nav a{font-size:.65rem}section{padding:72px 24px}.business-grid,.form-row-2{grid-template-columns:1fr}.business-card:first-child{border-right:none;border-bottom:1px solid var(--border)}.works-grid{grid-template-columns:repeat(2,1fr)}.info-table th{width:120px;font-size:.68rem}.info-table td{font-size:.78rem}footer{flex-direction:column;align-items:flex-start;padding:40px 24px;gap:16px}}@media (max-width:560px){header{height:auto;min-height:64px;padding:14px 20px;flex-direction:column;align-items:flex-start;gap:10px}nav{width:100%;overflow-x:auto;padding-bottom:2px}.hero-title{font-size:3rem}.works-grid{grid-template-columns:1fr}.info-table,.info-table tbody,.info-table td,.info-table th,.info-table tr{display:block;width:100%}.info-table th{padding-bottom:6px}.info-table td{padding-top:0}.contact-btn{width:100%;padding-left:20px;padding-right:20px}.contact-modal{padding:18px}.contact-modal-panel{padding:38px 22px 28px}}