:root{--bg:#f8f1e7;--paper:#fffaf2;--ink:#2f2a21;--muted:#756c5d;--line:#e5d7c4;--gold:#b9914f;--green:#315c49;--deep-green:#1e4d3d;--green-soft:#e8f0e9;--danger:#9d3d35}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at top left, #b9914f2e, transparent 30rem), linear-gradient(180deg, #fffaf2 0%, var(--bg) 100%);margin:0;font-family:Noto Serif SC,Songti SC,Microsoft YaHei,serif}.branded-shell{position:relative}.page-watermark{z-index:0;pointer-events:none;opacity:.055;grid-template-columns:repeat(3,1fr);gap:80px 120px;padding:80px 40px;display:grid;position:fixed;inset:0;overflow:hidden;transform:rotate(-18deg)}.page-watermark span{color:var(--deep-green);white-space:nowrap;font-size:34px;font-weight:700}.branded-shell>:not(.page-watermark){z-index:1;position:relative}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{width:min(1120px,100% - 32px);margin:0 auto;padding:32px 0 56px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.brand{letter-spacing:0;font-size:22px;font-weight:700}.brand-with-logo{color:var(--deep-green);align-items:center;gap:10px;display:inline-flex}.brand-with-logo img{object-fit:cover;border:1px solid #b9914f73;border-radius:999px;width:48px;height:48px;box-shadow:0 8px 22px #1e4d3d1f}.nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nav a,.nav button,.link-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fffaf2bf;border-radius:999px;padding:9px 14px}.hero{padding:42px 0 26px}.branded-hero{border-bottom:1px solid #b9914f2e;margin-bottom:22px}.hero h1,.page-title{margin:0 0 12px;font-size:clamp(30px,4.2vw,46px);line-height:1.12}.hero p,.subtitle{max-width:680px;color:var(--muted);margin:0;font-size:17px;line-height:1.8}.panel{border:1px solid var(--line);background:#fffaf2db;border-radius:8px;box-shadow:0 20px 60px #513d2414}.login-panel{width:min(460px,100%);margin:8vh auto 0;padding:28px}.form{gap:16px;display:grid}.field{gap:8px;display:grid}.field span{color:var(--muted);font-size:14px}.input,.select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf8;border-radius:8px;padding:12px 13px}.button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:13px 18px;font-weight:700}.button.secondary{color:var(--ink);background:#efe4d4}.button.gold{background:var(--gold)}.button:disabled{opacity:.56;cursor:not-allowed}.error{color:var(--danger);background:#fff0ed;border:1px solid #f2c7bf;border-radius:8px;padding:10px 12px}.grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;display:grid}.draw-table{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;gap:22px;display:grid}.deck-zone{grid-template-columns:repeat(2,minmax(220px,1fr));gap:18px;display:grid}.deck-card{gap:14px;padding:18px;display:grid}.deck-card.is-disabled{opacity:.58}.deck-back-button{cursor:pointer;background:0 0;border:0;width:100%;padding:0}.deck-back-button:disabled{cursor:not-allowed}.deck-image{aspect-ratio:2/3;object-fit:contain;border:1px solid var(--line);background:#fffdf8;border-radius:8px;width:100%;transition:transform .28s,box-shadow .28s,filter .28s;box-shadow:0 18px 44px #513d241f}.copyright-card{width:100%;display:block;position:relative}.copyright-card img{object-fit:contain;width:100%;height:100%;display:block}.deck-image-wrap{aspect-ratio:2/3;border:1px solid var(--line);background:#fffdf8;border-radius:8px;transition:transform .28s,box-shadow .28s,filter .28s;overflow:hidden;box-shadow:0 18px 44px #513d241f}.deck-image-wrap img{padding:0}.deck-back-button:not(:disabled):hover .deck-image-wrap{transform:translateY(-4px)scale(1.015);box-shadow:0 24px 60px #b9914f2e}.deck-image-wrap.is-drawing{animation:.58s ease-in-out infinite alternate quiet-pulse}.card-edge-mark{writing-mode:vertical-rl;text-orientation:mixed;color:#1e4d3db8;letter-spacing:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fffaf2c2;border:1px solid #b9914f33;border-radius:999px;padding:8px 4px;font-size:11px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.deck-back-button:not(:disabled):hover .deck-image{transform:translateY(-4px)scale(1.015);box-shadow:0 24px 60px #b9914f2e}.deck-image.is-drawing{animation:.58s ease-in-out infinite alternate quiet-pulse}.deck-card h2{margin:0;font-size:21px}.deck-card p{color:var(--muted);margin:0;line-height:1.7}.deck-copy{gap:8px;display:grid}.card-table{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:22px;display:grid}.deck-rail{padding:18px;position:sticky;top:18px}.section-head,.spread-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.section-head h2,.spread-head h2{margin:0 0 6px;font-size:22px}.section-head p,.spread-head p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.deck-strip{gap:14px;display:grid}.table-deck{background:#fffdf8b8;border:1px solid #e5d7c4c7;border-radius:8px;gap:10px;padding:12px;display:grid}.table-deck.is-disabled{opacity:.58}.table-deck .deck-image,.table-deck .deck-image-wrap{max-height:210px}.table-deck h3{text-align:center;margin:0;font-size:17px}.spread-zone{background:radial-gradient(circle at 50% 20%,#b9914f21,#0000 24rem),linear-gradient(135deg,#fffaf2f0,#efe4d4b3);min-height:680px;padding:20px}.spread-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.spread-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.spread-slot{aspect-ratio:2/3.34;border-radius:8px;min-width:0}.empty-slot{color:#756c5db8;background:linear-gradient(#fffdf88f,#fffaf247);border:1px dashed #756c5d61;border-radius:8px;align-content:center;place-items:center;gap:8px;width:100%;height:100%;display:grid}.empty-slot span{width:32px;height:32px;color:var(--green);background:#e8f0e9db;border-radius:999px;place-items:center;font-weight:700;display:grid}.empty-slot small{font-size:13px}.spread-empty-state{min-height:360px;color:var(--muted);text-align:center;background:radial-gradient(circle at 50% 30%,#b9914f1f,#0000 18rem),#fffdf875;border:1px dashed #756c5d57;border-radius:8px;grid-column:1/-1;align-content:center;place-items:center;gap:10px;padding:28px;display:grid}.spread-empty-state strong{color:var(--ink);font-size:22px}.spread-card{width:100%;height:100%;color:var(--ink);cursor:zoom-in;background:0 0;border:0;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:0;animation:.42s both card-arrive;display:grid}.spread-card img{object-fit:contain;border:1px solid var(--line);background:#fffdf8;border-radius:8px;width:100%;height:100%;min-height:0;display:block;box-shadow:0 18px 44px #315c4921}.spread-card .copyright-card{border:1px solid var(--line);background:#fffdf8;border-radius:8px;height:100%;min-height:0;overflow:hidden;box-shadow:0 18px 44px #315c4921}.spread-card .copyright-card img{box-shadow:none;border:0}.spread-card-meta{background:#e8f0e9f0;border-radius:8px;justify-items:center;gap:4px;padding:8px 6px;display:grid}.spread-card-meta em{color:var(--gold);font-size:12px;font-style:normal;font-weight:700}.spread-card-meta strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.spread-card-meta small{color:var(--green)}@keyframes card-arrive{0%{opacity:0;filter:brightness(1.14);transform:translateY(-12px)scale(.96)}to{opacity:1;filter:brightness();transform:translateY(0)scale(1)}}.card-modal{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2f2a218c;place-items:center;padding:18px;display:grid;position:fixed;inset:0;overflow:auto}.card-modal-inner{border:1px solid var(--line);background:var(--paper);border-radius:8px;justify-items:center;gap:12px;width:min(560px,100%);max-height:calc(100dvh - 36px);padding:18px;display:grid;overflow:auto;box-shadow:0 24px 80px #00000038}.card-modal-inner img{object-fit:contain;border:1px solid var(--line);background:#fffdf8;border-radius:8px;max-width:100%;max-height:74vh}.card-modal-inner .copyright-card{place-items:center;width:min(100%,500px);max-height:74dvh;display:grid}.card-modal-inner .copyright-card img{width:auto;max-width:100%;height:auto;max-height:74dvh}.modal-close{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fffdf8;border-radius:999px;justify-self:end;padding:8px 13px}.modal-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;display:flex}.modal-meta em{color:var(--gold);font-style:normal;font-weight:700}.modal-meta small{color:var(--muted)}.modal-actions{grid-template-columns:1fr 1fr;gap:10px;width:min(420px,100%);display:grid}.site-footer{text-align:center;color:#2f2a219e;border-top:1px solid #b9914f2e;margin:28px auto 0;padding:18px 0 8px;font-size:14px}.draw-result-modal .card-modal-inner{animation:.32s both card-arrive}.result-zone{max-height:calc(100vh - 36px);padding:18px;position:sticky;top:18px;overflow:auto}.result-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.result-head h2{margin:0;font-size:22px}.empty-result{min-height:220px;color:var(--muted);text-align:center;align-content:center;gap:8px;line-height:1.8;display:grid}.empty-result p{margin:0}.result-list{gap:16px;display:grid}.result-card{border-bottom:1px solid var(--line);gap:12px;padding-bottom:16px;display:grid}.result-card:last-child{border-bottom:0;padding-bottom:0}.result-image{object-fit:contain;border:1px solid var(--line);background:#fffdf8;border-radius:8px;width:100%;max-height:min(62vh,620px);box-shadow:0 18px 50px #315c491f}.result-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.result-meta strong{font-size:17px}.result-meta small{color:var(--muted)}.draw-layout{grid-template-columns:minmax(220px,360px) 1fr;align-items:center;gap:34px;display:grid}.draw-stage{justify-items:center;gap:18px;padding:22px;display:grid}.draw-card{aspect-ratio:2/3;object-fit:contain;border:1px solid var(--line);border-radius:8px;width:min(320px,72vw);box-shadow:0 18px 50px #315c492e}.draw-card.is-drawing{animation:.78s ease-in-out infinite alternate gentle-flip}@keyframes gentle-flip{0%{filter:brightness();transform:perspective(900px)rotateY(-10deg)translateY(0)}to{filter:brightness(1.08);transform:perspective(900px)rotateY(10deg)translateY(-6px)}}@keyframes quiet-pulse{0%{filter:brightness();transform:perspective(900px)rotateY(-3deg)scale(1)}to{filter:brightness(1.08);transform:perspective(900px)rotateY(3deg)scale(1.035)}}.actions{flex-wrap:wrap;gap:12px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:#fffaf2cc;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px}th{color:var(--muted);font-size:14px;font-weight:600}.thumb{aspect-ratio:2/3;object-fit:cover;border:1px solid var(--line);border-radius:6px;width:58px}.badge{background:var(--green-soft);color:var(--green);border-radius:999px;align-items:center;padding:5px 9px;font-size:13px;display:inline-flex}.muted{color:var(--muted)}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.admin-card{padding:18px}@media (max-width:760px){.shell{width:min(100% - 22px,1120px);padding-top:20px}.topbar{flex-direction:column;align-items:flex-start}.draw-layout,.draw-table,.card-table{grid-template-columns:1fr}.deck-rail{padding:14px;position:static}.deck-strip{scroll-snap-type:x mandatory;gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.table-deck{scroll-snap-align:start;flex:0 0 156px;width:156px}.table-deck .deck-image,.table-deck .deck-image-wrap{max-height:180px}.spread-zone{min-height:0;padding:14px}.spread-head{flex-direction:column}.spread-actions{justify-content:flex-start;width:100%}.spread-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.spread-empty-state{min-height:240px}.spread-card-meta{border-radius:8px}.spread-card-meta strong{font-size:12px}.modal-actions{grid-template-columns:1fr}.card-modal-inner img,.card-modal-inner .copyright-card,.card-modal-inner .copyright-card img{max-height:68dvh}.page-watermark{grid-template-columns:repeat(2,1fr);gap:70px;padding:70px 20px}.page-watermark span{font-size:24px}.deck-zone{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.deck-card{padding:12px}.deck-card h2{font-size:17px}.deck-card p{font-size:13px;line-height:1.55}.result-zone{max-height:none;position:static}.result-image{width:100%;max-height:none}.login-panel{margin-top:28px;padding:22px}.button,.actions{width:100%}}@media (max-width:430px){.deck-zone{grid-template-columns:1fr}}
