@import"https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;700&family=Noto+Sans+JP:wght@300;400;500;700&family=Klee+One:wght@400;600&family=Sawarabi+Mincho&display=swap";body.menu-open{overflow:hidden}.header{width:100%;padding:2rem 5%;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:fixed;top:0;left:0;z-index:1000;transition:all .4s cubic-bezier(.4,0,.2,1)}.header.scrolled{padding:1rem 5%;background:#fffffffa;box-shadow:0 1px #5a9a9c1a}.header.scrolled .logo{height:32px}.header-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{display:inline-block;text-decoration:none;transition:all .3s ease;height:40px}.logo:hover{opacity:.8;transform:translateY(-1px)}.logo-image{height:100%;width:auto;display:block;transition:opacity .3s ease}.nav{display:flex;gap:3rem;align-items:center}.nav-link{font-family:"Noto Serif JP",serif;font-size:.95rem;color:#333;text-decoration:none;letter-spacing:.08em;position:relative;transition:color .3s ease;font-weight:400}.nav-link:hover{color:#5a9a9c}.nav-link:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) scaleX(0);width:120%;height:1px;background:#5a9a9c;transition:transform .3s cubic-bezier(.4,0,.2,1);transform-origin:center}.nav-link:hover:after{transform:translate(-50%) scaleX(1)}.nav-link.active{color:#5a9a9c}.nav-link.active:after{transform:translate(-50%) scaleX(.8);opacity:.5}.mobile-menu-button{display:none;background:none;border:none;cursor:pointer;padding:.5rem;position:relative;width:30px;height:30px}.mobile-menu-button span{display:block;width:22px;height:1px;background:#5a9a9c;position:absolute;left:4px;transition:all .3s ease}.mobile-menu-button span:nth-child(1){top:9px}.mobile-menu-button span:nth-child(2){top:15px}.mobile-menu-button span:nth-child(3){bottom:9px}.mobile-menu-button.active span:nth-child(1){transform:rotate(45deg);top:15px}.mobile-menu-button.active span:nth-child(2){opacity:0}.mobile-menu-button.active span:nth-child(3){transform:rotate(-45deg);bottom:14px}.mobile-nav{display:none;position:fixed;top:0;left:0;width:100%;height:100vh;background:#fffffffa;z-index:999;opacity:0;visibility:hidden;transition:all .3s ease;overflow-y:auto}.mobile-nav.active{opacity:1;visibility:visible}.mobile-nav-content{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:2.5rem}.mobile-nav-link{font-family:Klee One,"Noto Serif JP",serif;font-size:1.5rem;color:#333;text-decoration:none;letter-spacing:.1em;transition:color .3s ease}.mobile-nav-link:hover{color:#5a9a9c}@media (max-width: 768px){.header{padding:1.5rem 5%}.header.scrolled{padding:1rem 5%}.logo{height:32px}.header.scrolled .logo{height:28px}.nav{display:none}.mobile-menu-button,.mobile-nav{display:block}}@media (max-width: 1024px) and (min-width: 769px){.nav{gap:2rem}.nav-link{font-size:.9rem}.logo{height:36px}}@keyframes gentle-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.header{animation:fadeInDown .8s ease forwards}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo-text{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:1.75rem;font-weight:300;color:var(--misaki-primary, #5A9A9C);letter-spacing:.1em;transition:opacity var(--transition-gentle, .4s ease-out)}.header.scrolled .logo-text{font-size:1.5rem}:root{--misaki-primary: #5A9A9C;--misaki-base: #7FB5B7;--misaki-lightest: #E6F2F3;--washi-white: #FEFEFE;--text-heading: #2C2C2C;--text-secondary: #5A5A5A;--text-light: #7A7A7A;--font-gothic: "Noto Sans JP", sans-serif;--font-mincho: "Noto Serif JP", serif;--font-handwrite: "Klee One", serif;--transition-gentle: .4s ease-out;--spacing-xs: .75rem;--spacing-sm: 1.5rem;--spacing-md: 3rem;--spacing-lg: 4.5rem;--spacing-xl: 6rem;--spacing-xxl: 9rem;--max-width: 1200px}@media (max-width: 768px){.logo-text{font-size:1.5rem}.header.scrolled .logo-text{font-size:1.25rem}}.footer{background:linear-gradient(180deg,var(--washi-white, #FEFEFE) 0%,var(--misaki-lightest, #E6F2F3) 100%);margin-top:var(--spacing-xxl, 9rem);position:relative;overflow:hidden}.footer-wave{position:absolute;top:-59px;left:0;right:0;height:60px;z-index:1}.footer-wave svg{width:100%;height:100%}.footer-content{max-width:var(--max-width, 1200px);margin:0 auto;padding:var(--spacing-xl, 6rem) var(--spacing-md, 3rem) var(--spacing-lg, 4.5rem);position:relative;z-index:2}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:var(--spacing-lg, 4.5rem);padding-bottom:var(--spacing-lg, 4.5rem);border-bottom:1px solid rgba(90,154,156,.15)}.footer-company{padding-right:var(--spacing-md, 3rem)}.footer-logo{display:inline-block;margin-bottom:var(--spacing-sm, 1.5rem);text-decoration:none}.footer-logo-text{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:1.75rem;font-weight:300;color:var(--misaki-primary, #5A9A9C);letter-spacing:.1em;transition:opacity var(--transition-gentle, .4s ease-out)}.footer-logo:hover .footer-logo-text{opacity:.7}.footer-company-name{font-family:var(--font-mincho, "Noto Serif JP", serif);font-size:.875rem;color:var(--text-secondary, #5A5A5A);margin-bottom:var(--spacing-xs, .75rem);letter-spacing:.05em}.footer-description{font-family:var(--font-handwrite, "Klee One", serif);font-size:1rem;line-height:1.8;color:var(--text-light, #7A7A7A);letter-spacing:.08em;margin-bottom:var(--spacing-sm, 1.5rem)}.footer-nav{display:flex;flex-direction:column}.footer-nav-title{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-heading, #2C2C2C);margin-bottom:var(--spacing-sm, 1.5rem);letter-spacing:.08em;position:relative;padding-bottom:.5rem}.footer-nav-title:after{content:"";position:absolute;bottom:0;left:0;width:2rem;height:1px;background:var(--misaki-base, #7FB5B7)}.footer-nav-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-xs, .75rem)}.footer-nav-item{position:relative}.footer-nav-link{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.875rem;color:var(--text-secondary, #5A5A5A);text-decoration:none;transition:all var(--transition-gentle, .4s ease-out);letter-spacing:.02em;display:inline-flex;align-items:center;gap:.5rem;position:relative}.nav-arrow{color:var(--misaki-base, #7FB5B7);font-size:.75rem;transition:transform var(--transition-gentle, .4s ease-out)}.footer-nav-link:hover{color:var(--misaki-primary, #5A9A9C);padding-left:.25rem}.footer-nav-link:hover .nav-arrow{transform:translate(3px);color:var(--misaki-primary, #5A9A9C)}.footer-contact{display:flex;flex-direction:column}.footer-contact-item{display:flex;flex-direction:column;gap:.25rem;margin-bottom:var(--spacing-sm, 1.5rem)}.footer-contact-label{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.75rem;font-weight:500;color:var(--text-light, #7A7A7A);letter-spacing:.05em}.footer-contact-value{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.875rem;color:var(--text-secondary, #5A5A5A)}.footer-contact-value a{color:var(--misaki-primary, #5A9A9C);text-decoration:none;transition:opacity var(--transition-gentle, .4s ease-out)}.footer-contact-value a:hover{opacity:.7}.footer-contact-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;margin-top:var(--spacing-sm, 1.5rem);background:transparent;color:var(--misaki-primary, #5A9A9C);border:1px solid var(--misaki-primary, #5A9A9C);border-radius:2px;text-decoration:none;font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.875rem;letter-spacing:.05em;transition:all var(--transition-gentle, .4s ease-out)}.footer-contact-button:hover{background:var(--misaki-primary, #5A9A9C);color:var(--washi-white, #FEFEFE)}.footer-bottom{padding-top:var(--spacing-md, 3rem);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;position:relative}.footer-bottom:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60%;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(90,154,156,.2) 20%,rgba(90,154,156,.2) 80%,transparent 100%)}.footer-bottom-left{text-align:left}.footer-bottom-center{text-align:center}.footer-bottom-right{text-align:right}.footer-copyright{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.75rem;color:var(--text-light, #7A7A7A);letter-spacing:.05em}.footer-bottom-links{display:flex;gap:var(--spacing-md, 3rem);list-style:none;justify-content:center}.footer-bottom-link{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.75rem;color:var(--text-light, #7A7A7A);text-decoration:none;transition:color var(--transition-gentle, .4s ease-out);letter-spacing:.02em}.footer-bottom-link:hover{color:var(--misaki-primary, #5A9A9C)}.footer-credit{font-family:var(--font-gothic, "Noto Sans JP", sans-serif);font-size:.75rem;color:var(--text-light, #7A7A7A);letter-spacing:.02em}.footer-credit-link{color:var(--misaki-primary, #5A9A9C);text-decoration:none;transition:all var(--transition-gentle, .4s ease-out);position:relative;margin-left:.25rem;font-weight:500}.footer-credit-link:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background-color:var(--misaki-primary, #5A9A9C);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-gentle, .4s ease-out)}.footer-credit-link:hover:after{transform:scaleX(1);transform-origin:left}@media (max-width: 1024px){.footer-main{grid-template-columns:1fr 1fr;gap:var(--spacing-md, 3rem)}.footer-company{grid-column:1 / -1;padding-right:0;padding-bottom:var(--spacing-md, 3rem);border-bottom:1px solid rgba(90,154,156,.15)}}@media (max-width: 768px){.footer-main{grid-template-columns:1fr;gap:var(--spacing-md, 3rem)}.footer-nav,.footer-contact{padding-bottom:var(--spacing-sm, 1.5rem);border-bottom:1px solid rgba(90,154,156,.15)}.footer-nav:last-child,.footer-contact:last-child{border-bottom:none}.footer-bottom{grid-template-columns:1fr;gap:var(--spacing-sm, 1.5rem);text-align:center}.footer-bottom-left,.footer-bottom-center,.footer-bottom-right{text-align:center}.footer-content{padding:var(--spacing-lg, 4.5rem) var(--spacing-sm, 1.5rem) var(--spacing-md, 3rem)}}@media (max-width: 480px){.footer-wave{top:-29px;height:30px}.footer-content{padding:var(--spacing-md, 3rem) var(--spacing-sm, 1.5rem)}.footer-logo-text{font-size:1.5rem}.footer-description{font-size:.875rem}.footer-nav-title{font-size:.8125rem}.footer-nav-link,.footer-contact-value,.footer-copyright,.footer-bottom-link,.footer-credit{font-size:.75rem}.footer-business-tags{gap:.25rem}.business-tag{font-size:.5625rem;padding:.125rem .5rem}}.hero-misaki{position:relative;width:100%;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-images{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background-color:#f5f5f5;isolation:isolate}.hero-image{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0);will-change:opacity}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;line-height:0;font-size:0}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#fff6,#fff9,#5a9a9c26);pointer-events:none}.hero-content{position:relative;z-index:2;width:100%;max-width:1200px;padding:0 5%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;margin:0 auto}.hero-inner{padding:2rem;position:relative}.hero-title{position:relative;display:inline-block;margin-bottom:3rem}.nodebase-logo{width:100%;max-width:350px;height:auto;display:block;opacity:0;transform:translateY(20px);filter:drop-shadow(0 2px 8px rgba(90,154,156,.3))}.hero-title.animate .nodebase-logo{animation:fadeInUp 1.5s cubic-bezier(.4,0,.2,1) .5s forwards,gentleFloat 10s ease-in-out 2s infinite}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@keyframes gentleFloat{0%,to{transform:translateY(0);filter:drop-shadow(0 2px 8px rgba(90,154,156,.3))}50%{transform:translateY(-10px);filter:drop-shadow(0 4px 20px rgba(90,154,156,.5))}}.hero-title:hover .nodebase-logo{filter:drop-shadow(0 4px 16px rgba(90,154,156,.6));transform:scale(1.02);transition:all .3s ease}.nodebase-logo path,.nodebase-logo text{fill:#5a9a9c;transition:fill .3s ease}.hero-title:hover .nodebase-logo path,.hero-title:hover .nodebase-logo text{fill:#4a8a8c}@supports (transform: translateZ(0)){.hero-title{transform:translateZ(0);will-change:transform}.nodebase-logo{backface-visibility:hidden;perspective:1000px}}@media (max-width: 768px){.nodebase-logo{max-width:250px}.hero-title{margin-bottom:2rem}}@media (max-width: 480px){.nodebase-logo{max-width:200px}.hero-inner{padding:1rem}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}}@media (prefers-reduced-motion: reduce){.nodebase-logo{animation:none!important;opacity:1;transform:translateY(0)!important}.hero-title:hover .nodebase-logo{transform:none}}@supports (backdrop-filter: blur(10px)){.hero-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(180deg,#ffffff4d,#ffffff80,#5a9a9c1a)}}.home-page{overflow:hidden;background:var(--color-light, #f8fafb)}.container{max-width:1200px;margin:0 auto;padding:0 2rem}section{padding:8rem 0;position:relative}.section-header{margin-bottom:4rem;display:flex;align-items:baseline;gap:2rem}.section-number{font-family:Inter,sans-serif;font-size:.875rem;font-weight:300;color:var(--color-gray, #6a6a6a);letter-spacing:.1em;opacity:.6}.section-title{display:flex;flex-direction:column;gap:.5rem}.title-en{font-family:Playfair Display,serif;font-size:3rem;font-weight:300;letter-spacing:.05em;color:var(--color-dark, #1a1a1a);line-height:1.2}.title-jp{font-family:Noto Sans JP,sans-serif;font-size:.875rem;font-weight:400;color:var(--color-gray, #6a6a6a);letter-spacing:.1em;opacity:.7}.home-about{background:linear-gradient(180deg,#fff,#f8fafb80)}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.about-text{z-index:2}.about-headline{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:300;line-height:1.3;margin-bottom:2rem;color:var(--color-dark, #1a1a1a);letter-spacing:.02em}.about-description{font-size:1.125rem;line-height:1.8;color:var(--misaki-primary, #5A9A9C);margin-bottom:1.5rem;font-weight:500;font-family:Noto Sans JP,sans-serif}.about-body{font-size:1rem;line-height:2;color:var(--color-gray, #6a6a6a);margin-bottom:3rem;font-family:Noto Sans JP,sans-serif;font-weight:400}.text-link{display:inline-flex;align-items:center;gap:.5rem;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-dark, #1a1a1a);text-decoration:none;transition:gap .3s cubic-bezier(.25,.46,.45,.94);position:relative}.text-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--misaki-primary, #5A9A9C);transition:width .3s cubic-bezier(.25,.46,.45,.94)}.text-link:hover:after{width:calc(100% - 2rem)}.text-link:hover{gap:1rem;color:var(--misaki-primary, #5A9A9C)}.link-arrow{display:inline-block;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.text-link:hover .link-arrow{transform:translate(5px)}.about-visual{position:relative;height:500px}.visual-image{width:100%;height:100%;overflow:hidden;border-radius:8px;box-shadow:0 20px 60px #5a9a9c26}.visual-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}.visual-image:hover img{transform:scale(1.05)}.home-business{background:#fff}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.business-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 10px 40px #0000000d;transition:all .4s cubic-bezier(.25,.46,.45,.94);cursor:pointer;display:flex;flex-direction:column;height:100%;min-height:500px}.business-image{position:relative;overflow:hidden;background:#fff;flex-shrink:0}.business-image-wrapper{width:100%;height:240px;overflow:hidden;position:relative;background:#fff}.business-image-wrapper img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}.business-card:hover .business-image-wrapper img{transform:scale(1.05)}.business-label{position:absolute;top:12px;right:12px;background:#fffffffa;color:var(--color-dark, #1a1a1a);padding:6px 12px;font-size:.75rem;font-weight:400;letter-spacing:.08em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:3px;z-index:2;font-family:"Noto Serif JP",serif;text-transform:uppercase;box-shadow:0 2px 8px #0000001f;border:1px solid rgba(0,0,0,.05)}.business-image-wrapper:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f9f9f9 25%,#f0f0f0,#f9f9f9 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;z-index:0;opacity:.5}.business-image-wrapper img{position:relative;z-index:1}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.business-info{padding:2rem;display:flex;flex-direction:column;flex:1;position:relative}.business-title{font-family:Noto Sans JP,sans-serif;font-size:1.5rem;font-weight:500;margin-bottom:1rem;color:var(--color-dark, #1a1a1a)}.business-description{font-size:.95rem;line-height:1.8;color:var(--color-gray, #6a6a6a);margin-bottom:3rem;font-family:Noto Sans JP,sans-serif;flex:1}.business-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--misaki-primary, #5A9A9C);text-decoration:none;font-family:Inter,sans-serif;letter-spacing:.05em;transition:gap .3s cubic-bezier(.25,.46,.45,.94);align-self:flex-end;margin-top:auto}.business-link:hover{gap:1rem}.business-link .link-arrow{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.business-link:hover .link-arrow{transform:translate(5px)}.home-works{background:linear-gradient(180deg,#f8fafb80,#f8fafb)}.works-showcase{width:100%}.works-grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,250px);gap:1.5rem;margin-bottom:3rem}.work-item{position:relative;overflow:hidden;border-radius:8px;cursor:pointer;background:var(--color-dark, #1a1a1a)}.work-item.large{grid-row:span 2}.work-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94),opacity .4s ease;opacity:.9}.work-item:hover img{transform:scale(1.08);opacity:1}.work-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 50%,rgba(0,0,0,.8) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;opacity:0;transition:opacity .4s cubic-bezier(.25,.46,.45,.94)}.work-item:hover .work-overlay{opacity:1}.work-category{font-family:Inter,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb3;margin-bottom:.5rem}.work-title{font-family:Playfair Display,serif;font-size:1.25rem;font-weight:300;color:#fff;line-height:1.4}.view-all-link{display:inline-flex;align-items:center;gap:.75rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:500;letter-spacing:.05em;color:var(--color-dark, #1a1a1a);text-decoration:none;transition:all .3s cubic-bezier(.25,.46,.45,.94);position:relative;padding-bottom:2px}.view-all-link:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--color-dark, #1a1a1a);transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.view-all-link:hover:after{transform:scaleX(1);transform-origin:left}.view-all-link:hover{gap:1.25rem;color:var(--misaki-primary, #5A9A9C)}.home-contact{background:linear-gradient(180deg,var(--misaki-lightest, #E6F2F3) 0%,var(--washi-cream, #FAF8F3) 100%);position:relative;overflow:hidden;padding:8rem 0}.contact-content{text-align:center;position:relative;z-index:2}.contact-title{font-family:Noto Sans JP,sans-serif;font-size:2.5rem;font-weight:300;line-height:1.2;margin-bottom:1rem;letter-spacing:.08em;color:var(--text-heading, #2C2C2C)}.contact-description{font-family:Noto Sans JP,sans-serif;font-size:1rem;margin-bottom:3rem;letter-spacing:.1em;color:var(--text-secondary, #5A5A5A)}.contact-button{display:inline-flex;align-items:center;gap:.75rem;padding:.875rem 2rem;background:transparent;color:var(--misaki-primary, #5A9A9C);text-decoration:none;border:1px solid var(--misaki-primary, #5A9A9C);border-radius:2px;font-family:Noto Sans JP,sans-serif;font-weight:400;letter-spacing:.08em;transition:all .3s ease;position:relative}.button-arrow{transition:transform .3s ease}.contact-button:hover .button-arrow{transform:translate(3px)}@media (min-width: 1200px){.business-image-wrapper{height:250px}.business-card{min-height:520px}}@media (max-width: 1024px){.business-grid{grid-template-columns:repeat(2,1fr)}.business-image-wrapper{height:240px}.business-card{min-height:480px}}@media (max-width: 768px){section{padding:4rem 0}.section-header{margin-bottom:2.5rem;gap:1.5rem}.title-en{font-size:2rem}.title-jp{font-size:.8rem}.about-content{grid-template-columns:1fr;gap:2rem}.about-headline{font-size:1.75rem;margin-bottom:1.5rem}.about-description{font-size:1rem}.about-body{font-size:.9rem;margin-bottom:2rem}.about-visual{height:300px}.business-grid{grid-template-columns:1fr;gap:2rem}.business-image-wrapper{height:280px}.business-card{min-height:500px}.business-label{font-size:.7rem;padding:5px 10px;top:10px;right:10px}.business-title{font-size:1.25rem}.works-grid{grid-template-columns:1fr;grid-template-rows:repeat(3,250px)}.work-item.large{grid-row:span 1}.home-contact{padding:6rem 0}.contact-title{font-size:2rem;margin-bottom:1rem}.contact-description{font-size:.9rem;margin-bottom:2rem}.contact-button{padding:.875rem 2rem;font-size:.9rem}}@media (max-width: 480px){.container{padding:0 1rem}section{padding:3rem 0}.section-header{margin-bottom:2rem}.section-number{font-size:.75rem}.title-en{font-size:1.75rem}.about-headline{font-size:1.5rem}.about-description{font-size:.95rem;line-height:1.6}.about-body{font-size:.85rem;line-height:1.8}.business-card{box-shadow:0 5px 20px #00000014;min-height:460px}.business-info{padding:1.5rem}.business-title{font-size:1.125rem}.business-description{font-size:.875rem;margin-bottom:2.5rem}.business-image-wrapper{height:250px}.business-label{font-size:.65rem;padding:4px 8px;top:8px;right:8px}.works-grid{gap:1rem;grid-template-rows:repeat(3,200px)}.work-title{font-size:1.125rem}.home-contact{padding:4rem 0}.contact-title{font-size:1.75rem}.contact-description{font-size:.85rem}.contact-button{padding:.75rem 1.75rem;font-size:.85rem;gap:.75rem}}.business-page{padding-top:80px;min-height:100vh;background:var(--color-light, #f8fafb)}.business-page .section{padding:5rem 0}.business-page .container{max-width:1200px;margin:0 auto;padding:0 2rem}.business-header{text-align:center;margin-bottom:4rem}.business-header h1{font-family:Playfair Display,serif;font-size:3rem;font-weight:300;letter-spacing:.05em;color:var(--color-dark, #1a1a1a);margin-bottom:1rem}.business-header .lead-text{font-family:Noto Sans JP,sans-serif;font-size:1.125rem;line-height:1.8;color:var(--color-gray, #6a6a6a);max-width:800px;margin:0 auto}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:2rem}.business-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 10px 40px #0000000d;transition:all .4s cubic-bezier(.25,.46,.45,.94);position:relative;display:flex;flex-direction:column;height:100%;min-height:520px}.business-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px #0000001f}.business-card-image{position:relative;width:100%;height:240px;overflow:hidden;background:#fff;flex-shrink:0}.business-card-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}.business-card:hover .business-card-image img{transform:scale(1.05)}.business-status-badge{position:absolute;top:12px;right:12px;padding:6px 12px;font-size:.75rem;font-weight:500;font-family:Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:3px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000001f;z-index:2}.business-status-badge.active{background:#5a9a9cf2;color:#fff}.business-status-badge.coming-soon{background:#fffffff2;color:var(--color-gray, #6a6a6a);border:1px solid rgba(0,0,0,.05)}.business-card-content{padding:2rem;display:flex;flex-direction:column;flex:1}.business-card h3{font-family:Playfair Display,serif;font-size:1.75rem;font-weight:400;color:var(--color-dark, #1a1a1a);margin-bottom:.75rem;letter-spacing:.02em}.business-catchphrase{font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:500;color:var(--misaki-primary, #5A9A9C);margin-bottom:1rem;letter-spacing:.05em}.business-description{font-family:Noto Sans JP,sans-serif;font-size:.95rem;line-height:1.8;color:var(--color-gray, #6a6a6a);margin-bottom:2rem;min-height:100px;flex:1}.business-action{display:flex;justify-content:flex-end;align-items:center;margin-top:auto}.business-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--misaki-primary, #5A9A9C);color:#fff;text-decoration:none;border-radius:4px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;letter-spacing:.05em;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.business-link:hover{background:var(--misaki-primary-dark, #4A8A8C);gap:1rem;transform:translate(2px)}.business-link-arrow{transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.business-link:hover .business-link-arrow{transform:translate(3px)}.business-status-text{font-family:Noto Sans JP,sans-serif;font-size:.875rem;color:#999;letter-spacing:.05em;padding:.75rem 1.5rem;display:inline-flex;align-items:center}.business-contact{background:linear-gradient(180deg,var(--misaki-lightest, #E6F2F3) 0%,var(--washi-cream, #FAF8F3) 100%);padding:6rem 0;text-align:center}.business-contact h2{font-family:Noto Sans JP,sans-serif;font-size:2.5rem;font-weight:300;margin-bottom:1rem;letter-spacing:.08em;color:var(--text-heading, #2C2C2C)}.business-contact .contact-description{font-family:Noto Sans JP,sans-serif;font-size:1.125rem;line-height:1.8;color:var(--text-secondary, #5A5A5A);margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto}.contact-button{display:inline-flex;align-items:center;gap:.75rem;padding:.875rem 2rem;background:transparent;color:var(--misaki-primary, #5A9A9C);text-decoration:none;border:1px solid var(--misaki-primary, #5A9A9C);border-radius:4px;font-family:Noto Sans JP,sans-serif;font-weight:400;letter-spacing:.08em;transition:all .3s ease}.contact-button:hover{background:var(--misaki-primary, #5A9A9C);color:#fff;gap:1.25rem}.contact-button-arrow{transition:transform .3s ease}.contact-button:hover .contact-button-arrow{transform:translate(3px)}@media (min-width: 1200px){.business-card{min-height:540px}.business-card-image{height:250px}}@media (max-width: 1024px){.business-grid{grid-template-columns:repeat(2,1fr)}.business-card{min-height:500px}}@media (max-width: 768px){.business-page{padding-top:60px}.business-page .section{padding:3rem 0}.business-header h1{font-size:2rem}.business-header .lead-text{font-size:1rem}.business-grid{grid-template-columns:1fr;gap:1.5rem}.business-card{min-height:480px}.business-card-image{height:280px}.business-card h3{font-size:1.5rem}.business-description{min-height:80px}.business-contact h2{font-size:2rem}.business-contact .contact-description{font-size:1rem}}@media (max-width: 480px){.business-page .container{padding:0 1rem}.business-page .section{padding:2.5rem 0}.business-header{margin-bottom:3rem}.business-header h1{font-size:1.75rem;margin-bottom:.75rem}.business-header .lead-text{font-size:.95rem}.business-card{min-height:450px}.business-card-image{height:250px}.business-card-content{padding:1.5rem}.business-card h3{font-size:1.25rem}.business-catchphrase{font-size:.875rem}.business-description{font-size:.875rem;min-height:auto}.business-status-badge{font-size:.65rem;padding:4px 8px;top:8px;right:8px}.business-link,.business-status-text{font-size:.8rem;padding:.65rem 1.25rem}.business-contact{padding:4rem 0}.business-contact h2{font-size:1.75rem}.business-contact .contact-description{font-size:.95rem}.contact-button{padding:.75rem 1.75rem;font-size:.875rem}}.contact-form-container{min-height:100vh;background:linear-gradient(180deg,#f8fbfc,#e8f3f5);padding:80px 20px}.contact-form-wrapper{max-width:900px;margin:0 auto;background:#fffffff2;border-radius:20px;box-shadow:0 10px 40px #a8c4c726;overflow:hidden}.contact-header{text-align:center;padding:60px 20px 30px;background:linear-gradient(135deg,#e8f3f5,#f8fbfc);border-bottom:1px solid rgba(168,196,199,.2)}.contact-title{font-family:Montserrat,sans-serif;font-size:2.5rem;font-weight:300;letter-spacing:.05em;color:var(--color-ocean);margin:0 0 8px}.contact-subtitle{font-family:Noto Sans JP,sans-serif;font-size:1rem;color:var(--color-ocean);opacity:.8;margin:0 0 24px}.contact-description{font-family:Noto Sans JP,sans-serif;font-size:.95rem;line-height:1.8;color:#5a7a7d;margin:0}.step-indicator{display:flex;align-items:center;justify-content:center;padding:40px 20px;background:#fafcfd;border-bottom:1px solid rgba(168,196,199,.1)}.step{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2}.step-number{width:40px;height:40px;border-radius:50%;background:#e8f3f5;color:#8fb5b8;display:flex;align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-weight:500;font-size:1.1rem;transition:all .3s ease;border:2px solid #d0e3e1}.step.active .step-number{background:var(--color-ocean);color:#fff;border-color:var(--color-ocean);box-shadow:0 0 0 4px #a8c4c733}.step.completed .step-number{background:#92b4b7;color:#fff;border-color:#92b4b7}.step-label{margin-top:8px;font-family:Noto Sans JP,sans-serif;font-size:.85rem;color:#8a9ea0;transition:color .3s ease}.step.active .step-label,.step.completed .step-label{color:var(--color-ocean);font-weight:500}.step-line{width:120px;height:2px;background:#d0e3e1;margin:0 15px 32px;position:relative}.contact-form,.confirm-form,.complete-form{padding:50px 60px 60px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:30px}.form-group{margin-bottom:0}.form-group:only-child{grid-column:1 / -1}.form-label{display:block;font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:500;color:#4a6669;margin-bottom:10px;letter-spacing:.02em}.required{color:var(--color-coral);font-size:.85em;margin-left:4px}.form-input,.form-textarea{width:100%;padding:14px 18px;font-family:Inter,Noto Sans JP,sans-serif;font-size:.95rem;border:2px solid #e8f3f5;border-radius:10px;background:#fff;transition:all .3s ease;outline:none}.form-input:focus,.form-textarea:focus{border-color:var(--color-ocean);background:#fafcfd;box-shadow:0 0 0 4px #a8c4c71a}.form-input::placeholder,.form-textarea::placeholder{color:#b0c4c6;font-size:.9rem}.form-input.error,.form-textarea.error{border-color:var(--color-coral)}.form-input:disabled,.form-textarea:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.7}.form-textarea{resize:vertical;min-height:150px;line-height:1.6}.confirm-header{margin-bottom:40px;text-align:center}.confirm-header h3{font-family:Noto Sans JP,sans-serif;font-size:1.5rem;color:var(--color-ocean);margin:0 0 12px;font-weight:500}.confirm-header p{font-family:Noto Sans JP,sans-serif;font-size:.95rem;color:#5a7a7d;margin:0;line-height:1.6}.confirm-content{background:#f8fbfc;border-radius:12px;padding:30px;margin-bottom:40px}.confirm-item{display:flex;padding:20px 0;border-bottom:1px solid rgba(168,196,199,.15)}.confirm-item:last-child{border-bottom:none}.confirm-label{flex:0 0 180px;font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:500;color:#4a6669}.confirm-value{flex:1;font-family:Noto Sans JP,sans-serif;font-size:.95rem;color:#2c4446;line-height:1.6;word-break:break-word}.confirm-message{white-space:pre-wrap}.confirm-actions{display:flex;gap:20px;justify-content:center}.complete-icon{text-align:center;margin-bottom:30px;animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.complete-title{font-family:Noto Sans JP,sans-serif;font-size:1.8rem;color:var(--color-ocean);text-align:center;margin:0 0 30px;font-weight:500}.complete-message{background:#f8fbfc;border-radius:12px;padding:30px;margin-bottom:30px;text-align:center}.complete-message p{font-family:Noto Sans JP,sans-serif;font-size:1rem;color:#2c4446;line-height:1.8;margin:0 0 16px}.complete-message p:last-child{margin-bottom:0}.complete-notice{text-align:center;margin-bottom:40px}.complete-notice p{font-family:Noto Sans JP,sans-serif;font-size:.85rem;color:#8a9ea0;line-height:1.8;margin:0}.complete-notice a{color:var(--color-ocean);text-decoration:none;font-weight:500}.complete-notice a:hover{text-decoration:underline}.complete-actions{text-align:center}.new-inquiry-button{padding:14px 40px;font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:500;color:var(--color-ocean);background:#fff;border:2px solid var(--color-ocean);border-radius:50px;cursor:pointer;transition:all .3s ease}.new-inquiry-button:hover{background:var(--color-ocean);color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #a8c4c74d}.error-message{display:block;font-size:.85rem;color:var(--color-coral);margin-top:6px;font-family:Noto Sans JP,sans-serif}.alert{padding:16px 20px;border-radius:10px;margin-bottom:24px;font-family:Noto Sans JP,sans-serif;font-size:.95rem;line-height:1.6}.alert-error{background:#ffe8e4;color:#c44230;border:1px solid #f5c2b8}.alert-success{background:#e8f5f3;color:#2a7d6d;border:1px solid #b8e0d8}.form-actions{margin-top:40px;text-align:center}.submit-button{position:relative;padding:16px 60px;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:500;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,var(--color-ocean) 0%,#8fb5b8 100%);border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #a8c4c74d}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #a8c4c766;background:linear-gradient(135deg,#92b4b7 0%,var(--color-ocean) 100%)}.submit-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 10px #a8c4c74d}.submit-button:disabled{cursor:not-allowed;opacity:.7;background:#c0d5d7}.back-button{padding:16px 50px;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:500;letter-spacing:.02em;color:#4a6669;background:#fff;border:2px solid #d0e3e1;border-radius:50px;cursor:pointer;transition:all .3s ease}.back-button:hover:not(:disabled){background:#f8fbfc;border-color:var(--color-ocean);color:var(--color-ocean);transform:translateY(-2px);box-shadow:0 4px 15px #a8c4c733}.back-button:disabled{cursor:not-allowed;opacity:.5}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.form-notice{margin-top:30px;padding-top:30px;border-top:1px solid #e8f3f5;text-align:center}.form-notice p{font-family:Noto Sans JP,sans-serif;font-size:.85rem;color:#8a9ea0;margin:0;line-height:1.6}@media (max-width: 768px){.contact-form-wrapper{border-radius:0}.contact-header{padding:40px 20px 30px}.contact-title{font-size:2rem}.contact-form,.confirm-form,.complete-form{padding:30px 20px 40px}.form-row{grid-template-columns:1fr;gap:20px}.step-indicator{padding:30px 10px}.step-line{width:60px;margin:0 8px}.step-label{font-size:.75rem}.confirm-label{flex:0 0 120px;font-size:.85rem}.confirm-value{font-size:.9rem}.confirm-actions{flex-direction:column-reverse}.submit-button,.back-button{width:100%;padding:14px 40px}}@media (max-width: 480px){.contact-title{font-size:1.75rem}.contact-description{font-size:.9rem}.form-input,.form-textarea{padding:12px 14px}.step-number{width:32px;height:32px;font-size:.95rem}.step-line{width:40px}.confirm-item{flex-direction:column;padding:16px 0}.confirm-label{margin-bottom:8px}}:root{--misaki-lightest: #E6F2F3;--misaki-light: #B8D4D5;--misaki-base: #7FB5B7;--misaki-primary: #5A9A9C;--misaki-deep: #4A8A8C;--misaki-darkest: #3A7A7C;--washi-white: #FEFEFE;--washi-cream: #FAF8F3;--washi-beige: #F5F2E8;--sumi-gray: #5D5D5D;--sumi-light: #8B8B8B;--wakakusa: #C7DC68;--sakura: #FFDBED;--yamabuki: #F8B500;--fuji: #A59ACA;--asagi: #72B9D1;--text-primary: #3C3C3C;--text-secondary: #5A5A5A;--text-light: #7A7A7A;--text-heading: #2C2C2C;--color-primary: var(--misaki-primary);--color-secondary: var(--misaki-base);--color-accent: var(--sakura);--color-background: var(--washi-cream);--color-background-alt: var(--misaki-lightest);--color-border: rgba(90, 154, 156, .2);--gradient-misaki: linear-gradient(180deg, rgba(127, 181, 183, .3) 0%, rgba(90, 154, 156, .5) 50%, rgba(74, 138, 140, .3) 100%);--gradient-horizon: linear-gradient(180deg, #FEFEFE 0%, #E6F2F3 40%, #7FB5B7 100%);--gradient-morning: linear-gradient(135deg, #FAF8F3 0%, #E6F2F3 50%, #B8D4D5 100%);--font-mincho: "Noto Serif JP", "游明朝", "Yu Mincho", serif;--font-gothic: "Noto Sans JP", "游ゴシック", "Yu Gothic", sans-serif;--font-handwrite: "Klee One", "さわらび明朝", "Sawarabi Mincho", serif;--font-primary: var(--font-gothic);--font-heading: var(--font-handwrite);--font-body: var(--font-mincho);--font-accent: var(--font-handwrite);--spacing-xs: .75rem;--spacing-sm: 1.5rem;--spacing-md: 3rem;--spacing-lg: 4.5rem;--spacing-xl: 6rem;--spacing-xxl: 9rem;--transition-gentle: .4s ease-out;--transition-slow: .8s ease-in-out;--transition-smooth: cubic-bezier(.4, 0, .2, 1);--max-width: 1200px;--header-height: 80px;--line-height-relaxed: 1.8;--shadow-subtle: 0 2px 8px rgba(90, 154, 156, .08);--shadow-soft: 0 4px 16px rgba(90, 154, 156, .12);--shadow-medium: 0 8px 24px rgba(90, 154, 156, .16);--shadow-large: 0 16px 40px rgba(90, 154, 156, .2);--color-ocean-lightest: var(--misaki-lightest);--color-ocean-light: var(--misaki-light);--color-ocean-soft: var(--misaki-base);--color-ocean: var(--misaki-primary);--color-ocean-deep: var(--misaki-deep);--color-ocean-darkest: var(--misaki-darkest);--color-sand-white: var(--washi-white);--color-sand-light: var(--washi-cream);--color-sand: var(--washi-beige);--color-text: var(--text-secondary);--color-text-light: var(--text-light);--color-text-dark: var(--text-heading);--color-dark: var(--sumi-gray);--color-light: var(--washi-cream);--education-primary: #2E5090;--photography-primary: var(--misaki-primary);--marriage-primary: #E4A5A0}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-weight:400;line-height:var(--line-height-relaxed);color:var(--text-primary);background-color:var(--color-background);min-height:100vh;position:relative;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.4;color:var(--text-heading);letter-spacing:.05em;margin-bottom:var(--spacing-sm)}h1{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:var(--spacing-md);font-weight:400}h2{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:var(--spacing-md);font-weight:400}h3{font-size:clamp(1.5rem,3vw,2rem);font-weight:400}h4{font-size:clamp(1.25rem,2.5vw,1.5rem)}p{margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.text-lead{font-size:1.125rem;line-height:1.9;color:var(--text-primary);font-weight:300;letter-spacing:.02em}.text-small{font-size:.875rem;color:var(--text-light)}.text-handwrite{font-family:var(--font-handwrite);letter-spacing:.08em;color:var(--text-primary);opacity:.9}a{color:var(--misaki-primary);text-decoration:none;transition:opacity var(--transition-gentle)}a:hover{opacity:.7}button,.btn{font-family:var(--font-gothic);font-size:1rem;font-weight:400;padding:var(--spacing-xs) var(--spacing-md);border:none;border-radius:2px;cursor:pointer;transition:all var(--transition-gentle);letter-spacing:.08em;display:inline-block}.btn-primary{background-color:var(--misaki-primary);color:var(--washi-white)}.btn-primary:hover{background-color:var(--misaki-deep)}.btn-secondary{background-color:transparent;color:var(--misaki-primary);border:1px solid var(--misaki-primary)}.btn-secondary:hover{background-color:var(--misaki-primary);color:var(--washi-white)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md)}.container-wide{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}section{padding:var(--spacing-xl) 0}.section-hero{padding:var(--spacing-xxl) 0;min-height:70vh;display:flex;align-items:center;justify-content:center;position:relative}.hero-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.9;z-index:-1}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#faf8f333,#e6f2f380);z-index:-1}.hero-content{text-align:center;z-index:1}.hero-title{font-family:var(--font-handwrite);color:var(--washi-white);font-size:clamp(2.5rem,6vw,4rem);font-weight:400;letter-spacing:.1em;margin-bottom:var(--spacing-sm);text-shadow:0 2px 20px rgba(0,0,0,.1)}.hero-subtitle{font-family:var(--font-gothic);color:var(--washi-white);font-size:clamp(1rem,2vw,1.25rem);font-weight:300;letter-spacing:.2em;opacity:.9;text-shadow:0 2px 10px rgba(0,0,0,.1)}.photo-section{position:relative;min-height:60vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.8}.photo-content{position:relative;z-index:1;background:#faf8f3f2;padding:var(--spacing-lg);max-width:600px;text-align:center}.card{background:var(--washi-white);border-radius:4px;padding:var(--spacing-md);box-shadow:0 2px 8px #0000000a;transition:transform var(--transition-gentle)}.card:hover{transform:translateY(-2px)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-sm);margin:var(--spacing-md) 0}.gallery-item{position:relative;overflow:hidden;aspect-ratio:1;background:var(--misaki-lightest)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:opacity var(--transition-gentle)}.gallery-item:hover img{opacity:.85}input,textarea,select{font-family:var(--font-gothic);font-size:1rem;padding:var(--spacing-xs);border:1px solid var(--misaki-lightest);border-radius:2px;background:var(--washi-white);transition:border-color var(--transition-gentle);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--misaki-primary)}dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:var(--spacing-sm)}dt{font-weight:400;color:var(--text-secondary);padding-right:var(--spacing-sm)}dd{color:var(--text-primary)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.fade-in{opacity:0;animation:fadeIn 1.2s ease-out forwards}@keyframes fadeIn{to{opacity:1}}@media (max-width: 768px){html{font-size:14px}.container{padding:0 var(--spacing-sm)}section{padding:var(--spacing-lg) 0}.section-hero{padding:var(--spacing-xl) 0;min-height:60vh}.grid-2,.grid-3,dl{grid-template-columns:1fr}dt{margin-top:var(--spacing-sm);font-weight:500}dd{margin-bottom:var(--spacing-sm)}}@media (max-width: 480px){html{font-size:13px}.btn{width:100%;text-align:center}.gallery{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}:focus-visible{outline:2px solid var(--misaki-primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--misaki-lightest)}::-webkit-scrollbar-thumb{background:var(--misaki-base);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--misaki-primary)}.app.transitioning{position:relative}.app.transitioning:before{content:"";position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--misaki-primary) 0%,var(--misaki-light) 50%,var(--misaki-primary) 100%);z-index:9999;animation:loading .5s ease-out}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(0)}}html{scroll-behavior:smooth}[data-scroll-position]{scroll-margin-top:var(--header-height)}.main-content{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.main-content{animation-duration:.3s}}
