p{max-width:68ch}
.card,.work-card{display:flex;flex-direction:column}
.card-body,.work-meta{flex:1}
.grid-3>.card{height:100%}
.btn,.nav-cta,.menu-btn,.back-top,input,select,textarea,a{transition:background-color .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}
.btn:disabled{opacity:.58;cursor:wait;transform:none}
.btn:focus-visible,.nav-list a:focus-visible,.menu-btn:focus-visible,.back-top:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #dc9b72;outline-offset:3px}
.section.soft{background:#f4efe5}
.fiction-label{display:inline-flex;align-items:center;border-radius:99px;padding:.28rem .75rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;background:#efe2d7;color:#75432f}
.portfolio-note{max-width:820px;margin:42px auto 0;padding:18px 20px;border:1px solid rgba(38,61,50,.16);border-radius:12px;background:rgba(255,255,255,.65);font-size:.82rem;color:#4e5b54}
.footer-sample{border-top:1px solid rgba(255,255,255,.15);padding-top:20px;margin-top:22px;color:#b9c5bf;font-size:.76rem;line-height:1.7}
.footer-sample strong{color:#dce4df}
.cta-band{padding:74px 0;background:var(--moss);color:white}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:34px}
.cta-inner h2{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(1.8rem,3vw,2.8rem);margin:0 0 .6rem}
.cta-inner p{margin:0}
.service-points{list-style:none;padding:0;margin:1.15rem 0 0}
.service-points li{border-top:1px solid #ded8cd;padding:.65rem 0}
.service-points strong{color:var(--forest)}
.work-card:nth-child(2){background:#f3eee5}
.work-card:nth-child(3){background:#e8ece5}
.work-card:nth-child(4) .work-meta{background:#263d32;color:white}
.work-card img{object-position:center}
.work-card:nth-child(2) img{object-position:52% center}
.work-card:nth-child(3) img{object-position:center 38%}
.work-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(38,61,50,.16)}
.work-details dt{font-size:.76rem;font-weight:800;color:var(--clay);letter-spacing:.06em}
.work-details dd{margin:.2rem 0 0;font-size:.9rem;line-height:1.7}
.work-card:nth-child(4) .work-details{border-color:rgba(255,255,255,.2)}
.demo-note{margin-bottom:24px;padding:14px 16px;border-left:4px solid var(--sage);background:#eef1eb;font-size:.88rem}
.consent{display:flex;gap:.7rem;align-items:flex-start}
.consent input{width:auto;margin-top:.5rem}
.privacy-details{margin:0 0 22px;border:1px solid #d8d2c7;border-radius:10px;padding:12px 16px;background:#faf8f3}
.privacy-details summary{font-weight:700;cursor:pointer}
.privacy-details p{font-size:.85rem;margin:.8rem 0 0}
.status:focus{outline:none}
.status.demo{background:#e9ece6;color:#304438}
.field-help{font-size:.78rem;color:#5f6963;margin:.3rem 0 0}
.menu-btn.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.menu-btn span{transition:transform .2s,opacity .2s}
.hero-content{animation:gentle-up .7s ease-out both}
@keyframes gentle-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:820px){.cta-inner{display:block}.cta-inner .btn{margin-top:24px}.work-details{grid-template-columns:1fr}.portfolio-note{margin-top:26px}.hero-content{padding-top:110px}.footer{padding-top:48px}}
@media(max-width:480px){body{font-size:.96rem}.section{padding:64px 0}.page-title h1{font-size:2rem}.hero h1{font-size:2.45rem}.section-head h2{font-size:1.9rem}.work-meta{padding:22px 20px}.cta-band{padding:58px 0}.form,.contact-panel{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
