:root{color-scheme:light;--paper:#f3f0e8;--ink:#252722;--accent:#a63220;--line:#c9c5ba;--muted:#5e605b;--light:#faf8f2}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.8 "Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
header,footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem max(1rem,calc((100% - 1040px)/2));border-bottom:1px solid var(--line);font-size:.85rem}
footer{border-top:1px solid var(--line);border-bottom:0;margin-top:3rem;color:var(--muted)}
main{max-width:1040px;margin:0 auto;padding:clamp(1.2rem,4vw,3rem) 1rem}
h1,h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;text-wrap:balance}h1{font-size:clamp(2rem,6vw,3.6rem);line-height:1.3;margin:.5rem 0 1rem}h2{font-size:1.4rem;margin:0 0 1rem}
p{margin:.6rem 0}.eyebrow{color:var(--accent);font-weight:700;letter-spacing:.08em}.intro{margin-bottom:1.5rem}.hint{font-size:.88rem;color:var(--muted)}
a{color:var(--accent);text-underline-offset:.2em}.notice{padding:1rem;border:1px solid var(--line);background:var(--light);margin-block:1.5rem}.notice.error{border-color:var(--accent);color:var(--accent)}
.steps{display:flex;gap:clamp(.5rem,3vw,2rem);list-style:none;padding:1rem 0;border-block:1px solid var(--line);font-size:.9rem}.steps [aria-current]{font-weight:700;color:var(--accent)}
.workspace{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin:2rem 0}.workspace section{min-width:0}.workspace section+section{border-left:1px solid var(--line);padding-left:2.5rem}
label{display:block;font-weight:700;margin:.75rem 0 .25rem}textarea,input{font:inherit;width:100%;padding:.8rem;border:1px solid #86877d;background:var(--light);color:var(--ink);border-radius:3px}textarea{resize:vertical;min-height:130px}input{max-width:36rem;display:block}
button{font:inherit;font-weight:700;border:1px solid var(--accent);border-radius:3px;background:var(--accent);color:var(--light);padding:.65rem 1rem;min-height:46px;cursor:pointer;margin:.75rem .4rem .75rem 0}
button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button:disabled{cursor:not-allowed;opacity:.5}button:not(:disabled):hover{filter:brightness(.9)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}.images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.image-choice{background:var(--light);color:var(--ink);padding:.4rem;border:2px solid var(--line);margin:0}.image-choice[aria-pressed="true"]{border-color:var(--accent)}
img,video{display:block;max-width:100%;height:auto;object-fit:contain}.image-choice img{width:100%;max-height:240px}.image-choice span{display:block;font-size:.85rem}#result video{width:100%;max-height:70vh}#result h3{margin-bottom:.5rem}
.qr-panel{border-block:1px solid var(--line);padding:2rem 0;margin:1.5rem 0;text-align:center}#qr{width:min(100%,360px);margin:auto}#qr svg{width:100%;height:auto;display:block}
.upload-section{border-block:1px solid var(--line);margin:2rem 0;padding:2rem 0}.upload-section select{width:100%;max-width:36rem;font:inherit;padding:.8rem;color:var(--ink);background:var(--light);border:1px solid #86877d;border-radius:3px}.upload-preview{margin:1rem 0;max-width:360px}.upload-preview img{max-height:320px}.check-label{display:flex;align-items:flex-start;gap:.7rem;max-width:44rem;font-size:.9rem;font-weight:400;cursor:pointer;padding:.5rem 0}.check-label input{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.25rem}.upload-section .hint{overflow-wrap:anywhere}button,a,input,select{touch-action:manipulation}
@media(max-width:650px){.workspace{grid-template-columns:1fr;gap:2rem}.workspace section+section{border-left:0;border-top:1px solid var(--line);padding:2rem 0 0}header span{font-size:.8rem}.steps{justify-content:space-between;gap:.25rem}button{width:100%;margin:.5rem 0}.actions{display:block}}
