.contributionPage { width:min(680px,calc(100% - 36px)); margin:auto; }
.contributionLogo { font:32px WakanHGGyosho,serif; text-decoration:none; color:var(--ink); }
.informationHeader .contributionLogo { font:32px WakanHGGyosho,serif; }
.contributionPage h1 { font-size:20px; font-weight:400; margin:30px 0 12px; }
.contributionPage p { margin:12px 0; }
.previewNotice { border-left:2px solid var(--accent); padding-left:12px; font-size:13px; }
#contributionForm { margin:30px 0; }
#contributionForm label { display:block; margin:20px 0; }
#contributionForm label > span { display:block; margin-bottom:8px; }
#contributionForm input:not([type=checkbox]):not([type=radio]):not([type=range]), #contributionForm textarea { width:100%; padding:10px; border:1px solid var(--line); background:transparent; font:16px var(--sans); color:var(--ink); }
#contributionForm input[type=range] { width:100%; min-height:36px; accent-color:var(--accent); }
#contributionForm .check { display:flex; gap:12px; align-items:flex-start; }
.check input { margin-top:7px; }
#imagePreview { display:block; max-width:100%; max-height:28svh; max-height:28vh; margin:auto; }
#imageEditor { position:relative; }
#imageEditor canvas { position:sticky; top:8px; z-index:2; background:var(--paper,#faf9f5); box-shadow:0 0 0 8px var(--paper,#faf9f5); }
.imageActions { display:flex; gap:30px; }
#imageEditor fieldset { border:1px solid var(--line); padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
#imageEditor fieldset p { grid-column:1/-1; font-size:12px; }
#imageEditor fieldset label { margin:6px 0; }
#contributionForm button { border:1px solid var(--line,#b9aa94); border-radius:3px; padding:10px 16px; min-height:44px; background:var(--paper,#faf9f5); color:var(--ink); cursor:pointer; }
#contributionForm .submitContribution,#contributionForm #prepare { background:var(--accent,#973f32); color:#fff; border-color:var(--accent,#973f32); margin:12px 0; }
#contributionForm button:disabled { opacity:.5; cursor:wait; }
#contributionForm button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
#contributionForm select { max-width:100%; padding:10px; font:16px var(--sans); }
#contributionForm small { display:block; margin-top:8px; }
.contributionPage .siteFooter { grid-template-columns:1fr auto; }
.contributionPage { --form-blue:#edf3f5; --form-green:#edf2e8; --form-apricot:#faf0e3; }
.contributionPage [hidden] { display:none !important; }
.contributionPage h2 { font-size:19px; font-weight:500; }
.firstVisit { padding:14px 18px; background:var(--form-apricot); border-radius:8px; }
#contributionForm .formSection { margin:20px 0; padding:20px; border:0; border-radius:10px; min-width:0; }
#contributionForm .formSection > legend { float:left; width:100%; font-size:19px; margin-bottom:14px; }
#contributionForm .formSection > legend + * { clear:both; }
.identitySection { background:var(--form-blue); }
.choiceSection { background:var(--form-green); }
.contentSection { background:var(--form-apricot); }
.finishSection { background:var(--form-green); }
.identitySection h2 { margin:0; }
.stepNumber { display:inline-grid; place-items:center; width:28px; height:28px; border:1px solid currentColor; border-radius:50%; font:14px var(--sans); margin-right:7px; opacity:.8; }
#contributionForm .kindChoices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#contributionForm .kindChoices label { margin:0; display:flex; align-items:center; gap:10px; background:#ffffffa8; border:1px solid #bac5b1; border-radius:6px; padding:14px 10px; cursor:pointer; }
#contributionForm .kindChoices label:has(:checked) { border-color:var(--accent); background:#fff; box-shadow:inset 0 0 0 1px var(--accent); }
#contributionForm .kindChoices input { width:18px; height:18px; flex:0 0 18px; accent-color:var(--accent); }
#contributionForm .kindChoices span { margin:0; font-size:16px; line-height:1.5; }
#contributionForm fieldset:not(.formSection):not(.cropControls) { border:0; padding:0; margin:0; min-width:0; }
#contributionForm input:not([type=checkbox]):not([type=radio]):not([type=range]),#contributionForm textarea,#contributionForm select { box-sizing:border-box; background:#fff9; border-radius:5px; }
#contributionForm input[name=poem] { max-width:120px; }
#contributionForm .cropControls { display:grid; grid-template-columns:1fr 1fr; border:0; padding:8px 0; gap:0 18px; }
#contributionForm .cropControls label { margin:0; }
#contributionForm .cropControls label > span { font-size:12px; margin:0; }
#contributionForm .lightControl { margin:6px 0; }
#imageEditor canvas { max-height:26vh; max-height:26svh; box-shadow:0 0 0 6px var(--form-apricot); }
.imageActions { display:flex; align-items:center; gap:6px; flex-wrap:nowrap; }
#contributionForm .imageActions #rotate,#contributionForm .imageActions #reset { font-size:12px; padding:8px 6px; }
#contributionForm .imageActions #prepare { margin-left:auto; font-size:14px; padding:10px; flex:1; }
#contributionForm #continue { background:#3c6267; color:#fff; border-color:#3c6267; }
#emailHelp { font-size:14px; }
.srOnly { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.privateIdentity{margin:12px 0}.privateIdentity summary{font-size:13px;color:var(--muted);cursor:pointer}
.bookEntry { padding:16px 0; border-bottom:1px solid var(--line); }
.bookEntry h3 { font-size:18px; font-weight:500; margin:0; }
.bookChoose { display:inline-block; padding:8px 0; }
@media(max-width:380px) { #contributionForm .formSection { padding:14px; } #contributionForm .kindChoices { grid-template-columns:1fr; } }
