*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--green-deep: #1a2e1c;--green-dark: #243d26;--green-base: #3d5a3e;--green-mid: #4a6741;--green-soft: #5a7a5c;--green-pale: #e8efe9;--green-wash: #f0f5f0;--cream: #f4f0e8;--cream-light: #faf8f4;--cream-warm: #f0ebe0;--brown: #8c7355;--brown-light: #a89478;--beige-bg: #f7f3ee;--beige-border: #ddd0c0;--beige-accent: #b8a080;--beige-text: #6a5a48;--text-on-dark: #f0ede6;--text-sub-on-dark: rgba(240, 237, 230, .6);--text-on-light:#333333;--text-sub: #666666;--border-dark: rgba(255,255,255,.15);--border-light: #c8bda8;--white: #ffffff;--serif: "Shippori Mincho B1", serif;--sans: "Noto Sans JP", sans-serif}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--sans);color:var(--text-on-dark);line-height:1.8;letter-spacing:.08em;background:var(--green-base)}img{display:block;width:100%;height:100%;object-fit:cover}.section{padding:80px 24px;max-width:960px;margin:0 auto}.section--narrow{padding:60px 24px;max-width:720px;margin:0 auto}.section--wide{padding:100px 24px;max-width:960px;margin:0 auto}@media(min-width:768px){.section{padding:100px 40px}.section--narrow{padding:80px 40px}.section--wide{padding:120px 40px}}.heading-on-light{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--green-base);border-left:3px solid var(--green-base);padding-left:14px;margin-bottom:48px;letter-spacing:.15em}.heading-on-dark{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--cream);border-left:3px solid rgba(255,255,255,.3);padding-left:14px;margin-bottom:48px;letter-spacing:.15em}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;padding:40px 24px}.hero-bg{position:absolute;inset:0;z-index:0}.hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.3) saturate(.8)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#1e352099,#1e352033,#1e3520b3),radial-gradient(ellipse at 50% 50%,rgba(61,90,62,.3) 0%,transparent 70%);z-index:1}.hero-content{position:relative;z-index:2;max-width:720px}.hero-catch{font-family:var(--serif);font-size:2rem;font-weight:800;color:var(--cream);line-height:1.9;margin-bottom:32px;letter-spacing:.12em;text-shadow:0 2px 20px rgba(0,0,0,.3)}@media(min-width:768px){.hero-catch{font-size:2.8rem}}.hero-sub{font-family:var(--serif);font-size:1rem;color:#f0ede6d9;line-height:2.2;letter-spacing:.08em;max-width:520px;margin:0 auto 16px}.hero-label{font-family:var(--sans);font-size:.8rem;color:#f0ede699;letter-spacing:.3em}.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translate(-50%);z-index:2;color:var(--text-sub-on-dark);font-size:.7rem;letter-spacing:.2em;display:flex;flex-direction:column;align-items:center;gap:8px}.hero-scroll:after{content:"";display:block;width:1px;height:40px;background:linear-gradient(to bottom,var(--text-sub-on-dark),transparent)}.profile{background:var(--green-base);padding:80px 24px}@media(min-width:768px){.profile{padding:100px 40px}}.profile-inner{max-width:960px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:40px}@media(min-width:768px){.profile-inner{flex-direction:row;gap:60px}}.profile-photo{width:200px;height:200px;border-radius:50%;background:#ffffff0f;border:1px solid var(--border-dark);display:flex;align-items:center;justify-content:center;color:var(--text-sub-on-dark);font-size:.75rem;flex-shrink:0;overflow:hidden}.profile-text{text-align:center}@media(min-width:768px){.profile-text{text-align:left}}.profile-name{font-family:var(--serif);font-size:1.8rem;font-weight:800;color:var(--cream);margin-bottom:8px;letter-spacing:.15em}.profile-role{font-family:var(--sans);font-size:.8rem;color:var(--text-sub-on-dark);margin-bottom:28px;letter-spacing:.25em}.profile-bio{font-family:var(--serif);font-size:1.05rem;font-weight:500;color:var(--text-on-dark);line-height:2.2}.tabs-section{background:var(--cream-light)}.tab-nav{display:flex;gap:0;border-bottom:2px solid var(--border-light);margin-bottom:40px;overflow-x:auto}.tab-btn{flex:1;min-width:80px;padding:16px 8px;font-family:var(--serif);font-size:.9rem;font-weight:700;color:var(--text-sub);background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .2s;letter-spacing:.08em;text-align:center}.tab-btn:hover{color:var(--green-base)}.tab-btn.active{color:var(--green-base);border-bottom-color:var(--green-base)}.tab-panel{display:none}.tab-panel.active{display:block}.tab-description{font-family:var(--sans);font-size:1rem;margin-bottom:32px;color:var(--text-on-light);line-height:2}.works-grid{display:grid;grid-template-columns:1fr;gap:20px}@media(min-width:768px){.works-grid{grid-template-columns:1fr 1fr}}.work-item{background:var(--white);border:1px solid var(--border-light);border-radius:3px;overflow:hidden;transition:transform .2s}.work-item:hover{transform:translateY(-2px)}.work-thumb{width:100%;aspect-ratio:16 / 10;background:var(--green-pale);overflow:hidden}.work-thumb img{transition:transform .3s}.work-item:hover .work-thumb img{transform:scale(1.03)}.work-caption{padding:16px;font-family:var(--sans);font-size:.85rem;color:var(--text-sub)}.work-label{display:inline-block;font-size:.7rem;font-weight:700;color:var(--green-base);background:var(--green-pale);padding:2px 8px;border-radius:2px;letter-spacing:.08em;margin-bottom:6px}.pricing-section{background:var(--green-deep)}.pricing-lead{font-family:var(--serif);font-size:1.05rem;color:var(--text-sub-on-dark);text-align:center;margin-bottom:40px;line-height:2}.pricing-patterns{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:40px}@media(min-width:768px){.pricing-patterns{grid-template-columns:1fr 1fr;gap:20px}}.pattern-card{background:#ffffff0f;border:1px solid var(--border-dark);border-radius:6px;padding:24px;transition:background .3s}.pattern-card:hover{background:#ffffff1a}.pattern-card-who{font-family:var(--sans);font-size:.7rem;color:var(--green-pale);background:#ffffff14;display:inline-block;padding:2px 10px;border-radius:2px;margin-bottom:10px;letter-spacing:.06em}.pattern-card-title{font-family:var(--serif);font-size:1.1rem;font-weight:700;color:var(--cream);margin-bottom:8px;letter-spacing:.06em}.pattern-card-items{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.pattern-card-item{font-size:.7rem;padding:2px 8px;border-radius:3px;background:#ffffff14;color:var(--text-sub-on-dark)}.pattern-card-price{font-family:var(--serif);font-size:.85rem;color:var(--text-sub-on-dark)}.pattern-card-price strong{font-size:1.4rem;font-weight:800;color:var(--cream)}.pricing-dl{text-align:center;margin-top:40px;padding-top:32px;border-top:1px solid var(--border-dark)}.pricing-dl-text{font-family:var(--sans);font-size:.85rem;color:var(--text-sub-on-dark);margin-bottom:16px;line-height:2}.pricing-dl-btn{display:inline-block;font-family:var(--serif);font-size:.95rem;font-weight:700;color:var(--white);background:var(--brown);padding:14px 40px;border-radius:4px;text-decoration:none;letter-spacing:.12em;transition:opacity .3s}.pricing-dl-btn:hover{opacity:.85}.pricing-footnote{text-align:center;margin-top:24px;font-family:var(--sans);font-size:.8rem;color:var(--text-sub-on-dark);line-height:2}.visual-break{width:100%;height:320px;overflow:hidden;position:relative}.visual-break img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}.visual-break-caption{position:absolute;bottom:12px;right:16px;font-size:.65rem;color:#fff6;font-family:var(--sans)}@media(min-width:768px){.visual-break{height:400px}}.mission-section{background:var(--green-deep);color:var(--cream);padding:64px 24px;text-align:center}.mission-inner{max-width:600px;margin:0 auto}.mission-text{font-family:var(--serif);font-size:1.15rem;font-weight:400;line-height:2.2;letter-spacing:.06em;color:#f4f0e8d9}.mission-headline{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--cream);letter-spacing:.08em;margin-bottom:24px;line-height:1.6}.mission-text strong{color:var(--cream);font-weight:600}.reason-section{background:var(--cream-light)}.reason-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-top:32px}.reason-card{display:flex;gap:20px;align-items:flex-start}.reason-num{font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--green-base);line-height:1;flex-shrink:0;opacity:.35;min-width:40px;text-align:center}.reason-title{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--green-dark);letter-spacing:.04em;margin-bottom:8px;line-height:1.5}.reason-text{font-family:var(--sans);font-size:.88rem;color:var(--text-sub);line-height:2}@media(min-width:768px){.reason-grid{gap:40px}}.words-section{background:var(--green-base)}.words-list{display:flex;flex-direction:column;gap:64px}.word-item{border-left:2px solid rgba(255,255,255,.18);padding-left:28px}.word-quote{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--cream);line-height:2.2;margin-bottom:8px}@media(min-width:768px){.word-quote{font-size:1.35rem}}.word-context{font-family:var(--sans);font-size:.85rem;color:var(--text-sub-on-dark)}.portfolio-section{background:var(--green-dark)}.portfolio-placeholder{text-align:center;padding:48px 24px;border:2px dashed rgba(255,255,255,.15);border-radius:4px;color:var(--text-sub-on-dark);font-family:var(--sans);font-size:.9rem;line-height:2}.testimonials-section{background:var(--cream-warm)}.testimonials-grid{display:grid;grid-template-columns:1fr;gap:20px}@media(min-width:768px){.testimonials-grid{grid-template-columns:1fr 1fr;gap:24px}}.testimonial-card{background:var(--white);border:1px solid var(--beige-border);border-radius:6px;padding:28px 24px;box-shadow:0 1px 4px #0000000a}.testimonial-quote{font-family:var(--serif);font-size:.95rem;color:var(--text-on-light);line-height:2;letter-spacing:.04em;margin-bottom:16px}.testimonial-quote:before{content:"“";font-size:2rem;color:var(--green-soft);line-height:1;display:block;margin-bottom:8px}.testimonial-attr{font-family:var(--sans);font-size:.75rem;color:var(--text-sub);letter-spacing:.06em}.testimonial-label{font-family:var(--sans);font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--white);background:var(--green-base);display:inline-block;padding:3px 10px;border-radius:2px;margin-bottom:14px}.testimonial-quote strong{color:var(--green-deep);font-weight:800;background:#3d8b4f1f;padding:2px 5px;border-radius:2px}.testimonial-note{text-align:center;margin-top:28px;font-family:var(--sans);font-size:.75rem;color:var(--text-sub);letter-spacing:.06em}.nasu-section{background:var(--cream-light)}.nasu-visual{width:100%;aspect-ratio:21 / 9;overflow:hidden;margin-bottom:0}.nasu-body{max-width:960px;margin:0 auto;padding:60px 24px 80px;display:flex;flex-direction:column;gap:24px}@media(min-width:768px){.nasu-body{padding:80px 40px 100px}}.nasu-heading{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--green-base);border-left:3px solid var(--green-base);padding-left:14px;letter-spacing:.15em}.nasu-text{font-family:var(--serif);font-size:1.05rem;font-weight:500;line-height:2.2;color:var(--text-on-light)}.nasu-text p+p{margin-top:20px}.contact-section{background:var(--green-deep);text-align:center}.contact-lead{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin-bottom:40px;color:var(--text-on-dark);line-height:2.2}.contact-sns{display:flex;justify-content:center;gap:24px;margin-bottom:40px;flex-wrap:wrap}.sns-link{display:inline-flex;align-items:center;gap:8px;padding:16px 36px;border:1px solid var(--border-dark);border-radius:3px;color:var(--cream);text-decoration:none;font-family:var(--sans);font-size:.9rem;font-weight:700;letter-spacing:.12em;transition:all .2s}.sns-link:hover{background:#ffffff1a;border-color:var(--cream)}.contact-or{font-size:.85rem;color:var(--text-sub-on-dark);margin-bottom:24px}.contact-email{font-size:1rem;color:var(--cream);font-weight:700}.footer{background:var(--green-deep);color:#ffffff4d;text-align:center;padding:40px 24px;font-size:.75rem;letter-spacing:.15em}.footer-logo{width:80px;height:80px;margin:0 auto 16px;border:2px dashed rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#ffffff40}
