*{box-sizing:border-box}
:root{--ink:#211710;--ivory:#f3eadb;--gold:#a77a38;--bronze:#6e4924;--dark:#130f0c}
html,body{margin:0;min-height:100%;background:#120e0b;color:var(--ivory);font-family:Georgia,serif}
body{background:radial-gradient(circle at 50% 0,#3a2b20 0,#17110d 44%,#0c0907 100%)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.app-shell{display:grid;grid-template-columns:minmax(150px,22vw) minmax(0,1fr) minmax(150px,22vw);min-height:100vh}
.portrait{position:sticky;top:0;height:100vh;background-size:cover;background-repeat:no-repeat;filter:saturate(.82) contrast(1.03);box-shadow:inset 0 0 70px 28px #100c09}
.portrait-left{background-image:linear-gradient(90deg,transparent 55%,#120e0b 100%),url("assets/poet-left.jpg");background-position:38% center}
.portrait-right{background-image:linear-gradient(270deg,transparent 55%,#120e0b 100%),url("assets/poet-right.jpg");background-position:62% center}
main{padding:26px 18px 70px;min-width:0}
.masthead{text-align:center;margin:0 auto 22px;max-width:720px}
.brand-logo{width:min(560px,94%);max-height:210px;object-fit:cover;object-position:center;border-radius:2px;mix-blend-mode:screen;filter:sepia(.15) contrast(1.08);box-shadow:0 18px 60px #0008}
.masthead p{margin:10px 0 0;letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;color:#cfb58d}
.studio-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(340px,1.1fr);gap:18px;max-width:1180px;margin:auto}
.panel{background:linear-gradient(145deg,#211811f5,#120e0cf5);border:1px solid #8f682e88;box-shadow:0 20px 70px #0009,inset 0 1px #fff1;padding:20px;border-radius:4px}
.panel-heading,.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.eyebrow{font-size:.68rem;letter-spacing:.23em;color:#ba945d}
h1,h2{font-weight:400;margin:.28rem 0 0;letter-spacing:.035em}
label{display:block;color:#d8c4a5;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin:12px 0}
input,textarea,select{width:100%;margin-top:7px;background:#0e0b09;border:1px solid #6f512e;color:#f3eadb;padding:11px;border-radius:2px;outline:none}
input:focus,textarea:focus,select:focus{border-color:#c49a59;box-shadow:0 0 0 2px #c49a5925}
textarea{height:245px;resize:vertical;line-height:1.65;text-transform:none;letter-spacing:0}
.upload-row{display:flex;gap:8px;flex-wrap:wrap}
.upload-button,button{border:1px solid #8c6634;background:#241a12;color:#efe1ca;padding:10px 13px;border-radius:2px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}
.upload-button input{display:none}
.primary{background:linear-gradient(#ad8246,#76501f);color:#fff8ea;border-color:#caa36c}
.ghost{background:transparent}
.status,.fineprint{font-size:.75rem;color:#ae9877;line-height:1.5}
.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.preview-panel{min-width:0}
.badge{font-size:.68rem;border:1px solid #8e6939;padding:7px 9px;color:#d0b286}
.artboard{position:relative;isolation:isolate;aspect-ratio:4/5;overflow:hidden;background:#ddd center/cover no-repeat;border:10px solid #21170f;outline:1px solid #aa8352;box-shadow:0 18px 55px #000b}
.artboard::before{content:"";position:absolute;inset:0;z-index:-3;background-size:cover;background-position:center;transition:.5s}
.theme-0::before{background-image:linear-gradient(#efe5d6e6,#c1a782b8),url("assets/poet-left.jpg")}
.theme-1::before{background-image:linear-gradient(135deg,#14100bc7,#b26b2f4a),url("assets/poet-right.jpg")}
.theme-2::before{background-image:radial-gradient(circle at 50% 25%,#f3dfbf66,#19110de8),url("assets/poet-left.jpg")}
.theme-3::before{background-image:linear-gradient(#18201db5,#d7c49a8a),url("assets/poet-right.jpg")}
#uploadedBackground{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.art-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0001,#0003),radial-gradient(circle,#fff0 40%,#0008 100%);z-index:-1}
.print-text{position:absolute;inset:11%;display:flex;flex-direction:column;justify-content:center;text-align:center;color:#2d2119;text-shadow:0 1px 1px #fff5;overflow:hidden}
.print-text h2{font-size:clamp(22px,3vw,42px);margin:0 0 24px;text-transform:uppercase;letter-spacing:.13em}
#printText #previewPoem{white-space:pre-wrap;line-height:1.55}
#previewAuthor{margin-top:22px;font-style:italic}
.archive-section{max-width:1180px;margin:24px auto 0}
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.archive-card{background:#18110d;border:1px solid #75542c;padding:14px}
.archive-card h3{margin:0 0 7px;font-weight:400}
.archive-card p{font-size:.78rem;color:#bca789;min-height:38px}
.archive-card button{margin-right:5px;margin-top:5px;padding:7px 9px}
.empty{color:#a78f6c;border:1px dashed #6f512e;padding:24px;text-align:center;grid-column:1/-1}
@media(max-width:1100px){
 .app-shell{grid-template-columns:120px minmax(0,1fr) 120px}
 .studio-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
 .app-shell{display:block}
 .portrait{position:absolute;height:280px;width:46vw;top:0;opacity:.35;z-index:0}
 .portrait-left{left:0}.portrait-right{right:0}
 main{position:relative;z-index:1;padding:14px 10px 45px}
 .masthead{padding-top:8px}
 .brand-logo{max-height:155px}
 .studio-grid{display:block}
 .panel{margin-bottom:14px;padding:14px}
 .control-grid{grid-template-columns:1fr}
 .artboard{border-width:6px}
 .print-text{inset:9%}
 .masthead p{font-size:.62rem}
}