@font-face{font-family:'Noto Sans JP';src:url('fonts/NotoSansJP.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#3e2d26;--muted:#766b5d;--khaki:#777f60;--line:#dcd7c9;--paper:#f7f4ec;--soft:#e7e8d9}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper) url('paper-grain.svg');font-family:'Noto Sans JP',sans-serif;font-size:15px;line-height:1.95}button,input{font:inherit}button{cursor:pointer}a{color:inherit}button,input{touch-action:manipulation}strong{font-weight:700}.hero{max-width:1120px;height:250px;margin:0 auto;position:relative;background:#e6dfd0 url('studio.jpg') center 58%/cover;display:flex;justify-content:space-between;padding:54px 62px}.wordmark{font-family:Arial,sans-serif;font-size:38px;letter-spacing:.3em;text-decoration:none;line-height:1.2}.wordmark span{display:block;font-size:9px;letter-spacing:.25em;margin-top:12px}.hero-title{align-self:flex-start;text-align:right}.hero-title p{font-size:9px;letter-spacing:.18em;margin:0 0 8px}.hero-title>span{font-size:18px;letter-spacing:.2em}.hero-title:after{content:'';display:block;height:1px;background:var(--khaki);width:100px;margin:12px 0 0 auto}main{max-width:940px;margin:auto;padding:0 42px}.opening{padding:44px 0 34px}.eyebrow{font-size:10px;letter-spacing:.24em;color:var(--khaki);margin:0 0 12px}h1{font-size:28px;font-weight:500;letter-spacing:.1em;line-height:1.65;margin:0 0 14px}p{margin:0 0 10px}.opening>p:last-child{font-size:14px;color:var(--muted)}.section-title{display:flex;align-items:center;gap:20px;margin:30px 0 22px}.section-title>span{font-family:Georgia,serif;font-size:34px;font-style:italic;color:#a2a68e}.section-title .eyebrow{margin:0;font-size:9px}.section-title h2{font-size:23px;font-weight:500;letter-spacing:.15em;margin:0}.info-list{display:grid;gap:16px}.info-card{display:flex;gap:22px;padding:28px 30px;background:#fffefaab;border:1px solid #fffdf5;border-radius:14px;box-shadow:0 5px 25px #75624208;position:relative}.item-icon{width:62px;height:62px;flex-shrink:0;background:var(--soft);color:#667052;border-radius:50%;display:grid;place-items:center}.item-icon svg{width:40px;height:40px}.item-content{flex:1;min-width:0}.item-content h3{font-size:18px;letter-spacing:.09em;font-weight:500;line-height:1.6;margin:0 0 16px;padding-bottom:9px;border-bottom:1px solid var(--line)}.item-content p:last-child{margin-bottom:0}.khaki-box{background:var(--soft);border-left:3px solid #929978;border-radius:6px;padding:14px 18px;margin:16px 0;color:#414333}.khaki-box p{margin:0;font-weight:500}.info-card:after{content:'';position:absolute;right:14px;bottom:12px;width:28px;height:50px;background:url('botanical.svg') center/contain no-repeat;opacity:.26;pointer-events:none}.next-area{text-align:center;padding:40px 0 22px}.next-area p{font-size:13px;color:var(--muted);margin-bottom:20px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:40px;background:var(--khaki);color:white;border:0;border-radius:999px;min-height:52px;padding:12px 32px;letter-spacing:.1em}.primary:hover{background:#626b4c}.primary:disabled{opacity:.5;cursor:not-allowed}.back{background:none;border:0;color:var(--muted);padding:14px 0;font-size:13px;min-height:48px}.agreement-title{text-align:center;margin:22px 0 32px}.agreement-title p:last-child{font-size:13px;color:var(--muted)}.contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contract-card{padding:24px;background:#fffefaab;border:1px solid #fffdf5;border-radius:12px;display:flex;flex-direction:column;font-size:13px}.contract-heading{display:flex;align-items:center;gap:14px;margin-bottom:18px}.contract-heading>span{display:grid;place-items:center;border-radius:50%;background:var(--soft);color:#586349;font-family:Georgia,serif;font-size:24px;width:48px;height:48px;flex-shrink:0}.contract-heading h3{font-size:17px;font-weight:500;margin:0;letter-spacing:.05em;border-bottom:1px solid var(--line);padding-bottom:8px;flex:1}.acknowledge{display:flex;align-items:center;gap:10px;background:#e7e8d9b3;padding:10px 12px;border-radius:6px;margin-top:auto;cursor:pointer}.contract-card>p:last-of-type{margin-bottom:22px}input[type=checkbox],input[type=radio]{width:18px;height:18px;flex-shrink:0;accent-color:var(--khaki);margin:0}.photo-choice{border:0;padding:0;margin:0 0 20px}.photo-choice legend{font-size:12px;margin-bottom:10px}.photo-choice label{display:flex;align-items:center;gap:10px;margin:8px 0;cursor:pointer}.signature-card{margin-top:26px;padding:28px;background:#fffefaab;border:1px solid #fffdf5;border-radius:12px}.signature-card h2{font-size:20px;font-weight:500;margin:0 0 20px}.final-consent{display:flex;align-items:flex-start;gap:12px;font-size:14px}.final-consent input{margin-top:5px}.identity-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}.identity-fields label{font-size:13px;color:var(--muted)}.identity-fields .address{grid-column:1/-1}.identity-fields input{display:block;width:100%;min-height:48px;border:1px solid var(--line);border-radius:5px;background:#fffdf8;color:var(--ink);padding:9px 12px;margin-top:6px}.mobile-only{display:none}footer{display:flex;align-items:center;justify-content:center;gap:20px;color:var(--muted);font-size:10px;letter-spacing:.2em;padding:65px 20px 45px}footer span{width:60px;height:1px;background:#b6b09f}:focus-visible{outline:2px solid var(--khaki);outline-offset:4px}h1:focus{outline:0}
@media(max-width:640px){body{font-size:14px}.hero{height:178px;padding:28px 26px;background-position:57% center}.wordmark{font-size:29px}.wordmark span{font-size:7px;margin-top:8px}.hero-title{display:none}main{padding:0 18px}.opening{padding:28px 6px 8px}h1{font-size:23px}.mobile-only{display:block}.section-title{gap:14px;margin-top:28px}.section-title h2{font-size:21px}.info-card{padding:22px 18px;gap:14px}.item-icon{width:42px;height:42px}.item-icon svg{width:29px;height:29px}.item-content h3{font-size:16px}.item-content p{font-size:13px}.khaki-box{margin-left:-56px;padding:13px 14px;font-size:13px}.contract-grid{grid-template-columns:1fr;gap:14px}.contract-card{padding:22px}.signature-card{padding:22px}.identity-fields{grid-template-columns:1fr}.agreement-title{margin:12px 0 24px}.contract-heading h3{font-size:17px}.next-area{padding-top:30px}footer{gap:12px;font-size:8px}footer span{width:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:white;font-size:10pt}.hero,.back,#guide,.next-area,footer{display:none!important}main{max-width:none;padding:0}.contract-grid{grid-template-columns:1fr 1fr;gap:8px}.contract-card{break-inside:avoid;padding:12px;border:1px solid #ddd;font-size:9pt}.contract-heading{margin-bottom:8px}.signature-card{break-inside:avoid}.agreement-title{margin:0 0 16px}.primary{display:none}}
.save-note{font-size:12px;color:var(--muted);margin-top:26px}.validation-message{color:#8e4436;font-size:13px}#completion-controls{text-align:center}.print-only,.print-value{display:none}
@page{size:A4 portrait;margin:10mm}
@media print{
 html{scroll-behavior:auto}body{font-size:9pt;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 body:not(.view-contract) #guide{display:block!important}body:not(.view-contract) .opening{padding:0}
 body.view-contract #agreement{display:block!important}.agreement-title{margin:0 0 10px}.agreement-title h1{font-size:20pt;margin:0 0 5px}.agreement-title .eyebrow{font-size:7pt;margin-bottom:4px}.agreement-title p:last-child{font-size:8pt;margin:0}
 .contract-grid{gap:7px}.contract-card{padding:10px;font-size:8pt;line-height:1.5}.contract-heading{gap:9px;margin-bottom:8px}.contract-heading>span{width:28px;height:28px;font-size:15pt}.contract-heading h3{font-size:10pt;padding-bottom:4px}.contract-card p{margin:0 0 6px}.contract-card>p:last-of-type{margin-bottom:8px}.acknowledge{padding:5px 8px;gap:7px}.photo-choice{margin:0 0 8px}.photo-choice legend{font-size:8pt;margin-bottom:3px}.photo-choice label{margin:4px 0}.signature-card{margin-top:10px;padding:12px;font-size:8pt}.signature-card h2{font-size:11pt;margin:0 0 7px}.final-consent{font-size:8pt}.identity-fields{margin-top:9px;gap:8px;grid-template-columns:1fr 1fr}.identity-fields label{font-size:8pt}.identity-fields input{display:none}.print-value{display:block;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;border-bottom:1px solid #aaa;padding:4px 0;min-height:22px}.print-only{display:block;font-size:7pt;text-align:right;margin:6px 0 0}input[type=checkbox],input[type=radio]{width:11px;height:11px}.final-consent input{margin-top:2px}#completion-controls{display:none}
 .info-card{break-inside:avoid;padding:12px}.section-title{margin:15px 0 10px}.item-content p{font-size:9pt}
}
@media print{
 .contract-card{padding:8px;font-size:8pt;line-height:1.35}.contract-heading{margin-bottom:5px}.contract-heading>span{width:24px;height:24px;font-size:13pt}.contract-card p{margin-bottom:4px}.contract-card>p:last-of-type{margin-bottom:6px}.acknowledge{padding:4px 6px}.contract-grid{gap:6px}.photo-choice{margin-bottom:6px}.photo-choice label{margin:3px 0}.signature-card{padding:9px;margin-top:8px}.identity-fields{margin-top:6px;gap:5px}.print-value{padding:2px 0;min-height:18px}.agreement-title{margin-bottom:7px}.agreement-title p:last-child{display:none}
}
.hand-sign{margin-top:20px}.sign-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px}.sign-heading button{border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--muted);padding:6px 12px;font-size:12px;min-height:40px}.sign-hint{font-size:12px;color:var(--muted);margin:6px 0 10px}#signature-pad{display:block;width:100%;height:auto;aspect-ratio:1000/220;background:#fffdf8;border:1px solid var(--line);border-radius:6px;touch-action:none;cursor:crosshair}
@media print{.hand-sign{margin-top:6px}.sign-heading{font-size:8pt}.sign-heading button,.sign-hint{display:none}#signature-pad{width:100%;height:17mm;object-fit:contain;object-position:left center;border:1px solid #aaa;border-radius:0}.signature-card{padding:7px}.contract-card{padding:6px}.contract-heading{margin-bottom:3px}.contract-card p{margin-bottom:3px}.contract-card>p:last-of-type{margin-bottom:4px}}
