@import url('https://fonts.googleapis.com/css2?family=Allura&family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f8f6ef;--ink:#293f35;--muted:#69736a;--line:#d9ded2;--forest:#284b40;--gold:#ad884a;--serif:'Libre Caslon Display',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bb8649;outline-offset:4px}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.97)}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit}.topbar{height:104px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:14px;font:27px var(--serif)}.brand-mark{font:48px Georgia;color:var(--forest)}.brand small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:2px;margin-top:8px}.edition{font-size:10px;letter-spacing:1.5px;color:var(--muted)}.edition span{margin:0 15px;color:#b7baa9}.quiet{border:0;background:none;color:var(--ink);font-weight:600}.tabs{padding:0 5%;display:flex;gap:38px;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:21px 0;color:#8a8f82;font-size:10px}.tabs button span{font-size:13px;margin-left:10px}.tabs button[aria-selected=true]{border-color:var(--forest);color:var(--forest)}#saveStatus{margin-left:auto;align-self:center;font-size:10px;color:var(--muted)}main{max-width:1600px;margin:auto;padding:0 5%}.page{display:none}.page.active{display:block}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:45px 0 30px;gap:20px}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:700;color:#7e876e;margin:0 0 12px}h1,h2,h3,p{margin-top:0}h1{font:54px/1.08 var(--serif);letter-spacing:-1px;margin-bottom:12px}h2{font:31px var(--serif);margin-bottom:12px}.page-heading p:last-child,.library-heading p:last-child{color:var(--muted);font-size:13px;margin-bottom:0}.primary,.outline{border:1px solid var(--forest);border-radius:3px;padding:13px 20px;font-size:12px;background:var(--forest);color:white;white-space:nowrap}.primary span{margin-left:24px}.outline{background:transparent;color:var(--forest)}.studio{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:30px;align-items:start}.canvas-wrap{background:#e9e7dd;padding:18px 22px 14px;border-radius:4px}.canvas-meta,.canvas-bottom{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#737a6b;gap:10px}.canvas-meta{padding-bottom:15px}canvas{display:block;width:100%;height:auto;background:#eee6d7;box-shadow:0 7px 24px #26351d1a}.canvas-bottom{letter-spacing:0;padding-top:14px;font-size:10px;align-items:center}.tiny-flower{margin-left:10px;color:#a49068}.design-panel{padding:9px 0}.design-panel h2{font-size:27px}.design-panel label{display:block;font-size:10px;font-weight:600;margin-top:17px}input:not([type=checkbox]):not([type=file]):not([type=range]),select,textarea{width:100%;border:1px solid #d5d9ce;padding:11px 12px;border-radius:3px;background:#fffdf8;color:var(--ink);margin-top:7px;font-size:12px}fieldset{padding:0;border:0;margin:20px 0}legend{font-size:10px;font-weight:600;margin-bottom:10px}.swatches{display:flex;gap:9px}.swatch{width:30px;height:30px;background:#e9ddc6;border-radius:50%;border:4px solid var(--paper);outline:1px solid #ddd}.swatch.sage{background:#bdc8b6}.swatch.rose{background:#dfbcb2}.swatch.active{outline:2px solid var(--forest)}.note{display:flex;gap:10px;line-height:1.6;color:var(--muted);margin-top:22px;font-size:12px}.note span{font-size:23px}.note small{font-size:11px}.design-panel .outline{width:100%;font-size:11px;padding:10px}.import-label{color:var(--muted);text-decoration:underline;cursor:pointer;text-align:center}.import-label input{display:block;width:100%;font-size:10px;margin-top:8px}.library{margin-top:45px;border-top:1px solid var(--line);padding-top:32px}.library-heading{display:flex;justify-content:space-between;align-items:center}.library-heading h2{font-size:36px}.count-label{font-size:10px;border:1px solid var(--line);border-radius:30px;padding:8px 12px}.filters{display:flex;gap:14px;align-items:center;margin:24px 0 22px}.search{position:relative;flex:1}.search span{position:absolute;left:14px;top:8px;font-size:24px}.search input{padding-left:42px!important;margin:0!important}.filters select{width:220px;margin:0}.toggle{display:flex;align-items:center;gap:8px;font-size:11px;white-space:nowrap}input[type=checkbox]{accent-color:var(--forest);width:17px;height:17px}.photo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:17px}.photo-tile{background:#fffdf8;border:1px solid var(--line);border-radius:3px;overflow:hidden}.photo-tile.selected{border:1px solid var(--forest);box-shadow:0 0 0 1px var(--forest)}.photo-check{display:block;position:relative;cursor:pointer}.photo-check img{display:block;width:100%;height:170px;object-fit:contain;background:#e9e6de}.photo-check input{position:absolute;right:8px;top:7px;width:21px;height:21px}.photo-info{padding:10px}.photo-info strong{font-size:10px}.photo-info small{display:block;font-size:9px;color:var(--muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-actions{display:flex;gap:4px;margin-top:9px}.photo-actions button{padding:5px 6px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:9px;flex:1}.photo-actions button.featured-label{background:#e9eee5}.load-more{display:block;margin:25px auto}.library-foot{text-align:center;color:var(--muted);font-size:11px;line-height:1.8}footer{text-align:center;padding:45px 20px;margin-top:55px;border-top:1px solid var(--line)}footer p{font:24px var(--serif);margin:10px 0}footer small{font-size:10px;color:var(--muted)}footer .brand-mark{font-size:35px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.prototype-note{font-size:11px;color:var(--muted);border-left:2px solid var(--gold);padding-left:12px;margin-bottom:28px}.concept-head{display:flex;justify-content:space-between;margin-bottom:12px;align-items:center}.concept-head span{font-size:10px;letter-spacing:1px}.choose-style{border:1px solid var(--line);background:transparent;padding:8px 12px;font-size:11px;border-radius:20px;color:var(--forest)}.choose-style.selected{background:var(--forest);color:white}.profile-card{position:relative;padding:30px;min-height:640px;border:1px solid var(--line);background:#fffdf7;overflow:hidden}.profile-card .portrait{width:130px;height:160px;object-fit:cover;object-position:50% 25%;float:left;margin:0 22px 18px 0}.profile-card h2{font-size:48px;margin:12px 0 4px}.profile-card .nickname{font:italic 20px Georgia;color:#80765d}.profile-card .status{font-size:9px;display:inline-block;letter-spacing:1px;border:1px solid #bdbba4;padding:6px 9px;border-radius:20px;max-width:100%}.profile-card .facts{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:15px;border-top:1px solid #c9cbbf;padding-top:20px}.facts dt,.places span{font-size:8px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.facts dd{font-size:12px;margin:0}.places{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:22px 0}.places div{border-bottom:1px solid #bdc6b6;padding-bottom:10px;min-width:0}.places span{display:block;font-size:7px}.places strong{font-size:10px;font-weight:400;overflow-wrap:anywhere}.story{font-size:12px;line-height:1.85}.read-more{border:0;border-bottom:1px solid currentColor;padding:0 0 4px;background:none;font-size:11px;color:inherit}.relation-links{display:flex;gap:6px;margin-top:25px;flex-wrap:wrap}.relation-links button{border:1px solid #c5cbbb;background:none;color:inherit;padding:10px 12px;font-size:10px;border-radius:20px}.style-0{background:#efe9d9;border:9px solid #f4f0e6;box-shadow:0 0 0 1px #cfcaba}.style-0 .portrait{transform:rotate(-4deg);border:7px solid #fffdf8;box-shadow:0 3px 9px #0002}.style-0:before{content:'FROM THE FAMILY ALBUM';display:block;font-size:8px;letter-spacing:2.5px;border-bottom:1px solid #ccc5b1;padding-bottom:18px;margin-bottom:24px}.style-1{background:#244a3d;color:#fbf5e6;border-radius:170px 170px 5px 5px;padding-top:35px;text-align:center}.style-1 .portrait{float:none;width:150px;height:170px;border-radius:90px 90px 4px 4px;margin:0 auto;border:6px solid #496654}.style-1 h2{font-size:43px;margin:10px 0}.style-1 .nickname{color:#cebc8f}.style-1 .facts{margin-top:20px;text-align:left;border-color:#597365}.style-1 .facts dt,.style-1 .places span{color:#c3cfb9}.style-1 .places,.style-1 .story{text-align:left}.style-1 .relation-links{justify-content:center}.style-2{padding:0 30px 30px;background:#fdfcf8}.style-2 .portrait{float:none;width:calc(100% + 60px);height:240px;margin:0 -30px 20px;object-position:50% 32%}.style-2 h2{font-size:58px}.style-2 .facts{margin-top:20px}.style-3{background:#ede5e4;border-top:7px solid #815157}.style-3 .portrait{border-radius:50%;width:145px;height:145px;float:right;margin:5px 0 25px 18px;border:4px solid #fff7ee}.style-3 h2{color:#76474e;margin-top:20px}.style-3 .facts{margin-top:40px}.tree-board{text-align:center;background:#eaf0e5;border:1px solid #d2decc;border-radius:6px;padding:40px 20px;background-image:radial-gradient(#9baf962f 1px,transparent 1px);background-size:18px 18px}.tree-pair{display:flex;justify-content:center;align-items:center}.tree-person{width:180px;min-height:210px;display:flex;flex-direction:column;align-items:center;border:1px solid #c5cfbd;background:#fcfbf5;padding:18px;border-radius:6px;color:var(--ink);box-shadow:0 6px 14px #284b4009}.tree-person img{width:90px;height:100px;object-fit:cover;border-radius:50px 50px 4px 4px;margin-bottom:12px}.tree-person strong{font:26px var(--serif)}.tree-person small{font-size:10px;color:var(--muted);margin-top:7px}.tree-person.featured{border:2px solid var(--forest)}.connection{width:100px;border-top:1px solid #9ba991;position:relative;padding-top:10px}.connection span{background:#eaf0e5;position:absolute;top:-15px;left:39px;font-size:22px;padding:0 3px}.connection small{font-size:8px;letter-spacing:1px}.initials{display:grid;place-items:center;border-radius:50%;width:75px;height:75px;background:#e6ebdf;color:#778a71;font:26px var(--serif);margin:10px 0 20px}.branch-line{height:45px;width:1px;background:#a1b395;margin:auto}.tree-children{display:flex;justify-content:center;gap:28px;position:relative;padding-top:25px;margin-bottom:35px}.tree-children:before{content:'';position:absolute;top:0;left:calc(50% - 208px);width:416px;border-top:1px solid #a1b395}.tree-children .tree-person{position:relative;min-height:190px}.tree-children .tree-person:before{content:'';position:absolute;height:25px;top:-26px;left:50%;border-left:1px solid #a1b395}.tree-caption{font-size:10px;color:var(--muted);margin:24px 0 0}.next-chapter{margin-top:30px;text-align:center;color:var(--muted)}.next-chapter span{font-size:9px;letter-spacing:2px}.next-chapter p{font:23px var(--serif);margin-top:12px}dialog{border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);padding:36px;width:600px;max-width:94vw;max-height:90vh}dialog::backdrop{background:#172c23a8;backdrop-filter:blur(4px)}.close-dialog{position:absolute;right:10px;top:5px;border:0;background:none;color:var(--ink);font-size:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{font-size:11px}.form-grid .wide{grid-column:1/-1}textarea{resize:vertical;min-height:100px}.dialog-actions{margin-top:22px;display:flex;gap:10px}.dialog-photo{display:block;max-height:360px;max-width:100%;margin:15px auto}.crop-row{display:flex;align-items:center;gap:12px;margin:14px 0}.crop-row input{flex:1}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#244a3d;color:#fff;padding:14px 24px;border-radius:4px;opacity:0;transition:.2s;max-width:90vw;z-index:10;font-size:13px}.toast.visible{transform:translateX(-50%) translateY(0);opacity:1}.empty{grid-column:1/-1;text-align:center;padding:35px;color:var(--muted)}
@media(min-width:1450px){.photo-check img{height:200px}}@media(max-width:1100px){.edition{display:none}.studio{grid-template-columns:minmax(0,1fr) 230px;gap:22px}.photo-grid{grid-template-columns:repeat(4,1fr)}.profile-card{padding:22px;min-height:710px}.style-2 .portrait{width:calc(100% + 44px);margin-left:-22px;margin-right:-22px}.style-3 .portrait{width:110px;height:110px}.profile-card h2{font-size:40px}.profile-card .portrait{max-width:135px}.style-2 .portrait{max-width:none}}@media(max-width:760px){.topbar{height:83px;padding:0 5%}.brand{font-size:24px;gap:7px}.brand small{font-size:6px;letter-spacing:1.5px}.brand-mark{font-size:38px}.quiet{font-size:10px}.tabs{gap:22px}.tabs button{padding:17px 0;font-size:8px}.tabs button span{font-size:11px;margin-left:5px}#saveStatus{display:none}.page-heading{padding-top:30px;align-items:flex-start;flex-direction:column;gap:20px}h1{font-size:44px}.page-heading .primary{align-self:flex-start}.studio{grid-template-columns:1fr;gap:22px}.canvas-wrap{padding:12px}.canvas-meta{font-size:6px;letter-spacing:1px}.canvas-bottom{font-size:8px}.design-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:18px;border:1px solid var(--line)}.design-panel>.eyebrow,.design-panel>h2,.design-panel>.note,.design-panel>.outline,.design-panel>.import-label{grid-column:1/-1}.design-panel label{margin-top:8px}.design-panel fieldset{margin:16px 0}.design-panel .note{margin-top:15px}.import-label input{max-width:230px;margin:10px auto}.library{margin-top:28px}.library-heading{gap:12px}.library-heading h2{font-size:31px}.count-label{white-space:nowrap}.filters{flex-wrap:wrap;gap:10px}.search{flex-basis:100%}.filters select{flex:1;min-width:0;width:auto}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.photo-check img{height:130px}.photo-info{padding:8px}.photo-actions{flex-wrap:wrap}.photo-actions button{font-size:8px}.profile-grid{grid-template-columns:1fr;gap:32px}.profile-card{min-height:0;padding:28px}.style-1{padding-top:30px}.style-2 .portrait{width:calc(100% + 56px);margin-left:-28px;margin-right:-28px}.style-3 .portrait{width:120px;height:120px}.profile-card h2{font-size:48px}.tree-board{padding:30px 10px}.tree-person{width:130px;min-height:190px;padding:12px}.tree-person strong{font-size:23px}.connection{width:55px}.connection span{left:15px}.tree-children{gap:8px}.tree-children .tree-person{width:30%;min-height:165px;padding:8px}.tree-children .tree-person strong{font-size:20px}.tree-children:before{left:17%;width:66%}.initials{width:55px;height:55px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}dialog{padding:28px 22px}footer{margin-top:35px}footer small{display:block;line-height:1.8}}
.style-1 .portrait{display:block;margin:0 auto 14px}.style-1 .status{display:table;margin:0 auto}.profile-card h2,.facts dd,.story{overflow-wrap:anywhere}
.style-2 .portrait{object-position:50% 12%}

